EDA技术与应用课后习题答案(7)

时间:2022-08-26 20:33:06 EDA技术培训 我要投稿
  • 相关推荐

EDA技术与应用课后习题答案

  WHEN st4=> ALE0<='0';START0<='0';LOCK<='1';OE0<='1';next_state<=st0;

  WHEN OTHERS=>next_state<=st0;

  END CASE;

  IF CLK'EVENT AND CLK= '1' THEN

  ALE<=ALE0;START<=START0;LOCK0<=LOCK;OE<=OE0;--方法1:信号锁存后输出

  END IF;

  END PROCESS COM;

  REG:PROCESS(CLK)

  BEGIN

  IF(CLK'EVENT AND CLK='1') THEN current_state<=next_state; END IF;

  END PROCESS REG; --由信号current_state将当前状态值带出此进程:REG

  LATCH1: PROCESS(LOCK) --此进程中,在LOCK的上升沿,将转换好的数据锁入

  BEGIN

  IF LOCK='1' AND LOCK'EVENT THEN REGL<=D; END IF;

  END PROCESS LATCH1;

  END behav;

  -- 解:"【例8-2】根据图8-6状态图,采用Moore型状态机,设计ADC0809采样控制器" 方法2(使用状态码直接输出型状态机)的VHDL程序代码(【例8-7】的根据状态编码表8-1给出ADC0809数据采样的状态机)如下:

  LIBRARY IEEE;

  USE IEEE.STD_LOGIC_1164.ALL;

  ENTITY AD0809 IS

  PORT( D: IN STD_LOGIC_VECTOR(7 DOWNTO 0);

  CLK,EOC: IN STD_LOGIC;

  ALE,START,OE,ADDA:OUT STD_LOGIC;

  c_state:OUT STD_LOGIC_VECTOR(4 DOWNTO 0);

  Q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));

  END AD0809;

  ARCHITECTURE behav OF AD0809 IS

  SIGNAL current_state,next_state: STD_LOGIC_VECTOR(4 DOWNTO 0);

  CONSTANT st0: STD_LOGIC_VECTOR(4 DOWNTO 0):="00000";

  CONSTANT st1: STD_LOGIC_VECTOR(4 DOWNTO 0):="11000";

  CONSTANT st2: STD_LOGIC_VECTOR(4 DOWNTO 0):="00001";

  CONSTANT st3: STD_LOGIC_VECTOR(4 DOWNTO 0):="00100";

  CONSTANT st4: STD_LOGIC_VECTOR(4 DOWNTO 0):="00110";

  SIGNAL REGL: STD_LOGIC_VECTOR(7 DOWNTO 0);

  SIGNAL LOCK: STD_LOGIC;

  BEGIN

  ADDA<='1';Q<=REGL;START<=current_state(4);ALE<=current_state(3);

  OE<=current_state(2);LOCK<=current_state(1);c_state<=current_state;

  COM: PROCESS(current_state,EOC) BEGIN --规定各状态转换方式

  CASE current_state IS

  WHEN st0=> next_state<=st1; --0809初始化

  WHEN st1=> next_state<=st2; --启动采样

  WHEN st2=> IF(EOC='1') THEN next_state<=st3; --EOC=1表明转换结束

  ELSE next_state<=st2; --转换未结束,继续等待

  END IF;

  WHEN st3=> next_state<=st4; --开启OE,输出转换好的数据

  WHEN st4=> next_state<=st0;

  WHEN OTHERS=> next_state<=st0;

  END CASE;

  END PROCESS COM;

  REG: PROCESS(CLK)

  BEGIN

  IF (CLK'EVENT AND CLK='1') THEN current_state<=next_state;

  END IF;

  END PROCESS REG; --由信号current_state将当前状态值带出此进程:REG

  LATCH1: PROCESS(LOCK)--此进程中,在LOCK的上升沿,将转换好的数据锁入

  BEGIN

  IF LOCK='1' AND LOCK'EVENT THEN REGL<=D;

  END IF;

  END PROCESS LATCH1;

  END behav;

【EDA技术与应用课后习题答案】相关文章:

EDA考试复习题09-20

《答司马谏议书》课后习题答案08-28

网络技术习题及答案10-25

EDA技术主要概念03-11

eda技术有什么特点09-06

大学英语精读第二册课后习题答案04-01

2017年计算机应用技术基础练习题及答案08-29

CAD习题及答案04-27

2017计算机应用基础统考练习题及答案08-29

EDA技术常见问题解答08-31