微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > 微电子学习交流 > Verilog仿真遇到诡异的事情

Verilog仿真遇到诡异的事情

时间:12-12 整理:3721RD 点击:
仿真器是Modelsim 10.1C
仿真一个比较大的系统,下面有几十个module
某一个module中一句简单的verilog赋值语句:
assign PHY_TXD00_new[9:0] = PHY_TXD00_tmp[9:0];
从波形中看PHY_TXD00_tmp正常,但是PHY_TXD00_new出现红色unknown,凡是应该高电平的地方都是X,这也太奇怪了,assign后就值不一致了
想了一天没想明白咋回事,贴到版上求大侠指点指点!
谢谢!

波形

代码有多重赋值了吧

您是说Multi-driven吗,确实没有啊,我这信号名起的都是独一无二的

改成always写法试试呢
always@( * ) begin
   a = b;
   $display("debug");
end

这个波形就是了冲突了的典型波形

好的,我试试

您说的冲突了是指?能说的详细点么,谢谢

就是有多个驱动

如果没有多重赋值,看看是不是端口上冲突了。

有没有可能时外部直接赋值了?

没有verdi或debussy吗
trace一下这个信号有几个driver不就行了

感觉信号被拉住,应该可以trace到,看接口什么的有没有force住。
另外定一下技术贴,哈,版上技术贴不多,支持一下。

多重赋值的话modelsim不会报错么。

不会

multi drive啊。。。。多平常的事儿。。。。。=,=

赋值冲突,不同地方赋值了。
虽然转行不做芯片了,看到波形还是很亲切啊。

multi drive,可能case里面也force或者看看信号定义,有无驱动强度相关引入。

转行做啥了?

找到问题了吗,是不是多重赋值呢,解决了的话说明一下原因呢,看看大家猜的对不对

除了大家说的multi drive
还有个可能,你看的文件,和你仿真用的文件,不是同一个版本

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top