论文部分内容阅读
在半导体业界,集成电路SoC (System on Chip,片上系统)成为目前主导的设计技术。SoC通常将微处理器、模拟IP核、数字IP核和存储器(或片外存储控制接口)集成在单一芯片上,通过软硬件协同设计,使应用产品实现小型、轻量、低功耗、多功能、高速度和低成本。SoC集成度和复杂度的增大使测试难度和测试成本不断加大,使可测性/可调试性设计技术在SoC设计方法学中的重要性凸显,也促进了高效率和低成本的JTAG测试技术的标准化和广泛应用。SoC芯片流片后,系统的调试任务大部分集中在嵌入式软件调试,方便的嵌入式软件调试器是实现成功设计和加速上市的关键。CSoC (Configurable System on Chip,可配置SoC)是SoC实现技术中的一类。本文基于CSoC的硬件设计,设计并实现了一种基于JTAG的CSoC片上调试系统。针对市场需求,Agate Logic公司借助其APGA(Adaptable Programmable Gate Array,普适可编程门阵列)技术,在CSoC芯片中集成了高性能8051内核和FPGA (Field-Programmable Gate Array,即现场可编程门阵列)逻辑,使产品具备可编程特性的同时还能获得性价比上的优势。可以说,CSoC是一个可编程、可配置的嵌入式应用开发系统。在本课题中,目标机是Agate Logic公司内嵌高性能8051微控制器硬核的嵌入式系统CSoC,其调试接口为OCDS (On Chip Debugging System,片上调试系统),应用的调试标准为JTAG。宿主机安装业界广泛应用的Keil软件。从通用性与易用性等角度考虑,选择USB作为PC和调试器之间的连接方式。本课题的设计重点和难点是软件设计。为了方便软件代码的设计和维护,将软件划分为3个层次:Keil接口驱动层、USB驱动层和调试器固件层。调试器逻辑处理芯片选择福华先进微电子(FameG)的产品FS7805,本课题利用FS7805的APLIF (Advance Programmable Logic Interface,高效可编程逻辑接口)模块,透过软件来设定APLIF的传输特性,将APLIF模拟成JTAG波形信号控制接口,通过设计适合的波形描述符,利用芯片内部逻辑的命令方式实现调试信号的正确输出。本文中还尝试了另一种调试器的实现方法,即直接从PC推出JTAG逻辑。利用调试器内部的FIFO缓存数据,推出调试信号。论文中比较了两种实现方法的异同,从软件实现的角度认为直接从PC推出JTAG逻辑的方法更高效,移植性与可扩展性更好。在第七章对第二种方法实现的调试器从正确性角度进行了性能评估。本课题用较低的成本实现了软/硬件断点、单步、运行/停止、MCU复位、查看MCU寄存器、读取/修改外部存储器等调试功能,且调试的执行独立于MCU,保证了MCU运行的实时性,对其他SoC的设计具有一定的参考价值。