FPGA的RTL级几种状态控制的分析总结

FPGA实现算法中的逻辑,执行不同状态的切换是关键。现对近期实现的几个功能中用到状态控制的部分进行总结。

1.外部触发信号到来后,执行若干步骤,步骤由计数器控制。(这里的计数器可计数为0-127)。故触发信号高电平使能计数器使能信号(用组合逻辑实现)。仅计数器记到127后,或者复位信号到来,计数器使能归0.使能一旦归零,计数器恢复0.

always @(trg or count or rst)
    if(trg)
         cn_en =  1'b1;//数据长度为128,可更改
    else if((count==127)||(!rst))
         cn_en = 1'b0;
         else
         cn_en = cn_en;

always @(posedge clk or negedge rst)
    if((!rst)||(trg))//复位或者有触发信号到来后,计数器置零
    begin
       count <= 7'b0;
    end
    else if(cn_en)
        count <= count + 1;
         else
        count <= 7'b0;

2.不同于1,触发信号到来后进行操作,但是会在不定次数后,完成操作而停止。故可在完成操作的模块中加入完成告知信号d_req,这样,完成使能信号,能够使得N_state置0,从而达到目标。

always @(trg or d_req)          
    if(trg)
       N_state = 1'b1;
    else
       N_state =  (~d_req)? N_state:1'b0;

3.而对于可以抽象成多种操作的状态机的,则用状态机来描述,更加简便。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值