0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Verilog和SystemVerilog定义了4种描述信号状态

数字前端ic芯片设计 来源:未知 作者:李倩 2018-03-29 15:40 次阅读

Verilog和SystemVerilog定义了4种描述信号状态: 1, 0, X, and Z。1和0无疑是真实存在的信号状态. 而Z用来表示高阻态,X用来表示不确定的状态。

X信号可以有意或无意地被创建,最常见的X信号存在于未被初始化的memory register,这里X用来表示这些memory在reset之前的的未知状态 。其他一些可以产生X的场景包括了不同的driver驱动同一块逻辑到不同的逻辑值,或者是在low power中的关断信号,又或者是一些超过选择范围的多比特信号。 有些设计者会对design中那些dont care的信号设为X,让综合工具在做优化的时候来随机选择0或者1进行优化。也有些设计者为了debug的目的在设计中对那些不会用到的逻辑值设X,这样在做仿真的时候如果使用到这些逻辑,说明电路有问题,而仿真工具产生的X可以检查到这些逻辑。有意地设置一些X信号是比较有争议的做法。在做lint检查的时候也会被标识出来。但是有些X状态由于仿真器识别的原因(verilog X optimism)会产生错误的仿真结果。这就属于RTl的bug了。

第一个verilog X optimism的例子来自if...else语句:

1
2
3
4
5
6
always_ff@(posedge clk)begin
if(cond)
c <= a;
else
c <= b;
end

Verilog LRM 指出如果if...else的条件是X状态,那么这个条件就会被当作false处理,在这里只有else语句会被执行。

在实际设计中有一种情况可能会产生这种问题:cond信号来自于memory。比如汉明码SECDED(single error correction double error detection)解码器,其检测的序列是储存汉明码的寄存器,这段序列是否错误的cond是由这些寄存器经过一段组合逻辑产生,当cond为TRUE时输出错误信号error=1。在reset之前这些寄存器都是X状态,原本错误信号应该是error=1,但是在仿真中由于verilog X optimism这种特性,寄存器的X经过组合逻辑传播到cond,导致最后将cond=X判断为FALSE,输出错误信号为0,这就与实际电路行为相违背了。

Verilog X optimism的另外一个例子是case语句:

1
2
3
4
5
6
always_ff@(posedge clk)begin
case(cond)
1'b0 : c = a;
1'b1 : c = b;
endcase
end

在case语句中如果cond为X的话,c将会保留原值。这里原本是描述了一个mux的行为,但由于X optimism的原因,仿真行为与RTL描述不一致。

此外,Verilog X optimism还会影响到0/1->X/Z的处理。下面的这些状态转移都会被视为posedge:

0->1, 0->X, 0->Z, X->1, Z->1

0->X or X->1实际上不一定是posedge,但在仿真中,他们都会被当作posedge处理。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    30

    文章

    4995

    浏览量

    117424
  • Verilog
    +关注

    关注

    28

    文章

    1323

    浏览量

    109218

原文标题:verilog——X optimism

