EDA复习题答案_第1页
EDA复习题答案_第2页
EDA复习题答案_第3页
EDA复习题答案_第4页
EDA复习题答案_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、08EDA复习题一、单项选择题:(20分)大规模可编程器件主要有FPGA、CPLD两类,下列对CPLD结构与工作原理的描述中,正确的是_C_。A. CPLD即是现场可编程逻辑器件的英文简称; B. CPLD是基于查找表结构的可编程逻辑器件;C. 早期的CPLD是从GAL的结构扩展而来;D. 在Altera公司生产的器件中,FLEX10K 系列属CPLD结构;综合是EDA设计流程的关键步骤,综合就是把抽象设计层次中的一种表示转化成另一种表示的过程;在下面对综合的描述中,_C_是错误的。综合就是将电路的高级语言转化成低级的,可与FPGA / CPLD的基本结构相映射的网表文件;综合可理解为,将软件

2、描述与给定的硬件结构用电路网表文件表示的映射过程,并且这种映射关系不是唯一的;综合是纯软件的转换过程,与器件硬件结构无关;为实现系统的速度、面积、性能的要求,需要对综合加以约束,称为综合约束。 IP核在EDA技术和开发中具有十分重要的地位,IP分软IP、固IP、硬IP;下列所描述的IP核中,对于硬IP的正确描述为_B_。 提供用VHDL等硬件描述语言描述的功能块,但不涉及实现该功能块的具体电路;提供设计的最终产品-掩膜;以网表文件的形式提交用户,完成了综合的功能块;都不是。基于EDA软件的FPGA / CPLD设计流程为:原理图/HDL文本输入_B_综合适配_编程下载硬件测试。功能仿真时序仿真

3、逻辑综合配置引脚锁定AB.C.D.下面对利用原理图输入设计方法进行数字电路系统设计,那一种说法是不正确的_B_。原理图输入设计方法直观便捷,但不适合完成较大规模的电路系统设计;原理图输入设计方法无法对电路进行功能描述;原理图输入设计方法一般是一种自底向上的设计方法;原理图输入设计方法也可进行层次化设计。在VHDL语言中,下列对进程(PROCESS)语句的语句结构及语法规则的描述中,正确的是_A_。PROCESS为一无限循环语句;敏感信号发生更新时启动进程,执行完成后,等待下一次进程启动。敏感信号参数表中,应列出进程中使用的所有输入信号;进程由说明部分、结构体部分、和敏感信号参数表三部分组成;当

4、前进程中声明的信号也可用于其他进程。嵌套使用IF语句,其综合结果可实现_A_。带优先级且条件相与的逻辑电路;条件相或的逻辑电路;三态控制电路;双向控制电路。电子系统设计优化,主要考虑提高资源利用率减少功耗-即面积优化,以及提高运行速度-即速度优化;指出下列那种方法不属于速度优化:_A_。A. 资源共享B. 流水线设计寄存器配平D. 关键路径法在一个VHDL设计中idata是一个信号,数据类型为integer,下面哪个赋值语句是不正确的_D_。idata = 16#20#;idata = 32;idata = 16#A#E1;idata = B#1010#;10.下列EDA软件中,哪一不具有时序

5、仿真功能:_D_。Max+Plus IIQuartus IIModelSimSynplify单项选择题:(20分)11.可编程器件主要有FPGA、CPLD两类,下列对CPLD结构与工作原理的描述中,正确的是_CD_。A. CPLD是基于查找表结构的可编程逻辑器件;B. CPLD即是现场可编程逻辑器件的英文简称;C. 早期的CPLD是从GAL的结构扩展而来;D. 在Xilinx公司生产的器件中,XC9500系列属CPLD结构;综合是EDA设计流程的关键步骤,综合就是把抽象设计层次中的一种表示转化成另一种表示的过程;在下面对综合的描述中,_A_是正确的。综合就是将电路的高级语言转化成低级的,可与F

