CN111814416B - Method for automatically converting ASIC memory into IP core of FPGA and readable medium - Google Patents

Method for automatically converting ASIC memory into IP core of FPGA and readable medium Download PDF

Info

Publication number
CN111814416B
CN111814416B CN202010504751.2A CN202010504751A CN111814416B CN 111814416 B CN111814416 B CN 111814416B CN 202010504751 A CN202010504751 A CN 202010504751A CN 111814416 B CN111814416 B CN 111814416B
Authority
CN
China
Prior art keywords
memory
fpga
asic
type
automatically
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
Application number
CN202010504751.2A
Other languages
Chinese (zh)
Other versions
CN111814416A (en
Inventor
王书浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Saifang Technology Co ltd
Original Assignee
Shanghai Saifang Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Saifang Technology Co ltd filed Critical Shanghai Saifang Technology Co ltd
Priority to CN202010504751.2A priority Critical patent/CN111814416B/en
Publication of CN111814416A publication Critical patent/CN111814416A/en
Application granted granted Critical
Publication of CN111814416B publication Critical patent/CN111814416B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

The invention relates to the technical field of integrated circuits, in particular to a method for automatically converting an ASIC memory into an IP core of an FPGA and a readable medium, aiming at the memroy with the bin of the ASIC, the invention is not as flexible as the memory with the bin in the ASIC because of the special process of the FPGA, the invention uses python to process texts and splice and convert the memory with special requirements, the problem is reasonably solved, dcp, stub and xci files in IP needed by the prototype verification of the FPGA can be generated, the prototype synthesis, the layout and the wiring of the follow-up FPGA are all very important helpful, and the prototype verification of the whole FPGA is very important helpful. According to the invention, the bram and the dram of the FPGA can be automatically generated according to the memory size of the ASIC, the memory model of the emulgator can be generated, the simulation file can be automatically generated, and the generated memory is self-checked. Prototype verification can be performed more quickly and intelligently. And simultaneously, the timing sequence convergence of the FPGA can be better carried out.

Description

Method for automatically converting ASIC memory into IP core of FPGA and readable medium
Technical Field
The invention relates to the technical field of integrated circuits, in particular to a method for automatically converting an ASIC memory into an IP core of an FPGA and a readable medium.
Background
FPGA (Field-programmable gate array), a Field-programmable gate array, is a product of further development on the basis of programmable devices such as PAL, GAL, CPLD. The programmable device is used as a semi-custom circuit in the field of Application Specific Integrated Circuits (ASICs), which not only solves the defect of custom circuits, but also overcomes the defect of limited gate circuits of the original programmable device.
An ASIC is considered to be an integrated circuit designed for a specific purpose. Refers to integrated circuits that are designed and manufactured to meet the needs of a particular user and a particular electronic system. The ASIC is characterized by being oriented to the requirements of specific users, and has the advantages of smaller volume, lower power consumption, improved reliability, improved performance, enhanced confidentiality, reduced cost and the like compared with a general integrated circuit during mass production.
In ASIC design, the FPGA is often used for prototype verification. FPGA verification is an important link for ASIC design, and 50-80% of the whole process of the ASIC can be said to be completed after FPGA verification is completed. In ASIC design, there are a large number of memories (memories) of different types, and the FPGA needs to be replaced manually step by step when performing prototype verification, which consumes a large amount of time for research and development personnel, and leads to lengthening of verification period, lengthening of research and development period of the whole chip and delay of the time to market of the chip when performing prototype verification. For example, when I do a large video chip, there are hundreds of different types of memory in the chip, and the manual replacement needs about 1 week, and it takes days to verify the correctness after the replacement, but by using the technology, 8 hours can be completely replaced.
Python: is a high-level scripting language that combines interpretive, compiled, interactive, and object-oriented. The text file is handled predominantly.
Tcl: a scripting language supporting FPGA development tools vivado.
The invention is based on the cross development of python and tcl, uses python to process a large number of text files, and uses tcl to perform fpga development.
Disclosure of Invention
Aiming at the defects of the prior art, the invention discloses a method for automatically converting an ASIC memory into an IP core of an FPGA and a readable medium thereof, which are used for solving the problems that the prior prototype design adopts manual replacement, which leads to more and more work, research personnel operate on a computer side, occasional artificial errors can lead to the whole verification progress, the prior program operation uses a plurality of scripts to execute, only parameters of a memory model of the ASIC are simply extracted to generate a memory code which can be synthesized by the FPGA, thus a large amount of lut resources of the FPGA are occupied, thereby wasting BRAM in the FPGA, leading to poor time sequence analysis and unstable functions and bottleneck in performance when the FPGA performs prototype verification.
The invention is realized by the following technical scheme:
in a first aspect, the present invention discloses a method for automatically transferring an ASIC memory to an IP core of an FPGA, the method comprising the steps of:
s1, scanning a memory file used by an ASIC by using a python script language, capturing port information, and automatically screening the type of the memory;
s2, extracting names of memory packages, and generating a list of memory types and a list of package names;
s3, comparing the transmission parameters with a list of memory types by using a python script, and selecting the memory type to be used;
s4, selecting a memory IP file in the FPGA according to the memory type by the python script, and modifying parameters in an IP file in the FPGA;
s5, calculating the number of BRAMs according to the memory size, and generating an IP list file after modifying parameters;
s6, calling an embedded tcl script by the python script, generating a memory IP of the FPGA according to the IP list file, and automatically copying to generate dcp to a memory_dcp directory;
s7, processing the memory package name extracted by the ASIC through the python script to generate a model with the same port information;
s8, instantiating the memory ip generated by the FPGA again, and carrying out batch processing on the memory with the bin;
s9, generating a memory required by an Emulator through a python script;
s10, the python script runs a corresponding test program, performs self-test on the memory, prints the 'Pass' with the same function and prints the 'Fail' with the different functions.
Further, in the step S3, the optional memory type is a memory of a dram, a bram or an emulgator type, and the memory of the emulgator type is a memory built by a two-dimensional array, which is completely different from a memory model of the dram and the bram.
Further, when the type of memory is selected, according to the size of the memory, dram is selected by default below 1K, and bram is selected above 1K.
Further, the selection of the memory of the emulgator type is selected according to the parameters transmitted by the python script, or the simulation ram model required by the emulgator is automatically generated while the dram and the bram are generated, and the simulation ram model is put into a separate emulgator catalog.
Furthermore, when the FPGA performs verification, the script uniformly calls the dcp file by the memory_dcp directory to be used as verification.
In a second aspect, the present invention discloses a readable medium, including a processor and a memory storing execution instructions, where when the processor executes the execution instructions stored in the memory, the processor hardware executes the method for automatically transferring the ASIC memory of the first aspect to the IP core of the FPGA.
The beneficial effects of the invention are as follows:
according to the invention, the automation level is better, the bram and the dram of the FPGA can be automatically generated according to the memory size of the ASIC, the memory model of the simulator can be generated, the simulation file can be automatically generated, and the generated memory is subjected to self-inspection. Prototype verification can be performed more quickly and intelligently. And simultaneously, the timing sequence convergence of the FPGA can be better carried out.
Drawings
In order to more clearly illustrate the embodiments of the invention or the technical solutions in the prior art, the drawings that are required in the embodiments or the description of the prior art will be briefly described, it being obvious that the drawings in the following description are only some embodiments of the invention, and that other drawings may be obtained according to these drawings without inventive effort for a person skilled in the art.
FIG. 1 is a schematic step diagram of a method for automatically transferring ASIC memory to an IP core of an FPGA;
fig. 2 is a schematic diagram of the implementation of the present embodiment.
Detailed Description
For the purpose of making the objects, technical solutions and advantages of the embodiments of the present invention more apparent, the technical solutions of 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, and it is apparent that the described embodiments are some embodiments of the present invention, but not all embodiments of the present invention. All other embodiments, which can be made by those skilled in the art based on the embodiments of the invention without making any inventive effort, are intended to be within the scope of the invention.
Example 1
The invention discloses a method for automatically transferring an ASIC memory to an IP core of an FPGA, which is shown in figure 1, and comprises the following steps:
s1, scanning a memory file used by an ASIC by using a python script language, capturing port information, and automatically screening the type of the memory;
s2, extracting names of memory packages, and generating a list of memory types and a list of package names;
s3, comparing the transmission parameters with a list of memory types by using a python script, and selecting the memory type to be used;
s4, selecting a memory IP file in the FPGA according to the memory type by the python script, and modifying parameters in an IP file in the FPGA;
s5, calculating the number of BRAMs according to the memory size, and generating an IP list file after modifying parameters;
s6, calling an embedded tcl script by the python script, generating a memory IP of the FPGA according to the IP list file, and automatically copying to generate dcp to a memory_dcp directory;
s7, processing the memory package name extracted by the ASIC through the python script to generate a model with the same port information;
s8, instantiating the memory ip generated by the FPGA again, and carrying out batch processing on the memory with the bin;
s9, generating a memory required by an Emulator through a python script;
s10, the python script runs a corresponding test program, performs self-test on the memory, prints the 'Pass' with the same function and prints the 'Fail' with the different functions.
In S3, the optional memory type is a memory of the dram, the bram or the emulgator type, and the memory of the emulgator type is built by a two-dimensional array, which is completely different from the memory model of the dram and the bram.
When the type of the memory is selected, according to the size of the memory, the default is selected to be dram below 1K, and the default is selected to be bram above 1K.
The selection of the memory of the emulgator type is selected according to the parameters transmitted by the python script, or the simulation ram model required by the emulgator is automatically generated at the same time of generating the dram and the bram and is put into a separate emulgator catalog.
When the FPGA performs verification, the script uniformly calls the dcp file by the memory_dcp directory to be used as verification.
According to the embodiment, the method and the device can automatically generate the bram and the dram of the FPGA according to the memory size of the ASIC, can generate a memory model of an emulgator, can automatically generate a simulation file, and perform self-test on the generated memory. Prototype verification can be performed more quickly and intelligently. And simultaneously, the timing sequence convergence of the FPGA can be better carried out.
Example 2
Referring to fig. 2, this embodiment illustrates a process of IP core router generation, which is specifically as follows:
1: memory list of ASIC: the python script language scans the memory file used by the ASIC, captures port information, and automatically screens the type of the memory. At the same time, the names of the memory packages are extracted, a list of memory types is generated, and a list of package names is generated, corresponding codes please see later pictures.
2: memory IP type: the python script compares the list of transfer parameters (depth, bit width) and memory types, selects either dram or bram or memory of the emulgator type, and the memory model of dram and bram is quite different because the emulgator needs to go to memory built with two-dimensional arrays. The selection method can select the dram according to the size of the memory, select the ram with a default value below 1K and select the bram with a default value above 1K, select the emulgator according to the parameters transmitted by the python script, or automatically generate the simulation ram model required by the emulgator while generating the dram and the bram, and put the simulation ram model into a separate emulgator catalog
3: FPGA memory IP modification: the script selects a file of a memory IP inside the FPGA according to a memory type (single_port, true_dual_port, simple_dual), modifies parameters (write_rate, enable_rate, memory_type, wirte_width) inside an IP file inside the FPGA, calculates the number of BRAMs according to the memory size, and generates an IP list file after modifying the parameters;
4: FPGA memory IP generation: and the python calls an embedded tcl script, generates a memory IP of the FPGA according to the IP list file, then uniformly and automatically copies the generated dcp to a memory_dcp directory, and when the FPGA is verified later, the script can uniformly call the dcp file, so that the management is convenient.
5: memory encapsulation of FPGA: python processes the memory package name extracted by ASIC to generate a model with the same port information, again instantiates the memory ip generated by FPGA, processes the memory with the bits in batches, and processes the useless port to avoid unnecessary warning generated in prototype verification.
6: memory of the emulgator is generated: the python generates the memory needed by the Emulator, and finally automatically generates the memory of the Emulator for selection for standby;
7: self-test: python runs the corresponding test program to self-test memory, print "Pass" and print "Fail" with different functions.
The method and the device are used for processing the memroy with the bin of the ASIC, and are not as flexible as the memory with the bin of the ASIC due to the special process of the FPGA;
the embodiment can generate dcp, stub and xci files in the IP needed for the prototype verification of the FPGA, which is very important for the prototype synthesis, layout and wiring of the subsequent FPGA, and the prototype verification of the whole FPGA.
Example 3
The embodiment discloses a video chip project recently made by the inventor, the memory of the chip has hundreds, and the memory is manually replaced in the early stage by being verified by the FPGA and the emulgator, 50 memories are replaced, 8 hours are spent, and a lot of time is delayed for individuals. All written automation scripts are processed, and a makefile script is made. Directly with the make xci command:
1: gen_xci.py grabs the memory parameter model of the asic
2: xci_list.py to generate a list of parameters
3: run_ip_vivado.tcl generates a memory ip core of the FPGA
4: memory model with embedded meke emu call gen_emu. Py generating emulators
5: built-in make check, call check. Py, auto-check correct error to generate memory model
6: the make_dcp_stub is embedded and the copy generates a good dcp to the corresponding directory for continued use in later verification.
The command is used for working at 6 pm, all the generation and verification are completed at 9 am the next day, and the developer does not need to be kept at the computer side, so that other verification works can be completed. Greatly improves the working efficiency.
Example 4
The embodiment discloses a readable medium, which comprises a processor and a memory storing execution instructions, wherein when the processor executes the execution instructions stored in the memory, the processor hardware executes a method for automatically transferring an ASIC memory to an IP core of an FPGA.
As the current chip design is more and more complex, the task of prototype verification is more and more difficult, and after the memory ip of the FPGA is generated, the memory model required by the emulators can be generated. Meanwhile, the model is also suitable for the FPGA, so that the verification efficiency of the ASIC is improved.
The above embodiments are only for illustrating the technical solution of the present invention, and are not limiting; although the invention has been described in detail with reference to the foregoing embodiments, it will be understood by those of ordinary skill in the art that: the technical scheme described in the foregoing embodiments can be modified or some technical features thereof can be replaced by equivalents; such modifications and substitutions do not depart from the spirit and scope of the technical solutions of the embodiments of the present invention.

Claims (5)

1. A method for automatically transferring ASIC memory to an IP core of an FPGA, comprising the steps of:
s1, scanning a memory file used by an ASIC (application specific integrated circuit) by using a python script language, capturing port information, and automatically screening the type of the memory; s2, extracting names of memory packages, and generating a list of memory types and a list of package names; s3, comparing a list of transmission parameters and types of memory by using a python script, and selecting the type of memory to be used, wherein in S3, the type of the optional memory is a memory of a dram, a bram or an emulgator type, and the memory of the emulgator type is a memory built by a two-dimensional array, which is completely different from a memory model of the dram and the bram; s4, the python script selects a memory IP file in the FPGA according to the memory type, and modifies parameters in the IP file in the FPGA; s5, calculating the number of BRAMs according to the memory size, and generating an IP list file after modifying parameters; s6, calling an embedded tcl script by the python script, generating a memory IP of the FPGA according to the IP list file, and automatically copying to generate dcp to a memory_dcp directory; s7, processing the memory package name extracted by the ASIC through the python script to generate a model with the same port information; s8, instantiating the memory ip generated by the FPGA again, and carrying out batch processing on the memory with the bin; s9, generating a memory required by an Emulator through a python script; s10, the python script runs a corresponding test program, performs self-test on the memory, prints the 'Pass' with the same function and prints the 'Fail' with the different functions.
2. The method for automatically transferring ASIC memory to IP core of FPGA as in claim 1, wherein when selecting the type of memory, according to the size of memory, 1K or less default is selected for dram, and 1K or more is selected for bram.
3. The method for automatically transferring ASIC memory to IP core of FPGA according to claim 1, wherein the selection of the memory of the Emulator type is selected according to the parameters transmitted by the python script, or the simulation ram model required by the emulgator is automatically generated at the same time of generating dram and bram and is put in a separate emulgator catalog.
4. The method for automatically transferring ASIC memory to IP core of FPGA according to claim 1, wherein when the FPGA performs verification, script is unified to call dcp file from memory_dcp directory for verification.
5. A computer readable medium comprising a processor and a memory storing execution instructions that, when executed by the processor, cause the processor hardware to perform a method of automatically transferring ASIC memory to an IP core of an FPGA as claimed in any of claims 1 to 4.
CN202010504751.2A 2020-06-05 2020-06-05 Method for automatically converting ASIC memory into IP core of FPGA and readable medium Active CN111814416B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010504751.2A CN111814416B (en) 2020-06-05 2020-06-05 Method for automatically converting ASIC memory into IP core of FPGA and readable medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010504751.2A CN111814416B (en) 2020-06-05 2020-06-05 Method for automatically converting ASIC memory into IP core of FPGA and readable medium

Publications (2)

Publication Number Publication Date
CN111814416A CN111814416A (en) 2020-10-23
CN111814416B true CN111814416B (en) 2023-08-25

Family

ID=72844652

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010504751.2A Active CN111814416B (en) 2020-06-05 2020-06-05 Method for automatically converting ASIC memory into IP core of FPGA and readable medium

Country Status (1)

Country Link
CN (1) CN111814416B (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105631127A (en) * 2015-12-28 2016-06-01 中国电子科技集团公司第五十四研究所 Automatic replacing method for FPGA-to-ASIC memorizer
CN109165131A (en) * 2018-08-02 2019-01-08 北京遥感设备研究所 A kind of Prototype Verification Platform automation implementation method based on Perl

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9274729B2 (en) * 2014-06-25 2016-03-01 Sean Kessler Print function system and method for secure cloud data storage
US9891683B2 (en) * 2016-02-15 2018-02-13 Wipro Limited Methods and systems for memory initialization of an integrated circuit

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105631127A (en) * 2015-12-28 2016-06-01 中国电子科技集团公司第五十四研究所 Automatic replacing method for FPGA-to-ASIC memorizer
CN109165131A (en) * 2018-08-02 2019-01-08 北京遥感设备研究所 A kind of Prototype Verification Platform automation implementation method based on Perl

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ASIC原型验证中IP核移植技术的研究;杜斐;中国学位论文全文数据库;第1-56页 *

Also Published As

Publication number Publication date
CN111814416A (en) 2020-10-23

Similar Documents

Publication Publication Date Title
CN110647471B (en) Interface test case generation method, electronic device and storage medium
CN110244936B (en) Method and device for supporting VISIO flow chart to automatically import DCS algorithm configuration software
CN112416365B (en) File conversion method, device and storage medium
CN106874208A (en) The processing method of test script, device and electronic equipment
CN108197351B (en) Simulation verification method of integrated circuit controlled by single chip microcomputer
CN103984769A (en) Use-case data management and storage method
CN110532182A (en) A kind of automated testing method and device of virtual platform
CN117215910A (en) Interface test frame generation method, test method, electronic device and storage medium
CN117131834A (en) Chip design reorganization method, electronic equipment and medium
CN109165131B (en) Prototype verification platform automation realization method based on Perl
CN111814416B (en) Method for automatically converting ASIC memory into IP core of FPGA and readable medium
CN114416547A (en) Test case based test method
CN110851365B (en) Software development cloud platform based on big data
CN117743145A (en) Test script generation method and device based on coding template and processing equipment
CN116298340A (en) Product defect detection method and system based on task scheduling
CN111367512A (en) Method and device for creating Android library module dependency relationship in application development
CN113535581B (en) Test script generation method, device, equipment and computer readable storage medium
CN116466915A (en) MVP architecture-based iOS development framework construction method and device
CN106354966B (en) The method of the conversion of chip id E project file and rapid configuration artificial debugging environment
US20210390037A1 (en) Test case generation for software development using machine learning
CN115687338A (en) Method and device for adding identification information to projects in batch and terminal
CN111400190A (en) Automatic test flow generation method and device and computer readable storage medium
CN111835590A (en) Automatic interface test architecture and test method for cloud host product
CN114944998B (en) Internet of things system testing method and device based on simulator
WO2024174613A1 (en) Method for performing automated pipeline processing on schematic diagram, and scheduling server

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