CN102253875A - 基于PicoBlaze嵌入式软核处理器的FPGA逻辑模块调试与数据采集方法 - Google Patents
基于PicoBlaze嵌入式软核处理器的FPGA逻辑模块调试与数据采集方法 Download PDFInfo
- Publication number
- CN102253875A CN102253875A CN2011102090615A CN201110209061A CN102253875A CN 102253875 A CN102253875 A CN 102253875A CN 2011102090615 A CN2011102090615 A CN 2011102090615A CN 201110209061 A CN201110209061 A CN 201110209061A CN 102253875 A CN102253875 A CN 102253875A
- Authority
- CN
- China
- Prior art keywords
- picoblaze
- bag
- data
- module
- core processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提出了一种基于PicoBlaze嵌入式软核处理器的FPGA逻辑模块调试与数据采集方法。在硬件系统的工程中,加入PicoBlaze嵌入式软核处理器、Uart模块、时钟控制模块,双口RAM模块,并在PC机上安装相应的软件。制定一套专用的通信协议,该通信协议定义了统一的数据包格式,用以规范PicoBlaze处理器与PC间的数据交换,并带有8位的CRC校验功能,确保了通信的可靠性。实现了通过从PC端发送命令对FPGA上的硬件系统进行全面的调试和所有内部数据的采集与分析。
Description
技术领域
本发明主要涉及到FPGA上的逻辑电路验证、调试、以及FPGA教学等领域。特指一种利用嵌入式软核处理器对FPGA上的逻辑电路进行调试和数据采集的方法。
背景技术
当前硬件设计工程的主要特征是:以FPGA做为硬件载体、以计算机为设计开发工具,以SoC、IP等为综合设计的方法。FPGA已经成为硬件工程师必用的设计元素之一。
采用什么样的方法对FPGA上的逻辑电路进行验证与调试,直接影响到逻辑电路设计以及SOC系统设计的效率。大规模设计的调试应该按照和设计理念相反的顺序,从底层测试,即需要对逻辑电路内部的具体信号进行采集与分析。找到一种简单易行的方法,实现对FPGA上的逻辑模块的有效控制,并对其内部信号进行采集,甚至是对其内部寄存器进行修改,将具有重大的技术价值,同时,还可将该方法应用于FPGA设计的教学中,带来教学方式上的革新。
发明内容
本发明要解决的问题在于:针对现有的对FPGA上复杂逻辑电路验证、调试方法,以及FPGA教学模式中的不足,找到一种简单易行的方式,实现对FPGA上复杂逻辑电路的控制、内部信号的采集与修改,有效提高逻辑电路设计以及SOC系统设计的效率,并有效改进FPGA教学的效果。
为解决上述技术问题,本发明提出的解决方案为:一种基于PicoBlaze嵌入式微处理器的逻辑电路调试与数据采集方法,其中:在硬件系统的工程中,加入PicoBlaze嵌入式软核处理器、Uart模块、时钟控制模块,双口RAM模块,并在PC机上安装相应的软件负责控制串口与PicoBlaze嵌入式软核处理器之间的通信,该软件接收用户的命令,并根据通信协议与软核处理器进行底层数据通信。制定一套专用的通信协议,该通信协议定义了统一的数据包格式,用以规范PicoBlaze处理器与PC间的数据交换,并带有8位的CRC校验功能,确保了通信的可靠性。实现了通过从PC端发送命令对FPGA上的硬件系统进行全面的调试和所有内部数据的采集与分析。
在信息传输过程中,PC机为主设备,PicoBlaze微处理器为从设备,对于从设备,对接收到的主设备发送来的每一个包,若接收成功,则返回ACK;若接收失败,则返回NAK,其中包含了错误信息;在ACK包中,控制字等于所回应的包的控制字;主设备发送完一个包后,进入等待回应的状态,接收到回应后,将控制字与之前发送的包的控制字对比,如果两者一致,则可确定该回应为之前所发送包的ACK,表示前一个包已被从设备成功接收。
需要在工程中加入的模块如下:
(1)PicoBlaze软核处理器,作为核心控制模块,用于实现时钟模块的控制,存储器的读写、读取待调试逻辑电路的内部信号以及与PC机进行信息交互等功能。
(2)时钟控制模块,可根据接收到的不同的控制信号,产生单个时钟脉冲、连续时钟和进行停止时钟的操作,用于对待调试逻辑电路的时钟进行控制。
(3)双口RAM(可选),对于需要使用存储器的待调试逻辑电路可加入此模块,A口供带调试的逻辑电路使用,B口供PicoBlaze控制器使用,A、B两个端口皆为双向口,两个端口的使能互斥。该模块可实现对待调试逻辑电路的存储器内容进行实时地读取与修改。
(4)数据采集链路,通过专门的数据通路,将需要采集分析的逻辑电路的内部信号连接到一个多路选择器上,PicoBlaze软核处理器可通过多路选择器分别选择读取不同的信号,并通过串口将其传输到PC上作进一步处理。
(5)断点比较器模块,用于使得待测逻辑电路在特定的条件下停止运行,起到下断点的作用。这里的特定条件指的是某一个内部信号等于一个特定的值。
本发明的特色在于:
(1)在本发明中,引入了嵌入式软核处理器进行调试控制,可以实现对待调试逻辑电路的时钟控制(包括单拍运行、多拍运行、连续运行)、断点设置、以及自定义需要采集的信号,功能全面,使用灵活。
(2)本发明中,在FPGA硬件与PC机之间制定了专用的通信协议,保证了它们之间数据传输的可靠性和高效性,并对PC端的配套软件的开发提供了良好的支持。
(3)本发明实现的方法简单易行,硬件结构简单,实现代价小,可扩展性和实时性好,适合应用于FPGA的教学。
附图说明
图1为将该方法应用于一个MIPS r2000微处理器软核的调试时的硬件框图
图2为用于图1中Breaker模块的逻辑框图
图3为双口RAM模块的框图
图4为PicoBlaze软核处理器的主要数据通路的示意图
图5为通信协议数据包格式的定义
图6为PicoBlaze软核处理器与PC机之间通信的流程图
图7为通信协议NAK和ACK数据包格式的定义
图8为PicoBlaze软核处理器与PC机之间进行通信的数据流示意图
具体实施方式
以下将结合附图和具体实例对本发明做进一步详细说明。
在基于FPGA的SoC设计中,常需要复用已设计好的逻辑电路(例如IP核),传统的设计方法是将已有逻辑模块的源代码加入到工程中,综合通过后,使用软件仿真的方式验证系统能否正常工作,然后再烧到FPGA中进行验证。采用这种方式的缺点在于,如果软件仿真通过而在FPGA上无法正常运行,将难以判断错误的原因,另外,因无法实时地从硬件上采集到器件内部的信号,使得在硬件上难以进行观察和调试。
本发明针对上述问题,在原有工程的基础中加入了PicoBlaze微处理器和相应的控制模块,使得将目标文件下载到FPGA上之后,能通过串口对FPGA上的工程进行控制,以及采集其中的内部信号。图1给出了采用该方法对一个MIPS处理器核进行验证和调试的实例。在该实例中,主要有以下几个部件:1、PicoBlaze软核处理器,2、待调试的MIPS_r2000处理器核,3、断点比较器、双口RAM功能模块。
其中,PicoBlaze微处理器是该系统的控制模块,用于实现时钟控制,读写存储器、读取MIPS处理器的内部信号以及与PC机进行信息交互等功能;断点比较器Breaker是一个八路32位并行比较器(如图2),用于给MIPS_CPU下断点,该模块有8个字的存储空间,可由PicoBlaze微控制器向存储空间中写数据或清除其中的数据。当使能信号en_i为0的时候,该模块会在write_i的上升沿将data_i的值写入addr_i所指定的存储单元。当en_i为1的时候,将存储空间中的各断点值与从MIPS处理器中引出的PC值进行比较(八路并行比较),如果PC的值与任意存储单元中的断点值一致,输出端口break_o将被置高,作为停止时钟的使能信号;时钟模块Clock_m,该模块通过控制信号,可对MIPS核产生单个时钟脉冲、连续时钟和进行停止时钟的操作。程序存储器INST_ROM_,该模块采用双口RAM实现,A口为MIPS处理器使用,是个只读端口;B口为PicoBlaze控制器使用,为只写端口。A、B两个端口的使能互斥。该硬件模块的实现支持了对MIPS处理器的程序上载;数据存储器DATA_RAM_,该模块也采用双口RAM,A口供MIPS处理器使用,B口供PicoBlaze控制器使用,皆为双向口,两个端口的使能互斥。该硬件模块的实现支持实时修改数据存储器。
以上各模块实现了对待调试的MIPS核的全面地控制。PicoBlaze微处理器作为核心模块,除了控制功能外,还具备采集MIPS核中的内部信号的功能,它的具体实现方案如图4所示。PicoBlaze输出的端口选择信号Port_ID连接到输入端多路选择器的选择端口,根据不同的应用,对不同的信号进行选通。在该实例中,支持选通的信号包括来自UART的数据,用于接收PC机的指令;MIPS_r2000处理器数据存储器的输出、各通用寄存器的值、各个流水级间寄存器的值以及各功能部件的值等,用于监控MIPS内部各模块的运行状态。共计157个字节的内容。同时,将PicoBlaze输出的端口选择信号Port_ID连接到输出端多路译码器的地址端口,根据应用对具体的信号进行选通。其中包括输出给UART的数据,用于跟PC机进行通信;输出给程序存储器的数据,用于对MIPS进行程序上载;输出给断点比较器的数据,用于对MIPS处理器下断点;输出给时钟模块的控制信号,用于对时钟进行启停操作和单拍运行MIPS处理器;各种控制信号,用于控制各功能模块。
在本发明中,专门设计了一套基于串口的通信协议,为PC机与PicoBlaze处理器之间的通信与数据传输提供了一个简便高效的实施方法。该协议基于PicoBlaze微处理器的特点设计,PicoBlaze微处理器提供了64-Bytes的片上存储器,针对该处理器的应用,数据包的最大长度不超过32-Bytes。该协议以包为单位进行信息的传输,包的格式如图5,其中:
Byte 1为:<Header>,包头标志,表示包的开始。
Byte 2为:<Length>,包长度,表示控制字<Ctrl>、数据段<Data>、校验码<CRC-8>的长度(In Bytes)。
Byte 3为:<Ctrl>,控制字,包的特征码,表示是什么类型的包,后面跟的是什么数据等。
Byte 4-Byte(n-2)为:<Data>,数据段,由多个字节构成,若不需要传输数据,也可为空。
Byte(n-1)为:<CRC-8>,8位CRC校验,校验范围是控制字<Ctrl>和数据段<Data>.生成多项式为CRC8=X8+X5+X4+1(CCITT标准)。
Byte n为:<Tail>,包尾标志,表示包的结束。
在信息传输过程中,PC机为主设备,PicoBlaze微处理器为从设备。从设备接收数据包的流程如图6
对于从设备,对接收到的主设备发送来的每一个包,若接收成功(对应流程图中CRC校验正确),则返回ACK;若接收失败,则返回NAK,其中包含了错误信息。
对于ACK和NAK包,用特定的控制字<Ctrl>来标示:
在上述的实例中用控制字为0x00的包表示NAK包,数据段为一字节的错误类型<error_num>
几种典型的错误类型如下定义:
<error_num>=01:Uart的FIFO溢出(减小波特率)
<error_num>=02:PicoBlaze的SPM溢出(包长度有误)
<error_num>=03:CRC校验错误
<error_num>=04:包尾字节错误
……
根据具体的应用,可进行扩展。<error_num>有一个字节,可支持256种不同的错误信息。
在ACK包中,控制字等于所回应的包的控制字。主设备发送完一个包后,进入等待回应的状态。接收到回应后,将控制字与之前发送的包的控制字对比,如果两者一致,则可确定该回应为之前所发送包的ACK,表示前一个包已被从设备成功接收。
Claims (3)
1.基于PicoBlaze嵌入式软核处理器的FPGA逻辑模块调试与数据采集方法,其特征在于,在硬件系统的工程中,加入如下模块:
(1)PicoBlaze软核处理器,作为核心控制模块,用于实现时钟模块的控制,存储器的读写、读取待调试逻辑电路的内部信号以及与PC机进行信息交互等功能;
(2)时钟控制模块,可根据接收到的不同的控制信号,产生单个时钟脉冲、连续时钟和进行停止时钟的操作,用于对待调试逻辑电路的时钟进行控制;
(3)双口RAM,对于需要使用存储器的待调试逻辑电路可加入此模块,A口供带调试的逻辑电路使用,B口供PicoBlaze控制器使用,A、B两个端口皆为双向口,两个端口的使能互斥,该模块可实现对待调试逻辑电路的存储器内容进行实时地读取与修改;
(4)数据采集链路,通过专门的数据通路,将需要采集分析的逻辑电路的内部信号连接到一个多路选择器上,PicoBlaze软核处理器可通过多路选择器分别选择读取不同的信号,并通过串口将其传输到PC上作进一步处理;
(5)断点比较器模块,用于使得待测逻辑电路在特定的条件下停止运行,起到下断点的作用。
2.根据权利要求1所述的基于PicoBlaze嵌入式软核处理器的FPGA逻辑模块调试与数据采集方法,其特征在于,设计了一套基于串口的通信协议,为PC机与PicoBlaze处理器之间的通信与数据传输提供了一个简便高效的实施方法,该专用的通信协议以包为单位进行信息的传输,其中:
Byte 1为:<Header>,包头标志,表示包的开始;
Byte 2为:<Length>,包长度,表示控制字<Ctrl>、数据段<Data>、校验码<CRC-8>的长度(In Bytes);
Byte 3为:<Ctrl>,控制字,包的特征码,表示是什么类型的包,后面跟的是什么数据等;
Byte 4-Byte(n-2)为:<Data>,数据段,由多个字节构成,若不需要传输数据,也可为空;
Byte(n-1)为:<CRC-8>,8位CRC校验,校验范围是控制字<Ctrl和数据段Data.;
Byte n为:<Tail>,包尾标志,表示包的结束。
3.根据权利要求1所述的基于PicoBlaze嵌入式软核处理器的FPGA逻辑模块调试与数据采集方法,其特征在于,在信息传输过程中,PC机为主设备,PicoBlaze微处理器为从设备,对于从设备,对接收到的主设备发送来的每一个包,若接收成功,则返回ACK;若接收失败,则返回NAK,其中包含了错误信息;在ACK包中,控制字等于所回应的包的控制字;主设备发送完一个包后,进入等待回应的状态,接收到回应后,将控制字与之前发送的包的控制字对比,如果两者一致,则可确定该回应为之前所发送包的ACK,表示前一个包已被从设备成功接收。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110209061.5A CN102253875B (zh) | 2011-07-25 | 2011-07-25 | 基于PicoBlaze嵌入式软核处理器的FPGA逻辑模块调试与数据采集方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110209061.5A CN102253875B (zh) | 2011-07-25 | 2011-07-25 | 基于PicoBlaze嵌入式软核处理器的FPGA逻辑模块调试与数据采集方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102253875A true CN102253875A (zh) | 2011-11-23 |
CN102253875B CN102253875B (zh) | 2014-02-19 |
Family
ID=44981152
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110209061.5A Expired - Fee Related CN102253875B (zh) | 2011-07-25 | 2011-07-25 | 基于PicoBlaze嵌入式软核处理器的FPGA逻辑模块调试与数据采集方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102253875B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102495359A (zh) * | 2011-12-13 | 2012-06-13 | 曙光信息产业(北京)有限公司 | 一种fpga调试系统和方法 |
CN102760105A (zh) * | 2012-06-13 | 2012-10-31 | 深圳市汇川控制技术有限公司 | 实现本地主从模块间的通信的系统及方法 |
CN103116554A (zh) * | 2013-03-05 | 2013-05-22 | 中国人民解放军国防科学技术大学 | 用于fpga芯片调试的信号采样缓存装置 |
CN109710452A (zh) * | 2018-12-06 | 2019-05-03 | 天津津航计算技术研究所 | 带数据调试功能的ecc存储控制系统 |
CN111752794A (zh) * | 2020-06-04 | 2020-10-09 | Oppo广东移动通信有限公司 | 供电信息的采集方法、系统以及芯片 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5557762A (en) * | 1991-02-13 | 1996-09-17 | Oki Electric Industry Co., Ltd. | Digital signal processor evaluation chip and debug method |
CN1252140A (zh) * | 1997-06-10 | 2000-05-03 | 爱特梅尔股份有限公司 | 采用存储器监视信号出现预定断点条件的数字电路 |
-
2011
- 2011-07-25 CN CN201110209061.5A patent/CN102253875B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5557762A (en) * | 1991-02-13 | 1996-09-17 | Oki Electric Industry Co., Ltd. | Digital signal processor evaluation chip and debug method |
CN1252140A (zh) * | 1997-06-10 | 2000-05-03 | 爱特梅尔股份有限公司 | 采用存储器监视信号出现预定断点条件的数字电路 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102495359A (zh) * | 2011-12-13 | 2012-06-13 | 曙光信息产业(北京)有限公司 | 一种fpga调试系统和方法 |
CN102495359B (zh) * | 2011-12-13 | 2014-04-23 | 曙光信息产业(北京)有限公司 | 一种fpga调试系统和方法 |
CN102760105A (zh) * | 2012-06-13 | 2012-10-31 | 深圳市汇川控制技术有限公司 | 实现本地主从模块间的通信的系统及方法 |
CN102760105B (zh) * | 2012-06-13 | 2016-08-10 | 深圳市汇川控制技术有限公司 | 实现本地主从模块间的通信的系统及方法 |
CN103116554A (zh) * | 2013-03-05 | 2013-05-22 | 中国人民解放军国防科学技术大学 | 用于fpga芯片调试的信号采样缓存装置 |
CN103116554B (zh) * | 2013-03-05 | 2015-07-22 | 中国人民解放军国防科学技术大学 | 用于fpga芯片调试的信号采样缓存装置 |
CN109710452A (zh) * | 2018-12-06 | 2019-05-03 | 天津津航计算技术研究所 | 带数据调试功能的ecc存储控制系统 |
CN111752794A (zh) * | 2020-06-04 | 2020-10-09 | Oppo广东移动通信有限公司 | 供电信息的采集方法、系统以及芯片 |
Also Published As
Publication number | Publication date |
---|---|
CN102253875B (zh) | 2014-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102253875B (zh) | 基于PicoBlaze嵌入式软核处理器的FPGA逻辑模块调试与数据采集方法 | |
CN107704346B (zh) | Soc芯片调试方法及调试系统 | |
CN112799992B (zh) | 现场总线芯片架构 | |
CN102662835A (zh) | 一种针对嵌入式系统的程序调试方法及嵌入式系统 | |
CN109634256B (zh) | 一种通用can控制器芯片的板级验证系统 | |
CN106845219A (zh) | 一种针对多种类型数据的入侵检测智能设备 | |
CN104102160B (zh) | 一种can总线信号收发解析工具 | |
WO2019173018A1 (en) | Non-intrusive on-chip debugger with remote protocol support | |
CN105022869B (zh) | 一种快速可重构的mcu仿真方法 | |
CN101162438A (zh) | 一种嵌入式处理器的调试技术 | |
CN103092119A (zh) | 一种基于fpga的总线状态监视系统和方法 | |
WO2016184170A1 (zh) | Smi接口器件的调试装置及方法、存储介质 | |
CN107632910A (zh) | 一种测试方法和装置 | |
CN101110019B (zh) | 基于VxWorks操作系统实现远程Shell的方法 | |
KR100883392B1 (ko) | 다양한 시리얼 버스 타입의 시뮬레이션, 에뮬레이션 및테스트를 위한 범용 방법 | |
CN115454881B (zh) | Risc-v架构的调试系统及调试方法 | |
CN104461796A (zh) | 用于嵌入式8051cpu的jtag调试模块及调试方法 | |
CN203101586U (zh) | 一种开发调试装置 | |
CN110007865A (zh) | 硬件数据获取方法、装置、设备、系统及可读存储介质 | |
CN109582571A (zh) | 在线调试方法、装置、调试从机、调试主机和系统 | |
Hossain et al. | SPI-SNOOPER: A hardware-software approach for transparent network monitoring in wireless sensor networks | |
CN208596371U (zh) | 基于pcie与fpga结合的多核jtag调试代理系统 | |
CN201114167Y (zh) | 动态可重组多路串行接口连接器 | |
CN107729033A (zh) | 实现在线编程的嵌入式系统、编程器及方法 | |
CN109783417A (zh) | 一种串口通讯装置及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140219 Termination date: 20160725 |
|
CF01 | Termination of patent right due to non-payment of annual fee |