怎样在quartus平台上进行verilog程序仿真???

怎样在quartus平台上进行verilog程序仿真???,第1张

一般在quartus平台中用波形仿真。不过一般都用专业的第三方仿真工具modelsim。

仿真分功能仿真和纤首游时序仿真,

一 两种仿真都需要在编译源*.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的关键字,有一个关键字列表,是一些不可以被定义为变量贺雹的名字的列表,这个需要注意。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12549071.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存