Error (10106): Verilog HDL Loop error at sorting4.v(13): loop must terminate within 5000 iterations

2024-12-13 03:54:07
推荐回答(3个)
回答1:

Verilog 这个语言有两个部分,一部分是可综合的用来生成电路,一部分是不可综合的用来写testbench(测试脚本)。你贴的程序是不能综合的那部分,是testbench。不能综合的那部分非常的接近C语言,适合写测试文件。
我在网上看了一下,你是参考的《基于Verilog HDL设计的多功能数字钟》这篇论文
你贴的这部分代码是modelsim调用的仿真测试文件,不是用来综合的。
文献中“测试模块源代码如下:”这句话以上的代码是用来综合的。你先了解一下verilog的语法,以及quartus和modelsim的使用。然后看这篇论文你就明白了,才9月离答辩还远吧。
你要是真正对FPGA感兴趣,建议认真学一下。很好的一个范例。麻雀虽小,五脏俱全。

回答2:

“dbuspudyw ”说得不错,我补充一点:
即使是拿来做tesebench的代码,也要符何基本的硬件思想。你的代码错就错在:
data=databuf[i];
databuf[i]=databuf[i+1];
databuf[i+1]=data;
这三行,它们形成了组合逻辑循环,即使是用来仿真,结果也是错误的。要实现作者的本意,这样赋值只能放在时序逻辑里。

回答3:

参考我在这里的解答
http://zhidao.baidu.com/question/327788426.html