浅谈FPGA 四段式状态机

时间:2025-05-01  作者:Diven  阅读:0

在FPGA中,相信有FPGA学习经验的都能了解,现在流行的状态机设计,一般可分为一段式、两段式和三段式,如果不了解的,可以自行百度。

浅谈FPGA 四段式状态机

上面的三种设计法虽然很流行,但设计时仍然要考虑很多因素,导致总是要反反复复调试才能设计成功。这不符合明德扬一次考虑一个因素、一次性设计正确的设计理念。为此,明德扬特推出四段式状态机的写法。

四段式不是指三个always代码,而是四段程序。使用四段式的写法,可参照明德扬GVIM特色指令Ztj产生的状态机模板。

第一段,同步时序的always模块,格式化描述次态迁移到现态寄存器

always@(posedge clk or negedge rst_n)begin

if(!rst_n)begin

state_c 《= IDLE;

end

else begin

state_c 《= state_n;

end

end

第二段,组合逻辑的always模块,描述状态转移条件判断。注意转移条件用信号来表示,信号名要按明德扬规则来命名。

always@(*)begin

case(state_c)

IDLE:begin

if(idle2s1_start)begin

state_n = S1;

end

else begin

state_n = state_c;

end

end

S1:begin

if(s12s2_start)begin

state_n = S2;

end

else begin

state_n = state_c;

end

end

S2:begin

if(s22idl)begin

state_n = IDLE;

end

else begin

state_n = state_c;

end

end

default:begin

state_n = IDLE;

end

endcase

end

assign idle2s1_start = state_c==IDLE && ;

assign s12s2_start = state_c==S1 && ;

assign s22idl_start = state_c==S2 && ;

第三段,用assign定义转移条件。注意条件一定要加上现态。

assign idle2s1_start = state_c==IDLE && ;

assign s12s2_start = state_c==S1 && ;

assign s22idl_start = state_c==S2 && ;

第四段,设计输出信号。明德扬规范要求一个always设计一个信号,因此有多少个输出信号,就有多少个always。

always @(posedge clk or negedge rst_n)begin

if(!rst_n)begin

out1 《=1‘b0

end

else if(state_c==S1)begin

out1 《= 1’b1;

end

else begin

out1 《= 1‘b0;

end

end

明德扬四段式状态机符合一次只考虑一个因素的设计理念。第一段代码,照抄格式,完全不用想其。第二段代码,只考虑状态之间的跳转,也就是说各个状态机之间跳转关系。第三段代码,只考虑跳转条件。第三段,每个信号逐个设计。

明德扬为了保证一次设计正确,还制定了一些规范。例如第二段的跳转条件,只准用信号名代替,并且制定了跳转条件的命名规范,1是解决了命名困难的问题,2是对转移条件一目了然,如idl2s1_start,就可以看出是IDLE跳到S1状态的条件。还有,明德扬规定转移条件的格式,一定是“ 当前状态&&具体条件”,以防想不到的情况出现。有了这些规范的保证,无论多复杂的场合,任何设计都能有条理、有步骤地一次性设计正确。

猜您喜欢


现代工业和电子设备中,连接器的选择对于系统的性能和可靠性非常重要。TERMINAL_21.4X12.7MM_TM作为常见的连接器,因其优越的性能和灵活的应用而受...
2025-04-22 06:00:10

LED技术在过去几年中迅速发展。LED驱动电源是确保灯具正常工作的关键部分。安规电容在其中是重要配件。本文将详细探讨LED驱动安规电容的作用。安规电容的定义安规...
2025-03-23 15:01:07

采样电阻作为电流检测和信号采集的重要部件,是关键配件。LIZ(丽智)作为国内知名的电子元件品牌,其生产的采样电阻因质量稳定、规格齐全而受到市场青睐。本文将详细介...
2018-07-27 15:59:30

电阻器作为基础电子元件,其性能的稳定性和可靠性显得尤为重要。防硫化电阻因其优异的耐硫化特性,应用于各种电子领域。Uniohnm(厚声)作为知名的电阻制造品牌,旗...
2015-02-19 19:24:05

贴片电阻的误差是指其标称阻值与实际阻值之间的偏差。计算方法取决于误差的表示方式,通常有百分比和字母代码两种。百分比法: 电阻上直接标注±百分比,例如±1%,±5...
2024-11-29 10:25:56

电阻器作为电子元件中的基础组件,其性能和品质直接影响整个电子设备的稳定性和寿命。Kyocera(京瓷)作为全球知名的电子元器件制造商,其合金电阻因高精度、高可靠...
2016-09-23 04:47:30

光敏电阻灯控是利用光敏电阻(也称为光电导体)来实现灯光控制的技术。光敏电阻能够根据环境光照强度的变化,自动调节电路中的电流,从而控制灯的开关状态。这种控制方式应...
2025-04-17 21:00:38

三角锁是常见的锁具,应用于家庭、办公室和商店等场所。不同类型的三角锁在设计、材质和功能上存在一些明显的区别。三角锁的材质可以分为金属和塑料两种。金属三角锁通常更...
2012-09-20 00:00:00

粉尘检测仪是重要的环境监测工具,应用于多个领域。在工业生产中,粉尘检测仪用于监测车间内的粉尘浓度,确保工人健康与安全,预防职业病的发生。在建筑施工现场,粉尘检测...
2022-06-10 00:00:00