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

正文內(nèi)容

第17章verilog中的高級(jí)結(jié)構(gòu)-資料下載頁(yè)

2025-07-20 07:53本頁(yè)面
  

【正文】 tch)推斷 module latch (q, data, enable)。 input data, enable。 output q。 reg q。 always @( enable or data) if (enable) q = data。 endmodule 在 always塊中 , 如果沒(méi)有說(shuō)明所有條件 , 將產(chǎn)生 latch。 在下面的例子中 , 由于沒(méi)有定義 enable為低電平時(shí) data的狀態(tài) , 因此 enable為低電平時(shí) data的值必須保持 , 綜合時(shí)將產(chǎn)生一個(gè)存儲(chǔ)元件 同步反饋 (feedback)推斷 有反饋 : module dffn (q, d, clk, en)。 input d, clk, en。 output q。 reg q。 always @( negedge clk) if (en) q = d。 endmodule 綜合工具一般不支持組合邏輯反饋 , 但支持同步反饋 。 在同步過(guò)程塊中 , 如果條件語(yǔ)句的一個(gè)分支沒(méi)有給所有輸出賦值 ,則推斷出反饋 。 無(wú)反饋: module dffn (q, d, clk, en)。 input d, clk, en。 output q。 reg q。 always @( negedge clk) if (en) q = d。 else q = 39。bx。 endmodule 帶使能的寄存器 module dffn (q, d, clk, en)。 input d, clk, en。 output q。 reg q。 always @( negedge clk) if (en) q = d。 endmodule 上述帶反饋的描述用于帶使能端的寄存器的描述 。 在寄存器的描述中 , 敏感列表是不完全的 。 阻塞或非阻塞 使用的賦值類型依賴于所描述的邏輯類型: ? 在時(shí)序塊 RTL代碼中使用非阻塞賦值 – 非阻塞賦值保存值直到時(shí)間片段的結(jié)束 , 從而避免仿真時(shí)的競(jìng)爭(zhēng)情況或結(jié)果的不確定性 ? 在組合的 RTL代碼中使用阻塞賦值 – 阻塞賦值立即執(zhí)行 阻塞、非阻塞對(duì)比 非阻塞賦值語(yǔ)句并行執(zhí)行 , 因此臨時(shí)變量不可避免地在一個(gè)周期中被賦值 , 在下一個(gè)周期中被采樣 。 module bloc (clk, a, b)。 input clk, a。 output b。 reg y。 reg b。 always @( posedge clk) begin y =a。 b =y。 end endmodule module nonbloc (clk, a, b)。 input clk, a。 output b。 reg y。 reg b。 always @( posedge clk) begin y = a。 b = y。 end endmodule 使用阻塞賦值,此描述綜合出一個(gè) D flipflop: 使用非阻塞賦值,此描述將綜合出兩個(gè) D Flipflop。 復(fù)位 復(fù)位是可綜合編碼風(fēng)格的重要環(huán)節(jié) 。 狀態(tài)機(jī)中一般都有復(fù)位 。 module sync( q, ck, r, d)。 input ck, d, rst。 output q。 reg q。 always @( negedge ck) if (r) q = 0。 else q = d。 endmodule module async( q, ck, r, d)。 input ck, d, r。 output q。 reg q。 always @( negedge ck or posedge r) if (r) q = 0。 else q = d。 endmodule 同步復(fù)位 同步塊的異步復(fù)位 同步復(fù)位描述:在同步塊內(nèi) , 當(dāng)復(fù)位信號(hào)有效時(shí) , 進(jìn)行復(fù)位操作;當(dāng)復(fù)位信號(hào)無(wú)效時(shí) , 執(zhí)行該塊的同步行為 。 如果將復(fù)位信號(hào)作為條件語(yǔ)句的條件 , 且在第一個(gè)分支中進(jìn)行復(fù)位 , 綜合工具可以更容易的識(shí)別復(fù)位信號(hào) 。 異步復(fù)位:在同步塊的敏感表中包含復(fù)位信號(hào)的激活邊沿 。 在塊內(nèi) , 復(fù)位描述方式與同步方式相同 。 復(fù)位 下面的異步復(fù)位描述 ( 異步復(fù)位和同步塊分開(kāi) ) 是一種很不好的描述風(fēng)格 ,并且有的綜合工具不支持 。 在仿真中 , 如果 r和 ck在同一時(shí)刻改變 , 則結(jié)果不可確定 。 module async( q, ck, r, d)。 input ck, d, r。 output q。 reg q。 always @( negedge ck) if ( !r ) q = d。 always @( posedge r) q = 0。 endmodule 不好的異步復(fù)位描述方式 帶復(fù)位、置位的鎖存器 latch 下面的例子給出了一個(gè)復(fù)雜一些的復(fù)位分支 。 由于是一個(gè) latch,因此敏感表是完全的 。 module latch (q, enable, set, clr, d)。 input enable, d, set, clr。 output q。 reg q。 always @( enable or set or clr or d) begin if (set) q = 1。 else if (clr) q = 0。 else if (enable) q = d。 end endmodule 有限狀態(tài)機(jī) 有限狀態(tài)機(jī)有兩種不同類型 — 顯式和隱式 。 ? 隱式狀態(tài)機(jī)用多個(gè) @(posedge clk)語(yǔ)句指出狀態(tài)跳變 。 – 隱式狀態(tài)機(jī)的抽象級(jí)比顯式狀態(tài)機(jī)高 , 通常不可綜合 。 ? 顯式狀態(tài)機(jī)用 case語(yǔ)句顯式定義每個(gè)可能狀態(tài) 。 – 通常 , 顯式狀態(tài)機(jī)用于可綜合代碼描述 。 顯式有限狀態(tài)機(jī) `timescale 1ns/100ps module state4 (clock, reset, out)。 input reset, clock。 output [1: 0] out。 reg [1: 0] out。 parameter //狀態(tài)變量枚舉 stateA = 239。b00, stateB = 239。b01, stateC = 239。b10, stateD = 239。b11。 reg [1: 0] state。 //狀態(tài)寄存器 reg [1: 0] nextstate。 always @( posedge clock) if (reset) //同步復(fù)位 state = stateA。 else state = nextstate。 always @( state) // 定義下一狀態(tài)的組合邏輯 case (state) stateA: begin nextstate = stateB。 out = 2‘b00。 // 輸出決定于當(dāng)前狀態(tài) end stateB: begin nextstate = stateC。 out = 239。b11。 end stateC: begin nextstate = stateD。 out = 239。b10。 end stateD: begin nextstate = stateA。 out = 239。b00。 end endcase endmodule 有限狀態(tài)機(jī) FSM指導(dǎo) ? enum指導(dǎo) – 狀態(tài)賦值枚舉 , 也用來(lái)將狀態(tài)賦值捆綁到狀態(tài)向量 。 ? state_vector指導(dǎo) – 定義狀態(tài)寄存器和編碼類型 狀態(tài)機(jī)的描述也有綜合指導(dǎo) 。 在 RTL代碼中 , FSM指導(dǎo)向優(yōu)化器傳遞狀態(tài)機(jī)有關(guān)的特性信息 。 這些指導(dǎo)有: FSM指導(dǎo) `timescale 1ns/ 100ps module state4 (clock, reset, out)。 input reset, clock。 output [1: 0] out。 reg [1: 0] out。 parameter /* ambit synthesis enum state_info */ stateA = 239。b00, stateB = 239。b01, stateC = 239。b10, stateD = 239。b11。 reg [1: 0] /* ambit synthesis enum state_info */ state。 reg [1: 0] /* ambit synthesis enum state_info */ nextstate。 always @( posedge clock) /* ambit synthesis state_vector state encoding one_hot */ if (reset) state = stateA。 else state = nextstate。 . . . 枚舉名稱定義 枚舉名稱限用于 state、nextstate向量 定義狀態(tài)寄存器并指定編碼格式 資源共享 資源共享是指多節(jié)代碼共享一組邏輯 。 例如: always @( a or b or c or d) if (a) out = b + c。 else out = b + d。 沒(méi)有資源共享 資源共享 資源共享與所用綜合工具有關(guān)。但通常,要共享資源,表達(dá)式必須在同一個(gè) always塊中的同一個(gè)條件語(yǔ)句中。 資源共享 資源共享可以由 RTL代碼控制 。 例如 , 可以改變編碼風(fēng)格強(qiáng)制資源共享 。 if (a) out = b + c。 else out = b + d。 原始代碼 強(qiáng)制資源共享 temp = a ? c : d。 out = b + temp。 或 out = b + (a ? c : d)。 復(fù)雜操作符 ? 大多數(shù)工具可以將它映射為一個(gè)乘法器 。 ? 專用宏單元庫(kù)中可能有乘法器 。 宏單元庫(kù)中的元件的復(fù)雜程度要比常規(guī)單元庫(kù)高 。 ? 宏單元庫(kù)可以包含部分可重用設(shè)計(jì) , 如 FIFO, 加法器 ,減法器 ( 各種結(jié)構(gòu) ) , 移位寄存器 , 計(jì)數(shù)器和解碼器等 。 、 ? 宏單元庫(kù)還可以包括用戶自定義的可重用塊 , 由用戶自己設(shè)計(jì)并綜合 。 復(fù)雜操作符是可以被識(shí)別為高層操作并被直接映射到一個(gè)向量庫(kù)內(nèi)以存在單元的操作 。 例如: out = a * b。 綜合工具不能勝任的工作 ? 時(shí)鐘樹(shù) ? 復(fù)雜的時(shí)鐘方案 ? 組合邏輯反饋循環(huán)和脈沖發(fā)生器 ? 存儲(chǔ)器 , IO ? 專用宏單元 ? 總做得和你一樣好 綜合工具不能勝任的工作 綜合工具善于優(yōu)化組合邏輯 。 但設(shè)計(jì)中有很大一部分不是組合邏輯 。 ? 例如 , 時(shí)鐘樹(shù) 。 時(shí)鐘樹(shù)是全局的 、 芯片范圍的問(wèn)題 。 在沒(méi)有版圖布局信息的情況下 , 要給出較優(yōu)的結(jié)果 , 綜合工具對(duì)塊的大小有一定的限制 。 ? 綜合工具不能很好地處理復(fù)雜時(shí)鐘 。 通常 , 只允許要綜合
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1