中国高校课件下载中心 》 教学资源 》 大学文库

《EDA技术》课程作业习题集及解答

文档信息
资源类别:文库
文档格式:PDF
文档页数:10
文件大小:245.75KB
团购合买:点击进入团购
内容简介
《EDA技术》课程作业习题集及解答
刷新页面文档预览

习题集及解答第1章1-1EDA技术与ASIC设计和FPGA开发有什么关系?答:利用EDA技术进行电子系统设计的最后目标是完成专用集成电路ASIC的设计和实现:FPGA和CPLD是实现这一途径的主流器件。FPGA和CPLD通常也被称为可编程专用IC,或可编程ASIC。FPGA和CPLD的应用是EDA技术有机融合软硬件电子设计技术、SoC(片上系统)和ASIC设计,以及对自动设计与自动实现最典型的诠释。1-2与软件描述语言相比,VHDL有什么特点?答:编译器将软件程序翻译成基于某种特定CPU的机器代码,这种代码仅限于这种CPU而不能移植,并且机器代码不代表硬件结构,更不能改变CPU的硬件结构,只能被动地为其特定的硬件电路结构所利用。综合器将VHDL程序转化的目标是底层的电路结构网表文件,这种满足VHDL设计程序功能描述的电路结构,不依赖于任何特定硬件环境:具有相对独立性。综合器在将VHDL(硬件描述语言)表达的电路功能转化成具体的电路结构网表过程中,具有明显的能动性和创造性,它不是机械的一一对应式的“翻译”,而是根据设计库、工艺库以及预先设置的各类约束条件,选择最优的方式完成电路结构的设计。1-3什么是综合?有哪些类型?综合在电子设计自动化中的地位是什么?什么是综合?答:在电子设计领域中综合的概念可以表示为:将用行为和功能层次表达的电子系统转换为低层次的便于具体实现的模块组合装配的过程。有哪些类型?答:(1)从自然语言转换到VHDL语言算法表示,即自然语言综合。(2)从算法表示转换到寄存器传输级(RegisterTransportLevel,RTL),即从行为域到结构域的综合,即行为综合。(3)从RTL级表示转换到逻辑门包括触发器)的表示,即逻辑综合。(4)从逻辑门表示转换到版图表示(ASIC设计),或转换到FPGA的配置网表文件,可称为版图综合或结构综合。综合在电子设计自动化中的地位是什么?答:是核心地位。综合器具有更复杂的工作环境,综合器在接受VHDL程序并准备对其综合前,必须获得与最终实现设计电路硬件特征相关的工艺库信息,以及获得优化综合的诸多约束条件信息;根据工艺库和约束条件信息,将VHDL程序转化成电路实现的相关信息。1-4在EDA技术中,自顶向下的设计方法的重要意义是什么?答:在EDA技术应用中,自顶向下的设计方法,就是在整个设计流程中各设计环节逐步求精的过程。1-5IP在EDA技术的应用和发展中的意义是什么?答:IP核具有规范的接口协议,良好的可移植与可测试性,为系统开发提供了可靠的保证。1-6叙述EDA的FPGA/CPLD设计流程。答:1.设计输入(原理图/HDL文本编辑);2.综合;3.适配;4.时序仿真与功能仿真;5.编程下载:6.硬件测试。1-7IP是什么?IP与EDA技术的关系是什么?IP是什么?答:IP是知识产权核或知识产权模块,用于ASIC或FPGA/CPLD中的预先设计好的电路功能模块。IP与EDA技术的关系是什么?答:IP在EDA技术开发中具有十分重要的地位;与EDA技术的关系分有软IP、固IP、硬IP:软IP是用VHDL等硬件描述语言描述的功能块,并不涉及用什么具体电路元件实现这些功能;软IP通常是以硬件描述语言HDL源文件的形式出现。固IP是完成了综合的功能1

