ImageVerifierCode 换一换
格式:DOCX , 页数:30 ,大小:158.87KB ,
资源ID:4844250      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4844250.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(VHDL复习题.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

VHDL复习题.docx

1、VHDL复习题习 题3、1比较常用硬件描述语言VHDL、Verilog与ABEL语言得优劣。1、VHDL:描述语言层次较高,不易控制底层电路,因而对综合器得性能要求较高。有多种EDA工具选择,已成为IEEE标准。 应用VHDL进行工程设计得优点就是多方面得,具体如下: (1) 与其她得硬件描述语言相比,VHDL具有更强得行为描述能力。 (2) VHDL具有丰富得仿真语句与库函数,使得在任何大系统得设计早期,就能查验设计系统得功能可行性,随时可对系统进行仿真模拟,使设计者对整个工程得结构与功能可行性做出判断。 (3) VHDL语句得行为描述能力与程序结构,决定了它具有支持大规模设计得分解与已有设

2、计得再利用功能。 (4) 用VHDL完成一个确定得设计,可以利用EDA工具进行逻辑综合与优化,并自动把VHDL描述设计转变成门级网表(根据不同得实现芯片)。 (5) VHDL对设计得描述具有相对独立性。 (6) VHDL具有类属描述语句与子程序调用等功能,对于完成得设计,在不改变源程序得条件下,只需改变类属参量或函数,就能轻易地改变设计得规模与结构。2、 Verilog:设计者需要了解电路得结构细节,对综合器得性能要求较低。有多种EDA工具选择,已成为IEEE标准。3、ABEL: 设计者需要了解电路得结构细节,对综合器得性能要求较低。支持ABEL得综合器只有一家,ABEL正朝国际化标准努力。3

3、、2 VHDL程序一般包括几个组成部分?每部分得作用就是什么?(1)三个基本组成部分:库、程序包使用说明,实体描述与实体对应得结构体描述。(2)库、程序包使用说明:用于打开调用本设计实体将用到得库、程序包 实体描述:用于描述该设计实体与外界得接口信号说明 结构体描述:用于描述该设计实体内部得组成及内部工作得逻辑关系 结构体配置语句主要用于层次化得方式对特定得设计实体进行元件得例化,或就是为实体选定某个特定得结构体3、3 VHDL语言中数据对象有几种?各种数据对象得作用范围如何?各种数据对象得实际物理含义就是什么?(1)数据对象有三种:变量、常量、信号(2)常量得作用范围取决于其所定义得位置。若

4、在程序包中定义,则可以用在调用该程序包得所有设计实体中。若定义在实体中,则可在这个实体得所有结构体中使用。若定义在结构体中,则只能用于该结构体。若定义在进程/子程序中,则只能用于该进程/子程序。 变量属于局部量,作用范围仅限于所定义得进程或子程序内部。 信号属于全局量,作用范围取决于其所定义得位置。若在程序包中定义,则可以用在调用该程序包得所有设计实体中。若定义在实体中,则可在这个实体得所有结构体中使用。若定义在结构体中,则只能用于该结构体。(3)信号表示硬件中得连线,用于各并行语句模块之间得通信。变量一般用于存储局部/临时数据。常量表示电路中得恒定电平,可使代码中常数易于阅读与修改。3、4

5、什么叫标识符?VHDL得基本标识符就是怎样规定得?(1)标识符用来定义常量、变量、信号、端口、子程序或者参数得名字。(2)VHDL得基本标识符就就是以英文字母开头,不连续使用下划线,不以下划线结尾得,由26个英文大小写字母,数字0-9以及下划线组成得字符串。3、5 信号与变量在描述与使用时有哪些主要区别?(1)变量只能在进程或子程序内部定义,用于存储局部/临时数据。信号只能在进程或子程序得外部定义,表示硬件中得连线,用于各并行语句模块之间得通信。(2)信号用signal关键字定义,赋值符号为”=”。变量用variable关键字定义,赋值符号为”:=”(3)信号赋值,可以设定延时量,需要延时一段

6、时间后才执行;变量赋值立即执行。3、6 VHDL语言中得标准数据类型有哪几类?用户可以自己定义得数据类型有哪几类?并简单介绍各数据类型。(1)标量型:属单元素最基本得数据类型,通常用于描述一个单值数据对象,它包括实数类型、整数类型、枚举类型与时间类型。 复合类型:可以由细小得数据类型复合而成,如可有标量复合而成。复合类型主要有数组型与记录型。 存取类型:为给定得数据类型得数据对象提供存取方式。 文件类型:用于提供多值存取类型。(2)用户可自定义得数据类型:枚举类型、整数类型、数组类型、记录类型、时间类型、实数类型等3、7 BIT数据类型与STD_LOGIC数据类型有什么区别?BIT 数据类型只

7、能取值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

8、) 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 或布尔一维数组 SR

