第一范文网 - 专业文章范例文档资料分享平台

FPGA状态机学习笔记(verilog)

来源:用户分享 时间:2025/8/25 11:57:13 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

FPGA之有限状态机学习笔记

有限状态机(FSM)是由寄存器组合组合逻辑构成的硬件时序电路。FSM的状态只可能在同一时钟跳变沿的情况下才能从一个状态转向另一个状态。

Mealy型FSM的下一个状态不仅取决于当前所在状态,还取决于各个输入值。

Moore型FSM的下一个状态只取决于当前状态。

Verilog HDL可以用很多方法描述FSM,最常用的是用always语句和case语句。FSM常用模型有Gray和独热码两种,对于用FPGA实现的FSM建议采用独热码。因为采用独热码可省下许多组合电路的使用,提高电路的速度和可靠性,且总的单元数并无显著增加。用Verilog语言描述FSM,可以充分发挥硬件描述语言的抽象建模能力。

有限状态机设计的一般步骤:

(1)、逻辑抽象,得出状态转换图 (2)、状态化简 (3)、状态分配

(4)、选定触发器的类型并求出状态方程、驱动方程和输出方程 (5)、按照方程得出逻辑图

以下就是分别用独热码和Gray码实现上述状态的源程序:

采用独热码源程序:

module fsm(

Clock, Reset, A,B,C,D,E,Multi,Contig,Single

); input Clock; input Reset; input A,B,C,D,E; output Multi,Contig,Single;

reg Multi; reg Contig; reg Single; parameter [6:0] S1=7'b0000001, S2=7'b0000010, S3=7'b0000100, S4=7'b0001000, S5=7'b0010000, S6=7'b0100000, S7=7'b1000000; parameter U_DLY=1;

reg [6:0] curr_st; reg [6:0] next_st;

always @(posedge Clock or posedge Reset) begin if(!Reset) curr_st=S1; else curr_st= #U_DLY next_st; end

always @(curr_st or A or B or C or D or E) begin case(curr_st) S1: begin Multi =1'b0; Contig =1'b0; Single =1'b0; if(A&~B&C) next_st =S2; else if(A&B&~C) next_st =S4; else next_st =S1; end S2: begin Multi =1'b1; Contig =1'b0; Single =1'b0; if(!D) next_st =S3; else next_st =S4; end S3: begin Multi =1'b0; Contig =1'b1; Single =1'b0; if(A|D) next_st =S4; else next_st =S3;

搜索更多关于: FPGA状态机学习笔记(verilog) 的文档
FPGA状态机学习笔记(verilog).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c7upjj6o5qn4mu7525eju_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top