【随手查】Verilog编译报错

Quartus编译、ModelSim等的一些报错的记录,方便日后查找,持续更。。。

错误目录

      • Quartus编译报错
          • Error (10079)
          • Error (10137)
          • Error (10170)
          • Error (10170)
          • Error (10839)
      • ModelSim报错
          • 1、Declarations not allowed...
          • 2、Illegal output port ...
      • 一些编译不报错但是无法实现预期功能的错误
        • 1、无法生成RTL错误
        • 2、case语句输出错误

Quartus编译报错

Error (10079)

Error:
Error (10079): Verilog HDL syntax error at DualPriorityEncoder.v(24): illegal character in binary number
【随手查】Verilog编译报错_第1张图片
Solve:
对于verilog中数字表示方法的误解,之前对 3’b7 的理解就是数据格式是3位二进制,数值是7;而实际上b是后面数值的进制表示。正确的表示方法是 3’b111 。

Error (10137)

Error:
Error (10137): Verilog HDL Procedural Assignment error at bit2gray_2.v(11): object “l4” on left-hand side of assignment must have a variable data type
Solve:
将output的l4的类型由wire改为reg类型即可

Error (10170)

Error:
【随手查】Verilog编译报错_第2张图片
Error (10170): Verilog HDL syntax error at DualPriorityEncoder.v(11) near text “+”; expecting “=”

Solve:
将 i++ 改为 i=i+1 即可

Error (10170)

Error:
Error (10170): Verilog HDL syntax error at tb_DualPriorityEncoder.v(1) near text “'”; expecting a description
【随手查】Verilog编译报错_第3张图片
Solve:
timescale左侧符号错误,应该是这个 ` 而不是这个 ’

Error (10839)

Error:
Error (10839): Verilog HDL error at DualPriorityEncoder.v(1): declaring global objects is a SystemVerilog feature
【随手查】Verilog编译报错_第4张图片
Solve:
关键字拼写错误,mudule修改为module

ModelSim报错

1、Declarations not allowed…

【随手查】Verilog编译报错_第5张图片

** Error: Y:/FPGA_Project/DualPriorityEncoder/DualPriorityEncoder.v(11): Declarations not allowed in unnamed block.

Solve:
给这个模块加上一个名称即可。
【随手查】Verilog编译报错_第6张图片

2、Illegal output port …

** Error (suppressible): (vopt-8884) Y:/FPGA_Project/DualPriorityEncoder/tb_DualPriorityEncoder.v(25): Illegal output port connection for ‘St_pri’ (2nd connection) to reg type.

Solve:
理论上,输入的类型必须是wire,输出的类型可以是wire,也可以是reg。在直接将程序烧录到芯片运行时,可以是reg;但是在ModelSim仿真中,如果输出是reg类型就会报这个错误。将输出的类型改为wire,并增加原本的寄存器同时用assign将寄存器和wire连接起来既可以解决问题。

一些编译不报错但是无法实现预期功能的错误

1、无法生成RTL错误

俺作为小白经常犯的一个错误,编译的时候不会有语法报错,但是无法生成RTL图。
没有给输出参量标定位数,产生的RTL图如下:

【随手查】Verilog编译报错_第7张图片
【随手查】Verilog编译报错_第8张图片

标定输出参量的位数之后,产生的RTL图如下:

【随手查】Verilog编译报错_第9张图片
【随手查】Verilog编译报错_第10张图片

2、case语句输出错误

错误现象:在输入是1100,也就是case3的情况下,输出应该是01,实际输出是11。也就是说没有执行到这个case里面去。发现解决方法是修改case3的所有情况为default,有点玄学

【随手查】Verilog编译报错_第11张图片

【随手查】Verilog编译报错_第12张图片

修改为default,便成功得到预期的结果:

【随手查】Verilog编译报错_第13张图片

【随手查】Verilog编译报错_第14张图片

你可能感兴趣的:(#,FPGA学习笔记,#,随手查系列,fpga开发,Quartus,ModelSim)