Verilog 的 debug 技巧(1)

用户头像
老壳有点爽
关注
发布于: 2020 年 08 月 23 日

Debug问题:

1)expect  a  comma,一般是定义的时候少了相应的;

比如说,wire【15:0】dout没有加上;就会出现这种错误;

2)A net is not a legal lvalue in this context.定义类型错误,将wire型定义成了reg型的,

3) reg ‘out_valid’ declared in a module/macromodule,cannot also be declaredinput or inout;

这种类型应该是模块之间的定义出现了错误,需要检查连接模块之间的连线是否定义成了一样

4)  SystemVerilognamed argument: use –sv switch to enable this SystemVerilog construct.

一般是在调用module的时候会出现这种情况;注意在时序

5) expecting an ’=’ or ‘<=’ sign in an assignment

可能是因为定义错误导致的,时序电路和组合逻辑采用的赋值方式不同,分别采用阻塞赋值和非阻塞赋值等方式。

6)‘inn1’: undeclaredidentifier没有声明相应的变量为wire型还是reg型的

7)input/output/inout‘avg’ declared as vector or array, then redeclared as scalar.(无向量结构)

是以下的错误,定义input【15:0】avg;wire   avg;没有加上范围向量。

8)Part-selectoperator cannot be applied to scalar.

avg <= sum[18:3] + {15’b0, sum[2]} ;这种错误,选择部分的的内容也不可以加到向量中去。前一部分可以采用移位的方式来实现选位的功能;也可能是由于sum的位宽定义错误;(可能都没有定义位宽,默认为1)

9)bit-select operatorcannot be applied to scalar;单个bit的运算不可以加到向量中去。第8)9)问题可能有sum定义的位宽不对导致(可能都没有定义位宽,默认为1);也可能是由于verilog不提供相应的解决的选定位数的方法导致的;

10)port sizes differin port connection.位宽不一致导致的逻辑错误。

11)illegal out(或者output)port specification.定义输出的属性错误

12)expecting a rightparenthesis (‘)’)是指少了右括号);相应的expecting a semicolon (‘:’)是指少了分号。可能是由于在if判断语句中写如if ( a= b ),导致的错误,对的应该为if ( a == b)

13 ) illegal expression primary.可能是类似于将always写成always这样的语法错误。

14)A Verilog  keyword was found where an identifier wasexpected.程序中出现了相应的Verilog的关键字,有一个关键字列表,是一些不可以被定义为变量的名字的列表,这个需要注意。



用户头像

老壳有点爽

关注

连续跨行者,ICT创业者 2018.04.18 加入

连续跨行者,IC、IT、创业,横跨芯片设计前后端,软件设计、产品经理,产业互联网、教育行业、GIS、智能硬件等诸多领域

评论

发布
暂无评论
Verilog 的debug技巧(1)