首页> 中国专利> 一种将片上仿真器时钟同步到微处理器时钟域的方法

一种将片上仿真器时钟同步到微处理器时钟域的方法

摘要

本发明涉及一种将C core C310嵌入式微处理器芯片片上仿真器的时钟同步到微处理器时钟域的方法,该方法将测试时钟信号j_tclk依次经微处理器时钟域的第一寄存器和第二寄存器锁存,并将第二寄存器的输出端信号取反后和第一寄存器的输出端信号进行逻辑与运算,获得第一脉冲使能信号j_tclk_rise用于控制仿真器内寄存器对测试模式选择信号j_tms、测试数据输入信号j_tdi进行采样,同时将测试时钟信号j_tclk取反后和第二寄存器的输出端信号进行逻辑与运算,获得第二脉冲使能信号j_tclk_fall用于控制仿真器内寄存器对测试数据输出信号j_tdo进行采样,从而在单一时钟域下实现具有片上仿真器的微处理器芯片结构。

著录项

  • 公开/公告号CN101592976A

    专利类型发明专利

  • 公开/公告日2009-12-02

    原文格式PDF

  • 申请/专利权人 苏州国芯科技有限公司;

    申请/专利号CN200910030586.5

  • 发明设计人 徐小宇;于麦口;郑茳;肖佐楠;

    申请日2009-04-16

  • 分类号G06F1/12(20060101);

  • 代理机构32103 苏州创元专利商标事务所有限公司;

  • 代理人马明渡

  • 地址 215011 江苏省苏州市高新区竹园路209号苏州创业园C2031室

  • 入库时间 2023-12-17 23:05:55

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-06-21

    专利权人的姓名或者名称、地址的变更 IPC(主分类):G06F1/12 变更前: 变更后: 申请日:20090416

    专利权人的姓名或者名称、地址的变更

  • 2011-09-28

    授权

    授权

  • 2010-01-27

    实质审查的生效

    实质审查的生效

  • 2009-12-02

    公开

    公开

说明书

技术领域

本发明涉及一种片上系统SOC(System On Chip)时钟同步方法,具体涉及一种将C core C310嵌入式微处理器(以下简称C310)芯片片上仿真器的时钟(JTAG时钟)同步到微处理器时钟域的方法。

背景技术

C310芯片是苏州国芯科技有限公司基于摩托罗拉公司的M310改进开发的高性能微处理器。该微处理器是专为高性能和功耗明感的嵌入式控制应用而设计的,强调降低系统的功耗。该微处理器具有32位的load/store精简指令集计算机(RISC)架构;固定16位指令长度;16个32位通用寄存器文件;高效的4级执行流水线;多数指令单周期执行,分支指令访问仅需2个周期;支持字节、半字和字三种类型的存储器访问;支持向量和自动向量的中断;硬件整数乘法器阵列等结构特点。

C310芯片内部主要包括两个模块:微处理器(MPU)模块和片上仿真器(On Chip Emulator,Once)模块。

微处理器模块主要完成指令的读取,执行,数据输入和输出等功能。片上仿真器模块主要为软件开发人员而设计,便于开发调试人员及时观测微处理器内部以及微处理器外部片上功能模块的状态。片上仿真器模块提供了软件开发人员与微处理器及其外围设备之间的交互方式,开发人员可以检测寄存器、存储器和片上外围设备,加快基于C310芯片上的软硬件开发。通过工业标准JTAG接口访问寄存器来控制片上仿真器模块的工作。

图1为一个完整的软件开发环境。图中的最左端为开发用个人电脑(PC),通过串行接口连接到EBDI(Enhanced Background Debug Interface)调试盒,然后在以JTAG接口标准与SOC(System On Chip)内部的C310中的片上仿真器模块相连。片上仿真器通过扫描链技术输入输出指令和数据到微处理器。在本例所示的SOC上还包括集成在CLB(China Local Bus)总线上的EMC(External Memory Controller)模块和USB(Universal Serial Bus)模块,以及集成在IPB(Intellectual Property Bus)总线上的SCI(SerialCommunicate Interface)模块,PIT(Program Interrupt Timer)模块和TIM(TIMER)模块。

JTAG接口主要包括5个引脚:TMS引脚用于传输测试模式选择信号j_tms、TCK引脚用于传输测试时钟信号j_tclk、TDI引脚用于传输测试数据输入信号j_tdi、TDO引脚用于传输测试数据输出信号j_tdo、TRST引脚用于传输测试复位信号j_trst_b。所以在以C310为核心的SOC结构中,片上仿真器模块的时钟与SOC上的其他模块的时钟是不同的。片上仿真器模块的时钟为j_tclk,它直接来自于与之相连的EBDI调试盒;微处理器以及片上其他模块的时钟一般来自于片外晶体电路。而且这两个时钟没有任何关联关系。

