为什么需要“输出锁存”

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

  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

相关推荐
3有青年1 天前
Altera FPGA操作系统支持的情况分析
fpga开发
国科安芯1 天前
卫星通讯导航FPGA供电单元DCDC芯片ASP4644S2B可靠性分析
单片机·嵌入式硬件·fpga开发·架构·安全性测试
stars-he1 天前
FPGA学习笔记-图书馆存包柜,乒乓球游戏电路设计
笔记·学习·fpga开发
从此不归路1 天前
FPGA 结构与 CAD 设计(第3章)下
ide·fpga开发
YprgDay1 天前
Vivado单独综合某一模块查看资源消耗
fpga开发·vivado
Joshua-a1 天前
高云FPGA在线调试/逻辑分析仪简要使用流程
嵌入式硬件·fpga开发·高云
博览鸿蒙2 天前
FPGA 工程中常见的基础硬件问题
fpga开发
GateWorld2 天前
FPGA 实现无毛刺时钟切换
fpga开发·实战·无毛刺时钟
Seraphina_Lily2 天前
从接口选型到体系结构认知——谈 CPU–FPGA–DSP 异构处理系统与同构冗余设计
fpga开发
Seraphina_Lily2 天前
CPU–FPGA–DSP 异构系统中的总线接口选型——为什么 CPU 用 eLBC,而 DSP 用 XINTF?
fpga开发