FPGA测试问题小结

来源:本站
导读:目前正在解读《FPGA测试问题小结》的相关信息,《FPGA测试问题小结》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《FPGA测试问题小结》的详细说明。
简介:前一阵子做了两个FPGA工程的测试任务,做完了代码走读和功能仿真。发现了不少的问题,从问题报告里找了几条比较具有代表性的问题,有些问题确实很低级,但是不得不老调重弹。因为这些问题对于很多设计者来说都是共性的。希望列出来能给他人有一些的警示。

1. 代码中的逻辑运算符和算术运算符没有区分清楚,即便是对于做软件的来说,这也算是很低级的错误了,尽管大多数时候这样的混淆不会影响功能的实现,但还是要规范。

例如a = b || !c;

显然应该更改为a = b | ~c;

2. 代码中的有些时钟信号既非FPGA外部晶振输入的时钟信号,也非FPGA内部专用时钟管理单元(如PLL或者DLL)产生的时钟。严格来说,这些信号是不适合作为内部时钟使用的,尽管它可能会节约一些资源,降低一些功耗。一来这些信号不走全局时钟网络或经过特别优化,时钟网络延时势必很大,也不利于做时序约束;二来若这样的时钟钟控的信号存在跨时钟域处理的需要,那么就有潜在的读写冲突可能。门控时钟的使用总归是有利也有弊的,设计者应该权衡,如果后面说的两个问题都不存在(也许你要做的这个设计时序要求很低),那么但用无妨。

3. 不要为了分模块而分模块。分模块是为了更有利于设计分工、优化以及日后的代码维护、升级。如果有些逻辑的划分只是仅仅因为它们是一类相似的逻辑而分到一块,却不考虑数据流以及功能甚至优化的需要,那么这种模块划分方式也许只会得到是得其反的效果。

4. 对于复位的设计,有条件使用两级的寄存器进行“异步复位,同步释放”的处理比一级要来得可靠些。

5.为了更好的进行时序约束和分析,如果可能,需求分析或是设计说明中有必要体现所有和FPGA接口的信号的一些时序参数。如建立时间和保持时间,甚至是信号电平的上升时间、下降时间等参数,这对于设计者采用怎样的降低亚稳态的设计策略是有帮助的。

提醒:《FPGA测试问题小结》最后刷新时间 2024-03-14 01:08:49,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《FPGA测试问题小结》该内容的真实性请自行鉴别。