在C310微处理器的FPGA实现过程中,由于FPGA结构的特殊性以及C310内部多时钟域的存在,使得用FPGA实现的C310的整体性能都被限制在一个较低的水平有时甚至很难实现。在FPGA内部有一个专用的时钟网络,该网络可以保证在FPGA内部每个寄存器的时钟上升沿的偏移不会太大。如果一个设计只有一个时钟,那么只要直接使用FPGA内部的时钟网络实现该设计的时钟即可最大限度的使设计达到其最大设计频率。但是如果一个设计有两个以上的时钟,就存在着用非时钟网络实现设计时钟的问题,即使在一些高端的FPGA内部存在着多个独立的时钟网络可以多个专用时钟网络分别实现设计中的多个时钟,但是也会存在传输信号跨时钟域的问题,这些问题都会导致用FPGA实现的整个设计的性能不可控或者大大降低有时甚至无法实现这样的设计。但是如果能够将多个时钟统一到同一时钟域,就可以降低用FPGA实现的难度。

对于C310芯片来说,片上仿真器模块和微处理器模块的时钟不同,这两个时钟域具有以下两个特点:

第一,根据JTAG协议,所有的JTAG信号都是在j_tclk上升沿时采样。

第二,人们在设计和使用微处理器的时候,总是希望速度越快越好,所以微处理器的时钟都会处于一个较高的频率范围(几十兆赫兹到上百兆赫兹)。在基于微处理器软件开发过程中,需要进行人机对话。而人的生理极限的存在决定了开发调试对速度并没有特别高的要求,所以一般调试人员只需要把仿真器的频率设置到1MHz的速度就能够满足调试的需要。所以在实际使用的过程中,调试用的仿真器的时钟频率都会大大低于微处理器的时钟频率。利用以上的两个特点就可以将两个时钟统一起来。

发明内容

本发明目的是提供一种将C310芯片片上仿真器时钟同步到C310微处理器时钟域的方法,其目的是要将片上仿真器模块和微处理器模块使用的两个时钟统一到同一个时钟域之下,使该微处理器的FPGA实现变得简单,提高用FPGA实现的C310微处理器的性能。

为达到上述目的,本发明采用的技术方案是:一种将片上仿真器时钟同步到微处理器时钟域的方法,该方法用微处理器时钟信号cpu_clk的下降沿触发第一寄存器REG1来锁存测试时钟信号j_tclk,在第一寄存器REG1的数据输出端产生一个时钟下降沿锁存信号j_tclk_delf,用微处理器时钟信号cpu_clk的上升沿触发第二寄存器REG2来锁存时钟下降沿锁存信号j_tclk_delf,在第二寄存器REG2的数据输出端产生一个时钟上升沿锁存信号j_tclk_dly,然后将时钟上升沿锁存信号j_tclk_dly取反后和时钟下降沿锁存信号j_tclk_delf进行逻辑与运算,产生一个跟随测试时钟信号j_tclk上升沿发生的第一脉冲使能信号j_tclk_rise,将测试时钟信号j_tclk取反后和时钟上升沿锁存信号j_tclk_dly进行逻辑与运算,产生一个跟随测试时钟信号j_tclk下降沿发生的第二脉冲使能信号(j_tclk_fall);

仿真器内用于锁存测试模式选择信号j_tms的各寄存器时钟端输入微处理器时钟信号cpu_clk,使能端输入第一脉冲使能信号j_tclk_rise,当第一脉冲使能信号j_tclk_rise有效且微处理器时钟信号cpu_clk处于上升沿时,采样测试模式选择信号j_tms;

仿真器内用于锁存测试数据输入信号j_tdi的各寄存器时钟端输入微处理器时钟信号cpu_clk,使能端输入第一脉冲使能信号j_tclk_rise,当第一脉冲使能信号j_tclk_rise有效且微处理器时钟信号cpu_clk处于上升沿时,采样测试数据输入信号j_tdi;

仿真器内用于锁存并输出测试数据输出信号j_tdo的各寄存器时钟端输入微处理器时钟信号cpu_clk,使能端输入第二脉冲使能信号j_tclk_fall,当第二脉冲使能信号j_tclk_fall有效且微处理器时钟信号cpu_clk处于上升沿时,更新并输出测试数据输出信号j_tdo;

微处理器时钟信号cpu_clk的频率大于测试时钟信号j_tclk频率的三倍。

上述技术方案中的有关内容解释如下:

