仿真分功能仿真和纤首游时序仿真,
一 两种仿真都需要在编译源*.v程序后,新建一个与源程序同名的*.vwf文件,
二 在芹前*.vwf文件中,由Insert Node or bus 进入,导入全部I/O.
三 在主菜单里的Tools-----Simulator Tool 进入,d出对话框, 有Simulation Mode 和Simulation Input 两个在上面的对话框毁销,
①选择仿真为 Functional ,则右边的Generate Functional Simulation Netlist 字体变黑,先点击,生成Netlist,再点 START进行仿真
②选择时序仿真Timing ,则右边按钮为灰色,无法点击,可直接进行时序仿真,而不用先生成Netlist.
不懂的话可以看下这个文档http://wenku.baidu.com/view/f6084d0e52ea551810a68713.html
period是ck的周期,在这之前肯定有对period定义如`define period 20
或者雹则
parameter period=20;
#(period) 是过一个20时间单位执行forever中的语句
#(period/2) 指经过10时间单位 将ck取反,这样就会得到时钟
加括号和不加括源租棚号没区别,型岩只是价格括号可以清楚看清层次
之后会渐渐地更新一些关于Verilog语法,相应的Debug的方法和写程序的方法和注意的事项,大概分三类慢慢进行,最近一段时间工作比较忙,总结更新会更贴切实际,可能没那么频繁。这次说一点Debug的问题,由于同样的结果可能会是不同的原因导致的,这里会说是可能是哪些因素,之后也会慢慢补充总结。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的关键字,有一个关键字列表,是一些不可以被定义为变量贺雹的名字的列表,这个需要注意。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)