6、PGA / CPLD的基本结构相映射的网表文件;综合是纯软件的转换过程,与器件硬件结构无关; 为实现系统的速度、面积、性能的要求,需要对综合加以约束,称为强制综合。综合可理解为,将软件描述与给定的硬件结构用电路网表文件表示的映射过程,并且这种映射关系是唯一的;IP核在EDA技术和开发中具有十分重要的地位,IP分软IP、固IP、硬IP;下列所描述的IP核中,对于硬IP的正确描述为_D_。 提供用VHDL等硬件描述语言描述的功能块,但不涉及实现该功能块的具体电路;提供设计的最总产品-模型库;以网表文件的形式提交用户,完成了综合的功能块;都不是。基于EDA软件的FPGA / CPLD设计流程为:功能

7、仿真_D_适配时序仿真编程下载硬件测试。原理图/HDL文本输入 时序仿真逻辑综合配置引脚锁定AB. C.D. 下面对利用原理图输入设计方法进行数字电路系统设计,那一种说法是不正确的_D_。原理图输入设计方法直观便捷,但不适合完成较大规模的电路系统设计;原理图输入设计方法一般是一种自底向上的设计方法;原理图输入设计方法无法对电路进行功能描述; 原理图输入设计方法也可进行层次化设计。在VHDL语言中,下列对进程(PROCESS)语句的语句结构及语法规则的描述中,不正确的是_D_。PROCESS为一无限循环语句;敏感信号发生更新时启动进程,执行完成后,等待下一次进程启动。敏感信号参数表中,不一定要列

8、出进程中使用的所有输入信号;进程由说明部分、结构体部分、和敏感信号三部分组成;当前进程中声明的变量不可用于其他进程。嵌套使用IF语句,其综合结果可实现_A_。带优先级且条件相与的逻辑电路;条件相或的逻辑电路;三态控制电路;双向控制电路。电子系统设计优化,主要考虑提高资源利用率减少功耗-即面积优化,以及提高运行速度-即速度优化;指出下列那种方法不属于速度优化:_B_。A.流水线设计B. 串行化关键路径法D. 寄存器配平在一个VHDL设计中idata是一个信号,数据类型为integer,数据范围0 to 127,下面哪个赋值语句是正确的_C_。idata := 32;idata = 16#A0#;

9、idata = 16#7#E1;idata := B#1010#;10.下列EDA软件中,哪一不具有逻辑综合功能:_B_。Max+Plus IIModelSimQuartus IID.Synplify一、单项选择题:(20分)IP核在EDA技术和开发中具有十分重要的地位;提供用VHDL等硬件描述语言描述的功能块,但不涉及实现该功能块的具体电路的IP核为_。DA .瘦IP B.固IP C.胖IP D.都不是综合是EDA设计流程的关键步骤,在下面对综合的描述中,_是错误的。D综合就是把抽象设计层次中的一种表示转化成另一种表示的过程;综合就是将电路的高级语言转化成低级的,可与FPGA / CPLD的

10、基本结构相映射的网表文件;为实现系统的速度、面积、性能的要求,需要对综合加以约束,称为综合约束;综合可理解为一种映射过程,并且这种映射关系是唯一的,即综合结果是唯一的。大规模可编程器件主要有FPGA、CPLD两类,下列对FPGA结构与工作原理的描述中,正确的是_C_。FPGA全称为复杂可编程逻辑器件; FPGA是基于乘积项结构的可编程逻辑器件;基于SRAM的FPGA器件,在每次上电后必须进行一次配置;在Altera公司生产的器件中,MAX7000系列属FPGA结构。进程中的信号赋值语句,其信号更新是_C_。按顺序完成;比变量更快完成;在进程的最后完成;D.都不对。VHDL语言是一种结构化设计语

11、言;一个设计实体(电路模块)包括实体与结构体两部分,结构体描述_。B器件外部特性;器件的内部功能;器件的综合约束;器件外部特性与内部功能。不完整的IF语句,其综合结果可实现_。AA. 时序逻辑电路B. 组合逻辑电路C. 双向电路D. 三态控制电路子系统设计优化,主要考虑提高资源利用率减少功耗(即面积优化),以及提高运行速度(即速度优化);指出下列哪些方法是面积优化_。B流水线设计资源共享逻辑优化串行化寄存器配平关键路径法A. B. C. D. 下列标识符中,_是不合法的标识符。BA. State0B. 9moonC. Not_Ack_0D. signall关于VHDL中的数字,请找出以下数字中