1、上述方案中,所述测试模式选择信号j_tms、测试数据输入信号j_tdi、测试数据输出信号j_tdo和测试时钟信号j_tclk采用JTAG协议,JTAG协议是一种国际标准测试协议,主要用于芯片内部测试及对系统进行仿真、调试。标准的JTAG接口主要包括5个引脚:TMS引脚用于传输测试模式选择信号j_tms、TCK引脚用于传输测试时钟信号j_tclk、TDI引脚用于传输测试数据输入信号j_tdi、TDO引脚用于传输测试数据输出信号j_tdo、TRST引脚用于传输测试复位信号j_trst_b。

2、上述方案中,测试模式选择信号j_tms和测试数据输入信号j_tdi这两个输入信号在测试时钟信号j_tclk的上升沿附近的某个微处理器时钟信号cpu_clk的上升时被仿真器内相应的寄存器采样;测试数据输出信号j_tdo在测试时钟信号j_tclk的下降沿附近的某微处理器时钟信号cpu_clk的上升沿时更新输出。

3、上述方案中,所述“微处理器时钟信号cpu_clk的频率大于测试时钟信号j_tclk频率的三倍”,其中“大于三倍”的含义是指三倍以上的整数倍或小数倍均可,例如,微处理器时钟频率是测试时钟频率的3.1倍,3.8倍,4倍等。

4、上述方案中,测试时钟信号j_tclk直接来自于EBDI调试盒;微处理器时钟信号cpu_clk来自于片外晶体电路。

5、上述方案中,第一寄存器和第二寄存器是为实现本发明方法而专门设置的寄存器(而不是仿真器内寄存器),其中第一寄存器为下降沿触发寄存器,第二寄存器为上升沿触发寄存器。

6、上述方案中,第一脉冲使能信号j_tclk_rise是一个与测试时钟j_tclk上升沿基本同步的寄存器使能信号,第二脉冲使能信号j_tclk_fall是一个与测试时钟j_tclk下降沿基本同步的寄存器使能信号。

本发明工作原理是:利用第一寄存器和第二寄存器的串联,在微处理器时钟信号cpu_clk触发下来锁存测试时钟信号j_tclk,将第二寄存器的数据输出信号取反后和第一寄存器的数据输出信号进行逻辑与运算,获得第一脉冲使能信号j_tclk_rise;将测试时钟信号j_tclk取反后和第二寄存器的数据输出信号进行逻辑与运算,获得第二脉冲使能信号j_tclk_fall;用微处理器时钟信号cpu_clk来取代原来作用于仿真器内各寄存器时钟输入端的测试时钟信号j_tclk,用第一脉冲使能信号j_tclk_rise来控制仿真器内所有数据传输方向为从仿真器到微处理器的寄存器使能端,对测试模式选择信号j_tms和测试数据输入信号j_tdi进行采样,用第二脉冲使能信号j_tclk_fall来控制仿真器内所有数据传输方向为从微处理器到仿真器的寄存器使能端,更新并输出测试数据输出信号j_tdo。本发明将片上仿真器时钟同步到芯片微处理器工作时钟,实现了单一时钟域的带片上仿真器的微处理器结构,使该微处理器芯片的FPGA实现简单可行并且其性能也有较大提升。

附图说明

附图1为本发明C310芯片开发环境示意图;

附图2为本发明仿真器与微处理器时钟域统一前后时序图;

附图3为本发明仿真器内寄存器统一到微处理器时钟域的电路简图。

具体实施方式

下面结合附图及实施例对本发明作进一步描述:

实施例:一种将片上仿真器时钟同步到微处理器时钟域的方法

如图3所示,第一寄存器REG1为下降沿触发寄存器,第二寄存器REG2为上升沿触发寄存器,第一寄存器REG1和第二寄存器REG2的时钟端输入微处理器时钟信号cpu_clk,第一寄存器REG1使用微处理器时钟信号cpu_clk的下降沿触发来锁存测试时钟信号j_tclk,在第一寄存器REG1的数据输出端产生一个时钟下降沿锁存信号j_tclk_delf,第一寄存器REG1的数据输出端与第二寄存器REG2的数据输入端连接,第二寄存器REG2使用微处理器时钟信号cpu_clk的上升沿触发来锁存时钟下降沿锁存信号j_tclk_delf,在第二寄存器REG2的数据输出端产生一个时钟上升沿锁存信号j_tclk_dly,第二寄存器REG2数据输出端的时钟上升沿锁存信号j_tclk_dly经第一非门INV1取反后和第一寄存器REG1数据输出端的时钟下降沿锁存信号j_tclk_delf通过第一与门AND1进行逻辑与运算,从而在第一与门AND1输出端产生一个跟随测试时钟信号j_tclk上升沿发生的第一脉冲使能信号j_tclk_rise,同时将测试时钟信号j_tclk经第二非门INV2取反后和第二寄存器REG2数据输出端的时钟上升沿锁存信号j_tclk_dly通过第二与门AND2进行逻辑与运算,产生一个跟随测试时钟信号j_tclk下降沿发生的第二脉冲使能信号j_tclk_fall。

