名称:Moore状态机和序列检测器设计VHDL代码Quartus仿真
软件:Quartus
语言:VHDL
代码功能:
Moore状态机和序列检测器
Moore状态机(要求状态至少为5个,即s0、s1、s2、s3、s4等)
输出只和当前状态有关而与输入无关,则称为摩尔(Moore)状态机;
序列信号检测器设计(10101010)
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
序列检测设计文档.doc
1.工程文件
2.程序文件
3.程序编译
4.状态图
RTL图
5.仿真图
1.工程文件
2.程序文件
3.程序编译
RTL图
4.仿真图
部分代码展示:
LIBRARY?ieee; ???USE?ieee.std_logic_1164.all; --Moore状态机(要求状态至少为5个,即s0、s1、s2、s3、s4等) ENTITY?Moore?IS ???PORT?( ??????clk????:?IN?STD_LOGIC;--时钟 ??????reset??:?IN?STD_LOGIC;--复位 ??????start??:?IN?STD_LOGIC;--开始 ??????data???:?OUT?STD_LOGIC--输出 ???); END?Moore; ARCHITECTURE?behave?OF?Moore?IS ???TYPE?state_type?is?(s0,s1,s2,s3,s4);--状态为5个,即s0、s1、s2、s3、s4 ???SIGNAL?state?:?state_type?:=?s0; BEGIN ???--状态机 ???PROCESS?(clk,?reset) ???BEGIN ??????IF?(reset?=?'1')?THEN--复位 ?????????state?<=?s0; ??????ELSIF?(clk'EVENT?AND?clk?=?'1')?THEN ?????????CASE?state?IS ????????????WHEN?s0?=> ???????????????IF?(start?=?'1')?THEN ??????????????????state?<=?s1;--状态转移 ???????????????ELSE ??????????????????state? ???????????????IF?(start?=?'1')?THEN ??????????????????state?<=?s2;--状态转移 ???????????????ELSE ??????????????????state? ???????????????IF?(start?=?'1')?THEN ??????????????????state?<=?s3;--状态转移 ???????????????ELSE ??????????????????state? ???????????????IF?(start?=?'1')?THEN ??????????????????state?<=?s4;--状态转移 ???????????????ELSE ??????????????????state? ???????????????state? ?????????END?CASE; ??????END?IF; ???END?PROCESS;
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1364
阅读全文
269