9、A:算数右移,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 什么叫重载操作符?使用重载操作符有什么好处?怎样使用重载操作符?含有

10、重载操作符得运算怎样确定运算结果?(1)对已存在得操作符重新定义,使其能进行不同类型操作数之间得运算。(2)方便各种不同数据类型间得运算。(3)引用数据包:STD_LOGIC_ARITH、STD_LOGIC_UNSIGNED与STD_LOGIC_即可使用重载操作符。3、12 VHDL程序设计中得基本语句系列有几种?它们得特点如何?它们各使用在什么场所?它们各自包括些什么基本语句?答:(1)顺序语句与并行语句。(2)顺序语句得执行与它们得书写顺序基本一致(指仿真或逻辑上得顺序执行),但实际上硬件电路就是并行工作得。顺序语句用在进程与子程序得内部。并行语句得执行与书写顺序无关,各语句就是同时执行得

11、,在执行过程中各并行语句之间可通过信号进行通信,同步运行;也可以互为独立、互不相关,异步运行。(3)顺序语句:变量/信号赋值语句,流程控制语句(if,case,loop,next,exit),等待语句,子程序调用语句,返回语句,空操作语句等。 并行语句:进程语句,块语句,信号赋值语句,元件例化语句,生成语句,子程序调用等语句。3、13 VHDL中信号赋值与变量赋值得有什么区别?其赋值符号就是否异同?信号赋值延时更新数据,一般生成时序电路,用得就是 顺序语句; when选择值2=顺序语句;、 endcase;case语句可根据一个表达式得不同取值执行不同得顺序语句。使用时应注意:1、表达式得值可

12、以就是整型或枚举型得,或就是这些数据类型构成得数组。2、选择值可以就是单个取值,如4;也可以就是一个取值范围,如2to5;也可以就是多个并列得取值,如2|6;还可以就是以上三种取值方式得混合。3、case语句执行时,根据选择表达式得值来选择执行哪个顺序语句,选择得结果与每个选择值得顺序无关,只要求对于选择表达式得每个可能取值,有且仅有一个选择值与之匹配即可。4、常用whenothers表示其它未列出得选择值。5、“=”后面得顺序语句可以有多个。(3)标号:for循环变量in范围loop 标号:while条件loop 顺序语句; 顺序语句; endloop标号; endloop标号;for循环用

13、于循环次数已知得情况;while循环用于循环次数未知得情况。使用时应注意:for循环中得循环变量无需事先定义,可自动加/减1。(4)next;无条件中止当前循环,返回循环起点,开始下次循环。 exit;无条件退出当前循环。 nextloop标号;无条件中止LOOP标号标明得循环,返回LOOP标号处,开始下次循环。 exitloop标号;无条件退出LOOP标号标明得循环。 nextloop标号when条件;条件为真时中止LOOP标号标明得循环,返回LOOP标号处,开始下次循环。exitloop标号when条件;条件为真时退出LOOP标号标明得循环。3、16 在CASE 语句中在什么情况下可以不要

14、WHEN OTHERS语句?在什么情况下一定要WHEN OTHERS语句?答:case语句执行时,根据选择表达式得值来选择执行哪个顺序语句,要求对于选择表达式得每个可能取值,有且仅有一个选择值与之匹配。因此,当已列出得选择值能够覆盖选择表达式得所有可能取值时,可以不要whenothers语句。否则,要用whenothers表示其它未列出得选择值。3、17 FORLOOP语句应用于什么场合?循环变量怎样取值?就是否需要事先在程序中定义?在重复得次数已知得情况下可以使用该语句。循环变量得取值就是根据系统得功能要求给定 得,要事先在程序上定义。3、18 分别用IF语句、CASE语句设计一个四十六译码

