当前位置:文档之家› eda技术与vhdl第四版课后答案

eda技术与vhdl第四版课后答案

eda技术与vhdl第四版课后答案

【篇一:《eda技术实用教程(第五版)》习题答案(第

1~10章)--潘】

ss=txt>1 习题

1-1 eda技术与asic设计和fpga开发有什么关系?fpga在asic

设计中有什么用途?p3~4

eda技术与asic设计和fpga开发有什么关系?答:利用eda技术

进行电子系统设计的最后目标是完成专用集成电路asic的设计和实现;fpga和cpld是实现这一途径的主流器件。fpga和cpld的应用

是eda技术有机融合软硬件电子设计技术、soc(片上系统)和

asic设计,以及对自动设计与自动实现最典型的诠释。

fpga在asic设计中有什么用途?答:fpga和cpld通常也被称为可编程专用ic,或可编程asic。fpga实现asic设计的现场可编程器件。

1-2 与软件描述语言相比,vhdl有什么特点? p4~6

答:编译器将软件程序翻译成基于某种特定cpu的机器代码,这种

代码仅限于这种cpu而不能移植,并且机器代码不代表硬件结构,

更不能改变cpu的硬件结构,只能被动地为其特定的硬件电路结构

所利用。

综合器将vhdl程序转化的目标是底层的电路结构网表文件,这种满

足vhdl设计程序功能描述的电路结构,不依赖于任何特定硬件环境;具有相对独立性。综合器在将vhdl(硬件描述语言)表达的电路功能转化成具体的电路结构网表过程中,具有明显的能动性和创造性,它

不是机械的一一对应式的“翻译”,而是根据设计库、工艺库以及预

先设置的各类约束条件,选择最优的方式完成电路结构的设计。

l-3 什么是综合?有哪些类型?综合在电子设计自动化中的地位是什么? p6

什么是综合? 答:在电子设计领域中综合的概念可以表示为:将用

行为和功能层次表达的电子系统转换为低层次的便于具体实现的模

块组合装配的过程。

有哪些类型? 答:(1)从自然语言转换到vhdl语言算法表示,即自然语言综合。(2)从算法表示转换到寄存器传输级(registertransport level,rtl),即从行为域到结构域的综合,即行为综合。(3)从rtl级

表示转换到逻辑门(包括触发器)的表示,即逻辑综合。(4)从逻辑门表

示转换到版图表示(asic设计),或转换到fpga的配置网表文件,可

称为版图综合或结构综合。

综合在电子设计自动化中的地位是什么? 答:是核心地位(见图1-3)。综合器具有更复杂的工作环境,综合器在接受vhdl程序并准

备对其综合前,必须获得与最终实现设计电路硬件特征相关的工艺

库信息,以及获得优化综合的诸多约束条件信息;根据工艺库和约

束条件信息,将vhdl程序转化成电路实现的相关信息。

1-4 在eda技术中,自顶向下的设计方法的重要意义是什么?

p8~10

答:在eda技术应用中,自顶向下的设计方法,就是在整个设计流

程中各设计环节逐步求精的过程。

1-5 ip在eda技术的应用和发展中的意义是什么? p23~25

答:ip核具有规范的接口协议,良好的可移植与可测试性,为系统

开发提供了可靠的保证。

1-6 叙述eda的fpga/cpld设计流程,以及涉及的eda工具及其在

整个流程中的作用。 (p12~14)

答:1.设计输入(原理图/hdl文本编辑)(eda设计输入器将电路系统

以一定的表达方式输入计算机);2.综合(eda综合器就是将电路的高

级语言(如行为描述)转换成低级的,可与fpga/cpld的基本结构相

映射的网表文件或程序。);3.适配(eda适配器的功能是将

由综合器产生的网表文件配置于指定的目标器件中,使之产生最终

的下载文件,如jedec、jam格式的文件。);4.时序仿真(eda时序

仿真器就是接近真实器件运行特性的仿真,仿真文件中已包含了器

件硬件特性参数,因而,仿真精度高。)与功能仿真(eda功能仿真器

直接对vhdl、原理图描述或其他描述形式的逻辑功能进行测试模拟,以了解其实现的功能是否满足原设计的要求,仿真过程不涉及任何

具体器件的硬件特性。);5.编程下载(eda编程下载把适配后生成的

下载或配置文件,通过编程器或编程电缆向fpga或cpld下载,以

便进行硬件调试和验证(hardware debugging)。);6.硬件测试(最后是将含有载入了设计的fpga或cpld的硬件系统进行统一测试,以

便最终验证设计项目在目标系统上的实际工作情况,以排除错误,

改进设计。其中eda的嵌入式逻辑分析仪是将含有载入了设计的

fpga的硬件系统进行统一测试,并将测试波形在pc机上显示、观

察和分析。)。

