CN110502067B - Fpga信号时序的获取方法及系统 - Google Patents
Fpga信号时序的获取方法及系统 Download PDFInfo
- Publication number
- CN110502067B CN110502067B CN201811367050.8A CN201811367050A CN110502067B CN 110502067 B CN110502067 B CN 110502067B CN 201811367050 A CN201811367050 A CN 201811367050A CN 110502067 B CN110502067 B CN 110502067B
- Authority
- CN
- China
- Prior art keywords
- signal
- target signal
- capture
- target
- rtl file
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/14—Time supervision arrangements, e.g. real time clock
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
本发明公开了一种FPGA信号时序的获取方法及系统。所述获取方法包括:获取信号请求;所述信号请求包括目标信号;根据所述目标信号确定所述RTL文件描述的硬件电路的目标信号点;根据所述目标信号点在所述RTL文件中添加约束语句;执行所述RTL文件,获取所述目标信号点的直接捕获信号;根据所述硬件电路和所述直接捕获信号计算间接捕获信号;所述目标信号包括所述直接捕获信号和所述间接捕获信号。本发明实现了用最少的FPGA资源获取用户所需的任意信号。
Description
技术领域
本发明涉及电子产品技术领域,特别涉及一种FPGA(现场可编程门阵列)信号时序的获取方法及系统。
背景技术
随着FPGA的容量越来越大,内部分布式RAM(随机存取存储器)和Block RAM(块随机存储器)资源越来越丰富,在FPGA的调试过程中,内嵌调试IPCore(IP核)和存储足够周期的信号时序成为可能。各FPGA厂商都有现成的在线逻辑分析仪,比如Xilinx的ChipScope,Altera的SignalTap,它们的原理是把想观察的信号都连接到调试IPcore上,系统运行时,把符合触发条件的信号都保存到RAM中,然后通过JTAG(一种国际标准测试协议)接口读到显示软件,所连即所见。但是以上方法,调试中抓取信号有缺陷,当用户需要看FPGA内部很多信号的时候,FPGA内部资源必然不够,就会出现“挑选信号-综合-映射-布局布线-下载”五个步骤的循环,很耗时间和精力。有些场合,甚至需要能看到FPGA内部所有信号,现有的FPGA内嵌逻辑分析仪不能实现以上需求。
发明内容
本发明要解决的技术问题是为了克服现有技术中获取FPGA信号很耗时间和精力,且无法获取FPGA内部所有信号的缺陷,提供一种FPGA信号时序的获取方法及系统。
本发明是通过下述技术方案来解决上述技术问题:
一种FPGA信号时序的获取方法,FPGA包括RTL(寄存器传输级)文件,所述获取方法包括:
获取信号请求;所述信号请求包括目标信号;
根据所述目标信号确定所述RTL文件描述的硬件电路的目标信号点;
根据所述目标信号点在所述RTL文件中添加约束语句;
执行所述RTL文件,获取所述目标信号点的直接捕获信号;
根据所述硬件电路和所述直接捕获信号计算间接捕获信号;
所述目标信号包括所述直接捕获信号和所述间接捕获信号。
较佳地,IP核执行所述RTL文件,并获取所述直接捕获信号。
较佳地,所述信号请求还包括:所述IP核的触发条件和捕获深度;
获取所述目标信号点的直接捕获信号的步骤,具体包括:
所述IP核根据所述触发条件和所述捕获深度获取所述直接捕获信号。
较佳地,根据所述目标信号点在所述RTL文件中添加约束语句的步骤之前,还包括:
对所述硬件电路的信号点进行编号;
按照编号顺序存储所述目标信号点。
较佳地,所述获取方法,还包括:
绘制所述目标信号的时序图。
一种FPGA信号时序的获取系统,FPGA包括RTL文件,所述获取系统包括:
请求获取模块,用于获取信号请求;所述信号请求包括目标信号;
预编译模块,用于根据所述目标信号确定所述RTL文件描述的硬件电路的目标信号点,并根据所述目标信号点在所述RTL文件中添加约束语句;
执行模块,用于执行所述RTL文件,获取所述目标信号点的直接捕获信号;
计算模块,用于根据所述硬件电路和所述直接捕获信号计算间接捕获信号;
所述目标信号包括所述直接捕获信号和所述间接捕获信号。
较佳地,所述执行模块为IP核。
较佳地,所述信号请求还包括:所述IP核的触发条件和捕获深度;
所述IP核具体用于根据所述触发条件和所述捕获深度获取所述直接捕获信号。
较佳地,所述获取系统还包括:
编号模块,用于对所述硬件电路的信号点进行编号;
存储模块,用于按照编号顺序存储所述目标信号点。
较佳地,所述获取系统还包括:
绘图模块,用于绘制所述目标信号的时序图。
本发明的积极进步效果在于:本发明在综合之前,根据用户请求,分析用户需求,找到所需直接捕获的目标信号点,自动在RTL中添加各类FPGA厂家的约束语句,实现对RTL的预编译。系统调试时,获取目标信号点的直接捕获信号,并根据RTL电路,计算出间接捕获信号,从而实现用最少的FPGA资源获取用户所需的任意信号。
附图说明
图1为本发明实施例1的FPGA信号时序的获取方法的流程图。
图2为本发明实施例1的FPGA信号时序的获取方法中RTL文件描述的硬件电路图。
图3为本发明实施例1的FPGA信号时序的获取方法中使用的触发IP核的结构示意图。
图4为本发明实施例1的FPGA信号时序的获取方法中使用的捕获IP核的结构示意图。
图5为本发明实施例2的FPGA信号时序的获取系统的模块示意图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
实施例1
本实施例提供一种FPGA信号时序的获取方法,FPGA包括RTL文件,如图1所示,获取方法包括以下步骤:
步骤101、获取信号请求。
其中,信号请求包括目标信号,目标信号也即用户所需的模块的信号、接口信号或全部信号等。
步骤102、根据目标信号确定RTL文件描述的硬件电路的目标信号点。
步骤102也即根据用户的需求,确定RTL文件描述的硬件电路中哪些信号点的信号是需要直接捕获的信号,哪些信号点的信号只需根据RTL描述计算出来。
其中,RTL文件描述的硬件电路可以抽象为类似图2示出的硬件电路,图中为各种简化的组合电路,例如,寄存器、RAM的级联和反馈组合。本实施例中,会对硬件电路的信号点进行编号,例如图2示出给8个信号点编号为A-H。
本实施例中,无需采集和保存8个信号点的全部信号,只需要采集输入信号点A、反馈信号点G和RAM输出点F这三个目标信号点的信号,以下称为直接捕获信号;其它5个信号点的信号为间接捕获信号,不必采集和保存。直接捕获信号的时序由系统实时捕获,间接捕获信号的时序可以由RTL和直接捕获信号的时序联合计算得出。
步骤103、根据目标信号点在RTL文件中添加约束语句。
步骤103也即RTL的预编译,根据用户的信号请求,确定直接捕获目标信号点和间接捕获目标信号点,自动插入综合约束,以在综合工具优化电路时,通过约束语句,告诉综合工具,此信号点不能被优化或改变名称。将约束语句存为文件,供后期波形显示时对点使用。
本实施例中,步骤103之前还包括,将目标信号点按照编号顺序存档。然后,在RTL中自动给这些目标信号点加入约束语句,防止在综合中优化掉。
步骤104、执行RTL文件,获取目标信号点的直接捕获信号。
具体的,步骤104中,IP核执行RTL文件,并获取目标信号点的直接捕获信号。波形显示时,通过JTAG或者用户自己开发的接口读取目标信号点的直接捕获信号,并写入RAM。
本实施例中,信号请求还包括:IP核的触发条件和捕获深度。每一个动作时钟,信号点都需要保存,捕获深度也即保存的信号点的时钟数。步骤103中还包括:将触发条件和捕获深度添加到RTL文件中。
获取目标信号点的直接捕获信号的步骤,具体包括:
IP核根据触发条件和捕获深度获取目标信号点的直接捕获信号。
本实施例中,可使用两个IP核(捕获IP核和触发IP核)实现直接捕获信号的获取。具体的,设置捕获IP核的捕获深度,包括触发点前和触发点后的深度;设置触发IP核的触发条件,比如各触发条件间的与、或、异或等。
信号捕获前,按照目标信号点的存档顺序,把这些目标信号点连接到捕获IP核。运行FPGA系统,当触发条件满足时,触发IP核启动捕获IP核,实现目标信号点的信号捕获,并保存捕获信号时序。
本实施例中,触发IP核的结构参见图3所示,根据用户输入的作为触发条件的信号,自动插入该触发IP核。随着触发信号的数目变化,图3中触发IP核可以级联。软件插入此IP核时,会记录信号连接顺序和分布式RAM的具体位置(SLICE位置),FPGA系统运行后,利用前面对分布式RAM的记录,再现图3的结构,每个RAM都可实现五个输入信号的任意逻辑运算。每个RAM的配置,都是通过FPGA的动态配置功能实现的。根据分布式RAM的位置和内容,生成配置FRAME,利用JTAT通过动态配置口写入RAM。
捕获IP核的结构参见图4所示,根据用户需求,自动插入捕获IP核,自动从IP核的DUV中挑选直接捕获信号,连接到BlockRAM的写端口。当触发信号有效时,开始把信号时序写入到BlockRAM。可以通过JTAG读取BlockRAM中的信号时序,供上位软件再现,实现波形图显示。
步骤105、根据硬件电路和直接捕获信号计算间接捕获信号。
其中,计算间接捕获信号,例如,一个“与门”电路,两个输入是直接捕获信号,RTL编译器知道电路功能为“与”运算,将该两个输入信号进行“与”计算,即能得到“与门”电路的输出信号,即为间接捕获信号,无需直接从硬件电路中捕获。
获得的直接捕获信号和间接捕获信号也即用户所需的目标信号。
步骤106、绘制目标信号的时序图。
至此,可画出所有目标信号时序的波形,且本实施例支持信号点的组合与分离,标注,颜色设定等。
本实施例的信号时序的获取方法可以应用在各种跟FPGA相关的系统。当需要查看某个RTL模块或者整个RTL内部信号时,自动插入IP核,自动插入约束,用最少的FPGA资源显示所有信号时序波形的EDA(电子设计自动化)类的系统。
实施例2
本实施例提供一种FPGA信号时序的获取系统,FPGA包括RTL文件,如图5所示,获取系统包括:请求获取模块1、预编译模块2、执行模块3、计算模块4、编号模块5、存储模块6和绘图模块7。
请求获取模块1用于获取信号请求。其中,信号请求包括目标信号,目标信号也即用户所需的模块的信号、接口信号或全部信号等。
预编译模块2用于根据目标信号确定RTL文件描述的硬件电路的目标信号点,并根据目标信号点在RTL文件中添加约束语句。
其中,确定目标信号点也即根据用户的需求,确定RTL文件描述的硬件电路中哪些信号点的信号是需要直接捕获的信号,哪些信号点的信号只需根据RTL描述计算出来。编号模块5用于对硬件电路的信号点进行编号。
本实施例中,无需采集和保存硬件电路所有信号点的全部信号,只需要采集目标信号点的信号,以下称为直接捕获信号;其它信号点的信号为间接捕获信号,不必采集和保存。直接捕获信号的时序由系统实时捕获,间接捕获信号的时序可以由RTL和直接捕获信号的时序联合计算得出。
添加约束语句也即RTL的预编译,根据用户的信号请求,确定直接捕获目标信号点和间接捕获目标信号点,自动插入综合约束,防止在综合中优化掉,并存为文件,供后期波形显示时对点使用。
本实施例中,预编译模块2在确定目标信号点之后,调用存储模块6,以用于按照编号顺序存储目标信号点的编号。然后从存储模块6依次获取目标信号点的编号以在RTL文件中添加约束语句。
执行模块3用于执行RTL文件,获取目标信号点的直接捕获信号。本实施中,执行模块为IP核,也即IP核执行RTL文件,并获取目标信号点的直接捕获信号。波形显示时,通过JTAG或者用户自己开发的接口读取目标信号点的直接捕获信号,并写入RAM。
本实施例中,信号请求还包括:IP核的触发条件和捕获深度。IP核具体用于根据触发条件和捕获深度获取直接捕获信号。具体的,可使用两个IP核(捕获IP核和触发IP核)实现直接捕获信号的获取。设置捕获IP核的捕获深度,包括触发点前和触发点后的深度;设置触发IP核的触发条件,比如各触发条件间的与、或、异或等。
信号捕获前,按照目标信号点的存档顺序,把这些目标信号点连接到捕获IP核。运行FPGA系统,当触发条件满足时,触发IP核启动捕获IP核,实现目标信号点的信号捕获,并保存捕获信号时序。
计算模块4用于根据硬件电路和直接捕获信号计算间接捕获信号。
获得的直接捕获信号和间接捕获信号也即用户所需的目标信号。
绘图模块7用于绘制目标信号的时序图。至此,可画出所有目标信号时序的波形,且本实施例支持信号点的组合与分离,标注,颜色设定等。
本实施例的信号时序的获取系统可以应用在各种跟FPGA相关的系统。当需要查看某个RTL模块或者整个RTL内部信号时,自动插入IP核,自动插入约束,用最少的FPGA资源显示所有信号时序波形的EDA(电子设计自动化)类的系统。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
Claims (2)
1.一种FPGA信号时序的获取方法,FPGA包括RTL文件,其特征在于,所述获取方法包括:
获取信号请求;所述信号请求包括目标信号;
根据所述目标信号确定所述RTL文件描述的硬件电路的目标信号点;
根据所述目标信号点在所述RTL文件中添加约束语句;
执行所述RTL文件,获取所述目标信号点的直接捕获信号;
根据所述硬件电路和所述直接捕获信号计算间接捕获信号;
所述目标信号包括所述直接捕获信号和所述间接捕获信号;
IP核执行所述RTL文件,并获取所述直接捕获信号;
所述信号请求还包括:所述IP核的触发条件和捕获深度;
获取所述目标信号点的直接捕获信号的步骤,具体包括:
所述IP核根据所述触发条件和所述捕获深度获取所述直接捕获信号;
根据所述目标信号点在所述RTL文件中添加约束语句的步骤之前,还包括:
对所述硬件电路的信号点进行编号;
按照编号顺序存储所述目标信号点;所述获取方法,还包括:
绘制所述目标信号的时序图。
2.一种FPGA信号时序的获取系统,FPGA包括RTL文件,其特征在于,所述获取系统包括:
请求获取模块,用于获取信号请求;所述信号请求包括目标信号;
预编译模块,用于根据所述目标信号确定所述RTL文件描述的硬件电路的目标信号点,并根据所述目标信号点在所述RTL文件中添加约束语句;
执行模块,用于执行所述RTL文件,获取所述目标信号点的直接捕获信号;
计算模块,用于根据所述硬件电路和所述直接捕获信号计算间接捕获信号;
所述目标信号包括所述直接捕获信号和所述间接捕获信号;
所述执行模块为IP核;
所述信号请求还包括:所述IP核的触发条件和捕获深度;
所述IP核具体用于根据所述触发条件和所述捕获深度获取所述直接捕获信号;
所述获取系统还包括:
编号模块,用于对所述硬件电路的信号点进行编号;
存储模块,用于按照编号顺序存储所述目标信号点;
所述获取系统还包括:
绘图模块,用于绘制所述目标信号的时序图。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811367050.8A CN110502067B (zh) | 2018-11-16 | 2018-11-16 | Fpga信号时序的获取方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811367050.8A CN110502067B (zh) | 2018-11-16 | 2018-11-16 | Fpga信号时序的获取方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110502067A CN110502067A (zh) | 2019-11-26 |
CN110502067B true CN110502067B (zh) | 2022-09-27 |
Family
ID=68584957
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811367050.8A Active CN110502067B (zh) | 2018-11-16 | 2018-11-16 | Fpga信号时序的获取方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110502067B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN201278146Y (zh) * | 2008-10-31 | 2009-07-22 | 西安奇维测控科技有限公司 | 一种基于fpga实现ata接口信号捕获装置 |
US7991606B1 (en) * | 2003-04-01 | 2011-08-02 | Altera Corporation | Embedded logic analyzer functionality for system level environments |
CN102541707A (zh) * | 2010-12-15 | 2012-07-04 | 中国科学院电子学研究所 | 复用jtag接口的fpga片内逻辑分析仪系统和方法 |
CN105138769A (zh) * | 2015-08-24 | 2015-12-09 | 深圳市同创国芯电子有限公司 | 一种用于可编程电路的时序模型生成方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9176839B2 (en) * | 2011-05-20 | 2015-11-03 | Whizchip Design Technologies Pvt. Ltd. | Bus transaction monitoring and debugging system using FPGA |
-
2018
- 2018-11-16 CN CN201811367050.8A patent/CN110502067B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7991606B1 (en) * | 2003-04-01 | 2011-08-02 | Altera Corporation | Embedded logic analyzer functionality for system level environments |
CN201278146Y (zh) * | 2008-10-31 | 2009-07-22 | 西安奇维测控科技有限公司 | 一种基于fpga实现ata接口信号捕获装置 |
CN102541707A (zh) * | 2010-12-15 | 2012-07-04 | 中国科学院电子学研究所 | 复用jtag接口的fpga片内逻辑分析仪系统和方法 |
CN105138769A (zh) * | 2015-08-24 | 2015-12-09 | 深圳市同创国芯电子有限公司 | 一种用于可编程电路的时序模型生成方法及装置 |
Non-Patent Citations (1)
Title |
---|
FPGA芯片内部信号实时监测方法研究;杨守良;《渝西学院学报(自然科学版)》;20051220(第04期);第37-38页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110502067A (zh) | 2019-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112580295B (zh) | 多核SoC芯片的自动化验证方法、系统及装置 | |
CN110603528B (zh) | 调试系统和方法 | |
US20120179447A1 (en) | Hybrid Simulation System and Method | |
US7861070B2 (en) | Trace compression method for debug and trace interface wherein differences of register contents between logically adjacent registers are packed and increases of program counter addresses are categorized | |
US10255400B1 (en) | Debugging system and method | |
CN112597064B (zh) | 对程序进行仿真的方法、电子设备及存储介质 | |
US7607047B2 (en) | Method and system of identifying overlays | |
CN107590037A (zh) | 一种对服务器gpu进行edpp测试的方法 | |
US20220413042A1 (en) | Debug system and debug method | |
WO2021109367A1 (zh) | 数字产品的仿真信号查看方法及系统 | |
CN108628734A (zh) | 一种功能程序调试方法和终端 | |
CN115827636A (zh) | 存储及从波形数据库读取逻辑系统设计的仿真数据的方法 | |
US10664637B2 (en) | Testbench restoration based on capture and replay | |
CN110502067B (zh) | Fpga信号时序的获取方法及系统 | |
CN115470125B (zh) | 基于日志文件的调试方法、设备以及存储介质 | |
US10816600B1 (en) | Protocol analysis and visualization during simulation | |
WO2021109366A1 (zh) | 数字产品的仿真信号查看方法及系统 | |
US9946624B1 (en) | Systems and methods to capture data signals from a dynamic circuit | |
WO2021109365A1 (zh) | 数字产品的仿真信号查看方法及系统 | |
US9547568B2 (en) | Method and apparatus for verifying circuit design | |
CN104133174A (zh) | 一种基于SignaltapⅡ的FPGA开发板测试方法 | |
US20210173989A1 (en) | Simulation signal viewing method and system for digital product | |
US20210173994A1 (en) | Method and system for viewing simulation signals of a digital product | |
CN117408198B (zh) | 一种仿真模型建模方法、装置、设备及存储介质 | |
CN117785660A (zh) | Fpga软件仿真测试方法、装置、电子设备及存储介质 |
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 |