CN115237538A - A system-on-chip simulation platform and its construction method - Google Patents
A system-on-chip simulation platform and its construction method Download PDFInfo
- Publication number
- CN115237538A CN115237538A CN202210878096.6A CN202210878096A CN115237538A CN 115237538 A CN115237538 A CN 115237538A CN 202210878096 A CN202210878096 A CN 202210878096A CN 115237538 A CN115237538 A CN 115237538A
- Authority
- CN
- China
- Prior art keywords
- bus
- interface
- module
- cpu
- axi
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45508—Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
技术领域technical field
本发明涉及片上系统仿真技术领域,具体涉及一种片上系统仿真平台及其构建方法。The invention relates to the technical field of system-on-chip simulation, in particular to a system-on-chip simulation platform and a construction method thereof.
背景技术Background technique
随着半导体行业的飞速发展,硅的尺寸、功能和软件的复杂性都达到了前所未有的水平。为了达到产品在预期时间上市的目标,需要在产品开发周期中引入并行性,在产品开发过程中进行仿真测试。With the rapid development of the semiconductor industry, silicon has reached unprecedented levels of size, function and software complexity. In order to achieve the goal of launching the product at the expected time, it is necessary to introduce parallelism in the product development cycle and carry out simulation testing during the product development process.
在现有的开发方式中,常见的仿真测试方式有搭建片上系统仿真环境和利用CPU总线功能模型(Bus Function Model,BFM)进行片上系统仿真两种。但是,现有的片上系统仿真环境是通过真实的CPU执行C代码来进行仿真,这种仿真方式在CPU IP导入不及时的情况下,将无法进行片上系统验证平台的搭建和调试,也无法进行软件的前期开发。通过CPU总线功能模型BFM构建Verilog或者System Verilog激励进行片上系统的仿真,采用这种方式进行软件开发的C语言代码无法直接在片上系统仿真平台上运行,不利于软件代码开发以及片上系统应用场景的构建。In the existing development methods, there are two common simulation testing methods: building a system-on-chip simulation environment and using a CPU bus function model (Bus Function Model, BFM) to simulate the system-on-chip. However, the existing SoC simulation environment is simulated by executing C code on a real CPU. This simulation method will not be able to build and debug the SoC verification platform when the CPU IP is not imported in time. Early software development. Using the CPU bus function model BFM to build Verilog or System Verilog to stimulate the simulation of the SoC, the C language code for software development in this way cannot be directly run on the SoC simulation platform, which is not conducive to software code development and SoC application scenarios. Construct.
发明内容SUMMARY OF THE INVENTION
为了解决现有技术中的不足,本发明提出了一种片上系统仿真平台及其构建方法,该仿真平台及其构建方法能够通过DPI虚拟出一个CPU在芯片片上系统仿真环境中替代真实的CPU,不仅可以使软件开发人员尽快开始代码开发,还可以使硬件验证人员利用软件人员开发的代码为芯片构建更多的应用场景,从而达到更高效、更全面验证芯片的目的。In order to solve the deficiencies in the prior art, the present invention proposes a system-on-chip simulation platform and a construction method thereof. The simulation platform and the construction method can virtualize a CPU through DPI to replace the real CPU in the system-on-chip simulation environment. Not only can software developers start code development as soon as possible, but also hardware verifiers can use the codes developed by software developers to build more application scenarios for the chip, so as to achieve the purpose of more efficient and comprehensive verification of the chip.
为实现上述目的,本发明采用了以下技术方案:To achieve the above object, the present invention has adopted the following technical solutions:
根据本发明的第一方面,提供了一种片上系统仿真平台,该仿真平台包括:总线模块、CPU总线功能模型单元和系统存储模块。According to a first aspect of the present invention, a system-on-chip simulation platform is provided, the simulation platform includes: a bus module, a CPU bus function model unit and a system storage module.
所述总线模块包括AXI总线控制单元、AXI-AHB转接桥、AHB总线控制单元、AHB-AXI转接桥、APB总线控制单元、AHB-APB转接桥和AXI-APB转接桥。The bus module includes an AXI bus control unit, an AXI-AHB transfer bridge, an AHB bus control unit, an AHB-AXI transfer bridge, an APB bus control unit, an AHB-APB transfer bridge and an AXI-APB transfer bridge.
所述CPU总线功能模型单元通过AXI接口或AHB接口与所述总线模块相连,且所述CPU总线功能模型单元设有DPI接口;所述DPI接口,用于将所述CPU总线功能模型单元中的任务开放给C语言接口。The CPU bus functional model unit is connected to the bus module through an AXI interface or an AHB interface, and the CPU bus functional model unit is provided with a DPI interface; the DPI interface is used to connect the data in the CPU bus functional model unit. The task is open to the C language interface.
所述系统存储模块包括静态随机存取存储器SRAM;所述系统存储模块与所述AXI接口或所述AHB接口相连。The system storage module includes a static random access memory SRAM; the system storage module is connected to the AXI interface or the AHB interface.
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述CPU总线功能模型单元采用System Verilog语言生成。The above aspects and any possible implementation manners further provide an implementation manner, wherein the CPU bus function model unit is generated by using the System Verilog language.
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述AXI总线控制单元、所述AHB总线控制单元和所述APB总线控制单元均包括主端口和从端口。According to the above aspect and any possible implementation manner, an implementation manner is further provided, wherein the AXI bus control unit, the AHB bus control unit and the APB bus control unit all include a master port and a slave port.
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述CPU总线功能模型单元,其采用write_bus和read_bus任务对所述总线模块进行操作,采用delay_cyc作为延时任务,采用main_thread作为入口任务。The above aspects and any possible implementations further provide an implementation, the CPU bus function model unit, which uses write_bus and read_bus tasks to operate the bus module, uses delay_cyc as a delay task, adopts main_thread as the entry task.
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述C语言接口通过调用write_bus、read_bus、delay_cyc和main_thread任务完成对总线模块的操作。The above aspects and any possible implementation manners further provide an implementation manner, wherein the C language interface completes operations on the bus module by calling the tasks of write_bus, read_bus, delay_cyc and main_thread.
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述总线模块连接有多个IP,采用main_thread任务访问与总线模块连接的设备的寄存器,或将系统存储模块初始化后供与总线模块连接的设备使用。The above-mentioned aspect and any possible implementation mode further provide an implementation mode, the bus module is connected with a plurality of IPs, and the main_thread task is used to access the register of the device connected to the bus module, or after the system memory module is initialized For use with devices connected to the bus module.
根据本发明的第二方面,提供了一种上述片上系统仿真平台的构建方法,该方法包括:According to a second aspect of the present invention, a method for constructing the above-mentioned system-on-chip simulation platform is provided, the method comprising:
(1)构建总线模块。(1) Build a bus module.
(2)采用System Verilog语言生成CPU总线功能模型单元,并通过AXI接口或AHB接口将CPU总线功能模型单元与总线模块连接。(2) Using the System Verilog language to generate the CPU bus functional model unit, and connect the CPU bus functional model unit with the bus module through the AXI interface or the AHB interface.
(3)采用静态随机存取存储器SRAM构建系统存储模块,并将系统存储模块与AXI接口或AHB接口的slave相连。(3) The static random access memory SRAM is used to construct the system memory module, and the system memory module is connected with the slave of the AXI interface or the AHB interface.
(4)采用DPI接口将CPU总线功能模型单元与C语言接口连接,使CPU总线功能模型单元中的任务开放给C语言接口,C语言接口调用write_bus、read_bus、delay_cyc和main_thread任务完成对总线模块的操作。(4) Use the DPI interface to connect the CPU bus functional model unit with the C language interface, so that the tasks in the CPU bus functional model unit are opened to the C language interface, and the C language interface calls the write_bus, read_bus, delay_cyc and main_thread tasks to complete the bus module. operate.
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,该方法还包括构建测试用例,例化总线模块、CPU总线功能模型单元和系统存储模块,并生成时钟和复位任务。The above-mentioned aspects and any possible implementation manners further provide an implementation manner, the method further includes constructing a test case, instantiating a bus module, a CPU bus functional model unit and a system memory module, and generating a clock and a reset task.
与现有技术相比,本发明具有以下有益效果:Compared with the prior art, the present invention has the following beneficial effects:
本发明通过DPI虚拟出一个CPU在芯片的片上系统仿真环境中替代真实的CPU,这样不仅能够使软件人员可以尽快进行代码开发,还可以使硬件验证人员利用软件人员开发的代码为芯片构建更多的应用场景,达到更高效、更全面验证芯片的目的。The present invention virtualizes a CPU through DPI to replace the real CPU in the system-on-chip simulation environment of the chip, so that not only software personnel can develop codes as soon as possible, but also hardware verification personnel can use the codes developed by software personnel to build more chips for the chip. It can achieve the purpose of more efficient and comprehensive verification of the chip.
附图说明Description of drawings
图1是本发明中片上系统仿真平台的原理图;1 is a schematic diagram of a system-on-chip simulation platform in the present invention;
图2是本发明中片上系统仿真平台的结构框图;Fig. 2 is the structural block diagram of the system-on-chip simulation platform in the present invention;
图3是本发明中片上系统仿真平台构建方法的流程图。FIG. 3 is a flowchart of a method for constructing a system-on-chip simulation platform in the present invention.
其中:in:
110、总线模块,120、CPU总线功能模型单元,130、AHB接口,140、AXI接口,150、系统存储模块,160、C语言接口。110, bus module, 120, CPU bus function model unit, 130, AHB interface, 140, AXI interface, 150, system memory module, 160, C language interface.
具体实施方式Detailed ways
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本发明保护的范围。In order to make the purposes, technical solutions and advantages of the embodiments of the present invention clearer, the technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings in the embodiments of the present invention. Obviously, the described embodiments These are some embodiments of the present invention, but not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those of ordinary skill in the art without creative efforts shall fall within the protection scope of the present invention.
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。In addition, the term "and/or" in this article is only an association relationship to describe the associated objects, indicating that there can be three kinds of relationships, for example, A and/or B, it can mean that A exists alone, A and B exist at the same time, There are three cases of B alone. In addition, the character "/" in this document generally indicates that the related objects are an "or" relationship.
本发明通过DPI虚拟出一个CPU在芯片的片上系统仿真环境中替代真实的CPU,这样不仅能够使软件人员可以尽快进行代码开发,还可以使硬件验证人员利用软件人员开发的代码为芯片构建更多的应用场景,达到更高效、更全面验证芯片的目的。The present invention virtualizes a CPU through DPI to replace the real CPU in the system-on-chip simulation environment of the chip, so that not only software personnel can develop codes as soon as possible, but also hardware verification personnel can use the codes developed by software personnel to build more chips for the chip. It can achieve the purpose of more efficient and comprehensive verification of the chip.
图1示出了本发明中片上系统仿真平台的原理图,图2示出了片上系统仿真平台的结构框图。该仿真平台包括:总线模块110、CPU总线功能模型单元120和系统存储模块150。FIG. 1 shows a schematic diagram of a system-on-chip simulation platform in the present invention, and FIG. 2 shows a structural block diagram of the system-on-chip simulation platform. The simulation platform includes: a
所述总线模块110包括AXI总线控制单元、AXI-AHB转接桥、AHB总线控制单元、AHB-AXI转接桥、APB总线控制单元、AHB-APB转接桥和AXI-APB转接桥。所述总线模块110连接有多个IP,采用main_thread任务访问与总线模块连接的设备的寄存器,或将系统存储模块初始化后供与总线模块连接的设备使用。所述AXI总线控制单元为4*4,包括4个主端口masterport和4个从端口slave port。所述AXI-AHB的转接桥为4*4,包括4个主端口master port和4个从端口slave port。所述APB总线控制单元包括4个从端口slave port。The
所述CPU总线功能模型单元120通过AXI接口140或AHB接口130与所述总线模块110相连,且所述CPU总线功能模型单元120设有DPI接口。通过DPI接口把CPU的BFM中的task开放给C语言接口160,C语言可以直接调用main_thread并在内部调用write_bus和read_bus完成对总线的操作,调用delay完成延时任务。The CPU bus
所述CPU总线功能模型单元120为虚拟的CPU,其采用write_bus和read_bus任务对所述总线模块110进行操作,采用delay_cyc作为延时任务,采用main_thread作为入口任务。所述C语言接口通过调用write_bus、read_bus、delay_cyc和main_thread任务完成对总线模块的操作。The CPU bus
所述系统存储模块160包括静态随机存取存储器SRAM;所述系统存储模块160与所述AXI接口140或所述AHB接口130相连。The
本发明通过DPI虚拟出一个CPU在芯片片上系统仿真环境中替代真实的CPU,这样软件人员既可以尽快开始代码开发,硬件验证人员也能利用软件人员开发的代码为芯片构建更多的应用场景,达到更高效,更全面验证芯片的目的。The invention virtualizes a CPU through DPI to replace the real CPU in the system-on-chip simulation environment, so that the software personnel can start code development as soon as possible, and the hardware verification personnel can also use the codes developed by the software personnel to build more application scenarios for the chip. To achieve the purpose of more efficient and more comprehensive verification of the chip.
本发明的目的一方面在芯片开发过程中引入更多的并行性,包括片上系统仿真与设计集成的并行性,软件开发与片上系统仿真验证的并行性等。另一方面可以结合软件应用,在片上系统仿真阶段增加更多系统级的行为,既方便软件开发遇到问题时通过片上系统仿真调试,有便于硬件覆盖更多应用场景。On the one hand, the purpose of the present invention is to introduce more parallelism in the chip development process, including the parallelism of system-on-chip simulation and design integration, the parallelism of software development and system-on-chip simulation verification, and the like. On the other hand, it can be combined with software applications to add more system-level behaviors in the SoC simulation stage, which is convenient for software development to use SoC simulation and debugging when encountering problems, and it is convenient for hardware to cover more application scenarios.
图3示出了片上系统仿真平台构建方法300的流程图。FIG. 3 shows a flowchart of a
在框310,构建总线模块。总线模块的master port和slave port可以连接不同的IP,在任务main_thread中可以完成对连接IP的寄存器访问,也可以初始化静态随机存取存储器SRAM内容给连接的IP使用。At
在框320,采用System Verilog语言生成CPU总线功能模型单元,并通过AXI接口或AHB接口将CPU总线功能模型单元与总线模块连接。所述CPU总线功能模型单元通过SystemVerilog创建一个CPU的BFM,有一套AXI或者AHB的总线接口与总线系统相连,把对总线模块的操作抽象成write_bus和read_bus两个task,另外增加一个delay_cyc作为延时task,增加一个CPU的入口任务main_thread,构建C语言需要的其他任务。At
在框330,采用静态随机存取存储器SRAM构建系统存储模块,并将系统存储模块与AXI接口或AHB接口的slave相连。At
在框340,采用DPI接口将CPU总线功能模型单元与C语言接口连接,使CPU总线功能模型单元中的任务开放给C语言接口,C语言接口调用write_bus、read_bus、delay_cyc和main_thread任务完成对总线模块的操作。At
在框350,构建测试用例,例化总线模块、CPU总线功能模型单元和系统存储模块,并生成时钟和复位任务。硬件验证人员和软件开发人员可以同时进行C语言测试用例的构建。At
本发明仿真环境简单,不需要把C语言编译成hex的一系列过程和相关交叉编译环境,只需要把C语言编译成相关共享库就可以。软件开发和硬件验证人员可以在还没有真正CPU的时候进行现有IP的仿真和软件代码的开发,尽早开展工作有利于缩短整个芯片开发周期。本发明可以更好地复现问题,当CPU的BFM中的task足够丰富能够覆盖软件开发的所有情况时,软硬件可以同时在一个平台上开发用例,软件出现用例问题时,可以更方便地在硬件仿真平台复现。此外硬件验证人员可以更好的借助丰富的软件库,实现更多系统级应用场景的覆盖,尽早发现并解决系统可能隐藏的问题。The simulation environment of the present invention is simple, and does not require a series of processes of compiling C language into hex and a related cross-compilation environment, and only needs to compile C language into a relevant shared library. Software development and hardware verification personnel can perform the simulation of existing IP and software code development when there is no real CPU, and it is beneficial to shorten the entire chip development cycle by starting the work as early as possible. The present invention can better reproduce the problem. When the tasks in the BFM of the CPU are rich enough to cover all situations of software development, the software and hardware can develop use cases on one platform at the same time. The hardware emulation platform is reproduced. In addition, hardware verifiers can better use rich software libraries to cover more system-level application scenarios, and to discover and solve possible hidden problems in the system as soon as possible.
以上所述实施例仅仅是对本发明的优选实施方式进行描述,并非对本发明的范围进行限定,在不脱离本发明设计精神的前提下,本领域普通技术人员对本发明的技术方案做出的各种变形和改进,均应落入本发明权利要求书确定的保护范围内。The above-mentioned embodiments are only to describe the preferred embodiments of the present invention, and do not limit the scope of the present invention. On the premise of not departing from the design spirit of the present invention, those of ordinary skill in the art can make various Variations and improvements should fall within the protection scope determined by the claims of the present invention.
Claims (8)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210878096.6A CN115237538A (en) | 2022-07-25 | 2022-07-25 | A system-on-chip simulation platform and its construction method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210878096.6A CN115237538A (en) | 2022-07-25 | 2022-07-25 | A system-on-chip simulation platform and its construction method |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115237538A true CN115237538A (en) | 2022-10-25 |
Family
ID=83674819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210878096.6A Pending CN115237538A (en) | 2022-07-25 | 2022-07-25 | A system-on-chip simulation platform and its construction method |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115237538A (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109614368A (en) * | 2018-12-06 | 2019-04-12 | 青岛方寸微电子科技有限公司 | A kind of the module verification platform and method of system on chip IP |
CN113609052A (en) * | 2021-07-30 | 2021-11-05 | 上海创景信息科技有限公司 | Chip simulation system based on FPGA and microprocessor and implementation method |
CN113866586A (en) * | 2020-06-30 | 2021-12-31 | 澜至电子科技(成都)有限公司 | System-level chip verification platform and verification method |
-
2022
- 2022-07-25 CN CN202210878096.6A patent/CN115237538A/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109614368A (en) * | 2018-12-06 | 2019-04-12 | 青岛方寸微电子科技有限公司 | A kind of the module verification platform and method of system on chip IP |
CN113866586A (en) * | 2020-06-30 | 2021-12-31 | 澜至电子科技(成都)有限公司 | System-level chip verification platform and verification method |
CN113609052A (en) * | 2021-07-30 | 2021-11-05 | 上海创景信息科技有限公司 | Chip simulation system based on FPGA and microprocessor and implementation method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5771370A (en) | Method and apparatus for optimizing hardware and software co-simulation | |
US6427224B1 (en) | Method for efficient verification of system-on-chip integrated circuit designs including an embedded processor | |
US5838948A (en) | System and method for simulation of computer systems combining hardware and software interaction | |
US6615167B1 (en) | Processor-independent system-on-chip verification for embedded processor systems | |
US5768567A (en) | Optimizing hardware and software co-simulator | |
CN102508753B (en) | IP (Internet protocol) core verification system | |
CN101231589B (en) | System and method for developing embedded software in-situ | |
WO2024046362A1 (en) | Verification system, verification method, electronic device, and storage medium | |
Andrews | Co-verification of hardware and software for ARM SoC design | |
CN102841837A (en) | Software and hardware co-verification method based on simulator and system thereof | |
CN112764981B (en) | Cooperative testing system and method | |
US20130024178A1 (en) | Playback methodology for verification components | |
Gao et al. | Software and hardware co-verification technology based on virtual prototyping of RF SOC | |
CN115237538A (en) | A system-on-chip simulation platform and its construction method | |
CN111338761B (en) | 51 single-chip microcomputer virtual interrupt controller and implementation method | |
Karmitsa | Pre-validation of SoC via hardware and software co-simulation | |
US12182485B1 (en) | Embedded processor architecture with shared memory with design under test | |
US11630935B1 (en) | Data traffic injection for simulation of circuit designs | |
Ecker et al. | Using a dataflow abstracted virtual prototype for HdS-design | |
US20180011956A1 (en) | Data Injection In Emulation Without Rebooting | |
Bellows | High-visibility debug-by-design for FPGA platforms | |
CN118313325A (en) | A design method for CMU simulator of onboard computer based on QEMU virtual environment | |
Aarno et al. | Simics* overview,” | |
Mahboub | Study and development of software based self-test programs for Automotive ECU | |
CN119149434A (en) | Test case multiplexing system of hardware accelerator platform |
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 |