77范文网 - 专业文章范例文档资料分享平台

EDA复习题练习(2)

来源:网络收集 时间:2018-12-19 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

long /= ‘1’long = ‘1’start_timer <= ‘0’;S0H路通行h_light <= “00”;v_light <= “11”;start_timer <= ‘1’;short = ‘1’start_timer <= ‘0’;S1H路黄灯short /= ‘1’h_light <= “01”;v_light <= “11”;start_timer <= ‘1’;h_light <= “11”;v_light <= “01”;start_timer <= ‘1’;S3V路黄灯short /= ‘1’h_light <= “11”;v_light <= “00”;start_timer <= ‘1’;short = ‘1’start_timer <= ‘0’;S2V路通行long = ‘1’start_timer <= ‘0’;long /= ‘1’

图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的仿真波形。

图e 交通灯仿真波形图

2、根据如下所示状态图及其状态机结构图,回答问题

ina=\ ina=\ ina=\ ina /= \S0 S1 ina=\ ina=\ ina=\ outa=\ outa=\ ina=\ ina=\ S2 ina /= “011” S3 (a) CLK RESET CLK RESET ina FSM outa ina REG SIGNAL1 SIGNAL2 COM outa (b) (c)

(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 DOWNTO 0) ); END DOWNCNT; ENTITY myrom IS PORT ( address q ); : IN STD_LOGIC_VECTOR (5 DOWNTO 0); : OUT STD_LOGIC_VECTOR (7 DOWNTO 0) END myrom; 试用VHDL描述该系统的顶层设计(使用例化语句)。 3、已知状态机状态图如图(a)所示;完成下列各题:

(1)试判断该状态机类型,并说明理由。

(2)根据状态图,写出对应于结构图(b),分别由主控组合进程和主控时序进程组成的VHDL有限状态机描述

(3) 若已知输入信号如下图所示,分析状态机的工作时序,画出该状态机的状态转换值

(current_state)和输出控制信号(outa);

(4) 若状态机仿真过程中出现毛刺现象,应如何消除;试指出两种方法,并简单说明其

原理。

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

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

图a 两层升降平台示意图

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

doorupdownencnt100coutelev222clkrstcallarr

图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; -- 时钟、使能信号 COUT : OUT STD_LOGIC ); -- 溢出信号

END CNT100;

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

图c cnt100仿真波形图

问题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; -- 门控信号,低电平开门 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) := \一楼关门 constant OP1 : std_logic_vector(2 downto 0) := \一楼开门 constant UP1 : std_logic_vector(2 downto 0) := \一楼上升 constant DN2 : std_logic_vector(2 downto 0) := \二楼下降 constant CL2 : std_logic_vector(2 downto 0) := \二楼关门 constant OP2 : std_logic_vector(2 downto 0) := \二楼开门 signal control : std_logic_vector(2 downto 0); -- 状态控制信号 begin door <= not control(2); up <= control(1); down <= control(0); process (clk, rst, arr, call) variable ven : std_logic; begin if rst = '1' then control <= CL1; elsif clk'event and clk = '1' then case control is when CL1 => 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 <= '1'; end if; when OP1 => if cout = '1' then -- 开门已完毕 if call(1) = '1' then control <= OP1; en <= '1'; else control <= CL1; en <= '0'; end if; else control <= OP1; en <= '1'; end if; when UP1 => if arr(2) = '1' then control <= CL2; else control <= UP1; end if; when DN2 => if arr(1) = '1' then control <= CL1; else control <= DN2; end if; when CL2 => 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 <= '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顶层描述:

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库EDA复习题练习(2)在线全文阅读。

EDA复习题练习(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/374493.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: