一种支持断点调试的取指译码电路的制作方法

文档序号:14735812发布日期:2018-06-19 20:27阅读:343来源:国知局

本发明属于集成电路技术领域,涉及一种支持断点调试的取指译码电路。



背景技术:

为方便在染色软件运行过程中根据需要对数据进行观测,方便程序员开发、调试染色程序,在染色器硬件设计中,加入断点调试功能。



技术实现要素:

本发明的目的是:

本发明提供一种支持断点调试的取指译码电路,方便程序员进行染色器程序的开发和调试,加快了软件染色器应用程序的开发进度和硬件设计的验证进度。

本发明的技术解决方案是:

一种支持断点调试的取指译码电路,包括:软件接口寄存器模块1、断点识别模块2、断点处理模块3;

软件接口寄存器模块1实现软件对断点地址寄存器、断点使能寄存器、断点继续执行寄存器和断点状态寄存器的读写访问;将32位断点地址寄存器值和断点使能寄存器值输出给断点识别模块2;将断点继续执行寄存器值输出给断点处理模块3;

断点识别模块2在软件接口寄存器模块1配置的断点使能寄存器值对应位为1有效时,将在取指阶段取回n条指令的地址与软件接口寄存器模块1配置的32位断点地址寄存器地址中的31到m位进行比较判断;比较相同时,根据断点寄存器地址的m-1到0位进行译码产生对应指令的断点标识;并将该指令断点标识输出给断点处理模块3;

断点处理模块3主要实现在预译码阶段根据断点识别模块2的指令断点标识进行指令的拆分处理,并停止译码和发射指令,产生断点状态给软件接口寄存器模块1,待软件查询该断点状态软件对该断点对应的程序存储器进行读取,获得需观测的数据;同时也可以根据软件接口寄存器模块1给的断点继续执行寄存器值从该断点处继续执行指令。

软件接口寄存器模块1中,断点地址寄存器可设置多个,断点使能寄存器的位宽和断点地址寄存器的个数一一对应,断点使能寄存器相应位段有效时设置的断点地址寄存器才有效。

软件接口寄存器模块1中,断点继续执行寄存器和断点状态寄存器的位宽可设置多位,每位表示一种程序的中断继续和发生。

断点识别模块2中,每条指令的断点标识随指令的处理阶段往下传递。

断点处理模块3中,预译码2条指令a和b,指令b的断点标识有效时,需进行指令拆分。

断点处理模块3中,译码2条指令a和b,其中任意一条指令的断点标识有效时,就停止指令的译码和发射。

2m=n,m=[1,31]。

本发明的优点是:

1、断点调试电路简单,断点调试功能不影响正常的取指译码电路;

2、断点调试功能,方便程序员进行染色器程序的开发和调试,加快了软件染色器应用程序的开发进度和硬件设计的验证进度。

附图说明

图1为本发明的电路图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图1所示,一种支持断点调试的取指译码电路,主要由软件接口寄存器模块1、断点识别模块2、断点处理模块3组成。

软件接口寄存器模块1主要实现软件对断点地址寄存器(位宽32位)、断点使能寄存器、断点继续执行寄存器和断点状态寄存器的读写访问;将断点地址寄存器值和断点使能寄存器值输出给断点识别模块2;将断点继续执行寄存器值输出给断点处理模块3;其中,断点地址寄存器可设置多个,断点使能寄存器的位宽和断点地址寄存器的个数一一对应,断点使能寄存器相应位段有效时设置的断点地址寄存器才有效;断点继续执行寄存器和断点状态寄存器的位宽可设置多位,每位表示一种程序的中断继续和发生。

断点识别模块2主要实现在软件接口寄存器模块1配置的断点使能寄存器值对应位为1有效时,将在取指阶段取回指令的地址(该地址对应n条指令)与软件接口寄存器模块1配置的断点地址寄存器高位地址([31:m])进行比较判断,其中2m=n,m=[1,31];比较相同时,根据断点寄存器低位地址[m-1:0]进行译码产生对应指令的断点标识;并将该指令断点标识输出给断点处理模块3;每条指令的断点标识随指令的处理阶段往下传递。

