专门写一篇收集Quartus ii编译报错的硬文吧,哈哈。一点一滴积累,碰到疑难就记录一次,方便后续也可以来查看。
Error类:
1.Error (10170): Verilog HDL syntax error at row_scan_module.v(21) near text “if”; expecting “endmodule”
解决:这里涉及到了在过程块中if…if…if,和if…else if…else if…的区别,前者相当于有优先级的,后者就没有。我自己这次针对报错,是把前者的形式改成了后者,然后编译通过了。
2.Error (10267): Verilog HDL Module Instantiation error at DS1302.v(107): cannot connect instance ports both by order and by name
解决:实例化的时候,端口名之前少输入了"."
3.Error (10170): Verilog HDL syntax error at vga_control_module.v(108) near text “£”; expecting “:”, or “?”, or binary operator
解决:半角与全角输入切换错误。
Warnings类:
1.Warning: 1 hierarchies h**e connectivity warnings - see the Connectivity Checks report folder
解释:实例化的时候,有一些端口没用的,让没用的端口的位置空着。
措施:暂且不理会。
2.Warning (10238): Verilog Module Declaration warning at xxxxxxxx.v(5): ignored anonymous port(s) indicated by duplicate or dangling comma(s) in the port list for module “xxxxxxxx”
解决:模块的端口声明多了个逗号。
3.Warning (10236): Verilog HDL Implicit Net warning at forward_replace.v(16): created implicit net for “xxx”
解决:将xxx声明为wire型即可,这个问题出现在调用的两个子模块连接上,一个子模块的输出直接通过一根线连接到另一个子模块的输出,需要声明连线为wire型。
4.Warning (10227): Verilog HDL Port Declaration warning at control_interface_module.v(20): data type declaration for “Number_Sig” declares packed dimensions but the port declaration declaration does not
解决:对于this Warning,我并没有从根本上解决掉。之前,"Number_Sig"是模块的output,我把它声明成reg,然后在always块里面对它进行了非阻塞赋值。后来,我重新声明了"Number_Sig_buf"寄存器去代替它在always块中被非阻塞赋值。最后,assign Number_Sig = Number_Sig_Buf;此Warning消除。
转:https://www.eefocus.com/impressiver/blog/16-04/378403_a5bf0.html