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

正文內(nèi)容

verilog語法詳細(xì)解讀-文庫吧資料

2024-10-24 21:08本頁面
  

【正文】 ? 如果在表中沒有規(guī)定輸入組合,將輸出 x。 1 1 x : 1。 ? 1 0 : 1。 1 ? 1 : 1。 input s, a, b。 語法詳細(xì)講解 特征 語法詳細(xì)講解 特征 輸入 內(nèi)存 15 1 6 5 7 17 8 56 9 187 10 623 組合邏輯示例: 21 多路器 語法詳細(xì)講解 示例 primitive multiplexer(o, a, b, s)。 ? UDP 輸入端最多可以有 10 個,但是當(dāng)輸入的個數(shù)多于 5 個時,內(nèi)存的需要將大大的增加。 語法詳細(xì)講解 特征 注: ? UDP 只能有一個輸出。 ? 在仿真的開始, UDP 的輸出可以使用 initial 語句初始化為一個已知值。 ? UDP 所有端口變量必須是標(biāo)量,不允許使用雙向端口。 語法詳細(xì)講解 什么是 UDP? ? UDP 只能有一個輸出端,而且必須是端口的說明列表的第一項。另外, UDP 的仿真時間和內(nèi)存需要大大低于運行分立原器件。 ? 在嵌入原器件中,輸入中包含的 x 不能在輸出時自動轉(zhuǎn)變成 x, 而在 UDP 中則不會出現(xiàn)此種情況。 ? 調(diào)用 UDP 的方式與調(diào)用嵌入的原器件的方式相同。 ? UDP 既可以用來代替時序邏輯元件,也可以代替組合邏輯元件。 ? 可以使用 UDP 擴(kuò)大預(yù)定義原器件的范圍。 ? 用戶定義的原語。 ? 用戶定義的原語 (UDP) 的行為與嵌入的 Verilog 原器件相似,可以用一個表格來定義它的功能。 ? 在隱式狀態(tài)機(jī)中,很難規(guī)定一個默認(rèn)動作。 ? 若沒有強(qiáng)制狀態(tài)重復(fù)(例如:在循環(huán)語句或 disable語句中強(qiáng)制狀態(tài)重復(fù)),當(dāng)下一個激活時鐘沿到達(dá)時,狀態(tài)改變。 end endmodule 語法詳細(xì)講解 隱式有限狀態(tài)機(jī) 0 1 1 0 1 識別 11序列 clk rst out 注意: ? 可以在過程塊使用多個時鐘沿(一個狀態(tài)一個)、條件語句、循環(huán)語句、 disable語句來描述隱式 FSM。 if(!datain) //狀態(tài)一:輸出零 disable seq_block。 disable seq_block。 always (rst) //協(xié)同復(fù)位方法 if (rst) assing out=1?b0。 reg out。 語法詳細(xì)講解 顯式有限狀態(tài)機(jī) 轉(zhuǎn)到下一個狀態(tài) 默認(rèn)狀態(tài)指針 0 1 1 0 1 識別 11序列 clk rst out module imp(out, datain, clk, rst)。 ? 要改變當(dāng)前的狀態(tài) , 必須改變狀態(tài)變量的值 , 狀態(tài)變量的值的改變要與時鐘沿同步 。 endcase endmodule 注: ? 可以在過程塊中使用一個單一的時鐘沿和一個 case 語句來描述一個顯式狀態(tài)機(jī) 。 state=1?b0。 else state=1?b1。 else case(state) 1?b0: begin out=1?b0。 ret state。 output out。 ... 語法詳細(xì)講解 Verilog 函數(shù) 語法詳細(xì)講解 顯式有限狀態(tài)機(jī) module exp(out, datain, clk, rst)。 K=K+1) reverse_bits [MAX_BITS(K+1)]=data[K]。 for(K=0。 input [7:0] data。 reg [MAX_BITS:1] D。 endmodule 語法詳細(xì)講解 Verilog 函數(shù) 可以給返回變量的每一位賦值,還可以參數(shù)化函數(shù)的大小、函數(shù)口、甚至函數(shù)的行為。 //結(jié)果可能是負(fù)數(shù) endfunction always (a or b) if(subtr(a, b)0) neg=1。 input [7:0] in_a, in_b。 reg neg。 module checksub(neg, in_a, in_b)。 I=I+1) if(!in_bus[I]) zero_count=zero_count+1。 for(I=0。 語法詳細(xì)講解 Verilog 函數(shù) integer I。 function [3:0] zero_count。 output [7:0] goo。 module foo。 在函數(shù)中無論多少次對函數(shù)名進(jìn)行賦值 , 值只返回一次 。 語法詳細(xì)講解 有限狀態(tài)機(jī)( FSMs) 語法詳細(xì)講解 Verilog 函數(shù) 要返回一個矢量值 ( 超過一個位寬 ) , 可以在函數(shù)名前聲明變量的位寬 。 ? 隱式狀態(tài)機(jī)應(yīng)屬于行為級 , 而不應(yīng)屬于 RTL級 , 代碼中主要包含循環(huán) 、 嵌入的定時控制 , 有時也含有命名事件 、 wait 和 disable 語句 。 ? 一般的 , 如果狀態(tài)改變比較簡單 , 又定義的比較好 , 而且綜合工具支持隱式狀態(tài)機(jī) , 就可以使用隱式類型 。 語法詳細(xì)講解 禁止命名塊和任務(wù) 語法詳細(xì)講解 有限狀態(tài)機(jī)( FSM) 隱式 FSM: ? 不需要狀態(tài)寄存器 ? 仿真更加有效 ? 只能很好的處理線形狀態(tài)改變 ? 大部分綜合工具不支持隱式 FSM state 1 state 2 state 3 state 4 語法詳細(xì)講解 編譯引導(dǎo)語句 顯式 FSM: ? 結(jié)構(gòu)更加復(fù)雜 ? 可以很方便的用來處理默認(rèn)狀態(tài) ? 能夠處理復(fù)雜的狀態(tài)改變 ? 所有的綜合工具均支持顯式 FSM 語法詳細(xì)講解 有限狀態(tài)機(jī)( FSM) state A state A state A state A state A 注意: ? 在隱式 FSMs 中 , 無論什么時候在一個時鐘周期內(nèi)寫數(shù)據(jù)和在在另一個時鐘周期內(nèi)讀數(shù)據(jù) , 都會創(chuàng)建寄存器 。 ? 在綜合中一般不支持 disable語句 。 //***禁止命名塊的執(zhí)行 *** end //在此定義任務(wù)和函數(shù) endmodle 注意: ? disable語句用來終止命名塊或任務(wù)的執(zhí)行 , 因此可以在執(zhí)行所有的語句前 , 就能從命名塊或任務(wù)的執(zhí)行中返回 。 //任務(wù)調(diào)用 end always (negedge en_mult) begin //停止計算 disable multme。 //***本地變量 *** {tmp, tmp2}=f_or_and(a, b, c, d, e)。 reg [14:0] out。 input [7:0] a, b, c, d, e。 語法詳細(xì)講解 命名塊 語法詳細(xì)講解 禁止命名塊和任務(wù) module do_arith(out, a, b, c, d, e, clk, en_mult)。 注意: ? 命名塊使 Verilog有更廣闊的適用范圍 。 …… begin :seq_blk …… end …… fork : par_blk …… join …… endmodule ? 可以在命名塊中聲明本地變量 。 語法詳細(xì)講解 Verilog 函數(shù) 語法詳細(xì)講解 命名塊 ? 可以通過在關(guān)鍵字 begin或 fork后加上: 〈 塊名 〉 來給塊命名 。 語法詳細(xì)講解 Verilog 函數(shù) ? 雖然函數(shù)只能返回一個值 , 但是它們的返回值可以直接的賦給一個信號拼接 , 從而使它們有多個輸出 。 ? 函數(shù)不能調(diào)用任務(wù) , 但任務(wù)可以調(diào)用函數(shù) 。 ? 傳遞給函數(shù)參數(shù)的順序與函數(shù)輸入?yún)?shù)聲明的順序相同 。 要點 ? 函數(shù)定義不能包含定時控制語句 。 endfunction endmodule 語法詳細(xì)講解 Verilog 函數(shù) 雖然函數(shù)不能包含定時控制 , 但是可以在包含定時控制的過程塊中調(diào)用函數(shù) 。(c|d)。 input [7:0] a, b, c, d, e。 always (a or b or c or d or e) out=f_or_and(a, b, c, d, e)。 output [7:0] out。 endtask endmodule 語法詳細(xì)講解 Verilog 任務(wù) module orand(a, b, c, d, e, out)。 output [7:0] result。 //任務(wù)調(diào)用 語法詳細(xì)講解 Verilog 任務(wù) task muotme。 reg [15:0] out。 input [3:0] a, b。 module mult(clk, a, b, out, en_mult)。 …… 語法詳細(xì)講解 Verilog 任務(wù) 下面模塊中的任務(wù)含有輸入、輸出、時間控制和一個內(nèi)部變量,并且引用了一個本模塊的變量,但是沒有輸出,不顯示任何內(nèi)容。 K=K+1) reverse_bits [MAXBITS – (K+1)=data[K]。 for (k=0。 inout [7:0] data。 reg [MAX_BITS:1] D。 在任務(wù)調(diào)用時 , 任務(wù)參數(shù) ( 口 ) 類型被視為內(nèi)部寄存器類型 。 若在其它模塊中調(diào)用任務(wù)或函數(shù) , 任務(wù)和函數(shù)中所使用的變量必須包含在輸入 /輸出口列表中 。 這種情況通常發(fā)生在使用時間控制的任務(wù)中 。 注意:不要在程序的不同部分同時調(diào)用同一個任務(wù) 。 ? 在 Verilog中 , 任務(wù)定義了一個新的 范圍 。 雖然傳遞給任務(wù)的參數(shù)名可以和任務(wù)內(nèi)部 I/O聲明的參數(shù)名相同 , 但是為了提高任務(wù)的模塊化程度 , 傳遞給任務(wù)的參數(shù)名通常是唯一的 ,而不使用與任務(wù)內(nèi)部 I/O聲明的參數(shù)名相同的參數(shù)名 。 ? 任務(wù)中可以包含 input, output和 inout參數(shù) 。 b=0。 //任務(wù)調(diào)用 a=0。 b=1。 endtask initial begin clk=0。 input [31:0] number_of_edges。 always 5 clk=!clk。 reg clk, a, b。 時間控制中使用的信號(例如 clk)不必是任務(wù)的輸入,這是因為輸入值只向任務(wù)內(nèi)部傳遞一次。例如:當(dāng)任務(wù)或函數(shù)中包含一個 forever循環(huán)時,就不可能有返回值。 ? 所有的輸入和輸出都是真正的本地寄存器類型的數(shù)據(jù)。 可以調(diào)用其他的函數(shù) , 但不可以調(diào)用任務(wù) 語法詳細(xì)講解 第十七部分 Verilog中的高級結(jié)構(gòu) 注: ? 必須在模塊內(nèi)調(diào)用任務(wù)和函數(shù)。 語法詳細(xì)講解 第十七部分 Verilog中的高級結(jié)構(gòu) 可以通過把代碼分成小的模塊或者使用任務(wù)和函數(shù) , 來把一項任務(wù) 分成許多較小的 、 易于管理的部分 , 從而提高代碼的重用性 。 ? 學(xué)會怎樣使命名塊和任務(wù)失效 。 語法詳細(xì)講解 雙向口建模 目標(biāo) ? 學(xué)會怎樣定義或調(diào)用任務(wù)和函數(shù) 。 在 rd處于高電平時
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1