FPGA中复位信号的省略

复位信号哪些场景可以省略

复位信号在某些时候可以省略,从而节省LUT和布线资源。

必须拥有复位信号的场景:控制逻辑,状态位,重要计数器,重要状态寄存器

可以不加复位信号的场景:数据传输的中间寄存器

可以省略复位的场景

场景 示例 不复位的原因 条件
用于消除亚稳态的打拍信号 uart_rx_ff1 一般不需要复位信号,其本意是为了消除亚稳态,如果有复位信号,反而会加重亚稳态问题。
uart发送/接收寄存器 uart_tx_reg 只有当判断到uart一帧数据发送,或者接收完成。该寄存器才有效,初值对结果无影响。 系统不会用uart初始值的话
纯数据流水线寄存器 pipe1, pipe2, pipe3 上电后数据随机,但系统启动后会被新数据覆盖 系统启动阶段会自动刷新数据
普通计数器(持续运行型) clk_div_cnt, pwm_cnt 初值不影响最终周期 不依赖特定初值,只要连续计数即可
DSP 运算中间寄存器 mul_out, add_res 每次运算会更新值 不需复位
RAM 输出寄存器 ram_data_out 上电读出随机值无关紧要 读取前不会使用
高速数据流中间级寄存器 视频流、音频流数据 初值无意义 有效数据到来后自然更新
握手延迟链 / 延迟线 delay1, delay2 启动后自动进入稳定延迟 初始值不影响数据相位

必须复位的场景

场景 示例 不复位的后果 原因与说明
电平信号转脉冲信号时,对电平信号的打一拍 脉冲信号一般具有控制功能
状态机状态寄存器 (FSM) state 上电进入非法状态,系统逻辑跑飞 FSM 无法保证初始状态,必须从 IDLE 开始运行
控制信号寄存器 enable, valid, start, done 上电时输出随机信号导致错误触发 控制逻辑在启动阶段必须处于确定状态
复位信号同步器 reset_sync1, reset_sync2 导致全局复位不同步或短脉冲错误 自身用于产生稳定复位,必须保证初值
跨时钟域握手信号 req, ack 跨时钟通信异常 初始状态必须一致,否则握手协议失效
总线接口控制信号 AXI、I2C、SPI 控制寄存器 启动时协议不符合规范 通信协议要求复位后为固定状态
计数器(若依赖复位启动) 帧计数器、字节计数器 无法同步到系统起点 需要复位到零才能正确对齐帧边界
FIFO 控制逻辑 (wr_ptr, rd_ptr) FIFO 读写指针 上电指针错乱,FIFO 满/空判断错误 指针初始化错误会破坏整个数据流

复杂场景下

  1. 如果跨时钟域传电平信号,在目的域为解决亚稳态问题打了两拍的,为了将这电平信号转脉冲信号又打了一拍。
    • synchronizer(前两拍) :不复位(避免引入异步复位带来的风险)。
    • edge-detect 的延迟寄存器(最后一拍) :加同步复位,保证上电/复位释放时不会产生虚假脉冲。
相关推荐
156082072198 小时前
JFMRFVU3P5G的bit正常,但烧录mcs程序后加载异常
fpga开发
狂奔蜗牛(bradley)8 小时前
把 EtherCAT 初始化从 FPGA 搬到 ARM:命令通道的接口设计与11个坑
arm开发·人工智能·fpga开发·架构
女神下凡1 天前
芯参谋(37):EEPROM_电路设计指南
arm开发·单片机·嵌入式硬件·fpga开发·设计规范
szxinmai主板定制专家2 天前
工业视觉新思路:FPGA图像预处理+RK NPU推理,实现高速缺陷检测
人工智能·嵌入式硬件·fpga开发·rk3576+codesys
FPGA小徐2 天前
【硬件实战】立创 EDA 绘制 TF/SD 卡模块电路|SPI 模式原理图 + 阻抗匹配 + PCB 布局布线全教程
单片机·嵌入式硬件·fpga开发
狂奔蜗牛(bradley)3 天前
EtherCAT DC 分布式时钟同步的 ModelSim 仿真:从帧模板到从站行为建模
人工智能·嵌入式硬件·fpga开发·架构
ALINX技术博客3 天前
8 通道同步采样 ADC!AN706 波形显示实验 【FPGA黑金云课堂】
fpga开发
szxinmai主板定制专家3 天前
RK3568+FPGA+CODESYS异构控制方案:赋能半导体设备与工业自动化升级
人工智能·fpga开发·自动化·rk3576·半导体设备
辰丁电子3 天前
allegro入门教程-菜单栏Logic
fpga开发·pcb设计·pcb工艺·layout·pcb layout
FPGA小徐4 天前
数字IC/FPGA设计基础_ILA原理与使用
fpga开发