2 习题

2-1 olmc(输出逻辑宏单元)有何功能?说明gal是怎样实现可编程组合电路与时序电路的。 p34~36

olmc有何功能? 答:olmc单元设有多种组态,可配置成专用组合输出、专用输入、组合输出双向口、寄存器输出、寄存器输出双向口等。

说明gal是怎样实现可编程组合电路与时序电路的? 答:gal(通用阵列逻辑器件)是通过对其中的olmc(逻辑宏单元)的编程和三种模式配置(寄存器模式、复合模式、简单模式),实现组合电路与时序电路设计的。

2-2 什么是基于乘积项的可编程逻辑结构? p33~34,40 什么是基于查找表的可编程逻辑结构? p40~42

什么是基于乘积项的可编程逻辑结构?答:gal、cpld之类都是基于乘积项的可编程结构;即包含有可编程与阵列和固定的或阵列的pal (可编程阵列逻辑)器件构成。

什么是基于查找表的可编程逻辑结构?答:fpga(现场可编程门阵列)是基于查找表的可编程逻辑结构。

2-3 fpga系列器件中的lab有何作用? p42~44

答:fpga(cyclone/cyclone ii)系列器件主要由逻辑阵列块lab、嵌入式存储器块(eab)、i/o单元、嵌入式硬件乘法器和pll等模块构成;其中lab(逻辑阵列块)由一系列相邻的le(逻辑单元)构成的;fpga可编程资源主要来自逻辑阵列块lab。2-4 与传统的测试技术相比,边界扫描技术有何优点? p47~50

答:使用bst(边界扫描测试)规范测试,不必使用物理探针,可在器件正常工作时在系统捕获测量的功能数据。克服传统的外探针测试法和“针床”夹具测试法来无法对ic内部节点无法测试的难题。 2-5 解释编程与配置这两个概念。 p51~56

答:编程:基于电可擦除存储单元的eeprom或flash技术。cpld 一股使用此技术进行编程。cpld被编程后改变了电可擦除存储单元中的信息,掉电后可保存。电可擦除编程工艺的优点是编程后信息不会因掉电而丢失,但编程次数有限,编程的速度不快。

配置:基于sram查找表的编程单元。编程信息是保存在sram中的,sram在掉电后编程信息立即丢失,在下次上电后,还需要重新载入编程信息。大部分fpga采用该种编程工艺。该类器件的编程一般称为配置。对于sram型fpga来说,配置次数无限,且速度快;

在加电时可随时更改逻辑;下载信息的保密性也不如电可擦除的编程。

2-6 请参阅相关资料,并回答问题:按本章给出的归类方式,将基于乘积项的可编程逻辑结构的pld器件归类为cpld;将基于查找表的可编程逻辑结构的pld器什归类为fpga,那么,apex系列属于什么类型pld器件? max ii系列又属于什么类型的pld器

件?为什么? p47~51

答:apex(advanced logic element matrix)系列属于fpga类型pld器件;编程信息存于sram中。max ii系列属于cpld类型的pld 器件;编程信息存于eeprom中。

3 习题

3-1 说明端口模式inout和buffer有何异同点。p60

inout : 具有三态控制的双向传送端口

buffer: 具有输出反馈的单向东湖出口。

3-2 画出与以下实体描述对应的原理图符号元件:

entity buf3s is --实体1:三态缓冲器

port(input:in std_logic; --输入端

enable:in std_logic; --使能端

output:out std_logic); --输出端

end buf3s ;

