前言

本文档规定了ZION团队及西安理工大学集成电路实验室在利用SystemVerilog语言进行电路描述时推荐遵守的代码规范。除了相关代码规范外,还介绍了目前SystemVerilog中,可以被最新工具识别的可综合语法。文档中介绍的语法及规范适用于进行电路设计描述,不适用于验证。示例代码中中除非特殊说明,所有均为语法演示代码,无任何有效的电路功能。项目中附有若干示例代码,均用于展示格式规范,亦无任何实际电路功效。整个文档分为五个部分:基础语法,高级语法,特殊语法,Bug与期望,附录。

  • 第一部分:基础语法

    该部分主要介绍了一些代码书写规定和基础的电路描述方法。该部分除常见的语法外,还提供了一些在新版SystemVerilogy语言中支持的新语法,文档中列出的语法均经过最新的仿真和综合工具测试。推荐大家在设计中尽量使用该部分介绍的语法。

  • 第二部分:高级语法

    该部分为进阶语法介绍,主要介绍SystemVerilog中引入用于封装和做通用设计的相关语法。该部分内容建议有一定基础的设计人员采用。由于EDA工具支持不够完善,虽然我们在最新工具下测试了文档中介绍的相关语法,但是不排除目前该部分语法可能存在隐藏的Bug。采用该部分推荐的语法可以极大简化电路设计,尤其是顶层互联的相关代码。同时合理的利用相关语法可以实现一定程度的基础电路抽象,极大提高电路可读性。相关示例在附录中展示。

  • 第三部分:特殊用法

    该部分介绍了ZION团队为了简化代码、进行快速设计采用的相关语法。使用方法比较激进,建议酌情采用。该部分主要介绍了两种特殊的设计方法:基于宏定义的模板例化方法 和 基于宏电路库的设计方法。详细介绍了这两种方法的设计动机、设计原理和设计规范。

  • 第四部分:Bug与期望

    该部分介绍了目前已知的高级语法在不同EDA工具中的Bug。也列出了希望EDA工具和SystemVerilog未来能够支持的特性。

  • 第五部分:附录

    附录中,我们在不同的小结介绍了一些更详细的代码示例和用法解释。(TBD:待补充)

该文档是写作规范文档,不是Verilog的学习文档,需要在一定的设计经验和设计能力基础上进行阅读。 该文档github地址为:Verilog Coding Style。欢迎大家star该项目。任何人有任何建议或想法欢迎向我们反馈。如果希望在附录中针对规范中某些语法提供更详细的解释,也欢迎大家进行反馈。任何需要反馈的内容可以在github上开一个新的issue。

该文档解释权归ZION团队所有,以CC-BY-ND协议开源。