看板 comm_and_RF 關於我們 聯絡資訊
※ 引述《theda (無限)》之銘言: : 我是verilog的新手.... : 我想請問一個基本的問題,在verilog中 : a=b; : 與 : a<=b;兩者的差異在哪裡? : 我只知道一個是non-blocking一個是blocking : 好像跟是不是同時執行有關.... : 想知道能不能有詳細依點的解釋,另外這兩種都可以合成嗎? 舉個CIC上課的例子 always @ (posedge clk or negedge n_rst)begin if(!n_rst)begin . . . end else begin a <= b ; b <= c ; c <= temp ; end end 合出來是shift register <= 意思大家同時間都要做的動作 always @ (posedge clk or negedge n_rst)begin if(!n_rst)begin . . . end else begin a = b ; b = c ; c = temp ; end end 若是改成 = 那synthesis tool會自動幫你做化減 變成a = temp ; 所以中間就少了兩個flip-flop 也就是本來你可能要合shift register結果變成a = temp ;這種直接給值的東西 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.132.144.169 ※ 編輯: sasako 來自: 220.132.144.169 (03/17 02:37)