VerilogHDL基本语法

VerilogHDL基本语法

ID:36536880

大小:1.36 MB

页数:152页

时间:2019-05-09

VerilogHDL基本语法_第1页
VerilogHDL基本语法_第2页
VerilogHDL基本语法_第3页
VerilogHDL基本语法_第4页
VerilogHDL基本语法_第5页
资源描述:

《VerilogHDL基本语法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第4章VerilogHDL基本语法4.1Verilog简介硬件描述语言(HardwareDescriptionLanguage,HDL)是电子系统硬件(1)行为描述、(2)结构描述、(3)数据流描述的一种语言。数字电路系统的设计者通过这种语言a可以从上层到下层,从抽象到具体,逐层次地描述自己的设计思想,b用一系列分层次的模块来表示极其复杂的数字系统,C然后利用模块组合经由自动综合工具转换到门级电路网表,d再用自动布局布线工具把网表转换为具体电路进行布局布线后,e下载到专用集成电路(ASIC)或现场可编程逻辑器件。4.1.1VerilogHDL发展过程Veri

2、logHDL语言最初是于1983年由GatewayDesignAutomation公司为其模拟器产品开发的硬件建模语言。Verilog语言于1995年成为IEEE标准,称为IEEEStd1364-1995;2001年又发布了VerilogHDL1363-2001标准;随即在2005年又发布了SystemVerilog1800-2005标准,这一系列标准的制定使得Verilog语言在综合、仿真、验证及IP重用等方面有很大幅度的提高。VerilogHDL是SystemVerilog语言的基础。SystemVerilog结合了来自Verilog、VHDL、C++的

3、概念,它将硬件描述语言(HDL)与现代的高层级验证语言结合了起来。SystemVerilog加入了一些C++的元素。近些年在国内Verilog的应用率显著增加,国内绝大多数IC设计公司都采用VerilogHDL。学习Verilog不仅可以对数字电路技术有更进一步的了解,而且可为以后学习高级的行为综合、物理综合、IP设计和复杂系统设计打下坚实的基础。4.1.2VerilogHDL与C语言比较C语言与VerilogHDL运算符基本相同。而C语言是一种在硬件上运行的语言,而Verilog是描述硬件的语言,要受到具体硬件电路的限制,它们的区别如下:在VerilogH

4、DL中不能使用C语言中很多抽象的表示方法,如迭代表示法、指针(C语言最具特点的语法)、不确定的循环及动态声明等等。C语言是一行一行地执行,按顺序执行;而VerilogHDL描述的是硬件,可以在同一时间内有很多硬件电路一起并行执行,两者之间有区别。C语言的输入/输出函数丰富,而VerilogHDL能用的输入/输出函数很少。C语言无时间延迟的指定,而VerilogHDL可以指定时间延迟。C语言中函数的调用是唯一的,每一个都是相同的,可以无限制调用。而VerilogHDL对模块的每一次调用都必须赋予一个不同的别名,虽然调用的是同一模块实例,但不同的别名代表不同的模

5、块,即生成了新的硬件电路模块。与C语言相比,VerilogHDL描述语法较死,限制较多,能用的判断叙述有限。VerilogHDL中的延时语句只能用于仿真,不能被综合工具所综合。4.2VerilogHDL设计举例1、1位比较器的三种不同风格VerilogHDL程序设计【例4.2.1】1位比较器的VerilogHDL程序。通过对输入信号A,B的比较,把比较的结果反映到m,L,e端口。2、测试模块例子VerilogHDL可以用来描述变化的测试信号,它给出模块的输入信号,通过观测被测试模块是否符合要求,可以调试和验证逻辑系统设计和结构的正确性,并能发现问题及时修改。

6、每一项工程是由大量功能各异的模块组合而成的。模块是由两部分组成的:(1)一部分是接口描述(该模块与其他外部模块进行通信的端口),(2)另一部分是逻辑功能描述(描述某个设计的功能或者结构),即定义输入是如何影响输出的。模块可以进行层次嵌套,将大型的数字电路设计分割成不同的小模块来实现特定的功能,最后通过顶层模块调用子模块来实现整体功能。4.3Verilog模块的结构一个模块,由module1.模块名(module_name)2端口列表(port_list)3端口声明(input、output、inout)4变量声明(reg、wire、parameter)5行为

7、描述语言(initial、always)6连续赋值语句(continuousassignment)7模块调用语句(moduleinstantiation)8任务及函数(task、function)endmodule在模块的所有组成部分中,只有module、模块名和endmodule必须出现,其它部分都是可选的模块:verilog模块的部件module模块名,端口列表,端口(如果有端口)参数声明wire、reg和其它类型的变量的声明底层模块实例数据流语句(assign)always块和initial块,所有行为语句全都在这些块中任务和函数endmodule模块

8、语句结束可以在模块内部以任意位置,以任意顺序出现作用

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

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

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