1、CPLD体积小,如果仅仅是完成简单的触发等时序,完全可以采用CPLD这类器件。
2、CPLD资源相当少,一般逻辑资源如上图,才160,稍微不注意,就会超标,所以,寄存器输入一定要尽量减少,位宽需要多少就定义多少,不要定义太宽,可以用assign的,就不用寄存器。能用一个计数器的,绝不用两个计数器,状态机位宽、状态机状态数目能少尽量少。条件能写==的,就不写<=
3、很容易造成时序违规问题,所以,要解决时序违规,可以适当增加一个或两个寄存器。特别是状态机里面的条件,可以把条件化为一个寄存器flag标志,满足条件,输出flag,从而减小了数据路径,从而解决时序伪例。在本实际例子中就是这么解决的,从而能让fmax能跑到如此大。如果忘记了,看看我写的底层模块即可。
01-19
06-12
1168
07-04
2775