神州龙芯_VERILOG_编码规范.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
神州龙芯公司 Verilog编码规范 软IP重用标准(草案 2007-1-10) (仅供公司内部使用) 1. 宗旨 本规范为神州龙芯公司内部强制实施的 Verilog HDL 编码规范。每个IP设计人员必须严格遵守,以避免不必要的重复劳动,从而提高设计效率。本规范适用于下列三种 Verilog代码文件的编写:1)可综合逻辑部件;2)虚拟部件(Virtual Component--VC);3)测试模块(testbenches)。规范还对模块文件的命名习惯、代码文件的储存、代码文件的编写风格做了强制性的规定。 公司内的每个设计人员必须严格遵照本规范来编写代码,以提高代码的可读性。这不仅能提高 IP 设计人员的工作效率,也能及时帮助系统或者软件设计人员在调试复杂系统时发现和分析 IP 代码或者自己编写的代码所存在的问题。 遵照本规范编写的代码,不但容易理解,也容易修改,而且设计者之间可以互相利用各自拥有的 IP 设计资源,有的可以直接利用,有的只需要对现成模块的部分参数或接口稍做修改就可以使用,以便于实现 IP 重用的目标。严格按照本规范编写的代码,可以显著地提高公司整体的设计效率。这种可读性更强的代码,不但能帮助我们达到 IP 重用的目标,节省人力资源,提高工作质量,而且还能确保编写的代码能被绝大多数仿真和综合工具所接受,大大减少代码在不同设计、综合和仿真平台之间移植的工作量。 在 IP 设计的阶段验收过程中,一旦发现任何不符合本规范的代码,每个负责IP验收的人员有义务向设计者指出不符合规范的地方,令其及时做出修正,然后再进入下一个验收程序。否则即使代码已经通过测试,也没有任何发现问题,验收人员仍有权因为设计者的代码注释不完整或不符合规范拒绝验收,并作出设计工作尚未完成的评价和结论,命令其返工。 本规范的目的是:1)保证 Verilog RTL 模块经综合所产生的门级结构与Verilog仿真器所理解寄存器传输级的HDL代码的行为是一致的;2)利用参数传递可修改代码中的常数,使可综合模块、虚拟部件或者测试模块的输入/输出信号位宽扩展变得非常容易;3)使模块分割(PARTITIONING)尽量优化,使每个模块都具有可重用的构造,便于以后的扩展。 本规范在模块化一节着重阐述了在综合开发环境中难以表达清楚的典型结构,以及如何确保前仿真和后仿真行为一致的代码风格。本规范将可综合代码和行为级代码的编写要点分成两部分,分别予以阐述,而对两者均合适的部分放在规范的后面予以阐述。因而本规范也适用于测试模块、VC模块和监视模块代码的编写。 本规范的宗旨是:便于软IP模块、虚拟器件和测试模块的扩展和重复使用,方便非原作者对代码进行维护,为各种SOC的快速建模和仿真创造条件;降低系统芯片的设计风险,从而降低设计成本。 需要注意的是:原则上本规范是普遍适用的,但在很多场合可能会出现个别意外的情况,例如某工具的局限性,这可能会给本规范中个别条款的实施造成一定的困难。 2.编写可综合的RTL级 Verilog 模块代码时必须遵守的要点: 2.1 不允许在代码中出现的语句要点: 任何变量不能赋初始值X ,对任何寄存器所赋的初始值必须是确定的。 代码语句中不能加时间延迟,不允许出现如下语句: #4 out = cin; 不允许使用门控时钟和门控复位。 不允许使用锁存器。(商用综合器可帮助执行这项规范,如使用了锁存器,综合结果会出现Latch inferred)。 不允许在可综合的设计代码中使用`Define 来定义参数, 应该使用参数Parameter来定义。`Define只用于编写不可综合的仿真测试模块。 不允许在可综合代码中使用initial、wait、fork-join、while 。 不允许使用UDP ( 用户定义的原语元件 ) //+FHEADER ///////////////////////////////////////////////////////////////////////////// // 版权所有者:神州龙芯公司. // Copyright 2007. All Rights Reserved. // 保密级别: 绝密,本代码绝对不能外传 //------------------------------------------------------------------------------- // 文件名 : memif_transfer.v // 设计部门 : SoC 部门 // 原始作者:周鹏飞 // 联系方式:电子邮件: zhoupengfei@ // 内部电话:2802 // -------------------------------

文档评论(0)

dashewan + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档