12、最大的一个:_。A2#1111_1110#8#276#10#170#16#E#E1下列EDA软件中,哪一个不具有逻辑综合功能:_。BA.Max+Plus IIB.ModelSimC.Quartus IID.Synplify一、单项选择题:(20分)下列那个流程是正确的基于EDA软件的FPGA / CPLD设计流程:BA. 原理图/HDL文本输入适配综合功能仿真编程下载硬件测试B. 原理图/HDL文本输入功能仿真综合适配编程下载硬件测试C. 原理图/HDL文本输入功能仿真综合编程下载适配硬件测试;D. 原理图/HDL文本输入功能仿真适配编程下载综合硬件测试综合是EDA设计流程的关键步骤,综合就是

13、把抽象设计层次中的一种表示转化成另一种表示的过程;在下面对综合的描述中,_是错误的。CA. 综合就是将电路的高级语言转化成低级的,可与FPGA / CPLD的基本结构相映射的网表文件;B. 为实现系统的速度、面积、性能的要求,需要对综合加以约束,称为综合约束;C. 综合是纯软件的转换过程,与器件硬件结构无关;D. 综合可理解为,将软件描述与给定的硬件结构用电路网表文件表示的映射过程,并且这种映射关系不是唯一的。 CPLD的可编程是主要基于什么结构:。DA .查找表(LUT);B. ROM可编程; C. PAL可编程;D. 与或阵列可编程; 4.IP核在EDA技术和开发中具有十分重要的地位,以H

14、DL方式提供的IP被称为:。CA. 硬IP;B. 固IP;C. 软IP;D. 都不是;流水线设计是一种优化方式,下列哪一项对资源共享描述正确_。CA. 面积优化方法,不会有速度优化效果B. 速度优化方法,不会有面积优化效果C. 面积优化方法,可能会有速度优化效果D. 速度优化方法,可能会有面积优化效果在VHDL语言中,下列对时钟边沿检测描述中,错误的是_。DA. if clkevent and clk = 1 thenB. if falling_edge(clk) then C. if clkevent and clk = 0 thenD.if clkstable and not clk =

15、1 then状态机编码方式中,其中_占用触发器较多,但其实现比较适合FPGA的应用CA. 状态位直接输出型编码B. 顺序编码C. 一位热码编码D. 以上都不是8 子系统设计优化,主要考虑提高资源利用率减少功耗(即面积优化),以及提高运行速度(即速度优化);指出下列那种方法是速度优化_。AA. 流水线设计B. 资源共享C. 逻辑优化D. 串行化不完整的IF语句,其综合结果可实现_。AA. 时序电路B. 双向控制电路C. 条件相或的逻辑电路D. 三态控制电路10在一个VHDL设计中Idata是一个信号,数据类型为std_logic_vector,试指出下面那个赋值语句是错误的。DA. idata

16、= “00001111”B. idata = b”0000_1111”;C. idata = X”AB”D. idata = 16”01”;二、EDA名词解释,写出下列缩写的中文(或者英文)含义:(10分)CPLD:复杂可编程逻辑器件HDL:硬件描述语言JTAG: 联合测试行动小组(边界扫描)ASIC:专用集成电路SOC:片上系统二、EDA名词解释,写出下列缩写的中文(或者英文)含义:(14分)SOPC: 可编程片上系统;LUT:查找表;JTAG:联合行动测试组;GAL:通用阵列逻辑;EAB:嵌入式阵列快;IP:知识产权(包);HDL:硬件描述语言;二、EDA名词解释,写出下列缩写的中文(或者

17、英文)含义:(14分)LPM参数可定制宏模块库RTL寄存器传输级UART串口(通用异步收发器)ISP在系统编程IEEE电子电气工程师协会ASIC专用集成电路LAB逻辑阵列块二、EDA名词解释,写出下列缩写的中文(或者英文)含义:(10分)SOC单芯片系统FPGA现场可编程门阵列LUT查找表EDA电子设计自动化Synthesis综合三、VHDL程序填空:(10分)下面程序是带异步复位、同步置数和移位使能的8位右移移位寄存器的VHDL描述,试补充完整。library ieee;use IEEE.STD_LOGIC_1164 .all;entity sreg8b isport (clk, rst :

18、 in std_logic; load,en : in std_logic; din : in _STD_LOGIC_VECTOR(7 downto 0); qb : out std_logic);end sreg8b;architecture behav of SREG8B issignal reg8: std_logic_vector( 7 downto 0);beginprocess (clk, RST , load, en)begin if rst=1 then 异步清零 reg8 0 ;elsif clkevent and clk=1 then 边沿检测 if load = 1 th

