verilog 3段式状态机

这篇具有很好参考价值的文章主要介绍了verilog 3段式状态机。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

3段式状态机:

3段式状态机写法,写出下图状态转换图。
verilog三段式状态机,verilog,systemverilog,verilog
1 确定输入输出信号,及其类型(是wire还是reg);
2 声明内部信号,一般需要定义current_state和next_state;
3 用3个always语句描述状态机。第一个用来次态和现态的转换,第二个always用于现态在输入情况下转换为次态的组合逻辑;第三个语句用于现态到输出的组合逻辑输出。


// 3段式状态机写法,写出上图状态转换图。
module finite_fsm(
output 	reg		z_o,
input			clk,
input			Rst_n,
input			w_i); // 输出端口,输入端口,和输出端口类型声明

//参数声明
parameter	IDLE = 2'b00;
parameter	S0 = 2'b01;
parameter	S1 = 2'b10;

//内部信号声明
reg[1:0]	current_state;
reg[1:0]	next_state;

// 时序逻辑 第1个always用来 时钟来时,转换次态和现态
always @ (posedge clk or negedge Rst_n) begin
    if(!Rst_n)  // 复位
    	current_state <= IDLE;
    else
        current_state <= next_state;
end

// 次态的组合逻辑 第2个always 规定在有输入时转换为哪一个次态
always @ (w_i or current_state) begin
    case(current_state)
        IDLE:begin
				if(w_i) next_state = S0;
				else   next_state = IDLE;
			 end
        S0:  begin
        		if(w_i) next_state = S1;
                else    next_state = IDLE;
             end
        S1:  begin
                if(w_i) next_state = S1;
                else    next_state = IDLE;
             end
        default : next_state = 2'bxx;
   endcase
end

//输出逻辑  第3个always 规定在每个状态的输出
always @ (*) beign
    case(current_state)
        IDLE:  z_o = 1'b0;
        S0:    z_o = 1'b0;
        S1:    z_o = 1'b1;
        default:  z_0 = 1'b0;
    endcase
end
endmodule

Moore状态机(输出与输入变量无直接关系)
米利状态机(输出与输入变量直接相关)

(1)一段式:整个状态机写到一个always模块里面,在该模块中既描述状态转移,又描述状态的输入和输出;
(2)二段式:用两个always模块来描述状态机,其中一个always模块采用同步时序描述状态转移;另一个模块采用组合逻辑判断状态转移条件,描述状态转移规律以及输出;
(3)三段式:在两个always模块描述方法基础上,使用三个always模块,一个always模块采用 同步时序 描述状态转移,一个always采用组合逻辑判断状态转移条件,描述状态转移规律,另一个always模块描述状态输出(可以用组合电路输出,也可以时序电路输出)。
文章来源地址https://www.toymoban.com/news/detail-607157.html


到了这里,关于verilog 3段式状态机的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Flutter BottomSheet 三段式拖拽

    前面倒是有讲过Android原生的BottomSheetBehavior,使用场景还是蛮多的,最近在用Flutter做一款地图App,有用到BottomSheet的功能,但是 Flutter 自带的BottomSheet有点拉,只能显示和隐藏销毁,不支持折叠为最小高度状态也不支持三段式拖动 ,那就自己撸一个吧: 既然是基于系统的Bot

    2024年02月09日
    浏览(44)
  • [Daimayuan] 三段式(C++,数组前缀和)

    有一个长度为 n n n 的序列,现在我们想把它切割成三段(每一段都是连续的),使得每一段的元素总和都相同,请问有多少种不同的切割方法 输入描述 第一行给出一个数 n n n ,( 1 ≤ n ≤ 1 0 5 1≤n≤10^5 1 ≤ n ≤ 1 0 5 ) 第二行给出序列 a 1 a_1 a 1 ​ , a 2 a_2 a 2 ​ , a 3 a_3 a 3 ​

    2024年02月05日
    浏览(34)
  • 电力系统电流三段式保护MATLAB仿真模型

    完整资源请查看主页置顶博客(专享优惠) 整体模型如下: Matlab/Simulink搭建的电力系统电流保护模型采用辐射型单电源供电的运行方式 Ⅰ段保护的搭建 Ⅰ段保护为瞬时速断保护,根据Ⅰ段整定原则确定整定值。线路发生短路故障时,短路电流急剧增大;超过设置的整定值时

    2024年02月14日
    浏览(45)
  • 三段式电流保护与自动重合闸MATLAB仿真模型

    微 ❤ 关注“电气仔推送”获得资料(专享优惠) 前加速、后加速的区别: 前加速是保护装置不判别是永久性故障还是瞬时故障,直接跳闸,然后经重合闸装置来纠正;后加速是保护装置是先判别故障类型有选择性跳闸 以下只叙述后加速的相关内容,前加速不在赘述!!!

    2024年02月02日
    浏览(36)
  • 【零基础玩转BLDC系列】无刷直流电机无位置传感器三段式启动法详细介绍及代码分享

    无刷直流电动机基本转动原理等内容请参考《基于霍尔传感器的无刷直流电机控制原理》、《基于反电动势过零检测法的无刷直流电机控制原理》与《以GD32F30x为例定时器相关功能详解》,BLDC基本原理及基础知识本篇不再赘述。 直流无刷电机由于定子绕组的反电动势与电机的

    2023年04月08日
    浏览(84)
  • verilog 3段式状态机

    3段式状态机写法,写出下图状态转换图。 1 确定输入输出信号,及其类型(是wire还是reg); 2 声明内部信号,一般需要定义current_state和next_state; 3 用3个always语句描述状态机。第一个用来次态和现态的转换,第二个always用于现态在输入情况下转换为次态的组合逻辑;第三个

    2024年02月15日
    浏览(48)
  • systemverilog/verilog文件操作

            Verilog具有系统任务和功能,可以打开文件、将值输出到文件、从文件中读取值并加载到其他变量和关闭文件。 1.1.1、打开和关闭文件 文件操作选项: 1.1.2、写文件         每个系统函数都以基数十进制打印值。它们还有其他三个版本,可以以二进制、八进制和十

    2024年01月21日
    浏览(37)
  • FOC:【2】SVPWM(七段式)的Verilog实现与仿真

    碎碎念: 经过近一周的调试与查错(不好意思我实在太菜了),才终于从MATLAB代码的基础上,实现了Verilog对SVPWM算法的实现,同时给出仿真的结果。 2022年10月20日更新 :实在抱歉,由于之前在算法中没有考虑到输入电压值量化以及死区时间的问题,我也是在电路测试过程中

    2023年04月08日
    浏览(79)
  • 【FPGA零基础学习之旅#10】按键消抖模块设计与验证(一段式状态机实现)

    🎉欢迎来到FPGA专栏~按键消抖模块设计与验证 ☆* o(≧▽≦)o *☆ 嗨 ~我是 小夏与酒 🍹 ✨ 博客主页: 小夏与酒的博客 🎈该系列 文章专栏: FPGA学习之旅 文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏 📜 欢迎大家关注! ❤️ 🥝 模块设计: 🥝 按键消

    2024年02月12日
    浏览(41)
  • 使用 VHDL、Verilog、SystemVerilog、SystemC、HLS(C++、OpenCL)进行数字硬件建模

    目录 引言 1. 数字硬件建模概述 1.1 硬件描述语言 1.2 系统级建模语言

    2024年02月08日
    浏览(90)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包