1、1PLD 原理与 EDA 技术 复习提纲一、基本概念1-1 EDA 技术与 ASIC 设计和 FPGA 开发有什么关系? 答:利用 EDA 技术进行电子系统设计的最后目标是完成专用集成电路 ASIC 的设计和实现;FPGA 和 CPLD 是实现这一途径的主流器件。FPGA 和 CPLD 通常也被称为可编程专用IC,或可编程 ASIC。FPGA 和 CPLD 的应用是 EDA 技术有机融合软硬件电子设计技术、SoC(片上系统)和 ASIC 设计,以及对自动设计与自动实现最典型的诠释。1-2 与软件描述语言相比,VHDL 有什么特点? 答:编译器将软件程序翻译成基于某种特定 CPU 的机器代码,这
2、种代码仅限于这种CPU 而不能移植,并且机器代码不代表硬件结构,更不能改变 CPU 的硬件结构,只能被动地为其特定的硬件电路结构所利用。综合器将 VHDL 程序转化的目标是底层的电路结构网表文件,这种满足 VHDL 设计程序功能描述的电路结构,不依赖于任何特定硬件环境;具有相对独立性。综合器在将 VHDL(硬件描述语言)表达的电路功能转化成具体的电路结构网表过程中,具有明显的能动性和创造性,它不是机械的一一对应式的“翻译” ,而是根据设计库、工艺库以及预先设置的各类约束条件,选择最优的方式完成电路结构的设计。l-3 什么是综合? 有哪些类型? 综合在电子设计自动化中的地位是什么? 什么是综合?
3、 答:在电子设计领域中综合的概念可以表示为:将用行为和功能层次表达的电子系统转换为低层次的便于具体实现的模块组合装配的过程。有哪些类型? 答:(1)从自然语言转换到 VHDL 语言算法表示,即自然语言综合。(2)从算法表示转换到寄存器传输级(RegisterTransport Level,RTL),即从行为域到结构域的综合,即行为综合。(3)从 RTL 级表示转换到逻辑门(包括触发器)的表示,即逻辑综合。(4)从逻辑门表示转换到版图表示(ASIC 设计),或转换到 FPGA 的配置网表文件,可称为版图综合或结构综合。综合在电子设计自动化中的地位是什么? 答:是核心地位(见图 1-3) 。综合器
4、具有更复杂的工作环境,综合器在接受 VHDL 程序并准备对其综合前,必须获得与最终实现设计电路硬件特征相关的工艺库信息,以及获得优化综合的诸多约束条件信息;根据工艺库和约束条件信息,将 VHDL 程序转化成电路实现的相关信息。1-4 在 EDA 技术中,自顶向下的设计方法的重要意义是什么? 答:在 EDA 技术应用中,自顶向下的设计方法,就是在整个设计流程中各设计环节逐步求精的过程。1-5 IP 在 EDA 技术的应用和发展中的意义是什么? 答:IP 核具有规范的接口协议,良好的可移植与可测试性,为系统开发提供了可靠的保证。2-1 叙述 EDA 的 FPGA/CPLD 设计流程。 答:1.设计
5、输入(原理图/HDL 文本编辑);2.综合;3.适配;4.时序仿真与功能仿真;5.编程下载;6.硬件测试。2-2 IP 是什么?IP 与 EDA 技术的关系是什么? IP 是什么? 答:IP 是知识产权核或知识产权模块,用于 ASIC 或 FPGA/CPLD 中的预先设计好的电路功能模块。IP 与 EDA 技术的关系是什么 ? 答:IP 在 EDA 技术开发中具有十分重要的地位;与EDA 技术的关系分有软 IP、 固 IP、硬 IP:软 IP 是用 VHDL 等硬件描述语言描述的功能块,并不涉及用什么具体电路元件实现这些功能;软 IP 通常是以硬件描述语言 HDL 源文件的形2式出现。固 IP
6、 是完成了综合的功能块,具有较大的设计深度,以网表文件的形式提交客户使用。硬 IP 提供设计的最终阶段产品:掩模。2-3 叙述 ASIC 的设计方法。 答:ASIC 设计方法,按版图结构及制造方法分有半定制(Semi-custom)和全定制(Full-custom)两种实现方法。全定制方法是一种基于晶体管级的,手工设计版图的制造方法。半定制法是一种约束性设计方式,约束的目的是简化设计,缩短设计周期,降低设计成本,提高设计正确率。半定制法按逻辑实现的方式不同,可再分为门阵列法、标准单元法和可编程逻辑器件法。2-4 FPGA/CPLD 在 ASIC 设计中有什么用途? 答:FPGA/CPLD 在
7、ASIC 设计中,属于可编程 ASIC 的逻辑器件;使设计效率大为提高,上市的时间大为缩短。2-5 简述在基于 FPGA/CPLD 的 EDA 设计流程中所涉及的 EDA 工具,及其在整个流程中的作用。 答:基于 FPGA/CPLD 的 EDA 设计流程中所涉及的 EDA 工具有:设计输入编辑器(作用:接受不同的设计输入表达方式,如原理图输入方式、状态图输入方式、波形输入方式以及 HDL 的文本输入方式。 ) ;HDL 综合器(作用:HDL 综合器根据工艺库和约束条件信息,将设计输入编辑器提供的信息转化为目标器件硬件结构细节的信息,并在数字电路设计技术、化简优化算法以及计算机软件等复杂结体进行
8、优化处理) ;仿真器(作用:行为模型的表达、电子系统的建模、逻辑电路的验证及门级系统的测试) ;适配器(作用:完成目标系统在器件上的布局和布线) ;下载器(作用:把设计结果信息下载到对应的实际器件,实现硬件设计) 。3-1 OLMC(输出逻辑宏单元)有何功能? 说明 GAL 是怎样实现可编程组合电路与时序电路的。 OLMC 有何功能? 答:OLMC 单元设有多种组态,可配置成专用组合输出、专用输入、组合输出双向口、寄存器输出、寄存器输出双向口等。说明 GAL 是怎样实现可编程组合电路与时序电路的? 答:GAL (通用阵列逻辑器件)是通过对其中的 OLMC(输出逻辑宏单元)的编程和三种模式配置(
9、寄存器模式、复合模式、简单模式) ,实现组合电路与时序电路设计的。3-2 什么是基于乘积项的可编程逻辑结构? 答:GAL、CPLD 之类都是基于乘积项的可编程结构;即包含有可编程与阵列和固定的或阵列的 PAL(可编程阵列逻辑)器件构成。3-3 什么是基于查找表的可编程逻辑结构? 答:FPGA(现场可编程门阵列)是基于查找表的可编程逻辑结构。3-4 FPGA 系列器件中的 LAB 有何作用? 答:FPGA(Cyclone/Cyclone II)系列器件主要由逻辑阵列块 LAB、嵌入式存储器块(EAB) 、I/O 单元、嵌入式硬件乘法器和 PLL 等模块构成;其中 LAB(逻辑阵列块)由一系列相邻
10、的 LE(逻辑单元)构成的;FPGA 可编程资源主要来自逻辑阵列块 LAB。3-5 与传统的测试技术相比,边界扫描技术有何优点? 答:使用 BST(边界扫描测试)规范测试,不必使用物理探针,可在器件正常工作时在系统捕获测量的功能数据。克服传统的外探针测试法和“针床”夹具测试法来无法对 IC内部节点无法测试的难题。3-6 解释编程与配置这两个概念。 答:编程:基于电可擦除存储单元的 EEPROM 或 Flash 技术。CPLD 一股使用此技术进3行编程。CPLD 被编程后改变了电可擦除存储单元中的信息,掉电后可保存。电可擦除编程工艺的优点是编程后信息不会因掉电而丢失,但编程次数有限,编程的速度不
11、快。配置:基于 SRAM 查找表的编程单元。编程信息是保存在 SRAM 中的,SRAM 在掉电后编程信息立即丢失,在下次上电后,还需要重新载入编程信息。大部分 FPGA 采用该种编程工艺。该类器件的编程一般称为配置。对于 SRAM 型 FPGA 来说,配置次数无限,且速度快;在加电时可随时更改逻辑;下载信息的保密性也不如电可擦除的编程。3-7 请参阅相关资料,并回答问题:按本章给出的归类方式,将基于乘积项的可编程逻辑结构的 PLD 器件归类为 CPLD;将基于查找表的可编程逻辑结构的 PLD 器什归类为FPGA,那么,APEX 系列属于什么类型 PLD 器件? MAX II 系列又属于什么类型
12、的 PLD 器件?为什么? 答:APEX(Advanced Logic Element Matrix)系列属于 FPGA 类型 PLD 器件;编程信息存于 SRAM 中。MAX II 系列属于 CPLD 类型的 PLD 器件 ;编程信息存于 EEPROM 中。5-1 归纳利用 Quartus II 进行 VHDL 文本输入设计的流程:从文件输入一直到 SignalTap II 测试。答:1 建立工作库文件夹和编辑设计文件;2 创建工程;3 编译前设置;4 全程编译;5 时序仿真;6 引脚锁定;7 配置文件下载;8 打开 SignalTap II 编辑窗口;9 调入 SignalTap II 的
13、待测信号;10 SignalTap II 参数设置;11 SignalTap II 参数设置文件存盘;12 带有 SignalTap II 测试信息的编译下载; 13 启动 SignalTap II 进行采样与分析;14 SignalTap II 的其他设置和控制方法。6-1 什么是固有延时?什么是惯性延时?答:固有延时(Inertial Delay)也称为惯性延时,固有延时的主要物理机制是分布电容效应。6-2 是什么?在 VHDL 中, 有什么用处? 是什么? 答:在 VHDL 仿真和综合器中,默认的固有延时量(它在数学上是一个无穷小量) ,被称为 延时。在 VHDL 中, 有什么用处?答:
14、在 VHDL 信号赋值中未给出固有延时情况下,VHDL仿真器和综合器将自动为系统中的信号赋值配置一足够小而又能满足逻辑排序的延时量;使并行语句和顺序语句中的并列赋值逻辑得以正确执行。6-4 说明信号和变量的功能特点,以及应用上的异同点。答:变量:变量是一个局部量,只能在进程和子程序中使用。变量不能将信息带出对它做出定义的当前结构。变量的赋值是一种理想化的数据传输,是立即发生的,不存在任何延时行为。变量的主要作用是在进程中作为临时的数据存储单元。信号:信号是描述硬件系统的基本数据对象,其性质类似于连接线;可作为设计实体中并行语句模块间的信息交流通道。信号不但可以容纳当前值,也可以保持历史值;与触
15、发器的记忆功能有很好的对应关系。6-5 在 VHDL 设计中,给时序电路清零( 复位)有两种力方法,它们是什么?解:设 Q 定义成信号,一种方法: Q0) ;其中 OTHERS=0不需要给出信号 Q 的位宽度,即可对 Q 清零。6-7 什么是重载函数?重载算符有何用处?如何调用重载算符函数 ?答:(1)什么是重载函数? 根据操作对象变换处理功能。(2)重载算符有何用处? 用于两个不同类型的操作数据自动转换成同种数据类型,并进行运算处理。4(3)如何调用重载算符函数?采用隐式方式调用,无需事先声明。7-2 LPM_ROM、LPM_RAM、LPM_FIFO 等模块与 FPGA 中嵌入的 EAB、E
16、SB、M4K 有怎样的联系? 答:ACEXlK 系列为 EAB;APEX20K 系列为 ESB;Cyclone 系列为 M4K一、EDA 名词解释1CPLD:复杂可编程逻辑器件2HDL:硬件描述语言3LUT:查找表4ASIC:专用集成电路5SOC:单片电子系统(或者片上系统)6VHDL:超高速集成电路硬件描述语言7FPGA:现场可编程门阵列8RTL:寄存器传输级 9JTAG:联合测试活动组织10EAB:嵌入式阵列块11:SOPC:片上可编程系统12ISP:在系统可编程技术13ICR:在线可重配置技术14IP:知识产权核15IEEE:电子电气工程师协会16LPM:参数可定制宏模块库17EDA :
17、电子设计自动化18FSM:有限状态机三、简答题:1简述 VHDL 程序的基本结构?答:VHDL 程序是由以下几个部分组成的:(1)LIBRARY (库)部分(2)PACKAGE (程序包)部分(3)ENTITY (实体)部分(4)ARCHITECTURE (结构体)部分(5)CONFIGURATION (配置)部分2CPLD 和 FPGA 有什么差异?在实际应用中各有什么特点?答:差异:(1)CPLD:复杂可编程逻辑器件,FPGA:现场可编程门阵列;(2)CPLD:基于乘积项技术的确定型结构,FPGA:基于查找表技术的统计型结构;(3)CPLD:5500 50000 门,FPGA:1K 10M
18、 门 。实际应用中各自的特点:CPLD 适用于逻辑密集型中小规模电路,编程数据不丢失,延迟固定,时序稳定; FPGA 适用于数据密集型大规模电路,需用专用的 ROM 进行数据配置,布线灵活,但时序特性不稳定。3设计项目的验证有哪几种方法?它们具体含义?答:包括功能仿真、时序仿真和定时分析。功能仿真又称前仿真,是在不考虑器件延时的理想情况下的一种项目验证方法,通过功能仿真来验证一个项目的逻辑功能是否正确。时序仿真又称模拟仿真或后仿真,是在考虑设计项目具体适配器件的各种5延时的情况下的一种项目验证方法。时序仿真不仅测试逻辑功能,还测试目标器件最差情况下的时间关系。定时分析可以分析各个信号到输出端的
19、时间延迟,可以给出延迟矩阵和最高工作频率,还可分析信号的建立、保持时间。4结构体的描述方式有几种,各有什么特点?答:结构体的描述方式有: Structure(结构)描述、 Date Flow(数据流)描述 、Behavior Process(行为)描述 。Structure 描述描述该设计单元的硬件结构。Date Flow 描述它是类似于寄存器传输级的方式,描述数据的传输和变换。Behavior Process 描述只描述电路的功能或者电路行为(输入输出间转换的行为) 。5解释编程与配置这两个概念?答:编程:基于电可擦除存储单元的 EEPROM 或 Flash 技术。CPLD 一股使用此技术进
20、行编程。CPLD 被编程后改变了电可擦除存储单元中的信息,掉电后可保存。电可擦除编程工艺的优点是编程后信息不会因掉电而丢失,但编程次数有限,编程的速度不快。配置:基于 SRAM 查找表的编程单元。编程信息是保存在 SRAM 中的,SRAM在掉电后编程信息立即丢失,在下次上电后,还需要重新载入编程信息。大部分 FPGA 采用该种编程工艺。该类器件的编程一般称为配置。对于 SRAM 型 FPGA来说,配置次数无限,且速度快;在加电时可随时更改逻辑;下载信息的保密性也不如电可擦除的编程。6简述层次结构设计的优点?答:层次化设计是一种模块化的设计方法,设计人员对设计的描述由上至下逐步展开,符合常规的思
21、维习惯;由于顶层设计与具体的器件和工艺无关,因此易于在各种可编程逻辑器件中间进行移植。层次化的设计方法可以使多个设计人员同时进行操作。有利于对设计任务进行合理的分配并用系统工程的方法对设计进行管理。7简述 CPLD 的结构?答:CPLD 的基本结构由可编程逻辑阵列(LAB) 、可编程 I/O 控制模块和可编程内部连线(PIA)等三部分组成。 1)可编程逻辑阵列(LAB) 可编程逻辑阵列又若干个可编程逻辑宏单元(Logic Macro Cell,LMC)组成, LMC 内部主要包括与阵列、或阵列、可编程触发器和多路选择器等电路,能独立地配置为时序或组合工作方式。 2)可编程 I/O 单元(IOC
22、)CPLD 的 I/O 单元(Input/Output Cell,IOC) ,是内部信号到 I/O 引脚的接口部分。根据器件和功能的不同,各种器件的结构也不相同。由于阵列型器件通常只有少数几个专用输入端,大部分端口均为 I/O 端,而且系统的输入信号通常需要锁存。因此 I/O 常作为一个独立单元来处理。3)可编程内部连线(PIA)可编程内部连线的作用是在各逻辑宏单元之间以及逻辑宏单元和 I/O 单元之间提供互连网络。各逻辑宏单元通过可编程连线阵列接收来自输入端的信号,并将宏单元的信号送目的地。这种互连机制有很大的灵活性,它允许在不影响6引脚分配的情况下改变内部的设计。8简述 FPGA 的结构?
23、答:FPGA 由可编程逻辑块(CLB ) 、输入/输出模块(IOB)及可编程互连资源(PIR)等三种可编程电路和一个 SRAM 结构的配置存储单元组成。1)可编程逻辑块(CLB) CLB 主要由逻辑函数发生器、触发器、数据选择器等电路组成。2)输入/输出模块(IOB)IOB 主要由输入触发器、输入缓冲器和输出触发/锁存器、输出缓冲器组成,每个 IOB 控制一个引脚,它们可被配置为输入、输出或双向 I/O 功能。3)可编程互连资源(PIR)PIR 由许多金属线段构成,这些金属线段带有可编程开关,通过自动布线实现各种电路的连接。实现 FPGA 内部的 CLB 和 CLB 之间、CLB 和 IOB
24、之间的连接。9什么是边界扫描技术?其原理是什么? 与传统的测试技术相比,边界扫描技术有何优点?答:边界扫描测试技术(Boundary Scan Testing,BST) ,主要用于解决可编程逻辑器件芯片的测试问题。这种测试可在器件正常工作时捕获功能数据。器件的边界扫描单元能够迫使逻辑追踪引脚信号,或是从引脚或器件核心逻辑信号中捕获数据。强行加入的测试数据串行地移入边界扫描单元,捕获的数据串行移出并在器件外部同预期的结果进行比较。标准的边界扫描测试只需要五根信号线,即 TDI(测试数据输入) 、TDO(测试数据输出) 、TRST(测试复位输入)TMS(测试模式选择)和 TCK(测试时钟输入) ,
25、TRST 能够对电路板上所有支持边界扫描的芯片内部逻辑和边界管脚进行测试。应用边界扫描技术能够增强芯片、电路板甚至系统的可测试性。使用 BST(边界扫描测试)规范测试,不必使用物理探针,可在器件正常工作时在系统捕获测量的功能数据。克服传统的外探针测试法和“针床”夹具测试法来无法对 IC 内部节点无法测试的难题。四、VHDL 程序分析处理4-1 画出与以下实体描述对应的原理图符号元件:ENTITY buf3s IS -实体 1:三态缓冲器PORT(input:IN STD_LOGIC; -输入端enable:IN STD_LOGIC; -使能端output:OUT STD_LOGIC); -输出
26、端END buf3s ;buf3sinput outputenable7ENTITY mux21 IS -实体 2: 2 选 1 多路选择器PORT(in0, in1,sel: IN STD_LOGIC;output:OUT STD_LOGIC);END mux21;mux21in0outputin1sel6-6 哪一种复位方法必须将复位信号放在敏感信号表中?给出这两种电路的 VHDL 描述。解:边沿触发复位信号要将复位信号放在进程的敏感信号表中。(1)边沿触发复位信号.ARCHITECTURE bhv 0F DFF3 ISSIGNAL QQ:STD_LOGIC;BEGINPROCESS(RS
27、T)BEGINIF RSTEVENT AND RST=1 THENQQ0);END IF;END PROCESS;Q10);END IF;END PROCESS;Q1 y y y y NULL ;END CASE;END PROCESS;END ARCHITECTURE case_mux41;3.编写一个 8 线3 线优先编码器的 VHDL 程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY coder IS12PORT(a:IN STD_LOGIC_VECTOR(7 DOWNTO 0);y:OUT STD_LOGIC_VECTOR(2 DOW
28、NTO 0);END coder;ARCHITECTURE one OF coder ISBEGINPROCESS(a)BEGINIF a(7)=0 THEN yyyyyyyyyy0,others=1);elsif indata=“001“ then y0,others=1);elsif indata=“010“ then y0,others=1);elsif indata=“011“ then y0,others=1);elsif indata=“100“ then y0,others=1);elsif indata=“101“ then y0,others=1);elsif indata=
29、“110“ then y0,others=1);elsif indata=“111“ then y0,others=1);else yX);end if;end if;end process;(练习:仿照此例自己设计 2 线-4 线的译码器 VHDL 程序)5、设计一个异步清除十进制加法计数器的 VHDL 程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY cnt10y ISPORT(clr:IN STD_LOGIC;clk:IN STD_LOGIC;cnt:BUFFER INTEGER RANGE 9 DOWNTO 0);END cnt10y
30、;ARCHITECTURE one OF cnt10y ISBEGINPROCESS(clr,clk)14BEGINIF clr=0 THEN cntain,b=bin,co=d,so=e);u2 : h_adder port map(a=e,b=cin,co=f,so=sum);u3 : or2a port map(d,f,cout);end one;7、 给出 1 位全减器的 VHDL 描述;最终实现 8 位全减器。要求:1)首先设计 1 位半减器,然后用例化语句将它们连接起来,图 4-20 中 h_suber 是半减器,diff 是输出差(diff=x-y),s_out 是借位输出(s_
31、out=1,xxin,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;七、考试题型1、选择题(20 分)2、EDA 名词解释(10 分)3、简答题(15 分)4、判断题(5 分)5、VHDL 程序分析和处理(10 分)6、VHDL 程序填空题(10 分)7、阅读下列 VHDL 程序,画出结构体的原理图(RTL 级) (10 分)8、VHDL 应用设计(20 分)八、复习参考书:1、 EDA 技术与与应用 (第 3 版) (江国强主编,电子工业出版社)2、 EDA 技术实用教程 (第 3 版) (潘松主编 科学出版社)