Quartus常见错误

Quartus常见错误

1.Error (10028): Can't resolve multiple constant drivers for net ……

解析:不能在两个以上always内对同一变量赋值,这个细节一般看书看资料会看到,但是编程时,就是没想到。

 

2.Error (10158): Verilog HDL Module Declaration error at clkseg.v(1): port"XXXX" is not declared as port

解析:大意了,端口类型还没定义啊!

 

3.Error (10110): variable "en" has mixed blocking and nonblockingProcedural Assignments -- must be all blocking or all nonblocking assignments

解析:en在程序中有时用非阻塞赋值,有时用阻塞赋值,这是禁止的。在初学的时候,可能分得不是很清楚,所以在检查时,一定要一步步观察慢慢来。

 

4.Error (10161): Verilog HDL error at clkseg.v(36): object "count" is notdeclared

解析:这个错误应该很明显啦,只要能读得懂。

 

5Error (10170): Verilog HDL syntax error at clkseg.v(37) near text"***";  expecting ";"

解析:意思应该也很简单,就是检查的时候要细心点。

 

6.Error (10171): Verilog HDL syntax error at ir_ctrl.v(149) near end of file ;  expecting an identifier, or"endmodule", or a parallel statement

解析:最后上了endmodule。一般编程的程序长了,到最后也就容易忘记。

 

7.Error (10278): Verilog HDL Port Declaration error at ir_ctrl.v(11): input port"ir" cannot be declared with type "<a variable data type,e.g. reg>"

解析:在Altra官网中就有该解释

http://www.altera.com.cn/support/kdb/solutions/rd03102006_162.html 官网上有很多东西值得我们发现学习。

 

8.Error (10137): Verilog HDL Procedural Assignment error at test.v(24): object"check_9ms" on left-hand side of assignment must have a variable datatype

解析:在Altra官网中就有该解释

http://www.altera.com.cn/support/kdb/solutions/rd06232003_8783.html

 

9.Error (10219): Verilog HDL ContinuousAssignment error at clk_div.v(26): object "clkdiv_equ" on left-handside of assignment must have a net type

解析:看得懂英语就懂了。

10.Error (10200): Verilog HDL Conditional Statement error at clk_div.v(22): cannotmatch operand(s) in the condition to the corresponding edges in the enclosingevent control of the always construct

解析:看看官网的解释

http://www.altera.com.cn/support/kdb/solutions/rd06242003_6128.html

 

条件判断语句逻辑不匹配。always @ ()括号内的敏感信号,与begin end 块中的判断语句逻辑不匹配。

 

例如 always @ negedge xxx

 

     begin

 

        if(xxx)

 

           ....

 

     end 

 

     敏感信号列表中判断的是xxx的下降沿,但是if语句判断的xxx是否为“1”,这样if语句将永远不可能执行,不符逻辑

 

解决方法:注意always @ 括号内的敏感信号列表,到底是上升沿还是下降沿,还是两个都要,根据不同场合选择合适的敏感信号

 

11.Error (10231): Verilog HDL error at LCD1602.v(40): value cannot be assigned toinput "lcd_en"

解析:端口设置出错

12.Error (10137): Verilog HDL Procedural Assignment error at LCD1602.v(49): object"lcd_rs" on left-hand side of assignment must have a variable datatype

解析:http://www.altera.com.cn/support/kdb/solutions/rd06232003_8783.html

13.Error (10170): Verilog HDL syntax error at test_vga.v(57) near text"<";  expecting"<=", or "="

 即这里产生的错误。

解析:一个空格,不小心分开了,而且有人喜欢把<=分开来写,这个在QUANRUS是不允许的呃。。。

 

14.Error: Application nios2-terminal on 127.0.0.1 is using the target device

解析:这种情况出现在JTAG模式下,你在使用NIOS下的JTAG功能(比如利用BLASTER进行在线仿真),同时你又想下载*.sof文件(就是在JTAG模式下下载程序)。简单说就是你的JTAG已经被占用了。解决办法就是关闭你正在使用的JTAG功能,然后再下载*.sof文件。初学者经常会犯这样的错误,一定要注意。

这里有http://www.cnblogs.com/kingst/archive/2010/05/04/1727613.html

 

15Error (10818): Can't infer register for "dis_data[0]" at key_down.v(56)because it does not hold its value outside the clock edge

 

原因:赋值语句的逻辑混乱,由于条件判断语句采用了非阻塞赋值,容易产生逻辑混乱。

 

解决方法:将非阻塞赋值“<=”改成阻塞赋值“=”,并不是任何情况下都是用非阻塞赋值好,阻塞和非阻塞适用于不同环境,根据环境要求选择赋值方式

 

16.Warning (10230): Verilog HDL assignment warning at SMG_1S.v(21): truncated valuewith size 32 to match size of target (8)

 

原因:赋值语句的等号两端数据的位宽不一致。例如:sec <=sec + 1;   sec定义是8位的寄存器型,而表达式中的“1”,默认为32位的十进制数,等式右边是32位数据,等式左边是8位变量,所以赋值时会有警告。

 

解决方法:把 "sec <= sec + 1;" 规范化,改写成"sec <= sec + 1'd 1 "

 

  • 5
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值