求大神帮我仿真下这个fpga程序,看错误在哪,谢谢,小弟QQ978809991

2025-01-07 05:55:28
推荐回答(1个)
回答1:

我来百度潜水很久了,很久不想说什么了,看到了这样的代码,我实在是忍不住吐槽了。

有两点:1.对器件内部逻辑的运算时序不太了解 2对于编程还不太规范

1.process中的语句是顺序执行的,所以,不要把这么庞大的语句写在一个上升沿的判断里,一个时钟(50M晶振)才20ns,这样多的程序是不会在20ns内运行完的,特别是信号的赋值,一个信号从高电平跳变到低电平是需要时间的,而程序中的信号赋值语句非常的多,你的程序还没运行完就会等来新的上升沿,进程又重新运行。所以你永远等不到end if;的那一刻。

2.if语句嵌套不要超过2层,这是铁律!

解决方式:
把这一大段拆开,我大致猜了下,楼主的功能是要计数,低位进位
这样的程序很多,可以去网上搜一下,功能要一点点实现,不要想一口气解决问题,逻辑器件和智能器件是不一样的。