entity mux21 is --实体2: 2选1多路选择器

port(in0, in1,sel: in std_logic;

output:out std_logic);

3-3 试分别用if_then语句和case语句的表达方式写出此电路的vhdl程序,选择控制信号s1和s0的数据类型为std_logic_vector;当s1=?0?,s0=?0?;s1=?0?,s0=?1?;s1=?1?,s0=?0?和

s1=?1?,s0=?1?时,分别执行y=a、y=b、y=c、y=d。

--解1:用if_then语句实现4选1多路选择器

library ieee;

use ieee.std_logic_1164.all;

entity mux41 is

port (a,b,c,d: in std_logic;

s0:in std_logic;

s1:in std_logic;

y: out std_logic);

end entity mux41;

architecture if_mux41 of mux41 is

signal s0s1 : std_logic_vector(1 downto 0);--定义标准逻辑位矢量数据 begin

s0s1=s1s0; --s1相并s0,即s1与s0并置操作

process(s0s1,a,b,c,d)

begin

if s0s1 = 00 then y = a;

elsif s0s1 = 01 then y = b;

elsif s0s1 = 10 then y = c;

else y = d;

end if;

end process;

end architecture if_mux41;

--解2:用case语句实现4选1多路选择器

library ieee;

use ieee.std_logic_1164.all;

entity mux41 is

port (a,b,c,d: in std_logic;

s0:in std_logic;

s1:in std_logic;

y:out std_logic);

end entity mux41;

architecture case_mux41 of mux41 is

signal s0s1 : std_logic_vector(1 downto 0);--定义标准逻辑位矢量数据类型 begin

s0s1=s1s0;--s1相并s0,即s1与s0并置操作

process(s0s1,a,b,c,d)

begin

case s0s1 is --类似于真值表的case语句

when 00 = y = a;

when 01 = y = b;

when 10 = y = c;

when 11 = y = d;

when others =null ;

end case;

end process;

end architecture case_mux41;

3-4 给出1位全减器的vhdl描述;最终实现8位全减器。要求: 1)首先设计1位半减器,然后用例化语句将它们连接起来,图4-20中h_suber是半减器,diff是

输出差(diff=x-y),s_out是借位输出(s_out=1,xy),sub_in是借位输入。

xin

yin a c

b diff_out

图3-18 全减器结构图

--解(1.1):实现1位半减器h_suber(diff=x-y;s_out=1,xy)

library ieee;--半减器描述(1):布尔方程描述方法

use ieee.std_logic_1164.all;

entity h_suber is

port( x,y: in std_logic;

diff,s_out: out std_logic);

end entity h_suber;

architecture hs1 of h_suber is

begin

diff = x xor (not y);

s_out = (not x) and y;

end architecture hs1;

--解(1.2):采用例化实现图4-20的1位全减器

library ieee; --1位二进制全减器顺层设计描述

use ieee.std_logic_1164.all;

entity f_suber is

port(xin,yin,sub_in: in std_logic;

sub_out,diff_out: out std_logic);

end entity f_suber;

architecture fs1 of f_suber is

component h_suber --调用半减器声明语句

port(x, y: in std_logic;

diff,s_out: out std_logic);

end component;

signal a,b,c: std_logic; --定义1个信号作为内部的连接线。

begin

u1: h_suber port map(x=xin,y=yin,diff=a, s_out=b);

u2: h_suber port map(x=a, y=sub_in, diff=diff_out,s_out=c); sub_out = c or b;

end architecture fs1;

(2)以1位全减器为基本硬件,构成串行借位的8位减法器,要求用例化语句来完成此项设计(减法运算是x-y-sun_in=difft)。

【篇二:eda技术使用教程vhdl(第四版)课后答案—潘

松版】

a技术与asic设计和fpga开发有什么关系?p3~4

答:利用eda技术进行电子系统设计的最后目标是完成专用集成电

路asic的设计和实现;fpga和cpld是实现这一途径的主流器件。fpga和cpld通常也被称为可编程专用ic,或可编程asic。fpga和cpld的应用是eda技术有机融合软硬件电子设计技术、soc(片上

系统)和asic设计,以及对自动设计与自动实现最典型的诠释。1-2

