良好的编码风格,有助于代码的阅读、调试和修改。虽然Verilog代码可以在保证语法正确的前提下任意编写,但是潦草的编码风格往往是一锤子买卖。有时回看自己编写的代码,既看不出信号的意义,也不了解模块的功能,还得从逻辑上一步步分析,就会消耗大量的时间和精力去消化,严重影响设计进度。为了不让别人或自己由衷的感叹出:这特喵的是哪个"小傻宝"写的代码!下面对编码风格进行一定意义上的建议。关于命名信号变量、模块等一定要使用有意义的名字,且信号名称在模块间穿梭时也应该保持不变,以便代码自身就具有清晰的说明信息,增强可读性。当名字单词数量过多时,可以使用首字母大写或下划线"_"进行拼接。个人喜欢后者,比较清晰
不经意间看到几年前自己写的FGPA设计,代码风格勉强说的过去,但是逻辑设计方面的安全隐患比比皆是。许多初学者编写Verilog代码,基本都是按照C语言的思维和风格去设计,造成了很多不规范的共性问题。本节主要总结一些不规范且危险的Verilog设计。主要针对可综合的数字设计,testbench是仿真程序,一般情况下要求不是很严格。代码规范要讲述的内容与编码风格是不一样的。编码风格只是建议,设计者可以不按照本教程编码风格的建议,随心所欲的畅写代码。只要逻辑正确,电路安全,哪怕写成柳絮满天飞的风格,编译器能正常编译正常仿真即可。设计者可以高傲的说,写自己的代码,让别人猜去吧!代码规范是在一定程度上必
不经意间看到几年前自己写的FGPA设计,代码风格勉强说的过去,但是逻辑设计方面的安全隐患比比皆是。许多初学者编写Verilog代码,基本都是按照C语言的思维和风格去设计,造成了很多不规范的共性问题。本节主要总结一些不规范且危险的Verilog设计。主要针对可综合的数字设计,testbench是仿真程序,一般情况下要求不是很严格。代码规范要讲述的内容与编码风格是不一样的。编码风格只是建议,设计者可以不按照本教程编码风格的建议,随心所欲的畅写代码。只要逻辑正确,电路安全,哪怕写成柳絮满天飞的风格,编译器能正常编译正常仿真即可。设计者可以高傲的说,写自己的代码,让别人猜去吧!代码规范是在一定程度上必
关键词:三态门,上下拉,选择器门级建模,是使用基本的逻辑单元,例如与门,与非门等,进行更低级抽象层次上的设计。与行为级建模相比,门级建模更注重硬件的实现方法,即通过连接一些基本门电路去实现多种逻辑功能。虽然行为级建模最后也会被综合成基本的门级电路网络,但对于复杂的设计来说,行为级建模的效率远远高于门级建模。所以目前Verilog大多数用于描述数字设计的行为级层次(RTL),一般只注重设计实现的算法或流程,而不用特别关心具体的硬件实现方式。有些设计,例如门控时钟,就需要使用基本门单元,来增加电路的可控性与可靠性。多输入门多输入门只有单个输出,有单个或多个输入端。Verilog内置多输入门如下:a
关键词:三态门,上下拉,选择器门级建模,是使用基本的逻辑单元,例如与门,与非门等,进行更低级抽象层次上的设计。与行为级建模相比,门级建模更注重硬件的实现方法,即通过连接一些基本门电路去实现多种逻辑功能。虽然行为级建模最后也会被综合成基本的门级电路网络,但对于复杂的设计来说,行为级建模的效率远远高于门级建模。所以目前Verilog大多数用于描述数字设计的行为级层次(RTL),一般只注重设计实现的算法或流程,而不用特别关心具体的硬件实现方式。有些设计,例如门控时钟,就需要使用基本门单元,来增加电路的可控性与可靠性。多输入门多输入门只有单个输出,有单个或多个输入端。Verilog内置多输入门如下:a
关键词:MOS,CMOS,双向开关,PAD开关级建模是比门级建模更为低级抽象层次上的设计。在极少数情况下,设计者可能会选择使用晶体管作为设计的底层模块。随着电路设计复杂度及相关先进工具的出现,以开关为基础的数字设计慢慢步入黄昏。目前,Verilog仅仅提供了用逻辑值0、1、x、z作为相关驱动强度的数字设计能力,因此,Verilog中晶体管也仅被当做导通或截止的开关。MOS开关MOS开关有2种,用如下关键字声明:nmos(N类型MOS管)pmos(P类型MOS管)rnmos(带有高阻抗的NMOS管)rpmos(带有高阻抗的PMOS管)MOS管用来为开关逻辑建模,数据从输入流入输出,可通过适当设置
关键词:MOS,CMOS,双向开关,PAD开关级建模是比门级建模更为低级抽象层次上的设计。在极少数情况下,设计者可能会选择使用晶体管作为设计的底层模块。随着电路设计复杂度及相关先进工具的出现,以开关为基础的数字设计慢慢步入黄昏。目前,Verilog仅仅提供了用逻辑值0、1、x、z作为相关驱动强度的数字设计能力,因此,Verilog中晶体管也仅被当做导通或截止的开关。MOS开关MOS开关有2种,用如下关键字声明:nmos(N类型MOS管)pmos(P类型MOS管)rnmos(带有高阻抗的NMOS管)rpmos(带有高阻抗的PMOS管)MOS管用来为开关逻辑建模,数据从输入流入输出,可通过适当设置