EDA期末考试题06(最新整理)

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SEL

00

01

10

11 OTHERS

COUT A or B A xor B A and B A nor B “XX”

五、阅读下列 VHDL 程序,画出相应RTL图:(10 分)

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY three IS

PORT

(

clk,d : IN STD_LOGIC;

dout : OUT STD_LOGIC );

END;

ARCHITECTURE bhv OF three IS

SIGNAL tmp: STD_LOGIC;

BEGIN

P1: PROCESS(clk)

BEGIN

IF rising_edge(clk) THEN

Tmp <= d;

dout <= tmp;

END IF;

END PROCESS P1;

END bhv;

六、写 VHDL 程序:(20 分)

1.数据选择器MUX,其系统模块图和功能表如下图所示。试采用下面四种方式中的两种来描述该数据选择器MUX 的结构体。

SEL(1:0)

(a) 用if 语句。(b) 用case 语句。(c) 用when else 语句。(d) 用with select 语句。

Library ieee;

Use ieee.std_logic_1164.all;

Entity mymux is

Port ( 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 is

Begin

Process (sel, ain, bin)

Begin

If sel = “00” then cout <= ain or bin;

Elsif sel = “01” then cout <= ain xor bin;

Elsif sel = “10” then cout <= ain and bin;

Else cout <= ain nor bin;

End if;

End process;

End one;

Architecture two of mymux is

Begin

Process (sel, ain, bin)

Begin

Case sel is

when “00” => cout <= ain or bin;

when “01” => cout <= ain xor bin;

when “10” => cout <= ain and bin;

when others => cout <= ain nor bin;

End case;

End process;

End two;

2.看下面原理图,写出相应VHDL 描述

AIN(1:0)

BIN(1:0) MUX

COUT(1:0)

Library ieee;

Use ieee.std_logic_1164.all;

Entity mycir is

Port (ain , bin , clk : in std_logic;

Cout : out std_logic);

End mycir;

Architecture one of mycir is

Signal tb, tc;

begin

Process (clk) begin

If clk’event and clk = ‘1’ then

tb <= bin;

end if;

End process;

Process (clk, tc) begin

If clk = ‘1’ then cout <= tc;end if;

End process;

Tc <= ain xor tb;

End one;

elev2

cnt100 七、综合题(20 分)

用 VHDL 设计两层升降平台控制器

图 a 是一个两层的升降平台示意图,一层和二层各有一个按钮用来呼叫升降机。

问题 1,请完成 cnt100 模块的 VHDL 设计(实体部分已给出,不用写),参考的仿真波形如图 c 所示。

Architecture one of cnt100 is Begin

Process (clk, en)

图 c cnt100 仿真波形图

图 a 两层升降平台示意图

对应图 a 的升降平台控制器,拟用 VHDL 语言设计一个电路模拟其控制逻辑,图 b 为该 VHDL 电路的设计模块图。

Variable q : std_logic_vector (7 downto 0); Begin

If en = ‘0’ then q := (others => ‘0’);

Elsif clk’event and clk = ‘1’ then q := q + 1; End if;

If q < “01100100” then cout <= ‘0’; Else cout <= ‘1’; End if; End process; End one;

door up down

en

cout

2

2

clk rst

call arr

图 b 两层升降平台控制器设计模块图

图 b 中的 cnt100 模块用来控制升降台开关门延时,elev2 为升降平台状态控制器。升降台闸门由打开到

关闭或由关闭到打开时,elev2 模块向 cnt100 模块输出一个 en 计数使能信号(高电平有效)。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; -- 时钟、使能信号

相关文档
最新文档