日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > > 處芯積律

在systemverilog協(xié)議中,logic定義四態(tài)值,即向量(vector)的每個位(bit)可以是邏輯0, 1, Z或X,與verilog協(xié)議中的reg很接近。但是logic有個很明顯的優(yōu)勢,不允許多驅(qū)動。

多驅(qū)動對關(guān)鍵字logic而言是語法錯誤,在VCS編譯階段就能夠發(fā)現(xiàn),能夠更早得發(fā)現(xiàn)錯誤。

而在Verilog協(xié)議中,并沒有強(qiáng)調(diào)reg是不允許多驅(qū)的,因此VCS等編譯工具不會主動報錯。

需要在spyglass lint才能檢查出來,或者通過VCS 仿真發(fā)現(xiàn)。

在芯片設(shè)計中,更早的暴露問題一直是設(shè)計和驗證人員追求的目標(biāo),因此在RTL編碼時,如果正常設(shè)計是不允許多驅(qū)動的場景中,建議使用logic替代reg。

如下案例中:cfg_mode 被多驅(qū)動,在實際項目設(shè)計中,多驅(qū)動的問題往往更加隱蔽,更不容易發(fā)現(xiàn)。

module try_top (
input clk , // input rst_n , // input [1:0] cfg_mode_in //
); logic [1:0] cfg_mode ; always_ff@(posedge clk, negedge rst_n) if(~rst_n) cfg_mode <= 1'b0; else cfg_mode <= cfg_mode_in;
always_ff@(posedge clk, negedge rst_n) if(~rst_n) cfg_mode <= 1'b0; else cfg_mode <= cfg_mode_in;


endmodule

VCS報錯:

如下案例中:cfg_mode 被多驅(qū)動,但是申明成reg類型,因此VCS不會報ERROR。

module try_top (
input clk , // input rst_n , // input [1:0] cfg_mode_in //
);
reg [1:0] cfg_mode ; always@(posedge clk or negedge rst_n) if(~rst_n) cfg_mode <= 1'b0; else cfg_mode <= cfg_mode_in;
always@(posedge clk or negedge rst_n) if(~rst_n) cfg_mode <= 1'b0; else cfg_mode <= cfg_mode_in;


endmodule

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
關(guān)閉