EDA复习大纲.docx
《EDA复习大纲.docx》由会员分享,可在线阅读,更多相关《EDA复习大纲.docx(13页珍藏版)》请在冰豆网上搜索。
EDA复习大纲
第一章
1.什么是EDA技术?
什么是狭义EDA?
什么是广义EDA?
(P2)
答:
EDA技术是一门迅速发展起来的新技术。
EDA设计就是设计人员在计算机上通过特定功能的软件开发工具,以全自动或半自动化方式按要求完成电子系统的设计。
狭义EDA技术就是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术。
简单的说狭义EDA技术也就是使用EDA软件进行数字系统的设计。
广义EDA技术就是通过计算机及其电子系统的辅助分析和设计软件,完成电子系统某一部分的设计过程。
2.可编程逻辑器件的发展历史?
(P8)
答:
可分为四个阶段(见课本第8页)。
3.可编程逻辑器件的开发设计流程?
其中设计输入可采用哪些方法输入设计的电路?
其中什么叫功能仿真什么叫时序仿真?
其中什么叫综合什么叫适配?
(P16)
答:
其设计流程包括设计目标、设计输入、功能仿真、综合优化、综合后仿真、实现(FPGA设计)或适配(CPLD设计)、时序仿真、设计下载、系统调试及验证等。
设计输入常采用硬件描述语言(HDL)输入法、原理图输入法、IP核设计输入方法等;
功能仿真,也称为前仿真,是在编译之前对用户所设计的电路进行逻辑功能验证;
时序仿真,也称为后仿真,是指将布局布线的延时信息反标注到设计网表中来检测有无时序违规现象;
所谓综合就是将较高级抽象层次的描述转化成较低层次的描述;
适配就是指将综合生成的逻辑网表描述为具体CPLD芯片的实现过程。
4.IEEE标准化的HDL语言有哪两种?
(P21)
答:
VerilogHDL和VHDL。
第二章
1.可编程逻辑器件有哪些分类方法?
各分为哪几类?
(1)按集成度分类
(2)按器件结构分类
乘积项结构器件。
其基本结构为“与-或阵列”的器件,大部分简单PLD和CPLD都属于此类。
查找表结构器件。
由简单的查找表组成可编程门,再构成阵列形式。
大多数FPGA属于此类。
(3)按编程工艺分类
熔丝(Fuse)型。
如早期的PROM。
反熔丝(Anti-fuse)型。
EPROM型。
用紫外线进行擦除,可多次编程。
EEPROM型。
电可擦写编程器件,大部分CPLD及GAL器件采用此类结构。
SRAM型。
SRAM查找表结构的器件,大部分FPGA器件采用此工艺。
掉电丢失信息需重新配置。
Flash型。
多次编程,掉电不需要重新配置。
2.简单PLD中的PAL和GAL结构上有何异同?
答:
GAL和PAL的最大差别在于GAL的输出结构可由用户定义,是一种可编程的输出结构。
GAL的两种基本型号GAL16V8(20引脚)GAL20V8(24引脚)可代替树十种PAL器件,因而称为通用可编程电路。
而PAL的输出是由厂家定义好的,芯片选定后就固定了,用户无法改变。
3.可编程逻辑器件的制造工艺?
(P24)
答:
熔丝连接技术、反熔丝连接技术、SRAM技术、掩膜ROM、PROM技术、FLASH技术。
4.CPLD的内部结构组成?
(25)
答:
FB、宏单元、快速连接开关矩阵、IOB。
5.FPGA的内部结构组成?
(28)
答:
FPGA由6部分组成,分别为可编程输入/输出单元、基本可编程逻辑单元、嵌入式块RAM、丰富的布线资源、底层嵌入功能单元和内嵌专用硬核等。
6.查找表原理?
(29)
答:
查找表(Look-Up-Table)简称为LUT,LUT本质上就是一个RAM。
目前FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的RAM。
当用户通过原理图或HDL语言描述了一个逻辑电路以后,PLD/FPGA开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。
7.CPLD和FPGA比较?
(40)
答:
(1)CPLD更适合完成各种算法和组合逻辑,FPGA更适合于完成时序逻辑。
(2)CPLD的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而FPGA的分段式布线结构决定了其延时的不可预测性。
(3)在编程上,FPGA比CPLD具有更大的灵活性。
(4)FPGA的集成度比CPLD高,具有更复杂的布线结构和逻辑实现。
(5)CPLD比FPGA使用起来更方便。
(6)CPLD的速度比FPGA快,并且具有较大的时间可预测性。
这是由于FPGA是门级编程,并且CLB之间采用分布式互联,而CPLD是逻辑块级编程,并且其逻辑块之间的互联是集总式的。
(7)在编程方式上,CPLD主要基于E2PROM或FLASH存储器编程;FPGA大部分基于SRAM编程,每次上电时,需从器件外部编程。
(8)CPLD保密密性好,FPGA保密性差。
(9)一般情况下,CPLD的功耗要比FPGA大,且集成度越高越明显。
8.可编程逻辑器件的选择原则?
(57)
答:
工艺的选择、芯片资源、封装和速度、IP核资源。
9.举例说明Altera公司可编程逻辑器件的主要产品?
Altera公司CPLD器件系列:
MAXII系列低成本、低功耗、高密度
Altera公司FPGA器件系列:
(1)Cyclone系列低成本、低密度
(2)CycloneII系列低成本、高密度、低成本DSP
(3)FLEX系列经典FPGA结构、中低密度
(4)ACEX系列高密度、高性能、适于通信及音频处理应用
(5)Stratix系列高密度、高性能、适于高速数字信号处理应用
(6)StratixII系列高密度、高性能、增强数字信号处理功能
第三章
1.VHDL程序的组成部分?
各部分的作用?
(60)
答:
一个完整的VHDL程序包含实体(entity)、结构体(architecture)、配置(configuration)、包集合(package)、库(library)5个部分。
实体主要是用于描述外部设备的接口信号;
结构体用于描述系统的具体逻辑行为功能;
包存放设计使用到的公共的数据类型、常数和子程序等;
配置用来从库中选择所需单元来组成系统设计的不同版本;
库存放已经编译的实体、结构体、包和配置等。
2.端口模式有哪几种?
各模式有何异同?
(61)
答:
端口模式有:
in:
输入型,此端口为只读型。
out:
输出型,只能在实体内部对其赋值。
inout:
双向(输入输出型),既可读也可赋值。
buffer:
缓冲型,与out相似,但可读。
输入仅允许数据流入端口。
输出仅允许数据流从实体内部输出。
缓冲模式的端口与输出模式的端口类似,只是缓冲模式允许内部引用该端口的信号。
双向模式可以代替输入模式、输出模式和缓冲模式。
3.VHDL结构体的描述有哪三种描述风格?
分别使用哪些语句?
65
答:
行为描述:
常用语句的语句主要有进程、过程和函数。
数据流描述:
1)并行信号赋值;2)条件信号赋值;3)选择信号赋值。
结构描述:
元件例化语句。
4.VHDL的库可分为哪五种?
哪些在使用前不需要说明?
(67)
答:
IEEE库、STD库(默认库)、面向ASIC的库、WORK库、用户定义库;除了WORK库和STD库外,其它的库在使用前都需要进行说明。
5.子程序定义的位置?
子程序包含哪两种类型?
有何区别?
(课件)
答:
子程序可以在三个位置定义:
程序包、结构体、进程。
子程序有两种类型:
函数FUNCTION和过程PROCEDURE。
6.VHDL标识符的使用规则?
(75)
答:
(1)标识符由字母(A…Z;a…z)、数字和下划线字符组成。
(2)任何标识符必须以英文字母开头。
(3)末字符不能为下划线。
(4)不允许出现两个连续的下划线。
(5)标识符中字母不区分大小写。
(6)VHDL定义的保留字(或称关键字)不能用作标识符。
(7)VHDL中的注释由两个连续短线(--)开始,直到行尾。
7.VHDL的三种数据对象?
使用时的区别?
(76课件)
答:
常量、变量、信号。
常量定义语句所允许的设计单元有程序包、实体、结构体、块、进程和子程序;
变量是一个局部变量,它只能在进程语句、函数语句和过程语句结构中使用,用作局部数据存储;
信号的使用和定义范围是实体、结构体和包集合(程序包)。
8.VHDL中可由用户自定义的数据类型有哪些?
80
答:
可由用户定义的数据类型有:
1)枚举类型;2)整数和实数类型;3)数组类型;4)记录类型;5)子类型。
9.什么叫重载操作符?
90
答:
对已存在的操作符重新定义,使其能进行不同类型操作数之间的运算,称为重载操作符。
10.VHDL中顺序语句有哪些?
并行语句有哪些?
90、100
答:
常用的顺序描述语句有:
变量与信号赋值语句、if语句、case语句、loop语句、next语句、exit语句、子程序、return语句、wait语句、null语句。
常用的并发描述语句有下面几类:
1)进程描述语句;2)并行信号赋值语句;
3)条件信号赋值语句;4)并行过程调用语句和块语句。
11.进程语句有什么特点?
课件
答:
进程语句有以下几个方面的特点:
(1)进程与进程,或其它并发语句之间可以并发执行;
(2)在进程内部的所有语句是按照顺序执行的;
(3)进程的启动由其敏感向量表内的敏感向量或者WAIT语句确定;
(4)进程与进程,或其它并发语句之间通过传递信号量实现通信的。
12.条件信号赋值语句和选择信号赋值语句使用时有什么不同点,分别与哪类语句等效?
课件
答:
条件测试具有顺序性,各条件语句的范围允许有重叠。
类似IF语句。
在应用选择信号赋值语句的时候应注意:
(1)各条件同时测试,不能有重叠的条件分支。
(2)最后条件可为others。
否则,其它条件必须能包含表达式的所有可能值。
(3)选择信号赋值语句与进程中的case语句等价。
13.块语句的作用?
104
答:
块语句将一系列并行描述语句进行组合,目的是改善并行语句及其结构的可读性。
可使结构体层次鲜明,结构明确。
14.元件例化语句的作用?
答:
元件例化即把低层元件安装(调用)到当前层次设计实体内部的过程。
包括:
类属参数传递、元件端口映射。
15.用VHDL设计一个4选一多路选择器。
答:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYmux41IS
PORT(a,b,c,d:
INSTD_LOGIC;
s0:
INSTD_LOGIC;
s1:
INSTD_LOGIC;
y:
OUTSTD_LOGIC);
ENDENTITYmux41;
ARCHITECTUREif_mux41OFmux41IS
SIGNALs0s1:
STD_LOGIC_VECTOR(1DOWNTO0);--定义标准逻辑位矢量数据
BEGIN
s0s1<=s1&s0;--s1相并s0,即s1与s0并置操作
PROCESS(s0s1,a,b,c,d)
BEGIN
IFs0s1="00"THENy<=a;
ELSIFs0s1="01"THENy<=b;
ELSIFs0s1="10"THENy<=c;
ELSEy<=d;
ENDIF;
ENDPROCESS;
ENDARCHITECTUREif_mux41;
16.用VHDL的元件例化语句设计一个双2选1多路选择器。
答:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYmux21IS
PORT(a1,a2,a3,s0,s1:
INSTD_LOGIC;
outy:
OUTSTD_LOGIC);
ENDENTITYmux21;
ARCHITECTUREcase_mux21OFmux21IS
SIGNALy:
STD_LOGIC;BEGIN
u1:
PROCESS(s0,a1,a2,a3)
BEGIN
CASEs0IS--类似于真值表的case语句
WHEN'0'=>y<=a2;
WHEN'1'=>y<=a3;
WHENOTHERS=>NULL;
ENDCASE;
ENDPROCESS;
u2:
PROCESS(s1,a1,a2,a3,y)
BEGIN
CASEs1IS--类似于真值表的case语句
WHEN'0'=>outy<=a1;
WHEN'1'=>outy<=y;
WHENOTHERS=>NULL;
ENDCASE;
ENDPROCESS;
ENDARCHITECTUREcase_mux21;
17.用VHDL的元件例化语句设计一个1位全减器。
答:
LIBRARYIEEE;--半减器描述
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYh_subtracterIS
PORT(a,b:
INSTD_LOGIC;
Sub,Bro:
OUTSTD_LOGIC);
END;
ARCHITECTUREoneOFh_subtracterIS
BEGIN
PROCESS(a,b)
BEGIN
Sub<=aXORb;Bro<=(NOTa)ANDb;
ENDPROCESS;
END;
LIBRARYIEEE;--全减器
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYf_subtracterIS
PORT(ain,bin,Bro_in:
INSTD_LOGIC;
Sub_out,Bro_out:
OUTSTD_LOGIC);
END;
ARCHITECTUREoneOFf_subtracterIS
COMPONENTh_subtracter
PORT(a,b:
INSTD_LOGIC;
Sub,Bro:
OUTSTD_LOGIC);
ENDCOMPONENT;
SIGNALc,d,e:
STD_LOGIC;
BEGIN
u1:
h_subtracterPORTMAP(a=>ain,b=>bin,Sub=>c,Bro=>d);
u2:
h_subtracterPORTMAP(a=>c,b=>Bro_in,Sub=>Sub_out,Bro=>e);
Bro_out<=dORe;
END;
第四章
1.用VHDL设计一个3/8译码器。
libraryIEEE;
useIEEE.STD_LOGIC_1164.ALL;
entityencoder_387is
port(sel:
instd_logic_vector(2downtoo);
en:
instd_logic;
code:
outstd_logic_vector(7downto0));
endencoder_38;
architecturertlofencoder_38is
begin
process(sel,en)
begin
if(en=’1’)then
caseselis
When“000”=>code<=“00000001”;
When“001”=>code<=“00000010”;
When“010”=>code<=“00000100”;
When“011”=>code<=“00001000”;
When“100”=>code<=“00010000”;
When“101”=>code<=“00100000”;
When“110”=>code<=“01000000”;
When“111”=>code<=“10000000”;
Whenothers=>code<=“00000000”;
endcase;
else
Code<=“ZZZZZZZZ”;
endif;
endprocess;
endrtl;
2.用VHDL设计一个D触发器。
Libraryieee;
Useieee.std_logic_1164.all;
Entityfddis
Port(clk,d,clr,pre,ce:
instd_logic;
q:
outstd_logic);
endfdd;
architecturertlofdffis
signalq_tmp:
std_logic;
begin
q<=q_tmp;
process(clk,clr,pre,c)
begin
if(clr=’1’)then
q_tmp<=’0’;
elsif(pre=’1’)then
q_tmp<=’1’;
elsifrising_edge(clk)then
if(ce=’1’)then
q_tmp<=d;
else
q_tmp<=q_tmp;
endif;
endif;
endprocess;
endrtl;
3.用VHDL设计一个带异步复位和同步使能的十进制计数器。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYCNT10IS
PORT(CLK,RST,EN:
INSTD_LOGIC;
CQ:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
COUT:
OUTSTD_LOGIC);
ENDCNT10;
ARCHITECTUREbehavOFCNT10IS
BEGIN
PROCESS(CLK,RST,EN)
VARIABLECQI:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
IFRST='1'THENCQI:
=(OTHERS=>'0')--计数器异步复位
ELSIFCLK'EVENTANDCLK='1'THEN--检测时钟上升沿
IFEN='1'THEN--检测是否允许计数(同步使能)
IFCQI<9THENCQI:
=CQI+1;--允许计数,检测是否小于9
ELSECQI:
=(OTHERS=>'0');--大于9,计数值清零
ENDIF;
ENDIF;
ENDIF;
IFCQI=9THENCOUT<='1';--计数大于9,输出进位信号
ELSECOUT<='0';
ENDIF;
CQ<=CQI;--将计数值向端口输出
ENDPROCESS;
ENDbehav;
4.用VHDL设计一个100分频的分频器。
libraryIEEE;
useIEEE.STD_LOGIC_1164.ALL;
useIEEE.STD_LOGIC_ARITH.ALL;
useIEEE.STD_LOGIC_UNSIGNED.ALL;
entityclkdivis
Port(clr:
inSTD_LOGIC;
clk:
inSTD_LOGIC;
clkout:
inoutSTD_LOGIC);
endclkdiv;
architectureBehavioralofclkdivis
begin
process(clk,clr)
begin
if(clr='1')then
q<="000";
elsif(rising_edge(clk))then
if(q="49")then
q<="000";
else
q<=q+1;
endif;
endif;
endprocess;
endBehavioral;
5.用VHDL设计一个512*16(深度512,数据宽度16bit)的单端口RAM。
6.有限自动状态机由哪几个部分组成?
可用哪些方法来描述?
答:
大部分数字系统都是由控制单
元和数据单元组成的。
数据单元负责数据的处理和传输,
而控制单元主要是控制数据单元的操作的顺序。
数学模型、状态转移图、状态转移表。
7.有限自动状态机FSM有哪些类型?
各有什么特点?
答:
Moore型状态机的输出仅与状态机的状态有关,与
状态机的输入无关。
Mealy型状态机的输出由状态机的输入和状态机的状态共同决定。
8.FSM有哪些描述方式?
答:
状态机描述方式:
三进程;两进程;单进程。