EDA复习题练习 -

更新时间:2023-09-24 16:07:01 阅读量: IT计算机 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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设计:

elsif call(1) = '1' then control <= DN2; en <= '1'; else control <= CL2; en <= '1'; end if; else control <= CL2; en <= '1'; end if; when OP2 => if cout = '1' then -- 开门已完毕 if call(2) = '1' then control <= OP2; en <= '1'; else control <= CL2; en <= '0'; end if; else control <= OP2; en <= '1'; end if; when others => control <= CL1; end case; end if; end process; end behav;

问题3,根据图b所示升降平台模块图,写出升降平台控制器ELEV_TOP的VHDL顶层描述:

本文来源:https://www.bwwdw.com/article/34sd.html

Top