0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

systemverilog:logic比reg更有優(yōu)勢(shì)?

冬至子 ? 來源:IC的世界 ? 作者:IC小鴿 ? 2023-09-28 17:34 ? 次閱讀

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

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

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

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

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

如下案例中:cfg_mode 被多驅(qū)動(dòng),在實(shí)際項(xiàng)目設(shè)計(jì)中,多驅(qū)動(dòng)的問題往往更加隱蔽,更不容易發(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報(bào)錯(cuò):

image.png

如下案例中:cfg_mode 被多驅(qū)動(dòng),但是申明成reg類型,因此VCS不會(huì)報(bào)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
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 驅(qū)動(dòng)器
    +關(guān)注

    關(guān)注

    51

    文章

    7998

    瀏覽量

    145009
  • 仿真器
    +關(guān)注

    關(guān)注

    14

    文章

    1008

    瀏覽量

    83437
  • RTL
    RTL
    +關(guān)注

    關(guān)注

    1

    文章

    384

    瀏覽量

    59515
  • VCS
    VCS
    +關(guān)注

    關(guān)注

    0

    文章

    78

    瀏覽量

    9537
  • Verilog語言
    +關(guān)注

    關(guān)注

    0

    文章

    113

    瀏覽量

    8192
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    SystemVerilog學(xué)習(xí)一 —— 計(jì)數(shù)器

    本帖最后由 鼻子抽筋 于 2012-2-21 15:41 編輯 SystemVerilog給予Verilog、VHDL和C/C++優(yōu)點(diǎn)為一身的硬件描述語言,很值得學(xué)一學(xué)。1、8-bit up
    發(fā)表于 02-21 15:39

    [啟芯公開課] SystemVerilog for Verification

    學(xué)快速發(fā)展,這些趨勢(shì)你了解嗎?SystemVerilog + VM是目前的主流,在未來也將被大量采用,這些語言和方法學(xué),你熟練掌握了嗎?對(duì)SoC芯片設(shè)計(jì)驗(yàn)證感興趣的朋友,可以關(guān)注啟芯工作室推出的SoC芯片
    發(fā)表于 06-10 09:25

    systemverilog學(xué)習(xí)教程

    systemverilog的一些基本語法以及和verilog語言之間的區(qū)別。
    發(fā)表于 04-01 14:24

    是否有更好的方法來存儲(chǔ)reg [100,000:0] val更有效的大值

    我對(duì)xilinx和verilog有些新意。對(duì)于我正在研究的程序,我需要一個(gè)非常大的寄存器。 (大約100,000位)當(dāng)我嘗試編譯時(shí),需要很長時(shí)間,我想知道是否有更好的方法來存儲(chǔ)reg
    發(fā)表于 02-15 13:41

    使用SystemVerilog來簡化FPGA中接口的連接方式

    的一小部分,入門也很快,因此建議FPGA工程師學(xué)一下SystemVerilog。  本文中用到的logic關(guān)鍵字的解釋可以參考SystemVerilog教程之?dāng)?shù)據(jù)類型1  ?此次例程也比較簡單,有兩個(gè)模塊
    發(fā)表于 01-08 17:23

    噪聲頻譜密度(NSD)信噪比(SNR)更有用?

    大家有木有發(fā)現(xiàn),在比較在不同速度下工作的系統(tǒng)、或者查看軟件定義系統(tǒng)如何處理不同帶寬的信號(hào)時(shí),噪聲頻譜密度(NSD)可以說信噪比(SNR)更為有用。雖然它不能取代其他規(guī)格,但會(huì)是分析工具箱中的一個(gè)有用參數(shù)指標(biāo)。難道真的噪聲頻譜密度(NSD)信噪比(SNR)
    發(fā)表于 03-05 08:17

    SystemVerilog有哪些標(biāo)準(zhǔn)?

    SystemVerilog有哪些標(biāo)準(zhǔn)?
    發(fā)表于 06-21 08:09

    SystemVerilog Assertion Handbo

    SystemVerilog Assertion Handbook1 ROLE OF SYSTEMVERILOG ASSERTIONSIN A VERIFICATION METHODOLOGY
    發(fā)表于 07-22 14:08 ?188次下載

    SystemVerilog的斷言手冊(cè)

    SystemVerilog Assertion Handbook1 ROLE OF SYSTEMVERILOG ASSERTIONSIN A VERIFICATION METHODOLOGY
    發(fā)表于 07-22 14:12 ?20次下載

    SystemVerilog 3.1a Language Re

    Section 1 Introduction to SystemVerilog ..... 1Section 2 Literal Values... 42.1 Introduction
    發(fā)表于 07-22 14:18 ?39次下載

    SystemVerilog的正式驗(yàn)證和混合驗(yàn)證

    手冊(cè)的這一部分探討了使用SystemVerilog進(jìn)行驗(yàn)證,然后查看了使用SystemVerilog的優(yōu)點(diǎn)和缺點(diǎn)。
    發(fā)表于 03-29 10:32 ?24次下載

    數(shù)字硬件建模SystemVerilog之Interface方法概述

    SystemVerilog Interface是modport的一種,但簡單的輸入、輸出或輸入輸出端口的功能更多。
    的頭像 發(fā)表于 04-28 14:10 ?2219次閱讀
    數(shù)字硬件建模<b class='flag-5'>SystemVerilog</b>之Interface方法概述

    SystemVerilog在硬件設(shè)計(jì)部分有哪些優(yōu)勢(shì)

    談到SystemVerilog,很多工程師都認(rèn)為SystemVerilog僅僅是一門驗(yàn)證語言,事實(shí)上不只如此。傳統(tǒng)的Verilog和VHDL被稱為HDL(Hardware Description
    的頭像 發(fā)表于 10-19 11:19 ?942次閱讀
    <b class='flag-5'>SystemVerilog</b>在硬件設(shè)計(jì)部分有哪些<b class='flag-5'>優(yōu)勢(shì)</b>

    systemveriloglogicreg更有優(yōu)勢(shì)

    systemverilog協(xié)議中,logic定義四態(tài)值,即向量(vector)的每個(gè)位(bit)可以是邏輯0, 1, Z或X,與verilog協(xié)議中的reg很接近。但是logic有個(gè)
    的頭像 發(fā)表于 10-26 09:32 ?807次閱讀
    <b class='flag-5'>systemverilog</b>:<b class='flag-5'>logic</b><b class='flag-5'>比</b><b class='flag-5'>reg</b><b class='flag-5'>更有</b><b class='flag-5'>優(yōu)勢(shì)</b>

    SystemVerilog相比于Verilog的優(yōu)勢(shì)

    我們?cè)購膶?duì)可綜合代碼的支持角度看看SystemVerilog相比于Verilog的優(yōu)勢(shì)。針對(duì)硬件設(shè)計(jì),SystemVerilog引入了三種進(jìn)程always_ff,always_comb
    的頭像 發(fā)表于 10-26 10:05 ?705次閱讀
    <b class='flag-5'>SystemVerilog</b>相比于Verilog的<b class='flag-5'>優(yōu)勢(shì)</b>