与软件描述语言相比,vhdl有什么特点? p6

答:编译器将软件程序翻译成基于某种特定cpu的机器代码,这种

代码仅限于这种cpu而不能移植,并且机器代码不代表硬件结构,

更不能改变cpu的硬件结构,只能被动地为其特定的硬件电路结构

所利用。综合器将vhdl程序转化的目标是底层的电路结构网表文件,这种满足vhdl设计程序功能描述的电路结构,不依赖于任何特定硬

件环境;具有相对独立性。综合器在将vhdl(硬件描述语言)表达的电

路功能转化成具体的电路结构网表过程中,具有明显的能动性和创

造性,它不是机械的一一对应式的“翻译”,而是根据设计库、工艺

库以及预先设置的各类约束条件,选择最优的方式完成电路结构的

设计。

l-3什么是综合?有哪些类型?综合在电子设计自动化中的地位是什么? p5

什么是综合? 答:在电子设计领域中综合的概念可以表示为:将用

行为和功能层次表达的电子系统转换为低层次的便于具体实现的模

块组合装配的过程。

有哪些类型? 答:(1)从自然语言转换到vhdl语言算法表示,即自然

语言综合。(2)从算法表示转换到寄存器传输级(registertransport level,rtl),即从行为域到结构域的综合,即行为综合。(3)从rtl级

表示转换到逻辑门(包括触发器)的表示,即逻辑综合。(4)从逻辑门表

示转换到版图表示(asic设计),或转换到fpga的配置网表文件,可

称为版图综合或结构综合。

综合在电子设计自动化中的地位是什么? 答:是核心地位(见图1-3)。综合器具有更复杂的工作环境,综合器在接受vhdl程序并准

备对其综合前,必须获得与最终实现设计电路硬件特征相关的工艺

库信息,以及获得优化综合的诸多约束条件信息;根据工艺库和约

束条件信息,将vhdl程序转化成电路实现的相关信息。

1-4在eda技术中,自顶向下的设计方法的重要意义是什么?

p7~10

答:在eda技术应用中,自顶向下的设计方法,就是在整个设计流

程中各设计环节逐步求精的过程。

1-5 ip在eda技术的应用和发展中的意义是什么? p11~12

答:ip核具有规范的接口协议,良好的可移植与可测试性,为系统

开发提供了可靠的保证。

第二章

2-1 叙述 p13~16

答:1.设计输入(原理图/hdl文本编辑);2.综合;3.适配;4.时序仿

真与功能仿真;5.编程下载;6.硬件测试。

2-2 ip是什么?ip与eda技术的关系是什么? p24~26

ip是什么? 答:或fpga/cpld中的预先设计好的电路功能模块。

ip与eda技术的关系是什么? 答:ip在eda技术开发中具有十分重

要的地位;与eda技术的关系分有软ip、固ip、硬ip:软ip是用vhdl等硬件描述语言描述的功能块,并不涉及用什么具体电路元件

实现这些功能;软ip通常是以硬件描述语言hdl源文件的形式出现。固ip是完成了综合的功能块,具有较大的设计深度,以网表文件的

形式提交客户使用。硬ip提供设计的最终阶段产品:掩模。

2-3 叙述asic的设计方法。 p18~19

答:asic设计方法,按版图结构及制造方法分有半定制(semi-custom)和全定制(full-custom)两种实现方法。全定制方法是一种

基于晶体管级的,手工设计版图的制造方法。半定制法是一种约束

性设计方式,约束的目的是简化设计,缩短设计周期,降低设计成本,提高设计正确率。半定制法按逻辑实现的方式不同,可再分为

门阵列法、标准单元法和可编程逻辑器件法。

2-4 fpga/cpld在asic设计中有什么用途? p16,18

答:fpga/cpld在asic设计中,属于可编程asic的逻辑器件;使设

计效率大为提高,上市的时间大为缩短。

2-5 简述在基于fpga/cpld的eda设计流程中所涉及的eda工具,

及其在整个流程中的作用。 p19~23

答:基于fpga/cpld的eda设计流程中所涉及的eda工具有:设计

