没有合适的资源?快使用搜索试试~ 我知道了~
VHDL复习题.doc.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 66 浏览量
2022-06-20
08:30:47
上传
评论
收藏 923KB PDF 举报
温馨提示
试读
25页
VHDL复习题.doc.pdfVHDL复习题.doc.pdfVHDL复习题.doc.pdfVHDL复习题.doc.pdfVHDL复习题.doc.pdfVHDL复习题.doc.pdfVHDL复习题.doc.pdfVHDL复习题.doc.pdfVHDL复习题.doc.pdf
资源推荐
资源详情
资源评论
习 题
3.1 比较常用硬件描述语言 VHDL、Verilog 和 ABEL 语言的优劣。
1. VHDL
:
描述语言层次较高,不易控制底层电路,因而对综合器的性能要求较高。有多种
EDAI 具选择,已成为 IEEE 标准。
应用 VHDL 进行工程设计的优点是多方面的,具体如下:
与其他的硬件描述语言相比,VHDL 具有更强的行为描述能力。
VHDL 具有丰富的仿真语句和库函数,使得在任何大系统的设计早期,就能查验设 计系统的
功能可行性,随时可对系统进行仿真模拟,使设计者对整个工程的结构和功能可行 性做出判
断。
VHDL 语句的行为描述能力和程序结构,决定了它具有支持大规模设计的分解和已 有设计的
再利用功能。
用 VHDL 完成一个确定的设计,可以利用 EDA 工具进行逻辑综合和优化,并自动把 VHDL 描
述设计转变成门级网表(根据不同的实现芯片)。
VHDL 对设计的描述具有相对独立性。
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 信号和变量在描述和使用时有哪些主要区别?
3.19
变量只能在进程或子程序内部定义,用于存储局部/临时数据。信号只能在进程或子程
序的外部定义,表示硬件中的连线,用于各并行语句模块之间的通信。
3.20
信号用 signal 关键字定义,赋值符号为” <=”。变量用 variable 关键字定义,赋值符 号
为”:=”
3.21
信号赋值,可以设定延时量,需要延时一段时间后才执行;变量赋值立即执行。
(21)
VHDL 语言中的标准数据类型有哪几类?用户可以自己定义的数据类型有
哪几类?并简单介绍各数据类型。
标量型:属单元素最基本的数据类型,通常用于描述一个单值数据对象,它包括实数 类
复合类型:可以由细小的数据类型复合而成,如可有标量复合而成。复合类型主要有 数
组型和记录型。
存取类型:为给定的数据类型的数据对象提供存取方式。
文件类型:用于提供多值存取类型。
用户可自定义的数据类型:枚举类型、整数类型、数组类型、记录类型、时间类型、 实数
类型等
型、整数类型、枚举类型和时间类型。
(21)
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 9
3.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 式的
运算符。
(
2)按照操作符的优先级高低进行运算
运算顺序不同。
类型
+
—
&
*
/
MOD
REM
操作符
加
减
并置
乘
除
取模
取余
功能
整数
整数
一维数组
操作数数据类型
整数和实数(包括浮点数)
整数和实数(包括浮点数)
整数
整数
BIT
或布尔型■二维数组
BIT
或布尔型二维数组
BIT
或敬姓瑚数组
BIT
或在尔
H
■二维数组
BIT
或布尔型一维数组
BIT
或布尔.型二维数组
算术操作符
SLL
SRL
SLA
SRA
ROL
ROR
**
逻辑左移
逻辑右移
算术左移
算术右移
逻辑循环左移
逻辑循环右移
乘方
取绝对值
等于
不等于
小于
大于
小于等于
大于等于
整数
整数
任何数据类型
任何数据类型
枚举与整数类型,及对应的一维数组
枚举与整数类型,及对应的一维数组
枚举与整数类型,及对应的一维数组
枚举与整数类型,及对应的一维数组
ABS
=
/=
<
>
<=
关系操作符
>=
类型
OR
续表
操作符
AND
NAND
NOR
XOR
XNOR
NOT
+
功能
与
或
与非
或非
异或
异或韭
非
正
操作数数据类型
BIT, BOOLEAN, STD_LOGIC
BIT, BOOLEAN, STD_LOGIC
BIT, BOOLEAN, STD_LOGIC
BIT, BOOLEAN, STD_LOGIC
BIT, BOOLEAN, STD_LOGIC
BIT, BOOLEAN, STD_LOGIC
BIT, BOOLEAN, STD_LOGIC
逻辑操作符
— 负 整数
VHDL 操作符优先级:(关系操作符的结果只有 TRUE 或 FALSE 两种。)
运算符 优先级
NOT, ABS
(绝对值),**廉方)
*, /, MOD
像模),
REM
(取余)
符号操作符
整数
最高优先级
+ (正号),-(负号)
+, -, &
SLL, SLA, SRL, SRA, ROL, ROR
=, /=, <> <=, > >=
AND, OR, NAND, NOR XOR, XNOR
最低优先级
3.10 简述六种移位操作符 SLL、SRL、SLA、SRA、ROL 和 ROR 的含义及操作规
定?并举例说明。
(1) S」:逻辑左移,bit 或布尔一维数组
SRL:逻辑右移,bit 或布尔一维数组
SLA:算数左移,bit 或布尔一维数组
SRA:算数右移,bit 或布尔一维数组
ROL:逻辑循环左移,bit 或布尔一维数组
ROR:逻辑循环右移,bit 或布尔一维数组
(2) A= " 10010101"
Asli
得"01010100"(逻辑左移,用’0'填补空位)
2
A srl
得"00010010"(逻辑右移,用'0'填补空位)
3
A sla
得"10101111"(算术左移,用最左端位填补空位)
3
A sra
得"11100101"(算术右移,用最右端位填补空位)
2
A rol
得"10101100"(循环左移)
3
A ror
得"10101100"(循环右移)
5
3.11 什么叫重载操作符?使用重载操作符有什么好处?怎样使用重载操作 符?
含有重载操作符的运算怎样确定运算结果?
(
1
)
对已存在的操作符重新定义,使其能进行不同类型操作数之间的运算。
(
2) 方便各种不同数据类型间的运算。
(3) 引用数据包: STD_LOGIC_ARITH、STD_LOGIC_UNSIGNED 和 STD_LOGIC_即可使用重载操
作符。
VHDL 程序设计中的基本语句系列有几种?它们的特点如何?它们各使用
在什么场所?它们各自包括些什么基本语句?
答:
(
1)顺序语句与并行语句。
(2) 顺序语句的执行与它们的书写顺序基本一致(指仿真或逻辑上的顺序执行),但实际 上
硬件电路是并行工作的。顺序语句用在进程和子程序的内部。
并行语句的执行与书写顺序无关,各语句是同时执行的,在执行过程中各并行语句之间可通 过
信号进行通信,同步运行;也可以互为独立、互不相关,异步运行。
(3) 顺序语句:变量/信号赋值语句,流程控制语句
(
if, case, loop, next, exit),等待语 句,子
程序调用语句,返回语句,空操作语句等。
并行语句:进程语句,块语句,信号赋值语句,元件例化语句,生成语句,子程序调 用
等语句。
VHDL 中信号赋值和变量赋值的有什么区别?其赋值符号是否异同?
信号赋值延时更新数据,一般生成时序电路,用的是"<="
变量赋值立即更新数据,一般生成组合电路,用的是
(变量具有局部特征,它的有效性只局限于所定义的一个进程中,或一个子程序中,它是一 个
局部的、暂时性数据对象,对于它的赋值是立即发生的。信号具有全局特征,它不但可以 作为
一个设计实体内部各单元之间数据传送的载体,而且可通过信号与其他的实体进行通 信,信号
的赋值不是立即发生的,它发生在一个进程结束时。)
3.14 段下标元素和集合块元素是怎样赋值的?试举例说明。
段下标元素赋值目标表示形式:标识符(下标 1 TO 或 DOWNTO 下标 2)(其中下 标 1、下标
2 必须用具体数值表示,并且其数值范围必须在所定义的数组下标范围内 ) 例如:VARIABLE
a,b:STD_LOGIC_VECTOR(l TO 4)
b(l TO 4):=
w
1011
w
;
a:=b;
a(l TO 2):=b(3 TO 4);
a(lTO4):=
,,
101V;
集合块元素
-a(l)=
,
l
,
,a(2)=
,
l
,
;
3.15 转向控制语句有几种?它们各用在什么场所?它们使用时特别需要注意 什
么?
IF 语句;CASE 选择语句;LOOP 循环语句;NEXT 语句和 EXIT 语句
if 条件表达式 1 then 顺序语句;
elsif 条件表达式 2 then 顺序语句;
else 条件表达式 n then 顺序语句;
end if;
if 语句可根据一个或多个布尔条件,有选择的执行指定的顺序语句。使用时应注意: 1.关键 字
then 后可包含一个或多个顺序语句。2.elsif 子句可以有多个或没有,每个 elsif 子句执行 时具有
向前与的作用。3.else 子句可以没有。4.关键字 then 后的顺序语句可以是 if 语句,即 if 语句可
以嵌套。
case 选择表达式 is
when 选择值 1 =>顺序语句;
when 选择值 2 =>顺序语句; ...
end case;
case 语句可根据一个表达式的不同取值执行不同的顺序语句。
使用时应注意:1.表达式的值可以是整型或枚举型的,或是这些数据类型构成的数组。 2.选 择
值可以是单个取值,如 4
;
也可以是一个取值范围,如 2to5
;
也可以是多个并列的取值 , 如
2|6
;
还可以是以上三种取值方式的混合。 3.case 语句执行时,根据选择表达式的值来选 择执
行哪个顺序语句,选择的结果和每个选择值的顺序无关,只要求对于选择表达式的每个 可能取
值,有且仅有一个选择值与之匹配即可。4.常用 when others 表示其它未列出的选择 值。5. “=
>”后面的顺序语句可以有多个。
[标号:]for 循环变量 in 范围 loop
顺序语句;
end loop [标号];
环中的循环变量无需事先定义,可自动加/减 lo
next;无条件中止当前循环,返回循环起点,开始下次循环。
exit;无条件退出当前循环。
next loop 标号;无条件中止 LOOP 标号标明的循环,返回 LOOP 标号处,开始下次循环。
exit loop 标号;无条件退出 LOOP 标号标明的循环。
next loop 标号 when 条件;条件为真时中止 LOOP 标号标明的循环,返回 LOOP 标号处,
开始下次循环。
[标号:]while 条件 loop
顺序语句;
end loop [标号];
for 循环用于循环次数已知的情况;while 循环用于循环次数未知的情况。使用时应注意:for 循
剩余24页未读,继续阅读
资源评论
xxpr_ybgg
- 粉丝: 6506
- 资源: 3万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 以简单、易用、高性能为目标、开源的时序数据库,支持Linux及Windows, Time Series Database.zip
- python-leetcode面试题解之第198题打家劫舍-题解.zip
- python-leetcode面试题解之第191题位1的个数-题解.zip
- python-leetcode面试题解之第186题反转字符串中的单词II-题解.zip
- 一个基于python的web后端高性能开发框架,下载可用
- python-leetcode面试题解之第179题最大数-题解.zip
- python-leetcode面试题解之第170题两数之和III数据结构设计-题解.zip
- python-leetcode面试题解之第168题Excel表列名称-题解.zip
- python-leetcode面试题解之第167题两数之和II输入有序数组-题解.zip
- python-leetcode面试题解之第166题分数到小数-题解.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功