为什么需要“输出锁存”

它的目的可以一言以蔽之:将组合逻辑产生的输出信号"同步"到时钟节拍上,从而大幅提升电路的稳定性和可预测性。

  1. 消除毛刺(Glitch Filtering)

• 组合逻辑输出(如 po_cola_comb 和 po_money_comb )在电平跳变时可能产生瞬态毛刺。

• 通过在时钟上升沿采样并锁存输出,可以滤除这些毛刺,确保输出信号的稳定性。

  1. 时序同步(Timing Synchronization)

• 状态机的组合逻辑输出可能因路径延迟不同而出现亚稳态(Metastability)风险。

• 锁存器在时钟边沿统一更新输出,使信号变化与系统时钟同步,满足建立/保持时间要求。

  1. 时序路径可控性

• 锁存后输出信号的延迟固定为一个时钟周期,便于静态时序分析(STA)。

• 若直接输出组合逻辑,时序路径可能跨越多个时钟域,增加时序收敛难度。

复杂可乐机例子

状态机输出

assign po_cola = ((current_state == TWO_HALF) && (key_half || key_one)) ||

((current_state == THREE) && (key_half || key_one));

assign po_money = (current_state == THREE) && (key_half || key_one);

解决

主模块解决

always @(posedge sys_clk or negedge sys_rst_n) begin

if (!sys_rst_n) begin

po_cola <= 1'b0;

po_money <= 1'b0;

end else begin

po_cola <= po_cola_comb; // 锁存组合逻辑输出

po_money <= po_money_comb;

end

end

相关推荐
乌恩大侠14 小时前
【OAI】 USRP 在conf文件中的配置,RU选项
fpga开发
qq_小单车2 天前
xilinx-DNA
fpga开发·xilinx
Flamingˢ2 天前
FPGA中的嵌入式块存储器RAM:从原理到实现的完整指南
fpga开发
Flamingˢ2 天前
FPGA中的存储器模型:从IP核到ROM的深度解析与应用实例
网络协议·tcp/ip·fpga开发
FPGA小c鸡2 天前
【FPGA深度学习加速】RNN与LSTM硬件加速完全指南:从算法原理到硬件实现
rnn·深度学习·fpga开发
Aaron15882 天前
通信灵敏度计算与雷达灵敏度计算对比分析
网络·人工智能·深度学习·算法·fpga开发·信息与通信·信号处理
博览鸿蒙3 天前
IC 和 FPGA,到底区别在哪?
fpga开发
思尔芯S2C3 天前
FPGA原型验证实战:如何应对外设连接问题
fpga开发·risc-v·soc设计·prototyping·原型验证
Flamingˢ3 天前
FPGA实战:VGA成像原理、时序详解与Verilog控制器设计与验证
fpga开发
FPGA_小田老师3 天前
xilinx原语:OSERDES2(并串转换器)原语详解
fpga开发·lvds·xilinx原语·oserdese·并串转换