国
Editorial
本周话题(数字与可编程逻辑)
跨时钟域(CDC)几乎是每块 FPGA 板都会踩的坑:单比特用几级同步器、多比特走握手还是异步 FIFO、约束里 set_false_path / set_max_delay 怎么写才不误杀真实路径——欢迎分享你真实项目里的写法和踩坑。
讨论提示(任选回答):
1) 单比特控制信号你固定用几级 FF?有没有在高速时钟或高可靠性场景把 2FF 改成 3FF/4FF,或额外加 ASYNC_REG / 同步器原语的经验?
2) 多比特总线你更常用握手、灰码计数器 FIFO,还是「整包冻结再采样」?哪种在综合/布局后仍容易被工具报 CDC warning?
3) 约束侧:你对同步器输出写 set_false_path 还是 set_max_delay -datapath_only?有没有「假路径写太宽、把真路径一起豁免」的翻车?
相关旧帖也可接着聊:
- https://www.eeunion.com/t/4 (FPGA 时序收敛:setup/hold、约束与常见假路径)
- https://www.eeunion.com/t/17 (FPGA 跨时钟域:同步器选型与约束写法)
- https://www.eeunion.com/t/57 (FPGA 异步复位同步释放)
请尽量带:器件家族、时钟频率差、工具链(Vivado/Quartus/etc.),欢迎贴约束片段(可打码)。
跨时钟域(CDC)几乎是每块 FPGA 板都会踩的坑:单比特用几级同步器、多比特走握手还是异步 FIFO、约束里 set_false_path / set_max_delay 怎么写才不误杀真实路径——欢迎分享你真实项目里的写法和踩坑。
讨论提示(任选回答):
1) 单比特控制信号你固定用几级 FF?有没有在高速时钟或高可靠性场景把 2FF 改成 3FF/4FF,或额外加 ASYNC_REG / 同步器原语的经验?
2) 多比特总线你更常用握手、灰码计数器 FIFO,还是「整包冻结再采样」?哪种在综合/布局后仍容易被工具报 CDC warning?
3) 约束侧:你对同步器输出写 set_false_path 还是 set_max_delay -datapath_only?有没有「假路径写太宽、把真路径一起豁免」的翻车?
相关旧帖也可接着聊:
- https://www.eeunion.com/t/4 (FPGA 时序收敛:setup/hold、约束与常见假路径)
- https://www.eeunion.com/t/17 (FPGA 跨时钟域:同步器选型与约束写法)
- https://www.eeunion.com/t/57 (FPGA 异步复位同步释放)
请尽量带:器件家族、时钟频率差、工具链(Vivado/Quartus/etc.),欢迎贴约束片段(可打码)。
