Professional Documents
Culture Documents
U DC 密级 公 开
工程硕士学位论文
设计与实现
硕士生姓名 黄佳帅
学 科 领 域 软件工程
研 究 方 向 高性能微处理器设计
指 导 教 师 刘 仲 副研究员
万江华 副研究员
二〇一五年三月
Design and Implementation of The High
Performance M-DSP Emulation/Test Unit
Candidate:Huang JiaShuai
Advisor:Prof. LiuZhong
Prof. Wan JiangHua
A thesis
Submitted in partial fulfillment of the requirements
for the professional degree of Master of Engineering
in Software Engineering
Graduate School of National University of Defense
Technology
Changsha,Hunan,P.R.China
(March,2015)
国防科学技术大学研究生院工程硕士学位论文
目 录
摘 要 ....................................................................................................................... i
ABSTRACT ............................................................................................................. ii
第一章 绪论 .......................................................................................................... 1
1.1 课题的研究背景和意义 ................................................................................. 1
1.1.1 DSP 芯片的主要特点 .......................................................................... 1
1.1.2 高性能 DSP 的发展趋势 ..................................................................... 2
1.1.3 DSP 技术的发展意义 .......................................................................... 3
1.2 仿真/调试技术的研究 .................................................................................... 3
1.2.1 仿真/调试技术的概述 ......................................................................... 3
1.2.2 片上调试技术的研究 .......................................................................... 4
1.2.3 M-DSP 的仿真/调试机制 .................................................................... 5
1.3 课题的研究内容 ............................................................................................. 5
1.4 课题的组织结构 ............................................................................................. 6
第 I 页
国防科学技术大学研究生院工程硕士学位论文
第 II 页
国防科学技术大学研究生院工程硕士学位论文
致 谢 .................................................................................................................... 82
参考文献 ................................................................................................................ 84
作者在研究生阶段取得的学术成果 .................................................................... 88
第 IV 页
国防科学技术大学研究生院工程硕士学位论文
表 目 录
第 V 页
国防科学技术大学研究生院工程硕士学位论文
图 目 录
第 VI 页
国防科学技术大学研究生院工程硕士学位论文
第 VII 页
国防科学技术大学研究生院工程硕士学位论文
摘 要
今天,DSP 技术的飞跃式发展给人们生活的数字信息化带来了蓬勃的发展空
间,大力促进了通信、计算机和消费类电子产品的数字化融合,DSP 技术还将结
合物联网在通信、电子商务、智能可穿戴设备、智能家居和智慧城市建设等多领
域起到重要作用。毫无疑问,DSP 技术在这个快速发展的移动互联网络时代里正
大放异彩。
M-DSP 是由国防科学技术大学计算机学院设计研制,具有自主知识产权的 32
位高性能浮点向量双核处理器。主频达到 1.1GHz,采用超长指令字(VLIW)的
结构,派发部件可同时并行发射十一条指令,采用 16/32 位可变长的 RISC 指令集,
具有高效的 14 级流水线结构。M-DSP 是针对 DSP 市场需求面向无线通信、视频
和图像处理而开发的高性能浮点向量处理器。
随着 DSP 芯片性能的不断提升,其设计越来越复杂、硬件规模越来越大,而
DSP 芯片的验证工作在设计过程中占的比重越来越大。在设计的过程中不可避免
的会出现一些 BUG 和错误,而这对芯片的设计来说是需要高度重视的,将会影响
整个芯片的开发进度。芯片的仿真/调试功能的地位变得越来越重要,这也给设计
人员提出了更高的要求,如何在尽量不影响芯片性能的前提下,支持仿真/调试功
能,是在对 DSP 芯片进行设计时需要特别考虑的关键技术。
因此, 本文主要针对 M-DSP 处理器中仿真/调试部件的设计与实现展开研究,
主要完成的设计工作和创新点有:
1、本文设计与实现了 M-DSP 的仿真/调试部件,有效支持基于 JTAG 平台的
调试工作。能够高效完成仿真/调试的三大任务,主要有:实现对流水线的精准控
制,芯片各资源的访问以及系统性能参数的统计等。
2、针对 M-DSP 中 16/32 位可变长 RISC 指令集,设计并优化了 M-DSP 处理
器指令派发部件的逻辑,实现了指令派发部件对于 ET 软件断点的硬件支持。
3、提出了一种基于 PCIE 仿真/调试部件的方案,通过和基于 JTAG 仿真/调试
部件的逻辑复用,实现了通过 PCIE 对 DSP 芯片进行仿真/调试的设计。
4、本文根据片内仿真/调试部件的特点,设计了一种基于 Verilog PLI 接口、
通过共享内存区连接集成开发环境(IDE)的 M-DSP 软硬件联合验证系统,能够
加快全芯片的仿真/调试工作。
5、通过将基于 NC_Sim 模拟验证的方法和基于 Verilog PLI 技术的新型软硬件
联合验证方法相结合,对仿真/调试部件功能的正确性进行了全面验证。
ABSTRACT
Today,the leap- forward development of DSP brings booming room for digital
information embedded in people's life, and vigorously promote the digital fusion of
communication, computer and electronics products;the combination of DSP technology
and the internet of things will play a key role in communication, e-commerce,
multi-domain intelligent wearable devices, smart home and smart city construction.
Undoubtedly, DSP technology shines in this fast-growing mobile Internet era.
M-DSP is designed and developed by the School of Computer Science, National
University of Defense Technology, with independent intellectual property rights of 32
high-performance floating-point vector dual-core processors. Main frequency reaches
up to 1.1GHz, with very long instruction word (VLIW) structure,Dispatch unit can
simultaneously parallel transmit eleven instructions by using variable length 16/32 bit
RISC instruction set which is an efficient 14-stage pipeline structure.M-DSP is a
high-performance floating-point vector processor which is facing on wireless
communications, video and image processing , gearing to the needs of DSP market.
With the rising improvement of DSP chip, its design is more complex and larger in
terms of hardware scale. but the verification of DSP chips in the design process turns
into an increasingly larger proportion. In the design process, inevitably there will be
some BUG and error, which should attract high attention as it will affect the
development of the entire chip. people pay increasingly attention to the chip emulation /
debug functions, which also makes higher demands for designer. supporting
simulation / debugging functionality without impacting the chip performance requires
special consideration when designing.
Therefore, this research focuses on the designing and implementation of M-DSP
processor emulation / debug components. the main designing task and innovations are
as follows:
1. The paper designs and implements an in-chip emulation / debug components,
which can effectively support JTAG-based debugging platform. tasks of emulation /
debug are the precise control of pipeline, the access to each chip resource, and the
statistics for system performance parameters.
2. It designs and optimizes the logic of M-DSP processors dispatch unit, and
manages to achieve the hardware support of the dispatch unit for ET software
breakpoint for the 16/32 bit variable-length RISC instruction in M-DSP.
3. It presents a simulation-based PCIE / debugging components program. through
the logic reuse of the JTAG-based emulation / debug components, it achieves a DSP
emulation / debug design for PCIE or ARM chip.
4. Based on the characteristics of the on-chip emulation / debug components and
第 ii 页
国防科学技术大学研究生院工程硕士学位论文
Verilog PLI interface, it designs a verification system in the integration of M-DSP
software and hardware through the joint of shared memory area of in integrated
development environment (IDE) , effectively achieving the full-chip simulation /
debugging.
5. by combining NC_Sim simulation with the integration of hardware and software
based on the Verilog PLI technologies, it makes a comprehensive verification of the
accuracy of the simulator / test unit.
第 iii 页
国防科学技术大学研究生院工程硕士学位论文
第一章 绪论
今天,DSP 技术的跨越式发展为现代智能生活体验带来了蓬勃的发展空间,
在无线通信、面向个人智能终端、嵌入式数字控制应用以及消费电器等领域不断
在刷新着它的重要性。在未来的发展中,移动互联网络将结合物联网在通信、电
子商务、智能可穿戴设备、智能家居和智慧城市建设等多领域起到重要作用。而
推进这种智能化、多领域融合的动力就是本文的主角—数字信号处理器(Digital
signal Processor,DSP)。
今天,随着移动互联网络技术应用越来越广,几乎每个人的身上都能找到 DSP
芯片的影子,市场对 DSP 芯片性能的提出了越来越高的要求,促进了 DSP 技术的
快速发展,随着 DSP 技术的发展,又促进了各大新科技领域的爆发式发展。
M-DSP 这款 32 位高性能浮点向量双核处理器就是针对 DSP 市场需求面向无
线通信、视频和图像处理而开发的浮点向量 DSP。随着 DSP 芯片性能的不断提升,
其设计越来越复杂、硬件规模越来越大,这让芯片的仿真调试功能的地位变得越
来越重要,但是也给设计人员提出了更高的要求,如何在尽量不影响芯片整体性
能的前提下,支持仿真/调试功能,是在对 DSP 芯片进行设计时需要特别考虑的重
要技术问题。因此,本文将主要研究 M-DSP 中仿真/调试部件的设计与实现。
1.1 课题的研究背景和意义
和通用处理器不同,DSP 作为数字信号处理器,它更关注的是对于比较单一
的事务处理,有很多加速计算的地方。
(1)哈佛结构和改进的哈佛结构。将程序和数据存储在不同的存储空间中,
对每个存储器进行独立编址以及支持独立访问[1]。因为具有程序总线和数据总线两
条总线,这样数据的吞吐率更快。
(2)流水线操作。采用流水线的形式,每条指令处于流水线的不同阶段,能
够并行处理多条指令,从而处理器的效率将更高[2]。
(3)设计有专用的硬件乘法器与乘加指令[3]。一次乘法和一次加法能够在一
个指令周期内完成。
(4)独立的 DMA 的总线及其控制器。拥有 DMA 部件后,不仅大大提升了
数据的传输效率,而且在多个 DSP 核协同处理的时候,DMA 可以成为各个 DSP
核之间进行数据传输的主要通道。
第 1 页
国防科学技术大学研究生院工程硕士学位论文
随着各种智能终端设备的普及和物联网的兴起,得益于当今科学技术的飞速
发展和人们对于生活智能化的需求,DSP 芯片技术开始蓬勃发展,未来数年内可
能将会影响我们生活中的点点滴滴。但目前 DSP 的发展仍然将围绕着性能、功耗、
价格这三个方面展开,而芯片开发人员要做的就是根据不同的需求找出这三个的
平衡点。总的来说,DSP 也跨越了一个又一个里程碑,它的性能在不断的攀升,
功能越来越多,处理速度和运算性能越来越和通用处理器相似,但单位面积的功
耗和价格却在下降。但是随着需求的不断走向多样化,DSP 面前的问题是处理能
力的更强,运算效率更高,功能更加丰富,功耗水平更低。所以,DSP 的发展趋
势有下面几个方向:
(1)主频更高,运算更快。DSP 的主频从以前几百兆赫兹到今天的几个 G/HZ,
随着各种超流水技术的应用,它的主频甚至将会更高,运算速度更快,指令的执
行效率越来越高,性能将得到直接的提升。
(2)向多核发展。特别是(Systems on Chip,SOC)技术的成熟,现在 DSP 甚
至发展到今天的 64 核 DSP,DSP 的核越来越多,这样能够处理的事务也更多,特
别是对于那些要求高速和高密度的数据信号处理[4]。
(3)DSP 的应用范围更广。现在小到智能穿戴设备,大到通信基站,都遍布
着各种类型的 DSP 的应用,它们无时无刻不在发挥着智能化,自动化的作用,改
变着我们的生活方式,这些便利都有 DSP 在幕后发挥着至关重要的作用。
(4)DSP 的功耗将越来越低。在新一代的消费类商品中,移动智能设备所占
的比重越来越大,而这些设备大都采用锂电池供电,为了使电池的续航能力更持
久,低功耗的应用将更为重视,而且目前的芯片低功耗技术也越来越成熟,如多
电压域设计,智能关断时钟等。
(5)DSP 将越来越小。随着工艺的不断发展,现在采用最新的工艺是 14nm,
这样在单位面积上能够集成的电路将更多,还有就是砷化镓、硅锗等新材料的使
用,未来的 DSP 芯片将可能做得更加小巧。
今天是个科技大爆炸的时代,而 DSP 芯片的不断发展,将渗透到各个领域当
第 2 页
国防科学技术大学研究生院工程硕士学位论文
中去,成为各大电子产品的核心,可以说,DSP 的发展已经带动整个电子行业的
不断进步。
1.2 仿真/调试技术的研究
1.2.1 仿真/调试技术的概述
随着 VLSI 技术的进一步发展,芯片设计规模和硬件逻辑复杂度的不断增加,
第 3 页
国防科学技术大学研究生院工程硕士学位论文
1.2.2 片上调试技术的研究
通常基于片上调试技术的设计常见的有两种,一种为芯片后台运行的调试模
式(BDM)技术,第二种则是基于 JTAG 接口仿真/调试技术。
后台调试模式(BDM)
BDM 技术是由 Freescale 开发的基于单线调试的技术,它只需要很少的 I/O 接
口。微处理器片内设计有进行 BDM 仿真调试的接口,并且拥有专门用于进行调试
的 X 指令,该指令便是调试开关,将激活 BDM 串口进行系统调试命令通信。在
目标芯片内部设计有 BDM 总线与 DSP 内核直接相连,在开发人员设置的执行位
置上,BDM 调试将目标代码用 X 调试指令代替,从而控制微处理器的仿真运行状
态。BDM 总线上的调试指令将控制 DSP 去读写它核内的体系结构寄存器、核外存
储器以及其它外设资源,并将获得的状态和结果信息传给调试工具,方便开发人
员调试目标芯片。与在线仿真器(ICE)相比较而言,BDM 是通过片内调试硬件实现
调试指令对处理器的调试,而没有其它那些外部存储器和特定接口的数据线,是
一种方便和高效的片上调试模式。
基于 JTAG 的仿真/调试技术[12] [13]
JTAG 仿真技术最开始是被用于对芯片的边界进行扫描测试的,但因其在芯片
测试过程中使用方便和灵活,现在被广泛用在片上调试技术中。基于 JTAG 的调
试技术则利用 JTAG 仿真器将 IDE 主机系统和 DSP 芯片实现通信,调试芯片内设
计有相关调试的硬件逻辑,从而完成对芯片的调试工作。基于 JTAG 的片上调试
技术包含有 DSP 系统运行和系统调试两种工作状态。在系统运行状态下,调试部
件不对目标芯片调试操作,芯片处于正常运行的状态,不受 ET 的影响;在系统调
试模式下,目标芯片处于流水线暂停状态,接收 JTAG 调试接口发来的仿真/调试
指令,从而读写目标芯片的体系结构寄存器、内存以及外设等资源,控制流水线
运行、单步和暂停等。基于 JTAG 的片上调试系统占用 DSP 芯片的硬件资源很少,
第 4 页
国防科学技术大学研究生院工程硕士学位论文
1.3 课题的研究内容
本文主要是以国防科大计算机学院自主研发的 32 位高性能浮点向量双核处理
器 M-DSP 作为课题背景,设计并实现了基于 JTAG 和 PCIE 的仿真/调试部件以及
搭建了全新的 M-DSP 全芯片软硬件联合的系统级验证环境。主要的研究内容如下
所示:
介绍了课题的研究背景,分析目前高性能 DSP 芯片主要特点和发展方向,
强调了仿真/调试部件设计的研究意义;
第 5 页
国防科学技术大学研究生院工程硕士学位论文
1.4 课题的组织结构
第 7 页
国防科学技术大学研究生院工程硕士学位论文
环形互连
SGC0 SGC1
DDR3 MCU
主设备 从设备
第 8 页
国防科学技术大学研究生院工程硕士学位论文
M-DSP 的内核包含有片内一级程序缓存单元(L1P)、取指令单元(Fetch)、
指令派发部件(DP)、向量处理单元(VPU)和标量处理单元(SPU)、向量访
存单元(AM)和标量访存单元(SM)、标量和向量通用寄存器文件、DMA 控制
器、仿真/调试部件(ET)及各个外设资源[19]。
(1)一级程序 Cache(L1P):L1P 根据将来自取指部件和 DP 部件的取指令
请求,会向 DNAC 发出 2 次连续的读外存请求,并将接收到的 2 个 256 bit 指令包
合并为 512bit 的取指包发送给 Fetch 或 DP。
(2)取指部件(Fetch):根据 PG 模块给的取指包地址,包括顺序执行取指
包地址、分支跳转取指包地址等,然后获得对应取指包数据。
(3)指令派发部件(DP):DP 将接收到指令包放到 2 个 1024bit 的缓冲池里,
根据指令窗口中指令的并行位以及长度位信息,选择将要派发的执行包,并按照
DP 指令译码结果发送至对应的执行部件。
(4)标量处理单元(SPU):包括指令流控、SPE 以及 SM。其中,指令流
控单元包括分支、中断/异常控制等,用于程序流控制。
第 9 页
国防科学技术大学研究生院工程硕士学位论文
(5)标量访存单元(SM):用于实现对各种标量数据的访存控制。
(6)向量处理单元(VPU):它主要由 16 个同构的 VPE 部件和混洗/归约部
件组成。
(7)阵列存储器(AM):AM 是片上的阵列存储器,可以用于向量浮点运
算,能够实现 16 路 SIMD 宽度的向量数据高效的读写访问。
(8)DMA 控制器:DMA 部件作为直接存储器访问部件,能够实现对数据的
高效搬移,完成对各种存储资源的访问。
(9)仿真/调试部件(ET):接收来自 ARM、PCIE 或者 JTAG 仿真器的调试
命令,完成对 DSP 芯片内核进行仿真/调试工作。
3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
Reg Z xxxx ST P
图 2.3 指令格式编码域
第 10 页
国防科学技术大学研究生院工程硕士学位论文
0:当条件寄存器为非 0 执行
Z 1 条件判断
1:当条件寄存器为 0 执行
ST 2 指令类型 11:16 位指令;其它为 32 位指令
P 1 并行标志位 0:两条指令不并行派发
1:两条指令将并行派发
注:当{Reg, Z}为 001 时,表示无条件操作;当{Reg, Z}为 000 时,是本文后面将要介绍
的软件断点标志位。
2.2.2 指令包及执行包的结构
第 11 页
国防科学技术大学研究生院工程硕士学位论文
32位
流水线技术是用来提高微处理器的系统吞吐率的一种核心技术,能够有效的
提升 DSP 的性能。系统的吞吐率,通过 DSP 单位时间内完成的指令数目来表征,
它从一定程度上反映处了 DSP 的性能水平。系统处理一条指令的时间大小称为“指
令周期”,将指令周期所需要的处理过程细分为一个个子过程的序列,这些子过
程由流水线的各个不同流水段来执行。要有效合理地进行这种划分,设计中需要
考虑下面三个方面:
(1)一致的运算分量,在进行量化流水线时,要尽量减小内部碎片。
(2)重复的运算,流水线应能够支持所有的指令类型,同时尽量减少每种指
令类型的无效或空闲的机器周期。
(3)独立的运算,指令流水线必须要有一套内部机制,用来检测指令间发生
的相关并保证指令相关不会导致错误,从而减小流水线停顿[22]。
第 12 页
国防科学技术大学研究生院工程硕士学位论文
PG PW IF FD DP DC1 DC2 E1 E2 E3 E4 E5 E6 E7
IF Cache访问 DP Cache访问
L1P
第 13 页
国防科学技术大学研究生院工程硕士学位论文
FD DP
指
令 软件断点
派
顺序取指包 发
窗 指令
站
内 指 指令
分支取指包 双
缓 令
冲 派 … 派
发
L1P取指包
发
…
槽 指令
DP 内部缓冲包
指令
2.3.2 流水线的阻塞与清空
在 M-DSP 的中断和异常处理设计过程中,考虑到数据的一致性,所以采用了
清空各个流水站的处理机制。如图 2.9 所示,在指控部件收到 IH_Flush 后,将清
空 IF 站、DP 站、DC1 站、DC2 站的数据,而其它执行部件在收到 IH_Flush 后,
将清空 DC1 站、DC2 站的有效信号。
DP DC E1 E2 E3 E4
IH_Flush = 0 N A
N+1 B A
N+2 C B A
N+3 D C B A
IH_Flush = 0 N+4 E D C B A
IH_Flush = 1 N+5 F E D C B
IH_Flush = 1 N+6 C B
IH_Flush = 1 N+7 A
N G F E D C B A SBR
N+1 G F E D C B A
N+2 G F E D C B
N+3 G F E D C
N+4 G F E D
N+5 G F E
N+6 G F
N+7 G
第 15 页
国防科学技术大学研究生院工程硕士学位论文
2.4.1 仿真/调试的基本准则
微处理器仿真/调试技术是将专用的调试硬件逻辑嵌入微处理器里面,并且可
以实现处理器的工作状态和调试状态的任意转换,为设计人员提供灵活的操作接
口,能够高效的完成芯片的调试工作。片上仿真/调试的设计应遵循“海森伯格”准
则,也被叫做“非侵入性设计”准则[24]。“海森伯格”准则规定了微处理器 ET 部
件的硬件逻辑应该独立工作,而不会在调试过程中影响甚至破坏到微处理器的运
行现场状态,保证处理器能在调试模式下的正常执行任务,且程序的运行过程也
不会被非人为的改变,程序运行中保存的各种有用数据信息不会丢失。“海森伯格”
准则也是保证芯片调试正确的基本原则。
片上仿真/调试部件的设计需要考虑的问题是:一是 ET 部件能够方便有效的
对 DSP 的工作状态进行控制;其二 ET 部件能够有效的对 DSP 系统的各个状态进
行实时观测;三是 ET 部件能够对 DSP 的系统资源进行读写访问操作。
2.5 本章小结
第 17 页
国防科学技术大学研究生院工程硕士学位论文
JTAG 技术最开始是被用在芯片边界扫描测试之中,但设计者们发现其具有方
便灵活的特点,于是现在被广泛用于芯片的调试技术中。基于 JTAG 接口的芯片
仿真/调试系统是 IDE 软件集成调试环境利用标准 JTAG 仿真器同 DSP 芯片进行通
信,目标调试芯片内设计有相关 ET 硬件逻辑,ET 根据接收到的调试命令完成对
应的调试任务。本章主要针对标准 JTAG 接口对 M-DSP 片内仿真/调试部件进行设
计和实现。
3.1 仿真/调试部件的概述
TMS
DMA AM 等
JTAG TCK
TRST ET
TDO
外设
配置寄 DSP_ CORE
配置总
存器
线控制
JTAG 调试模式
CPU 调试模式
共享调试通道
NAC
图 3.1 ET 与各设备的通信
如上图所示:M-DSP 中,有两种调试模式:JTAG 模式以及 ARM 和 PCIE 模
式。
(a)JTAG 调试模式下,ET 接收来自 JTAG 仿真器串行输入的仿真/调试信号,
经过一系列操作,完成对 DSP 芯片相应仿真/调试操作:包括控制流水线的运行、
单步和暂停等,读写访问 DSP 的体系结构寄存器以及系统存储资源等,统计 DSP
运行中的各个性能参数等[33]。
(b)PCIE 或 ARM 调试模式下,ET 接收来自 ARM 或 PCIE 控制器的并行输
第 18 页
国防科学技术大学研究生院工程硕士学位论文
3.2 仿真/调试部件的介绍
硬件断点及
ETAP AD分析域
TDI 事件统计
流水线控制
TMS CD控制域
TCK DSP_CORE
TRST CDAP
控制域访问端口
CLK域
CPU访问状态机NACS
NAC
图 3.2 ET 内部结构
其中,ETAP 是 JTAG 仿真器和调试芯片之间通信的接口控制模块,JTAG 调
第 19 页
国防科学技术大学研究生院工程硕士学位论文
数据通路选择信号
TDO 仿真多路选择器
EMUX
TCK UCK&TCK
IDEC_DIR_SEL
DIR_TDO
器件标识寄存器
IDEC_ BYPASS_SEL
DIR IDEC_ SCTR_SEL 指令译码模块
CDAP[2:0]
BR_TDO
旁路寄存器
TCK IDEC
ETBR
ECTR1_TDO
仿真控制信号
TCK
JTAP模块 STARTC
MCG_C1
MCG_C0
MCG_Ce
TAP_ STATE信号
TCK JIR_PO
指令寄存器
MPSD 码生成器
TDI
JIR
MCG
EVTAC_ UCK&TCK
UCK&TCK EVTA
ECR_ DLCK MPSD码 CSM_C0
EVTAC模块
状态机
仿真控制寄存器
IDEC_ SECR_SEL CSM CSM_Ce
ECR
EXE[1:0] 、TERM[1:0]
ECR_ DEVM[1:0]
REVT [1:0]
第 21 页
国防科学技术大学研究生院工程硕士学位论文
号 TMS 决定;
(3)TDO 输出的寄存器的选择电路只在 Shift-DR 和 Shift-IR 两个状态下激活
TDO 输出;
(4)JTAP 完全为 TCK 下逻辑,在 PCIE 访问时不被激活[31]。
表 3.2 JTAP 的状态编码
JTAP 状态 16 进制编码
Exit2_DR 0
Exit1_DR 1
Shift_DR 2
Pause_DR 3
Select_IR_Scan 4
Update_DR 5
Capture_DR 6
Select_DR_Scan 7
Exit2_IR 8
Exit1_IR 9
Shift_IR A
Pause_IR B
Run_Test/Idle C
Update_IR D
Capture_IR E
Test_Logic_Reset F
TDI TDO
8位指令 6位操作码 36位数据
第 23 页
国防科学技术大学研究生院工程硕士学位论文
表 3.3 8 位操作码的作用
(a)在 JTAP 状态机处于 Shift-DR 状态时,用于选择数据扫描通路;
(b)在 JTAP 状态机处于 IDLE 状态时,用做控制命令;
(c)在测试模式下,直接应用控制码到域访问端口 DAP,将 JTAG 状态映射
到 DAP 控制状态。
3.3 仿真/调试部件的功能
3.3.1 流水线控制
ET 部件对流水线的控制作用主要集中在系统复位、暂停、单步执行以及运行
等,其中还包括 HWBP 断点和 SWBP 断点的控制,从而实现对流水线进行精准和
准确的控制。M-DSP 的流水线调试(CPU Pipeline Debug Control, CD)模块负责
DSP 调试模式下进行流水线的运行和暂停等操作,从而便于观测程序的具体执行
状态信息。
其结构如图 3.6 所示。ET_Stall 信号是由 CD 模块产生的 DSP 控制信号,能够
完成流水线运行、暂停以及单步等仿真操作,DSP 的调试操作需要依托它来完成,
ET_Stall 为 1 时,整个流水线被暂停,此时 ET 部件才能对 DSP 进行一系列的调试
操作。
第 24 页
国防科学技术大学研究生院工程硕士学位论文
ET
ET_StallCPU
CDAP_ State
CDAP ET_ StallCPU
MD
HBPC_ HWBP
AD
DSP
CPU_ Stall
CD CD_ ABP_ DET
DC2_ SWBP
CD_ SWBP_ DEC
IH_Flush
ETAP
ECR_ DEVM
CPU_NopET
图 3.6 CD 模块结构图
第 25 页
国防科学技术大学研究生院工程硕士学位论文
3.3.1.1 软件断点
通过修改指令,在指令里插入软件断点标志,在 DP 站探测软件断点,并将软
件断点信号传给 ET,这样 ET 将流水线停止在了该软件断点指令的 E1 站,具体详
情见第四章。
3.3.1.2 硬件断点
3.3.2 资源访问
DDR、SPI、DSP内核存储空间
DMA总线 (SM、AM)及GC的配置空间
Per总线 DSP片内私有地址配置空间和
ET
DSP共享外设配置地址空间
ET保留空间地
址进行映射
DSP体系结构寄存器
(Rx、VRx、CR)等
图 3.7 ET 资源访问的通信
3.3.2.1 ET 保留映射空间访问
第 27 页
国防科学技术大学研究生院工程硕士学位论文
3.2.2.2 存储空间的访问
第 28 页
国防科学技术大学研究生院工程硕士学位论文
ET_DMA_Addr
ET_DMA_Rd 写Buf
ET DMA_ET_DataRdy DMA
DMA_ET_Data
DMA_ET_RdBufBsy 读Buf
DMA_ET_WrtBufBsy
ET_DMA_Addr
ET_DMA_Wrt
写Buf
ET_DMA_Data
ET DMA
DMA_ET_RdBufBsy
读Buf
DMA_ET_WrtBufBsy
3.2.2.3 配置空间的访问
ET_Per_Addr
ET_Per_RW
ET_Per_Data
ET_Per_Req
ET Per总线
Per_ET_Bsy
Per_ET_Rdy
Per_ET_Data
图 3.10 ET 通过配置总线的通信
3.3.3 事件统计
在程序运行过程中,有很多发生事件是程序员比较关心的,包括分支命中的
次数、中断有效次数、程序执行包的个数、L1D 读写命中次数等。这些事件可能
对程序员掌握程序运行的动态,改善整体程序执行性能有着很大的影响,将这些
事件数据统计给用户,可以明显提高用户进行程序分析和调试的效率,提升用户
体验。
M-DSP 总共能统计 14 种事件,但考虑到硬件开销和实际的用户需求,事件统
计中一次最多统计 2 个事件,所以 ET 相应的硬件(表 3.9 所示)有:2 个 1 位的
事件使能寄存器 EVER,只有置 1 时,这样事件统计的开关才被打开,2 个 8 位的
事件选择寄存器 EVSR,用来对需要统计的事件进行选择,本设计中可以对 15 种
系统性能参数进行统计,最后还有 2 个 36 位的事件计数寄存器 EVCR,ET 统计的
相关事件的数据就保存在事件计数寄存器里。利用 ET 的保留空间对这些寄存器进
行地址映射,从而 ET 可以通过分配的地址直接对它们进行通信。
第 30 页
国防科学技术大学研究生院工程硕士学位论文
表 3.9 ET 性能统计的保留空间分配表
寄存器 保留空间地址(36’h) 位宽 含义 ET 编址
EVSR0 xx 1E_4000 8 事件选择寄存器 0 0
EVSR1 xx1E _4001 8 事件选择寄存器 1 1
EVCR0 xx1E _4010 36 事件计数寄存器 0 2
EVCR1 xx1E _4011 36 事件计数寄存器 1 3
EVER0 xx1E _4020 1 事件使能寄存器 0 4
EVER1 xx1E _4021 1 事件使能寄存器 1 5
表 3.10 ET 的事件统计列表
端口名 编号(8'h) 含义
CYCLE 00 程序运行周期
BRTK 01 分支命中次数
IACK 02 中断有效次数
EXEP 03 程序执行包个数
L1DRWM 04 L1D 读写失效次数
L1DRWH 05 L1D 读写命中次数
L1PRM 06 L1P 读失效次数
L1PRH 07 L1P 读命中次数
DPStall 08 DP 发出停顿的持续周期
VMStall 09 VM 发出停顿的持续周期
SMCStall 0A SMC 发出停顿的持续周期
STALL 0B 程序停顿周期
NOP 0C 有效的 NOP 周期
NonNOP 0D 有效的非 NOP 周期
EACK 0E 异常有效次数
ET 性能统计事件如表 3.10 所示。其中,时钟运行周期等 7 个是统计持续周期
的事件,ET 在 DSP 的 CLK 上跳沿时开始对事件信号进行采样并开始计数;另外
8 个是统计事件发生次数的,ET 在 DSP 的 CLK 上升沿时对事件发生信号进行计
数。
3.4 功能验证
针对 M-DSP 处理器的调试/仿真部件的验证,由于涉及到控制信号对流水线的
作用以及 ET 对于相关存储资源和寄存器的访问,所以仅仅利用模块级进行验证达
不到理想的效果,且无法保证验证的完备性,所以,本文将采用基于 NC_Sim 模
第 31 页
国防科学技术大学研究生院工程硕士学位论文
拟的系统级进行调试部件的功能验证。
3.4.1 验证方法
根据调试部件设计制定的验证计划和功能需求,设计中采用的验证方法有以
下几种:
CDC 时钟域检测[32];
Autocheck 检查语法还有基本的代码功能;
PLI 软硬件结合验证,这部分将在第六章中详细介绍;
基于 NC_Sim 的仿真环境。
M-DSP 采用的系统级验证环境,主要是基于 Cadence 公司的 Linux 平台下的
NC_Sim 模拟器[33]。ET 部件的 NC_Sim 系统级功能验证,不但需要编写验证的背
景程序,利用编译器进行编译加载到系统级验证环境中,另外还需要编写调试激
励 ET_task,通过搭建的 ET 激励生成环境转化为符合 JTAG 接口的调试命令,这
样当系统级验证环境开始进行运行的时候,ET 的验证激励也将在外部仿真时钟
TCK 的控制下,通过 TDI 输入端口加载到 NC_Sim的模拟环境中,通过查看 NC_Sim
的仿真波形以及仿真数据记录 Log 文件比对,即可实现对 ET 部件的功能验证[34]。
本节重点介绍 NC_Sim 的仿真环境。将在 NC_Sim 模拟仿真环境中,完成对 ET 的
逻辑功能验证。后面的章节中还将设计一个新型 PLI 接口技术的验证调试环境配
合 ET 部件的验证。
3.4.2 功能验证计划
第 32 页
国防科学技术大学研究生院工程硕士学位论文
表 3.11 ET 的部件的验证功能点
总纲 主要功能点 备注
1 、 1.1 请求 buf 的状态 buf 一直为空
DNAC 通 连续请求,直到 buf 满(极端情况)
信 buf 部分为空,且有连续写请求。
1.2 调试请求解析 IDEC 模块的指令分析
配置 IR,DR
RSAC 模块中地址的译码
1.3 PCIE 模式的 ET 状态机 IR 通路
DR 通路
2、 2.1DSP 体系结构寄存器资 标量单元寄存器 SRF
资源访问 源 向量单元寄存器 VRF
(两种模 控制寄存器 CR
式下) 地址寄存器 AR/OR
2.2DMA 片内 SM、AM 的空间及外部存储资源
2.3Per 总线 包括各个外设的配置空间及片内配置单元
2.4ET 内部寄存器 主要是性能统计和硬件断点等寄存器资源
2.5 流水线状态 指令流水线各个站的 PC 值等
将按次数和按周期统计的两个事件,一起进行统
计
4 4.1DSP 仿真控制 JTAG 仿真器的硬件复位
流水线控 复位 reset
制 停止 halt
运行 run
单步 step
设置:断点未进入流水线
4.2 软件断点 设置:断点分别在不同的流水线
软件断点的取消
软件断点的检测
软件断点的恢复
4.3 硬件断点 硬件断点的设置
硬件断点的取消
第 33 页
国防科学技术大学研究生院工程硕士学位论文
硬件断点的恢复
4.4 联合控制 连续软件断点
连续硬件断点
SWBP 断点后紧跟 HWBP 断点
HWBP 断点后紧跟 SWBP 断点
软件断点与 Stall/Bsy/NOP 等信号同时为高
硬件断点与 Stall/Bsy/NOP 等信号同时为高
硬件断点、软件断点与 Stall/Bsy/NOP 等信号同
时为高
5、数据一 DMA-NAC
致性(读
写)
3.4.3 验证结果分析
图 3.11 ET 读写 AM 空间
如上图 3.11 所示,ET 部件完成对向量存储阵列地址 0x04000_0000 的读写访
问操作。如第二个标线所示,ET 部件在接收到 JTAG 的写命令后,将解析后的写
有效信号 ET_DMA_Wrt 和 ET_DMA_Data 以及写地址 ET_DMA_Addr 等信息发送
到 DMA 部件,然后 DMA 开始处理该 AM 空间地址的写操作,从而将数据
0xFFFFFF05 写入到 0x04000_0000 的地址中。
ET 部件完成对向量存储阵列地址 0x04000_0000 地址的读操作如第三个标线
第 34 页
国防科学技术大学研究生院工程硕士学位论文
通过 Per 总线的读写访问
通过 ET 映射地址直接读写访问
(2)流水线控制
硬件断点
仿真命令控制流水线
第 36 页
国防科学技术大学研究生院工程硕士学位论文
图 3.15 ET 控制流水线运行、单步的波形图
ET 对流水线的控制主要集中在复位、仿真停、单步执行以及仿真运行,如上
图 3.15 所示,ET 在接收到 JTAG 的对流水线的命令后,对流水线进行相应的操作。
如标线 1 处所示,rst_n 信号为低,从而实现 ET 对流水线的复位,标线 2 处,
ET_StallCPU 为 低 , CDAP_State 值 为 6 , DP_PC 值 由 0x000000000 变 为
0x000000172,从而实现了 ET 控制流水线运行的操作,标线 3 处,CDAP_State 值
为 7,DP_PC 值由 0x000000172 变为 0x000000176,从而实现了 ET 控制流水线向
前单步的操作;且需要注意到的是每当 ET_StallCPU 变高时,整个 DSP 的指令流
水线将因全局信号而暂停。以上的各种操作,完成 ET 部件对流水线进行精准和准
确的操作。
(3)性能统计
图 3.16 ET 的性能统计波形图
如图 3.16 所示,为 ET 统计 DSP 内核运行性能的系统级验证波形图。本文中
设置事件寄存器 EVCR0 对系统程序的执行指令包个数进行统计,事件寄存器
EVCR1 对 L1P 读命中的次数进行统计。如图所示,在流水线运行期间,EVCR0
寄存器在 CPU_ExepET 有效期间对程序的执行包进行计数,而 EVCR1 寄存器在每
一次一级程序缓冲单元命中时,进行加 1 计数。在暂停流水线以后,通过读对应
的寄存器可以知道统计的性能参数,在本程序中,可以得出事件统计的程序执行
包个数为 0x16C, L1P 读命中的次数为 0xB,从而为用户了解程序性能提供参考。
第 37 页
国防科学技术大学研究生院工程硕士学位论文
3.4.4 覆盖率分析
图 3.17 ET 覆盖率验证结果
3.5 逻辑综合
第 38 页
国防科学技术大学研究生院工程硕士学位论文
表 3.12 ET 的部件的逻辑综合结果
2
总面积 18905.846558um
总动态功耗 6.0493 mW
漏电流功耗 2.7465e+05 nW
slack 0.09ps
3.6 本章小结
第 39 页
国防科学技术大学研究生院工程硕士学位论文
第四章 仿真调试中软件断点的实现
4.1 软件断点实现的基本原理
4.2 软件断点的处理
软件断点的处理主要分为断点的设置、取消、恢复三个方面,本文将根据断
点指令在指令流水线中的不同位置进行说明。
4.2.2 软件断点的设置
软件断点的设置需要根据被设置为软件断点的目标指令所在的执行包有没有
进入流水线而分别考虑:
预设断点指令未流入指令流水线
目标指令未进流水线的软件断点的设置:IDE 主机调用驱动软件对应函数,将
原指令数据保存到 SWBP 断点指令链表,纪录的信息包括原指令编码 AIC[31:0]
及其地址 AIA[35:0],然后根据 AIC[1:0]区分指令长度类型,按照上文 4.1 节的机
制将原指令改写为带有断点标志的新指令 AIC_New[31:0],最后按 16 位对齐并且
第 40 页
国防科学技术大学研究生院工程硕士学位论文
包含断点指令标志的 ET_DataCPU[16:0]写回目标指令加载处(内存或外存),并
将目标指令备份处(L1P)作废。
预设断点指令在指令流水线上
如果目标指令已进入流水线,则除了要修改目标指令加载处(内存或外存)
操作外,还要进行以下操作:
1)PG 站。读取 PG 站指令包的首地址信息,软件便能计算出预设断点指令在
不在此指令包内。若不在,不再对 PG 站做进一步操作;否则,发软件断点信号,
置 PG 站取指包无效,指示指令流水线,重新从指令加载处(内存或外存)取指。
2)PW 站。PW 站存在 1 个取指包 saved_FP[511:0],saved_FP 首地址 PWAR
输出直接扇出给 ET,ET 和 PW 之间的写数据接口采用 16 位宽度,整个 PW 站取
指包共分配 32 个保留空间地址。因此,软件将判断预设断点指令在不在 PW 站取
指包里面,若不在,不再对 PW 站做进一步操作;否则,将按照 16 位对齐并且包
含 SWBP 断点指令标志的 ET_DataCPU[16:0]重新写到原先指令加载的地方。
3)IF 站。ET 对于 IF 站取指包首地址是只读、不写,对于 IF 站取指包指令是
只写、不读。IF 站存在 1 个取指包 IF_FP[511:0]。IF_FP 首地址 IFAR 输出直接扇
出给 ET。ET 和 IF 之间的写数据接口采用 16 位宽度,整个 IF 站的取指包共分配
32 个保留空间地址。因此,软件将判断目标指令是否在 IF 站取指包指令地址范围
内。若不在,不再对 IF 站做进一步操作;否则,将按照 16 位对齐并且包含断点指
令标志的数据 ET_DataCPU[16:0]写回目标指令加载处。
4)DP1 站。 ET 对于 DP1 站取指包首地址是只读、不写,对于 DP1 站取指
包指令是只写、不读。DP1 站有 1 个由 2 个地址连续的取指包合并而成的大取指
包 DP_FP[1023:0],大取指包的首地址 DPAR[35:0],还有一个存有大取指包中无效
半字(16 位)的个数(按地址从高到低的方向)的寄存器 DPPS[7:0]。大取指包首
地址 DPAR 和无效半字个数 DPPS 输出直接扇出给 ET。ET 和 DP 之间的写数据接
口采用 16 位宽度,整个 DP1 站大取指包一共分配 64 个保留空间地址。软件根据
大取指包的首地址 DPAR 和无效半字个数 DPPS 的值便能计算出预设断点指令在
DP1 站大取指里面,若不在,不再对 DP1 站做进一步操作;否则,将按照 16 位对
齐并且包含断点指令标志的数据 ET_DataCPU[16:0]写回目标指令加载处。
5)DP2 站。ET 对于 DP2 站指令包首地址是只读、不写,对于 DP2 站的指令
包是只写、不读。DP2 站的指令包状态为:DP2 站中拥有一个指令窗口大小的缓
冲,这个缓冲中的指令可能被一拍派发,也可能分多拍派发,但是,该窗口中仅
当前拍被派发的那个指令执行包是有效的。而因为软件断点只能位于执行包的第
一条指令位置,并且无论 16 位指令还是 32 位指令的断点标志均设置在这第一条
指令之中。所以,不论 DP2 站是怎样的情况,对于 32 位长度指令来说,将 SWBP
第 41 页
国防科学技术大学研究生院工程硕士学位论文
4.2.3 软件断点的取消
4.2.4 软件断点的恢复
4.2.5 相关存储系统的一致性维护
软件断点的设置和取消操作中,除了针对进入流水线的指令进行相关流水线
寄存器的读写操作以外,还有就是通过 DMA 对外存的读写,因此,这就涉及到对
存储系统进行一致性维护的工作。对于软件断点的设置和取消来说,因为它修改
的是指令,因此,读无需特殊处理,写则需要维护存储系统的一致性问题。
由于 M-DSP 中一级程序 Cache(L1P)不涉及任何的写回操作,所以在进行
一致性维护时,采用了尽可能简单的策略:一旦 ET 的访存写使能信号有效,即将
整个 L1P 的数据进行作废。
4.3 指令派发部件对软件断点的支持
4.3.1 DP 对于 ET 读操作的支持
4.3.2 DP 对于 ET 软件断点的支持
在指令流水线中,指令派发站有 FD 和 DP 两拍的时序,所以目标指令都有可
能在这两站之中。
(1) 目标指令在 FD 站
ET 对派发部件的写操作主要是进行软件断点的设置和取消,ET 在写软件断
点指令时,会将改写后的断点指令放到 FD 站的大缓冲池的对应指令处,由于 ET
与 DP 的数据带宽是 16 位,因此,ET 写 FD 站的数据是 32 位长度指令的高 16 位。
第 43 页
国防科学技术大学研究生院工程硕士学位论文
1023 16 0
ET_DataCPU 000„„„„000 ET_DataCPU
左移ET_AddrDP
ET_DataShift ET_DataCPU 000„„„„000
(a)ET_DataCPU根据ET_AddrDP进行移位
1023 16 0
Mask 000„„„„000 16'hffff
左移ET_AddrDP
Mask_Shift 111 000„„„„000
取
反
ET_Mask_Shift 000 111„„„„111
位
与
DP_Cache Cache1 Cache0
(b)基于掩码的临时缓冲队列
(c)ET修改DP的缓冲队列
图 4.1 ET 写 DP 的缓冲队列
ET 把带有软件断点标记的指令写入 FD 站的大缓冲池中的目标指令位置,操
作过程如图 4.1 所示。
(2) 目标指令在 DP2 站
此时目标指令已经位于 DP 的派发窗口处,而预设断点标志指令是即将被派发
的执行包指令,所以 ET不需要改写目标指令,而直接将软件断点信号 DP2_SwbpET
置有效。如果要取消软件断点的话,ET 会将原始指令 ET_DataCPU 写入到 DP2 站
执行包指令寄存器里。具体过程如下图 4.2 所示。
ET_DataCPU[31:29] ET_DataCPU[15:0] ET_ClearDC1
inst32
EP inst32
inst32
„„
第 44 页
国防科学技术大学研究生院工程硕士学位论文
4.3.3 DP 对软件断点的检测
当指令在执行过程中进入到指令流水线指令派发站(DP2)时,派发部件会对
处于执行包中第一条指令的位置实施软件断点检测:对于 32 位长度指令,系统对
每条指令的高三位检测是否为全 0,16 位指令检测是否为 X 指令。如果是,SWBP
断点信号 DP2_SwbpET 将被置为有效,DP 部件将 SWBP 断点有效信号发往 ET 部
件进行断点的处理,如图 4.3 所示。
高
三
inst32(1)
DP
inst32_T 位
指 是 Y
„„„
令 否
派 inst32(n) 全 软件断点信号
发 DP2_SwbpET
0
缓
冲 是
窗 inst16(1) 否
口 inst16_T „„„ 为
X
inst16(n) 指 Y
令
4.3.4 DP 对软件断点的恢复
功能部件
第 45 页
国防科学技术大学研究生院工程硕士学位论文
4.4 流水线中软件断点的生成
CLK
ET_Stall
ET_WriteDP
DC2_SwbpET_tmp
ET_RecDC2
DP DC1 DC2 E1
G16 FE32 G16 FE32
ET CD32 BA32 CD'32 BA32
G16 FE32
BA32
CD'32
图 4.5 32 指令的软件断点设置与恢复操作
第 46 页
国防科学技术大学研究生院工程硕士学位论文
CLK
ET_Stall
ET_WriteDP
DC2_SwbpET_tmp
ET_RecDC2
DP DC1 DC2 E1
G16 FE32 G16 FE32
ET CD16 BA32 CM BA32
G16 FE32
BA32
CM
检测出软件断点 CM BA32
信号DP2_SwbpET CM BA32
CM
恢复软件断点
图 4.6 16 指令的软件断点设置与恢复操作
SWBP 断点设置好后,当流水线处于运行状态过程中执行到该预设断点标志
指令时,将触发 SWBP 断点,从而使流水线停顿在目标指令的执行 E1 站的位置,
并且此时 ET_RecDC2 有效,完成对指令的恢复工作,保证程序的正确执行。
4.5 功能验证
4.5.1 软件断点的功能验证点
表 4.1 软件断点的功能验证计划描述
功能点描述 备注
SWBP 断点设置:断点未流入流水线 通过写 SPI 空间
SWBP 断点设置:断点分别处于不同 PW 站、IF 站、DP1 站、
的流水线 DP2 站以及 DC1 站
SWBP 断点取消:断点未进入流水线 通过写 SPI 空间
软件断点 SWBP 断点取消:断点分别处于不同 PW 站、IF 站、DP1 站、
(SWBP 断 的流水线 DP2 站以及 DC1 站
点) SWBP 断点检测 DP2 站
SWBP 断点恢复 DC2 站
SWBP 断点与与 Stall/Bsy/NOP/Flush
等信号同时为高
SWBP 断点与与 HWBP 断点的联合控
制
第 47 页
国防科学技术大学研究生院工程硕士学位论文
4. 5. 2 软件断点的验证结果和分析
根据表 4.1 所制定的验证功能点,开始进行对 SWBP 的系统级功能验证,具
体过程如下:
(1)32 位指令软件断点
表 4.2 软件断点验证的背景汇编激励
汇编激励 反汇编激励
VMOVIH 0X0, VR6 40: 20003076 vmovih 0x0,VR6
VMOVIL 0X1, VR7 44: 200038b6 vmovil 0x1,VR7
VMOVIH 0X0, VR7 48: 20003876 vmovih 0x0,VR7
VMOVIL 0X1, VR8 4c: 200040b6 vmovil 0x1,VR8
VMOVIH 0X0, VR8 50: 20004076 vmovih 0x0,VR8
SMOVIL 0x0000, R31 54: 2000f816 smovil 0x0,R31
SMOVIH 0x5000, R31 58: 2a00f856 smovih0x5000,R31
SMVCGC R31, SST //SW1
SMOVIL 0xFFFFFFE, R31 5c: 2f8e806c smvcgc R31,SST
SMOVIH 0, R31 60: 3ffeff16 smovil 0xfffe,R31
SMVCGC R31, EER 64: 2000f856 smovih 0x0,R31
SNOP 2 68: 2f8f206c smvcgc R31,EER
SMVCGC R31, IER 6c: 0146 snop 0x2 //SW2
SMOVIL 0x0, R30 6e: 2f8f006c smvcgc R31,IER
72: 2000f016 smovil 0x0,R30
第 48 页
国防科学技术大学研究生院工程硕士学位论文
图 4.7 32 指令的软件断点波形
如图 4.7 所示,在 DP_PC 为 36’h000000030 的时候,对反汇编指令 2a00f856
的高 16 位进行软件断点标志的改写,如图中标线 1 处所示,ET_WriteDP1 为高时,
ET_DataCPU[15:0]将断点标志 0X0a00 写入到目标指令处,从而目标指令编码变为
0X0a00f856 , 在 放 开 流 水 线 之 后 , 由 于 派 发 部 件 检 测 到 该 软 件 断 点 信 号
DP2_SwbpET,从而导致流水线在该指令的执行 E1 站暂停下来,如上图所示,流
水线最终停在了 PC 值为 58 所在的指令处。需要特别说明的是软件断点的恢复,
如上图中标线 2 处所示,当流水线在执行 E1 站暂停之后,为了指令的完整性以及
程序的正确执行结果,需要进行 SWBP 断点的恢复工作,这时候 ET_RecDC2 为高,
将原指令编码 2a00f856 通过 ET_DataCPU 重新写回到对应的功能部件中去,从而
完成软件断点的恢复。
(2)16 位指令软件断点
表 4.4 16 位指令为软件断点的 ET 调试激励
ET 调试激励
ET_Pipe(step);
ET_Write(36'h0_401e_8013,36'h0000_0106); //软件断点设置,写入 X 指令
ET_Pipe(run); //流水线运行
ET_Pipe(halt);
ET_Write(36'h0_401e_c002,36'h0000_0146); //软件断点恢复
ET_Pipe(step); //软件断点停后走单步
第 49 页
国防科学技术大学研究生院工程硕士学位论文
图 4.8 16 指令的软件断点波形
4.6 本章小结
进行芯片的仿真/调试过程中软件断点是对流水线进行控制的一个非常有效的
方式。本章以仿真/调试中的软件断点的原理展开,分析了在指令流水线中的软件
断点的设置、取消、检测及恢复的处理机制,详细介绍了 SWBP 断点的生成原理
及 DP 部件在硬件设计上对于 SWBP 断点的支持。
第 50 页
国防科学技术大学研究生院工程硕士学位论文
硬件断点及
ETAP AD分析域
TDI 事件统计
TMS DSP_
CD控制域 CORE
TCK
流水线控制
TRST
CDAP
控制域访问端口
CLK域
CPU访问状态机DNACBuf
NAC
图 5.1 ET 内部模块图
第 51 页
国防科学技术大学研究生院工程硕士学位论文
第 52 页
国防科学技术大学研究生院工程硕士学位论文
5.3 36 位数据访问机制
第 53 页
国防科学技术大学研究生院工程硕士学位论文
第 54 页
国防科学技术大学研究生院工程硕士学位论文
IDLE
0
Wr_High4
Read Write_Data_Addr
8 9
Bsy_Stall
ExitDR
A
ExecuteDR
B
IDLE
0
第 55 页
国防科学技术大学研究生院工程硕士学位论文
5.5.1 存储域模块 MD
第 56 页
国防科学技术大学研究生院工程硕士学位论文
ET
CDAP CD AD
DSP core
MD
RSAC
ETAP DMA
DNACBuf REQI
Per
图 5.3 MD 整体结构框图
MD 划分为以下 3 个内部模块:
1) RSAC:将已使用保留空间和其它存储空间分别进行处理,为已使用保留
空间地址直接生成访问控制,为其它存储空间向 DMA 提交请求,为配置
空间向总线提交请求。
2) DNACBuf:为 PCIE 访问的 ET 的控制状态机。
3) REQI:依据 RSAC 模块的请求信号,形成请求参数并向 DMA 或者配置总
线提交。
各个子模块中针对 DMA 的请求处理部分均复制一份用来处理与配置总线的
协议。
5.5.1.1 RSAC 模块
为完成对资源访问的仿真调试功能,M-DSP 将 ET 的保留空间进行地址映射,
从而实现了对 DSP 各个体系结构寄存器的访问。
RSAC 模块负责接收并同步(从测试时钟域同步到系统时钟域)JIR 的指令和
来自 PCIE 的调试命令(本身就已经是在系统时钟下),通过对接收到的指令译码,
对指令进行分别处理,这个在 3.2.2 节已经进行了介绍,这里就不再赘述。
若是对 ET 保留空间的映射地址进行访问操作,则通过 ET 直接生成相应的读
写信号;否则,对读写地址进行分析,产生与 DMA 部件或者总线控制器的请求,
由 DMA 或者总线完成读写操作。
在接收读请求返回的数据时,JTAG 访问模式还必须进行从系统时钟域同步到
测试时钟域的同步,而 PCIE 访问模式依然采用系统时钟。
5.5.1.2 DNACBuf 模块
第 57 页
国防科学技术大学研究生院工程硕士学位论文
5.5.1.3 REQI 模块
在 ET 中有一个专门用来进行调试指令解析的模块(Instruction DECode,
IDEC),该模块负责对仿真指令 JIR_PO 高 14 位进行译码。仿真指令 JIR_PO 的
来源既有来自 JTAG 的也有可能来自 PCIE 的。
为了与 JTAG 模式下的的逻辑进行复用,所以在该模块的入口处增加两个选
第 58 页
国防科学技术大学研究生院工程硕士学位论文
JTAP_ Reset
IDEC_ SCSM_ EXE
CPU_ Reset CSM
(UCK)
IDEC_ SCSM_ TERM
VM_Bsy IDEC_ SCSM_ LOCK
SMC_Bsy
DSP
UCK IDEC_ ResetCPU
(UCK)
TCK
第 59 页
国防科学技术大学研究生院工程硕士学位论文
EMUX,
IDEC_SCTR_SEL 1 选通事件计数器通路
ECTR1
IDEC_SECR_SEL EMUX, ECR 1 选通 ECR 通路
IDEC_BYPASS_SEL EMUX, BR 1 选通旁路寄存器通路,对应 Bypass 指令
IDEC_DIR_SEL EMUX, DIR 1 选通 DIR 通路,对应 IDCODE 指令
对应 JIR 编码为 0x20 指令的命令,它指
引 CSM 应用 ECR 的 EXE 位域到 MPSD
IDEC_SCSM_EXE CSM 1 码生成器 MCG(使信号 MCC_CSEL=1,
选择 EXE 位域);复位 LOCKED 状态,
进入 EXECUTE 状态(MCC)。
对应 JIR 编码为 0x21 指令的命令,它指
引 CSM 应用 ECR 的 TERM 位域到 MPSD
IDEC_SCSM_TERM CSM 1 码生成器 MCG(使信号 MCC_CSEL=0,
选择 TERM 位域);复位 LOCKED 状态,
进入 TERMINATE 状态。
对应 JIR 编码为 0x24 指令的命令,指引
CSM 进入 LOCKED 状态,“冻结”当前
IDEC_SCSM_LOCK CSM 1
码(MPSD 码)。
信号 CSM_LOCK=1
IDEC_ResetCPU PCIE/ARM 1 ET 复位 CPU
作为测试数据寄存器之一的仿真控制寄存器 ECR,用于各模块域的时钟配置
选择、工作模式(仿真或测试)选择和域访问端口 DAP 的可编程控制。ECR 位宽
20,包含仿真控制所需的各种模式域,仿真控制寄存器 ECR 的各个位域具体功能
描述如图 5.5 所示,其输入输出端口信号详情见表 5.6 和 5.7 所示。
19 18 15 14 13 12 9 8 7 6 5 4 3 2 0
第 60 页
国防科学技术大学研究生院工程硕士学位论文
高有效,采样 CIR_ECR 到相应的指令寄存
器。
IDEC_SECR_SEL IDEC 1 ECR 扫描通路选择信号
JTAP_Idle JTAP 1 JTAP 处于 Run-Test/Idle 状态
JTAP_Reset JTAP 1 仿真/测试逻辑复位信号
JTAP_ShiftDR JTAP 1 移位控制信号
JTAP_UpdateDR JTAP 1 更新控制信号
TCK TCK 1 测试时钟
TDI TDI 1 JTAG 标准测试数据输入
UCK PLL 1 功能时钟
第 61 页
国防科学技术大学研究生院工程硕士学位论文
它是从运行状态和调试状态的过渡状态。
当执行码 EXE 为 2’b01 时,即 HALT 状态,表示系统将变成调试状态,它是
用于完成系统从流水线运行状态到调试状态的转换。
(2)TERM,叫做终止码(TERMination Code)域。该域有两位,包含 2 位
终止码,终止码的含义与前面 EXE 执行码域的执行码相同,它的作用是用来配合
EXE 域的执行码对流水线进行控制的。
(3)REVT,叫做远程事件(Remote Event)域。该域有三位,它的 3 位编码
是用来指定调试状态的执行码从 EXE 执行码域转换到 TERM 终止码域或是两者进
行逆转换的条件,REVT 远程事件域的编码如下表 5.9 所示。
5.6 验证与测试
5.6.1 功能验证计划
第 62 页
国防科学技术大学研究生院工程硕士学位论文
功能 2.2 流水线控制 系统复位、流水线运行、单步、暂停等
2.3 性能统计 程序运行周期、分支命中次数等
5.6.2 验证结果分析
(2)36 位数据的读写
(3)DNACBuff 中的 FIFO 读写
第 64 页
国防科学技术大学研究生院工程硕士学位论文
5.6.3 覆盖率分析
图 5.10 覆盖率分析图
5.7 本章小结
第 65 页
国防科学技术大学研究生院工程硕士学位论文
M-DSP 开发过程中,进行全芯片系统级验证、调试的平台主要是用集成开发
环境(IDE,Integrated Developing Environment)。它通过软件支持,可以通过调
试主机来进行对芯片的调试工作,下面就来介绍设计中的 IDE 软件调试平台[44] [45]。
IDE 调试平台通过基于图形界面的方式对仿真/调试部件传送调试指令,从而
让仿真/调试的工作实现方便高效,它主要原理是为仿真验证环境提供各种调试仿
真命令的驱动函数[46] [47],如图 6.2 所示。
第 66 页
国防科学技术大学研究生院工程硕士学位论文
IDE调试平台
第 67 页
国防科学技术大学研究生院工程硕士学位论文
读操作 实例化模块、模块端口、模块通路、内部模块通路、
顶层模块、实例化Primitive、线网、寄存器、
Primitive terminals、参数、时序检查、
named events、整型变量、实数和时间变量
PLI
接口
写操作
模块通路、模块内部模块通路、实例化Primitive、
寄存器逻辑值、时序检验、逻辑值、sequential UDP
随着超大规模集成电路在设计复杂度和硬件逻辑规模的不断增加,DSP 核的
数量也从单核走向多核[53] [54]
,所以对全芯片进行调试仿真的工作,传统的 FPGA
原型验证调试已经越来越难以胜任,而 M-DSP 处理器作为一款高性能浮点向量多
核处理器,如果用传统的 FPGA 原型验证调试,从时间开销还是验证效率上都不
是特别理想,所以需要一个新型系统级验证模型来克服下面的三个问题:
(1)由于 M-DSP 超大规模的硬件设计结构,所以现在的 FPGA 原型芯片不
再适用,而新型软硬件联合系统级验证方案能够很好的适应 M-DSP 处理器庞大、
复杂的硬件逻辑结构,而且 Verilog PLI 接口不需要制造一个 M-DSP 的 FPGA 原型
芯片,只需要编写对应 C 函数,就能够与仿真器进行通信,从而实现仿真调试功
能。
(2)准确的定位调试错误。基于传统的 FPGA 原型验证调试,对于芯片内部
的硬件逻辑用户是不可见的,这样当出现调试错误时,是很难准确定位的。而基
于 Verilog PLI 接口的新型验证方案,与仿真环境进行通信,能够直接的对 RTL 级
的代码进行查阅和修改,这无疑给验证人员提供了极大的方便。
(3)验证调试操作方便。随着芯片的硬件规模越来越大,芯片的验证难度也
在增加,这时候验证工作的时间和人员的成本开销是要在项目考虑之中的。基于
第 68 页
国防科学技术大学研究生院工程硕士学位论文
C 集
语 成 .
言 开
底 发
层 .
环
驱
动 境
NC_Sim模拟器
C
共享数据栈 语
言
接
PLI数据通路 口
函
数
第 69 页
国防科学技术大学研究生院工程硕士学位论文
C子 程 序
调 试 读写 PLI 接 口
测试激励
ET
C子程序
Task.v
串
寄存器
存储器 行
运行
停止
单步
断点
YHFT-M DSP
调试/仿真平台
6.3.1 共享内存区
前面说到用于两个进程之间进行交互的共享缓冲队列是一块特别留出来的内
存区。两个进程任何一个进程有了数据更新的话,另外那个进程能够及时的得到
数据的更新,从而实现了 IDE 界面和 NC_Sim 仿真器两个进程之间的通信[57] [58]。
这块共享内存区实质是两个 FIFO,它们的位宽和深度都是一样。FIFO_1 用于
保存输入信号 Inputqueue,即保存 IDE 发送的仿真调试指令,FIFO_2 用于保存输
出数据 Outputqueue,即保存着给 IDE 的仿真调试的返回数据内容。而对于 PLI 接
口来说,IDE 对共享内存的写操作却是它的读操作,而 PLI 的写操作却是 IDE 的
读操作,且它们的读写是同步的。其数据通信图如图 6.6 所示。
第 70 页
国防科学技术大学研究生院工程硕士学位论文
共享内存
写 INPUTQUEUE 读
I D
D S
E 读 写 P
OUTPUTQUEUE
深度:32
图 6.6 进程间共享内存数据的通信图
6.3.2 同步读写指针
在上一节的分析中,要求两个进程之间对于共享内存的读写访问要求是同步
的,然而两个进程之间读写速度并不是完全一致的,这样很容导致调试数据紊乱,
从而使新型系统级验证系统崩溃,所以这里需要设计一种同步机制,能够使 PLI
准确拿到 IDE 写的数据,而 IDE 也能够拿到返回值。在设计中,对于每一个读/
写队列,可以用队列的头/尾指针来定位数据的位置,并且让两个进程间读写指针
实现同步[59] [60]。
在这里读写指针两者是相对而言的,如上图 6.6 所示,读指针,是指当 DSP
读取调试界面 IDE 输出到 Inputqueue 缓冲队列中调试函数包的头指针和尾指针,
以及当调试界面 IDE 读取 DSP 返回到 Outputqueue 缓冲队列中的数据包的头指针
和尾指针。写指针与读针类似的,这里就不再赘述。
*Ptr+2
*Ptr+1
*Ptr
*Front
*Rear
Data_struct Field
图 6.7 共享缓冲队列的结构划分图
其中,*Ptr:共享内存的首地址;*Front:队列的头指针;*Rear:队列的尾指
针。
为了让两个进程间读写指针实现同步[63],本设计中将共享内存区内部划分成
三块,如图 6.7 所示,分别用来存放传输数据包、队列的头指针以及尾指针,这样,
如果要读取某一缓冲队列中数据的时候,就以保存的队列头指针内容作为索引去
读取共享缓冲队列中的数据包。
第 71 页
国防科学技术大学研究生院工程硕士学位论文
6.4 多核加速模型
随着 DSP 走向多核化,越来越需要考虑到多核的特殊性,所以需要对多核的
验证系统需要进行专门研究,特别是多核验证过程中仿真效率的考虑。
第 72 页
国防科学技术大学研究生院工程硕士学位论文
6.4.1 设计原理
6.4.2 队列类型复用
6.4.3 多核加速效率分析
在多进程模拟环境下,不同测试激励的仿真效率不尽相同。如果在数据通信
占主体的情况下,此时通信效率折损,主要是因为进程间的相互通信本身就耗费
了时间;然而,在内核运算占主体时,仿真效率迅速提升,这是由于在各个模拟
器中仿真的单核处于高速运算状态,因此由进程间通信而耗费的时间就显得微不
第 73 页
国防科学技术大学研究生院工程硕士学位论文
足道,此时多核加速的效果就能够很好体现。
6.5.1 调试流水线
第 74 页
国防科学技术大学研究生院工程硕士学位论文
如上图中所示,当用户需要对流水线进行控制的时候,IDE 底层驱动函数经
PLI 接口将对应的控制命令发送给 ET 部件,ET 将执行对应的控制流水线操作,
用户可以直接在 IDE 用户界面中,点击流水线控制图标进行调试。如终端中对应
的命令所示,当点击“运行”图标的时候,IDE 环境会将包含有“20d2”的运行仿
真命令 JNI_RUN 函数命令通过共享数据堆栈发往仿真环境中的 ET 部件,然后接
着发出包含读状态的 JNI_Stat 函数命令,对流水线情况进行监视,直到用户点击
“暂停”命令或者遇到硬件断点、软件断点,流水线才会暂停下来。对于复位、
单步、暂停等操作在这里就不再赘述。
6.5.2 可访问资源的读写
第 75 页
国防科学技术大学研究生院工程硕士学位论文
图 6.10 ET 读写内存的调试界面图
在对全芯片环境进行调试的过程中,经常会需要频繁的对内存进行访问,而
在 NC_Sim 的仿真环境中是很难直观清晰快速的查看内存中的数据的。而在本文
设计的这个软硬件结合的新型系统级验证环境中,可以很方便的实现对内存的读
写操作。如图 6.10 所示,在内存对应的面板中,调试人员可以在 address 栏中输入
需要访问的内存地址,然后按下回车键,此时 IDE 底层驱动函数经 PLI 接口将对
应的读写命令发送给 ET 部件,ET 再将对应的读写结果传回给 IDE 用户界面。用
户可以直接在 IDE 用户界面中,直接对内存数据进行赋值,如上图中所示,当对
地 址 0x000000070 改 写 数 据 的 时 候 , IDE 环 境 会 将 包 含 写地 址 和 写数 据 的
JNI_WriteMem,et_WriteMem_C 函数命令通过共享数据堆栈发往仿真环境中的 ET
部件,ET 部件完成最终的写内存操作,然后 DE 环境接着发出包含读地址的
JNI_ReadMem,et_ReadMem_C 函数命令,将内存中的当前值进行读返回,从而完
成对内存空间的读写操作。
6.5.3 系统性能统计
第 76 页
国防科学技术大学研究生院工程硕士学位论文
图 6.11 性能统计的调试界面图
如上图所示,当需要进行系统性能统计时,调试人员可以在性能统计窗口中
选择需要进行统计的参数,
IDE 底层驱动函数经 PLI 接口将对应的性能统计命令发
送给 ET 部件,ET 将执行对应的操作。如上图终端中对应的命令所示,当点击“Set”
按钮的时候,IDE 环境会将包含性能统计寄存器设置函数命令 JNI_WRITEREG 通
过共享数据堆栈发往仿真环境中的 ET 部件,从而完成性能统计的设置。然后当流
水线运行的时候,ET 将会统计对应的性能参数值,在流水线暂停的时候,IDE 环
境会向 ET 发出读性能参数计数寄存器器的函数命令 JNI_READREG,从而将性能
统计结果返回至 IDE 界面。如上图中所示,用户可以方便快速的知道该段程序运
行中,程序总共执行包个数为 1398,L1P 读命中次数为 272,从而便于对程序进行
调试和优化。
第 77 页
国防科学技术大学研究生院工程硕士学位论文
6.5.4 软件断点和硬件断点
图 6.12 软件断点与硬件断点操作的调试界面图
用户可以直接在 IDE 图形界面上调试,设置断点时,当选择设置断点后,可
以在汇编激励中对应的指令前点一下,就表示设置好断点。对于软件断点设置,
此时软件需要多次的对流水线进行读写,包括读流水线各站的 PC,DP 站取指包
无效 16 位指令段个数和写入断点标志位等,软件驱动函数将会把解析后的操作指
令输出给 ET。而对于硬件断点的设置,软件只需对相应的硬件断点寄存器和硬件
断点使能寄存器进行写操作,对于寄存器的写操作和前面类似,在这里就不再赘
述。对断点的取消和设置类似。下面将对 SWBP 断点和 HWBP 断点进行验证,界
面如图 6.12 所示。
当用户需要对流水线进行控制的时候,硬件断点和软件断点是常用的手段,
如上图所示,当设置软件断点时,IDE 底层驱动函数经 PLI 接口将对应的控制命令
发送给 ET 部件,ET 将执行对应的软件断点操作,用户可以直接在 IDE 用户界面
中,点击对应汇编指令 PC 值,右键选择软件断点即可。如上图终端中对应的软件
驱动函数命令,当对 PC 值为’h000000010 的指令设置成 SWBP 断点的时候,IDE
环境根据指令在流水线中的位置,会将包含有 JNI_SetSWBP、et_ReadMem_C、
et_WriteMem_C 的软件断点设置函数命令通过共享数据堆栈发往仿真环境中的 ET
第 78 页
国防科学技术大学研究生院工程硕士学位论文
部件,从而完成软件断点的设置。然后当运行的时候,ET 检测到软件断点便会使
流水线停在 PC 值为’h000000010 的位置,同时完成指令的恢复工作。对应的软件
断点和硬件断点可以在断点管理目录中进行管理。
6.6 本章小结
第 79 页
国防科学技术大学研究生院工程硕士学位论文
第七章 论文总结及展望
7.1 论文总结
第 80 页
国防科学技术大学研究生院工程硕士学位论文
7.2 工作展望
第 81 页
国防科学技术大学研究生院工程硕士学位论文
致 谢
在这段青葱的岁月中,在这个彷徨的年纪里,在这个春暖花开的季节,在研
究生论文即将完成之际,佳帅在此要向那些给予我指引、关心、爱护和帮助的老
师、同学、家人及朋友们表达我那赤裸裸的感谢和诚挚的祝福。
首先,要衷心的感谢我的导师刘仲老师。能够成为刘老师的学生是一种特别
缘分,踏遍心田的每一角,踩透心灵的每一寸,满是对您的谢意。刘老师学识渊
博、思想深邃、视野开阔,对学生认真负责,诲人不倦。无论是学习上、工作上,
还是平时的生活中,刘老师给予了我真诚的帮助和无私的指导。刘老师品行高尚,
为人和蔼,平易近人,总是能在我的人生道路上为我答疑解惑,给我指引方向,
使我受益终生。我衷心的感谢刘老师,真诚地祝愿刘老师身体健康,工作顺利,
阖家幸福快乐!
万老师无疑是相当帅气的一位老师,那种泰山崩于前而色不变,麋鹿兴于左
而目不瞬的自信和冷静是相当迷人的。能够来到万老师的麾下实在也是我的幸运,
有点呆萌的我经常给万老师添麻烦,但一看到万老师那淡定的目光,总能有一种
清风拂面的超快感。万老师渊博的学识,严谨的工作态度,运筹帷幄的处事风格,
冷静分析问题的思维能力,对我的学习和工作都产生了积极影响,为我树立了新
时代的新好男人的标杆。特别的感谢送给万老师,感谢对我工作上细心的帮助和
耐心的答疑。衷心的祝愿万老师工作顺利,身体健康,阖家幸福!
王慧丽师姐是项目组公认的一枝花了,这个是没有争议的。我想一定是我一
直以来积累了足够多的好运气,才能遇到一个这么好的师姐。记得刚接触师姐的
时候,我那小脸蛋还经常会害羞得红彤彤的。师姐是一个绝对的女中豪杰,平时
的各种问题在她那里那都不是事儿,从师姐那里我学到了很多很多,因为和优秀
的人相处,让平凡的我也有了点儿亮光。真心真意的谢谢慧丽师姐,祝师姐幸福
快乐,青春永驻!
在项目组里,最萌的有李睿婷师姐,最搞笑的有田甜师兄,最英俊的有曾思
师兄,最开朗的有彭浩师兄,最成熟稳重的算陈俊杰师兄,杨柳师兄是来我们 413
最多的一个。每一个人都是那么的有个性,有特色,给我在项目组里的学习和生
活带来了无限地快乐和帮助。
感谢陈书明教授,感谢敬爱的陈海燕老师,彭元喜老师,陈胜刚老师,王耀
华老师,马胜老师,衷心感谢你们给予我的诸多建议、帮助和支持,毫无疑问的,
各位老师是我们眼中最可爱的人。
感谢学院领导,感谢学员六队政委贺毅、队长蔡威、以及 12 级全体同学,特
第 82 页
国防科学技术大学研究生院工程硕士学位论文
别是我班上的那几位和实验室的兄弟姐妹们,平时给你们添麻烦了,感谢大家对
我的包容与支持。
特别感谢黄天颖、武祥、欧阳东方、何辉、周金鹏、刘萍、杨雨琪、李星、
欧阳雄姿、王继初、刘思妤、贺丹妮、张洁、聂海流、舒日盼、胡蓉、刘甜甜、
聂文婕等众好友一直以来的支持与陪伴,为我的生活增添了许多色彩。
最后特别感谢我的家人一直以来对我的支持与付出,如大海般的亲恩,小帅
无以回报!
感恩身边的每一个人,并真诚地祝愿大家永远幸福、快乐!
第 83 页
国防科学技术大学研究生院工程硕士学位论文
参考文献
第 84 页
国防科学技术大学研究生院工程硕士学位论文
Industry.2010.11.
[17] Neal Stollon. Multi-core Embedded Debug for Structured ASIC Systems.
http://www.fs2.com/pdfs/DesignCon_FS2.pdf
[18] Mark Glasser. Advanced Verification Methodology AVM. Mentor Grap hics
Corporation, 2006:28-96
[19] Ravi Budruk,Don Anderson,Tom Shanley.PCI Express System Architecture.
BEIJING:Publishing House of Electronics Industry.2005.11.
[20] V.D.Agrawal,C.R.Kime,K.K.Saluja.A Tutorial on Built-In Self- Test,Part1:
Principles Design & Test of Computers.IEEE, Vol.10, No.1,March,1993:73-82.
[21] Harry Bleeker,Peter van den Eijinden,Frans de Jong.Boundary-Scan Test:A
Practical Approach.Kluwer Academic Publishers,1993.2.
[22] ARM DUI 0322A, RealView Debugger Version 3.0 Trace User Guide,
http://www.arm.com, 2006
[23] ARM Software Development ToolKit Version 2.50 User Guide, ARM Limited
Inc. , 1998
[24] Rob Oshana. Testing and Debugging DSP Systems. www.embedded.com, 2007.2
[25] Wang Danghui, Gao Deyuan, Li Tao, Breakpoint Debugging Mechanism For
Microprocessor Design, IEEE
[26] A.Molina, O.Cadenas. Functional Verification: Approaches AND Challenges.
Latin American Applied Research, 2007.3, Vol.33, No.1: 65-69
[27] 李文,王恒才,唐智敏.一种 CPU 芯片硬件验证调试平台的设计与实现[J]计算
机研究与发展.2003:40(6):848-888.
[28] 张新芳. “银河飞腾”DSP 片上调试结构的设计与实现. 硕士学位论文. 国防
科技大学. 2006.6.
[29] Standard for a Global Embedded Processor Debug Interface IEEE-ISTO.1999
[30] Larry Mittag. Software Debug Options on ASIC Cores, [OL]. Available at :
www.embedded.com/97/feat9701.htm, 2005.6.7
[31] Debug of ARM.Based systemsusing Embedded ICE.Ashling Microsystems Ltd.
2001
[32] Ciaran MacNamee, Donal Heffernan, Emerging on-chip debugging techniques
for real-time embedded systems, COMPUTER & CONTROL ENGINEERING
JOURNAL DECEMBER 2000
[33] IBM. CodePack PowerPC Code Compression Utility User's Manual Version3.0.
1998
[34] Himanshu Bhatnagar.AdvaneedAsieChiPSynthesis:UsingSynoPsysDesign
ComPilerPhysiealComPilerandPrimetime.SPringer.2002
[35] K.D., maier, ON-Chip Debug Support for Embedded Systems-On-Chip, IEEE
[36] SynoPsys.DesignComPllerUserGuide.www.synoPsys.com.200
第 85 页
国防科学技术大学研究生院工程硕士学位论文
[37] TMS320C6000 Board Design: Considerations For Debug, Literature Number:
SPRA523
[38] Morten Zilmer, Non-intrusive On-chip Debug Hardware Accelerates
Development for MIPS RISC Processors, MIPS Inc., 1999
[39] Revill Geoff. Designing Complex Embedded Systems without an Emulator,
[OL].Available at: www.realtime- info.com, 2005.6.8
[40] ARM7 TDMI Debug Architecture, ARM limited Inc., 2000
[41] IEEE Std 1149.1-2001. IEEE Standard Test Access Port and Boundary-Scan
Architecture. IEEE-SA Standards Board, 2001.6
[42] Clifford E.Cummings. Simulation and Synthesis Techniques for Asynchronous
FIFO Design. Available at: www.sunburst-design.com, 2002.3
[43] David J.Frank, Ruchir Puri, Dorel Toma. Design and CAD Challenges in 45nm
CMOS and beyond. Proceedings of the IEEE/ACM international conference on
Computer-aided design, ICCAD '06, 2006
[44] 陈海燕,郭阳,刘祥远,陈吉华. 集成电路计算机辅助设计与验证实践 [M]. 长
沙:国防科技大学出版社. 2010.10.
[45] Y.WuandP.MaeDonald.TestingASICswithmultipleidentiealeores.proe.
ComPuter-AidedDesign,Mareh200
[46] Chris Spear.SystemVerilog for Verification[M].北京:科学出版社,2009:2.
[47] Markus Levy, Multi-core technology: trends and design challenges, EEMBC and
The Multicore Association, 2006.2
[48] TI Inc., MPC DataRoadshow Catalog OMAP Platform and OMAP5910,
www.omap.com/rd/omap5910, 2002.10
[49] Gary Swoboda, Combat Integration's Dark Side With New Development Tools,
http://www.elecdesign.com/, 2003.9
[50] Gary Swoboda, Design View / Design Solution: The History Behind Vanishing
Visibility, http://www.elecdesign.com/, 2003.6
[51] Prakash Rashinkar, Peter Paterson, Leena Singh. System-on-a-Chip Verification
Methodology and Techniques. New York: Kluwer Academic Publishers, 2002
[52] Steven McLaughlin. Introduction to HCS08 Background Debug Mode. Freescale
Semiconductor Application Note, Document Number: AN3335, Rev.1, 2006.11
[53] Miron Abramovici, Paul Bradley, Kumar Dwarakanath, Peter Levin, Gerard
Memmi, Dave Miller. A Reconfigurable Design- for-Debug. Proceedings of the
43rd annual ACM IEEE conference on Design automation, 2006: 7-12
[54] 王慧丽. 支持仿真/调试技术的指令派发部件的设计与实现[D]. 硕士学位论
文. 国防科技大学. 2012.3.
[55] Edsel Lu, Marlena Shaffer, Brian Schultz. COE 1541: Pipelined CPU Tutorial.
Available at : www.cs.pitt.edu
第 86 页
国防科学技术大学研究生院工程硕士学位论文
[56] Michael Crews, Yong Yuenyongsgool. Practical design for transferring signals
between clock domains. Available at: www.edn.com, 2003.2
[57] Hopkins A B T, Mcdonald-Maier K D. Debug support for complex
systems-on-chip: A review[J]. IEEE Proceedings-Computers and digital
Techniques. 2006, 153(4):197-207.
[58] BSD Architect Reference Manual. Mentor Graphics Corporation, 2001.9
[59] Wakerly JF. Digital Design Principles and Practice,3rded. Upper Saddle River,
NJ:Prentice-Hall, 2000
[60] Xiao Hu, etc. TraceDo: An On-Chip Trace System for Real-Time Debug and
Optimization in Multiprocessor SoC, ISPA’06, Italy, 2006.12
[61] A. Mayer, H. Siebert, K. Maier, Debug Support, Calibration and Emulation for
Multiple Processor and Powertrain Control SoCs Proceedings of the Design,
2005
[62] Andrew B.T, Debug Support Strategy for Systems-on-Chips with Multiple
Processor Cores, IEEE TRANSACTIONS ON COMPUTERS, VOL. 55, NO. 2,
2006
[63] 李睿婷.高性能 X-DSP 指令流水线部件设计实现与软硬件协同验证[D]. 硕士
学位论文. 国防科技大学. 2014.3.
[64] John Stevenson.Code Computer Studio IDE V3 White Paper.Texas Instruments
Incorporated,2004.7.
[65] TMS320C62x Code Composer IDE Help (SPRH197).Parallel Debugging
Manager:An Introduction.http://www.ti.com.2005
[66] Srtherland. S. The Verilog PLI Handbook (Second Edition): a user’s guide and
comprehensive reference on the Verilog programming language interface[M].
Springer,2002.
[67] Mittra, Swapnajit, ed. Principles of Verilog PLI, Springer. 1999.
第 87 页
国防科学技术大学研究生院工程硕士学位论文
作者在研究生阶段取得的学术成果
第 88 页