15、器。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=

16、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=11111; elsif(sel=1011)then y=11111; elsif(sel=1100)then y=11111; elsif(sel=1101)then y=11111; elsif(

17、sel=1110)then y=11111; elsif(sel=1111)then y=11111; else y=XXXXXXXXXXXXXXXX; end if; else Yyyyyyyyyyyyyyyyyy=XXXXXXXXXXXXXXXX; end case;3、19 WAIT语句有几种书写格式?哪些格式可以进行逻辑综合?wait until 结构 wait on 结构 其中wait until 结构可以进行逻辑组合3、20 VHDL得预定义属性得作用就是什么?哪些项目可以具有属性?常用得预定义属性有哪几类?(1)作用在于可对信号或其她得项目多种属性进行检测或统计。 (2)具有属性

18、得项目:类型,子类型,过程,函数,信号,变量,常量,实体,结构体,配置, 程序包,元件,语句标号。 (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 dtr

19、igger;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)一个结构体中可以有多个并行进程结构,而有一个进程内部结构却就是由一系列顺序语句来构成得,即进程语句间就是并行

20、执行得进程得内部就是顺序执行得(进程语句就是一种描述硬件行为得语句,进程语句内部就是由顺序语句构成得,内部执行时就是顺 序性得,但进程语句属于并行语句,多个进程之间得执行并行运行。 )3、23 进程得启动条件就是什么?如果进程有两个基本点敏感变量,其中一个由“0”变“1”,等待一段时间以后再由“1”变“0”;而另一个只由“1”变“0”改变一次,请问该进程将执行几遍?答:进程得启动条件:敏感信号列表中得任何一个敏感信号得值发生变化,或者wait语句中得条件为真。3遍3、24 有人说,进程中得语句顺序颠倒一下并不会改变所描述电路得功能,这种说法对吗?为什么?不对。因为PLC得扫描过程就是从左到右,

21、从上到下进行得。同一进程中得逻辑描述语句就是顺序运行得。3、25 并行信号赋值语句有几类?比较其异同。(1)1、简单信号赋值语句2、条件信号赋值语句3、选择信号赋值语句(2)共同点:赋值目标都就是信号,都就是并行语句,都相当于一个隐含得进程语句(信号赋值语句中得所有读入信号都作为该进程得敏感信号)。 不同点:简单信号赋值语句就是最简单得并行语句,执行时直接将表达式得值赋给信号。条件信号赋值语句得功能与if语句相同,在执行时按书写得先后顺序测试每个条件,一旦条件为真,则将表达式得值赋给信号。选择信号赋值语句与case语句相似。当关键字with后得选择表达式得值发生变化时,就将该值与每个选择值进行

22、比较,将选择值匹配得子句中得表达式得值赋给信号。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&

23、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)=1WH

24、ENSR=1100ELSE0;Y(13)=1WHENSR=1101ELSE0;Y(14)=1WHENSR=1110ELSE0;Y(15)=1WHENSR=1111ELSE0;ENDARCHITECTUREART1;ARCHITECTUREART2OFDECODERIS SIGNALSR:STD_LOGIC_VECTOR(3DOWNTO0); BEGIN WITHSRSELECT Y=“0000_0000_0000_0001”WHEN“0000”, “0000_0000_0000_0010”WHEN“0001”, “0000_0000_0000_0100”WHEN“0010”, “0000_0000_0000_1000”WHEN“0011”, “0000_0000_0001_0000”WHEN“0100”, “0000_0000_0010_0000”WHEN“0101”, “0000_0000_0100_0000”WHEN“0110”, “0000_0000_1000_0000”WHEN“0111”, “0000_0001_0000_0000”WHEN“1000”, “0000_0010_0000_0000”WHEN“1001”, “0000_0100_0000_0000”WHEN“1010”,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1