- 1、本文档共36页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章——Verilog硬件描述语言1
为什么要采用硬件描述语言(HDL) 随着电子系统设计复杂性的提高,可利用HDL在抽象层次对复杂系统进行有效的描述。 HDL描述结果易于通过EDA工具完成工艺无关的设计,有利于保证设计正确性和对设计进行管理 便于对设计进行管理、归档和重用 易于对设计进行修改,以探索不同的设计可能性 便于提高设计的效率 硬件描述语言特点 功能的灵活性 支持从开关级,门级,RTL,行为级等不同抽 象层次对电路进行描述。 支持不同抽象层次描述的电路组合为一个电路模型。 支持元件库、功能模块的可重用设计。 HDL支持高层次的设计抽象,适用于复杂数字电路系统设计。 HDL设计可不依赖厂商和器件,可移植性好。 Verilog在VLSI设计过程中的位置 1985年,Gateway Design Automation公司为其仿真器产品开发了Verilog语言。 1989年,Cadence收购Gateway公司,并继续推广Verilog语言和仿真器。 1995年公布了IEEE 1364-1995 Verilog标准 2001年公布了IEEE 1364-2001 Verilog标准,对IEEE 1364-1995 进行了修订 3.1 硬件描述语言概述 VHDL:VHSIC(very high-speed IC)hardware description language,是由美国国防部为了解决项目的多个承包人的信息交换困难和设计维修困难的问题而提出的,由TI,IBM和INTERMETRICS公司完成。 1987年制定为IEEE标准,即:IEEE std 1076-1987[LRM87],1993后又进行一些修改,成为新的标准版本。 Verilog 与 VHDL 两者的区别: VHDL侧重于系统级描述,从而更多的为系统级设计人员所采用 Verilog侧重于电路级描述,从而更多的为电路级设计人员所采用 Verilog HDL与 C语言 虽然Verilog的某些语法与C语言接近,但存在本质上的区别 Verilog是一种硬件语言,最终是为了产生实际的硬件电路或对硬件电路进行仿真 C语言是一种软件语言,是控制硬件来实现某些功能 利用Verilog编程时,要时刻记得Verilog是硬件语言,要时刻将Verilog与硬件电路对应起来 SystemC and SystemVerilog:面向SOC 3.1.2 层次化设计 3.2 Verilog HDL描述的四个层次的电路模型 行为级或算法级 是Verilog HDL支持的最高抽象级别,侧重关注算法的实现,不关心硬件电路的实现。 行为级或算法级 寄存器传输级 通过描述模块内部状态转移的情况来表征该逻辑单元的功能,设计者关注数据的处理及其如何在线网上,寄存器间的传递。 寄存器传输级 门级 调用已设计好的逻辑门基本单元(原语),如,与门,或门、异或门等,描述逻辑门之间的连接,以实现逻辑功能。 门级 开关级 这是Verilog 语言支持的最低抽象层次,通过描述器件中的晶体管,存储节点及其它们的互联来设计模块 。 3.2.1 模块结构分析 例3-1:设计一个半加器 1)功能分析,真值表: 3.2.1 模块结构分析 2)半加器的Verilog HDL描述 3.2.1 模块结构分析 模块(module)是Verilog HDL设计的基本功能单元。模块可以是: 一个元件 多个低层次模块的组合 3.2.1 模块结构分析 1、含端口名的模块声明 格式: module 模块名(端口1,端口2,…,端口n); 为便于工程管理,模块命名一般应和其功能相关 端口是模块和外界进行信息交互的接口 如果模块与外界无信息交互,则无端口列表,例如: module testbench(); 如有信息交互,注意在括号中罗列的各端口名用逗号隔开 2. I/O端口声明 所有声明的端口都必须说明其端口类型、位宽等信息 。 端口类型有三类 输入端口 格式:input [width-1:0] 端口名1… ; 输出端口 格式:output [width-1:0] 端口名1,…; 输入/输出端口 格式:inout [width-1:0] 端口名1,…; 2. I/O端口声明 例: input[7:0] data_in; output S,CO; inout[15:0] data_1,data_2; ? 3 数据类型说明 输出端口的信号,模块内部信号需要数据类型说明。 常用两类数据类型,线网类型(关键词:wire)寄存器类型(关键词:reg )。 4 模块功能说明 常有四类方法可以选用以完成模块逻辑功能的表述 4 模块功能说明 用结构说明语句“always”、“initial
文档评论(0)