输入编辑器(作用:接受不同的设计输入表达方式,如原

理图输入方式、状态图输入方式、波形输入方式以及hdl的文本输

入方式。);hdl综合器(作用:hdl综合器根据工艺库和约束条件

信息,将设计输入编辑器提供的信息转化为目标器件硬件结构细节

的信息,并在数字电路设计技术、化简优化算法以及计算机软件等

复杂结体进行优化处理);仿真器(作用:行为模型的表达、电子

系统的建模、逻辑电路的验证及门级系统的测试);适配器(作用:完成目标系统在器件上的布局和布线);下载器(作用:把设计结

果信息下载到对应的实际器件,实现硬件设计)。

第三章

有何功能?说明gal是怎样实现可编程组合电路与时序电路的。

p34~36

olmc有何功能? 组合输出、专用输入、组合输出双向口、寄存器输出、寄存器输出双向口等。

说明gal是怎样实现可编程组合电路与时序电路的? (通用阵列逻

辑器件)是通过对其中的olmc(输出逻辑宏单元)的编程和三种模

式配置(寄存器模式、复合模式、简单模式),实现组合电路与时

序电路设计的。

3-2 什么是基于乘积项的可编程逻辑结构? p33~34,40

答:gal、cpld之类都是基于乘积项的可编程结构;即包含有可编

程与阵列和固定的或阵列的pal(可编程阵列逻辑)器件构成。3-3

什么是基于查找表的可编程逻辑结构? p40~41

答:fpga(现场可编程门阵列)是基于查找表的可编程逻辑结

构。

3-4 fpga系列器件中的lab有何作用? p43~45

答:fpga(cyclone/cyclone ii)系列器件主要由逻辑阵列块lab、

嵌入式存储器块(eab)、i/o单元、嵌入式硬件乘法器和pll等模块

构成;其中lab(逻辑阵列块)由一系列相邻的le(逻辑单元)构成的;fpga可编程资源主要来自逻辑阵列块lab。

3-5 与传统的测试技术相比,边界扫描技术有何优点? p47~50

答:使用bst(边界扫描测试)规范测试,不必使用物理探针,可

在器件正常工作时在系统捕获测量的功能数据。克服传统的外探针

测试法和“针床”夹具测试法来无法对ic内部节点无法测试的难题。

3-6 解释编程与配置这两个概念。 p58

答:编程:基于电可擦除存储单元的eeprom或flash技术。cpld

一股使用此技术进行编程。cpld被编程后改变了电可擦除存储单元

中的信息,掉电后可保存。电可擦除编程工艺的优点是编程后信息不会因掉电而丢失,但编程次数有限,编程的速度不快。

配置:基于sram查找表的编程单元。编程信息是保存在sram中的,sram在掉电后编程信息立即丢失,在下次上电后,还需要重新载入编程信息。大部分fpga采用该种编程工艺。该类器件的编程一般称为配置。对于sram型fpga来说,配置次数无限,且速度快;在加电时可随时更改逻辑;下载信息的保密性也不如电可擦除的编程。

3-7 请参阅相关资料,并回答问题:按本章给出的归类方式,将基于乘积项的可编程逻辑结构的pld器件归类为cpld;将基于查

【篇三:eda技术课后答案】

.1 eda的英文全称是什么?eda的中文含义是什么?

答:eda即electronic design automation的缩写,直译为:电子设计自动化。

1.2 什么叫eda技术?

答:eda技术有狭义和广义之分,狭义eda技术就是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术,或称为ies/asic自动设计技术。

1.3 利用eda技术进行电子系统的设计有什么特点?

答:①用软件的方式设计硬件;②用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的;③设计过程中可用有关软件进行各种仿真;④系统可现场编程,在线升级;⑤整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。

1.4 从使用的角度来讲,eda技术主要包括几个方面的内容?这几个方面在整个电子系统的设计中分别起什么作用?

答:eda技术的学习主要应掌握四个方面的内容:①大规模可编程逻辑器件;②硬件描述语言;③软件开发工具;④实验开发系统。其中,硬件描述语言是重点。

对于大规模可编程逻辑器件,主要是了解其分类、基本结构、工作

原理、各厂家产品的系列、性能指标以及如何选用,而对于各个产

