ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:235.44KB ,
资源ID:10428271      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10428271.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(EDA复习题练习.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

EDA复习题练习.docx

1、EDA复习题练习EDA练习一、名词解释及回答问题:写出下列缩写的中文(或者英文)含义:1. VHDL 2.FPGA 3.RTL 4.SOPC 5.EDA 6. CPLD 7.HDL 8.LUT9.ASIC 10.SOC 11.JTAG 12.IP 13.LPM14.EDA与传统设计方法的区别?15.硬件描述语言编译综合后的结果是什么?16. 时序仿真与功能仿真的区别?二、程序填空:(仅以一例说明题型)下面程序是参数可定制带计数使能异步复位计数器的VHDL描述,试补充完整。- N-bit Up Counter with Load, Count Enable, and- Asynchronous

2、Resetlibrary ieee;use IEEE.std_logic_1164.all;use IEEE._.all;use IEEE.std_logic_arith.all;entity counter_n is generic (width : integer := 8); port(data : in std_logic_vector (width-1 downto 0); load, en, clk, rst : _ std_logic; q : out std_logic_vector (_ downto 0);end counter_n;architecture behave

3、of _ is signal count : std_logic_vector (width-1 downto 0); begin process(clk, rst) begin if rst = 1 then count = _; 清零 elsif _ then 边沿检测 if load = 1 then count = data; _ en = 1 then count = count + 1; _; end if; end process; _ end behave;三、程序改错:(仅以一例说明题型)1 LIBRARY IEEE;2 USE IEEE.STD_LOGIC_1164.ALL

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

5、 END IF; 19 END PROCESS ;20 Q = Q1;21 END bhv;1. 在MAX+PlusII中编译时,提示的第一条错误为:Error: Line 12: File e:myworktestcnt10.vhd: VHDL syntax error: If statement must have THEN, but found BEGIN instead指出并修改相应行的程序(如果是缺少语句请指出大致的行数):错误1 行号: 程序改为:错误2 行号: 程序改为:2. 若编译时出现如下错误,请分析原因。四、VHDL程序设计:1、设计一数据选择器MUX,其系统模块图和功能表

6、如下图所示。试采用下面三种方式中的两种来描述该数据选择器MUX的结构体。(a) 用if语句。 (b) 用case 语句。 (c) 用when else 语句。(d) 用with select 语句。2、课本4-23、课本例6-18、例6-19用其他方式实现。4、设计一个3-8译码器输入端口: din 输入端,位宽为3位 EN 译码器输出使能,高电平有效输出端口: xout 译码器输出,低电平有效5、试描述一个带进位输入、输出的8位全加器 端口:A、B为加数,CIN为进位输入,S为加和,COUT为进位输出五、根据原理图写出相应的VHDL程序:1、2、3、4、六、综合题(状态机)1、用VHDL设计

7、交通灯控制器图a是一个十字路口交通灯控制示意图,H公路和V公路在路口各有两个红绿灯指示道路通行状况。图a 十字路口交通灯控制示意图对应图a的交通灯控制器,拟用VHDL语言设计一电路模拟其控制逻辑,图b为该VHDL电路的设计模块图。图b 交通灯控制器电路设计模块图图b中Timer模块为一定时电路,其实体说明如下:Library ieee;Use ieee.std_logic_1164.all;Use ieee.std_logic_unsigned.all;Entity timer is Port ( clk, reset, start_timer : in std_logic; - 时钟、复位、

8、启动信号 Long, short : out std_logic); - 20秒、4秒定时完成信号End timer;图c为Timer模块仿真波形,输入信号clk为频率1KHz的时钟信号,当复位信号reset高电平时定时器复位,启动信号start_timer为低电平时定时器清零,高电平时开始定时,定时4秒后short信号输出高电平,定时20秒后long信号输出高电平,定时器不再计数。图c Timer模块仿真波形问题1,请完成Timer模块的VHDL设计:(实体说明部分已有,可不写)图b中Controller模块的实体说明如下:Library ieee;Use ieee.std_logic_11

9、64.all;Entity controller is Port ( clk, reset : in std_logic; - 时钟、复位信号 long, short : in std_logic; - 20秒、4秒定时完成信号 start_timer : out std_logic; - 启动定时信号 h_light, v_light : out std_logic(1 downto 0) ); - H路、V路交通灯控制信号End controller;其中H路、V路交通灯控制信号输出“00”表示绿灯、“01”表示黄灯、“11”表示红灯。问题2:Controller模块中状态迁移图如图d所示

10、,请完成Controller模块的VHDL设计:图d Controller模块状态迁移图问题3:根据图b的系统模块结构,完成整个交通灯电路顶层模块VHDL设计。library ieee;use ieee.std_logic_1164.all;entity jtd is port ( clk, reset : in std_logic; h_light, v_light : out std_logic_vector(1 downto 0) );end jtd;问题4:在图e所示的交通灯顶层模块仿真波形图中完成输出信号h_light、v_light和controller中状态机当前状态信号c_s的

11、仿真波形。图e 交通灯仿真波形图2、根据如下所示状态图及其状态机结构图,回答问题(1)试判断该状态机类型,并说明理由。(2)请问如何消除状态机输出信号毛刺?试列出至少两种方法,并说明理由。(3)试由b、c两图中任选一图写出其完整的VHDL程序。(4)已知一个简单的波形发生器的数字部分系统框图如下图所示:图中DOWNCNT、MYROM都是在MAX+PlusII中使用MegaWizard调用的LPM模块,其VHDL描述中Entity部分分别如下:ENTITY DOWNCNT IS PORT ( clock : IN STD_LOGIC ; q : OUT STD_LOGIC_VECTOR (5 D

12、OWNTO 0) );END DOWNCNT;ENTITY myrom IS PORT ( address : IN STD_LOGIC_VECTOR (5 DOWNTO 0); q : OUT STD_LOGIC_VECTOR (7 DOWNTO 0) );END myrom;试用VHDL描述该系统的顶层设计(使用例化语句)。3、已知状态机状态图如图(a)所示;完成下列各题:(1)试判断该状态机类型,并说明理由。(2)根据状态图,写出对应于结构图(b),分别由主控组合进程和主控时序进程组成的VHDL有限状态机描述(3) 若已知输入信号如下图所示,分析状态机的工作时序,画出该状态机的状态转换值

13、(current_state)和输出控制信号(outa);(4) 若状态机仿真过程中出现毛刺现象,应如何消除;试指出两种方法,并简单说明其原理。4、用VHDL设计两层升降平台控制器图a是一个两层的升降平台示意图,一层和二层各有一个按钮用来呼叫升降机。图a 两层升降平台示意图对应图a的升降平台控制器,拟用VHDL语言设计一个电路模拟其控制逻辑,图b为该VHDL电路的设计模块图。图b 两层升降平台控制器设计模块图图b中的cnt100模块用来控制升降台开关门延时,elev2为升降平台状态控制器。升降台闸门由打开到关闭或由关闭到打开时,elev2模块向cnt100模块输出一个en计数使能信号(高电平有

14、效)。cnt100模块计数溢出(100)时cnt100输出cout信号为高电平,同时cnt100计数停止。cnt100模块的实体描述如下所示:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT100 IS PORT ( CLK, EN : IN STD_LOGIC; - 时钟、使能信号 COUT : OUT STD_LOGIC ); - 溢出信号END CNT100;问题1,请完成cnt100模块的VHDL设计(实体部分已给出,不用写),参考的仿真波形如图c所示。图c cnt10

15、0仿真波形图问题2,以下是elev2模块的VHDL描述:请根据elev2的VHDL描述画出其状态迁移图。library ieee;use ieee.std_logic_1164.all;entity elev2 is port ( clk, rst : in std_logic; - 时钟、复位信号 cout : in std_logic; - 定时溢出信号 call : in std_logic_vector(2 downto 1); - 呼叫信号 arr : in std_logic_vector(2 downto 1); - 到达信号 door : out std_logic; - 门控

16、信号,低电平开门 up : out std_logic; - 上升信号 down : out std_logic; - 下降信号 en : out std_logic); - 延时计数清零、使能信号end elev2;architecture behav of elev2 is constant CL1 : std_logic_vector(2 downto 0) := 000;- 一楼关门 constant OP1 : std_logic_vector(2 downto 0) := 100;- 一楼开门 constant UP1 : std_logic_vector(2 downto 0)

17、:= 010;- 一楼上升 constant DN2 : std_logic_vector(2 downto 0) := 001;- 二楼下降 constant CL2 : std_logic_vector(2 downto 0) := 011;- 二楼关门 constant OP2 : std_logic_vector(2 downto 0) := 111;- 二楼开门 signal control : std_logic_vector(2 downto 0); - 状态控制信号begin door = not control(2); up = control(1); down = cont

18、rol(0); process (clk, rst, arr, call) variable ven : std_logic; begin if rst = 1 then control if cout = 1 then - 关门已完毕 if call(1) = 1 then control = OP1; en = 0; elsif call(2) = 1 then control = UP1; en = 1; else control = CL1; en = 1; end if; else control = CL1; en if cout = 1 then - 开门已完毕 if call(

19、1) = 1 then control = OP1; en = 1; else control = CL1; en = 0; end if; else control = OP1; en if arr(2) = 1 then control = CL2; else control if arr(1) = 1 then control = CL1; else control if cout = 1 then - 关门已完毕 if call(2) = 1 then control = OP2; en = 0; elsif call(1) = 1 then control = DN2; en = 1; else control = CL2; en = 1; end if; else control = CL2; en if cout = 1 then - 开门已完毕 if call(2) = 1 then control = OP2; en = 1; else control = CL2; en = 0; end if; else control = OP2; en control = CL1; end case; end if; end process;end behav;问题3,根据图b所示升降平台模块图,写出升降平台控制器ELEV_TOP的VHDL顶层描述:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1