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

内容发布更新时间 : 2024/6/16 3:41:16星期一 下面是文章的全部内容请认真阅读。

第一章

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库总是可见的。