《EDA技术与应用》期末考试复习提纲一、概念:1.FPGA:FPGA即FieldProgrammableGateArray,现场可编程门阵列2.FPGA的基本结构:FPGA由可配置逻辑模块CLB(ConfigutableLogicBlock)、输入输出模块IOB(Input/OutputBlocks)和互连资源ICR(InterconnectCapitalResource)以及一个用于存放编程数据的静态存储器SRAM组成,其中CLB的基本组成单元为Slice(由查找表和触发器构成的单元)。3.FPGA的片内资源包括数字锁相环(PLL)、随机存储器(RAM)、先进先出(FIFO)。4.CLB:CLB即ConfigutableLogicBlock,可配置逻辑模块5.查找表:查找表即Look-upTable,简称LUT,其本质上就是一个可通过寻址输出其中存储逻辑运算结果的RAM6.逻辑综合:逻辑综合是指将HDL语言翻译成最基本的标准门电路、RAM和触发器等基本逻辑单元的连接关系,并根据约束条件优化所生成的门级逻辑连接,输出网表文件的过程。7.PLD:ProgrammableLogicArray,可编程逻辑整列8.SPLD:Small/SimpleProgrammableLogicArray9.CPLD:ComplexProgrammableLogicArray10.ASIC:专用集成电路,它是根据某一用户的特定要求,能以低制作成本、短交货周期供货的半定制、定制电路以及PLD和FPGA电路。11.IOB:Input/OutputBlock,输入输出模块12.ICR:InterconnectCapitalResource,互联资源13.CLB的两种基本结构:基于MUX、基于LUT14.Altera称之为“逻辑阵列块”LAB,Xilinx称之谓“可配置逻辑块”CLB。15.ISE10.1硬件逻辑设计套件,其中包括:CoreGenerator、ArchitectureWizard、iMPACT、FPGAEditor、TimingAnalyzar、ConstraintsEditor16.SoPC(SystemonProgrammableChip,SoPC)是一种特殊的嵌入式系统,首先它是片上系统(SoC),即由单个芯片完成整个系统的主要逻辑功能;其次,它是可编程系统,具有灵活的设计方式,可裁减,可扩充,可升级,并具备软硬件在系统可编程的特点。可编程片上系统正在成为FPGA最为重要的发展方向。17.Verilog和VHDL硬件描述语言已经被IEEE公布为工业标准。18.HDL:HDL即HardDescriptionLanguage,硬件描述语言19.用Verilog-HDL描述的电路设计就是该电路的VerilogHDL模型,这些模型可以是实际电路的不同级别的抽象,这些抽象的级别和它们对应的模型类型包括有:系统级、算法级、寄存器传输级/RTL级、门级/Gate级/逻辑门级、开关电路级/Switch级20.WLF:WLF即WaveLogFormat,波形日志格式文件二、语法与编程:21.Verilog模块的结构由在module和endmodule关键词之间的四个主要部分组成:端口信息、输入输出说明、内部信号、功能定义22.module模块名(端口1,端口2,端口3,...);23.标识符必须以英语字母(a-z,A-Z)起头,或者用下横线符(_)起头。其中可以包含数字、$符和下横线符。24.Verilog语言是大小写敏感的,因此sel和SEL是两个不同的标识符。25.VerilogHDL中共有19种数据类型,分成常量和变量26.3'b1001_0011与3'b011相等,5'H0FFF与5'H1F相等27.下划线可以用来分割数的表达式以提高程序的可性,但不能用在位宽和进制处,只能用于具体的数字之间。比如:16’b1010_1011_11111_000//合法格式8’b_0011_1011//非法格式28.一个数字可以被定义成负数,只要在位宽表达式前加一个减号。-8’d5//合法格式8’d-5//非法格式29.算数运算符、关系运算符、逻辑运算符30.逻辑运算符有:&&(逻辑与)||(逻辑或)!(一元逻辑非)31.按位运算符与逻辑运算符的计算32.注意:逻辑与“&&”和按位与“&”是不同的逻辑或“||”和按位与“|”是不同的逻辑非“!”和按位取反“~”是不同的例如:A=4’b0011;B=4’b1001;33.不同长度操作符运算时,右端对齐,左端补0,例如:'b0110^'b10000等价于:'b00110^'b10000结果为'b1011034.采用混合描述完成如下图所示的1位加法器,将VerilogHDL语言程序补充完整。1.A&&B=1’b1;A&B=4’b0001;2.A||B=1’b1;A|B=4’b1011;3.!B=1’b0;~B=4’b0110;modulefull_add4(a,b,cin,sum,cout);inputa,b,cin;outputsum,cout;regcout;regm1,m2,m3;wires1;xorx1(s1,a,b);always@(aorborcin)beginm1=a&b;m2=b&cin;m3=a&cin;cout=(m1|m2)|m3;endassignsum=s1^cin;endmodule35.用Verilog语言描述下面的电路。`timescale1ns/1nsmoduleGateCircuit(Data,Encode,Valid)input[3:0]Data;output[1:0]Encode,Valid;notG1(NotData[2],Data[2]);andG2(A,NotData[2],Data[1]);orG3(B,Data[1],Data[0]),G4(Encode[0],Data[3],A),G5(Encode[1],Data[3],Data[2]),G6(Valid,Data[3],Data[2],B);endmodule36.请根据下图写出对应的VerilogHDL描述。moduletri_gate(e,a,b,y);inpute;inputa;outputb;inouty;assigny=e?a:1’bz;assignb=(~e)?y:1’bz;endmodule37.采用VerilogHDL语言设计一个4位全加器,其中输入加数为[3:0]cina,[3:0]cinb,进位数为cin,时钟为clk,输出的和为[3:0]sum,输出进位为cout。moduleadder4(cout,sum,a,b,cin);input[3:0]a,b;output[3:0]sum;outputcout;assign{cout,sum}=a+b+cin;endmodule38.课本P99、P104、P107页例题的状态转移图。39.完成一个10分频电路,其功能是输出信号是输入信号频率的1/10。modulefen10(in,out);//10feninputin;outputregout;reg[2:0]cnt=3'd0;always@(posedgein)beginif(cnt3'd4)cnt=cnt+3'd1;elsebeginout=~out;cnt=3'd0;endendendmodule40.带计数器使能的异步复位计数器,模块名称counter,输入端口:clk时钟(上升沿触发),rst异步复位(高电平复位),输出端口:q数据输出(位宽为10)。modulecounter(clk,reset,q);inputclk,reset;output[9:0]q;reg[9:0]q;always@(posedgeclkorposedgereset)if(reset)q=10'd0;elseq=q+10’d1;endmodule41.用行为及描述1位全加器。modulefull_add3(a,b,cin,sum,cout);inputa,b,cin;outputsum,cout;regsum,cout,m1,m2,m3;always@(aorborcin)beginm1=a&b;m2=b&cin;m3=a&cin;sum=(a^b)^cin;cout=(m1|m2)|m3;endendmodule42.请根据真值表(表中均为二进制表述)写出对应的VerilogHDL描述,模块名称:decoder38。enselout0xxx11111111100011111110100111111101101011111011101111110111110011101111110111011111111010111111111101111111moduledecoder38(sel,out,a);input[2:0]sel;inputen;outputreg[7:0]out;always@(seloren)beginif(!en)out=8’b11111111;elsecase(sel)3'b000:out=8'b1111_1110;3'b001:out=8'b1111_1101;3'b010:out=8'b1111_1011;3'b011:out=8'b1111_0111;3'b100:out=8'b1110_1111;3'b101:out=8'b1101_1111;3'b110:out=8'b1011_1111;3'b111:out=8'b0111_1111;endcaseendendmodule三、工具与操作:43.FPGA设计开发流程:电路设计与设计输入仿真验证:利用Xilinx集成的仿真工具足矣逻辑综合:利用XST(XilinxSynthesisTool)工具布局布线:利用Xilinx的ImplementationTool工具FPGA配置下载:利用iMPACT工具44.时序标注文件是指SDF(StandardDelayFormatTimingAnnotation)文件,在Xilinx公司的FPGA/CPLD设计中使用“.sdf”作为时序标注文件的扩展名,而在Altera公司的FPGA设计中使用“.sdo”作为时序标注文件的扩展名。它在仿真过程的主要作用就是在SDF标注文件中对每一个底层逻辑门提供了3种不同的延时值,分别是典型延时值、最小延时值和最大延时值,用于进行静态时序分析(STA)仿真验证。45.综合在FPGA/CPLD设计中的作用是将寄存器传输层的结构描述转化为逻辑层的结构描述,以及将逻辑层的结构描述转化为电路的结构描述。综合步骤的输入是HDL源代码,输出是逻辑网表。46.ModelSim仿真器是基于事件驱动的,它可以用来仿真Verilog语言,也可以用来仿真VHDL语言,同时也支持两种语言的混合仿真。47.根据设计阶段不同,仿真可以分为RTL行为级仿真、综合后门级功能仿真和时序仿真等三大类型。48.ModelSim提供的调试手段与工具有以下几种:在源文件窗口中设置断点或者单步执行。观察波形测量时间。在数据流窗口中浏览设计的物理连接。查看或者初始化存储器。分析仿真效率。测试代码覆盖率。波形比较。49.HDLBencher的Xilinx版本可以支持VHDL语言输入、VerilogHDL语言输入和Xilinx原理图输入等3种输入方法。50.实现(Implement)是将设计的逻辑网表信息转换成所选器件的底层模块与硬件原语,将设计映射到器件结构上,进行布局布线,达到在选定器件上实现设计的目的。51.实现主要分为3个步骤:转换逻辑网表(Translate):将多个设计文件合并为一个网表映射到器件单元(Map):将网表中的逻辑符号(门)组装到物理元件(CLB和IOB)中布局布线(Place&Route):将元件放置到器件中,并将其连接起来,同时提取出时序数据,并生成各种报告52.实现前应该设计实现约束条件:约束条件一般包括管脚锁定、时钟约束、全局时钟、第二全局时钟、分组约束