小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

verilog阻塞與非阻塞的綜合

 小櫻業(yè)余書吧 2013-07-15
關(guān)于阻塞和非阻塞語句的5大原則:
原則1: 時序電路建模時,用非阻塞賦值。
原則2: 用always塊寫組合邏輯時,采用阻塞賦值。
原則3: 在同一個always塊中不要同時使用非阻塞賦值和阻塞賦值。
原則4: 鎖存器電路建模時,用非阻塞賦值。
原則5: 在同一個always塊中同時建立時序和組合邏輯電路時,用非阻塞賦值。

最好按照這些原則去做,以免綜合出的電路不合要求。

例如:
always@(posedge clk)
begin
    a=a+1;
    b=a-c;
end

always@(posedge clk)
begin
    c=a;
end

endmodule 

b的結(jié)果為2。因為b取a賦值后的值,但取c賦值之前的值。
打開Tool->Netlist Viewer->RTL Viever查看綜合出的電路如圖:

實際上a、b、c觸發(fā)器的賦值仍然是同時進行的,只不過b會與a同時賦a+1的值。
如改為非阻塞語句:
always@(posedge clk)
begin
    a<=a+1;
    b<=a-c;
end

always@(posedge clk)
 
begin
    c<=a;
end

endmodule 

結(jié)果b=1,則綜合出電路如下:

區(qū)別僅在于b賦a而上面是b賦a+1。

如果是組合邏輯中的阻塞語句:
always@(posedge clk)
begin
    a<=a+1;
end

always@(a)
begin
    b=a+3;
    c=b+7;
end

則綜合結(jié)束如下:

b、c全由組合邏輯電路實現(xiàn)。
若使用非阻塞語句:
always@(posedge clk)
begin
    a<=a+1;
end

always@(a)
 
begin
    b<=a+3;
    c<=b+7;
end
則綜合出的電路和上面一樣。因此似乎在組合邏輯中使用非阻塞語句沒有意義。因此一般的在組合邏輯中就直接使用阻塞語句。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多