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

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

3天内不再提示

X态如何通过RTL级和门级仿真模型中的逻辑进行传播呢?

sanyue7758 来源:ICer消食片 2023-04-20 09:12 次阅读

Verilog中,IC设计工程师使用RTL构造和描述硬件行为。但是RTL代码中的一些语义,并不能够准确地为硬件行为建模。Verilog中定义了4种不同的逻辑值:1、0、X和Z,1和0是真实存在的逻辑电平,Z表示高阻态,X表示未知态。

X态的存在使得仿真结果要么太过于乐观,要么太过于悲观。因此X态如何通过RTL级和门级仿真模型中的逻辑进行传播的,是需要特别关注的。为此,还产生了两种观念,X-optimism和X-pessimism。前者将X值转换为0或1,后者将X值一直传播出去。

X态产生的原因主要分为以下几种情况:

四值变量、寄存器和锁存器未初始化

模块输入端口未连接

总线争用

超出范围的位选择和数组索引

setup/holdtiming violation

testbench中注入X态

VCS对于RTL仿真提供了支持X-Propagation的选项,因为RTL仿真偏向于乐观,导致一些X态传播的bug,无法在正常的RTL仿真阶段发现。但是在Gate-level仿真时会暴露出来,因为Gate-level仿真也更接近实际硬件行为。

我们知道越早的发现bug,所消耗的成本也越低的,故VCS的X-Propagation功能可以更接近Gate-level的X态传播行为,是一种在后仿之前debug的低成本仿真策略。

通常使用带xprop的仿真选项为:

vcs -xprop[=tmerge|xmerge|xprop_config_file]

[-xprop=flowctrl]

[-xprop=nestLimit=]

other_vcs_options

这里就不深入介绍各个选项了,而是介绍三种merge mode:

vmerge mode: 就是Verilog协议规定的X态处理行为;
tmerge mode: 更接近Gate-level仿真,也就是实际硬件行为;
xmerge mode: 相比tmerge mode,对于X态的处理更悲观;

下面举几个实例来看看这三种mode的具体区别

if语句

always @*
if(s)
  r=a;
else
  r=b;
600d79ce-df08-11ed-bfe3-dac502259ad0.png

在vmerge模式下,使用标准的HDL模拟语义。当控制信号s未知时,输出信号r总是被赋给else语句的值。此时r的值与信号b相同。

在tmerge模式下,当控制信号s未知时,如果输入信号a和b 同,则r的值与a(或b)相同。如果a和b不相同,则r的值为X。

在xmerge模式下,当控制信号s未知时,输出信号r的值始终为X。

case语句

case (s)
1'b0:r=a;
1'b1:r=b;
endcase

6019954c-df08-11ed-bfe3-dac502259ad0.png

在vmerge模式中,使用标准的HDL模拟语义。当控制信号s未知时,输出信号r的值与执行case语句之前保持一致。

在tmerge模式中,当控制信号s未知时,如果a和b相同,r的合并和最终值与a和b 相同。如果a和b不相同,r的合并和最终值为X。

在xmerge模式下,当控制信号s未知时,输出信号r的值始终为X。

边沿敏感表达式

在标准的 Verilog 中,对于时钟信号中以下值的变化会触发上升沿转换:

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

如果X被认为是0或1值,那么在 0 -> X 转换中,X可能表示0值,这表示没有转换。X可以表示1值,此时表示上升沿。Xprop仿真考虑了这两种行为并合并了结果。

以下为一个低有效复位的D触发器示例:

60272e82-df08-11ed-bfe3-dac502259ad0.png

在三种模式中,如果时钟信号clk从0变成1,即一个上升沿触发,D触发器的输出信号q被赋值为输入信号d。

对于其余四种时钟信号的变化,vmerge模式中,输出信号q被赋值为输入信号d;xmerge模式中,输出信号q被赋值为X;tmerge模式中,q端的结果是当前拍d端和上一拍q端值得merge的结果,如果两者不同,则当前拍锁存X。

latch

always@(*)
if(g)
  q <= d;

603115f0-df08-11ed-bfe3-dac502259ad0.png

在vmerge模式下,当控制信号g未知时,输出信号q的值不变。

在tmerge模式下,当控制信号g未知时,分配给q的合并值取决于q和d的值。

在xmerge模式下,当控制信号g未知时,输出信号q的值始终为X。

603958fa-df08-11ed-bfe3-dac502259ad0.png

当xprop仿真过程中出现X态报错时,需要看波形以具体分析是寄存器没有初始化值,存在X态导致的,还是代码逻辑中存在问题导致的。






