EDA状态机实验报告Word下载.doc
《EDA状态机实验报告Word下载.doc》由会员分享,可在线阅读,更多相关《EDA状态机实验报告Word下载.doc(6页珍藏版)》请在冰豆网上搜索。
PC机,Quartueⅱ软件,实验箱
四、实验原理
1、序列信号发生器
CNT
0000
0001
0010
0011
0100
0101
0110
0111
ZOUT
1
1000
1001
1010
1011
1100
1101
1110
1111
复位信号CLRN。
当CLRN=0时,使CNT=0000,当CLRN=1时,不影响程序运行,每来一个CLK脉冲CNT加一。
2、序列信号检测器
状态转移图:
S0
S2
S1
S3
S4
S5
五、实验步骤
1、信号发生器
(1)建立工作库文件夹,输入设计项目VHDL代码,如下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYs_machineIS
PORT(clk,reset,state_input:
INSTD_LOGIC;
comb_output:
OUTSTD_LOGIC);
ENDs_machine;
ARCHITECTUREbehavOFs_machineIS
TYPEFSM_STIS(s0,s1,s2,s3);
SIGNALcurrent_state,next_state:
FSM_ST;
BEGIN
REG:
PROCESS(reset,clk)
BEGIN
IFreset='
1'
THENcurrent_state<
=s0;
ELSIFCLK'
EVENTANDCLK='
THEN
current_state<
=next_statE;
ENDIF;
ENDPROCESS;
COM:
PROCESS(current_state,next_state)
CASEcurrent_stateIS
WHENs0=>
comb_output<
='
0'
;
IFstate_input='
THENnext_state<
ELSEnext_state<
=s1;
ENDIF;
WHENs1=>
IFstate_input='
=s2;
ENDIF;
WHENs2=>
=s3;
WHENs3=>
ENDcase;
ENDPROCESS;
ENDbehav;
(2)对其进行波形仿真,如下图:
3)将其转换成可调用元件如图:
2、信号检测器
1)建立工作库文件夹,输入设计项目VHDL代码,如下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYSCHKIS
PORT(DIN,CLK,CLR
:
INSTD_LOGIC;
ss:
OUTSTD_LOGIC_VECTOR
ENDSCHK;
ARCHITECTUREbehavOFSCHKIS
SIGNALQ:
INTEGERRANGE0TO5;
SIGNALD:
STD_LOGIC_VECTOR(5DOWNTO0);
BEGIN
D<
="
11010"
;
PROCESS(CLK,CLR)
BEGIN
IFCLR='
THEN
Q<
=0;
ELSIF
CLK'
CASEQIS
WHEN0=>
IFDIN=D(4)THENQ<
=1;
ELSEQ<
ENDIF;
WHEN1=>
IFDIN=D(3)THENQ<
=2;
WHEN2=>
IFDIN=D
(2)THENQ<
=3;
WHEN3=>
IFDIN=D
(1)THENQ<
=4;
WHEN4=>
IFDIN=D(0)THENQ<
=5;
WHENOTHERS=>
ENDCASE;
ENDPROCESS;
PROCESS(Q)
IFQ=5
ss<
1"
ELSE
0"
ENDbehav;
3.序列信号检测器顶层文件
1)调用序列信号发生器和序列信号检测器元件,建立工作库文件夹,输入设计项目原理图如下图:
2)对总体进行波形仿真,如下图:
功能仿真:
六、实验心得
本实验中使用moore型状态机效果更好一些。
在实际应用中,mealy型和moore型状态机各有所长,应根据实际合理选择。