浅谈FPGA 四段式状态机

时间:2025-06-15  作者: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状态的条件。还有,明德扬规定转移条件的格式,一定是“ 当前状态&&具体条件”,以防想不到的情况出现。有了这些规范的保证,无论多复杂的场合,任何设计都能有条理、有步骤地一次性设计正确。

猜您喜欢

贴片电阻681,这个看似不起眼的电子元件,在各种电子设备中扮演着至关重要的角色。它体积小巧,却拥有强大的功能,是电路设计中不可或缺的一部分。「681」代表着其阻...
2024-11-26 11:29:42

现代电子产品中,封装技术的选择对设备的性能、成本和体积都有着直接影响。QFN(QuadFlatNo-lead)封装因其独特的设计和优越的性能,逐渐成为许多电子应...
2025-02-21 11:29:02

线性传感器是一种检测装置,其工作原理基于输入与输出之间成线性关系的特性。以下是对线性传感器工作原理的详细解释:一、基本概念当传感器的输入与输出之间成线性关系...
2024-10-21 16:10:00

电流采样电阻作为关键的电子元器件,其性能直接影响系统的稳定性和精确度。Walsin(华新)作为知名的电阻品牌,很好的品质和丰富的产品线,成为众多工程师和设计师的...
2013-08-12 09:50:30

现代电子电路中,二极管作为重要的基础元件,应用于整流、开关、信号调制等多个领域。其中,整流二极管和肖特基二极管是最常见的两种类型。虽然都属于二极管的范畴,但在结...
2025-03-31 15:31:38

现代电子产品的设计与制造中,封装技术的选择对电路性能、尺寸和成本等方面有着重要影响。QFN32(QuadFlatNo-lead32)作为流行的表面贴装封装形式,...
2025-04-24 23:30:06

光敏电阻作为重要的光电转换元件,被应用于各种光线检测和自动控制系统中。Walsin(华新)作为知名的电子元件制造商,其光敏电阻产品以稳定的性能和优良的品质深受市...
2018-12-08 18:13:30

特殊功能放大器因其独特的设计和功能,应用于各个领域,带来了显著的优势。特殊功能放大器能够有效提升信号的质量和强度,确保在长距离传输过程中信号不失真。这对于音频和...
2008-01-24 00:00:00

电子元器件领域,贴片电阻是很重要的配件。国内贴片电阻市场竞争激烈,涌现出一批优秀的品牌。虽然没有一个官方的、统一的排行榜,但根据市场占有率、产品质量和口碑等因素...
2024-11-29 10:26:10

电阻作为电子元器件中的基础组件,其性能和质量直接影响整个电子设备的稳定性和可靠性。宏达电子作为国内知名的电子元器件制造商,其金属膜电阻产品凭借优异的性能和稳定的...
2015-03-11 19:44:25