EDA 刘艳萍 第2章课后习题答案 下载本文

内容发布更新时间 : 2024/5/4 21:04:07星期一 下面是文章的全部内容请认真阅读。

第一章

1.4 简述在基于FPGA/CPLD的EDA设计流程中所涉及的EDA工具及其在整个流程中的作

用。

(1) 设计输入编辑器:

功能是在“设计输入”模块中接受图形(包括原理图,状态图,波形图)的输入和硬件描述语言的文本输入。

(2) HDL综合器:

功能是在“综合过程”模块中将设计者在EDA平台上编辑输入的HDL文本,原理图或状态图形描述,依据给定的硬件结构组件和约束控制条件进行编译,优化,转换和综合,最终获得门级电路甚至更底层电路描述网表文件。

(3) 适配器:

功能是在“适配”模块中将由综合器产生的网表文件配置于指定的目标器件中,使之产生最终的下载文件。

(4) 仿真器:

功能是实现时序仿真和功能仿真,即在不同的级别上对适配生成的结果警醒模拟测试。

(5) 下载器:

功能是在“编程下载”模块将配置最后生成的下载文件或配置文件向FPGA或CPLD进行下载。

1.5 什么是综合?有哪些类型?综合再EDA中的地位如何?

在电子设计领域,综合是将用行为和功能层次表达的电子系统转换为低层次的,便于具体实现的模块组合的过程。

综合的类型:(1)自然语言综合

(2)行为综合 (3)逻辑综合

(4)版图综合或者结构综合

利用HDL综合器对设计进行综合是EDA设计流程中十分重要的一步,因为综合过程将把软件设计的HDL描述与硬件结构挂钩,是将软件转化为硬件电路的关键步骤,是文字描述与硬件实现的一座桥梁。

1.7 什么是硬件描述语言?他与一般的高级语言有什么不同点和相同点?

所谓硬件描述语言,就是利用高级语言来描述硬件电路的功能,信号连接关系以及各器件的时序关系。VHDL语言具有计算机编程语言的一般特性,有自己的语言要素,文字规则等,同时也具有下列区别于其他高级语言的特点:

(1) VHDL是工业标准的文本语言 (2) VHDL能同时支持仿真和综合 (3) VHDL是一种并发执行的语言

(4) VHDL支持结构化的语言及自顶向下的设计方法 (5) VHDL的描述与工艺无关 (6) VHDL支持多风格的描述方法 1.9 用VHDL设计数字系统有什么优点?

EDA设计开发流程中的“设计输入”模块有图形输入和HDL文本输入两种类型。图形输入显现出一些缺点,如:图形设计方式未标准化导致的图形文件兼容性差,难以实现交换,管理;电路设计规模扩大化导致电路功能原理易读性下降,错误排查困难,整体调整和结构升级困难;图形文件不兼容导致性能优秀的电路模块意志和再利用十分困难;难以实现用户

所实现的面积,速度,以及不同风格的综合优化;无法实现实际意义上的自顶向下设计方案。而应用HDL文本输入的方式则克服了上述弊端,为EDA技术的应用发展打开了一个广阔的天地。其优势的体现正是基于VHDL能同时支持仿真和综合,实现语言的并发执行,支持结构化设计和自顶向下的设计方法,描述与工艺无关及支持多风格的描述方法的优点。

第二章

2-1 判断下列标示符是否合法,如果有误指出原因

ENTITY 关键字,1apple 不能应用数字开头,TO-VECTOR –非法字符,DEEF_ _4下划线不能连用,\\74HC574\\作为扩展标志合法,CLR/RESET含/ 字符和不能以关键字为标志符,\\IN,4/sclk\\作为扩展标志合法,D100% 含非法字符%。 2-2 VHDL中有哪三种数据对象(客体)?详细说明他们的供功能特点以及使用方法。

主要包括三种数据对象:信号,变量,常数。

其中常数是一个固定的值,常数说明就是对某一常数名赋予一个固定的值,一旦赋值不能改变;常熟赋值一般在程序的开始;其格式为:CONSTANT常数名:数据类型:=表达式;

变量只能在进程语句,块语句,函数语句和过程语句结构中使用,是局部量,其赋值立即生效且赋值时不能产生附加延时。其格式为:VARIABLE 变量名:数据类型 约束条件 :=表达式;

信号是电子电路内部硬件连接的抽象可以产生附加延时,数据对象是可以被赋值的对象。信号定义在实体、构造体、包集合中;其格式为:SIGNAL 信号名:数据类型 约束条件:=表达式。 2-3 信号和变量在描述和使用时有哪些主要区别?

