EDA复习大纲资料_第1页
EDA复习大纲资料_第2页
EDA复习大纲资料_第3页
EDA复习大纲资料_第4页
EDA复习大纲资料_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

word文档可自由复制编辑第一章什么是EDA技术?什么是狭义EDA?什么是广义EDA?(P2)答:EDA技术是一门迅速发展起来的新技术。EDA设计就是设计人员在计算机上通过特定功能的软件开发工具,以全自动或半自动化方式按要求完成电子系统的设计。狭义EDA技术就是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术。简单的说狭义EDA技术也就是使用EDA软件进行数字系统的设计。广义EDA技术就是通过计算机及其电子系统的辅助分析和设计软件,完成电子系统某一部分的设计过程。可编程逻辑器件的发展历史?(P8)答:可分为四个阶段(见课本第8页)。可编程逻辑器件的开发设计流程?其中设计输入可采用哪些方法输入设计的电路?其中什么叫功能仿真什么叫时序仿真?其中什么叫综合什么叫适配?(P16)答:其设计流程包括设计目标、设计输入、功能仿真、综合优化、综合后仿真、实现(FPGA设计)或适配(CPLD设计)、时序仿真、设计下载、系统调试及验证等。设计输入常采用硬件描述语言(HDL)输入法、原理图输入法、IP核设计输入方法等;功能仿真,也称为前仿真,是在编译之前对用户所设计的电路进行逻辑功能验证;时序仿真,也称为后仿真,是指将布局布线的延时信息反标注到设计网表中来检测有无时序违规现象;所谓综合就是将较高级抽象层次的描述转化成较低层次的描述;适配就是指将综合生成的逻辑网表描述为具体CPLD芯片的实现过程。IEEE标准化的HDL语言有哪两种?(P21)答:VerilogHDL和VHDL。第二章可编程逻辑器件有哪些分类方法?各分为哪几类?按集成度分类按器件结构分类乘积项结构器件。其基本结构为“与-或阵列”的器件,大部分简单PLD和CPLD都属于此类。查找表结构器件。由简单的查找表组成可编程门,再构成阵列形式。大多数FPGA属于此类。按编程工艺分类熔丝(Fuse)型。如早期的PROM。反熔丝(Anti-fuse)型。EPROM型。用紫外线进行擦除,可多次编程。EEPROM型。电可擦写编程器件,大部分CPLD及GAL器件采用此类结构。SRAM型。SRAM查找表结构的器件,大部分FPGA器件采用此工艺。掉电丢失信息需重新配置。Flash型。多次编程,掉电不需要重新配置。简单PLD中的PAL和GAL结构上有何异同?答:GAL和PAL的最大差别在于GAL的输出结构可由用户定义,是一种可编程的输出结构。GAL的两种基本型号GAL16V8(20引脚)GAL20V8(24引脚)可代替树十种PAL器件,因而称为通用可编程电路。而PAL的输出是由厂家定义好的,芯片选定后就固定了,用户无法改变。可编程逻辑器件的制造工艺?(P24)答:熔丝连接技术、反熔丝连接技术、SRAM技术、掩膜ROM、PROM技术、FLASH技术。CPLD的内部结构组成?(25)答:FB、宏单元、快速连接开关矩阵、IOB。FPGA的内部结构组成?(28)答:FPGA由6部分组成,分别为可编程输入/输出单元、基本可编程逻辑单元、嵌入式块RAM、丰富的布线资源、底层嵌入功能单元和内嵌专用硬核等。查找表原理?(29)答:查找表(Look-Up-Table)简称为LUT,LUT本质上就是一个RAM。

目前FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的RAM。

