EDA练习
一、名词解释及回答问题:写出下列缩写的中文(或者英文)含义:
1. VHDL 2.FPGA 3.RTL
4.SOPC 5.EDA 6. CPLD 7.HDL 8.LUT
9.ASIC 10.SOC 11.JTAG 12.IP 13.LPM 14.EDA与传统设计方法的区别?
15.硬件描述语言编译综合后的结果是什么? 16. 时序仿真与功能仿真的区别?
二、程序填空:(仅以一例说明题型)
下面程序是参数可定制带计数使能异步复位计数器的VHDL描述,试补充完整。
-- N-bit Up Counter with Load, Count Enable, and -- Asynchronous Reset library ieee; use IEEE.std_logic_1164.all; use IEEE.________________.all; use IEEE.std_logic_arith.all; entity counter_n is architecture behave 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; count <= count + 1; ___________ en = '1' then 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; _____________; end if; end process; ________________ end behave;
三、程序改错:(仅以一例说明题型)
1
2 3 4 5 6 7 8 9
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY CNT10 IS
PORT ( CLK : IN STD_LOGIC ;
Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)) ; END CNT10;
ARCHITECTURE bhv OF CNT10 IS
SIGNAL Q1 : STD_LOGIC_VECTOR(3 DOWNTO 0);
10 BEGIN
11 PROCESS (CLK) BEGIN
12 IF RISING_EDGE(CLK) begin 13 IF Q1 < 9 THEN
14 Q1 <= Q1 + 1 ; 15 ELSE
16 Q1 <= (OTHERS => '0'); 17 END IF; 18 END IF; 19 END PROCESS ; 20 Q <= Q1; 21 END bhv;
1. 在MAX+PlusII中编译时,提示的第一条错误为: Error: Line 12: File e:\\mywork\\test\\cnt10.vhd: VHDL syntax error: If statement must have THEN, but found BEGIN instead 指出并修改相应行的程序(如果是缺少语句请指出大致的行数): 错误1 行号: 程序改为: 错误2 行号: 程序改为:
2. 若编译时出现如下错误,请分析原因。
四、VHDL程序设计:
1、设计一数据选择器MUX,其系统模块图和功能表如下图所示。试采用下面三种方式中的两种来描述该数据选择器MUX的结构体。
SEL(1:0)SEL00COUTA xor BA or BA nor BA nand B“XX”
AIN(1:0)BIN(1:0)MUXCOUT(1:0)011011OTHERS (a) 用if语句。 (b) 用case 语句。 (c) 用when else 语句。(d) 用with select 语句。 2、课本4-2
3、课本例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设计交通灯控制器
图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; Long, short : out std_logic); End timer;
-- 时钟、复位、启动信号 -- 20秒、4秒定时完成信号
图c为Timer模块仿真波形,输入信号clk为频率1KHz的时钟信号,当复位信号reset高电平时定时器复位,启动信号start_timer为低电平时定时器清零,高电平时开始定时,定时4秒后short信号输出高电平,定时20秒后long信号输出高电平,定时器不再计数。
图c Timer模块仿真波形
问题1,请完成Timer模块的VHDL设计:(实体说明部分已有,可不写) 图b中Controller模块的实体说明如下:
Library ieee;
Use ieee.std_logic_1164.all;
Entity controller is Port ( clk, reset : in std_logic; long, short : in std_logic; start_timer : out std_logic; h_light, v_light : out std_logic(1 downto 0) ); End controller;
-- 时钟、复位信号
-- 20秒、4秒定时完成信号 -- 启动定时信号
-- H路、V路交通灯控制信号
其中H路、V路交通灯控制信号输出“00”表示绿灯、“01”表示黄灯、“11”表示红灯。 问题2:Controller模块中状态迁移图如图d所示,请完成Controller模块的VHDL设计:
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库EDA复习题练习在线全文阅读。
相关推荐: