新浪博客

Quartus ii (verilog实际调试中出现的error,不定期更新)

2013-09-13 19:40阅读:
波形文件仿真错误
Error: Run Generate Functional Simulation Netlist (quartus_map yumen2_mk --generate_functional_sim_netlist) to generate functional simulation netlist for top level entity 'yumen2_mk' before running the Simulator (quartus_sim)
解决方法:原因是在功能仿真时候没有建立一个网表,网表的作用本人不是很清楚,只能说是功能仿真的一个必要步骤吧。在Processing下选择generated functional simulation netist,就是产生功能反正对应的网表文件,然后再仿真就ok了。但是如果刚开始只进行时序仿真的话,就不会出现这个问题,本人测试几次猜测这应该是时序仿真和功能仿真的区别。——2013.9.22

编译
Error: Can't compile duplicate declarations of entity '**' into library 'work'
解决方法:原因是这个模块同时有bdf和.v文件在projcet中,需要把不用的文件从project的file里移除。——2013.9.11

原理图编译错误
Error: Width mismatch in port 'dataa[7..0]' of instance 'inst' and type mult -- source is ''a''
解决方法:这个错误出现在block模板建立编译后出现,原因是例化元件中的dataa[7..0]是八位,而加入的引脚a是一位的,应该改成a[7..0]就ok了。——2013.10.15

程序编译错误
Error (10028): Can't resolve multiple constant drivers for net 'count[0]' at k.
v(13)
解决方法:应该是出现多个always语句里对统一变量的的多次赋值造成,有可能变量附错,改掉即可;如果没附错,就设法将两个并行模块always合并——2013.11.01
Error (10137): Verilog HDL Procedural Assignment error at tcount.v(14): object 'a' on left-hand side of assignment must have a variable data type
解决方法:always里赋值用reg,assign里面赋值用wire。目标左侧的a必须是个合理的数据类型:reg(寄存器型)、wire(连线型),本人在使用时候,a作为临时的一个寄存器一方面要判断最高位的溢出,一方面要把要把除了最高位的其它位赋值给输出out端,所以a的类型应该为reg型定义。——2013.9.26

Error (10170): Verilog HDL syntax error at cnt_tb.v(1) near text '
解决方法:'timescale 10ns/1ps ,在定义精度之类的东西时候,用的应该是键盘左侧的“ ` ”,而不是英文的单引号“ ' ”——2013.10.19
Error (10170): Verilog HDL syntax error at kcounter.v(23) near text 'begin'; expecting an identifier ('begin' is a reserved keyword ), or 'endmodule', or a parallel statement
解决方法:一般出现这种错误都是begin前后多了一个“;”分好导致。本人这次错误是因为在always @ ();中多加了个‘;’,应该是always @()——2013.10.26

Error (10171): Verilog HDL syntax error at chu.v(8) near end of file ; expecting '.', or an identifier, or '(', or '['
解决方法:碰到这个错误,一般都是程序末尾的“endmodule” 写错了的原因(不要写成大写;不要写错单词)——2013.10.21

Error (10219): Verilog HDL Continuous Assignment error at chu.v(9): object 'out1' on left-hand side of assignment must have a net type
解决方法:就是端口的reg,wire型设置不对造成的——2013.10.21

Error (10278): Verilog HDL Port Declaration error at chu.v(6): input port 'a' cannot be declared with type ''
解决方法:input 端口不能被定义为reg型,这是在quartus2 5.0版本之后的规定——2013.10.21

Warning (10230): Verilog HDL assignment warning at count.v(31): truncated value with size 32 to match size of target (9)
解决办法:(虽然警告有时候不怎么影响我们的编译与硬件执行,但是或多或少我们有捡“法律”空子的嫌疑,破坏了一般的语法规则)我用的是 ...reg [8:0]in1;...in1=in1+1;这里的‘1’用法描述不规则,不符合in1的定义。应该写成in1=in1+9'd1.——2013.10.24
Warning (10240):
解决方法:网上很多人提问,但是并没有给出明确解决方法,本人出现此种警告是因为运用多种并行逻辑模块,其中嵌套了多个计数器,当将并行语句整合到一起时,问题解决。总之就是将always语句减少使用,尽量在一个里面完成。——2015.1.17

我的更多文章

下载客户端阅读体验更佳

APP专享