【正文】
~a1 ~a2 ) 。 // 1 and2 and_inst ( qout, a, b)。 // 2 always (posedge clk or posedge clr) //3 begin if (clr) q= 0。 else if (en) q= d。 end 三條語句是并行的 , 它們產(chǎn)生獨(dú)立的邏輯電路; 而在 always 塊中 : begin 與 end 之間是順序執(zhí)行的 。 Verilog模塊中的信號(hào) ? 只有兩種主要的信號(hào)類型: 寄存器類型: reg 在 always 塊中被賦值的信號(hào) , 往往 代表 觸發(fā)器 , 但不一定是觸發(fā)器 。 連線類型: wire 用 assign 關(guān)鍵詞指定的組合邏輯的信號(hào) 或連線 ? 寄存器 ( reg )類型 不一定是觸發(fā)器 。 ? 它只是在 always 塊中賦值的信號(hào) 。 Verilog中 reg與 wire的不同點(diǎn) ? 用寄存器 (reg)類型變量生成組合邏輯舉例: module rw1( a, b, out1, out2 ) 。 input a, b。 output out1, out2。 reg out1。 wire out2。 assign out2 = a 。 always (b) out1 = ~b。 endmodule a out2 BUFF b INV out1 Verilog中 reg與 wire的不同點(diǎn) ? 用寄存器 ( reg )類型變量生成觸發(fā)器的例子: module rw2( clk, d, out1, out2 ) 。 input clk, d。 output out1, out2。 reg out1。 wire out2。 assign out2 = d ~out1 。 always (posedge clk) begin out1 = d 。 end endmodule d out2 AND2i1 clk out1 D Q DFF Verilog中兩種不同的賦值語句 ? 不阻塞 ( nonblocking) 賦值語句: always (posedge clk) begin b = a 。 c = b。 end clk DFF c D Q D Q a b DFF Verilog中兩種不同的賦值語句 ? 阻塞 ( blocking) 賦值語句: always (posedge clk) begin b = a 。 c = b。 end clk DFF c D Q a b 兩種不同的賦值語句區(qū)別要點(diǎn) ? 不阻塞 ( nonblocking) 賦值語句 ( b= a): ? 塊內(nèi)的 賦值語句同時(shí)賦值; ? b 的值被賦成新值 a 的操作 , 是與塊內(nèi)其他賦值語句同時(shí)完成的; ? 建議在可綜合風(fēng)格的模塊中使用不阻塞賦值 。 ? 阻塞 ( blocking) 賦值語句 ( b = a): ? 完成該賦值語句后才能做下一句的操作; ? b 的值立刻被賦成新值 a。 ? 硬件沒有對(duì)應(yīng)的電路 , 因而綜合結(jié)果未知 。 謝謝觀看 /歡迎下載 BY FAITH I MEAN A VISION OF GOOD ONE CHERISHES AND THE ENTHUSIASM THAT PUSHES ONE TO SEEK ITS FULFILLMENT REGARDLESS OF OBSTACLES. BY FAITH I BY FAITH