- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3.1 VHDL语言概述 VHDL Very-High-Speed Integrated Circuit Hardware Description Language 语言主要目的是进行电路系统的描述、行为的建模与仿真。 VHDL语言强大的行为描述能力使其避开具体的器件结构,从逻辑行为上成为描述和设计大规模电子系统的重要保证。 一、VHDL语言的优点如下: 1 ?VHDL有丰富的语句形式和库函数,使其在系统的设计早期就能从行为特性上查验系统的功能可行性,并随时可对设计进行仿真。 2 ?VHDL语句的行为描述能力和代码结构决定了它具有支持大规模设计的分解和已有设计的再利用功能,符合大规模系统所需的多人协同高效工作的要求。 3 ?VHDL对设计的描述具有相对独立性,开发者可以不懂硬件的结构,也不必关心最终设计实现的目标器件是什么,便可进行相对独立的设计。 4 ?VHDL与设计平台无关,可移植性较好。 5 ?VHDL是最早成为IEEE标准的硬件描述语言,使用广泛,资料查找方便,适合初学者学习。 需要特别注意的是,VHDL与常规计算机高级程序设计语言有所不同,VHDL语句从根本上讲是并发执行的,只有在进程 Process 、函数 Function 和过程 Procedure 内部的语句才是顺序执行的。 VHDL描述了电路设计的行为、功能、输入以及输出,其本质是用程序语言的方式来描述硬件。图3-1显示了VHDL的基本硬件模型。 图3-1 VHDL基本硬件模型 3.2 两个简单的组合电路示例3.2.1 2选1多路选择器的设计 在数字电路中,2选1多路选择器是组合电路的典型代表。假设有a和b两个数据,控制信号为s,当s取值为0时,选择数据a作为输出;否则,选择数据b作为输出。 按照数字电路的设计方法,首先需要列出真值表、卡诺图,然后通过化简卡诺图得到最简逻辑表达式,再根据所选择逻辑器件的要求进行表达式的变换,确认最终的电路形式。 图3-2 2选1多路选择器卡诺图及逻辑表达式 图3-3 2选1多路选择器的电路结构 图 3-5 2选1多路选择器电路的时序波形 例3-1采用的VHDL描述与其电路结构是一一对应的,读者可能会疑惑,这样的描述形式似乎并不能体现VHDL行为描述的优势,且设计者必须搞清楚电路结构才能进行VHDL代码的编辑。其实VHDL有多种不同的描述方式,在后续章节中会详细介绍,例3-1的目的是让同学能够以数字电路的知识作为铺垫,快速学习EDA技术。 3.2.2 半加器的设计 下面再通过一个半加器的例子来说明VHDL的基本结构形式。半加器是指对两个输入数据位相加,输出一个结果位和进位,没有进位输入的加法器电路。图3-6显示了半加器的真值表和逻辑表达式,其中a、b是两个加数,co是进位端,so是求和端。图3-7是半加器的电路结构。例3-2是半加器的VHDL描述,此例仍然采用逻辑操作符描述电路结构的方式。 图3-6 半加器真值表和逻辑表达式 图3-7 半加器电路结构 例3-2与例3-1相比,除了包含实体和结构体两个部分外,还增加了库和程序包的声明 L2~L3 。例3-2所涉及的相关语法讲解如下: 1 ?L2以关键词LIBRARY为引导,LIBRARY ieee表示打开IEEE库。L3以关键词USE为引导,表示允许使用IEEE库中的std_logic_1164程序包中的所有内容 .all 。例3-2使用库和程序包的原因是本例中用到了数据类型STD_LOGIC,该数据类型的相关定义都是包含在std_logic_1164程序包中的,所以在使用前必须先给予声明。 读者也许会问,例3-1也使用了数据类型BIT,为什么不需要进行库和程序包的声明呢?数据类型BIT的定义是包含在VHDL标准程序包standard中的,而该程序包包含于VHDL标准库STD中。由于VHDL标准中规定STD库是默认打开的,因此不需要以语句显式地表达在VHDL代码的开头。 2 数据类型STD_LOGIC称为标准逻辑位数据类型,共定义了九种取值,分别是:“U” 未初始化的 、“X” 强未知的 、“0” 强逻辑0 、“1” 强逻辑1 、“Z” 高阻态 、“W” 弱未知的 、“L” 弱逻辑0 、“H” 弱逻辑1 、“-” 忽略 。 STD_LOGIC型数据能够被综合器接受的一般只有“X” 或“-” 、“0”、“1”、“Z”这几种,其他的取值则不可综合,只能用于仿真器。 例3-2的仿真结果如图3-9所示。 图3-9 半加器电路的时序波形 3.2.3 VHDL代码设计基本结构 从例3-1和例3-2可以看出,一个能够被综合的VHDL代码至少须包含实体和
您可能关注的文档
最近下载
- (YUM)百胜验厂审核详细要求清单.pdf VIP
- 四上数学口算竖式脱式应用题每日一练60天(60页).pdf VIP
- 《云南彝良地区地质构造特征探讨.docx VIP
- 三上数学口算竖式脱式应用题每日一练60天(60页).pdf VIP
- 2025年新青岛版数学三年级上册全册课件.pptx
- 《旅游客源地与目的地概况》教案 第1课 了解世界旅游业(一).pdf VIP
- 人教版劳动教育四年级上册全册教学设计.pdf VIP
- 2022年国家人体生物监测工作手册.pdf VIP
- 电子课件自主学习修订版第一单元开启自主学习的旅程.pptx VIP
- JBT 4333.2-2013 厢式压滤机和板框压滤机 第2部分:技术条件.pdf VIP
文档评论(0)