19、en 同步置数 reg8 = din; elsif en=1 then 移位使能 reg8(6 downto 0) = reg8(7 doento1) ; end if;end if;end process;qb = _reg8_; 输出最低位end behav;三、VHDL程序填空:(10分)下面程序是n输入与门的VHDL描述,试补充完整。_ ieee;use _.all;entity andn is_ (n : integer);- 类属参数声明port (a : in std_logic_vector( _ downto 0); c : out std_logic);end;_ beha

20、v of _ is- 结构体声明beginprocess (_)_ int : std_logic;- 变量声明beginint := _;- 变量赋初值for I in alength 1 downto 0 loop- 循环判断if a(i) = 0 thenint := 0;end if;end loop;c = _;- 输出判断结果end process;end behav;三、VHDL程序填空:(10分)LIBRARY IEEE;- 8位分频器程序设计USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY P

21、ULSE IS PORT ( CLK: IN STD_LOGIC; D: IN STD_LOGIC_VECTOR (7 DOWNTO 0); FOUT: OUT STD_LOGIC );END;ARCHITECTURE one OF PULSE IS SIGNAL FULL : STD_LOGIC;BEGINP_REG: PROCESS(CLK)VARIABLE CNT8 : STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINIF CLKEVENT AND CLK = 1 THEN IF CNT8 = 11111111 THEN CNT8 := D; -当CNT8计数计满时,

22、输入数据D被同步预置给计数器CNT8 FULL = 1; -同时使溢出标志信号FULL输出为高电平 ELSE CNT8 := CNT8 + 1; -否则继续作加1计数 FULL = 0; -且输出溢出标志信号FULL为低电平 END IF;END IF;END PROCESS P_REG;P_DIV: PROCESS(FULL)VARIABLE CNT2 : STD_LOGIC;BEGINIF FULLEVENT AND FULL = 1 THEN CNT2 = NOT CNT2; -如果溢出标志信号FULL为高电平,D触发器输出取反 IF CNT2 = 1 THEN FOUT = 1; EL

23、SE FOUT = 0; END IF; END IF; END PROCESS P_DIV;END;三、VHDL程序填空:(10分)下面程序是一个10线4线优先编码器的VHDL描述,试补充完整。LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL;ENTITY coder IS PORT ( din : IN STD_LOGIC_VECTOR(9 DOWNTO 0); output : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) );END coder;ARCHITECTURE behav OF CODER IS SIGNAL SIN :

24、STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PROCESS (DIN) BEGIN IF (din(9)=0) THEN SIN = 1001 ; ELSIF (din(8)=0) THEN SIN = 1000 ; ELSIF (din(7)=0) THEN SIN = 0111 ; ELSIF (din(6)=0) THEN SIN = 0110 ; ELSIF (din(5)=0) THEN SIN = 0101 ; ELSIF (din(4)=0) THEN SIN = 0100 ; ELSIF (din(3)=0) THEN SIN = 0011 ; EL

25、SIF (din(2)=0) THEN SIN = 0010 ; ELSIF (din(1)=0) THEN SIN = 0001 ; ELSE SIN = “0000” ; END IF; END PROCESS ; Output = sin ;END behav;四、VHDL程序改错:(10分)仔细阅读下列程序,回答问题LIBRARY IEEE;- 1USE IEEE.STD_LOGIC_1164.ALL;- 2ENTITY LED7SEG IS- 3PORT (A : IN STD_LOGIC_VECTOR(3 DOWNTO 0);- 4CLK : IN STD_LOGIC;- 5LED

26、7S : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);- 6END LED7SEG;- 7ARCHITECTURE one OF LED7SEG IS- 8SIGNAL TMP : STD_LOGIC;- 9BEGIN- 10SYNC : PROCESS(CLK, A)- 11BEGIN- 12IF CLKEVENT AND CLK = 1 THEN- 13TMP LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S = 1111111四、VHDL程序改错:(10分)本题程序为EDA

