1. ZYNQ JTAG调试模式概述
在ZYNQ SoC开发过程中,JTAG调试是最基础也是最重要的功能之一。作为FPGA工程师,我经常需要面对各种JTAG调试场景,特别是在新硬件刚到手、Flash中还没有烧录任何程序的情况下。这时候理解ZYNQ的JTAG架构和工作原理就显得尤为重要。
ZYNQ的JTAG调试主要分为两种模式:级联模式(Cascade Mode)和独立模式(Independent Mode)。这两种模式的选择会直接影响我们调试PS(Processing System)和PL(Programmable Logic)的方式。在实际项目中,我经常需要根据不同的调试需求在这两种模式间切换。
重要提示:当拿到一块全新的ZYNQ开发板时,Flash中没有任何程序,此时PL部分尚未配置,只能通过PL侧的JTAG接口访问。这是因为PS侧的EMIO PJTAG需要PL配置后才能使用。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. JTAG控制器架构解析
2.1 基础JTAG架构
ZYNQ的JTAG控制器架构相当精妙,它同时包含了PS和PL两部分的JTAG控制逻辑。从架构图中可以看到:
- PS侧:包含Arm DAP(Debug Access Port)控制器,用于调试Arm Cortex处理器
- PL侧:包含Xilinx TAP(Test Access Port)控制器,用于配置和调试FPGA逻辑
这两个控制器通过内部连接形成一个JTAG链,Arm DAP位于链的前端,Xilinx TAP位于后端。这种设计使得我们可以通过单一的JTAG接口同时访问PS和PL。
2.2 初始状态下的JTAG访问
当开发板首次上电且Flash中无程序时,PL部分尚未配置,此时:
- EMIO PJTAG无法使用,因为PL还未初始化
- 只能通过PL JTAG接口(PL_TDI/TDO/TMS/TCK)访问
- 此时JTAG链仅包含Xilinx TAP控制器
这个阶段我们通常需要先通过PL JTAG烧写FSBL(First Stage Boot Loader)到Flash中,为后续调试做好准备。
3. 级联模式详解
3.1 级联模式工作原理
级联模式(Cascade Mode),也称为单链模式,是ZYNQ默认的JTAG工作模式。在
