- 1、本文档共168页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[信息与通信]第4章 应用VHDL设计数字系统
第4章 应用VHDL设计数字系统 麦强 2011.3 第4章 VHDL设计数字系统 代码结构:库、实体和构造体 数据类型 运算操作符 并发描述语句和并发代码 顺序描述语句和顺序代码 对象:信号、变量和常量 简单电路设计实例分析 VHDL代码结构 VHDL代码结构 VHDL代码的3个基本组成部分: 库(LIBRARY)声明 实体(ENTITY) 构造体(ARCHITECTURE) VHDL代码结构 库(LIBRARY)声明:列出了当前设计中需要用到的所有库文件,如ieee,std和work等。 库是一些常用代码的集合,将电路设计中经常使用的一些代码存放到库中有利于设计的重用和代码共享。 VHDL代码结构 在VHDL设计中3个常用的库: 1. ieee库: 在ieee库包含了许多包集,有一个IEEE正式认可的标准包集std_logic_1164.all。 2. std库: std库是VHDL设计环境的标准资源库,包括数据类型和输入输出文本等内容。 3. work库: work库是当前工作库,当前设计的所有代码都存放在work库中,使用work库不需要进行任何声明。 VHDL代码结构 库的声明 使用一个库之前,需要首先对库进行声明。 库的声明方式: VHDL代码结构 库的声明 目前设计中常用以下3个包集: std_logic_1164(来自ieee库) standard(来自std库) work(来自work库) 请对以上3个包集进行声明? VHDL代码结构 库的声明 std_logic_1164(来自ieee库) VHDL代码结构 实体 实体(ENTITY)用来描述电路的所有输入输出引脚,其语法结构如下: VHDL代码结构 VHDL代码结构 如图所示是一个基本的与非门,试对它的实体进行描述? VHDL代码结构 如图所示是一个基本的与非门,试对它的实体进行描述? VHDL代码结构 构造体 构造体(ARCHITECTURE)用来描述电路行为和实现功能,其语法结构如下: VHDL代码结构 一个ARCHITECTURE包含两个部分:声明部分(可选),用于对信号和常量等进行声明;代码部分(BEGIN和END之间的部分),用来描述电路行为(功能) ARCHITECTURE命名:除了关键字以外的任何名称,允许和ENTITY具有相同的名称 VHDL代码结构 如图所示是一个基本的与非门,试对它的构造体进行描述? VHDL代码结构 如图所示是一个基本的与非门,试对它的构造体进行描述? VHDL代码结构 如图所示是一个基本的与非门,试通过VHDL对该电路进行设计? VHDL代码结构 如图所示是一个基本的异或门,试通过VHDL对该电路进行设计? VHDL代码结构 如图所示是一个2选1多路选择器的电路模型,试通过VHDL对该电路进行设计? VHDL代码结构 如图所示是一个2选1多路选择器的电路模型,试通过VHDL对该电路进行设计? VHDL代码结构 如图所示是一个2选1多路选择器的电路模型,试通过VHDL对该电路进行设计? VHDL代码结构 如图所示是一个2选1多路选择器的电路模型,试通过VHDL对该电路进行设计? VHDL代码结构 如图所示的半加器电路模型,试通过VHDL对该电路进行设计?要求使用逻辑操作符(AND, OR ,NAND和NOT等) VHDL代码结构 如图所示的电路模型,试通过VHDL对该电路进行设计?要求使用逻辑操作符(AND, OR ,NAND和NOT等) VHDL数据类型 VHDL数据类型 预定义的数据类型 用户定义的数据类型 VHDL数据类型 预定义的数据类型 std库的standard包集:位(BIT)、布尔(BOOLEAN)、整数(INTEGER)和实数(REAL)数据类型 ieee库的std_logic_1164包集:STD_LOGIC和STD_ULOGIC数据类型 ieee库的std_logic_arith包集:SIGNED和UNSIGNED VHDL数据类型 位(BIT)和位矢量(BIT_VECTOR): 位值用‘0’或‘1’表示 例 SIGNAL x: BIT; -- 将x声明位一个位宽为1的BIT类型的信号 SIGNAL x: BIT_VECTOR(3 DOWNTO 0); -- 将y声明为一个位宽为4的位矢量,其中最左边的一位是最高位 在定义了上述信号以后,采用下面的方式对信号赋值(必须使用“=”操作符号给信号赋值) x = ‘1’; --x是位宽为1,值为’1’的信号,当位宽为1时,位值放在单引号中 y = “0111”; --y是位宽为4,值为“0111”的信号,当位宽大于1时,位矢量放在双引号中 VHDL数据类型 STD_LOGIC和 STD_LOGIC _VEC
文档评论(0)