Quartus ii 中常见的错误以及解决方法

来源:互联网 发布:java 去除换行符 编辑:程序博客网 时间:2024/05/16 19:43


波形文件仿真错误

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 (10170): Verilog HDL syntax error at 1602.v(1) near text "1602";  expecting an identifier

解决方法:这个错误,一般是由于工程吗为纯数字组成而导致模块命名出错,重新建一个工程,名字取成英文+数字的或纯英文的方法即可。

 

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


0 0
原创粉丝点击