CN117787201A - 一种可配置多ip版本的简化电路生成模块的方法 - Google Patents
一种可配置多ip版本的简化电路生成模块的方法 Download PDFInfo
- Publication number
- CN117787201A CN117787201A CN202311778524.9A CN202311778524A CN117787201A CN 117787201 A CN117787201 A CN 117787201A CN 202311778524 A CN202311778524 A CN 202311778524A CN 117787201 A CN117787201 A CN 117787201A
- Authority
- CN
- China
- Prior art keywords
- module
- version
- tested
- versions
- library
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 29
- 238000013515 script Methods 0.000 claims abstract description 18
- 238000012360 testing method Methods 0.000 claims description 25
- 238000012795 verification Methods 0.000 claims description 22
- 238000004088 simulation Methods 0.000 claims description 8
- 238000013461 design Methods 0.000 abstract description 11
- 230000008569 process Effects 0.000 abstract description 8
- 238000012942 design verification Methods 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 3
- 238000012938 design process Methods 0.000 description 2
- 238000012827 research and development Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明公开了一种可配置多IP版本的简化电路生成模块的方法,包括:使用Python脚本在IP库中调用CPU核IP模块、总线IP模块、待测试IP的待测版本和寄存器组IP模块;Python脚本通过其内在的连接方式将CPU核IP模块与总线IP模块互联、总线IP模块与寄存器组IP模块互联、寄存器组IP模块内的不同行对应连接待测试IP的不同版本;Python脚本运行快速生成一个RTL代码。本发明创造性地提出能够配置多IP版本的电路设计方法,从而在设计验证过程和实际应用中实现更高的灵活性和性能。
Description
技术领域
本发明涉及芯片电路验证领域,尤其涉及一种可配置多IP版本的简化电路生成模块的方法。
背景技术
在数字电路领域,电路设计的复杂性常常是设计过程中的一大挑战。为了应对不断变化的需求,设计人员通常需要在不同工作环境和应用场景下对电路进行多次调整和优化,不同的使用环境可能对应的算法等略有不同以及在调试验证过程中,随后进行FPGA原型验证时就需要多次重新编译,会浪费大量的时间。
如图1所示,在常规的RTL设计过程中,总线的每一个接口基本都只会接一个IP,IP再通过物理接口与外部设备进行连接实现芯片与外界的连接交互;但是在常规项目过程中,首先一般总线接口都是被使用的,很少有说某个接口空着的情况,二是新IP验证过程中往往很多地方进行了改动,一个一个验证的话会浪费大量的时间,因为在验证过程需要进行仿真、编译等过程操作,每次改动都需要花大量时间去等待软件如VCS、Vivado等的编译过程,非常浪费时间。
因此,结合上述存在的技术问题,有必要提供一种新的技术方案。
发明内容
为至少解决现有技术中存在的技术问题之一,本发明的目标是提供一种创新的、能够配置多IP版本的电路设计方法,从而在设计验证过程和实际应用中实现更高的灵活性和性能。具体技术方案如下所述:
本发明提供一种可配置多IP版本的简化电路生成模块的方法,包括如下步骤:
S1:使用Python脚本在IP库中调用CPU核IP模块、总线IP模块、待测试IP的待测版本和寄存器组IP模块;
S2:Python脚本通过其内在的连接方式将CPU核IP模块与总线IP模块互联、总线IP模块与寄存器组IP模块互联、寄存器组IP模块内的不同行对应连接待测试IP的不同版本;
S3:Python脚本运行快速生成一个RTL代码。
作为本发明的一种优选方案,RTL代码能够进行仿真和/或验证。
作为本发明的一种优选方案,待测试IP的不同版本包括完整IP版本、简易IP版本、UART测试版本1、UART测试版本2、UART测试版本3、UART测试版本4或UART测试版本5。
作为本发明的一种优选方案,待测试IP的不同版本还包括不同工作环境和应用场景下对电路进行多次调整或优化的版本。
作为本发明的一种优选方案,连接完成后,CPU核IP模块或外部信号通过选择信号切换待测试IP的不同版本加入到Python脚本连接的系统中。
作为本发明的一种优选方案,加入系统后可进行仿真编译,然后进行FPGA原型验证。
作为本发明的一种优选方案,加入系统后直接进行FPGA原型验证。
作为本发明的一种优选方案,IP库包括成品IP库和测试IP库;成品IP库包括已经测试验证完成的IP,测试IP库包括待测试IP。
与现有技术相比,本发明至少具有如下有益效果:
本发明可配置多IP版本的简化电路生成模块的方法容易操作、快捷,可以节省大量验证时间。不用来回修改来回验证,节约人力物力的时间和成本,效率高。
本发明的方法能够快速生成RTL代码。
本发明的方法验证灵活度高。可以实现简易的IP级低功耗设计。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1是提供的传统方法的单IP配置示意图;
图2是本发明提供的多IP版本配置示意图;
图3是本发明提供的简化电路生成模块的方法的流程示意图。
具体实施方式
下面详细描述本发明的实施例,对本发明实施例的技术方案进行清查、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。其中,“FPGA”为可编程逻辑器件。
RTL语言(英文全称:Register Transfer Level language),指的是基于暴露出硬件层级抽象的数字电路设计语言。它主要被应用在芯片设计、嵌入式系统和FPGA领域的开发中。RTL语言是一种硬件描述语言,可以用它来描述数字电路结构和信号流的变化。
IP的概念,Intelligent Property,即知识产权核,IP是指芯片中具有独立功能的电路模块的成熟设计。
FPGA原型验证,是SoC基于FPGA的一种验证方式,一般是在前端RTL设计和RTL仿真之后。FPGA和ASIC前端代码都是基于Verilog HDL开发的,所以ASIC代码理论上是可以在FPGA平台上跑起来的,在流片之前,尽可能的去确定芯片功能的正确性的一种验证方式。
请参阅图2-图3,如图2-3所示,本发明可配置多IP版本的简化电路生成模块的方法,包括:
S1:使用Python脚本在IP库中调用CPU核IP模块、总线IP模块、待测试IP的待测版本和寄存器组IP模块;
S2:Python脚本通过其内在的连接方式将CPU核IP模块与总线IP模块互联、总线IP模块与寄存器组IP模块互联、寄存器组IP模块内的不同行对应连接待测试IP的不同版本;
S3:Python脚本运行快速生成一个RTL代码。
步骤S2中,Python脚本将各个IP或IP模块的管脚连接起来后构成系统。
IP库包括成品IP库和测试IP库;成品IP库包括已经测试验证完成的IP,已经测试验证完成的IP以下简称已经验证的IP,测试IP库包括待测试IP或其他,待测试IP包括还没有验证完成或正在验证的IP、计划验证的IP等等。
具体地,新的项目需要确定之后,可以直接在成品IP中直接选用已经验证的IP搭建新的RTL,新的待测试IP则由对应工程师在测试IP库中新建目录,将待测试IP纳入测试IP库中,待新待测试IP加入测试IP库完成后直接结合已经验证的IP搭建新的RTL代码,随后去完成验证工作。例如,已经验证的IP包括已经验证的CPU核IP模块、已经验证的总线IP模块和已经验证的寄存器组IP模块等等。
优选的,待测试IP的不同版本包括但不限于完整IP版本、简易IP版本、UART测试版本1、UART测试版本2、UART测试版本3、UART测试版本4、UART测试版本5……等等。当然,本专利并不局限于此。
如图3所示,本发明利用寄存器组方式去切换不同的IP版本的信号去接入总线接口或物理接口,物理接口如pad等,CPU核IP模块或外部信号通过选择信号去切换哪个IP版本加入到步骤S2Python脚本连接起来的系统中,这样等软件编译的时候就可以把不同改动的IP版本一起仿真编译进去,可以通过选择信号去选择不同的版本然后一起进行FPGA验证等等,这样可以方便去验证每个改动点。
实施例1快速生成RTL代码及节省验证时间
稍微大的SOC项目中,FPGA的仿真编译时间或者DV的仿真编译时间经常需要7-8小时以上甚至更多的时间,编译的时间过长,所以为了不影响项目的进度以及代码质量,研发团队采用在代码中存放不同版本的IP方法,一般将编译时间放在晚上,下班前整理需要修改测试的地方更新不同版本,再通过Python脚本快速生成总线到IP代码,并肩该部分代码和新版本的IP,将这些待测试IP的不同版本更新到项目中后,通过Python脚本将待测试IP及需要用到的与之有关的已经验证IP连接起来,快速生成RTL,然后开跑仿真及编译,这样第二天早上就可以进行FPGA原型验证或者查看编译波形等,并且在进行FPGA原型验证时切换不同IP版本后还接在原来的总线接口和pad上,不用修改FPGA硬件及测试diam就可以进行验证。
实施例2简易的待测试IP版本的低功耗设计
现在的项目中经常有一些低功耗要求,通过本发明可以实现一种简易的IP级低功耗设计,发明人研发团队在设计中封装两种待测试IP版本,一个是完整版待测试IP版本,一个是简易待测试IP版本,简易待测试IP版本只支持一些基础的功能。通过上述技术方案生成RTL代码,然后对项目进行验证,当项目运行进入低功耗模式时就切换到简易IP版上,当然要实现该功能还需要后端去同步控制两个IP版本的供电开关的切换,需要两个IP版本的供电要单独供电且可控,使用选择信号同步去控制两个IP版本的供电,从而实现低功耗控制。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。此外,本领域人员可以将本说明书中描述的不同实施例或示例进行接合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
Claims (7)
1.一种可配置多IP版本的简化电路生成模块的方法,其特征在于,包括:
S1:使用Python脚本在IP库中调用CPU核IP模块、总线IP模块、待测试IP的待测版本和寄存器组IP模块;
S2:Python脚本通过其内在的连接方式将CPU核IP模块与总线IP模块互联、总线IP模块与寄存器组IP模块互联、寄存器组IP模块内的不同行对应连接待测试IP的不同版本;
S3:Python脚本运行快速生成一个RTL代码。
2.根据权利要求1所述的可配置多IP版本的简化电路生成模块的方法,其特征在于,RTL代码能够进行仿真和/或验证。
3.根据权利要求1所述的可配置多IP版本的简化电路生成模块的方法,其特征在于,待测试IP的不同版本包括完整IP版本、简易IP版本、UART测试版本1、UART测试版本2、UART测试版本3、UART测试版本4或UART测试版本5。
4.根据权利要求1所述的可配置多IP版本的简化电路生成模块的方法,其特征在于,待测试IP的不同版本还包括不同工作环境和应用场景下对电路进行多次调整或优化的版本。
5.根据权利要求1或2任一所述的可配置多IP版本的简化电路生成模块的方法,其特征在于,连接完成后,CPU核IP模块或外部信号通过选择信号切换待测试IP的不同版本加入到Python脚本连接的系统中。
6.根据权利要求5所述的可配置多IP版本的简化电路生成模块的方法,其特征在于,加入系统后可进行仿真编译,然后进行FPGA原型验证;或
加入系统后直接进行FPGA原型验证。
7.根据权利要求1所述的可配置多IP版本的简化电路生成模块的方法,其特征在于,IP库包括成品IP库和测试IP库;成品IP库包括已经测试验证完成的IP,测试IP库包括待测试IP。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311778524.9A CN117787201A (zh) | 2023-12-21 | 2023-12-21 | 一种可配置多ip版本的简化电路生成模块的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311778524.9A CN117787201A (zh) | 2023-12-21 | 2023-12-21 | 一种可配置多ip版本的简化电路生成模块的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117787201A true CN117787201A (zh) | 2024-03-29 |
Family
ID=90397448
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311778524.9A Pending CN117787201A (zh) | 2023-12-21 | 2023-12-21 | 一种可配置多ip版本的简化电路生成模块的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117787201A (zh) |
-
2023
- 2023-12-21 CN CN202311778524.9A patent/CN117787201A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7379861B2 (en) | Dynamic programming of trigger conditions in hardware emulation systems | |
US20080306721A1 (en) | Dynamic-Verification-Based Verification Apparatus Achieving High Verification Performance and Verification Efficiency and the Verification Methodology Using the Same | |
US20030217341A1 (en) | Architecture and design of universal IC test system | |
CN108038294B (zh) | Uvm环境搭建方法和系统 | |
CN101153892B (zh) | 现场可编程门阵列输入输出模块验证方法 | |
CN103678745A (zh) | 一种用于fpga的跨平台多层次集成设计系统 | |
CN101499937A (zh) | 一种基于fpga的软硬件协同仿真验证系统及方法 | |
CN113807037B (zh) | 一种支持soc设计全流程开发的软件和硬件协同仿真系统 | |
CN101551827B (zh) | 多仿真精度可切换的测试方法和装置 | |
WO2023221621A1 (zh) | 一种集成电路并发测试装置及方法 | |
CN101140314B (zh) | 现场可编程门阵列布线信道验证方法及系统 | |
Gong et al. | ReSim: A reusable library for RTL simulation of dynamic partial reconfiguration | |
US20090193172A1 (en) | Cross-bar switching in an emulation environment | |
WO2005093575A1 (en) | Dynamic-verification-based verification apparatus achieving high verification performance and verification efficency and the verification methodology using the same | |
EP2541448B1 (en) | Method and system for partial reconfiguration simulation | |
KR20040063846A (ko) | 다양한 검증 플랫폼들의 통합 사용을 지원하는 검증 장치및 이를 이용한 검증 방법 | |
CN117787201A (zh) | 一种可配置多ip版本的简化电路生成模块的方法 | |
Balarin et al. | Functional verification methodology based on formal interface specification and transactor generation | |
WO2001084316A1 (en) | Rapid debugging method on rapid prototyping apparatus for complex embedded system | |
JP4642304B2 (ja) | 汎用のハードウエアデバイス及び方法とそれと共に使用するツール | |
CN114896919B (zh) | 一种基于fpga的集成电路原型验证系统及方法 | |
CN118091387B (zh) | 调节扫描测试电路的方法、扫描测试电路及芯片 | |
CN117521583B (zh) | 一种时钟驱动的软硬件联合仿真方法、系统及存储介质 | |
CN118569164A (zh) | Emu测试方法、装置、电子设备及存储介质 | |
CN118036520A (zh) | 一种SoC多功能模块验证平台及方法 |
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 |