主权项 |
一种JTAG下载方式下FPGA逻辑代码的下载方法,其特征在于,包括:(1)将CPU的通讯端口连接到CPLD的通讯端口,形成CPU和CPLD的通讯口线;将由CPU端口所模拟的JTAG下载信号中的TMS信号、TCK信号、TDO信号和TDI信号连接到一块CPLD中;所述的CPLD的若干JTAG下载信号端口标记为TMS_x,TDO_x,TCK_x和TDI_x,其中,x为FPGA在该系统中的编号,分别独立连接到编号为x的FPGA的相应JTAG下载信号端口上;根据与CPLD相连的各FPGA的编号、类型和逻辑代码的信息,所述的CPLD中载入相应的CPLD代码;(2)CPU通过所述的通讯口线向CPLD写入寄存器值,CPLD据此来判断各FPGA当前是否进行逻辑代码下载:对于系统中某个待下载逻辑代码的FPGA而言,如果其在被选择下载之列,CPLD将来自CPU端口的TMS、TCK和TDI信号直接输出到该FPGA的对应JTAG下载信号端口,将逻辑代码下载到该FPGA;否则,CPLD与该FPGA的对应JTAG下载信号端口连接的管脚保持高阻状态;同时,CPLD对每个TCK周期内被选择进行下载的FPGA输出的TDO信号的输出电平进行检测,并设定参与下载的FPGA总数M的一半为一致性检测标准,当处于相同输出电平的TDO信号数目超过M/2时,认为该电平为当前TCK周期内TDO信号的正确输出电平,并将其对应的FPGA编号记为正常下载的FPGA编号,然后将该电平输出到CPU的TDO信号端口,并记录具有与该正确输出电平不相等的电平的TDO信号所对应的FPGA编号,作为异常下载的FPGA编号;如果参与下载的FPGA总数M=1,则不进行上述一致性检测操作,CPLD将该FPGA输出的TDO信号电平输出到CPU的TDO信号端口;(3)下载过程结束后,CPU通过通讯口线读取CPLD的寄存器信息,判断各FPGA下载是否成功:对于正常下载的FPGA编号标记的FPGA,认为其下载成功,对于异常下载的FPGA编号标记的FPGA,认为其下载失 败;如果下载失败,CPU读取CPLD寄存器信息中记录的异常下载的FPGA编号,对这些FPGA分别重复步骤(2)的操作,记录重复操作步骤中异常下载的FPGA编号,两次均为异常下载的FPGA编号所对应的FPGA被认为是故障FPGA,不能正确下载;如果下载成功,CPU通过通讯口线向CPLD写入寄存器值,将所有JTAG下载信号端口置为高阻态。 |