1 习题集及解答 第 1 章 1-1 EDA 技术与 ASIC 设计和 FPGA 开发有什么关系? 答:利用 EDA 技术进行电子系统设计的最后目标是完成专用集成电路 ASIC 的设计和实现; FPGA 和 CPLD 是实现这一途径的主流器件。FPGA 和 CPLD 通常也被称为可编程专用 IC, 或可编程 ASIC。FPGA 和 CPLD 的应用是 EDA 技术有机融合软硬件电子设计技术、SoC(片 上系统)和 ASIC 设计,以及对自动设计与自动实现最典型的诠释。 1-2 与软件描述语言相比,VHDL 有什么特点? 答:编译器将软件程序翻译成基于某种特定 CPU 的机器代码,这种代码仅限于这种 CPU 而 不能移植,并且机器代码不代表硬件结构,更不能改变 CPU 的硬件结构,只能被动地为其 特定的硬件电路结构所利用。综合器将 VHDL 程序转化的目标是底层的电路结构网表文件, 这种满足 VHDL 设计程序功能描述的电路结构,不依赖于任何特定硬件环境;具有相对独 立性。综合器在将 VHDL(硬件描述语言)表达的电路功能转化成具体的电路结构网表过程 中,具有明显的能动性和创造性,它不是机械的一一对应式的“翻译”,而是根据设计库、 工艺库以及预先设置的各类约束条件,选择最优的方式完成电路结构的设计。 l-3 什么是综合?有哪些类型?综合在电子设计自动化中的地位是什么? 什么是综合? 答:在电子设计领域中综合的概念可以表示为:将用行为和功能层次表达的电 子系统转换为低层次的便于具体实现的模块组合装配的过程。 有哪些类型? 答:(1)从自然语言转换到 VHDL 语言算法表示,即自然语言综合。(2)从算法表示转换到寄 存器传输级(RegisterTransport Level,RTL),即从行为域到结构域的综合,即行为综合。(3) 从 RTL 级表示转换到逻辑门(包括触发器)的表示,即逻辑综合。(4)从逻辑门表示转换到版 图表示(ASIC 设计),或转换到 FPGA 的配置网表文件,可称为版图综合或结构综合。 综合在电子设计自动化中的地位是什么? 答:是核心地位。综合器具有更复杂的工作环境,综合器在接受 VHDL 程序并准备对其综 合前,必须获得与最终实现设计电路硬件特征相关的工艺库信息,以及获得优化综合的诸多 约束条件信息;根据工艺库和约束条件信息,将 VHDL 程序转化成电路实现的相关信息。 1-4 在 EDA 技术中,自顶向下的设计方法的重要意义是什么? 答:在 EDA 技术应用中,自顶向下的设计方法,就是在整个设计流程中各设计环节逐步求 精的过程。 1-5 IP 在 EDA 技术的应用和发展中的意义是什么? 答:IP 核具有规范的接口协议,良好的可移植与可测试性,为系统开发提供了可靠的保证。 1-6 叙述 EDA 的 FPGA/CPLD 设计流程。 答:1.设计输入(原理图/HDL 文本编辑);2.综合;3.适配;4.时序仿真与功能仿真;5.编程下 载;6.硬件测试。 1-7 IP 是什么?IP 与 EDA 技术的关系是什么? IP 是什么? 答:IP 是知识产权核或知识产权模块,用于 ASIC 或 FPGA/CPLD 中的预先设计 好的电路功能模块。 IP 与 EDA 技术的关系是什么? 答:IP 在 EDA 技术开发中具有十分重要的地位;与 EDA 技术的关系分有软 IP、固 IP、硬 IP:软 IP 是用 VHDL 等硬件描述语言描述的功能块,并不涉及用什么具体电路元件实现这 些功能;软 IP 通常是以硬件描述语言 HDL 源文件的形式出现。固 IP 是完成了综合的功能

