/*********************************************************************************
* Company :
* Engineer : 空气微凉
*
* Create Date : 00:00:00 22/03/2013
* Design Name :
* Module Name :
* Project Name :
* Target Devices :
* Tool versions :
* Description :
* http://www.cnblogs.com/kongqiweiliang/
* Dependencies :
*
* Revision :
* Revision : 0.01 - File Created
* Additional Comments : 基础实验_12_有限状态机 :Moore型序列检测器
********************************************************************************/
`timescale 1ns/1ps
`define UD #
/*******************************************************************************/
module SEQ_REC_MOORE
(
//system interface
input iCLK_50 ,//50MHz
input iRESET ,//system interface
//Interface package
input iDAT_EN ,//
input iDAT ,//
output oDAT //
);
//-------------------------------------------------------------------------------
parameter FSM_IDLE = 'h0;
parameter FSM_0 = 'h1;
parameter FSM_1 = 'h2;
parameter FSM_2 = 'h3;
parameter FSM_3 = 'h4; reg [:] FSM_CS;
reg [:] FSM_NS; // Moore状态机的输出只与有限状态机的当前状态有关,与输入信号的当前
// 值无关。 Moore有限状态机在时钟CLOCK脉冲的有效边沿后的有限个门延后,
// 输出达到稳定值。即使在一个时钟周期内输入信号发生变化,输出也会在一个
// 完整的时钟周期内保持稳定值而不变。输入对输出的影响要到下一个时钟周期
// 才能反映出来。   
// Moore有限状态机最重要的特点就是将输入与输出信号隔离开来。 // 序列检测的作用是,先根据要检测的序列设计好状机的跳转,状态机会去匹配
// 指定的序列,在检测到符合要求后,保持一个CLK的脉冲
always@(posedge iCLK_50 or negedge iRESET)begin
if(!iRESET)
FSM_CS <= FSM_IDLE;
else
FSM_CS <= FSM_NS;
end
always@(*)begin
case(FSM_CS)
FSM_IDLE :
if(iDAT_EN && iDAT) FSM_NS = FSM_1;
else if(iDAT_EN && (!iDAT)) FSM_NS = FSM_0;
else FSM_NS = FSM_IDLE;
FSM_0 :
if(!iDAT) FSM_NS = FSM_0;
else if(iDAT) FSM_NS = FSM_1;
else FSM_NS = FSM_IDLE;
FSM_1 :
if(!iDAT) FSM_NS = FSM_0;
else if(iDAT) FSM_NS = FSM_2;
else FSM_NS = FSM_IDLE;
FSM_2 ,
FSM_3 :
if(!iDAT) FSM_NS = FSM_0;
else if(iDAT) FSM_NS = FSM_3;
else FSM_NS = FSM_IDLE;
default :
FSM_NS = FSM_IDLE;
endcase
end assign oDAT = (FSM_CS == FSM_3) ? 'h1 : 1'h0;
//-------------------------------------------------------------------------------
endmodule

每天进步一点点------基础实验_12_有限状态机 :Moore型序列检测器的更多相关文章

  1. 每天进步一点点------基础实验_13_有限状态机 :Mealy型序列检测器

    /********************************************************************************* * Company : * Eng ...

  2. 每天进步一点点------基础实验_08_触发器 :D、T触发器各一

    /********************************************************************************* * Company : * Eng ...

  3. [nRF51822] 12、基础实验代码解析大全 · 实验19 - PWM

    一.PWM概述: PWM(Pulse Width Modulation):脉冲宽度调制技术,通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形. PWM 的几个基本概念: 1) 占空比:占空比是指 ...

  4. [nRF51822] 11、基础实验代码解析大全 · 实验16 - 内部FLASH读写

     一.实验内容: 通过串口发送单个字符到NRF51822,NRF51822 接收到字符后将其写入到FLASH 的最后一页,之后将其读出并通过串口打印出数据. 二.nRF51822芯片内部flash知识 ...

  5. [nRF51822] 10、基础实验代码解析大全 · 实验15 - RTC

    一.实验内容: 配置NRF51822 的RTC0 的TICK 频率为8Hz,COMPARE0 匹配事件触发周期为3 秒,并使能了TICK 和COMPARE0 中断. TICK 中断中驱动指示灯D1 翻 ...

  6. [nRF51822] 9、基础实验代码解析大全 · 实验12 - ADC

    一.本实验ADC 配置 分辨率:10 位. 输入通道:5,即使用输入通道AIN5 检测电位器的电压. ADC 基准电压:1.2V. 二.NRF51822 ADC 管脚分布 NRF51822 的ADC ...

  7. [nRF51822] 8、基础实验代码解析大全 · 实验11 - PPI

    前一篇分析了前十个基础实验的代码,从这里开始分析后十个~ 一.PPI原理: PPI(Programmable Peripheral Interconnect),中文翻译为可编程外设互连. 在nRF51 ...

  8. 20145338 《网络对抗》逆向及Bof基础实验

    逆向及Bof基础实验 实践目标 ·本次实践的对象是一个名为pwn1的linux可执行文件. ·该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串. ·该程序同时包含 ...

  9. 20155209林虹宇逆向及Bof基础实验报告

    20155209林虹宇逆向及Bof基础实验报告 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符 ...

随机推荐

  1. C++——继承与派生

    1.类的继承与派生  保持已有类的特性而构造新类的过程成为继承: 在已有类的基础上新增自己的特性而产生新类的过程称为派生: 被继承的已有类为基类:派生出的新类成为派生类.继承和派生其实是一回事. 继承 ...

  2. BFS-八数码问题与状态图搜索

    在一个3*3的棋盘上放置编号为1~8的八个方块,每个占一格,另外还有一个空格.与空格相邻的数字方块可以移动到空格里.任务1:指定的初始棋局和目标棋局,计算出最少的移动步数:任务2:数出数码的移动序列. ...

  3. 使用 C++11 编写可复用多线程任务池

    类的功能 Task (任务基类) 该类主要实现一个任务类 virtual int doWork() = 0; TaskQueue (任务队列) 该类主要针对任务的存储.删除.撤回等状态做管理 Thre ...

  4. 【Unity|C#】基础篇(5)——分部类与分部函数(partial)

    [学习资料] <C#图解教程>(第6章):https://www.cnblogs.com/moonache/p/7687551.html 电子书下载:https://pan.baidu.c ...

  5. valign

    值 描述 top 对内容进行上对齐. middle 对内容进行居中对齐(默认值). bottom 对内容进行下对齐. baseline 与基线对齐.

  6. Wooden Sticks(贪心)

    Wooden Sticks. win the wooden spoon:成为末名. 题目地址:http://poj.org/problem?id=1065 There is a pile of n w ...

  7. Python MonkeyRunner 连接设备总是返回连接成功问题

    device = mr.waitForConnection(1,deviceName) 当使用waitForConnection时,不管设备是否连接,device总是返回一个对象,所以没有办法通过 i ...

  8. web项目中设置首页

    1.在web.xml中设置以下代码: <welcome-file-list> <welcome-file>login.jsp</welcome-file> < ...

  9. 搭建Python开发环境(Mac)

    准备 Python官网: https://www.python.org/ Python官方文档: https://docs.python.org/ 环境搭建 简介 pipenv是Python官方推荐的 ...

  10. undefined 和 null

    cc.log('---log--- guomengkai :',guomengkai); guomengkai is not defined cc.log('---log--- gmk cc.sys. ...