FPGA设计的重要规范和经验精华.pdf

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

FPGA设计的重要规范和经验精华--第1页

从大学时代第一次接触FPGA至今已有10多年的时间。至今记得当初第一次在

EDA实验平台上完成数字秒表,抢答器,密码锁等实验时,那个兴奋劲。当时由

于没有接触到HDL硬件描述语言,设计都是在MAX+plusII原理图环境下用

74系列逻辑器件搭建起来的。后来读研究生,工作陆陆续续也用过QuartusII,

Foundation,ISE,Libero,并且学习了verilogHDL语言,学习的过程中也慢

慢体会到verilog的妙用,原来一小段语言就能完成复杂的原理图设计,而且语

言的移植性可操作性比原理图设计强很多。

工作过的朋友肯定知道,公司里是很强调规范的,特别是对于大的设计(无

论软件还是硬件),不按照规范走几乎是不可实现的。逻辑设计也是这样:如果

不按规范做的话,过一个月后调试时发现有错,回头再看自己写的代码,估计很

多信号功能都忘了,更不要说检错了;如果一个项目做了一半一个人走了,接班

的估计得从头开始设计;如果需要在原来的版本基础上增加新功能,很可能也得

从头来过,很难做到设计的可重用性。在逻辑方面,我觉得比较重要的规范有这

些:

FPGA设计的重要规范和经验精华--第1页

FPGA设计的重要规范和经验精华--第2页

1.设计必须文档化。要将设计思路,详细实现等写入文档,然后经过严格评

审通过后才能进行下一步的工作。这样做乍看起来很花时间,但是从整个项目过

程来看,绝对要比一上来就写代码要节约时间,且这种做法可以使项目处于可控、

可实现的状态。

2.代码规范。

如果在另一个设计中的时钟是40ns,复位周期不变,我们只需对

CLK_PERIOD进行重新例化就行了,从而使得代码更加易于重用。b.信号命名

要规范化。

1)信号名一律小写,参数用大写。

2)对于低电平有效的信号结尾要用_n标记,如rst_n。

3)端口信号排列要统一,一个信号只占一行,最好按输入输出及从哪个模

块来到哪个模块去的关系排列,这样在后期仿真验证找错时后方便很多。

FPGA设计的重要规范和经验精华--第2页

FPGA设计的重要规范和经验精华--第3页

4)一个模块尽量只用一个时钟,这里的一个模块是指一个module或者

是一个entity。在多时钟域的设计中涉及到跨时钟域的设计中最好有专门一个模

块做时钟域的隔离。这样做可以让综合器综合出更优的结果。

5)尽量在底层模块上做逻辑,在高层尽量做例化,顶层模块只能做例化,

禁止出现任何胶连逻辑(gluelogic),哪怕仅仅是对某个信号取反。理由同上。

6)在FPGA的设计上禁止用纯组合逻辑产生latch,带D触发器的latch

的是允许的,比如配置寄存器就是这种类型。

7)一般来说,进入FPGA的信号必须先同步,以提高系统工作频率(板

级)。

8)所有模块的输出都要寄存器化,以提高工作频率,这对设计做到时序收

敛也是极有好处的。

9)除非是低功耗设计,不然不要用门控时钟--这会增加设计的不稳定性,

在要用到门控时钟的地方,也要将门控信号用时钟的下降沿打一拍再输出与时

钟相与。

10)禁止用计数器分频后的信号做其它模块的时钟,而要用改成时钟使能的

方式,否则这种时钟满天飞的方式对设计的可靠性极为不利,也大大增加了静态

您可能关注的文档

文档评论(0)

zxc1472558 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档