块,具有较大的设计深度,以网表文件的形式提交客户使用。硬IP提供设计的最终阶段产品:掩模。1-8叙述ASIC的设计方法。答:ASIC设计方法,按版图结构及制造方法分有半定制(Semi-custom)和全定制(Full-custom)两种实现方法。全定制方法是一种基于晶体管级的,手工设计版图的制造方法。半定制法是一种约束性设计方式,约束的目的是简化设计,缩短设计周期,降低设计成本,提高设计正确率。半定制法按逻辑实现的方式不同,可再分为门阵列法、标准单元法和可编程逻辑器件法。1-9FPGA/CPLD在ASIC设计中有什么用途?答:FPGA/CPLD在ASIC设计中,属于可编程ASIC的逻辑器件;使设计效率大为提高,上市的时间大为缩短。1-10简述在基于FPGA/CPLD的EDA设计流程中所涉及的EDA工具,及其在整个流程中的作用。答:基于FPGA/CPLD的EDA设计流程中所涉及的EDA工具有:设计输入编辑器(作用:接受不同的设计输入表达方式,如原理图输入方式、状态图输入方式、波形输入方式以及HDL的文本输入方式。):HDL综合器(作用:HDL综合器根据工艺库和约束条件信息,将设计输入编辑器提供的信息转化为目标器件硬件结构细节的信息,并在数字电路设计技术、化简优化算法以及计算机软件等复杂结体进行优化处理):仿真器(作用:行为模型的表达、电子系统的建模、逻辑电路的验证及门级系统的测试);适配器(作用:完成目标系统在器件上的布局和布线):下载器(作用:把设计结果信息下载到对应的实际器件,实现硬件设计)。第2章2-1OLMC(输出逻辑宏单元)有何功能?说明GAL是怎样实现可编程组合电路与时序电路的。OLMC有何功能?答:OLMC单元设有多种组态,可配置成专用组合输出、专用输入、组合输出双向口、寄存器输出、寄存器输出双向口等。说明GAL是怎样实现可编程组合电路与时序电路的?答:GAL(通用阵列逻辑器件)是通过对其中的OLMC(输出逻辑宏单元)的编程和三种模式配置(寄存器模式、复合模式、简单模式,实现组合电路与时序电路设计的。2-2什么是基于乘积项的可编程逻辑结构?答:GAL、CPLD之类都是基于乘积项的可编程结构:即包含有可编程与阵列和固定的或阵列的PAL(可编程阵列逻辑)器件构成。2-3什么是基于查找表的可编程逻辑结构?答:FPGA(现场可编程门阵列)是基于查找表的可编程逻辑结构。2-4FPGA系列器件中的LAB有何作用?答:FPGA(Cyclone/CycloneII)系列器件主要由逻辑阵列块LAB、嵌入式存储器块(EAB)、I/O单元、嵌入式硬件乘法器和PLL等模块构成:其中LAB(逻辑阵列块)由一系列相邻的LE(逻辑单元)构成的:FPGA可编程资源主要来自逻辑阵列块LAB。2-5与传统的测试技术相比,边界扫描技术有何优点?答:使用BST(边界扫描测试)规范测试,不必使用物理探针,可在器件正常工作时在系统捕获测量的功能数据。克服传统的外探针测试法和“针床”夹具测试法来无法对IC内部2

2 块,具有较大的设计深度,以网表文件的形式提交客户使用。硬 IP 提供设计的最终阶段产 品:掩模。 1-8 叙述 ASIC 的设计方法。 答:ASIC 设计方法,按版图结构及制造方法分有半定制(Semi-custom)和全定制(Full-custom) 两种实现方法。 全定制方法是一种基于晶体管级的,手工设计版图的制造方法。 半定制法是一种约束性设计方式,约束的目的是简化设计,缩短设计周期,降低设计成本, 提高设计正确率。半定制法按逻辑实现的方式不同,可再分为门阵列法、标准单元法和可编 程逻辑器件法。 1-9 FPGA/CPLD 在 ASIC 设计中有什么用途? 答:FPGA/CPLD 在 ASIC 设计中,属于可编程 ASIC 的逻辑器件;使设计效率大为提高, 上市的时间大为缩短。 1-10 简述在基于 FPGA/CPLD 的 EDA 设计流程中所涉及的 EDA 工具,及其在整个流程中 的作用。 答:基于 FPGA/CPLD 的 EDA 设计流程中所涉及的 EDA 工具有:设计输入编辑器(作用: 接受不同的设计输入表达方式,如原理图输入方式、状态图输入方式、波形输入方式以及 HDL 的文本输入方式。);HDL 综合器(作用:HDL 综合器根据工艺库和约束条件信息,将 设计输入编辑器提供的信息转化为目标器件硬件结构细节的信息,并在数字电路设计技术、 化简优化算法以及计算机软件等复杂结体进行优化处理);仿真器(作用:行为模型的表达、 电子系统的建模、逻辑电路的验证及门级系统的测试);适配器(作用:完成目标系统在器 件上的布局和布线);下载器(作用:把设计结果信息下载到对应的实际器件,实现硬件设 计)。 第 2 章 2-1 OLMC(输出逻辑宏单元)有何功能?说明 GAL 是怎样实现可编程组合电路与时序电 路的。 OLMC 有何功能? 答:OLMC 单元设有多种组态,可配置成专用组合输出、专用输入、组合 输出双向口、寄存器输出、寄存器输出双向口等。 说明 GAL 是怎样实现可编程组合电路与时序电路的? 答:GAL(通用阵列逻辑器件)是通 过对其中的 OLMC(输出逻辑宏单元)的编程和三种模式配置(寄存器模式、复合模式、 简单模式),实现组合电路与时序电路设计的。 2-2 什么是基于乘积项的可编程逻辑结构? 答:GAL、CPLD 之类都是基于乘积项的可编程结构;即包含有可编程与阵列和固定的或阵 列的 PAL(可编程阵列逻辑)器件构成。 2-3 什么是基于查找表的可编程逻辑结构? 答:FPGA(现场可编程门阵列)是基于查找表的可编程逻辑结构。 2-4 FPGA 系列器件中的 LAB 有何作用? 答:FPGA(Cyclone/Cyclone II)系列器件主要由逻辑阵列块 LAB、嵌入式存储器块(EAB)、 I/O 单元、嵌入式硬件乘法器和 PLL 等模块构成;其中 LAB(逻辑阵列块)由一系列相邻 的 LE(逻辑单元)构成的;FPGA 可编程资源主要来自逻辑阵列块 LAB。 2-5 与传统的测试技术相比,边界扫描技术有何优点? 答:使用 BST(边界扫描测试)规范测试,不必使用物理探针,可在器件正常工作时在系 统捕获测量的功能数据。克服传统的外探针测试法和“针床”夹具测试法来无法对 IC 内部

节点无法测试的难题。2-6解释编程与配置这两个概念。答:编程:基于电可擦除存储单元的EEPROM或Flash技术。CPLD一股使用此技术进行编程。CPLD被编程后改变了电可擦除存储单元中的信息,掉电后可保存。电可擦除编程工艺的优点是编程后信息不会因掉电而丢失,但编程次数有限,编程的速度不快。配置:基于SRAM查找表的编程单元。编程信息是保存在SRAM中的,SRAM在掉电后编程信息立即丢失,在下次上电后,还需要重新载入编程信息。大部分FPGA采用该种编程工艺。该类器件的编程一般称为配置。对于SRAM型FPGA来说,配置次数无限,且速度快;在加电时可随时更改逻辑;下载信息的保密性也不如电可擦除的编程。2-7请参阅相关资料,并回答问题:按本章给出的归类方式,将基于乘积项的可编程逻辑结构的PLD器件归类为CPLD;将基于查找表的可编程逻辑结构的PLD器什归类为FPGA,那么,APEX系列属于什么类型PLD器件?MAXII系列又属于什么类型的PLD器件?为什么?答:APEX(AdvancedLogicElementMatrix)系列属于FPGA类型PLD器件;编程信息存于SRAM中。MAXI系列属于CPLD类型的PLD器件;编程信息存于EEPROM中。第3章3-1:画出与下例实体描述对应的原理图符号元件:答案ENTITYbuf3sIS实体1:三态缓冲器PORT(input:INSTDLOGIC-输入端-使能端enable:INSTD LOGICoutput:OUTSTD_LOGIC)--输出端ENDbuf3xENTITYmux21IS-实体2:2选1多路选择器PORT (inO, inl, sel:IN STD LOGIC; output:OUT STD_LOGIC);(1)②Ino1InputMux21OutputBufssOutputIn02SelEnable图3-1-22选1多路选择器图3-1-1三态缓冲器3-2图3-30所示的是4选1多路选择器,试分别用IF_THEN语句和CASE语句的表达方式写出此电路的VHDL程序。选择控制的信号1和sO的数据类型为STD_LOGICVECTOR;当sl='0',s0='0'sl='0',s0=1';s1='1',s0='0'和s1='1',s0='1分别执行y<=a、y<=b、y<=c、y<=d。3

3 节点无法测试的难题。 2-6 解释编程与配置这两个概念。 答:编程:基于电可擦除存储单元的 EEPROM 或 Flash 技术。CPLD 一股使用此技术进行编 程。CPLD 被编程后改变了电可擦除存储单元中的信息,掉电后可保存。电可擦除编程工艺 的优点是编程后信息不会因掉电而丢失,但编程次数有限,编程的速度不快。 配置:基于 SRAM 查找表的编程单元。编程信息是保存在 SRAM 中的,SRAM 在掉电后编 程信息立即丢失,在 下次上电后,还需要重新载入编程信息。大部分 FPGA 采用该种编程工艺。该类器件的编 程一般称为配置。对于 SRAM 型 FPGA 来说,配置次数无限,且速度快;在加电时可随时 更改逻辑;下载信息的保密性也不如电可擦除的编程。 2-7 请参阅相关资料,并回答问题:按本章给出的归类方式,将基于乘积项的可编程逻辑结 构的 PLD 器件归类为 CPLD;将基于查找表的可编程逻辑结构的 PLD 器什归类为 FPGA, 那么,APEX 系列属于什么类型 PLD 器件? MAX II 系列又属于什么类型的 PLD 器件?为什 么? 答:APEX(Advanced Logic Element Matrix)系列属于 FPGA 类型 PLD 器件;编程信息存于 SRAM 中。MAX II 系列属于 CPLD 类型的 PLD 器件;编程信息存于 EEPROM 中。 第 3 章 3-1:画出与下例实体描述对应的原理图符号元件: 答案 ENTITY buf3s IS - 实体 1:三态缓冲器 PORT (input : IN STD_LOGIC - 输入端 enable : IN STD_LOGIC - 使能端 output : OUT STD_LOGIC ) - 输出端 END buf3x ENTITY mux21 IS -实体 2:2 选 1 多路选择器 PORT (in0, in1, sel : IN STD_LOGIC; output : OUT STD_LOGIC); 图 3-1-2 2 选 1 多路选择器 图 3-1-1 三态缓冲器 3-2. 图 3-30 所示的是 4 选 1 多路选择器,试分别用 IF_THEN 语句和 CASE 语句的表达方 式 写 出 此 电 路 的 VHDL 程 序 。 选 择 控 制 的 信 号 s1 和 s0 的 数 据 类 型 为 STD_LOGIC_VECTOR;当 s1='0',s0='0';s1='0',s0='1';s1='1',s0='0'和 s1='1',s0='1' 分别执行 y<=a、y<=b、y<=c、y<=d

5O5SOS1回D图3-304选1多路选择器BCDCBAa答案LIBRARY IEEE;USEIEEE.STDLOGIC1164.ALL;ENTITYMUX41ISPORT(s:INSTDLOGICVECTOR(1DOWNTOO):--输入选择信号a,b,c,d:INSTD_LOGIC;--输入信号y:OUTSTD_LOGIC);--输出端END ENTITY;ARCHITECTUREARTOFMUX41ISBEGINPROCESS(s)BEGINIF (S="00") THEN yyyyyNULL;ENDCASE;END PROCESS;END ART;4

4 图 3-30 4 选 1 多路选择器 答案 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY MUX41 IS PORT(s:IN STD_LOGIC_VECTOR(1 DOWNTO 0); -输入选择信号 a,b,c,d:IN STD_LOGIC; -输入信号 y:OUT STD_LOGIC);-输出端 END ENTITY; ARCHITECTURE ART OF MUX41 IS BEGIN PROCESS(s) BEGIN IF (S="00") THEN y y y y yNULL; END CASE; END PROCESS; END ART;

3-3.图3-31所示的是双2选1多路选择器构成的电路MUXK,对于其中MUX21A,当s=0和"1'时,分别有y<=a和y<="b'。试在一个结构体中用两个进程来表达此电路,每个进程中用CASE语句描述一个2选1多路选择器MUX21A。u2u1MUXKa1MUX21AMUX21Aa2atmpa3Houty2bSO5图3-31双2选1多路选择器构成的电路MUXK答案LIBRARYIEEE;USEIEEE.STDLOGIC1164.ALL:ENTITYMUX221IS输入信PORT(al,a2,a3:INSTD LOGIC VECTOR(1DOWNTO0);--SsO,sl:INSTDLOGIC;Outy:OUTSTDLOGIC);--输出端ENDENTITY:ARCHITECTUREONEOFMUX221ISSIGNALtmp:STD_LOGIC;BEGINPR01:PROCESS(sO)BEGINIFs0=”0”THENtmp<=a2;ELSE tmp<=a3; END IF;END PROCESS;PR02:PROCESS(s1)BEGINIFsl=”o” THENouty<=al,ELSE outy<=tmp; END IF;ENDPROCESS;ENDARCHITECTUREONE;ENDCASE;3-10说明信号和变量的功能特点,以及应用上的异同点。答:变量:变量是一个局部量,只能在进程和子程序中使用。变量不能将信息带出对它做出定义的当前结构。变量的赋值是一种理想化的数据传输,是立即发生的,不存在任何延时行为。变量的主要作用是在进程中作为临时的数据存储单元。信号:信号是描述硬件系统的基本数据对象,其性质类似于连接线:可作为设计实体中并行语句模块间的信息交流通道。信号不但可以容纳当前值,也可以保持历史值:与触发器的记忆功能有很好的对应关系。3-12哪一种复位方法必须将复位信号放在敏感信号表中?给出这两种电路的VHDL描述。解:边沿触发复位信号要将复位信号放在进程的敏感信号表中。(1)边沿触发复位信号…5

5 3-3. 图 3-31 所示的是双 2 选 1 多路选择器构成的电路 MUXK,对于其中 MUX21A,当 s='0' 和'1'时,分别有 y<='a'和 y<='b'。试在一个结构体中用两个进程来表达此电路,每个进程 中用 CASE 语句描述一个 2 选 1 多路选择器 MUX21A。 图 3-31 双 2 选 1 多路选择器构成的电路 MUXK .答案 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY MUX221 IS PORT(a1,a2,a3:IN STD_LOGIC_VECTOR(1 DOWNTO 0);- 输 入 信 号 s0,s1:IN STD_LOGIC; outy:OUT STD_LOGIC);-输出端 END ENTITY; ARCHITECTURE ONE OF MUX221 IS SIGNAL tmp : STD_LOGIC; BEGIN PR01:PROCESS(s0) BEGIN IF s0=”0” THEN tmp<=a2; ELSE tmp<=a3; END IF; END PROCESS; PR02:PROCESS(s1) BEGIN IF s1=”0” THEN outy<=a1; ELSE outy<=tmp; END IF; END PROCESS; END ARCHITECTURE ONE; END CASE; 3-10 说明信号和变量的功能特点,以及应用上的异同点。 答:变量:变量是一个局部量,只能在进程和子程序中使用。变量不能将信息带出对它做出 定义的当前结构。变量的赋值是一种理想化的数据传输,是立即发生的,不存在任何延时行 为。变量的主要作用是在进程中作为临时的数据存储单元。 信号:信号是描述硬件系统的基本数据对象,其性质类似于连接线;可作为设计实体中并行 语句模块间的信息交流通道。信号不但可以容纳当前值,也可以保持历史值;与触发器的记 忆功能有很好的对应关系。 3-12 哪一种复位方法必须将复位信号放在敏感信号表中?给出这两种电路的 VHDL 描述。 解:边沿触发复位信号要将复位信号放在进程的敏感信号表中。 (1)边沿触发复位信号

ARCHITECTUREbhvOFDFF3ISSIGNALQQ:STDLOGIC:BEGINPROCESS(RST)BEGINIFRSTEVENTANDRST=I'THENQQ“0’ );END IF;ENDPROCESS;Q1“0')ENDIF;ENDPROCESS;Q1<=QQ;END:第4章4-13设计一个7人表决电路,参加表决者7人,同意为1,不同意为0,同意者过半则表决通过,绿指示灯亮;表决不通过则红指示灯亮。grernA79图4-13-17人表决电路其中一位全加器的原理图如图4-13-2所示。co口图4-13-2一位全加器的原理图6

