freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

billgates(編輯修改稿)

2025-08-11 17:50 本頁面
 

【文章內(nèi)容簡介】 可以用來禁止任務(wù)的執(zhí)行 。 語法詳細(xì)講解 Verilog 任務(wù) [注意 ]: 不要在程序的不同部分同時調(diào)用同一個任務(wù) 。 這是因為任務(wù)只有一組本地變量 , 同一時刻調(diào)用兩次相同的任務(wù)將會導(dǎo)致錯誤 。 這種情況常發(fā)生在使用定時控制的任務(wù)中 。 在任務(wù)或函數(shù)中 , 引用父模塊中聲明的變量時要特別注意 ( 即注意變量的層次命名規(guī)則 ) 。 若想在其它模塊中調(diào)用任務(wù)或函數(shù) , 該任務(wù)和函數(shù)中所使用的變量必須全都包含在輸入 /輸出口列表中 。 語法詳細(xì)講解 Verilog 任務(wù) 下面模塊中的任務(wù)只含有一個雙向總線 ( inout) 端口和一個內(nèi)部變量, 沒有其它輸入端口 、 輸出端口和定時控制 , 沒有引用模塊變量 , 不顯示任何內(nèi)容 。 在任務(wù)調(diào)用時 , 任務(wù)的輸入變量 ( 端口 ) 在任務(wù)內(nèi)部被當(dāng)作寄存器類型變量處理 。 parameter MAX_BITS=8。 reg [MAX_BITS:1] D。 task reverse_bits。 inout [7:0] data。 //雙向總線端口被當(dāng)作寄存器類型 ! integer K。 for (k=0。 kMAX_BITS。 K=K+1) reverse_bits [MAXBITS – (K+1)] = data[K]。 endtask always @ (posedge clk) reverse_bits (D)。 …… 語法詳細(xì)講解 Verilog 任務(wù) 下面模塊中定義的任務(wù)含有輸入、輸出、時間控制和一個內(nèi)部變量,并且引用了一個本模塊的變量,但是沒有輸出,不顯示任何內(nèi)容。 任務(wù)調(diào)用時變量順序應(yīng)與任務(wù)定義中聲明的順序相同。 module mult(clk, a, b, out, en_mult)。 input clk, en_mult。 input [3:0] a, b。 output [7:0] out。 reg [15:0] out。 always @ (posedge clk) multme(a, b, out)。 //任務(wù)調(diào)用 語法詳細(xì)講解 Verilog 任務(wù) task multme。 //任務(wù)定義 input [3:0] xme, tome。 output [7:0] result。 wait (en_mult) result=xme*tome。 endtask endmodule 語法詳細(xì)講解 Verilog 任務(wù) module orand (a, b, c, d, e, out)。 input [7:0] a, b, c, d, e。 output [7:0] out。 reg [7:0] out。 always @ (a or b or c or d or e) out = f_or_and (a, b, c, d, e)。 //函數(shù)調(diào)用 function [7:0] f_or_and。 input [7:0] a, b, c, d, e。 if (e= =1) f_or_and = (a|b) amp。 (c|d)。 else f_or_and=0。 endfunction endmodule 語法詳細(xì)講解 Verilog 函數(shù) 雖然函數(shù)不能包含定時控制 , 但是可以在包含定時控制的過程塊中調(diào)用函數(shù) 。 在模塊中 , 使用名為 f_or_and的函數(shù)時 , 是把它作為名為f_or_and 的寄存器類型變量來處理的 。 要點 ? 函數(shù)定義不能包含任何定時控制語句 。 ? 函數(shù)必須至少有一個輸入 , 但絕不能含有任何輸出和總線口; ? 一個函數(shù)只能返回一個值 , 該值的變量名與函數(shù)同名 , 數(shù)據(jù)類型默認(rèn)為 reg類型 。 ? 傳遞給函數(shù)的變量順序與函數(shù)輸入口聲明的順序相同 。 ? 函數(shù)定義必須包含在模塊定義之內(nèi) 。 ? 函數(shù)不能調(diào)用任務(wù) , 但任務(wù)可以調(diào)用函數(shù) 。 ? 函數(shù)使 Verilog有更廣闊的適用范圍 。 語法詳細(xì)講解 Verilog 函數(shù) ? 雖然函數(shù)只能返回一個值 , 但是它的返回值可以直接賦給一個由多個子信號拼接構(gòu)成的信號變量 , 使其實際等效于產(chǎn)生了多個輸出 。 {o1, o2, o3, o4}=f_or_and(a, b, c, d, e)。 語法詳細(xì)講解 Verilog 函數(shù) 在函數(shù)定義時 , 如果在函數(shù)名前面定義了位寬 , 該函數(shù)就可以返回由多位構(gòu)成的矢量 。 如果定義函數(shù)的語句比較多時 , 可以用 begin 和 end 把它們組合起來 。 在函數(shù)內(nèi) , 無論以函數(shù)名命名的變量被賦了多少次值 , 函數(shù)只有一個返回值 。 下例中的函數(shù) , 聲明了一個內(nèi)部整型變量 。 舉例說明如下: module foo。 input [7:0] loo。 //也可以用連續(xù)賦值語句調(diào)用函數(shù) wire [7:0] goo = zero_count (loo)。 function [3:0] zero_count。 input [7:0] in_bus。 integer I。 begin zero_count = 0。 for (I=0。 I8。 I= I+1) if (!in_bus[I]) zero_count = zero_count +1。 end endfunction endmodule 語法詳細(xì)講解 Verilog 函數(shù) 若把函數(shù)定義為整型 、 實型或時間類型 , 就可以返回相應(yīng)類型的數(shù)據(jù) 。 我們可以在任何類型的表達(dá)式中調(diào)用函數(shù) 。 module checksub(neg,in_a,in_b)。 output neg。 input a, b。 reg neg。 function integer subtr。 input [7:0] in_a, in_b。 subtr = in_a – in_b。 //運算結(jié)果可以為負(fù)數(shù) endfunction always @ (a or b) begin if ( subtr (a,b) 0) neg = 1。 else neg = 0。 end endmodule 語法詳細(xì)講解 Verilog 函數(shù) 函數(shù)類型 、 端口和行為定義時也可以使用參數(shù) , 這樣就可以構(gòu)成參數(shù)化函數(shù)使其返回的數(shù)據(jù)類型 、 輸入端口的位寬等很容易做修改 。 所以參數(shù)化函數(shù)就有更廣泛的適用范圍 。 … . parameter MAX_BITS =8。 reg [MAX_BITS:1] D。 function [MAX_BIT:1] reverse_bits。 input [7:0] data。 for(K=0。 K MAX_BITS。 K=K+1) reverse_bits[ MAX_BITS – (K+1)] = data [K]。 endfunction always @ (posedge clk) begin … . D= reverse_bits(D)。 … .. end ……… 語法詳細(xì)講解 Verilog 函數(shù) 語法詳細(xì)講解 命名塊 ? 可以通過在關(guān)鍵字 begin或 fork后加上: 〈 塊名 〉 來給塊命名 。 module named_blk。 …… begin :seq_blk …… end …… fork : par_blk …… join …… endmodule ? 可以在命名塊中聲明本地變量 。 ? 可以使用 disable禁止命名塊 。 注意: ? 命名塊使 Verilog有更廣闊的適用范圍 。 ? 命名塊的使用縮短了仿真的時間 。 語法詳細(xì)講解 命名塊 語法詳細(xì)講解 禁止命名塊和任務(wù) module do_arith(out, a, b, c, d, e, clk, en_mult)。 input clk, en_mult。 input [7:0] a, b, c, d, e。 output [15:0] out。 reg [14:0] out。 always @(posedge clk) begin : arith_block //***命名名為 arith_block的塊 *** reg [3:0] tmp1, tmp2。 //***本地變量 *** {tmp, tmp2}=f_or_and(a, b, c, d, e)。 // 函數(shù)調(diào)用 if(en_mult) multme(tmp1, tmp2, out)。 //任務(wù)調(diào)用 end always @(negedge en_mult) begin //停止計算 disable multme。 //***禁止任務(wù)的執(zhí)行 *** diable arith_block。 //***禁止命名塊的執(zhí)行 *** end //在此定義任務(wù)和函數(shù) ………… .. endmodle 注意: ? disable語句用來終止命名塊或任務(wù)的執(zhí)行 。 這是指在尚未執(zhí)行該命名塊或任務(wù)任何一條語句前 , 就從該命名塊 /任務(wù)執(zhí)行中返回 。 語法: disable 〈 塊名 〉 或 disable 〈 任務(wù)名 〉 ? 禁止執(zhí)行命名塊或任務(wù)后 , 所有在事件隊列中由該命名塊 /任務(wù)安排的事件都將被刪除 。 ? 一般 情況下 disable語句是不可綜合的 。 在上頁的例子中 , 只禁止命名塊也可以得到預(yù)期的結(jié)果:命名塊中所有的事件 , 包括任務(wù)和函數(shù)的執(zhí)行都將被取消 。 語法詳細(xì)講解 禁止命名塊和任務(wù) 語法詳細(xì)講解 有限狀態(tài)機( FSM) 隱式 FSM: ? 不需要狀態(tài)寄存器 ? 仿真更加有效 ? 只能很好地處理線性的狀態(tài)改變 ? 大部分綜合工具不支持隱式 FSM state 1 state 2 state 3 state 4 語法詳細(xì)講解 有限狀態(tài)機( FSM) 顯式 FSM: ? 結(jié)構(gòu)比較復(fù)雜 ?
點擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1