27、实验中的示例程序sch.vhd,仔细阅读程序,回答问题。1.对该程序进行编译时出现错误提示:“VHDL Design File “sch” must contain an entity of the same name.”这是什么原因?如何修改?library ieee;-1use ieee.std_logic_1164.all;-2entity schk is-3port (din, clk, clr: in std_logic;- 串行输入数据位/工作时钟/复位信号-4ab: out std_logic_vector(3 downto 0)- 检测结果输出-5);-6end schk;-7

28、architecture bhv of schk is-8signal q : integer range 0 to 8;-9signal d : std_logic_vector(7 downto 0);- 8位待检测预置数-10begin-11d = 11100101;- 8位待检测预置数-12process (clk, clr)-13begin-14if clr = 1 then q if din = d(7) then q = 1; else q if din = d(6) then q = 2; else q if din = d(5) then q = 3; else q if d

29、in = d(4) then q = 4; else q if din = d(3) then q = 5; else q if din = d(2) then q = 6; else q if din = d(1) then q = 7; else q if din = d(0) then q = 8; else q q = 0;-26end case;-27end if;-28end process;-29process (q)-30begin-31if q = 8 thenab = 1010;-32elseab = 1011;-33end if;-34end process;-35end

30、 bhv;-36在上述程序代码中存在两处错误,编译时出现如下提示,试修改错误:Error: Line 12: File f:edaschk.vhd: VHDL syntax error: unexpected signal “d” in Concurrent Statement PartError: Line 29:File f:edaschk.vhd: VHDL syntax error: if statement must have END IF, but found PROCESS instead错误1行号:11 程序改为:d = 11100101;错误2行号:16 程序改为:elsei

31、f clkevent and clk = 1 then2.修改问题1的错误后,如果编译时出现“Cant open VHDL “WORK” ”这样的错误提示。这又是什么原因,如何修改?四、VHDL程序改错:(10分)01LIBRARY IEEE ;02USE IEEE.STD_LOGIC_1164.ALL ;03USE IEEE.STD_LOGIC_UNSIGNED.ALL;04ENTITY LED7CNT IS05PORT ( CLR: IN STD_LOGIC;06CLK : IN STD_LOGIC;07LED7S : OUT STD_LOGIC_VECTOR(6 DOWNTO 0) )

32、;08END LED7CNT; 09ARCHITECTURE one OF LED7CNT IS10SIGNAL TMP : STD_LOGIC_VECTOR(3 DOWNTO 0);11BEGIN 12CNT:PROCESS(CLR,CLK)13BEGIN 14IF CLR = 1 THEN15TMP = 0;16ELSE IF CLKEVENT AND CLK = 1 THEN17TMP LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S 0);34END CASE;35END PROCESS;36END on

33、e; 在程序中存在两处错误,试指出,并说明理由:提示:在MAX+PlusII 10.2上编译时报出的第一条错误为:Error:Line 15: File */led7cnt.vhd: Type error: type in waveform element must be “std_logic_vector”第 15 行, 错误:整数0不能直接赋值给TMP矢量改正:TMP 0);第 16 行, 错误:ELSE IF 缺少一条对应的END IF语句改正:将ELSE IF 改为关键字ELSIF四、VHDL程序改错:(10分)仔细阅读下列程序,回答问题1LIBRARY IEEE;2USE IEEE.

34、STD_LOGIC_1164.ALL;34ENTITY CNT4 IS 5 PORT ( CLK : IN STD_LOGIC ;6 Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ; 7END CNT4; 8ARCHITECTURE bhv OF CNT4 IS9 SIGNAL Q1 : STD_LOGIC_VECTOR(3 DOWNTO 0); 10BEGIN 11 PROCESS (CLK) BEGIN12 IF RISING_EDGE(CLK) begin 13 IF Q1 15 THEN14 Q1 = Q1 + 1 ; 15 ELSE 16 Q1 0); 1

35、7 END IF;18 END IF; 19 END PROCESS ;20 Q = Q1;21END bhv;22在程序中存在两处错误,试指出,并说明理由:在MAX+PlusII中编译时,提示的第一条错误为:Error: Line 12: File e:myworktestcnt4.vhd: VHDL syntax error: If statement must have THEN, but found BEGIN instead12行,IF语句对应的关键字是then而非begin14行,Q1是矢量,不能直接和整数1相加,需要使用重载函数修改相应行的程序(如果是缺少语句请指出大致的行数):