6 ARCHITECTURE bhv 0F DFF3 IS SIGNAL QQ:STD_LOGIC; BEGIN PROCESS(RST) BEGIN IF RST’EVENT AND RST=‘1' THEN QQ‘0’); END IF; END PROCESS; Q1‘0’); END IF; END PROCESS; Q1<=QQ; END; . 第 4 章 4-13 设计一个 7 人表决电路,参加表决者 7 人,同意为 1,不同意为 0,同 意者过半则表决通过,绿指示灯亮;表决不通过则红指示灯亮。 图 4-13-1 7 人表决电路 其中一位全加器的原理图如图 4-13-2 所示。 图 4-13-2 一位全加器的原理图

第5章5-1仿照例5-1,将例5-4单进程用两个进程,即一个时序进程,一个组合进程表达出来。解:【例5-4】的改写如下:LIBRARY IEEE;USEIEEE.STDLOGIC_1164.ALL;ENTITYMOOREIISPORT(DATAIN:INSTD_LOGIC_VECTOR(IDOWNTOO);CLK,RST:INSTD LOGICQ:OUTSTD_LOGIC_VECTOR(3DOWNTO0);END MOORE1;ARCHITECTUREbehaVOFMOOREIISTYPE ST_TYPEIS (ST0,ST1,ST2,ST3,ST4);SIGNALCSTN ST:STTYPE:BEGINREG:PROCESS(CLK,RST)BEGINIFRST=1'THENC_STIFDATAIN="10"THENN ST IF DATAIN="11" THEN N_STIF DATAIN="01"THEN N_STIFDATAIN="00"THENN_STIFDATAIN="11"THENN_STN_ST<=STO;ENDCASE;ENDPROCESSCOM;END behav,5-5在不改变原代码功能的条件下用两种方法改写例5-2,使其输出的控制信号(ALE、START、OE、LOCK)没有毛刺。方法1:将输出信号锁存后输出;方法2:使用状态码直接输出型状态机,并比较这三种状态机的特点。解:"【例5-2】根据图5-4状态图,采用Moore型状态机,设计ADC0809采样控制器"方法1(将输出控制信号锁存后输出)的VHDL程序代码如下:LIBRARY IEEE;USEIEEE.STDLOGIC_1164.ALL;ENTITY ADCINT ISPORT(D:INSTDLOGIC_VECTOR(7DOWNTO0);--来自0809转换好的8位数CLK:INSTDLOGIC--状态机工作时钟7

7 第 5 章 5-1 仿照例 5-1,将例 5-4 单进程用两个进程,即一个时序进程,一个组合进程表达出来。 解:【例 5-4】的改写如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY MOORE1 IS PORT(DATAIN: IN STD_LOGIC_VECTOR(1 DOWNTO 0); CLK,RST: IN STD_LOGIC; Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END MOORE1; ARCHITECTURE behav OF MOORE1 IS TYPE ST_TYPE IS (ST0,ST1,ST2,ST3,ST4); SIGNAL C_ST,N_ST: ST_TYPE; BEGIN REG: PROCESS(CLK,RST) BEGIN IF RST='1' THEN C_ST IF DATAIN="10" THEN N_ST IF DATAIN="11" THEN N_ST IF DATAIN="01" THEN N_ST IF DATAIN="00" THEN N_STIF DATAIN="11" THEN N_ST N_ST<=ST0; END CASE; END PROCESS COM; END behav; 5-5 在不改变原代码功能的条件下用两种方法改写例 5-2,使其输出的控制信号(ALE、 START、OE、LOCK)没有毛刺。方法 1:将输出信号锁存后输出;方法 2:使用状态码直 接输出型状态机,并比较这三种状态机的特点。 解:"【例 5-2】根据图 5-4 状态图,采用 Moore 型状态机,设计 ADC0809 采样控制器 " 方法 1(将输出控制信号锁存后输出)的 VHDL 程序代码如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY ADCINT IS PORT(D:IN STD_LOGIC_VECTOR(7 DOWNTO 0); -来自 0809 转换好的 8 位 数 CLK: IN STD_LOGIC; -状态机工作时钟

EOC:INSTDLOGIC--转换状态指示,低电平表示正在转换ALE:OUTSTDLOGIC;--8个模拟信号通道地址锁存信号START:OUTSTDLOGIC;--转换开始信号OE:OUTSTDLOGIC:-数据输出三态控制信号ADDA:OUTSTDLOGIC;-信号通道最低位控制信号LOCKO:OUTSTD_LOGIC;-观察数据锁存时钟Q:OUTSTDLOGIC_VECTOR(7DOWNTO0)):--8位数据输出END ADCINT;ARCHITECTUREbehavOFADCINTISTYPEstatesISsto,st1,St2,st3,st4);--定义各状态子类型SIGNAL current state,next state: states:=sto,SIGNALREGL:STD_LOGIC VECTOR(7DOWNTOO);SIGNALLOCK:STD_LOGIC;--转换后数据输出锁存时钟信号SIGNALALEO:STDLOGIC;--8个模拟信号通道地址锁存信号SIGNALSTARTO:STDLOGIC:--转换开始信号SIGNALOEO:STD_LOGIC;--数据输出三态控制信号BEGINADDAALE0ALE0ALE0nextstatenext_statenext_state<=stO;ENDCASE;ENDPROCESS COM;REG:PROCESS(CLK)BEGINIF(CLK'EVENTANDCLK=1)THENcurrent_state<=next_state;ENDIF;ENDPROCESSREG:--由信号currentstate将当前状态值带出此进程:LATCHI:PROCESS(LOCK)-此进程中,在LOCK的上升沿,将转换好的数据锁入BEGINIFLOCK=I'ANDLOCK'EVENTTHENREGL<=D;END IF;ENDPROCESS LATCH1:ENDbehav,8

8 EOC:IN STD_LOGIC;-转换状态指示,低电平表示正在转换 ALE: OUT STD_LOGIC; -8 个模拟信号通道地址锁存信号 START: OUT STD_LOGIC; -转换开始信号 OE: OUT STD_LOGIC; -数据输出三态控制信号 ADDA: OUT STD_LOGIC;-信号通道最低位控制信号 LOCK0: OUT STD_LOGIC; -观察数据锁存时钟 Q: OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); -8 位数据输出 END ADCINT; ARCHITECTURE behav OF ADCINT IS TYPE states IS(st0,st1,St2,st3,st4);-定义各状态子类 型 SIGNAL current_state,next_state: states:=st0; SIGNAL REGL: STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL LOCK: STD_LOGIC;-转换后数据输出锁存时钟信号 SIGNAL ALE0: STD_LOGIC; -8 个模拟信号通道地址锁存信 号 SIGNAL START0: STD_LOGIC; -转换开始信号 SIGNAL OE0: STD_LOGIC; -数据输出三态控制信号 BEGIN ADDA ALE0 ALE0 ALE0 next_state next_state next_state<=st0; END CASE; END PROCESS COM; REG: PROCESS(CLK) BEGIN IF (CLK'EVENT AND CLK='1') THEN current_state<=next_state; END IF; END PROCESS REG; -由信号 current_state 将当前状态值带出此进程: LATCH1: PROCESS(LOCK)-此进程中,在 LOCK 的上升沿,将转换好的数据锁入 BEGIN IF LOCK='1' AND LOCK'EVENT THEN REGL<=D; END IF; END PROCESS LATCH1; END behav;

第6章6-1LPM_ROM、LPMRAM、LPMFIFO等模块与FPGA中嵌入的EAB、ESB、M4K有怎样的联系?答:ACEXIK系列为EAB:APEX20K系列为ESB;Cyclone系列为M4K第7章7-3.用with-select-when语句描述4个16位至一个16位输出的4选1多路选择器。library ieee,use ieee.std_logic_1164.all,use ieee.std_logic_unsigned.all;entity mux4 isport(do,d1,d2,d3:in std_logic;a0,al:in std_logic,q:out std_logic);end mux4;architecturebehavioral ofmux4issignal sel :integer,beginwith sel selectq<= d0 after 10ns when 0, dl after 10ns when 1, d2 after 10ns when 2,d3 after 10ns when 3,x'after 10ns when other,sel<=0whena0="0'andal="0'elsel whena0="1'andal="0"else2when a0=0andal="1'else3whena0="1'andal=1else4end behavioral;7-4.为什么说一条并行赋值语句可以等效成一个进程?如果是这样的话,该语句怎么实现敏感信号的检测?答:因为信号赋值语句的共同点是赋值目标必须都是信号。所有赋值语句与其它并行语句一样在结构体内的执行是同时发生的。与它们的书写顺序没有关系。所以每一信号赋值语句都相当于一条缩写的进程语句。由于这条语句的所有输入信号都被隐性地列入此缩写进程的敏感信号表中。故任何信号的变化都将相关并行语句的赋值操。这样就实现了敏感信号的检测。7-6.比较CASE语句和WITHSELECT语句,叙述它们的异同点?答:相同点:CASE语句中各子句的条件不能有重叠,必须包容所有的条件;WITH_SECLECT语句也不充许选择值有重叠现象,也不充许选择值盖不全的情况。另外,两者对子句各选择值的测试都具有同步性,都依赖于敏感信号的变化。不同点:CASE语句只能在进程中使用,至少包含一个条件语句,可以有多个赋值目标;WITHSECLECT语句根据满足的条件,对信号进行赋值,其赋值目标只有一个,且必须是信号。第8章8-3.说明端口模式INOUT和BUFFER有何异同点。答:BUFFER端口:缓冲模式,具有读功能的输出模式,即信号输出到实体外部,但同时9

9 第 6 章 6-1 LPM_ROM、LPM_RAM、LPM_FIFO 等模块与 FPGA 中嵌入的 EAB、ESB、M4K 有怎样的联系? 答:ACEXlK 系列为 EAB;APEX20K 系列为 ESB;Cyclone 系列为 M4K 第 7 章 7-3. 用 with-select-when 语句描述 4 个 16 位至一个 16 位输出的 4 选 1 多路选择器。 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity mux4 is port(d0,d1,d2,d3 :in std_logic; a0,a1 :in std_logic; q :out std_logic); end mux4; architecture behavioral of mux4 is signal sel :integer; begin with sel select q <= d0 after 10ns when 0, d1 after 10ns when 1, d2 after 10ns when 2, d3 after 10ns when 3, ‘x’ after 10ns when other; sel <= 0 when a0 =‘0’ and a1 =‘0’ else 1 when a0 =‘1’ and a1 =‘0’ else 2 when a0 =‘0’ and a1 =‘1’ else 3 when a0 =‘1’ and a1 =‘1’ else 4; end behavioral; 7-4. 为什么说一条并行赋值语句可以等效成一个进程?如果是这样的话,该语句怎么实现敏 感信号的检测? 答:因为信号赋值语句的共同点是赋值目标必须都是信号。所有赋值语句与其它并行语句一 样在结构体内的执行是同时发生的。与它们的书写顺序没有关系。所以每一信号赋值语句都 相当于一条缩写的进程语句。由于这条语句的所有输入信号都被隐性地列入此缩写进程的敏 感信号表中。故任何信号的变化都将相关并行语句的赋值操。这样就实现了敏感信号的检测。 7-6. 比较 CASE 语句和 WITH_SELECT 语句,叙述它们的异同点? 答:相同点:CASE 语句中各子句的条件不能有重叠,必须包容所有的条件;WITH_SECLECT 语句也不允许选择值有重叠现象,也不允许选择值涵盖不全的情况。另外,两者对子句各选 择值的测试都具有同步性,都依赖于敏感信号的变化。不同点:CASE 语句只能在进程中使 用,至少包含一个条件语句,可以有多个赋值目标;WITH_SECLECT 语句根据满足的条件, 对信号进行赋值,其赋值目标只有一个,且必须是信号。 第 8 章 8-3. 说明端口模式 INOUT 和 BUFFER 有何异同点。 答: BUFFER 端口:缓冲模式,具有读功能的输出模式,即信号输出到实体外部,但同时

也在内部反馈使用,不充许作为双向端口使用。而INOUT端口:双向模式,即信号的流通是双向的,既可以对此端口赋值,也可以通过此端口读入数据。8-5.在以下的数据类型中,VHDL综合器支持哪些类型?STRING,TIME,REAL,BIT答:VHDL支持BIT类型,其他属于用户定义的数据类型不能综合8-10.判断下列VHDL标识符是否合法,如果有误则指出原因:2#0101010#16#0FA#,10#12F#,8#789#,8#356#,D100%74HC245,174HC574,CLR/RESET,IN4/SCLKl,答:都不合法:16#OFA#10#12F#8#7989#8#356#2#0101010#以上不合法,不能以数字开头和存在#符号。74HC245不能应用数字开头,174HC574作为扩展标志合法,CLR/RESET含/字符和不能以关键字为标志符。8-12.函数与过程的设计与功能上有什么区别?调用上有什么区别?(1)、函数语句用于什么场合?其所带参数是怎样定义的?函数语句相当于其他高级语言中的函数。语句中圆括号内所有参数都是输入参数或者输入信号。因此,在括号内指定端口方向“IN”可以省略。FUNCTION的输入值由调用者复制到输入参数中,若无特别制定在FUNCTION的语句中按常数处理(2)过程语句用于什么场合?其所带参数是怎样定义的?过程语句与其他高级语句中的子程序相当,他的参数可以使输入也可以是输出,即过程中的输入输出参数都应列在紧跟过程名的括号中(3)试说明函数调用与过程调用的区别?在过程语句中,当过程语句执行结束后,再过程内所传递的输入和输出参数值将复制到调用者的信号或变量中,此时输入输出参数若无特别指定按变量对待,将值传给变量。若作为信号使用则在过程参数定义时要指明是信号而函数的输入值由调用者复制到输入参数中,若无特别指定,按常数处理。过程调用本身是一条完整调用语句,函数调用只有赋值给某一对象时才构成一条完整语句。10

10 也在内部反馈使用,不允许作为双向端口使用。而 INOUT 端口:双向模式,即信号的流通 是双向的,既可以对此端口赋值,也可以通过此端口读入数据。 8-5. 在以下的数据类型中,VHDL 综合器支持哪些类型? STRING, TIME, REAL, BIT 答:VHDL 支持 BIT 类型,其他属于用户定义的数据类型不能综合 8-10. 判断下列 VHDL 标识符是否合法,如果有误则指出原因: 16#0FA#, 10#12F#, 8#789#, 8#356#, 2#0101010# 74HC245 , \74HC574\, CLR/RESET, \IN 4/SCLK\, D100% 答:都不合法: 16#OFA# 10#12F# 8#7989# 8#356# 2#0101010# 以上不合法,不能以数字开头和存在#符 号。74HC245 不能应用数字开头,\74HC574\作为扩展标志合法,CLR/RESET 含/ 字符和不 能以关键字为标志符。 8-12. 函数与过程的设计与功能上有什么区别?调用上有什么区别? (1)、函数语句用于什么场合?其所带参数是怎样定义的? 函数语句相当于其他高级语言中的函数。语句中圆括号内所有参数都是输入参数或者 输入信号。因此,在括号内指定端口方向“IN”可以省略。FUNCTION 的输入值由调用者 复制到输入参数中,若无特别制定在 FUNCTION 的语句中按常数处理 (2)过程语句用于什么场合?其所带参数是怎样定义的? 过程语句与其他高级语句中的子程序相当,他的参数可以使输入也可以是输出,即过程 中的输入输出参数都应列在紧跟过程名的括号中 (3)试说明函数调用与过程调用的区别? 在过程语句中,当过程语句执行结束后,再过程内所传递的输入和输出参数值将复制 到调用者的信号或变量中,此时输入输出参数若无特别指定按变量对待,将值传给变量。若 作为信号使用则在过程参数定义时要指明是信号而函数的输入值由调用者复制到输入参数 中,若无特别指定,按常数处理。过程调用本身是一条完整调用语句,函数调用只有赋值给 某一对象时才构成一条完整语句

已到末页,全文结束
刷新页面下载完整文档
VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
相关文档