CN112285542B - 一种面向fpga外部接口逻辑的调试与测试方法 - Google Patents
一种面向fpga外部接口逻辑的调试与测试方法 Download PDFInfo
- Publication number
- CN112285542B CN112285542B CN202011098016.2A CN202011098016A CN112285542B CN 112285542 B CN112285542 B CN 112285542B CN 202011098016 A CN202011098016 A CN 202011098016A CN 112285542 B CN112285542 B CN 112285542B
- Authority
- CN
- China
- Prior art keywords
- register
- fpga
- debugging
- external interface
- configuration
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3185—Reconfiguring for testing, e.g. LSSD, partitioning
- G01R31/318516—Test of programmable logic devices [PLDs]
- G01R31/318519—Test of field programmable gate arrays [FPGA]
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种面向FPGA外部接口逻辑的调试与测试方法,属于测试领域。本发明通过在FPGA外部接口逻辑中,设置调试专用寄存器组,并访问调试专用寄存器来初步判断FPGA外部接口逻辑及其寄存器绝对地址的正确性,通过编写对寄存器的配置脚本验证FPGA逻辑的功能正确性,最后可重新生成脚本自动对新的配置脚本进行测试。本发明的配置脚本通过主测试程序作用于外部接口IP核,能够简单、方便地对FPGA外部接口逻辑进行测试,且脱离了先FPGA开发人员后到软件开发人员再反馈到FPGA开发人员的传统测试模式。
Description
技术领域
本发明属于测试技术领域,具体涉及一种面向FPGA外部接口逻辑的调试与测试方法。
背景技术
常见的FPGA外部接口逻辑调试方法,基本是FPGA编写人员编写完成后,由软件人员编写驱动程序进行功能测试。由于FPGA外部接口开发人员并不总能一次将硬件逻辑编写正确,因此需要FPGA编写人员与驱动软件开发人员共同配合,完成FPGA外部接口逻辑的调试工作。而每次调试时,都需要FPGA编写人员先将对FPGA修改的结果告知软件人员,再由软件人员进行相应修改,而FPGA开发人员也要等待软件开发人员的测试结果,浪费了双方大量的时间。
现有一些测试技术和方法,虽已有对应用软件进行自动化脚本测试的方案,但是这些方案不能简单的嫁接到FPGA外部接口逻辑的测试上。尤其是无法脱离开先FPGA开发人员后到软件开发人员再反馈到FPGA开发人员的传统测试模式上。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是如何提供一种面向FPGA外部接口逻辑的调试与测试方法,以解决现有的测试技术无法脱离开先FPGA开发人员后到软件开发人员再反馈到FPGA开发人员的传统测试模式的问题。
(二)技术方案
为了解决上述技术问题,本发明提出一种面向FPGA外部接口逻辑的调试与测试方法,该方法包括如下步骤:
S1、在所编写的FPGA外部接口逻辑中,设置调试专用寄存器组,其包含3个8位寄存器,分别是调试-命令寄存器、调试-偏移地址寄存器和调试-数值寄存器;
S2、以绝对地址的形式访问调试专用寄存器,初步判断FPGA外部接口逻辑及其寄存器绝对地址的正确性并解决存在的问题;
S3、在上位机测试环境中,编写对寄存器的配置脚本,并通过脚本程序,执行对寄存器的配置过程,所述配置脚本中,以行的先后顺序代表寄存器的配置先后过程,包括寄存器地址、配置值、以及配置完成后的预期正确结果;通过脚本解释器,依次执行配置脚本,配置相应寄存器,并将反馈结果与预期结果相对照,逐渐修正FPGA逻辑BUG;
S4、当需要对配置脚本中的寄存器地址或者寄存器配置值进行规律变化时,通过相应的可解释性标志,对配置脚本进行重新生成,并且,自动对新的配置脚本进行测试。
进一步地,所述FPGA上设置外部接口IP核和主测试程序,所述外部接口IP核为待测外部接口IP核,是FPGA外部接口逻辑,其中设置有调试专用寄存器,所述主测试程序为软件设计人员编写的能够处理脚本文件并访问外部接口IP寄存器的程序。
进一步地,所述上位机测试环境中设置脚本文件以及日志文件,所述脚本文件为FPGA开发人员编写,所述日志文件用于保存测试结果。
进一步地,所述步骤S2具体包括:以绝对地址的形式,访问FPGA外部接口某个寄存器;通过访问调试专用寄存器,初步判断FPGA外部接口逻辑及其寄存器绝对地址的正确性;访问方式为,在调试-命令寄存器,填写寄存器是否命中命令hit,假设hit命令对应的编码为02,在调试专用寄存器的偏移地址位,填写偏移地址01,读取调试-数值寄存器;如果调试专用寄存器的反馈为未命中,则初步判断是FPGA代码或地址访问的错误造成,将这些问题解决正确后,再进行后续步骤。
进一步地,所述步骤S4中的变化为递增或递减。
进一步地,所述步骤S4中的配置脚本中加入对调试专用寄存器中重启命令的配置,以中断的形式通知处理器进行硬件环境的重启。
进一步地,所述调试专用寄存器还包括其它在调试中方便FPGA开发者进行调试的命令。
进一步地,所述配置脚本文件的基本格式包括:“读或写”、“FPGA寄存器绝对地址”、[“数值”]和[“预期结果”]。
进一步地,当主测试程序对配置脚本解析时,自动将配置脚本中的指令补充成用户需要的指令行数。
(三)有益效果
本发明提出一种面向FPGA外部接口逻辑的调试与测试方法,通过在FPGA外部接口逻辑中,设置调试专用寄存器组,并访问调试专用寄存器来初步判断FPGA外部接口逻辑及其寄存器绝对地址的正确性,通过编写对寄存器的配置脚本验证FPGA逻辑的功能正确性,最后可重新生成脚本自动对新的配置脚本进行测试。本发明的配置脚本通过主测试程序作用于外部接口IP核,能够简单、方便地对FPGA外部接口逻辑进行测试,且脱离了先FPGA开发人员后到软件开发人员再反馈到FPGA开发人员的传统测试模式。
附图说明
图1为FPGA外部接口逻辑IP核烧写于任意FPGA芯片中;
图2为面向FPGA外部接口逻辑的调试系统;
图3为调试专用寄存器的组成。
具体实施方式
为使本发明的目的、内容和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
如图1-3所示,本发明目的是提供一种面向FPGA外部接口逻辑的测试与调试方法,在FPGA上设置外部接口IP核、主测试程序,所述外部接口IP核为待测外部接口IP核,是FPGA外部接口逻辑,其中设置有调试专用寄存器,所述主测试程序为软件设计人员编写的能够处理脚本文件并访问外部接口IP寄存器的程序,在上位机测试环境中设置脚本文件以及日志文件,所述脚本文件为FPGA开发人员编写,所述日志文件用于保存测试结果。
本发明提供了一种面向FPGA外部接口逻辑的测试与调试方法,包括步骤:
(1)在所编写的FPGA外部接口逻辑中,设置调试专用寄存器组,其包含3个8位寄存器(也可以是更多个),分别是调试-命令寄存器,调试-偏移地址寄存器,调试-数值寄存器。
(2)以绝对地址的形式,访问FPGA外部接口某个寄存器,比如状态寄存器,例如其相对地址是01,在某系统中,其绝对地址是0x100001。此时,通过访问调试专用寄存器,初步判断FPGA外部接口逻辑及其寄存器绝对地址的正确性。访问方式为,在调试-命令寄存器,填写寄存器是否命中命令hit,假设hit命令对应的编码为02,在调试专用寄存器的偏移地址位,填写偏移地址01,读取调试-数值寄存器,例如0x55代表命中,0xaa代表未命中。
(3)如果调试专用寄存器的反馈为未命中,则初步判断是FPGA代码或地址访问的错误造成,将这些问题解决正确后,再进行后续步骤。
(4)为了验证FPGA逻辑的功能正确性,在上位机测试环境中,编写对寄存器的配置脚本,并通过脚本程序,执行对寄存器的配置过程。
(5)配置脚本中,以行的先后顺序代表寄存器的配置先后过程,包括寄存器地址、配置值、以及配置完成后的预期正确结果。
(6)通过脚本解释器,依次执行配置脚本,配置相应寄存器,并将反馈结果与预期结果相对照,逐渐修正FPGA逻辑BUG。
(7)当需要对配置脚本中的寄存器地址或者寄存器配置值进行规律递增(或递减)时,可通过相应的可解释性标志,对配置脚本进行重新生成,并且,自动对新的配置脚本进行测试。由于每次重新测试,都需要对硬件环境进行重启,因此,可在配置脚本中,加入对调试专用寄存器中重启命令的配置,该命令的功能是,以中断的形式通知处理器进行硬件环境的重启。
(8)调试专用寄存器除了上述功能后,还包括其它在调试中方便FPGA开发者进行调试的命令。
(9)配置脚本文件的基本格式包括:“读或写”、“FPGA寄存器绝对地址”、[“数值”]、[“预期结果”]。
(10)配置脚本文件可以以段的形式,对基本格式进行扩展,例如
For(i=0;i<10;i++)
{
“读或写”、“FPGA寄存器绝对地址”、[“数值”]、[“预期结果”]
}。
当主测试程序对脚本文件解析时,自动将该条指令补充成用户需要的指令行数,例如10条指令。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (7)
1.一种面向FPGA外部接口逻辑的调试与测试方法,其特征在于,该方法包括如下步骤:
S1、在所编写的FPGA外部接口逻辑中,设置调试专用寄存器组,其包含3个8位寄存器,分别是调试-命令寄存器、调试-偏移地址寄存器和调试-数值寄存器;
S2、以绝对地址的形式访问调试专用寄存器,初步判断FPGA外部接口逻辑及其寄存器绝对地址的正确性并解决存在的问题;
S3、在上位机测试环境中,编写对寄存器的配置脚本,并通过脚本程序,执行对寄存器的配置过程,所述配置脚本中,以行的先后顺序代表寄存器的配置先后过程,包括寄存器地址、配置值、以及配置完成后的预期正确结果;通过脚本解释器,依次执行配置脚本,配置相应寄存器,并将反馈结果与预期结果相对照,逐渐修正FPGA逻辑BUG;
S4、当需要对配置脚本中的寄存器地址或者寄存器配置值进行规律变化时,通过相应的可解释性标志,对配置脚本进行重新生成,并且,自动对新的配置脚本进行测试
其中,
所述FPGA上设置外部接口IP核和主测试程序,所述外部接口IP核为待测外部接口IP核,是FPGA外部接口逻辑,其中设置有调试专用寄存器,所述主测试程序为软件设计人员编写的能够处理脚本文件并访问外部接口IP寄存器的程序;
所述步骤S2具体包括:以绝对地址的形式,访问FPGA外部接口某个寄存器;通过访问调试专用寄存器,初步判断FPGA外部接口逻辑及其寄存器绝对地址的正确性;访问方式为,在调试-命令寄存器,填写寄存器是否命中命令hit,假设hit命令对应的编码为02,在调试专用寄存器的偏移地址位,填写偏移地址01,读取调试-数值寄存器;如果调试专用寄存器的反馈为未命中,则初步判断是FPGA代码或地址访问的错误造成,将这些问题解决正确后,再进行后续步骤。
2.如权利要求1所述的面向FPGA外部接口逻辑的调试与测试方法,其特征在于,所述上位机测试环境中设置脚本文件以及日志文件,所述脚本文件为FPGA开发人员编写,所述日志文件用于保存测试结果。
3.如权利要求1所述的面向FPGA外部接口逻辑的调试与测试方法,其特征在于,所述步骤S4中的变化为递增或递减。
4.如权利要求1所述的面向FPGA外部接口逻辑的调试与测试方法,其特征在于,所述步骤S4中的配置脚本中加入对调试专用寄存器中重启命令的配置,以中断的形式通知处理器进行硬件环境的重启。
5.如权利要求1所述的面向FPGA外部接口逻辑的调试与测试方法,其特征在于,所述调试专用寄存器还包括其它在调试中方便FPGA开发者进行调试的命令。
6.如权利要求1所述的面向FPGA外部接口逻辑的调试与测试方法,其特征在于,所述配置脚本文件的基本格式包括:“读或写”、“FPGA寄存器绝对地址”、“数值”和“预期结果”。
7.如权利要求1所述的面向FPGA外部接口逻辑的调试与测试方法,其特征在于,当主测试程序对配置脚本解析时,自动将配置脚本中的指令补充成用户需要的指令行数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011098016.2A CN112285542B (zh) | 2020-10-14 | 2020-10-14 | 一种面向fpga外部接口逻辑的调试与测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011098016.2A CN112285542B (zh) | 2020-10-14 | 2020-10-14 | 一种面向fpga外部接口逻辑的调试与测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112285542A CN112285542A (zh) | 2021-01-29 |
CN112285542B true CN112285542B (zh) | 2023-02-03 |
Family
ID=74497028
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011098016.2A Active CN112285542B (zh) | 2020-10-14 | 2020-10-14 | 一种面向fpga外部接口逻辑的调试与测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112285542B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117395434B (zh) * | 2023-12-07 | 2024-03-26 | 西安芯云半导体技术有限公司 | 硬件编解码调试方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102571503A (zh) * | 2012-03-20 | 2012-07-11 | 上海航天科工电器研究院有限公司 | 一种基于fpga的sdlc协议总线通讯测试装置 |
CN103607522A (zh) * | 2013-10-11 | 2014-02-26 | 西安电子科技大学 | 基于fpga的改进误差扩散算法ip核设计方法 |
CN105373047A (zh) * | 2015-12-05 | 2016-03-02 | 中国航空工业集团公司洛阳电光设备研究所 | 一种光电吊舱陀螺稳定控制平台 |
CN110795350A (zh) * | 2019-10-28 | 2020-02-14 | 山东浪潮人工智能研究院有限公司 | 一种risc-v处理器的可控跟踪调试方法及系统 |
CN111722968A (zh) * | 2020-06-24 | 2020-09-29 | 山东云海国创云计算装备产业创新中心有限公司 | 一种硬件调试方法、装置、系统及可读存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7322000B2 (en) * | 2005-04-29 | 2008-01-22 | Freescale Semiconductor, Inc. | Methods and apparatus for extending semiconductor chip testing with boundary scan registers |
CN107346282B (zh) * | 2016-05-04 | 2024-03-12 | 世意法(北京)半导体研发有限责任公司 | 用于微处理器的调试支持单元 |
-
2020
- 2020-10-14 CN CN202011098016.2A patent/CN112285542B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102571503A (zh) * | 2012-03-20 | 2012-07-11 | 上海航天科工电器研究院有限公司 | 一种基于fpga的sdlc协议总线通讯测试装置 |
CN103607522A (zh) * | 2013-10-11 | 2014-02-26 | 西安电子科技大学 | 基于fpga的改进误差扩散算法ip核设计方法 |
CN105373047A (zh) * | 2015-12-05 | 2016-03-02 | 中国航空工业集团公司洛阳电光设备研究所 | 一种光电吊舱陀螺稳定控制平台 |
CN110795350A (zh) * | 2019-10-28 | 2020-02-14 | 山东浪潮人工智能研究院有限公司 | 一种risc-v处理器的可控跟踪调试方法及系统 |
CN111722968A (zh) * | 2020-06-24 | 2020-09-29 | 山东云海国创云计算装备产业创新中心有限公司 | 一种硬件调试方法、装置、系统及可读存储介质 |
Non-Patent Citations (1)
Title |
---|
杨晓飞.基于NiosⅡ的硬盘存储系统的硬件设计.《计算机工程与设计》.2009, * |
Also Published As
Publication number | Publication date |
---|---|
CN112285542A (zh) | 2021-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9342437B2 (en) | Backward post-execution software debugger | |
US7653899B1 (en) | Post-execution software debugger with performance display | |
US8914777B2 (en) | Forward post-execution software debugger | |
US20050268195A1 (en) | Apparatus and method for improving emulation speed of high-level languages in on-chip emulation systems | |
US8584097B2 (en) | Post-execution software debugger with event display | |
CN112084113B (zh) | 基于嵌入式仿真验证软件的可配置自动化测试方法及系统 | |
JPH08272648A (ja) | デバッグコマンドファイルを自動的に生成する方法、およびデバッグコマンドファイルにおいてブレークポイントを自動的に再生成する装置 | |
US8015552B1 (en) | Post-execution software debugger with coverage display | |
US6415436B1 (en) | Mechanism for cross validating emulated states between different emulation technologies in a dynamic compiler | |
CN110704315B (zh) | 一种嵌入式软件测试的故障注入装置 | |
CN112285542B (zh) | 一种面向fpga外部接口逻辑的调试与测试方法 | |
US20080010536A1 (en) | Breakpoints with Separate Conditions | |
US5185745A (en) | Scan path diagnostic method | |
EP3769222B1 (en) | Testing kernel mode computer code by executing the computer code in user mode | |
US20050229163A1 (en) | Thread-scoped breakpoints | |
TWI402750B (zh) | 具有軟體程式儲存於其中之電腦可讀取媒體及用以產生軟體程式的方法 | |
US7526756B2 (en) | Address watch breakpoints with basing pointers | |
US20070150866A1 (en) | Displaying parameters associated with call statements | |
US20230101154A1 (en) | Resumable instruction generation | |
CN109144849B (zh) | 一种嵌入式软件调测方法 | |
US8146056B1 (en) | Debugging a computer program by interrupting program execution in response to access of unused I/O port | |
CN116225893A (zh) | 用于将源代码自动映射到机器代码的系统和方法 | |
CN114780421A (zh) | 基于虚拟指令集平台的异常测试方法、系统及存储介质 | |
CN114780409A (zh) | 基于程序运行进程的断点设置方法、电子设备和存储介质 | |
CN111722948A (zh) | 一种arm指令集软错误故障注入系统及其方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |