Verilog HDL 设计

Verilog HDL 设计

这个参考光为流传的华为FPGA设计流程指南,2001年8月1日版本。

基于将来设计转向ASIC的方便,本部门的设计统一采用Verilog HDL,但针对混合设计和混合仿真的趋势,所有开发人员也应能读懂VHDL。

Verilog HDL的学习可参考1 2

内部链接Verilog实用操作(不定时更新)

编程风格(Coding Style)要求

文件

  1. 每个模块(module)一般应存在于单独的源文件中,通常源文件名与所包含模块名相同。

  2. 每个设计文件开头应包含如下注释内容:

    • 年份及公司名称。

    • 作者。

    • 文件名。

    • 所属项目。

    • 顶层模块。

    • 模块名称及其描述。

    • 修改纪录。

    请参考标准示例程序3

大小写

  1. 如无特别需要,模块名和信号名一律采用小写字母。

  2. 为醒目起见,常数(`define定义)/参数(parameter定义)采用大写字母。

标识符

  1. 标识符采用传统C语言的命名方法,即在单词之间以“_”分开,如:max_delay、data_size等等。

  2. 采用有意义的、能反映对象特征、作用和性质的单词命名标识符,以增强程序的可读性。

  3. 为避免标识符过于冗长,对较长单词的应当采用适当的缩写形式,如用‘buff’代替‘buffer’,‘ena’代替‘enable’,‘addr’代替‘address’等。

参数化设计

为了源代码的可读性和可移植性起见,不要在程序中直接写特定数值,尽可能采用`define语句或paramater语句定义常数或参数。

空行和空格

  1. 适当地在代码的不同部分中插入空行,避免因程序拥挤不利阅读。

  2. 在表达式中插入空格,避免代码拥挤,包括:

    赋值符号两边要有空格;

    双目运算符两边要有空格;

    单目运算符和操作数之间可没有空格,

    示例如下:

    a  <=  b;
            c  <=  a  +  b;
            if (a  ==  b) then ...
            a  <=  ~a  &  c;
    

对齐和缩进

  1. 不要使用连续的空格来进行语句的对齐。

  2. 采用制表符Tab对语句对齐和缩进,Tab键采用4个字符宽度,可在编辑器中设置。

  3. 各种嵌套语句尤其是if…else语句,必须严格的逐层缩进对齐。

注释

必须加入详细、清晰的注释行以增强代码的可读性和可移植性,注释内容占代码篇幅不应少于30%。

参考C语言的资料

要形成良好的编程风格,有许多细节需要注意,可以参考资料4,虽然它是针对C语言的讨论,但由于Verilog HDL和C语言的形式非常近似,所以里面提到的很多原则都是可以借鉴的。

可视化设计方法

为提高设计效率和适应协同设计的方式,可采用可视化的设计方法,Mentor Grahpics的Renoir软件提供了非常好的设计模式。

可综合设计

用HDL实现电路,设计人员对可综合风格的RTL描述的掌握不仅会影响到仿真和综合的一致性,也是逻辑综合后电路可靠性和质量好坏最主要的因素,对此应当予以充分的重视。

学习可综合的HDL请参考 56 7

学习设计的模块划分请参考8

设计目录

采用合理、条理清晰的设计目录结构有助于提高设计的效率、可维护性。建议采用类似下面的目录结构:

design1

design2

参考


  1. 台湾清华Verilog HDL教程 ↩︎

  2. Verilog HDL硬件描述语言 ↩︎

  3. 文件头注释块示例 ↩︎

  4. C语言的风格 ↩︎

  5. Verilog HDL Reference manual ↩︎

  6. Actel HDL coding style guide ↩︎

  7. LeonardoSpectrum HDL Synthesis ↩︎

  8. ASIC Design Partitioning ↩︎

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ShareWow丶

前人栽树,分享知识,传播快乐。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值