审核编辑:刘清

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

    关注

    38

    文章

    1295

    浏览量

    103919
  • Verilog
    +关注

    关注

    28

    文章

    1351

    浏览量

    110077
  • RTL
    RTL
    +关注

    关注

    1

    文章

    385

    浏览量

    59763
  • VCS
    VCS
    +关注

    关注

    0

    文章

    79

    浏览量

    9600

原文标题:什么是X态传播?

文章出处:【微信号:处芯积律,微信公众号:处芯积律】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    RTL设计的基本要素和步骤是什么

      综合(Logic Synthesize)是指将HDL语言、原理图等设计输入翻译成由与、或、非门等基本逻辑单元组成的连接(网表),并根据设计目标与要求(约束条件)优化所生成的逻辑
    的头像 发表于 01-17 16:57 1w次阅读
    <b class='flag-5'>RTL</b><b class='flag-5'>级</b>设计的基本要素和步骤是什么

    数字IC设计流程为什么要做仿真

    仿真(gate levelsimulation)也称之为后仿真,是数字IC设计流程的一个重要步骤。
    的头像 发表于 06-07 09:55 1945次阅读
    数字IC设计流程<b class='flag-5'>中</b>为什么要做<b class='flag-5'>门</b><b class='flag-5'>级</b><b class='flag-5'>仿真</b>?

    RTL仿真X行为的传播—从xprop说起

    在使用VCS进行仿真时,工程师们常常会面对一个极为重要且充满挑战的问题——X传播行为。
    的头像 发表于 12-04 16:20 2696次阅读
    <b class='flag-5'>RTL</b><b class='flag-5'>仿真</b>中<b class='flag-5'>X</b><b class='flag-5'>态</b>行为的<b class='flag-5'>传播</b>—从xprop说起

    RTL代码和仿真代码的区别

    RTL代码和仿真代码的区别,哪些verilog语句是可综合的??哪些不能??
    发表于 07-21 13:08

    RTL仿真与门仿真

    调用了modelsim进行仿真,发现有毛刺,后来才知道有RTL仿真,运行后波形很好。想问下如
    发表于 08-08 22:57

    RTL的功能仿真结果和系统建模仿真的结果比较

    我是做数字滤波器的,别人从系统进行建模、仿真来完成设计,我从RTL开始对其设计进行 验证。
    发表于 12-08 14:46

    关于RTL仿真仿真求助~

    `刚刚本科毕业,假期导师要求做一个设计。实验室没有做过FPGA的学长只好问网上的各位了。写好的FPGA代码进行RTL仿真波形是符合要求的,如下图。但是做
    发表于 08-06 12:12

    今天为什么仍必须进行仿真(GLS)精选资料分享

    今天为什么仍必须进行仿真(GLS)使用仿真
    发表于 07-26 07:28

    如何理解Xcelium的多核仿真

    (如UVM),low power(低功耗),mixed signal(模拟数字混合信号),VHDL;  多核的范围包括:gate-level(),RTLX-prop(
    发表于 03-28 11:18

    逻辑功能的Multisim仿真方案

    介绍了用Multisim仿真软件分析三工作过程的方法,目的是探索三工作波形的仿真实验技术
    发表于 05-06 15:59 0次下载
    三<b class='flag-5'>态</b><b class='flag-5'>门</b><b class='flag-5'>逻辑</b>功能的Multisim<b class='flag-5'>仿真</b>方案

    Verilog HDL为电路建模的能力详解

    电平模型化 本章讲述Verilog HDL为电路建模的能力,包括可以使用的内置基本和如何使用它们来
    的头像 发表于 03-05 15:23 6466次阅读
    Verilog HDL为<b class='flag-5'>门</b><b class='flag-5'>级</b>电路建模的能力详解

    芯片设计之门仿真

    综上,仿真基于测试平台文件、网表文件、时序反标文件、库文件,可以进行更精确的
    的头像 发表于 08-15 14:50 2796次阅读

    IC设计:接口X隔离设计

    虽然真实芯片中,寄存器初始状态值只会为1或者为0。但是在RTL仿真过程X
    发表于 09-20 10:47 690次阅读
    IC设计:接口<b class='flag-5'>X</b><b class='flag-5'>态</b>隔离设计

    能否利用器件的IBIS模型对器件的逻辑功能进行仿真

    能否利用器件的IBIS模型对器件的逻辑功能进行仿真?如果不能,那么如何进行电路的板和系统
    的头像 发表于 11-24 14:50 563次阅读

    X传播在低功耗验证的作用

    随着科技的发展和智能化设备的普及,我们对于高效能、低功耗的半导体设备需求愈加强烈,对低功耗仿真的需求成指数增长。X传播分析是低功耗
    的头像 发表于 01-24 09:34 732次阅读
    <b class='flag-5'>X</b><b class='flag-5'>态</b><b class='flag-5'>传播</b>在低功耗验证<b class='flag-5'>中</b>的作用