FPGA——状态机专题

一、何为状态机

  • 状态机由状态寄存器和组合逻辑电路构成,能够根据控制信号按照预先设定的状态进行状态转移,是协调相关信号动作、完成特定操作的控制中心。有限状态机简写为FSM(Finite State Machine),主要分为2大类:
    第一类,若输出只和状态有关而与输入无关,则称为摩尔(Moore)型状态机。
    第二类,输出不仅和状态有关而且和输入有关系,则称为米莉(Mealy)型状态机。

二、状态机状态检测

2.1 问题描述

  • 根据以下描述功能用verilog编写一段代码,并用状态机来实现该功能。
    (1)状态机:实现一个测试过程,该过程包括启动准备状态、启动测试、停止测试、查询测试结果、显示测试结果、测试结束返回初始化6个状态;用时间来控制该过程,90秒内完成该过程;
    (2)描述状态跳转时间;
    (3)编码实现。

2.2 工程创建

① 首先在相应的文件夹下建立一个名为state_show(可自行命名)的文件,里面分别创建prj(存放工程的文件)、src(存放Verilog代码源文件)、sim(存放仿真文件)、tcl(引脚配置文件),除此之外还可以建立ip(存放知识产权的文件)等…

在这里插入图片描述
②打开Quartus ||(我的版本是18.1),新建工程
file——New——New Quartus Prime Preject——OK
然后next,到如下图页面:

在这里插入图片描述
③两个next后,根据自己的开发版型号进行选择,笔主这里是:

在这里插入图片描述
④下一页面如下

在这里插入图片描述

  • 然后finish,创建工程完成。

2.3 代码

  • 新建 verilog 文件,File->New->Verilog HDL File
  • 注意保存时,要保存在src中,命名要与Verilog 语句中一致

在这里插入图片描述

2.3.1 计时器模块

module time_count(
	input  clk,   //50M时钟                        
	input  rst_n, //复位信号
	
	output reg sec_15//15s           
);

parameter MAX_NUM = 30'd749_999_999;//最大数15s,750_000_000-1次
reg [29:0] cnt_15;//计数寄存器

//15s计时器
always@(posedge clk or negedge rst_n)begin
	if(!r
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值