文章出处:【微信号:ic_frontend,微信公众号:数字前端ic芯片设计】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    systemverilog学习教程

    systemverilog的一些基本语法以及和verilog语言之间的区别。
    发表于 04-01 14:24

    (2)打两拍systemverilog与VHDL编码 精选资料分享

    2打两拍systemverilog与VHDL编码1 本章目录1)FPGA简介2)SystemVerilog简介3)VHDL简介4)打两拍verilog编码5)打两拍VHDL编码6)结束
    发表于 07-26 06:19

    以一更优雅的方式去实现一个Verilog版的状态

    描述:基于此,我们便可以方便快捷的去描述状态机,以一更优雅的方式去实现状态描述,而对于他人阅
    发表于 07-13 14:56

    Verilog/SystemVerilog快速实现一个加法树

    电路描述的差异考虑下下面两电路的差异:sum=data_0+data_1+data_2+data_3其综合电路为:sum=(data_0+data_1)+(data_2+data_3)其综合
    发表于 08-01 14:29

    SystemVerilog 3.1a语言参考手册

    本参考手册详细描述了Accellera为使用Verilog硬件描述语言在更高的抽象层次上进行系统的建模和验证所作的扩展。这些扩展将Verilog语言推向了系统级空间和验证级空间。
    发表于 07-22 12:14 187次下载

    格雷码计数器的Verilog描述

    格雷码计数器的Verilog描述
    发表于 08-03 09:39 45次下载
    格雷码计数器的<b class='flag-5'>Verilog</b><b class='flag-5'>描述</b>

    Verilog HDL代码描述状态机综合的研究

    有许多可综合状态机的Verilog代码描述风格,不同代码描述风格经综合后得到电路的物理实现在速度和面积上有很大差别。优秀的代码描述应当易于修
    发表于 12-24 00:52 30次下载
    <b class='flag-5'>Verilog</b> HDL代码<b class='flag-5'>描述</b>对<b class='flag-5'>状态</b>机综合的研究

    基于Verilog硬件描述语言的IEEE标准硬件描述语言资料合集免费下载

    本文档的主要内容详细介绍的是基于Verilog硬件描述语言的IEEE标准硬件描述语言资料合集免费下载:1995、2001、2005;SystemVerilog标准:2005、2009
    发表于 06-18 08:00 10次下载

    System Verilogverilog的对比

    SystemVerilog语言简介 SystemVerilog是一种硬件描述和验证语言(HDVL),它基于IEEE1364-2001 Verilog硬件
    的头像 发表于 09-28 17:12 2823次阅读

    使用Verilog/SystemVerilog硬件描述语言练习数字硬件设计

    HDLBits 是一组小型电路设计习题集,使用 Verilog/SystemVerilog 硬件描述语言 (HDL) 练习数字硬件设计~
    的头像 发表于 08-31 09:06 1179次阅读

    Verilog PLI到SystemVerilog DPI的演变过程

    写过Verilogsystemverilog的人肯定都用过系统自定义的函数$display,这是预定好的,可以直接调用的功能。
    的头像 发表于 05-16 09:27 585次阅读
    从<b class='flag-5'>Verilog</b> PLI到<b class='flag-5'>SystemVerilog</b> DPI的演变过程

    verilog/systemverilog中隐藏的初始化说明

    VerilogSystemVerilog中经常需要在使用变量或者线网之前,期望变量和线网有对应的初始值
    的头像 发表于 08-25 09:47 560次阅读
    <b class='flag-5'>verilog</b>/<b class='flag-5'>systemverilog</b>中隐藏的初始化说明

    verilog-2005和systemverilog-2017标准规范

    作为逻辑工程师,在FPGA和数字IC开发和设计中,一般采用verilog,VHDL或SystemVerilog等作为硬件描述语言进行工程设计,将一张白板描绘出万里江山图景。
    的头像 发表于 09-04 10:10 1211次阅读
    <b class='flag-5'>verilog</b>-2005和<b class='flag-5'>systemverilog</b>-2017标准规范

    SystemVerilog在硬件设计部分有哪些优势

    谈到SystemVerilog,很多工程师都认为SystemVerilog仅仅是一门验证语言,事实上不只如此。传统的Verilog和VHDL被称为HDL(Hardware Description
    的头像 发表于 10-19 11:19 382次阅读
    <b class='flag-5'>SystemVerilog</b>在硬件设计部分有哪些优势

    SystemVerilog相比于Verilog的优势

    我们再从对可综合代码的支持角度看看SystemVerilog相比于Verilog的优势。针对硬件设计,SystemVerilog引入了三种进程always_ff,always_comb
    的头像 发表于 10-26 10:05 299次阅读
    <b class='flag-5'>SystemVerilog</b>相比于<b class='flag-5'>Verilog</b>的优势