文档详情

EDA状态机实验报告

pu****.1
实名认证
店铺
DOC
107.50KB
约7页
文档ID:479905339
EDA状态机实验报告_第1页
1/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 页免责声明:图文来源于网络搜集,版权归原作者所以若侵犯了您的合法权益,请作者与本上传人联系,我们将及时更正删除。

下载提示
相似文档
正为您匹配相似的精品文档