- 1、本文档共152页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 Verilog HDL 基本语法;数字电路系统的设计者通过这种语言
a可以从上层到下层,从抽象到具体,逐层次地描述自己的设计思想,
b用一系列分层次的模块来表示极其复杂的数字系统,
C然后利用模块组合经由自动综合工具转换到门级电路网表,
d再用自动布局布线工具把网表转换为具体电路进行布局布线后,
e下载到专用集成电路(ASIC)或现场可编程逻辑器件。;4.1.1 Verilog HDL发展过程
Verilog HDL语言最初是于1983年由Gateway Design Automation公司为其模拟器产品开发的硬件建模语言。
Verilog 语言于1995年成为IEEE标准,称为IEEE Std 1364-1995;
2001年又发布了Verilog HDL1363-2001标准;
随即在2005年又发布了System Verilog 1800-2005标准,这一系列标准的制定使得Verilog语言在综合、仿真、验证及IP重用等方面有很大幅度的提高。
Verilog HDL 是System Verilog语言的基础。SystemVerilog结合了来自 Verilog、VHDL、C++的概念,它将硬件描述语言(HDL)与现代的高层级验证语言结合了起来。System Verilog加入了一些C++的元素。
近些年在国内Verilog的应用率显著增加,国内绝大多数IC设计公司都采用Verilog HDL。学习Verilog不仅可以对数字电路技术有更进一步的了解,而且可为以后学习高级的行为综合、物理综合、IP设计和复杂系统设计打下坚实的基础。
;4.1.2 Verilog HDL 与C语言比较;C语言与Verilog HDL运算符基本相同。而C语言是一种在硬件上运行的语言,而Verilog是描述硬件的语言,要受到具体硬件电路的限制,它们的区别如下:
在Verilog HDL中不能使用C语言中很多抽象的表示方法,如迭代表示法、指针(C语言最具特点的语法)、不确定的循环及动态声明等等。
C语言是一行一行地执行,按顺序执行;而Verilog HDL描述的是硬件,可以在同一时间内有很多硬件电路一起并行执行,两者之间有区别。
C语言的输入/输出函数丰富,而Verilog HDL 能用的输入/输出函数很少。
C语言无时间延迟的指定,而Verilog HDL可以指定时间延迟。
C语言中函数的调用是唯一的,每一个都是相同的,可以无限制调用。而Verilog HDL对模块的每一次调用都必须赋予一个不同的别名,虽然调用的是同一模块实例,但不同的别名代表不同的模块,即生成了新的硬件电路模块。
与C语言相比,Verilog HDL描述语法较死,限制较多,能用的判断叙述有限。
Verilog HDL中的延时语句只能用于仿真,不能被综合工具所综合。
;4.2 Verilog HDL设计举例
1、1位比较器的三种不同风格Verilog HDL程序设计
【例4.2.1】1位比较器的Verilog HDL程序。通过对输入信号A,B的比较,把比较的结果反映到m,L,e端口。
;2、测试模块例子
Verilog HDL可以用来描述变化的测试信号,它给出模块的输入信号,通过观测被测试模块是否符合要求,可以调试和验证逻辑系统设计和结构的正确性,并能发现问题及时修改。
;每一项工程是由大量功能各异的模块组合而成的。
模块是由两部分组成的:(1)一部分是接口描述(该模块与其他外部模块进行通信的端口),(2)另一部分是逻辑功能描述(描述某个设计的功能或者结构),即定义输入是如何影响输出的。
模块可以进行层次嵌套,将大型的数字电路设计分割成不同的小模块来实现特定的功能,最后通过顶层模块调用子模块来实现整体功能。
;一个模块, 由
module
1.模块名 (module_name)
2端口列表 (port_list)
3端口声明 (input、output、inout)
4变量声明 (reg、wire、parameter)
5行为描述语言 (initial、always)
6连续赋值语句 (continuous assignment)
7模块调用语句 (module instantiation)
8任务及函数 (task、function)
endmodule
在模块的所有组成部分中,只有module、模块名和endmodule必须出现,其它部分都是可选的
;模块:verilog模块的部件;作用:端口是模块与外界交互的接口;
于外部环境(使用者/连接者)来讲,模块内部 不可见,对模块的调用只能通过其端口进行。
;(2)实例引用;4.2 I/O说明
常见I/O口类型有
1.输入口(input)
2.输出口(output)
3.双向口(i
文档评论(0)