?vivado仿真时,信号无法拉高/拉低,显示为x:不确定信号
问题描述
在对设计进行仿真时,发现信号经常出现x,也就是不确定态。仔细观察发现,信号可以被正常设置成0,但是没办法拉高为1。
解决方案
在定义信号的时候,对信号进行了赋值操作。比如:
wire signal = 0;
改成
wire signal;
原理分析
这是一个新手常犯的错误,在写激励文件时,是可以给信号赋予初值,但是在设计文件里不可以。因为赋值为0意味着给信号接地。
比如说:
wire signal = 0;
这行代码等效为:
wire signal;
assign signal = 0;