→ wildwolf:兩者都可合成,如果你是為了要用合成使用 140.113.212.31 03/15 05:25
→ wildwolf:verilog 的話,描述 combintaional logic 140.113.212.31 03/15 05:26
→ wildwolf:時使用 = , 描述 sequentail logic 使用 140.113.212.31 03/15 05:26
→ wildwolf: <= 140.113.212.31 03/15 05:27
推 froalc:推 163.13.133.35 03/15 16:57
→ sasako:都可以合..220.132.144.169 03/17 02:26
→ sasako:只是用錯 合出來的東西可能不是你想要的220.132.144.169 03/17 02:27
> -------------------------------------------------------------------------- <
作者: sasako (微笑待人) 看板: comm_and_RF
標題: Re: [問題] RTL語法問題...
時間: Mon Mar 17 02:34:25 2008
※ 引述《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)