一、performance:要满足所需逻辑功能以及时序要求。这是最重要的一项,要是连这个都不满足,那么做这个项目就没有了意义。不过在满足这个performan的过程中会遇到一些问题,比如下面的都是在写HDL的功能上需要注意的地方。如果要有较高的frequency的话,可以考虑并行处理,流水线之类的。
阻塞/非阻塞:“=”用于组合逻辑;“<=”用于时序逻辑。
不完全敏感清单:always@(*)是利用了所有的信号,这样做不容易遗漏信号。
RTL的延时:延迟是不可以综合的,可以考虑加buffer,buf可以有延时效果。使用#delay是无效的。
锁存器:不完整的case和if语句会导致锁存器,一般不要有锁存器,会导致时序的混乱。
代码的循环利用:尽量写成可循环利用的模块,可以提高代码利用率,减少面积和功耗。