好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

EDA状态机实验报告.doc

7页
  • 卖家[上传人]:pu****.1
  • 文档编号:479905339
  • 上传时间:2023-04-26
  • 文档格式:DOC
  • 文档大小:107.50KB
  • / 7 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 精品范文模板 可修改删除撰写人:___________日 期:___________ 状态机设计学院:数学与计算机学院 专业: 姓名: 学号: 一、实验目的1.通过实验掌握有限状态机的要点和特点及其设计;2.用状态机实现串行序列的设计二、设计要求1. 先设计序列信号发生器;2. 再设计一个序列信号检测器,若系统检测到串行序列11010则输出为“1”,否则输出为“0”,并对其进行仿真和硬件测试三、实验设备PC机,Quartueⅱ软件,实验箱四、实验原理1、序列信号发生器CNT00000001001000110100010101100111ZOUT01110100CNT10001001101010111100110111101111ZOUT11011010复位信号CLRN当CLRN=0时,使CNT=0000,当CLRN=1时,不影响程序运行,每来一个CLK脉冲CNT加一2、序列信号检测器状态转移图:S0 S2 S1 S3 S4 S5101010100五、实验步骤1、信号发生器(1)建立工作库文件夹,输入设计项目VHDL代码,如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY s_machine IS PORT(clk,reset,state_input:IN STD_LOGIC; comb_output:OUT STD_LOGIC); END s_machine; ARCHITECTURE behav OF s_machine IS TYPE FSM_ST IS (s0,s1,s2,s3); SIGNAL current_state,next_state: FSM_ST; BEGIN REG:PROCESS(reset,clk) BEGIN IF reset='1' THEN current_state<=s0; ELSIF CLK'EVENT AND CLK='1' THEN current_state<=next_statE; END IF; END PROCESS; COM:PROCESS(current_state,next_state) BEGIN CASE current_state IS WHEN s0=>comb_output<='0'; IF state_input='0' THEN next_state<=s0; ELSE next_state<=s1; END IF; WHEN s1=>comb_output<='0'; IF state_input='0' THEN next_state<=s0; ELSE next_state<=s2; END IF; WHEN s2=>comb_output<='0'; IF state_input='0' THEN next_state<=s0; ELSE next_state<=s3; END IF; WHEN s3=>comb_output<='1'; IF state_input='0' THEN next_state<=s0; ELSE next_state<=s3; END IF; END case; END PROCESS; END behav;(2)对其进行波形仿真,如下图:3)将其转换成可调用元件如图:2、信号检测器1)建立工作库文件夹,输入设计项目VHDL代码,如下:LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SCHK IS  PORT(DIN, CLK, CLR  : IN STD_LOGIC;         ss : OUT STD_LOGIC_VECTOR END SCHK;ARCHITECTURE behav OF SCHK IS    SIGNAL Q : INTEGER RANGE 0 TO 5 ;    SIGNAL D : STD_LOGIC_VECTOR(5 DOWNTO 0);    BEGIN    D <= "11010"  ;   PROCESS( CLK, CLR )  BEGIN  IF CLR = '1' THEN    Q <= 0 ;  ELSIF  CLK'EVENT AND CLK='1' THEN   CASE Q IS  WHEN 0=>  IF DIN = D(4) THEN Q <= 1 ; ELSE Q <= 0 ; END IF ;  WHEN 1=>  IF DIN = D(3) THEN Q <= 2 ; ELSE Q <= 0 ; END IF ;  WHEN 2=>  IF DIN = D(2) THEN Q <= 3 ; ELSE Q <= 2 ; END IF ;  WHEN 3=>  IF DIN = D(1) THEN Q <= 4 ; ELSE Q <= 0 ; END IF ;  WHEN 4=>  IF DIN = D(0) THEN Q <= 5 ; ELSE Q <= 2 ; END IF ;   WHEN OTHERS =>  Q <= 0 ;  END CASE ;    END IF ;  END PROCESS ;  PROCESS( Q )                                   BEGIN      IF Q = 5  THEN  ss <= "1" ;           ELSE              ss <= "0" ;           END IF ;  END PROCESS ;END behav ;3)将其转换成可调用元件如图:3.序列信号检测器顶层文件1)调用序列信号发生器和序列信号检测器元件,建立工作库文件夹,输入设计项目原理图如下图:2)对总体进行波形仿真,如下图:功能仿真:六、实验心得本实验中使用moore型状态机效果更好一些。

      在实际应用中,mealy型和moore型状态机各有所长,应根据实际合理选择第 1 页 共 1 页免责声明:图文来源于网络搜集,版权归原作者所以若侵犯了您的合法权益,请作者与本上传人联系,我们将及时更正删除。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.