36、错误1行号: 12 程序改为:BEGIN 改为 THEN错误2行号: 3 程序改为:USE IEEE.STD_LOGIC_UNSIGNED.ALL;五、VHDL程序设计:(15分)设计一数据选择器MUX,其系统模块图和功能表如下图所示。试采用下面三种方式中的两种来描述该数据选择器MUX的结构体。(a) 用if语句。 (b) 用case 语句。 (c) 用when else 语句。Library ieee;Use ieee.std_logic_1164.all;Entity mymux isPort (sel : in std_logic_vector(1 downto 0);- 选择信号输入A

37、in, Bin : in std_logic_vector(1 downto 0);- 数据输入Cout : out std_logic_vector(1 downto 0) );End mymux;五、VHDL程序设计:(16分)设计一数据选择器MUX,其系统模块图和功能表如下图所示。试采用下面三种方式中的两种来描述该数据选择器MUX的结构体。(a) 用if语句。 (b) 用case 语句。 (c) 用when else 语句。Library ieee;Use ieee.std_logic_1164.all;Entity mymux isPort (sel : in std_logic_ve

38、ctor(1 downto 0);- 选择信号输入Ain, Bin : in std_logic_vector(1 downto 0);- 数据输入Cout : out std_logic_vector(1 downto 0) );End mymux;五、VHDL程序设计:(16分)设计一数据选择器MUX,其系统模块图和功能表如下图所示。试采用下面三种方式中的两种来描述该数据选择器MUX的结构体。(a) 用if语句。 (b) 用case 语句。 (c) 用when else 语句。Library ieee;Use ieee.std_logic_1164.all;Entity mymux isP

39、ort (sel : in std_logic_vector(1 downto 0);- 选择信号输入Ain, Bin : in std_logic_vector(1 downto 0);- 数据输入Cout : out std_logic_vector(1 downto 0) );End mymux;Architecture one of mymux isBeginProcess (sel, ain, bin)BeginIf sel = “00” then cout = ain and bin; Elsif sel = “01” then cout = ain xor bin;Elsif s

40、el = “10” then cout = not ain;Else cout cout cout cout cout = not bin;End case;End process;End two;Architecture three of mymux isBeginCout = ain and bin when sel = “00” elseAin xor bin when sel = “01” elseNot ain when sel = “10” else not bin;End three;五、阅读下列VHDL程序,画出原理图(RTL级):(10分)library ieee;use i

41、eee.std_logic_1164.all;entity lfsr isport (clk : in std_logic;clr : in std_logic;d : in std_logic;mout : out std_logic);end lfsr; architecture rtl of lfsr issignal sreg : std_logic;beginshift_p : process(clk,clr) variable s : std_logic;begin if clr = 1 thens := 0;elsif rising_edge(clk) thens := sreg

42、 xor (not d);end if; sreg = s;end process;mout = sreg;end rtl;六、根据原理图写出相应的VHDL程序:(15分)六、根据原理图写出相应的VHDL程序:(10分)六、根据原理图写出相应的VHDL程序:(10分)Library ieee;Use ieee.std_logic_1164.all;Entity mycir isPort ( A, B, clk : in std_logic;Qout : out std_logic);End mycir;Architecture behave of mycir isSignal ta, tb,

43、tc;Begintc = ta nand tb;Process (clk)BeginIf clkevent and clk = 1 thenTa = A;Tb = B;End if;End process;Process (clk, tc)BeginIf clk = 1 thenQout = tc;End if;End process;End behave;六、写VHDL程序:(20分)1设计一个3-8译码器输入端口: din 输入端,位宽为3位 EN 译码器输出使能,高电平有效输出端口: xout译码器输出,低电平有效LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.

