verilog中assign和always@(*)的区别和易忽略的点
今天在做IC的模块验证时,发现某个模块的输出信号为x态,一般遇到x态首先思考以下几种情况:变量未进行初始化 多个相同驱动强度的信号同时驱动1和0 代码中直接赋值的x态 如果是PAD电路上的X态,则另外考虑两个同类型的输入方向的PAD连接在一起,并且其中一个PAD为上拉,一个PAD为下拉但这个模块中既没有发现同时驱动1和0,也没有在代码中直接赋值x态,产生x态值的信号是在always(*)中赋值,赋值语句类似如下:module test;reg tmp0;reg tmp1;wire