fpga英文简称及课后1.docx
《fpga英文简称及课后1.docx》由会员分享,可在线阅读,更多相关《fpga英文简称及课后1.docx(17页珍藏版)》请在冰豆网上搜索。
fpga英文简称及课后1
IEEE
电气和电子工程师协会
InstituteofElectricalandElectronicsEngineers
LPM
即参数化模块库
LibraryofParameterizedModules
SOPC
可编程片上系统
SystemonaProgrammableChip
RTL
在集成电路设计中
RegisterTransferLevel
LE
逻辑单元
LogicElement
OLMC
即逻辑输出宏
OutputLogicMacrocell
FPGA
现场可编程门阵列
FieldProgrammableGateArray
VHDL
咼速集成电路硬件描述语言
Very-High-SpeedIntegratedCircuitHardware
DescriptionLanguage
HDL
硬件描述语言
HardwareDescriptionLanguage
CPLD
复杂可编程逻辑器件
ComplexProgrammableLogicDevice
PLD
可编程逻辑器件
ProgrammableLogicDevice
GAL
通用阵列逻辑
GenericArrayLogic
LAB
逻辑阵列块
LogicArrayBlock
CLB
可配置逻辑模块
ConfigurableLogicBlock
EAB
嵌入式阵列块
EmbeddedArrayBlock
SOPC
可编程片上系统
System-on-a-Programmable-Chip
LUT
查找表
Look-UpTable
JTAG
联合测试行为组织
JointTestActionGroup
IP
知识产权
IntellectualProperty
ASIC
专用集成电路
ApplicationSpecificIntegratedCircuits
ISP
在系统可编程
InSystemProgrammable
ICR
在电路可重构
EDA
电子设计自动化
ElectronicDesignAutomation
MCU
微控制单元
MicrocontrollerUnit
1-1EDA
技术与ASIC设计和FPGA开发有什么关系?
答:
利用EDA技术进行电子系统设计的最后目标是完成专用集成电路ASIC的设计和实现;FPGA和CPLD
是实现这一途径的主流器件。
FPGA和CPLD通常也被称为可编程专用IC,或可编程ASICoFPGA和CPLD的应用是EDA技术有机融合软硬件电子设计技术、SoC(片上系统)和ASIC设计,以及对自动设计与自动实
现最典型的诠释。
3、简述基于数字系统设计流程包括哪些步骤?
包括五个步骤:
⑴、设计输入:
将设计的结构和功能通过原理图或硬件描述语言进行设计或编程,进行语法或逻辑检查,通过表示输入完成,否则反复检查直到无任何错误。
⑵、逻辑综合:
将较高层的设计描述自动转化为较低层次描述的过程,包括行为综合,逻辑综合和版图综合或结构综合,最后生成电路逻辑网表的过程。
⑶、布局布线:
将综合生成的电路网表映射到具体的目标器件中,并产生最终可下载文件的过程。
⑷、仿真:
就是按照逻辑功能的算法和仿真库对设计进行模拟,以验证设计并排除错误的过程,包括功能仿真和时序仿真。
⑸、编程配置:
将适配后生成的编程文件装入到PLD器件的过程,根据不同器件实现编程或配置。
4、简述VerilogHDL编程语言中函数与任务运用有什么特点?
函数和任务都能独立完成相应电路功能,通过在同一模块中的调用实现相应逻辑电路功能。
但它们又有以下不同:
⑴、函数中不能包含时序控制语句,对函数的调用,必须在同一仿真时刻返回。
而任务可以包含时序控制语句,任务的返回时间和调用时间可以不同。
⑵、在函数中不能调用任务,而任务中可以调用其它任务和函数。
但在函数中可以调用其它函数或函数自身。
⑶、函数必须包含至少一个端口,且在函数中只能定义input端口。
任务可以包含0个或任何多个端
口,且可以定义input、output和inout端口。
⑷、函数必须返回一个值,而任务不能返回值,只能通过output或inout端口来传递执行结果。
5、简述FPGA与CPLD两种器件应用特点。
CPLD与FPGA都是通用可编程逻辑器件,均可在EDA仿真平台上进行数字逻辑电路设计,它们不同体
现在以下几方面:
WFPGA集成度和复杂度高于CPLD所以FPGA可实现复杂逻辑电路设计,而CPLD适合简单和低成本的逻辑电路设计。
⑵、FPGA内主要由LUT和寄存器组成,倾向实现复杂时序逻辑电路设计,而CPLD内主要由乘积项逻
辑组成,倾向实现组合逻辑电路设计。
⑶、FPGA工艺多为SRAMflash等工艺,掉电后内信息消失,所以该类型需外配存储器,而CPLD工
艺多为EEPROM等工艺,掉电后信息不消失,所以不用外配存储器。
⑷、FPGA相对CPLD成本高,但都可以在内都镶嵌硬核和软核,实现片上系统功能。
1-2与软件描述语言相比,VHDL有什么特点?
答:
编译器将软件程序翻译成基于某种特定CPU的机器代码,这种代码仅限于这种CPU而不能移植,
并且机器代码不代表硬件结构,更不能改变CPU的硬件结构,只能被动地为其特定的硬件电路结构所利用。
综合器将VHDL程序转化的目标是底层的电路结构网表文件,这种满足VHDL设计程序功能描述的电路结构,
不依赖于任何特定硬件环境;具有相对独立性。
综合器在将VHDL硬件描述语言)表达的电路功能转化成具
体的电路结构网表过程中,具有明显的能动性和创造性,它不是机械的一一对应式的“翻译”,而是根据设计库、工艺库以及预先设置的各类约束条件,选择最优的方式完成电路结构的设计。
1-3什么是综合?
有哪些类型?
综合在电子设计自动化中的地位是什么?
答:
在电子设计领域中综合的概念可以表示为:
将用行为和功能层次表达的电子系统转换为低层次的
便于具体实现的模块组合装配的过程。
答:
(1)从自然语言转换到VHDL语言算法表示,即自然语言综合。
⑵从算法表示转换到寄存器传输级(RegisterTransportLevel,RTL),即从行为域至U结构域的综合,即行为综合。
(3)从RTL级表示转换到逻辑门(包括触发器)的表示,即逻辑综合。
(4)从逻辑门表示转换到版图表示(ASIC设计),或转换到FPGA勺配置网表文件,可称为版图综合或结构综合。
综合在电子设计自动化中的地位是什么?
答:
是核心地位(见图1-3)。
综合器具有更复杂的工作环
境,综合器在接受VHDL程序并准备对其综合前,必须获得与最终实现设计电路硬件特征相关的工艺库信息,以及获得优化综合的诸多约束条件信息;根据工艺库和约束条件信息,将VHDL程序转化成电路实现的相关
信息。
1-4在EDA技术中,自顶向下的设计方法的重要意义是什么?
答:
在EDA技术应用中,自顶向下的设计方法,就是在整个设计流程中各设计环节逐步求精的过程。
1-5IP在EDA技术的应用和发展中的意义是什么?
答:
IP核具有规范的接口协议,良好的可移植与可测试性,为系统开发提供了可靠的保证。
2-1叙述EDA的FPGA/CPL[设计流程。
P13〜16
答:
1.设计输入(原理图/HDL文本编辑);2.综合;3.适配;4.时序仿真与功能仿真;5.编程下载;6.硬件测试。
2-2IP是什么?
IP与EDA技术的关系是什么?
P24〜26
IP是什么?
答:
IP是知识产权核或知识产权模块,用于ASIC或FPGA/CPLD中的预先设计好的电路功
能模块。
IP与EDA技术的关系是什么?
是用VHDL等硬件描述语言描述的功能块,并不涉及用什么具体电路元件实现这些功能;软IP通常是以硬
件描述语言HDL源文件的形式岀现。
固IP是完成了综合的功能块,具有较大的设计深度,以网表文件的形式提交客户使用。
硬IP提供设计的最终阶段产品:
掩模。
2-3叙述ASIC的设计方法。
P18〜19
答:
ASIC设计方法,按版图结构及制造方法分有半定制(Semi-custom)和全定制(Full-custom)两种实
现方法。
全定制方法是一种基于晶体管级的,手工设计版图的制造方法。
半定制法是一种约束性设计方式,约束的目的是简化设计,缩短设计周期,降低设计成本,提高设计正确率。
半定制法按逻辑实现的方式不同,可再分为门阵列法、标准单元法和可编程逻辑器件法。
2-4FPGA/CPLD在ASIC设计中有什么用途?
P16,18
答:
FPGA/CPLD在ASIC设计中,属于可编程ASIC的逻辑器件;使设计效率大为提高,上市的时间大为缩短。
2-5简述在基于FPGA/CPLD勺EDA设计流程中所涉及的EDA工具,及其在整个流程中的作用。
P19〜23
答:
基于FPGA/CPLD勺EDA设计流程中所涉及的EDA工具有:
设计输入编辑器(作用:
接受不同的设
计输入表达方式,如原理图输入方式、状态图输入方式、波形输入方式以及HDL的文本输入方式。
);HDL
综合器(作用:
HDL综合器根据工艺库和约束条件信息,将设计输入编辑器提供的信息转化为目标器件硬件结构细节的信息,并在数字电路设计技术、化简优化算法以及计算机软件等复杂结体进行优化处理);仿真器(作用:
行为模型的表达、电子系统的建模、逻辑电路的验证及门级系统的测试);适配器(作用:
完成目标系统在器件上的布局和布线);下载器(作用:
把设计结果信息下载到对应的实际器件,实现硬件设计)。
3-1wire型变量与reg型变量有什么本质区别,它们可用于什么类型语句中?
reg相当于存储单元,wire相当于物理连线。
两者的区别是:
即存器型数据保持最后一次的赋值,而线型数据需要持续的驱动,wire表示直通,即只要输入有变化,输岀马上无条件地反映(如与、非门等简
单的连接);reg表示一定要有触发,输岀才会反映输入。
reg表示一定要有触发,没有输入的时候可以保
持原来的值,但不直接与实际的硬件电路对应。
wire对应于连续赋值,如assignreg对应于过程赋值,如always,initial
畑g主要是用于定义特定类型的变量,即寄存器型(Register)变量(或称寄存器型数据类的变量).如果没有在模块中显式地定文信号为网线型变量,Verilog综合器都会将基默认定义为wi畑型*过程语句always©引导的顺序语旬中规定必须是他g型变量.
wiFE型变量不允许有多个驱动源
3-24-3阻塞赋值和非阻塞赋值有何区别?
Verilog中,非阻塞赋值方式(b<=a):
b的值被赋成新值a的操作并不是立刻完成的,而是在块结束时才完成;块内的多条赋值语句在块结束时同时赋值;硬件有对应的电路。
阻塞赋值方式(b=a):
b的值立刻被赋成新值a;完成该赋值语句后才能执行下一句的操作如果在一个块语句中含有多条阻塞式赋值语句,则当执行到其中某条赋值语句时,其他语句将禁止执行,即如同被阻塞了一样;硬件没有对应的电路,因而综合结果未知。
3-2什么是基于乘积项的可编程逻辑结构?
P33〜34,40
答:
GALCPLD之类都是基于乘积项的可编程结构;即包含有可编程与阵列和固定的或阵列的PAL(可编程
阵列逻辑)器件构成。
3-3什么是基于查找表的可编程逻辑结构?
P40〜41
答:
FPGA(现场可编程门阵列)是基于查找表的可编程逻辑结构。
4-6图4-26所示的址取2选、号路选卄閹构成的电昭WIUXIC对于其>PMUX21A.dis=O
ff(s=1llh分别冇y=a^iy=b^6'一个模块給构中用两个过那束农达此电路*
moduleMUXK(a1,a2,a3,sO,s1,outy);
Ml?
<2lAMlX2I\
inputal,a2,a3TsO,si;outputouty;
wireouty;
wiretmp;
mux21au1(.a(a2),.b(a3)3.s(s0),*y(tmp));|^l4-26含2选1名昭选抒黠的校映
mux2lau2(.a(a1)vb(tmp),.s(s1),.y(ouiy));
endmodule
3-1OLMC(输出逻辑宏单元)有何功能?
说明GAL是怎样实现可编程组合电路与时序电路的。
P34〜36
OLM(有何功能?
答:
OLMC单元设有多种组态,可配置成专用组合输出、专用输入、组合输出双向口、寄存器输出、寄存器输出双向口等。
说明GAL是怎样实现可编程组合电路与时序电路的?
答:
GAL(通用阵列逻辑器件)是通过对其中的
OLMC(输岀逻辑宏单元)的编程和三种模式配置(寄存器模式、复合模式、简单模式),实现组合电路与时序电路设计的。
3-4FPGA系列器件中的LAB有何作用?
P43〜45
答:
FPGA(Cyclone/CycloneII)系列器件主要由逻辑阵列块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请参阅相关资料,APEX系列属于什么类型PLD器件?
MAXI系列又属于什么类型的PLD器件?
为什么?
答:
APEX(AdvancedLogicElementMatrix)系列属于FPGA类型PLD器件;编程信息存于SRAMKMAXII系列属于CPLD类型的PLD器件;编程信息存于EEPRO中。
5-25是什么?
在VHDL中,5有什么用处?
答:
在VHDL仿真和综合器中,默认的固有延时量(它在数学上是一个无穷小量),被称为5延时。
在VHDL信号赋值中未给岀固有延时情况下,VHDL仿真器和综合器将自动为系统中的信号赋值配置一足够小而又能
满足逻辑排序的延时量5;使并行语句和顺序语句中的并列赋值逻辑得以正确执行。
//个:
进制半减黠设计进杠了阚述
moduleh_suber(x,y.diff,s^out);
inputxty;.
outputdiffts_out;
assign
assigns_out=(~x)&y;endmodule
乂为被减数,y为减数,isubii]低朽的借位*diffr为差・kuhout[nJ
高位的借
X
y
subain
dirrr
subouL
0
0
0
□
0
0
0
1
1
1
0
1
0
i
1
0
1
1
0
1
1
0
0
I
0
1
0
1
□
0
X
y
diff
s_out
1
1
0
□
0
0
0
0
0
1
1
]
I
1
{]
1
1
I
modulefsuber(x,y,subin,diFfr,subout);
"个:
逊制全减器顶层设计进行了阐述
outputdiffr,sub_out;
inputx^nSubin;
wire
h_suberu1(x,ype.d);H
hsuberu2(.x(e),.diff(diffr)1.y(subin),.sout(f));//or2au3(.a(d)f-b(0».c(sub_out));
endmodule
]
0
1
0
1
1
0
0
5-1在VHDL设计中,给时序电路清零(复位)有两种力方法,它们是什么?
同步复位和异步复位。
同步复位是指与时钟同步,当复位信号有效之后,出现时钟有效
边沿时才对电路模块进行复位操作;而异步复位与时钟信号无关,只要复位信号有效,无论
这时时钟信号是什么样,都对电路模块进行复位操作。
例如同步复位D触发器:
异步复位D触发器:
ENDIF;
5-4说明信号和变量的功能特点,以及应用上的异同点。
答:
变量:
变量是一个局部量,只能在进程和子程序中使用。
变量不能将信息带出对它做出
定义的当前结构。
变量的赋值是一种理想化的数据传输,是立即发生的,不存在任何延时行
为。
变量的主要作用是在进程中作为临时的数据存储单元。
信号:
信号是描述硬件系统的基本数据对象,其性质类似于连接线;可作为设计实体中并行语句模块间的信息交流通道。
信号不但可以容纳当前值,也可以保持历史值;与触发器的记忆功能有很好的对应关系。
5-5
答:
什么是固有延时?
什么是惯性延时?
固有延时(InertialDelay)也称为惯性延时,固有延时的主要物理机制是分布电容效应。
6-7
答:
什么是重载函数?
重载算符有何用处?
如何调用重载算符函数?
(1)什么是重载函数?
根据操作对象变换处理功能。
(2)重载算符有何用处?
用于两个不同类型的操作数据自动转换成同种数据类型,并进
行运算处理。
(3)如何调用重载算符函数?
采用隐式方式调用,无需事先声明。
边沿触发复位信号
习1E26在描述时序电踣的进程中'哪一种冥位万法必颔将复位信号啟在敬感信号表中*给出这两种电路的VHDL描迷。
辭=异为宾位:
proc«sss(elk,rs-t)feog1n
±f'1*匸Hen.
entu・(others■>*0r);
f上isirn^_edge(die)th^n
ent<"ent+1;
endif;
e-ndprocess;
同歩复位:
pxOC^s(elk)b^-gln
ifrising_edlq^e(elk)then
1frs-t■v1*them.
ent叱・(others・A'O*-);
else
ent<—ent-+1/
end.if;
©eeli£
endpiroce^/
3、设计一个带有异步复位控制端和时钟使能控制端的10进制计数器。
端口设定如下:
输
入端口:
CLK时钟,RST复位端,EN:
时钟使能端,LOAD置位控制端,DIN:
置位数据端;输出端口:
COUT:
进位输出端,DOUT:
计数输出端。
modulecnt10(clk,rst,en,loat,cout,dout,data);
inputclk;inputen;inputrst;inputload;input[3:
0]data;
output[3:
0]dout;outputcout;
reg[3:
0]q1;regcout;
assigndout=q1;
always@(posedgeclkornegedgerst)begin
if(!
rst)q1<=0;elseif(en)
begin
if(!
loat)q1<=data;elseif(q1<9)q1<=q1+1;elseq1<=4'b0000;endendalways@(q1)
if(q仁=4'h9)cout=1'b1;Elsecout=1'b0;
Endmodule
带同步清0/同步置1(低电平有效)的D触发器.
moduledff_syn(q,qn,d,clk,set,reset);//定义模块为diff_syn,端口为q,qn,d,clk,set,reset
inputd,clk,set,reset;outputregq,qn;//定义端口d,clk,set,reset为输入端口,reg,q,qn为输出端
always@(posedgeclk)〃对clk信号上升沿有效
begin
if(~reset)beginq<=1'b0;qn<=1'b1;end//同步清零,低电平有效
elseif(~set)beginq<=1'b1;q*=1'b0;end//同步置位,低电平有效
elsebeginq<=d;qn<=~d;end//q输出为d,qn输出为非d;
endendmodule〃模块结束
编写一个带异步清零、异步置位的D触发器。
moduleDFF1(q^qn/d/Clk^set,resets;output|inputregalwaysbeginif〔!
reset)
qrqn;elk,set,reset;gm
0(posedge
elkornegedgesetornegedgereset)
beginq=0;qn=l;end
eIseif(!
set)begin
q=1;qn=0;endbeginq=d;qn-~d;end
else
end
endmodule
五、程序注解(20分,每空
(a,b);
moduleAAA
outputa;
input[6:
0]b;
reg[2:
0]sum;
integeri;
rega;
always@(b)beginsum=0;
sum
sum
for(i=0;i<=6;i=i+1)if(b[i])
1分)
for
定义模块名为AAA端口为a,b定义a为输出端口
定义b为输出端口,b为7位二进制数为reg型变量,用于统计赞成的人数
定义整型变量i为循环控制变量定义a为寄存器变量过程语句,敏感变量为b语句块
sum=sum+1;if(sum[2])a=1;
else
本程序的逻辑功能是:
初值为0
语句,统计b为1的个数条件语句
只要有人投赞成票,则sum加1
a=0;
人投票表决器
若超过4人赞成,则表决通过若不至U4人,则不通过
要求:
写