断点处理模块3主要实现在预译码阶段根据断点识别模块2的指令断点标识进行指令的拆分处理,并停止译码和发射指令,产生断点状态给软件接口寄存器模块1,待软件查询该断点状态(软件对该断点对应的程序存储器进行读取,获得需观测的数据);同时也可以根据软件接口寄存器模块1给的断点继续执行寄存器值从该断点处继续执行指令。

断点处理模块3中预译码2条指令(指令a和b),指令b的断点标识有效时,预译码需进行指令拆分;译码时,其中任意一条指令的断点标识有效时,就停止该指令的译码和发射。

实施例

如图1所示,一种支持断点调试的取指译码电路,主要由软件接口寄存器模块1、断点识别模块2、断点处理模块3组成。

软件接口寄存器模块1主要实现软件对断点地址寄存器、断点使能寄存器、断点继续执行寄存器、断点状态寄存器的读写访问;将断点地址寄存器值和断点使能寄存器值输出给断点识别模块2;将断点继续执行寄存器值输出给断点处理模块3;其中,断点地址寄存器设置2个,分别为断点地址寄存器1和断点地址寄存器2,断点使能寄存器的位宽为2,高位对应断点地址寄存器2,低位对应断点地址寄存器1,断点使能寄存器相应位段有效时设置的断点地址寄存器才有效;断点继续执行寄存器和断点状态寄存器的位宽均为8位,每位表示一种程序的中断继续和发生。

断点识别模块2主要实现在软件接口寄存器模块1配置的断点使能寄存器值对应位为1有效时,将在取指阶段取回指令的地址(该地址对应8条指令)与软件接口寄存器模块1配置的断点地址寄存器高位地址([31:3])进行比较判断;比较相同时,根据断点寄存器低位地址[2:0]进行译码产生8条指令的断点标识;并将该指令断点标识输出给断点处理模块3。每条指令的断点标识随指令的处理阶段往下传递。

断点处理模块3主要实现在预译码阶段根据断点识别模块2的指令断点标识进行指令的拆分处理,并停止译码和发射指令,产生断点状态给软件接口寄存器模块1,待软件查询该断点状态(软件对该断点对应的程序存储器进行读取,获得需观测的数据);同时也可以根据软件接口寄存器模块1给的断点继续执行寄存器值从该断点处继续执行指令。

断点处理模块3中预译码2条指令(指令a和b),指令b的断点标识有效时,预译码需进行指令拆分;译码时,其中任意一条指令的断点标识有效时,就停止该指令的译码和发射。

比如,上述实施例中取指地址为32'h8,取回8条指令;软件设置的断点地址寄存器1为32'ha和断点地址寄存器2为32'hf,断点使能寄存器为2'h3,该情况下产生的8条指令标识为8'h84,即取回指令中的第3条指令和第8条指令分别需要停止译码和发射。那么中断调试流程如下:

1)当译码发射第3条和第4条指令(第3条为指令a,第4条为指令b)时,指令a的断点标识有效,指令b的断点标识无效,不需拆分,停止这2条指令的译码和发射;

2)软件检测断点状态寄存器值为8'h1时,从该断点对应程序的存储器中获取需观测的数据,然后再置断点继续执行寄存器为8'h1;

3)继续从第3条指令开始译码发射;

4)接着当译码发射到第7条和8条指令(第7条为指令a,第8条为指令b)时,指令a的断点标识无效,指令b的断点标识有效,则拆分这2条指令,第7条发射,第8条停止发射;

5)软件检测到断点状态寄存器值为8'h1时,再次获取对应程序的观测数据,然后置断点继续执行寄存器为8'h1;

6)紧接着,从第8条指令处开始继续译码发射。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细地说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1