品的具体结构不必研究过细。

对于硬件描述语言,除了掌握基本语法规定外,更重要的是要理解vhdl的三个“精髓”:软件的强数据类型与硬件电路的惟一性、硬件

行为的并行性决定了vhdl语言的并行性、软件仿真的顺序性与实际

硬件行为的并行性;要掌握系统的分析与建模方法,能够将各种基

本语法规定熟练地运用于自己的设计中。

对于软件开发工具,应熟练掌握从源程序的编辑、逻辑综合、逻辑

适配以及各种仿真、硬件验证各步骤的使用。

对于实验开发系统,主要能够根据自己所拥有的设备,熟练地进行

硬件验证或变通地进行硬件验证。

1.5 什么叫可编程逻辑器件(简称pld)? fpga和cpld的中文含义分

别是什么?国际上生产fpga/cpld的主流公司,并且在国内占有较大市场份额的主要有哪几家?其产品系列有哪些?其可用逻辑门/等效

门数大约在什么范围?

答:可编程逻辑器件(简称pld)是一种由用户编程以实现某种逻辑功

能的新型逻辑器件。 fpga和cpld分别是现场可编程门阵列和复杂

可编程逻辑器件的简称。

国际上生产fpga/cpld的主流公司,并且在国内占有市场份额较大

的主要是xilinx, altera,lattice三家公司。

1.6 fpga和cpld各包括几个基本组成部分?

答:fpga 在结构上主要分为三个部分,即可编程逻辑单元,可编程

输入/输出单元和可编程连线三个部分。cpld在结构上主要包括三个

部分,即可编程逻辑宏单元,可编程输入/输出单元和可编程内部连线。

1.7 fpga/cpld有什么特点?二者在存储逻辑信息方面有什么区别?在实际使用中,在什么情况下选用cpld,在什么情况下选用fpga?

1.8 常用的硬件描述语言有哪几种?这些硬件描述语言在逻辑描述

方面有什么区别?答:常用的硬件描述语言有vhdl、verilog、abel。 vhdl:作为ieee的工业标准硬件描述语言,在电子工程领域,已成

为事实上的通用硬件描述语言;逻辑综合能力强,适合行为描述。

verilog:支持的eda工具较多,适用于rtl级和门电路级的描述,

其综合过程较vhdl稍简单,但其在高级描述方面不如vhdl。

abel:一种支持各种不同输入方式的hdl,被广泛用于各种可编程

逻辑器件的逻辑功能设计,由于其语言描述的独立性,因而适用于

各种不同规模的可编程器件的设计。

1.9 目前比较流行的、主流厂家的eda的软件工具有哪些?这些开

发软件的主要区别是什么?

答:目前比较流行的、主流厂家的eda的软件工具有altera的

max+plus ii、lattice的ispexpert、xilinx的foundation series。

1.10 对于目标器件为fpga/cpld的vhdl设计,其工程设计包括几

个主要步骤?每步的作用是什么?每步的结果是什么?

答:第一:需要进行“源程序的编辑和编译”—用一定的逻辑表达手段

将设计表达出来; 第二:要进行“逻辑综合”---将用一定的逻辑表达手

段将表达出来的设计经过一系列的操作,分解成一系列的逻辑电路

及对应的关系(电路分解);

第三:要进行目标器件的“布线/适配”---在选用的目标器件中建立这

些基本逻辑电路的对应关系(逻辑实现)

第四:目标器件的编程下载---将前面的软件设计经过编程变成具体

的设计系统(物理实现);最后要进行硬件仿真/硬件测试---验证所

设计的系统是否符合要求。同时,在设计过程中要进行有关“仿真”--

-模拟有关设计结果与设计构想是否相符。设计基本流程如图1-1所示。

1.11 名词解释:逻辑综合、逻辑适配、行为仿真、功能仿真、时序

仿真。

答:逻辑综合:逻辑综合器的功能就是将设计者在eda平台上完成

的针对某个系统项目的hdl、原理图或状态图形的描述,针对给定硬

件结构组件进行编译、优化、转换和综合,最终获得门级电路甚至

更底层的电路描述文件。由此可见,综合器工作前,必须给定最后