信号赋值采用“<=”而变量赋值采用“:=”变量赋值立即生效而信号赋值语句和实际赋值过程是分开的,变量赋值不可产生附加延时而信号可以。

2-4 在STRING,TIME,REAL,BIT,STD_LOGIC数据类型中,VHDL综合器支持哪些类型?

VHDL综合器支持BIT,STD_LOGIC类型,其他的数据类型不能综合。

2-5 表达式C=A+B中A,B和C都是STD_LOGIC-VECTOR,是否能直接进行加法运算?

若位长不同则不能直接进行加法运算,若位长相同也要加入ieee库和std_logic_unsigned包集合的使用说明。

2-6 能把任意一种进制的值向一整数类型的数据对象赋值吗?如果能,怎样做?

不能直接赋值,必须转换类型,把非十进制转换为十进制后再进行赋值。

2-7 数据类型BIT,INTEGER和BOOLEAN分别定义在那个库中?哪些库和程序包总是可见的?

BIT、INTEGER和BOOLEAN定义在STD库中,STD库中的STANDARD包集合和WORK库总是可见的。

2-8 BIT类型数据和STD_LOGIC类型数据有什么区别?

BIT类型只有0或者1状态,而STD_LOGIC取9种不同值U,X,0,1,Z,W,L,H.—.BIT 为标准数据类型而STD_LOGIC为IEEE库中STD-LOGIC-1164包集合中定义的数据类型。 2-9 回答有关BIT和BOOLEAN数据类型的问题: (1) 解释BIT和BOOLEAN的区别。 (2) 对于逻辑操作应使用哪种类型? (3) 关系操作的结果为哪种类型?

(1)BIT类型表示方法用字符0或1为一个位的两种取值,可用来描述系统中总线的值,而BOOLEAN类型具有两种状态“真”或“假”,没有数值意义,也不能进行算术运算,但能进行关系运算。他常用来表示信号量的状态或者总线情况,一般这类出具的初始值为FALSE(2)逻辑操作数应用BIT类型(3)关系操作的结果为BOOLEAN类型。

2-10 下面的数据类型定义和操作是否正确?

Signal atmp: Std_logic_Vector(7 downto 0); Signal btmp: Std_logic_Vector(0 to 7); Signal cint:integer;

Signal dtmp: Std_logic_Vector(15 downto 0);

atmp<=cint操作错误,类型不同,INTEGER不能赋予STD_LOGIC_VECTER。btmp<=dtmp操作错误,类型相同但是长度不同不能赋值,其他正确。 2-11 VHDL有哪几类主要运算,在一个表达式中有多种运算符时应按怎样的标准进行运算?

VHDL主要有四类运算:逻辑运算,关系运算。算数运算,并置运算。表达式中有多种运算符时,应由优先级高的操作符向优先级低的操作符进行运算。当一个语句中存在两个以上同优先级逻辑运算时,由括号决定顺序。

2-12 如下三个表达式是否等效?

a<=NOT b AND c OR a a<=(NOT b AND c) OR a a<=NOT b AND(c OR a)

a<=NOT b AND c OR a有语法错误。a<=(NOT b AND c) OR a与a<=NOT b AND(c OR a)是正确的,三者不等效。 2-13 并置运算应用于哪种场合?下面的运算是否正确? Signal a: Std_logic; Signal eb: Std_logic;

Signal b: Std_logic_Vector(3 downto 0); Signal d: Std_logic_Vector(7 downto 0); b<=a & a & eb & eb

d<=(b , eb ,eb, eb,eb)错误,集合体的表示方式中并置对象不能有矢量。

2-14 完整的VHDL程序包括哪几部分?

一个完整的VHDL程序包括:实体,构造体, 配置, 包集合 和库五部分

2-15 VHDL设计的基本设计单元是什么?有哪几部分构成?各部分结构是怎样描述的?

所谓VHDL设计的基本设计单元就是VHDL的一个基本设计实体由实体说明和构造体两部分构成。任何一个基本设计单元的实体说明都有如下结构:

ENTITY 实体名 IS

[类属参数说明]; [端口说明]; END 实体名;

一个构造体的具体结构描述如下:

ARCHTECTURE 构造体OF 实体名IS

[定义语句];包括内部信号,常数,数据类型, 子程序等

定义

BEGIN

[并行处理语句]; END 构造体名;