VHDL复习题.doc_第1页
VHDL复习题.doc_第2页
VHDL复习题.doc_第3页
VHDL复习题.doc_第4页
VHDL复习题.doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

习 题3.1比较常用硬件描述语言VHDL、Verilog和ABEL语言的优劣。1.VHDL:描述语言层次较高,不易控制底层电路,因而对综合器的性能要求较高。有多种EDA工具选择,已成为IEEE标准。 应用VHDL进行工程设计的优点是多方面的,具体如下: (1) 与其他的硬件描述语言相比,VHDL具有更强的行为描述能力。 (2) VHDL具有丰富的仿真语句和库函数,使得在任何大系统的设计早期,就能查验设计系统的功能可行性,随时可对系统进行仿真模拟,使设计者对整个工程的结构和功能可行性做出判断。 (3) VHDL语句的行为描述能力和程序结构,决定了它具有支持大规模设计的分解和已有设计的再利用功能。 (4) 用VHDL完成一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动把VHDL描述设计转变成门级网表(根据不同的实现芯片)。 (5) VHDL对设计的描述具有相对独立性。 (6) VHDL具有类属描述语句和子程序调用等功能,对于完成的设计,在不改变源程序的条件下,只需改变类属参量或函数,就能轻易地改变设计的规模和结构。2. Verilog:设计者需要了解电路的结构细节,对综合器的性能要求较低。有多种EDA工具选择,已成为IEEE标准。3.ABEL: 设计者需要了解电路的结构细节,对综合器的性能要求较低。支持ABEL的综合器只有一家,ABEL正朝国际化标准努力。3.2 VHDL程序一般包括几个组成部分?每部分的作用是什么?(1)三个基本组成部分:库、程序包使用说明,实体描述和实体对应的结构体描述。(2)库、程序包使用说明:用于打开调用本设计实体将用到的库、程序包 实体描述:用于描述该设计实体与外界的接口信号说明 结构体描述:用于描述该设计实体内部的组成及内部工作的逻辑关系 结构体配置语句主要用于层次化的方式对特定的设计实体进行元件的例化,或是为实体选定某个特定的结构体3.3 VHDL语言中数据对象有几种?各种数据对象的作用范围如何?各种数据对象的实际物理含义是什么?(1)数据对象有三种:变量、常量、信号(2)常量的作用范围取决于其所定义的位置。若在程序包中定义,则可以用在调用该程序包的所有设计实体中。若定义在实体中,则可在这个实体的所有结构体中使用。若定义在结构体中,则只能用于该结构体。若定义在进程/子程序中,则只能用于该进程/子程序。 变量属于局部量,作用范围仅限于所定义的进程或子程序内部。 信号属于全局量,作用范围取决于其所定义的位置。若在程序包中定义,则可以用在调用该程序包的所有设计实体中。若定义在实体中,则可在这个实体的所有结构体中使用。若定义在结构体中,则只能用于该结构体。(3) 信号表示硬件中的连线,用于各并行语句模块之间的通信。变量一般用于存储局部/临时数据。常量表示电路中的恒定电平,可使代码中常数易于阅读和修改。3.4 什么叫标识符?VHDL的基本标识符是怎样规定的?(1)标识符用来定义常量、变量、信号、端口、子程序或者参数的名字。(2)VHDL的基本标识符就是以英文字母开头,不连续使用下划线,不以下划线结尾的,由26个英文大小写字母,数字0-9以及下划线组成的字符串。3.5 信号和变量在描述和使用时有哪些主要区别?(1)变量只能在进程或子程序内部定义,用于存储局部/临时数据。信号只能在进程或子程序的外部定义,表示硬件中的连线,用于各并行语句模块之间的通信。(2)信号用signal关键字定义,赋值符号为”=”。变量用variable关键字定义,赋值符号为”:=”(3)信号赋值,可以设定延时量,需要延时一段时间后才执行;变量赋值立即执行。3.6 VHDL语言中的标准数据类型有哪几类?用户可以自己定义的数据类型有哪几类?并简单介绍各数据类型。(1)标量型:属单元素最基本的数据类型,通常用于描述一个单值数据对象,它包括实数类型、整数类型、枚举类型和时间类型。 复合类型:可以由细小的数据类型复合而成,如可有标量复合而成。复合类型主要有数组型和记录型。 存取类型:为给定的数据类型的数据对象提供存取方式。 文件类型:用于提供多值存取类型。(2) 用户可自定义的数据类型:枚举类型、整数类型、数组类型、记录类型、时间类型、实数类型等3.7 BIT数据类型和STD_LOGIC数据类型有什么区别?BIT 数据类型只能取值0 或1,而STD_LOGIC 数据类型是BIT 数据类型的扩展,除了0 和 1 外,还包括7 种数据类型,分别是U,X,Z,W,L,H,_3.8 用户怎样自定义数据类型?试举例说明。利用类型定义语句TYPE 和子类型定义语句SUBTYPE 实现。如TYPE WEEK IS (SON,MON,TUE,WED,THU,FRI,SAT) SUBTYPE DIGITS INTEGER RANGE 0 TO 93.9 VHDL语言有哪几类操作符?在一个表达式中有多种操作符时应按怎样的准则进行运算?下列三个表达式是否等效: A=NOT B AND C OR D; A=(NOT B AND C) OR D; A=NOT B AND (C OR D).(1)主要有四种操作符 逻辑运算符,关系运算符,算术运算符,符号运算符此外还有重载运算符。(2)按照操作符的优先级高低进行运算(3)这三个表达式不等效。1式表达错误,对同一优先级的不同运算符应加上括号。2和3式的运算顺序不同。 VHDL操作符优先级:(关系操作符的结果只有TRUE或FALSE两种。)3.10 简述六种移位操作符SLL、SRL、SLA、SRA、ROL和ROR的含义及操作规定?并举例说明。(1)SLL:逻辑左移,bit 或布尔一维数组 SRL:逻辑右移,bit 或布尔一维数组 SLA:算数左移,bit 或布尔一维数组 SRA:算数右移,bit 或布尔一维数组 ROL:逻辑循环左移,bit 或布尔一维数组 ROR:逻辑循环右移,bit 或布尔一维数组(2)A= “ 10010101 A sll 2得 01010100 (逻辑左移,用 0填补空位) A srl 3得00010010 (逻辑右移,用 0填补空位) A sla 3得10101111 (算术左移,用最左端位填补空位) A sra 2得11100101 (算术右移,用最右端位填补空位) A rol 3得10101100 (循环左移) A ror 5得10101100 (循环右移)3.11 什么叫重载操作符?使用重载操作符有什么好处?怎样使用重载操作符?含有重载操作符的运算怎样确定运算结果?(1)对已存在的操作符重新定义,使其能进行不同类型操作数之间的运算。(2)方便各种不同数据类型间的运算。(3)引用数据包:STD_LOGIC_ARITH、STD_LOGIC_UNSIGNED和STD_LOGIC_即可使用重载操作符。3.12 VHDL程序设计中的基本语句系列有几种?它们的特点如何?它们各使用在什么场所?它们各自包括些什么基本语句?答:(1)顺序语句与并行语句。(2)顺序语句的执行与它们的书写顺序基本一致(指仿真或逻辑上的顺序执行),但实际上硬件电路是并行工作的。顺序语句用在进程和子程序的内部。并行语句的执行与书写顺序无关,各语句是同时执行的,在执行过程中各并行语句之间可通过信号进行通信,同步运行;也可以互为独立、互不相关,异步运行。(3)顺序语句:变量/信号赋值语句,流程控制语句(if,case,loop,next,exit),等待语句,子程序调用语句,返回语句,空操作语句等。 并行语句:进程语句,块语句,信号赋值语句,元件例化语句,生成语句,子程序调用等语句。3.13 VHDL中信号赋值和变量赋值的有什么区别?其赋值符号是否异同?信号赋值延时更新数据,一般生成时序电路,用的是 顺序语句; when选择值2=顺序语句;. endcase;case语句可根据一个表达式的不同取值执行不同的顺序语句。使用时应注意:1.表达式的值可以是整型或枚举型的,或是这些数据类型构成的数组。2.选择值可以是单个取值,如4;也可以是一个取值范围,如2to5;也可以是多个并列的取值,如2|6;还可以是以上三种取值方式的混合。3.case语句执行时,根据选择表达式的值来选择执行哪个顺序语句,选择的结果和每个选择值的顺序无关,只要求对于选择表达式的每个可能取值,有且仅有一个选择值与之匹配即可。4.常用whenothers表示其它未列出的选择值。5.“=”后面的顺序语句可以有多个。(3) 标号:for循环变量in范围loop 标号:while条件loop 顺序语句; 顺序语句; endloop标号; endloop标号;for循环用于循环次数已知的情况;while循环用于循环次数未知的情况。使用时应注意:for循环中的循环变量无需事先定义,可自动加/减1。(4) next;无条件中止当前循环,返回循环起点,开始下次循环。 exit;无条件退出当前循环。 nextloop标号;无条件中止LOOP标号标明的循环,返回LOOP标号处,开始下次循环。 exitloop标号;无条件退出LOOP标号标明的循环。 nextloop标号when条件;条件为真时中止LOOP标号标明的循环,返回LOOP标号处,开始下次循环。exitloop标号when条件;条件为真时退出LOOP标号标明的循环。3.16 在CASE 语句中在什么情况下可以不要WHEN OTHERS语句?在什么情况下一定要WHEN OTHERS语句?答:case语句执行时,根据选择表达式的值来选择执行哪个顺序语句,要求对于选择表达式的每个可能取值,有且仅有一个选择值与之匹配。因此,当已列出的选择值能够覆盖选择表达式的所有可能取值时,可以不要whenothers语句。否则,要用whenothers表示其它未列出的选择值。3.17 FORLOOP语句应用于什么场合?循环变量怎样取值?是否需要事先在程序中定义?在重复的次数已知的情况下可以使用该语句。循环变量的取值是根据系统的功能要求给定 的,要事先在程序上定义。3.18 分别用IF语句、CASE语句设计一个四十六译码器。a:用IF语句设计一个四十六译码器 PROCESS(G1,g2a,g2b,sel) begin if(g1=1and g2a=0and g2b=0)then if(sel=0000)then y=1111111111111110; elsif(sel=0001)then y=1111111111111101; elsif(sel=0010)then y=1111111111111011; elsif(sel=0011)then y=1111111111110111; elsif(sel=0100)then y=1111111111101111; elsif(sel=0101)then y=1111111111011111; elsif(sel=0110)then y=1111111110111111; elsif(sel=0111)then y=1111111101111111; elsif(sel=1000)then y=1111111011111111; elsif(sel=1001)then y=1111110111111111; elsif(sel=1010)then y=1111101111111111; elsif(sel=1011)then y=1111011111111111; elsif(sel=1100)then y=1110111111111111; elsif(sel=1101)then y=1101111111111111; elsif(sel=1110)then y=1011111111111111; elsif(sel=1111)then y=0111111111111111; else y=XXXXXXXXXXXXXXXX; end if; else Yyyyyyyyyyyyyyyyyy=XXXXXXXXXXXXXXXX; end case;3.19 WAIT语句有几种书写格式?哪些格式可以进行逻辑综合?wait until 结构 wait on 结构 其中wait until 结构可以进行逻辑组合3.20 VHDL的预定义属性的作用是什么?哪些项目可以具有属性?常用的预定义属性有哪几类?(1) 作用在于可对信号或其他的项目多种属性进行检测或统计。 (2) 具有属性的项目:类型,子类型,过程,函数,信号,变量,常量,实体,结构体,配置, 程序包,元件,语句标号。 (3) 常用的属性有信号类属性,数据区间类属性,数值类属性,数组属性3.21 试用EVENT 属性描述一种用时钟CLK 上升沿触发的D触发器及一种用时钟CLK下降沿触发的JK触发器。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY dtrigger IS PORT(clk: IN STD_LOGIC; d : IN STD_LOGIC; q : OUT STD_LOGIC);END dtrigger;ARCHITECTURE behave OF dtrigger ISBEGINPROCESS(clk)BEGIN IF clkEVENT AND clk=1 THEN q:=d; END IF; END PROCESS; END behave;3.22 什么叫进程语句?你是如何理解进程语句的并行性和顺序性的双重特性的?(1)进程实际上是顺序语句描述的一种进程过程,进程是用于描述事件的,process语句结构包含了一个代表实体中部分逻辑行为的独立的顺序语句描述的进程(2)一个结构体中可以有多个并行进程结构,而有一个进程内部结构却是由一系列顺序语句来构成的,即进程语句间是并行执行的进程的内部是顺序执行的(进程语句是一种描述硬件行为的语句,进程语句内部是由顺序语句构成的,内部执行时是顺 序性的,但进程语句属于并行语句,多个进程之间的执行并行运行。 )3.23 进程的启动条件是什么?如果进程有两个基本点敏感变量,其中一个由“0”变“1”,等待一段时间以后再由“1”变“0”;而另一个只由“1”变“0”改变一次,请问该进程将执行几遍?答:进程的启动条件:敏感信号列表中的任何一个敏感信号的值发生变化,或者wait语句中的条件为真。3遍3.24 有人说,进程中的语句顺序颠倒一下并不会改变所描述电路的功能,这种说法对吗?为什么?不对。因为PLC的扫描过程是从左到右,从上到下进行的。同一进程中的逻辑描述语句是顺序运行的。3.25 并行信号赋值语句有几类?比较其异同。(1)1.简单信号赋值语句2.条件信号赋值语句3.选择信号赋值语句(2)共同点:赋值目标都是信号,都是并行语句,都相当于一个隐含的进程语句(信号赋值语句中的所有读入信号都作为该进程的敏感信号)。 不同点:简单信号赋值语句是最简单的并行语句,执行时直接将表达式的值赋给信号。条件信号赋值语句的功能与if语句相同,在执行时按书写的先后顺序测试每个条件,一旦条件为真,则将表达式的值赋给信号。选择信号赋值语句与case语句相似。当关键字with后的选择表达式的值发生变化时,就将该值和每个选择值进行比较,将选择值匹配的子句中的表达式的值赋给信号。3.26 分别用条件信号赋值语句、选择信号赋值语句设计一个四十六译码器。LIBRARYIEEE; USEIEEE.STD_LOGIC_1164.ALL; USEIEEE.STD_LOGIC_UNSIGNED.ALL; ENTITYDECODERIS PORT(A,B,C,D:INSTD_LOGIC; Y:OUTBIT_VECTOR(15DOWNTO0); ENDENTITYDECODER;ARCHITECTUREART1OFDECODERIS SIGNALSR:STD_LOGIC_VECTOR(3DOWNTO0); BEGIN SR=D&C&B&A; Y(0)=1WHENSR=0000ELSE0; Y(1)=1WHENSR=0001ELSE0; Y(2)=1WHENSR=0010ELSE0; Y(3)=1WHENSR=0011ELSE0; Y(4)=1WHENSR=0100ELSE0; Y(5)=1WHENSR=0101ELSE0; Y(6)=1WHENSR=0110ELSE0; Y(7)=1WHENSR=0111ELSE0; Y(8)=1WHENSR=1000ELSE0; Y(9)=1WHENSR=1001ELSE0; Y(10)=1WHENSR=1010ELSE0;Y(11)=1WHENSR=1011ELSE0;Y(12)=1WHENSR=1100ELSE0;Y(13)=1WHENSR=1101ELSE0;Y(14)=1WHENSR=1110ELSE0;Y(15)=1WHENSR=1111ELSE0;ENDARCHITECTUREART1;ARCHITECTUREART2OFDECODERIS SIGNALSR:STD_LOGIC_VECTOR(3DOWNTO0); BEGIN WITHSRSELECT Y连续实体端口名,.)(4)名字关联是将例化元件的端口名与关联端口名通过关联(连续)符号“=一一对应地联系起来的方式;位置关联是按例化元件端口定义顺序将例化元件的对应的连续实体端口名一一列出的方式。3.38一个包集合由那两大部分组成?包集合通常包含哪些内容?程序包首和程序包体组成部分可以是USE语句、子程序定义、子程序体、数据类型说明子类型说明和常类说明3.29 什么叫子程序?过程语句用于什么场合?其所带参数是怎样定义的?函数语句用于什么场合?其所带参数是怎样定义的?(1)子程序是一个VHDL程序模块,这个模块利用顺序语句来定义和完成算法,因此只能使用顺序语句。VHDL子程序与其他软件语言程序中的子程序的应用目的是相似的,能更有效地完成重复性的工作。子程序有两种类型,即过程和函数(2)过程语句主要用在子程序。过程语句与其他高级语句中的子程序相当,他的参数可以使输入也可以是输出,即过程中的输入输出参数都应列在紧跟过程名的括号中。(3)函数语句相当于其他高级语言中的函数。语句中圆括号内所有参数都是输入参数或者输入信号。因此,在括号内指定端口方向“IN”可以省略。FUNCTION的输入值由调用者复制到输入参数中,若无特别制定在FUNCTION的语句中按常数处理3.30 库由哪些部分组成?在VHDL语言中常见的有几种库?编程人员怎样使用现有的库?(1)设计库由若干程序包组成,每个程序包都有一个包声明和一个可选的包体声明。在设计库中,包声明和包体声明是分别编译的。(2)在VHDL语言中常见的由1.标准设计库:std,2.用户现行工作库:work,3.IEEE设计库:IEEE。3.31 一个包集合由哪两大部分组成?包集合体通常包含哪些内容?(1)程序包首和程序包体(2)组成部分可以是USE语句、子程序定义、子程序体、数据类型说明子类型说明和常类说明3.32 什么是结构体的行为描述方式?它应用于什么场合?用行为描述方式所编写的VHDL程序是否都可以进行逻辑综合?(1) 行为描述:设计实体按算法的路径进行描述,他不是对某一个器件的描述,而是对整个设计单元的数学模型描述。(2) 主要用于系统数学模型的仿真或系统工作原理的仿真。(3) 故其大量采用的算术运算、关系运算、惯性延时、传输延时等描述方式是难以或不能进行逻辑综合的。3.33 什么叫数据流描述方式?它和行为描述方式的主要区别在哪里?用数据流描述方式所编写的VHDL程序是否都可以进行逻辑综合?(1)数据流描述也称RTL描述,它以类似于寄存器传输级的方式描述数据的传输和变换,以规定设计中的各种寄存器形成为特征,然后再寄存器之间插入组合逻辑。(2)行为描述只表示输入与输出间转换的行为,它不包含任何结构信息,而数据流的描述会伴有大量的有关这种结构信息的“流出”。(3)类似于寄存器传输级的方式描述数据的传输和变换,认为数据是从一个设计流出,从输入到输出的观点称为数据流风格,所以不是所有的VHDL程序都可以进行逻辑综合。3.34 什么是结构体的结构描述方式?实现结构描述方式的主要语句是哪两个?(1) 结构描述:是描述该设计单元的硬件结构,即该硬件是如何组成的。复杂数字逻辑系统的层次化设计法(设计中高层次的模块调用低层次的模块,或者直接用门电路设计单元直接设计一个复杂的逻辑电路)。(2) 采用元件例化语句或生成语句进行设计。3.35 什么叫状态机?状态机的基本结构如何?状态机的种类有哪些?答:(1)状态机是一类很重要的时序电路,是许多数字电路的核心部件。(2)状态机的基本结构包括输入信号、输出信号和一组寄存器,它用于记忆状态机的内部庄涛。状态机可认为是组合逻辑和寄存器逻辑的特殊组合。它包括两个主要部分:组合逻辑部分和寄存器部分。寄存器部分用于存储状态机的内部状态;组合逻辑部分又分为状态译码器和输出译码器。状态译码器确实状态机的下一个状态,即确定状态机的激励方程;输出译码器确定状态机的输出,即确定状态机的输出方程。(3)两种典型的状态机是摩尔(MOORE)状态机和米立(MELAY)状态机。3.36 阅读第4.9节中的例3.9.2、例3.9.3、例3.9.5、例3.9.8、例3.9.9、例3.9.10、例3.9.13、例3.9.14、例3.9.15、例3.9.18、例3.9.20和例3.9.22,画出系统原理框图,阐述系统工作原理,并对主要语句作出注释。13-8线译码器下面我们分别以四种方法描述一个3-8线译码器。【例3.9.2】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED_ALL;ENTITY DECODER ISPORT(INP:IN STD_LOGIC_VECTOR(2 DOWNTO 0);OUTP:OUT BIT_VECTOR (7 DOWNTO 0);END ENTITY DECODER;方法1:使用SLL逻辑运算符ARCHITECTURE ART1 OF DECODER IS BEGIN OUTP= 00000001 SL (CONV_INTEGER(INP);END ARCHITECTURE ART1;方法2:使用PROCESS语句ARCHITECTURE ART2 OF DECODER IS BEGIN PROCESS(INP) ISBEGIN OUTP1); OUTP(COVN_INTEGER(INP)=1; END PROCESS;END ARCHITECTURE ART2;方法3:使用WHENELSE语句 ARCHITECTURE ART3 OF DECODER ISBEGIN OUTP(0)=1 WHEN INP=000 ELSE 0; OUTP(1)=1 WHEN INP=001 ELSE 0; OUTP(2)=1 WHEN INP=010 ELSE 0;OUTP(3)=1 WHEN INP=011 ELSE 0; OUTP(4)=1 WHEN INP=100 ELSE 0; OUTP(5)=1 WHEN INP=101 ELSE 0; OUTP(6)=1 WHEN INP=110 ELSE 0; OUTP(7)OUTPOUTPOUTPOUTPOUTPOUTPOUTPOUTPOUTP= XXXXXXXX; END CASE;END ARCHITECTURE ART4;28-3线优先编码器 下面我们用三种方法设计8-3线优先编码器。 8-3线优先编码器,输入信号为A、B、C、D、E、F、G和H,输出信号为OUT0、OUT1和OUT2。输入信号中A的优先级别最低,依次类推,H的优先级别最高。【例3.9.3】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ENCODER ISPORT (A,B,C,D,E,F,G,H:IN STD_LOGIC: OUT0,OUT1,OUT2:OUT STD_LOGIC);END ENTITY ENCODER;方法1:使用条件赋值语句ARCHITECTURE ART1 OF ENCODER IS SIGNA OUTS:STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN OUTS (2 DOWNTO 0)= 111 WHEN H=1 ELSE 110 WHEN G=1 ELSE 101 WHEN F=1 ELSE 100 WHEN E=1 ELSE 011 WHEN D=1 ELSE 010 WHEN C=1 ELSE 001 WHEN B=1 ELSE 000 WHEN A=1 ELSE XXX;OUT0=OUTS(0); OUT1=OUTS(1); OUT2=0 AND INPUTS(I)/=1 LOOP -此处的“/=”表示不等于I:=I-1;END LOOP;(OUT2,OUT1,OUT0)=CONV_STD_LOGIC_VECTOR(I,3);END PROCESS;END ARCHITECTURE ART2;方法3:使用IF语句LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ENCODER IS PORT(IN1:IN STD_LOGIC_VECTOR(7 DOWNTO 0); OUT1:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);END ENTITY ENCODER;ARCHITECTURE ART3 OF ENCODER ISBEGIN PROCESS(INT1) ISBEGIN IF IN1(7)=1 THEN OUT1=111;ELSIF IN1(6)=1 THEN OUT1=110;ELSIF IN1(5)=1 THEN OUT1=101;ELSIF IN1(4)=1 THEN OUT1=100;ELSIF IN1(3)=1 THEN OUT1=011;ELSIF IN1(2)=1 THEN OUT1=010;ELSIF IN1(1)=1 THEN OUT1=001;ELSIF IN1(0)=1 THEN OUT1=000;ELSE OUT1=XXX;END IF ;END PROCESS;END ARCHITECTURE ART3; 3四选一选择器 选择器常用于信号的切换,四选一选择器可以用于四路信号的切换。四选一选择器有四个信号输入端INP(0)INP(3),两个信号选择端A和B和一个信号输出端Y。当A、B输入不同的选择信号时,就可以使INP(0)INP(3)中某个相应的输入信号与输出端Y接通。【例3.9.5】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MUX41 ISPORT (INP: IN STD_LOGIC_VECTOR(3 DOWNTO 0); A,B:IN STD_LOGIC; Y:OUT STD_LOGIC);END ENTITY MUX41;ARCHITECTURE ART OF MUX41 IS SIGNA SE :STD_LOGIC_VECTOR(1 DOWNTO 0);BEGIN SEL=B&A;PROCESS(INP,SEC) ISBEGIN IF(SEL=00)THEN Y=INP(0); ELSIF (SEL=01)THEN Y=INP(1); ELSIF (SEL=11)THEN Y=INP(2);ELSE Y=INP(3);END IF;END PROCESS;END ARCHITECTURE ART;4三态门及总线缓冲器三态门和总线缓冲器是驱动电路经常用到的器件。2) 单向总线驱动器 在微型计算机的总线驱动中经常要用单向总线缓冲器,它通常由多个三态门组成,用来驱动地址总线和控制总线。一个8位的单向总线缓冲器。【例3.9.8】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY TRI_BUF8 IS PORT (DIN:IN STD_LOGIC_VECTOR(7 DOWNTO 0); EN:IN STD_LOGIC;DOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END ENTITY TRI_BUF8;ARCHITECTURE ART OF TRI_BUF8 ISBEGIN PROCESS(EN,DIN) ISBEGINIF(EN=1)THENDOUT=DIN; ELSE DOUT=ZZZZZZZZ; END IF; END PROCESS;END ARCHITECTURE ART;3) 双向总线缓冲器 双向总线缓冲器用于数据总线的驱动和缓冲,典型的双向总线缓冲器。图中的双向总线缓冲器有两个数据输入/输出端A和B,一个方向控制端DIR和一个选通端EN。EN=0时双向缓冲器选通。若DIR=0,则A=B,反之则B=A。【例3.9.9

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论