44、ALL;ENTITY DECODE3_8 ISPORT ( DIN : IN STD_LOGIC_VECTOR (2 DOWNTO 0);EN : IN STD_LOGIC; XOUT : OUT STD_LOGIC_VECTOR (7 DOWNTO 0);END DECODE3_8;ARCHITECTURE ONE OF DECODE3_8 ISBEGINPROCESS (DIN, EN)BEGINIF EN = 1 THENIF DIN = “111” THEN XOUT = “11111110”;ELSIF DIN = “110” THEN XOUT = “11111101”;ELSIF

45、 DIN = “101” THEN XOUT = “11111011”;ELSIF DIN = “100” THEN XOUT = “11110111”;ELSIF DIN = “011” THEN XOUT = “11101111”;ELSIF DIN = “010” THEN XOUT = “11011111”;ELSIF DIN = “001” THEN XOUT = “10111111”;ELSE XOUT = “11111011”;END IF; END IF;END PROCESS;END ONE;2. 看下面原理图,写出相应VHDL描述LIBARRY IEEE;USE IEEE.

46、STD_LOGIC_1164.ALL;ENTITY MYCIR IS PORT ( XIN, CLK : IN STD_LOGIC;YOUT : OUT STD_LOGIC);END MYCIR;ARCHITECTURE ONE OF MYCIR ISSIGNAL A, B, C;BEGINB = XIN OR A;PROCESS (CLK)BEGINIF CLKEVENT AND CLK = 1 THENA = C;C = B;END IF;END PROCESS;YOUT = C;END ONE;七、综合题:(20分)根据如下所示状态图及其状态机结构图,回答问题1.试判断该状态机类型,并说

47、明理由。改状态机可以为mealy型状态机,当输入ina变化时可影响输出outa立即变化2.请问如何消除状态机输出信号毛刺?试列出至少两种方法,并说明理由。方法1,添加辅助进程对输出数据进行锁存方法2,将双进程状态机改写为单进程状态机,其输出也是锁存过了,故能消除毛刺方法3,使用状态位直接输出型状态机编码方式,其输出直接由当前状态输出,也没有毛刺3.试由b、c两图中任选一图写出其完整的VHDL程序。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY EX7 ISPORT (CLK, RESET: IN STD_LOGIC;INA: IN STD_LOG

48、IC_VECTOR(2 DOWNTO 0);OUTA: OUT STD_LOGIC_VECTOR(3 DOWNTO 0) );END EX7;- MOORE型状态机ARCHITECTURE ONE OF EX7 ISTYPE STATE IS (S0, S1, S2, S3);SIGNAL C_ST : STATE;BEGINPROCESS (CLK, RESET, INA)BEGINIF RESET = 1 THEN C_ST = S0; OUTA 0);ELSIF RISING_EDGE(CLK) THENCASE C_ST ISWHEN S0 =IF INA = 101 THEN OUT

49、A = 0010;ELSIF INA = 111 THEN OUTA = 1100;END IF;C_ST IF INA = 000 THEN C_ST = S1;ELSIF INA = 110 THEN C_ST = S2;END IF;OUTA IF INA = 100 THEN C_ST = S2;ELSIF INA = 011 THEN C_ST = S1;ELSE C_ST = S3;END IF;OUTA IF INA = 101 THEN OUTA = 1101;ELSIF INA = 011 THEN OUTA = 1110;END IF;C_ST C_ST = S0;OUTA

50、 0);END CASE;END IF;END PROCESS;END ONE;- MEALY型状态机ARCHITECTURE TWO OF EX7 ISTYPE STATE IS (S0, S1, S2, S3);SIGNAL C_ST, N_ST : STATE;BEGINREG : PROCESS (CLK, RESET)BEGINIF RESET = 1 THEN C_ST = S0;ELSIF CLKEVENT AND CLK = 1 THENC_ST N_ST = S1;IF INA = 101 THEN OUTA = 0010;ELSIF INA = 111 THEN OUTA

51、= 1100;ELSE OUTA OUTA = 1001;IF INA = 000 THEN N_ST = S1;ELSIF INA = 110 THEN N_ST = S2;ELSE N_ST OUTA = 1111;IF INA = 100 THEN N_ST = S2;ELSIF INA = 011 THEN N_ST = S1;ELSE N_ST IF INA = 101 THEN OUTA = 1101;ELSIF INA = 011 THEN OUTA = 1110;ELSE OUTA = 0000;END IF;N_ST N_ST = S0;OUTA 0);END CASE;END PROCESS;END TWO;4. 已知一个简单的波形发生器的数字部分系统框图如下图所示:图中DOWNCNT、MYROM都是在MAX+PlusII中使用MegaWizard调用的LPM模块,其VHDL描述中Entity部分分别如下:ENTITY DOWNCNT ISPORT(clock: IN STD_LOGIC

温馨提示

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

评论

0/150

提交评论