VHDL 程序设计教程习题参考解答
我的马克思主义观第一章 习题参考答案
1.什么是VHDL?VHDL的实现有哪几种形态?
硬件描述语言(Hardware Description Language,HDL),顾名思义,是电子系统硬件行为描述、结构描述、数据流描述的语言。VHDL语言的英文全名是Very High Speed Integrated Circuit Hardware Description Language,即超高速集成电路硬件描述语言。
2.简述VHDL的发展史。
1981年6月VHDL工作小组成立,提出了一个满足电子设计各种要求的能够作为工业标准的硬件描述语言。
1983年第三季度,由IBM公司、TI公司、Inter metrics公司签约,组成开发小组,工作任务是提出语言版本和开发软件环境.
1986年IEEE标准化组织开始工作,讨论VHDL语言标准,历时一年有余,于1987年12月通过
标准审查,VHDL1。0版本宣布实施,即IEEE STD 1076—1987。
1993年经过重新修订,发布VHDL2.0版本,从而形成新的标准即IEEE STD 1076-1993.
2006年VHDL发布VHDL3。0版本;
2008年8月,VHDL 4.0版本发布,解决了3.0版本中发现的多个问题。
2009年1月,IEEE公布了VHDL 4.0的标准版本,最新VHDL标准IEEE 1076—2008在2009年1月实施。
3. 详述VHDL设计IP模块的流程。
第1种设计形态,VHDL程序以IP模块的形态存在,VHDL-IP设计流程如图1。6所示。IP模块是与集成电路工艺无关的芯片设计方案,可以移植到不同的设计环境.IP产品形态有规范,有IP包装规则和复用规则,是原生态的芯片硬件设计产品。
图1。6 VHDL—IP设计流程
4. 简答VHDL设计用FPGA实现的意义.
可编程器件FPGA具有容量大、密度高等特点,是科学实验、小批量生产、样机研制的载体。这种产品形态可以作为科学实验、小批量产品研发的最佳实现方案。
5。 叙述用VHDL设计ASIC的流程。
VHDL设计的ASIC芯片实现,流程如图1。8所示。工程项目的VHDL功能设计与某一集成电路工艺相结合,形成集成电路版图设计,并在晶圆上实现实现集成电路芯片的制造。
图1。8 VHDL- ASIC 设计流程
工程项目经过集成电路前端设计(VHDL设计、功能时序设计)、后端设计(版图设计),后端仿真、设计规则检查(DRC)、形式验证后的版图,交付集成电路芯片代工厂进行工业化大规模生产。
6. 怎样建立一个基本VHDL设计环境?
把VHDL语言输入界面、编辑界面、编译工具、器件库、函数库的组合称为VHDL设计环境.许多EDA工具均提供了VHDL设计环境,如ALTERA公司的Quartus II。
7. 开展IP 设计需要什么条件?
VHDL程序以IP模块的形态存在。IP模块是与集成电路工艺无关的芯片设计方案,可以移植到不同的设计环境.IP产品形态有规范,有IP包装规则和复用规则,是原生态的芯片硬件设计产品.开展IP设计需要EDA工具提供VHDL语言编译环境。
8. 片上系统设计的知识要求和实验条件有那些?
片上系统设计需要SOC系统知识,嵌入式计算机体系结构知识,IP复用知识,底层驱动软件编写技能.实验条件,需要相对高级、复杂一些的FPGA开发板.
第二章 习题参考答案
1.什么是对象?对象有哪几种类型?
在VHDL语言中,对象(Objects)是具有特定数据类型且可以被赋值的客体。VHDL语言中的对象有4类:常量(Constant)、信号(Signal)、变量(Variable)和文件(Files).
2.变量和信号的区别是什么?
变量(Variable)是一个局部量,主要用于对临时数据进行局部存储。
信号(Signal)可用于电路内部硬件设计实体相互连接的抽象表示。信号是全局量,通常在实体说明、结构体和包中使用。
3.VHDL语言定义的标准数据类型有哪些?
VHDL语言预定义的数据类型包括:
① 整数类型(Integer Type)、
2实数类型或浮点类型(Real Type & Floating Type)、
3位类型(Bit Type)、
4位矢量类型(Bit_Vector Type),
5布尔类型(Boolean Type)、
6字符类型(Character Type),
7时间类型或物理类型(Time Type & Physical Type)、
8错误类型(Note,Warning,Error,Failure Type),
9自然数、整数类型(Natural Type)
10 字符串类型(Tring Type).
用户自定义的数据类型:
①枚举类型(Enumerated Type)、
② 数组类型(Array Type)、
3存取类型(Access Type)、
4文件类型(Files Type)
⑤ 记录类型(Recode Type).
4.哪些数据类型不能被综合?
物理类型是不能被综合的。
5.简述VHDL语言操作符的优先级。
运算符的优先级
中小企业的界定优先级顺序 | 运算操作符类型 | 操 作 符 | 操作符功能 |
高 低 | 逻辑运算符 | NOT | 取非 |
算术运算符 | ABS | 取绝对值 |
** | 指数运算 |
REM | 取余 |
MOD | 求模 |
/ | 除法忆韦素园君 |
如何推广产品* | 乘 |
- | 负 |
+ | 正 |
并置运算符 | & | 并置 |
算术运算符 | — | 减 |
+ | 加 |
关系运算符 | 〉= | 大于等于 |
<= | 小于等于 |
〉 | 大于 |
〈 | 小于 |
/= | 不等于 |
= | 等于 |
逻辑运算符 | XOR | 异或 |
NOR | 或非 |
NAND | 与非 窦娥冤教案 |
OR | 或 |
AND | 与 |
| | | |
6.哪3种方法可用来进行类型转换?
有3种方法:类型标记法、函数转换法和常数转换法。
7. 状态运算符的有哪两个值?
“TRUE”,和“FALSE”。
8. 标示符与保留字有何不同?对VHDL编程有何约束?
标识符用于命名实体、结构体、信号和变量等。
VHDL语言中的保留字不可以用于标识符的命名中,保留字有些用于VHDL程序设计的关键字。
第三章 习题参考答案
1.简述VHDL设计实体的结构。
实体(Entity)提供了被设计系统或器件的公共信息,指明了输入与输出引脚。实体由实体
名、类型说明、端口说明、实体说明部分和实体语句部分组成。实体的一般格式为:
ENTITY 实体名 IS
[GENERIC语句;] ——可选项(参数说明)
PORT语句; -—必需项(端口说明)
[实体说明部分;] ——可选项
[BEGIN
实体语句部分;]
END [ENTITY] [实体名];幼儿园大班工作计划
2.用结构体的3种描述法设计一个4位计数器。
3.什么叫进程?简述进程的工作方式。
进程语句不是一条语句,而是一段程序结构,这段程序描述了一个靠敏感信号触发的硬件模块反复执行的工作过程。进程语句(Process)是并行处理语句,即在结构体中多个进程语句是同时并发运行的。
进程语句的一般书写形式为:
[进程名:]PROCESS[敏感信号表]
变量声明语句
…
BEGIN
…
顺序语句
cad如何画箭头…
END PROCESS [进程名];
进程语句中一般带有一个敏感信号表。这些信号无论哪一个发生变化都将启动进程,进程中的程序将从上到下顺序执行一遍,产生新的结果并输出。当进程执行完毕,就返回进程开始处,等待敏感量的新变化,引发进程的下一次执行.周而复始,循环往复,以至无穷。
4.什么叫模块?区分模块与进程。
模块(Block)语句是结构体中的一系列并行语句的组合,适用于复杂项目的模块化设计。模块调用必须说明属性、配置和连接关系。
模块语句的一般格式如下:
块名:
BLOCK [控制条件的布尔表达式] [IS]
{[GENERIC子句
[GENERIC映射;]]}
{[端口子句
[端口映射;]]
{块说明部分}
BEGIN
{并行语句A ;
并行语句B ;
…}
END BLOCK[块名];
模块是一个独立的子结构,可以包含PORT语句和GENERIC语句,允许设计者通过这两个语句将模块的内部信号变化传递给模块的外部信号.同样,也可以将模块的外部信号变化传递给模块的内部信号。
进程不是独立的硬件结构描述,进程用于含有触发条件的、需要反复运行的程序结构。
5。 简述过程与函数的区别.
过程语句(procedure)结构
过程语句的一般格式如下:
PROCEDURE 过程名|运算符号
[generic西伦敦大学 子句;
[generic映射;] ]
[[parameter](参数列表)] IS
[子程序声明区];
BEGIN
[顺序处理语句];
END [PROCEDURE] 过程名|运算符号;
过程语句中的输入输出参数列在过程名后面的括号里,一般地,IN作为常量,OUT和INOUT作为变量。当过程语句在主程序调用结束后,将变量OUT和INOUT拷贝到调用者的信号和变量中。
函数是具有某一特定功能的程序段,能够被主程序调用。函数被调用时,首先要初始化,执行处理功能后,将处理结果传递给主程序.函数内部的值不能保持,函数返回后,才能被再次调用,再次初始化.
VHDL程序中函数语句的结构与其他语句一样,也有规定的书写格式:
FUNCTION 函数名|运算符号
[generic子句;
[generic映射;]
[[parameter](参数列表)]
RETURN 数据类型名 IS
[子程序声明区];
BEGIN
[顺序处理语句];
RETURN[返回变量名];
END [FUNCTION][函数名|运算符号];
6. 用结构化描述方法设计一个加法器.
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY half_adder IS ——实体名half_adder
PORT(a,b:IN Bit;
S,C:OUT Bit); —-实体端口说明
END ENTITY half_adder;
ARCHITECTURE addr1 OF half_add IS -—结构体1的名字为addr1
BEGIN