verilog综合心得

verilog综合心得

ID:41402525

大小:79.51 KB

页数:3页

时间:2019-08-24

verilog综合心得_第1页
verilog综合心得_第2页
verilog综合心得_第3页
资源描述:

《verilog综合心得》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、综合:不可综合的运算符:===,!==,/(除法),%(取余数)。VerilogHDL语句及可综合性:类别语句可综合性过程语句initial否begin是块语句串行块begin-end是并行块fork-join否赋值语句持续赋值assign是过程赋值=、<=是条件语句if–else是case,casez,casex是循环语句for是repeat否while否forever否编译向导语句`define是`include是`ifdef,`else,`endif是可综合设计的特点:1、不使用初始化语句。2、不使用带有延时的描述。3、不使用循环

2、次数不确定的循环语句,如:forever、while等。4、尽量采用同步方式设计电路。5、除非是关键路径的设计,一般不调用门级元件来描述设计的方法,建议采用行为语句来完成设计。6、用always过程块描述组合逻辑,应在信号敏感列表中列出所有的输入信号。7、所有的内部寄存器都应该能够被复位,在使用FPGA实现设计时,应尽量使用器件的全局复位端作为系统总的复位。8、在verilog模块中,任务(task)通常被综合成组合逻辑的形式,每个函数(function)在调用时通常也被综合为一个独立的组合电路模块。9、用户自定义原语(UDP)是不可综

3、合的,它只能用来建立门级元件的仿真模型。一般综合工具支持的VerilogHDL结构VerilogHDL结构可综合性说明modulemocromodule是wirereginteger数据类型是parameter是端口类型inputoutputinout是运算符+、-、*、%&、~&、

4、、~

5、、^、^~==!=&&

6、

7、

8、~&

9、^^~>><

10、ufif1bufif0notif1notif0pulluppulldown全部可综合:但某些工具对取值为x和z有所限制持续赋值assign是3过程赋值:阻塞赋值(=)非阻塞赋值(<=)支持,但对同一reg型变量只能采用阻塞和非阻塞赋值中的一种进行赋值条件语句if-elsecasecasezcasexendcase一般支持,有的综合器不支持casexcasezfor循环语句是always过程语句begin-end块语句是functionendfunction是taskendtask一般支持,少数综合器不支持编译向导:`include`de

11、fine`ifdef`else`endif是一般综合工具忽略的VerilogHDL结构VeriolgHDL结构可综合性说明延时控制这些结构和语句在综合时全被忽略scalaredvectoredspecifysmalllargemediumweak1weak0highz0highz1pull0pull1time有些综合工具将其视为整数(integer)wait有些综合工具有限制地支持一般综合工具不支持的VerilogHDL结构VerilogHDL结构可综合性说明在assign持续赋值中,等式左边含有变量的位选择多数综合器对这些结构和语句不

12、支持,用这些语句描述的程序代码不能转化为具体的电路网表结构,但这些结构能够被仿真工具所支持。全等运算符(===、!==)cmosnmosrcmosrnmospmosrpmosdeassigndefparameventforcereleaseforkjoinforeverrepeatwhileinitialrtrantrantranif0tranif1rtranif0rtranif1tableendtableprimitiveendprimitive移位运算符:VerilogHDL提供向右(>>)及向左(<<)两种运算符,运算符高位或地位

13、一旦移出即予丢弃,其空缺的位则予以补零。连续赋值语句(assign)、case语句、if…else语句都是可以综合的initial语句内若包含有多个语句时,必须以beginend作聚合;单一的初值赋值,因此并不需以beginend做聚合。循环(Loops)并不能单独地在程序中存在,而必须在initial和always块中才能使用。initial过程块中的语句仅执行一次,而always块中的语句是不断重复执行的。编写顶层模块的注意事项每个端口除了要声明是输入、输出还是双向外,还要声明其数据类型,是连线型(wire)还是寄存器型(reg),

14、如果没有声明则综合器默认为wire型。1、输入和双向端口不能声明为寄存器型。2、在测试模块中不需要定义端口。编写testbentch所归纳的心得3module模块名称;将input定义为reg;将outpu

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。