关于Verilog hdl 中循环语句forever编译错误的疑问。

2024-12-02 05:47:55
推荐回答(3个)
回答1:

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

回答2:

forever #HALF_PERIOD Clk_in=~Clk_in; 把HALF_PERIOD直接用个搜和渣常数替代看看。不然还是世悄直接用always好了棚渣

回答3:

首先,你这样写来进行仿真是没有问题的,只是quartus进行编译的时候是一起进行综合的,这个forever一直循环执行是不能毕旅综合的。就算改成了for(i=。。档腊。。)进行有条件的循环时,quartus编译时analysis可以通过但这个TB文件的synthesis仍然不会通过的。 建议你使用VCS或modelsim等行数滑仿真工具进行仿真。