实现的硬件结构参数,它的功能就是将软件描述与给定硬件结构用

某种网表文件的方式联系起来。显然,综合器是软件描述与硬件实

现的一座桥梁。综合过程就是将电路的高级语言描述转换成低级的,可与fpga/cpld或构成asic的门阵列基本结构相映射的网表文件。

逻辑适配:适配器的功能是将由综合器产生的网表文件配置于指定

的目标器件中,产生最终的下载文件,如jedec格式的文件。适配

所选定的目标器件(fpga/cpld芯片)必须属于原综合器指定的目标器

件系列。

行为仿真:在综合以前可以先对vhdl所描述的内容进行行为仿真,即将vhdl设计源程序直接送到vhdl仿真器中仿真,这就是所谓的vhdl行为仿真。因为此时的仿真只是根据vhdl的语义进行的,与具体电路没有关系。

功能仿真:仅对vhdl描述的逻辑功能进行测试模拟,以了解其实现的功能是否满足原设计的要求,仿真过程不涉及具体器件的硬件特性,如延时特性。

时序仿真:时序仿真是接近真实器件运行的仿真,仿真过程中已将器件特性考虑进去了,因而,仿真精度要高得多。但时序仿真的仿真文件必须来自针对具体器件的布线/适配器所产生的仿真文件。综合后所得的edif/xnf门级网表文件通常作为fpga布线器或cpld适配器的输入文件。通过布线/适配的处理后,布线/适配器将生成一个vhdl网表文件,这个网表文件中包含了较为精确的延时信息,网表文件中描述的电路结构与布线/适配后的结果是一致的。此时,将这个vhdl网表文件送到vhdl仿真器中进行仿真,就可以得到精确的时序仿真结果了

2-1

2-3

2-4

2-5

2-6

2.7

3.1比较常用硬件描述语言vhdl、verilog和abel语言的优劣。

1.vhdl:描述语言层次较高,不易控制底层电路,对综合器的性能要求较高。有多种 eda工具选择,已成为ieee标准。

应用vhdl进行工程设计的优点是多方面的,具体如下:

(1) 与其他的硬件描述语言相比,vhdl具有更强的行为描述能力。

(2) vhdl具有丰富的仿真语句和库函数,使得在任何大系统的设计早期,就能查验设计系统的功能可行性,随时可对系统进行仿真模拟,使设计者对整个工程的结构和功能可行性做出判断。

(3) vhdl语句的行为描述能力和程序结构,决定了它具有支持大规模设计的分解和已有设计的再利用功能。

(4) 用vhdl完成一个确定的设计,可以利用eda工具进行逻辑综合和优化,并自动把vhdl描述设计转变成门级网表(根据不同的实现芯片)。 (5) vhdl对设计的描述具有相对独立性。

(6) 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 信号和变量在描述和使用时有哪些主要区别?

(1)变量只能在进程或子程序内部定义,用于存储局部/临时数据。信号只能在进程或子程序的外部定义,表示硬件中的连线,用于各

并行语句模块之间的通信。

(2)信号用signal关键字定义,赋值符号为”=”。变量用variable

关键字定义,赋值符号为”:=”

(3)信号赋值,可以设定延时量,需要延时一段时间后才执行;变

量赋值立即执行。

3.6 vhdl语言中的标准数据类型有哪几类?用户可以自己定义的数

据类型有哪几类?并简单介绍各数据类型。

(1)标量型:属单元素最基本的数据类型,通常用于描述一个单值

数据对象,它包括实数类型、整数类型、枚举类型和时间类型。

复合类型:可以由细小的数据类型复合而成,如可有标量复合而成。复合类型主要有数组型和记录型。

存取类型:为给定的数据类型的数据对象提供存取方式。文件类型:用于提供多值存取类型。

(2)用户可自定义的数据类型:枚举类型、整数类型、数组类型、

记录类型、时间类型、实数类型等

3.7 bit数据类型和std_logic数据类型有什么区别?

bit 数据类型只能取值0 或1,而std_logic 数据类型是bit 数据类

型的扩展,除了0 和

相关主题
文本预览
相关文档 最新文档