我来百度潜水很久了,很久不想说什么了,看到了这样的代码,我实在是忍不住吐槽了。
有两点:1.对器件内部逻辑的运算时序不太了解 2对于编程还不太规范
1.process中的语句是顺序执行的,所以,不要把这么庞大的语句写在一个上升沿的判断里,一个时钟(50M晶振)才20ns,这样多的程序是不会在20ns内运行完的,特别是信号的赋值,一个信号从高电平跳变到低电平是需要时间的,而程序中的信号赋值语句非常的多,你的程序还没运行完就会等来新的上升沿,进程又重新运行。所以你永远等不到end if;的那一刻。
2.if语句嵌套不要超过2层,这是铁律!
解决方式:
把这一大段拆开,我大致猜了下,楼主的功能是要计数,低位进位
这样的程序很多,可以去网上搜一下,功能要一点点实现,不要想一口气解决问题,逻辑器件和智能器件是不一样的。