第七张行为模型BehavoralModeling.ppt
《第七张行为模型BehavoralModeling.ppt》由会员分享,可在线阅读,更多相关《第七张行为模型BehavoralModeling.ppt(44页珍藏版)》请在三一文库上搜索。
1、第 七 張 行為模型 (Behavoral Modeling),1,7.1 結構化程序(Structured Procedures) 在verilog中有兩個結構化程序:always和initial兩個敘述,這是最基本的敘述,verilog是並行程式語言,執行流也是並行執行的,而且不能有巢狀結構。,7.1.1 initial 要把將執行的敘述放在initiial敘述,行程initiial區塊,一個區塊啟動程式啟動模擬時間零,且執行一次多個區塊,就要同時啟動模擬時間零,但各自執行。,2,module stimulues; reg x,y,a,b,m; initial m=1b0; /單一敘述,不
2、需要被群聚。 initial begin #5 a=1b1; /多個敘述,需要被群聚。 #25 b=1b0; end,範例7-1 initial敘述,3,initial begin #10 x =1b0; #25 y =1b1; end initial #50 $finish; endmudule,範例7-1 initial敘述(續),4,7.2 程式指定(Procedural Assignments),程式指定可用來更新暫存器(reg)、整數(integer)、實數(real)或時間(time)變數的值,變數上的值會一直保持到被更新為止。,範例 簡單的程式指定,assignment:=var
3、iable_lvalue=delay_or_event_control expression,等號右手邊可以是任何一個可求出值的運算式,在行為模式中的運算子,皆能用來當行為模式的運算式。 程式指定有兩種型態:阻礙指定(Blocking)與 無阻礙指定(Nonblocking)。,5,7.2.1 阻礙指定(Blocking Assignments),阻礙指定的運算符號是 “=”。,範例7-6 阻礙指定,regx, y, z; reg15:0 reg_a,reg_b; integer count; /所有行為模式敘述,必須在initial或always區塊內。 initial begin x=0;
4、y=1;z=1; /純量指定 count=0; /指定變數至整數變數,6,reg_a=16b0;reg_b=reg_a; /設定向量初始 #15 reg_a2=1b1: /在延遲後選擇位元指定 #10 reg_b15:13=x,y,z /指定連結的結果至向量部分指定 count=count+1; /指定至一個整數(遞增) end,7,7.2.2 無阻礙指定(Nonblocking Assignments),無阻礙指定的運算符號是“=” 。,reg x,y,z; reg 15:0reg_a,reg_b; integer count; /所有行為模式敘述,必須在initial或always區塊內。
5、 initial begin x=0;y=1;z=1; /純量指定 count=0; /指定變數至整數變數,範例7-7 無限定指定,8,reg_a=16b0;reg_b=reg_a; /設定向量初始 reg_a2 =#15 1b1; /在延遲後選擇位元指定 reg_b15:13 =#10 x,y,z; /指定連結的結果,至向量部分指定。 count=count+1; /指定至一個整數(遞增) end,9,7.3 時序控制(Timing Controls) 7.3.1 延遲基礎時間控制(Delay-Based Timing Control),delay3:=# delay_value # (de
6、lay_value ,delay_ value ,delay_value ) delay2 :=# delay_value # (delay_value ,delay_ value ,delay_value ) delay_value:= unsigned_number parameter_identifier specparam_identifier mintypmax_expression,延遲基礎時序控制是用來指定遇到某個運算式,到實際執行它之間所需的時間。延遲是以符號“#”來表示,其語法如下:,10,正規延遲控制(Regular Delay Control) 正規延遲控制是在延遲時間非
7、零的時候,使用在程序指定敘述的左邊。,/定義參數 parameter latency = 20; parameter delta = 2 ; /定義暫存器變數 reg x, y, z, p, q; initial begin x = 0; / 無延遲 #10 y = 1; /使用數值控制延遲,延遲執行 y=1,10個時間單位。,範例7-10 正規延遲控制,11,#latency z = 0; /使用識別字控制延遲,延遲20個時間單位。 #(latency + delta) p = 1; /使用一個運算式控制延遲。 #y x=x+1; /使用識別字控制延遲,從變數y取得延遲值。 #(4:5:6)
8、 q =0; /最大、典型、最小延遲值。 /這在邏輯閘層次模型的章節裡討論過了。 end,12,指定內部延遲控制(Intra-Assignment Dalay Control) 不同於正規延遲控制,指定內部延遲控制是用在指定程序中,指定運算子(Assignment Operator)右邊的延遲時間。 在範例7-11中將正規控制,和指定內部延遲控制作一個比較。,/定義暫存器變數 reg x, y, z; /指定內部延遲 initial begin x = 0; z = 0; y =#5x+z ; /在time=0讀取x和z的值並執行x+z,直到時間單位5再指定 /至y。 end,範例7-11 指
9、定內部延遲,13,/使用暫時變數與正規延遲得到相同的結果 initial begin x=0; z=0; temp_xz =x+z; #5 y=temp_xz; /在目前的時間讀取x+z的值,並儲存至暫時變數。即 /使時間0至5間x和z的值改變了,也不影響單位時間 /5被指定至y的值。 end,14,7.3.2 事件基礎時序控制(Event-Based Timing Control),事件控制的符號是,當信號產生正緣、負緣的轉換,或者數值的改變時,敘述會被執行。表示正緣轉換的關鍵字是posedge,如範例7-13所示。,(clock) q=d; /當clock的值改變,q=d被執行。 (pos
10、edge clock) q=d; /當clock正緣觸發(0 to 1,x or z, / x to 1,z to 1),q=d被執行。 (negedge clock) q=d; /當clock負緣觸發(1 to 0,x or z, / x to 0,z to 0),q=d被執行。 q= (posedge clock) d; /d立刻被執行,等到clock正緣觸發 /再指定至q 。,正規事件控制,範例7-13 正規事件控制,15,Verilog可以宣告一個事件,然後觸發和識別這個事件(範例7-14),事件並不會包含任何資料。一個被命名的事件是用關鍵字event來宣告,並使用符號 “-”來觸發,
11、一個觸發的事件是用“”來識別。,/當最後的封裝packet資料被接收時,儲存四個封裝資料至資/料緩衝器。 event recieved_ data; /定義一個事件recieved_ data always (posedge clock) /在正緣觸發時做檢查 begin if(last_data_packet) /如果是最後的封裝資料 - recieved_ data; /觸發事件recieved_ data,命名事件控制,範例7-14 命名事件控制,16,end always (recieved_ data) /直到recieved_ data事件被觸 /發,儲存四個封裝資料至資料 /緩衝
12、器。 data_buf=data_pkt0, data_pkt1, data_pkt2, data_pkt3;,17,當有多個訊號或事件中,任一個都能觸發某個敘述或多敘述區塊執行,就好像這些訊號或事件做或(OR)的邏輯運算。這些事件或訊號的列表,也稱為感測列表(Sensitivity List),這多個觸發是用關鍵字or來區隔(範例7-15)。,事件或控制,/非同步重設位準感測閂 always (reset or clock or d) /等待reset、clock或d的數值改變。 begin if(reset) /如果reset是高電位,設定q為0。 q=1b0; else if(clock
13、) /如果clock是高電位,鎖住輸入資料。 q=d; end,範例7-15 事件或控制,18,7.3.3 位準感測時序控制(Level-Sensitive Timing Control) Verilog也允許位準感測時序控制,亦即等到某一個條件變成真(true)值,才執行某個敘述或區塊。位準感測時序控制用關鍵字wait做指定。,always wait (count_enable) #20 count = count +1;,範例中,count_enable的值是一直被監控的。 如果count_enable是0,這個敘述將不會被執行。 如果是1,敘述將在20個時間單位後執行。 如果count_
14、enable停在1的位準,則每隔20個間,單位count都會加1。,19,7.4 條件敘述(Condition Statements) 條件敘述依照條件成立與否,決定是否執行某敘述或執行其他敘述,其關鍵字為if和else。,/型1條件敘述,無else敘述,敘述可能被執行,或不被執行。 if (), true_statement2 ; else if (), true_statement3 ; else default_statement ;,20,7.5 多路徑分支(Multiway Branching) 這種巢狀結構的 if-else-if,在過多的選擇時會變的很難處理。此時可以用case敘
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第七 行为 模型 BehavoralModeling
链接地址:https://www.31doc.com/p-2518559.html