11.4FPGA+DSP协同渠道的调试技巧和注意事项
11.4.1FPGA和DSP的阻隔调试技能
作为双芯片的协同体系,调试的开端阶段需求对每个芯片进行独自测验。这种状况下就需求防止别的一个芯片对调试发生影响,比较好的方法便是让它停止作业。
关于FPGA芯片,假如没有进行装备,那么一切的管脚都处于高阻状况。由于高阻态没有驱动才能,所以不会对DSP发生直接的影响。但是在某些状况下,会发生直接的影响。
例如,许多DSP会在体系复位的时分读取某些地址信号来确认发动后的作业形式。假如这些信号衔接到了FPGA的管脚上,那么上电后这些信号就会处于不确认的状况。假如处于过错的电平状况,就会对DSP发生很大的影响。
处理的方法便是经过上拉或许下拉电阻来确保这些处于高阻态的信号处于正常的状况,如图11.10所示。这样,在FPGA的管脚处于高阻状况的时分,管脚会被上拉到高电平或许下拉到低电平。
图11.10双端口RAM模块
DSP芯片和FPGA芯片不同,即便在没有进行装备的状况下,有些管脚也会处于输出状况,比方地址信号和操控信号。那么在独自调试FPGA芯片的时分,就要考虑到这些管脚是否会对FPGA发生影响。
特别是没有用到(unused)的FPGA管脚,有些体系默许的状况是低电平。这些管脚假如和DSP的输出管脚衔接到一同,就会呈现总线的抵触状况。因而,在工程项目设置的时分,要将UNUSEDPIN指定为高阻态或许INPUT形式。
11.4.2FPGA测验点的规划
FPGA芯片的管脚资源一般都很丰厚,除了满意体系使用外,还会剩下部分管脚没有指定功用。这些剩下的管脚用来做测验点会便利体系的调试。
例如,DSP的地址和数据信号都归于高速信号,假如直接在这些信号上加测验点测验会影响到信号的波形质量。特别是BGA封装的DSP芯片,这些管脚不能用示波器设备的探头或表笔直接丈量。并且,板上的测验点太多也会影响布线的质量和漂亮。
充分使用FPGA的灵活性,能够将需求测验的信号指定到某个测验点上。这样就不需求直接测验这些信号点,而是经过测验点进行直接的丈量。
如图11.11所示,假如需求测验DSP的信号ADDR[15]和DATA[0],能够把这两个信号在FPGA内部指定到测验点T1、T2。只需直接测验T1、T2就能够了。
assignT1=ADDR[15];//把ADDR[15]信号指定到测验点T1
assignT2=DATA[0];//把DATA[0]信号指定到测验点T2
此外,这些测验点还能够用来做功用扩展。由于这些测验点都是双向的一般I/O,能够作为衔接器信号和其他板卡或许体系互联。
11.4.3凭借FPGA的内部逻辑分析仪来辅佐调试
在前面的章节中从前介绍过FPGA的内部逻辑分析仪功用,如Altera公司的SignalTAPII和Xilinx公司的ChipScope等。这些东西能够用来测验FPGA运转状况下信号的改变状况,特别是总线的运转状况。
在FPGA+DSP的体系中,DSP的许多信号需求衔接到FPGA的管脚。使用内部逻辑分析仪功用,就能够经过FPGA来调查这些信号的时序和状况,提高了调试的可视化程度。