第一与门AND1输出端与仿真器内第一寄存器组REGS1的使能端连接,仿真器内第一寄存器组REGS1时钟端输入微处理器时钟cpu_clk,当第一脉冲使能信号j_tclk_fall有效且微处理器时钟cpu_clk处于上升沿,则仿真器内第一寄存器组REGS1采样测试模式选择信号j_tms。第一寄存器组REGS1就是仿真器内用于锁存测试模式选择信号j_tms的各个寄存器,其数据传输方向为从EBDI调试盒到片上仿真器。

第一与门AND1输出端与仿真器内第二寄存器组REGS2的使能端连接,仿真器内第二寄存器组REGS2时钟端输入微处理器时钟cpu_clk,当第一脉冲使能信号j_tclk_fall有效且微处理器时钟cpu_clk处于上升沿,则仿真器内第二寄存器组REGS2采样测试数据输入信号j_tdi。第二寄存器组REGS2就是仿真器内用于锁存测试数据输入信号j_tdi的各个寄存器,其数据传输方向为从EBDI调试盒到片上仿真器。

第二与门AND2输出端与仿真器内第三寄存器组REGS3的使能端连接,仿真器内第三寄存器组REGS3时钟端输入微处理器时钟cpu_clk,当第二脉冲使能信号j_tclk_fall有效且微处理器时钟cpu_clk处于上升沿,则仿真器内第三寄存器组REGS3更新并输出测试数据输出信号j_tdo。第三寄存器组REGS3就是仿真器内用于锁存并输出测试数据输出信号j_tdo的各个寄存器,其数据传输方向为从片上仿真器到EBDI调试盒。

本实施例中微处理器时钟信号cpu_clk的频率等于测试时钟信号j_tclk频率的四倍,实际上只要大于测试时钟信号j_tclk频率的三倍即可,3.1倍、3.8倍或4.32倍等。

如图2所示,上半部为C310芯片的片上仿真器与微处理器模块时钟统一前的时序图,其中,j_trst_b为测试复位信号,低电平有效。所以在phase0时,仿真器模块被复位。所有的输入输出信号都在j_tclk的下降沿处变化,而在j_tclk的上升沿处被采样。所以,在phase1,phase2,phase3,phase4这四个j_tclk上升沿处采样的数据如表1所示:

表1JTAG采样结果

  Phase1  Phase2  Phase3  Phase4  j_tms  1  1  0  0  j_tdi  0  0  1  0  j_tdo  0  0  0  1

图2的下半部为C310芯片的片上仿真器与微处理器模块时钟统一后的第一、第二脉冲使能信号产生的时序图,从图2下半部可以看出,时钟域统一后,对于测试模式选择信号j_tms、测试数据输入信号j_tdi的采样时刻比之前推后了一个半微处理器时钟周期的时间,同理测试数据输出信号j_tdo的输出时刻也比之前推后了一个半微处理器时钟周期的时间。但是只要微处理器时钟频率cpu_clk大于三倍的测试时钟j_tclk频率,无论是仿真器内寄存器组采样来源于EBDI调试盒的测试模式选择信号j_tms和测试数据输入信号j_tdi,还是EBDI调试盒采样来自于片上仿真器内寄存器组输出的测试数据输出信号j_tdo,都没有发生变化。对于j_tms和j_tdi输入信号,在phase1,phase2,phase3,phase4这四个cpu_clk上升沿并且j_tclk_rise有效的时刻采样的数据如表2所示:

表2同步后片上仿真器采样结果

  Phase1  Phase2  Phase3  Phase4  j_tms  1  1  0  0

  j_tdi  0  0  1  0

在phase1,phase2,phase3,phase4这四个cpu_clk上升沿并且j_tclk_fall有效的时刻j_tdo更新并输出。EBDI调试盒在以上四个j_tclk上升沿采样j_tdo信号的结果如表3所示。

表3同步后EBDI采样结果

  Phase1  Phase2  Phase3  Phase4  j_tdo  0  0  0  1

用表1和表2、表3可以发现,不论是片上仿真器采样EBDI的数据,还是EBDI采样片上仿真器的数据,数据都没有发生偏差。

上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号