你面前摆着三块FPGA板卡,开发板上只引出一组JTAG信号。怎么让三颗芯片依次完成配置?答案就藏在TDO接TDI的那根线上——菊花链(Daisy Chain)。
一对信号线串起整条链
JTAG接口五个引脚中,TDI和TDO构成数据通路。信号从主机TDI进入第一颗芯片,经内部移位寄存器链逐位移位,从TDO出来接入第二颗芯片的TDI,依次传递,像一列火车过站。每颗芯片在完整接收自己的数据后,由TMS序列触发捕获动作,真正执行配置。整条链共享一对信号,所有芯片必须严格按顺序逐颗完成。
从JTAG到串行配置协议
实际板级设计中,菊花链不局限于JTAG调试。Xilinx等厂商的串行配置方案中,主FPGA通过JTAG链将bitstream逐位推给下游FPGA、DSP甚至ADC。配置顺序和每颗器件的IDCODE长度写死在链路上,上游必须完整接收并放行,下游才启动。一根线解决多芯片上电加载,布线成本极低。
三个高频踩坑点
复位不同步:TRST若只拉低首颗芯片,后续芯片可能停在不确定态。建议TRST全局共接,或软件多加几个复位周期再发TMS序列。
TCK取最低上限:链上每颗芯片有自己的JTAG时钟上限,整条链只能跑最慢那颗的频率。混用不同上限的器件时务必查手册。
扇出与走线长度:级联超过4~5颗后,TDI/TDO驱动能力下降,信号完整性变差。加缓冲器或缩短PCB走线是基本操作。
会。JTAG严格串行,数据必须逐位经过每颗芯片。中间某颗供电异常导致内核未就绪,移位寄存器卡死,后续芯片永远收不到正确数据。排查时读取每颗芯片IDCODE定位断链位置,再单独对该芯片上电复位,重新跑完整TMS序列。
并行配置每颗芯片有独立数据线,可同时进行、互不阻塞;菊花链只有一对TDI/TDO,所有芯片共享同一条通路,必须逐颗完成。省引脚、布线简单是优势,代价是速度受最慢芯片限制,且单点故障全链瘫痪。
一句话收束:菊花链用一对信号串起多颗器件,省了引脚,也绑死了时序与可靠性。
思考题:板上有4颗FPGA加2颗DSP,你会选纯菊花链还是"主干菊花链+局部并行"的混合拓扑?关键取舍点在哪?
这类多芯片级联的工程问题,在我们的课程"进阶接口设计"与"实战项目"阶段反复出现——从JTAG调试到GT收发器配置,每步都要处理链路上时序约束与信号完整性。如果你正在做项目或在面试中碰到类似链路设计,点击右下角会话窗口,和我们的FPGA讲师一对一沟通,把方案落到可实现的层面。
未经许可,禁止转载!
下一篇:没有了