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

正文內(nèi)容

語法詳細(xì)講解強(qiáng)制激勵(lì)-資料下載頁

2024-09-28 10:13本頁面

【導(dǎo)讀】過程連續(xù)賦值往往是不可以綜合的,通常用在測試模塊中。兩種方式都有各自配套的命令來停止賦值過程。兩種不同方式均不允許賦值語句間的時(shí)間控制。描寄存器的輸出)的強(qiáng)制賦值,強(qiáng)制改寫其它地方的賦值。的信號(hào)被強(qiáng)制賦值,而別處對(duì)該變量的賦值均無效。force的賦值優(yōu)先級(jí)高于assign。當(dāng)執(zhí)行release后,則信號(hào)的值為assign所賦的值。三個(gè)例子分別說明如何在門級(jí)和行為級(jí)建立不同波形的時(shí)鐘模型。模型產(chǎn)生的,則仿真器的性能就能得到提高。而門級(jí)描述的模型開始延遲有半個(gè)周期是不確定的。學(xué)會(huì)在Verilog中進(jìn)行雙向口建模。聲明存儲(chǔ)容量的大小。ROM中的數(shù)據(jù)保存在一個(gè)獨(dú)立的文件中,如上面的右邊所示。

  

【正文】 ? 在第二個(gè)例子中, a 和 b 也用作 always 塊的條件。 不完整敏感列表: module sens(a, q, b, sl)。 input a, b, sl。 output q。 reg q。 always @(sl) begin 語法詳細(xì)講解 敏感列表 if(!sl) q=a。 else q=b。 end endmodule 完整敏感列表: module sens(q, a, b, sl)。 input a, b, sl。 output q。 語法詳細(xì)講解 敏感列表 reg q。 always @(sl or a or b) begin if(!sl) q=a。 else q=b。 end endmodule 注:在敏感列表中最好包括所有的輸入。對(duì)于不完整列表,不同的綜合工具處理的方法不同:一些綜合工具認(rèn)為不完整列表是不合 語法詳細(xì)講解 敏感列表 法的,而其他的綜合工具則發(fā)出警告并將其當(dāng)作完整列表處理。因此,綜合輸出可能與 RTL 描述有所不同。 語法詳細(xì)講解 敏感列表 在進(jìn)行連續(xù)賦值時(shí),輸入的任何改變都將導(dǎo)致輸出的同步更新。 module orand(out, a, b, c, d, e)。 input a, b, c, d, e。 output out。 assign out=3amp。(a|b)amp。(c|d)。 endmodule 語法詳細(xì)講解 連續(xù)賦值 過程連續(xù)賦值是在過程塊( always 和 initial 塊 )內(nèi)部對(duì)寄存器類型的數(shù)據(jù)進(jìn)行的連續(xù)賦值。 module latch_quasi(q, en, d)。 input en, d。 output q。 reg q。 always @(en) if(en) assign q=d。 else deassign q。 endmodule 語法詳細(xì)講解 過程連續(xù)賦值 ? 大部分綜合工具都能處理指令。 ? 可在 Verilog 語句之間嵌入指令, Verilog 仿真器將忽略嵌入的指令,但在綜合工具編譯時(shí),它們是有意義的。 ? 不同的綜合工具有不同的指令語法,當(dāng)它們使用指令的目的都是優(yōu)化 RTL 代碼。 下面給出了一部分 Cadence 綜合工具中支持的綜合指令的列表,它們與其他綜合工具(例如: Synopsys 設(shè)計(jì)編譯器)中的指令非常相似。 //ambit synthesis on //ambit synthesis off //ambit synthesis case=full、 parallel、 mux 語法詳細(xì)講解 綜合指令 結(jié)構(gòu)指令 //ambit synthesis architecture=cla or rpl 有限狀態(tài)機(jī)指令 //ambit synthesis enum xyz //ambit synthesis stat_vector sig state_vector_flag 注:指令中通常包括綜合工具或公司的名稱,例如:上面指令中的ambit 表示使用的 Envisia Ambit 綜合指令。 語法詳細(xì)講解 綜合指令 case 指令 case 指令一般被綜合為優(yōu)先編譯器,其中列表中的 case 項(xiàng)優(yōu)先級(jí)較高。 case 指令的含義如下所示: ? //ambit synthesis case=parallel 對(duì)解碼邏輯進(jìn)行并行編譯,沒有優(yōu)先級(jí)。 ? //ambit synthesis case=mux 如果庫中含有多路器,則使用多路器編譯解碼邏輯。 ? //ambit synthesis case=full 設(shè)定忽略沒有包含在 case 語句中的情形(這些情形不會(huì)發(fā)生),這樣可以更好的優(yōu)化邏輯并可避免發(fā)生鎖存。 語法詳細(xì)講解 綜合指令 語法詳細(xì)講解綜合指令完整條件語句 module case(a, b, c, d, e)。 input a, b, c, d。 output e。 reg e。 always @(a or b or c or d) case ({a,b}) 2?b11: e=d。 2?b10: e=~c。 2?b01: e=1?b0。 2?b00: e=1?b1。 endcase endmodule 語法詳細(xì)講解 條件語句 module pif(a, b, c, d, e)。 input a, b, c, d。 output e。 reg e。 always @(a or b or c or d) if(aamp。b) e=d。 else if (aamp。~b) e=~c。 else if (~ aamp。b) e=1?b0。 else if (~aamp。~b) e=1?b1。 endmodule 語法詳細(xì)講解 條件語句 module inccase(a, b, c, d, e)。 input a, b, c, d。 output e。 reg e。 always @(a or b or c ord) case ({a,b}) 2?b11: e=d。 2?b10: e=~c。 endcase endmodule 語法詳細(xì)講解 不完整條件語句 module incpif(a, b, c, d, e)。 input a, b, c, d。 output e。 reg e。 always @(a or b or c or d) if (aamp。b) e=d。 else if(aamp。~b) e=~c。 endmodule 語法詳細(xì)講解 不完整條件語句 在前面所述的例子中,當(dāng) a 為 0 時(shí),沒有值賦給 e。 因此, e 將保存原來的值,直到 a 變?yōu)? 1。此行為與鎖存器的特性相同。 語法詳細(xì)講解 不完整條件語句 module case(a, b, c, d, e)。 input a, b, c, d。 output e。 reg e。 always @(a or b or c or d) case ({a,b}) 2?b11: e=d。 2?b10: e=~c。 default: e=?bx。 endmodule 語法詳細(xì)講解 帶有缺省項(xiàng)的完整條件語句 module pif(a, b, c, d, e)。 input a, b, c, d。 output e。 reg e。 always @(a or b or c or d) if (aamp。b) e=d。 else if (aamp。~b) e=~c。 else e=?bx。 endmodule 語法詳細(xì)講解 帶有缺省項(xiàng)的完整條件語句 在前面的例子中,雖然沒有定義所有可能的選擇,但為沒有定義的選擇定義了缺省的行為。因此,它們都是純的組合邏輯,并沒有產(chǎn)生額外的鎖存器。 語法詳細(xì)講解 帶有缺省項(xiàng)的完整條件語句 module dircase(a, b, c, d) input b, c。 input [1:0] a。 output d。 reg d。 always @(a or b or c) case (a) //ambit synthesis case = full 2?b00: d=b。 2?b01: d=c。 endcase endmodule 語法詳細(xì)講解 帶有指令的完整 case 語句 在此例中, 雖然沒有定義所有可能的選擇,但其中的指令通知優(yōu)化器沒有定義的選擇將不會(huì)發(fā)生。此例為純組合邏輯,不會(huì)產(chǎn)生鎖存器。 當(dāng)設(shè)置了 case 指令為 full 時(shí),也可從 case 語句中綜合出鎖存器。示例如下: module select ( a, b, sl)。 input [1:0] sl。 output a, b。 reg a, b。 always @(sl) case (sl) //ambit synthesis case = full 2?b00: begin a=0。 b=0。 end 2?b01: begin a=1。 b=1。 end 2?b00: begin a=0。 b=1。 end 語法詳細(xì)講解 case 指令的例外情況 2‘ b11: b=1。 default: begin a=?bx。 b=?bx。 end endcase endmodule 語法詳細(xì)講解 case 指令的例外情況 函數(shù)不包含時(shí)間控制,因此它們綜合為組合邏輯。可以在過程塊和連續(xù)賦值語句中調(diào)用函數(shù)。 下面是 or/and 塊,其中在連續(xù)賦值語句中調(diào)用了函數(shù)。 module orand(out, a, b, c, d, e)。 input a, b, c, d, e。 output out。 wire out。 assign out=forand(a, b, c, d, e)。 function forand。 if(e==1) forand(a|b)amp。(c|d)。 語法詳細(xì)講解 函數(shù) else forand=0。 endfunction endmodule 語法詳細(xì)講解 函數(shù) 任務(wù)僅用于測試模塊中,因?yàn)椋? ? 不包含時(shí)間控制的任務(wù)與函數(shù)的作用相似。 ? 包含時(shí)間控制的任務(wù)是不可綜合的。 下面的 or/and 塊中調(diào)用了任務(wù): module orandtask(out, a, b, c, d, e)。 input a, b, c, d, e。 output out。 reg out。 always @(a or b or c or d or e) orand(out, a, b, c, d, e)。 task orand。 input a, b, c, d, e。 語法詳細(xì)講解 任務(wù) output out。 if(e==1) out=(a|b)amp。(c|d)。 else out=0。 endtask endmodule 語法詳細(xì)講解 任務(wù) 在 always 塊中,如果沒有規(guī)定所有的條件,則會(huì)產(chǎn)生鎖存器。在下面的例子中,當(dāng) enable 為低電平時(shí),沒有定義怎樣處理 q 和 data, 因此 data 的值將會(huì)被保存下來。綜合器必須使用存儲(chǔ)元件來編譯此邏輯。 module latch(q, data, enable)。 input data,enable。 output q。 reg q。 always @(enable or data) if(enable) q=data。 endmodule 語法詳細(xì)講解 怎樣產(chǎn)生鎖存器 綜合工具一般只支持同步反饋,而不支持組合反饋。 在條件語句每個(gè)分支中,當(dāng)過程塊沒有為每個(gè)輸出賦值時(shí),就會(huì)產(chǎn)生反饋 語法詳細(xì)講解 怎樣產(chǎn)生同步反饋 產(chǎn)生反饋: module dffn(q,d,clk,en)。 input d, clk, en。 output q。 reg q。 always @(negedge clk) if(en) q=d。 endmodule 不產(chǎn)生反饋: module dffn(q,d,clk,en)。 input d, clk, en。 output q。 reg q。 always @(negedge clk) if(en) q=d。 else q=?bx。 endmodule 賦值的類型的選擇取決于建模的邏輯類型 ? 在時(shí)序塊的 RTL 代碼中使用非阻塞賦值。 非阻塞賦值在塊結(jié)束后才完成賦值操作,此賦值方式可以避免在仿真出現(xiàn)冒險(xiǎn)和競爭現(xiàn)象。 ? 在組合的 RTL 代碼中使用阻塞賦值。 使用阻塞方式對(duì)一個(gè)變量進(jìn)行賦值時(shí),此變量的值在在賦值語句執(zhí)行完后就立即改變。 語法詳細(xì)講解 阻塞與非阻塞(
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1