当用户通过原理图或HDL语言描述了一个逻辑电路以后,PLD/FPGA开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。CPLD和FPGA比较?(40)答:(1)CPLD更适合完成各种算法和组合逻辑,FPGA更适合于完成时序逻辑。CPLD的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而FPGA的分段式布线结构决定了其延时的不可预测性。在编程上,FPGA比CPLD具有更大的灵活性。FPGA的集成度比CPLD高,具有更复杂的布线结构和逻辑实现。CPLD比FPGA使用起来更方便。CPLD的速度比FPGA快,并且具有较大的时间可预测性。这是由于FPGA是门级编程,并且CLB之间采用分布式互联,而CPLD是逻辑块级编程,并且其逻辑块之间的互联是集总式的。在编程方式上,CPLD主要基于E2PROM或FLASH存储器编程;FPGA大部分基于SRAM编程,每次上电时,需从器件外部编程。CPLD保密密性好,FPGA保密性差。一般情况下,CPLD的功耗要比FPGA大,且集成度越高越明显。可编程逻辑器件的选择原则?(57)答:工艺的选择、芯片资源、封装和速度、IP核资源。举例说明Altera公司可编程逻辑器件的主要产品?Altera公司CPLD器件系列:MAXII系列低成本、低功耗、高密度Altera公司FPGA器件系列:Cyclone系列低成本、低密度CycloneII系列低成本、高密度、低成本DSPFLEX系列经典FPGA结构、中低密度ACEX系列高密度、高性能、适于通信及音频处理应用Stratix系列高密度、高性能、适于高速数字信号处理应用StratixII系列高密度、高性能、增强数字信号处理功能第三章VHDL程序的组成部分?各部分的作用?(60)答:一个完整的VHDL程序包含实体(entity)、结构体(architecture)、配置(configuration)、包集合(package)、库(library)5个部分。实体主要是用于描述外部设备的接口信号;结构体用于描述系统的具体逻辑行为功能;包存放设计使用到的公共的数据类型、常数和子程序等;配置用来从库中选择所需单元来组成系统设计的不同版本;库存放已经编译的实体、结构体、包和配置等。端口模式有哪几种?各模式有何异同?(61)答:端口模式有:in:输入型,此端口为只读型。out:输出型,只能在实体内部对其赋值。inout:双向(输入输出型),既可读也可赋值。buffer:缓冲型,与out相似,但可读。输入仅允许数据流入端口。输出仅允许数据流从实体内部输出。缓冲模式的端口与输出模式的端口类似,只是缓冲模式允许内部引用该端口的信号。双向模式可以代替输入模式、输出模式和缓冲模式。VHDL结构体的描述有哪三种描述风格?分别使用哪些语句?65答:行为描述:常用语句的语句主要有进程、过程和函数。数据流描述:1)并行信号赋值;2)条件信号赋值;3)选择信号赋值。结构描述:元件例化语句。VHDL的库可分为哪五种?哪些在使用前不需要说明?(67)答:IEEE库、STD库(默认库)、面向ASIC的库、WORK库、用户定义库;除了WORK库和STD库外,其它的库在使用前都需要进行说明。子程序定义的位置?子程序包含哪两种类型?有何区别?(课件)答:子程序可以在三个位置定义:程序包、结构体、进程。子程序有两种类型:函数FUNCTION和过程PROCEDURE。VHDL标识符的使用规则?(75)答:(1)标识符由字母(A…Z;a…z)、数字和下划线字符组成。任何标识符必须以英文字母开头。末字符不能为下划线。不允许出现两个连续的下划线。标识符中字母不区分大小写。VHDL定义的保留字(或称关键字)不能用作标识符。VHDL中的注释由两个连续短线(--)开始,直到行尾。VHDL的三种数据对象?使用时的区别?(76课件)答:常量、变量、信号。常量定义语句所允许的设计单元有程序包、实体、结构体、块、进程和子程序;变量是一个局部变量,它只能在进程语句、函数语句和过程语句结构中使用,用作局部数据存储;信号的使用和定义范围是实体、结构体和包集合(程序包)。VHDL中可由用户自定义的数据类型有哪些?80答:可由用户定义的数据类型有:1)枚举类型;2)整数和实数类型;3)数组类型;4)记录类型;5)子类型。什么叫重载操作符?90答:对已存在的操作符重新定义,使其能进行不同类型操作数之间的运算,称为重载操作符。VHDL中顺序语句有哪些?并行语句有哪些?90、100答:常用的顺序描述语句有:变量与信号赋值语句、if语句、case语句、loop语句、next语句、exit语句、子程序、return语句、wait语句、null语句。常用的并发描述语句有下面几类:1)进程描述语句;2)并行信号赋值语句;3)条件信号赋值语句;4)并行过程调用语句和块语句。11.进程语句有什么特点?课件答:进程语句有以下几个方面的特点:进程与进程,或其它并发语句之间可以并发执行;在进程内部的所有语句是按照顺序执行的;进程的启动由其敏感向量表内的敏感向量或者WAIT语句确定;进程与进程,或其它并发语句之间通过传递信号量实现通信的。条件信号赋值语句和选择信号赋值语句使用时有什么不同点,分别与哪类语句等效?课件答:条件测试具有顺序性,各条件语句的范围允许有重叠。类似IF语句。在应用选择信号赋值语句的时候应注意:各条件同时测试,不能有重叠的条件分支。最后条件可为others。否则,其它条件必须能包含表达式的所有可能值。选择信号赋值语句与进程中的case语句等价。块语句的作用?104答:块语句将一系列并行描述语句进行组合,目的是改善并行语句及其结构的可读性。可使结构体层次鲜明,结构明确。元件例化语句的作用?答:元件例化即把低层元件安装(调用)到当前层次设计实体内部的过程。包括:类属参数传递、元件端口映射。用VHDL设计一个4选一多路选择器。答:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmux41ISPORT(a,b,c,d:INSTD_LOGIC;s0:INSTD_LOGIC;s1:INSTD_LOGIC;y:OUTSTD_LOGIC);ENDENTITYmux41;ARCHITECTUREif_mux41OFmux41ISSIGNALs0s1:STD_LOGIC_VECTOR(1DOWNTO0);--定义标准逻辑位矢量数据BEGINs0s1<=s1&s0;--s1相并s0,即s1与s0并置操作PROCESS(s0s1,a,b,c,d)BEGINIFs0s1="00"THENy<=a;ELSIFs0s1="01"THENy<=b;ELSIFs0s1="10"THENy<=c;ELSEy<=d;ENDIF;ENDPROCESS;ENDARCHITECTUREif_mux41;用VHDL的元件例化语句设计一个双2选1多路选择器。答:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmux21ISPORT(a1,a2,a3,s0,s1:INSTD_LOGIC;outy:OUTSTD_LOGIC);ENDENTITYmux21;ARCHITECTUREcase_mux21OFmux21ISSIGNALy:STD_LOGIC;BEGINu1:PROCESS(s0,a1,a2,a3)BEGINCASEs0IS--类似于真值表的case语句WHEN'0'=>y<=a2;WHEN'1'=>y<=a3;WHENOTHERS=>NULL;ENDCASE;ENDPROCESS;u2:PROCESS(s1,a1,a2,a3,y)BEGINCASEs1IS--类似于真值表的case语句WHEN'0'=>outy<=a1;WHEN'1'=>outy<=y;WHENOTHERS=>NULL;ENDCASE;ENDPROCESS;ENDARCHITECTUREcase_mux21;用VHDL的元件例化语句设计一个1位全减器。答:LIBRARYIEEE;--半减器描述USEIEEE.STD_LOGIC_1164.ALL;ENTITYh_subtracterISPORT(a,b:INSTD_LOGIC;Sub,Bro:OUTSTD_LOGIC);END;ARCHITECTUREoneOFh_subtracterISBEGINPROCESS(a,b)BEGINSub<=aXORb;Bro<=(NOTa)ANDb;ENDPROCESS;END;LIBRARYIEEE;--全减器USEIEEE.STD_LOGIC_1164.ALL;ENTITYf_subtracterISPORT(ain,bin,Bro_in:INSTD_LOGIC;Sub_out,Bro_out:OUTSTD_LOGIC);END;ARCHITECTUREoneOFf_subtracterISCOMPONENTh_subtracterPORT(a,b:INSTD_LOGIC;Sub,Bro:OUTSTD_LOGIC);ENDCOMPONENT;SIGNALc,d,e:STD_LOGIC;BEGINu1: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;第四章用VHDL设计一个3/8译码器。libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;entityencoder_387isport(sel:instd_logic_vector(2downtoo);en:instd_logic;code:outstd_logic_vector(7downto0));endencoder_38;architecturertlofencoder_38isbeginprocess(sel,en)beginif(en=’1’)thencaseselisWhen“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;elseCode<=“ZZZZZZZZ”;endif;endprocess;endrtl;用VHDL设计一个D触发器。Libraryieee;Useieee.std_logic_1164.all;EntityfddisPort(clk,d,clr,pre,ce:instd_logic;q:outstd_logic);endfdd;architecturertlofdffissignalq_tmp:std_logic;beginq<=q_tmp;process(clk,clr,pre,c)beginif(clr=’1’)thenq_tmp<=’0’;elsif(pre=’1’)thenq_tmp<=’1’;elsifrising_edge(clk)thenif(ce=’1’)thenq_tmp<=d;elseq_tmp<=q_tmp;endif;endif;endprocess;endrtl;用VHDL设计一个带异步复位和同步使能的十进制计数器。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCNT10ISPORT(CLK,RST,EN:INSTD_LOGIC;CQ:OUTSTD_LOGIC_VECTOR(3DOWNTO0);COUT:OUTSTD_LOGIC);ENDCNT10;ARCHITECTUREbehavOFCNT10ISBEGINPROCESS(CLK,RST,EN)VARIABLECQI:STD_LOGIC_VECTOR(3DOWNTO0);BEGINIFRST='1'THENCQI:=(OTHERS=>'0')--计数器异步复位ELSIFCLK'EVENTANDCLK='1'THEN--检测时钟上升沿IFEN='1'THEN--检测是否允许计数(同步使能)IFCQI<9THENCQI:=CQI+1;--允许计数,检测是否小于9ELSECQI:=(OTHERS=>'0');--大于9,计数值清零ENDIF;ENDIF;ENDIF;IFCQI=9THENCOUT<='1';--计数大于9,输出进位信号ELSE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论