Verilog学习经验.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在逻辑方面,我觉得比较重要的规范有这些: ? ?1.设计必须文档化。要将设计思路,详细实现等写入文档,然后经过严格评审通过 后才能进行下一步的工作。这样做乍看起来很花时间,但是从整个项目过程来看,绝对 要比一上来就写代码要节约时间,且这种做法可以使项目处于可控、可实现的状态。 ? ?2.代码规范。 ? ?a.设计要参数化。比如一开始的设计时钟周期是30ns,复位周期是5个时钟周期,我们可以这么写: ? ?? ?? ?parameter??CLK_PERIOD = 30; ? ?? ?? ?parameter??RST_MUL_TIME = 5; ? ?? ?? ?parameter??RST_TIME = RST_MUL_TIME * CLK_PERIOD; ? ?? ?? ?... ? ?? ?? ?rst_n = 1b0; ? ?? ?? ?# RST_TIME rst_n = 1b1; ? ?? ?? ?... ? ?? ?? ?# CLK_PERIOD/2 clk = ~clk; ? ? 如果在另一个设计中的时钟是40ns,复位周期不变,我们只需对CLK_PERIOD进行重新例化就行了,从而使得代码更加易于重用。 ? ?b.信号命名要规范化。 ? ?1) 信号名一律小写,参数用大写。 ? ?2) 对于低电平有效的信号结尾要用_n标记,如rst_n。 ? ?3) 端口信号排列要统一,一个信号只占一行,最好按输入输出及从哪个模块来到哪个模块去的关系排列,这样在后期仿真验证找错时后??方便很多。如: ? ?? ?module a( ? ?? ?? ?? ?? ?//input ? ?? ?? ?? ?? ?clk, ? ?? ?? ?? ?? ?rst_n,? ?//globle signal ? ?? ?? ?? ?? ?wren, ? ?? ?? ?? ?? ?rden, ? ?? ?? ?? ?? ?avalon_din,??//related to avalon bus ? ?? ?? ?? ?? ?sdi,? ?? ?? ?//related to serial port input ? ?? ?? ?? ?? ?//output ? ?? ?? ?? ?? ?data_ready, ? ?? ?? ?? ?? ?avalon_dout, //related to avalon bus ? ?? ?? ?? ?? ?... ? ?? ?? ?? ???); ? ?? ?4) 一个模块尽量只用一个时钟,这里的一个模块是指一个module或者是一个entity。在多时钟域的设计中涉及到跨时钟域的设计中最好有专门一个模块做时钟域的隔离。这样做可以让综合器综合出更优的结果。 ? ?? ?5) 尽量在底层模块上做逻辑,在高层尽量做例化,顶层模块只能做例化,禁止出现任何胶连逻辑(glue logic),哪怕仅仅是对某个信号取反。理由同上。 说明:gule logic的中文含意是“胶连逻辑”,它是连接复杂逻辑电路的简单逻辑电路的统称。例如,一个ASIC芯片可能包含许多诸如微处理器、存储器功能块或者通信功能块之类的功能单元,这些功能单元之间通过较少的粘合逻辑连接起来。在印制板(PCB)层,粘合逻辑可以使用具有较少逻辑门的“粘合芯片”实现,例如PAL、GAL、CPLD等。 ? ?? ?6) 在FPGA的设计上禁止用纯组合逻辑产生latch,带D触发器的latch的是允许的,比如配置寄存器就是这种类型。 ? ?? ?7) 一般来说,进入FPGA的信号必须先同步,以提高系统工作频率(板级)。所有模块的输出都要寄存器化,以提高工作频率,这对设计做到时序收敛也 是极有好处的。 ? ?? ?9) 除非是低功耗设计,不然不要用门控时钟--这会增加设计的不稳定性,在要用到门控时钟的地方,也要将门控信号用时钟的下降沿打一拍再输出与时钟相与。 ? ?? ?? ?? ?? ?clk_gate_en? ?? ?--------? ?? ?? ?? ?? ?? ???---- ? ?? ?? ?? ???-----------------|D? ???Q |------------------|? ???\ gate_clk _out ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? |? ?? ???|? ?? ?? ?---------|? ?? ?)-------- - ? ?? ?? ?? ?? ?? ?? ?? ?------o|? ?? ? |? ?? ?? ?|? ?? ???|? ???/ ? ?? ?? ?? ?? ? clk? ? |? ?? ? --------? ?? ?? ???|? ?? ?? ?---- ? ??

文档评论(0)

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

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

1亿VIP精品文档

相关文档