Python-based digital IP configuration management system
Through the Python -based digital IP configuration management system, standardized digital ASIC and FPGA development configuration files solve the problem of insufficient unity of traditional configuration files, reduce communication costs, and promote the standardization of IP development and unified management of process assets Essence
Patent Information
- Application Number
- CN202411596479.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-11-11
- Publication Date
- 2025-01-28
AI Technical Summary
In traditional digital ASIC and FPGA development, the lack of uniformity of configuration files leads to increased communication costs and inconvenient developer maintenance.
提供一种基于Python的数字IP配置管理系统,通过规范化寄存器表格配置内容,将其规范化为三种类型的Python数据集,并结合适配的Python脚本,自动生成RTL验证配置代码、FPGA配置代码、 ASIC configuration code and process description file.
It has greatly reduced the communication costs of developers at each development stage and multiple related parties, promoted the standardization of IP development, and conducive to the unified management and accumulation of organizational assets of the organization, and facilitated the maintenance of the later period.
Smart Images

Figure CN119376785A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of chip technology, and in particular to a python-based digital IP configuration management system. Background Art
[0002] With the rapid development of my country's chip industry, the division of labor and cooperation in the industry is becoming increasingly active. The IPization of general modules has become a booming demand. Manufacturers with advantages in certain fields may not only be limited to developing their own system products, but also launch their own general IP modules to seize the market in a more flexible manner.
[0003] There is a certain overlap between digital ASIC R&D and FPGA R&D in the development process. The same digital IP can often adapt to the needs of both FPGA and ASIC development; but there are some differences between the two, which requires appropriate modifications to the code or configuration files. The digital ASIC development process can completely cover the FPGA development process, so the development of digital IP often requires traversing the complete digital ASIC development process.
[0004] Generally, the document requirements for developers at each stage of digital ASIC development are as follows: Figure 1 As shown in the figure. RTL code, configuration, and sdc constraints are the basic input conditions for developers to participate in each development stage, and configuration files account for a large proportion of them. In the RTL verification stage, FPGA test stage, and ASIC test stage, developers may need to provide different targeted configuration files. Since different parties need to be connected at different stages, and the traditional register table interaction lacks uniformity and meticulousness, it increases the communication cost to a certain extent, especially for some configurations that require specific processes, which are not easy for developers to maintain.
[0005] Therefore, it is necessary to provide a python-based digital IP configuration management system to solve the above technical problems. Summary of the invention
[0006] The present invention provides a Python-based digital IP configuration management system, which solves the problems of increased communication costs and inconvenience for developers to perform maintenance.
[0007] In order to solve the above technical problems, the present invention provides a python-based digital IP configuration management system, comprising: Configuration tables, Python scripts, verification configuration code, FPGA configuration code, ASIC configuration code, and flow description files; With the python script as the main body of the system and the standardized configuration table as input, the RTL verification configuration code, the FPGA configuration code, the ASIC configuration code, and the user-oriented process description file can be automatically generated as needed.
[0008] Preferably, the processing requirements of the Python script are appropriate normative modifications to the traditional register table.
[0009] Preferably, the normative modification is described as follows: the traditional register configuration value is an unstandardized text description, which is standardized into three types: a single-mode configuration register data set, including a register name (Reg_Name), a register address (Reg_Addr), a register configuration value (Reg_Value), and a register description (Reg_Description), and the register configuration value (Reg_Value) of the single mode is unique; a multi-mode configuration register data set, which is different from the single-mode configuration register data set in that its register configuration value (Reg_Value) includes multiple configuration values based on different modes, and the corresponding register description (Reg_Description) also has multiple options. For this type, the register configuration value (Reg_Value) and the register description (Reg_Description) are standardized as a dictionary type of the python language; a multi-application scenario branch, multi-mode configuration register data set, which is different from the multi-mode configuration register data set in that its register configuration value (Reg_Value) includes multiple application scenario branches, such as ASIC, FPGA, SIM, etc., and each branch contains multiple modes. For this type, the register configuration value (Reg_Value) and the register description (Reg_Description) are standardized as a nested dictionary type of the python language.
[0010] Preferably, each of the register data sets supports setting a generation sequence list, corresponding to the position in the overall configuration process, and the script prints out the configuration code or process description file according to the generation sequence.
[0011] Preferably, the set of the three types of register data sets constitutes a standardized register configuration table, or other types of configuration source files.
[0012] Preferably, each standardized register configuration table or configuration source file shares a base address (Base_Addr), and the base address (Base_Addr) may be different based on application scenarios such as SIM / FPGA / ASIC. The python script supports base address (Base_Addr) selection and then automatically calculates the complete register address.
[0013] Preferably, a plurality of the standardized register configuration tables or configuration source files support further nesting, and when there are multiple configuration pages, the generation sequence supports global remapping.
[0014] Preferably, the operation flow of the python script is as follows: the number of configuration pages uses the default configuration sequence list or the global mapping configuration sequence list, and then the output file selection is performed. If the number of configuration pages is multiple pages, the generated sequence is globally mapped and the sequence list is updated. If the number of configuration pages is a single page, the default generated sequence list is used. The output file type is selected. If the process description text needs to be output, the process description text is printed out according to the sequence list index description text list and the Print process description text; if the print output is required, the application scenario is judged, and the base address corresponding to each configuration table is selected for RTL verification, FPGA test and sample test, as well as the sub-dictionary in the nested dictionary, and the configuration dictionary is automatically updated accordingly; then the Print register configuration code is printed out according to the automatic update configuration dict and the sequence list index configuration dict.
[0015] Preferably, a computer is required when the python script is running, and the computer comprises a chassis, a groove is provided on the front side of the chassis, a plurality of rotating seats are fixedly installed on the inner side surface of the groove, a rotating block is rotatably connected to the inner side surface of the rotating seat, a USB connector is fixedly installed on one side of the rotating block, a transparent cover is rotatably connected to the front side of the chassis, a magnetic sheet is fixedly installed on the back side of the transparent cover, and the magnetic sheet is magnetically attracted to the front side of the chassis.
[0016] Preferably, a toggle block is fixedly mounted on the front of the transparent cover plate, and rubber pads are fixedly mounted on all four sides of the bottom of the chassis.
[0017] Compared with the related art, the digital IP configuration management system based on Python provided by the present invention has the following beneficial effects: The present invention provides a python-based digital IP configuration management system, which can automatically generate RTL verification configuration code, FPGA configuration code, ASIC configuration code, and user-oriented process description files as needed by normalizing the traditional register table configuration content into three different python data sets and combining with adapted python scripts, thereby greatly reducing the communication cost between developers and multiple stakeholders at each development stage, being beneficial to the standardization of IP development, and being beneficial to the unified management and accumulation of organizational process assets, and also being convenient for the later maintenance of staff. BRIEF DESCRIPTION OF THE DRAWINGS
[0018] Figure 1A flow chart of the document requirements for developers at each stage of digital ASIC development; Figure 2 A flowchart of a first embodiment of a Python-based digital IP configuration management system provided by the present invention; Figure 3 It is a schematic diagram of the configuration register data set for a single mode; Figure 4 It is a schematic diagram of a multi-mode configuration register data set; Figure 5 It is a schematic diagram of a configuration register data set with multiple scene branches and multiple modes; Figure 6 Figure 2 The detailed flowchart of the python script shown; Figure 7 A schematic diagram of the structure of a second embodiment of a Python-based digital IP configuration management system provided by the present invention; Figure 8 for Figure 7 The front structural diagram of the chassis shown; Fig. 9 for Figure 7 Schematic diagram of the back structure of the transparent cover shown.
[0019] Numbers in the figure: 1, chassis, 11, rubber pad, 2, transparent cover, 21, toggle block, 22, magnetic sheet, 3, groove, 31, rotating seat, 32, rotating block, 33, USB connector. DETAILED DESCRIPTION
[0020] The present invention will be further described below in conjunction with the accompanying drawings and implementation modes.
[0021] First embodiment:
[0022] Please refer to Figure 2 , Figure 3 , Figure 4 , Figure 5 and Figure 6 ,in, Figure 2 A flowchart of a first embodiment of a Python-based digital IP configuration management system provided by the present invention; Figure 3 It is a schematic diagram of the configuration register data set for a single mode; Figure 4 It is a schematic diagram of a multi-mode configuration register data set; Figure 5 It is a schematic diagram of a configuration register data set with multiple scene branches and multiple modes; Figure 6 Figure 2The detailed flowchart of the python script shown in the figure. A digital IP configuration management system based on python includes: a configuration table, a Python script, a verification configuration code, an FPGA configuration code, an ASIC configuration code and a process description file; With the python script as the main body of the system and the standardized configuration table as input, the RTL verification configuration code, the FPGA configuration code, the ASIC configuration code, and the user-oriented process description file can be automatically generated as needed.
[0023] The processing requirements of the Python script are appropriate normative modifications to the traditional register table.
[0024] The normative modification is described as follows: the traditional register configuration value is an unstandardized text description, which is standardized into three types: a single-mode configuration register data set, including a register name (Reg_Name), a register address (Reg_Addr), a register configuration value (Reg_Value), and a register description (Reg_Description). The register configuration value (Reg_Value) of the single mode is unique; a multi-mode configuration register data set, which is different from a single-mode configuration register data set in that its register configuration value (Reg_Value) includes multiple configuration values based on different modes, and the corresponding register description (Reg_Description) also has multiple options. For this type, the register configuration value (Reg_Value) and the register description (Reg_Description) are standardized as a dictionary type in the python language; a multi-application scenario branch and multi-mode configuration register data set, which is different from a multi-mode configuration register data set in that its register configuration value (Reg_Value) includes multiple application scenario branches, such as ASIC, FPGA, SIM, etc., and each branch contains multiple modes. For this type, the register configuration value (Reg_Value) and the register description (Reg_Description) are standardized as a nested dictionary type in the python language.
[0025] Each of the register data sets supports setting a generation sequence list, corresponding to the position in the overall configuration process, and the script prints out the configuration code or process description file according to the generation sequence.
[0026] The collection of the three types of register data sets constitutes a standardized register configuration table, or other types of configuration source files.
[0027] Each standardized register configuration table or configuration source file shares a base address (Base_Addr). The base address (Base_Addr) may be different based on application scenarios such as SIM / FPGA / ASIC. The python script supports base address (Base_Addr) selection and then automatically calculates the complete register address.
[0028] A plurality of the standardized register configuration tables or configuration source files support further nesting, and when there are multiple configuration pages, the generation sequence supports global remapping.
[0029] The operation flow of the python script is as follows: the number of configuration pages uses the default configuration sequence list or the global mapping configuration sequence list, and then the output file selection is performed. If the number of configuration pages is multiple pages, the generated sequence is globally mapped and the sequence list is updated. If the number of configuration pages is a single page, the default generated sequence list is used. The output file type is selected. If the process description text needs to be output, the process description text is printed out according to the sequence list index description text list and the Print process description text; if the print output is required, the application scenario is judged, and the base address corresponding to each configuration table is selected for RTL verification, FPGA test and sample test, as well as the sub-dictionary in the nested dictionary, and the configuration dictionary is automatically updated accordingly; then the Print register configuration code is printed out according to the automatic update configuration dict and the sequence list index configuration dict.
[0030] The working principle of a Python-based digital IP configuration management system provided by the present invention is as follows: This system uses python script as the main body of the system and standardized configuration tables or configuration source files as input. It can automatically generate RTL verification configuration code, FPGA configuration code, ASIC configuration code, and user-oriented process description files as needed; make appropriate normative modifications to the traditional register table to meet the processing requirements of the python script, and standardize the traditional register configuration values into three types. The collection of these three types of data sets constitutes a basic configuration register table or other format configuration source file. Each standardized register configuration table or configuration source file shares a base address (Base_Addr). The python script supports automatic selection of the base address (Base_Addr) based on different application scenarios such as SIM / FPGA / ASIC, and automatically calculates the complete register address; each register data set supports setting the generation sequence list, corresponding to the position in the overall configuration process, and the script prints out the configuration code or process description file according to the generation sequence. When there are multiple register configuration tables or configuration source files, the generation sequence list supports global remapping; the python script of this system selectively prints out the RTL verification configuration code, FPGA configuration code, ASIC configuration code, or user-oriented process description files according to the generation sequence list.
[0031] Compared with the related art, the digital IP configuration management system based on Python provided by the present invention has the following beneficial effects: By normalizing the traditional register table configuration content into three different python data sets and combining it with an adapted python script, RTL verification configuration code, FPGA configuration code, ASIC configuration code, and user-oriented process description files can be automatically generated as needed, greatly reducing the communication costs between developers and multiple stakeholders at each development stage, which is conducive to the standardization of IP development, the unified management and accumulation of organizational process assets, and the subsequent maintenance by staff.
[0032] Second embodiment:
[0033] Please refer to Figure 7 , Figure 8 , Fig. 9 Based on the python-based digital IP configuration management system provided by the first embodiment of the present application, the second embodiment of the present application proposes another python-based digital IP configuration management system. The second embodiment is only a preferred method of the first embodiment, and the implementation of the second embodiment will not affect the independent implementation of the first embodiment.
[0034] Specifically, the second embodiment of the present application provides a digital IP configuration management system based on Python. The difference is that, in a digital IP configuration management system based on Python, a computer is required when the Python script is running, and the computer includes a chassis 1, a groove 3 is provided on the front of the chassis 1, and a plurality of rotating seats 31 are fixedly installed on the inner side of the groove 3, and a rotating block 32 is rotatably connected to the inner side of the rotating seat 31, and a USB connector 33 is fixedly installed on one side of the rotating block 32, and a transparent cover plate 2 is rotatably connected to the front of the chassis 1, and a magnetic sheet 22 is fixedly installed on the back of the transparent cover plate 2, and the magnetic sheet 22 is magnetically attracted to the front of the chassis 1.
[0035] A toggle block 21 is fixedly mounted on the front of the transparent cover plate 2 , and rubber pads 11 are fixedly mounted on all four sides of the bottom of the chassis 1 .
[0036] The working principle of a Python-based digital IP configuration management system provided by the present invention is as follows: When in use, the user can rotate the transparent cover 2 to cancel the magnetic attraction between the magnetic sheet 22 and the chassis 1, and then move the transparent cover 2 away from the front of the groove 3. Then, the user rotates the rotating block 32, so that the rotating block 32 drives the USB connector 33 to rotate, so that the USB connector 33 is rotated to a state perpendicular to the chassis 1. Then, the user inserts the USB on the USB connector 33, and then rotates the rotating block 32, so that the USB connector 33 and the USB are rotated to a state horizontal with the chassis 1, and then covers the transparent cover 2.
[0037] Compared with the related art, the digital IP configuration management system based on Python provided by the present invention has the following beneficial effects: The transparent cover plate 2 is magnetically attracted to the chassis 1 by the magnetic sheet 22, so that the USB connector 33 arranged on the inner side of the groove 3 can be protected to prevent dust from accumulating on the USB connector 33 when not in use, thereby affecting the normal use of the USB connector 33. The USB connector 33 is driven to rotate by the rotating block 32, so as to prevent the USB from being perpendicular to the chassis 1 and falling off from the USB connector 33 due to collision by staff, thereby affecting the normal use of the USB.
[0038] The above descriptions are merely embodiments of the present invention and are not intended to limit the patent scope of the present invention. Any equivalent structure or equivalent process transformation made using the contents of the present invention specification and drawings, or directly or indirectly applied in other related technical fields, are also included in the patent protection scope of the present invention.
Claims
1. A digital IP configuration management system based on Python, characterized in that: include: Configuration tables, Python scripts, verification configuration code, FPGA configuration code, ASIC configuration code, and flow description files; With the python script as the main body of the system and the standardized configuration table as input, the RTL verification configuration code, the FPGA configuration code, the ASIC configuration code, and the user-oriented process description file can be automatically generated as needed.
2. According to claim 1, a python-based digital IP configuration management system is characterized in that: The processing requirements of the Python script are appropriate normative modifications to the traditional register table.
3. According to a python-based digital IP configuration management system according to claim 1, it is characterized in that: The normative modification is described as follows: the traditional register configuration value is an unstandardized text description, which is standardized into three types: a single-mode configuration register data set, including a register name (Reg_Name), a register address (Reg_Addr), a register configuration value (Reg_Value), and a register description (Reg_Description). The register configuration value (Reg_Value) of the single mode is unique; a multi-mode configuration register data set, which is different from a single-mode configuration register data set in that its register configuration value (Reg_Value) includes multiple configuration values based on different modes, and the corresponding register description (Reg_Description) also has multiple options. For this type, the register configuration value (Reg_Value) and the register description (Reg_Description) are standardized as a dictionary type in the python language; a multi-application scenario branch and multi-mode configuration register data set, which is different from a multi-mode configuration register data set in that its register configuration value (Reg_Value) includes multiple application scenario branches, such as ASIC, FPGA, SIM, etc., and each branch contains multiple modes. For this type, the register configuration value (Reg_Value) and the register description (Reg_Description) are standardized as a nested dictionary type in the python language.
4. According to claim 3, a python-based digital IP configuration management system is characterized in that: Each of the register data sets supports setting a generation sequence list, corresponding to the position in the overall configuration process, and the script prints out the configuration code or process description file according to the generation sequence.
5. According to the python-based digital IP configuration management system of claim 3, it is characterized in that: The collection of the three types of register data sets constitutes a standardized register configuration table, or other types of configuration source files.
6. A Python-based digital IP configuration management system according to claim 5, characterized in that: Each standardized register configuration table or configuration source file shares a base address (Base_Addr). The base address (Base_Addr) may be different based on application scenarios such as SIM / FPGA / ASIC. The python script supports base address (Base_Addr) selection and then automatically calculates the complete register address.
7. A Python-based digital IP configuration management system according to claim 6, characterized in that: A plurality of the standardized register configuration tables or configuration source files support further nesting, and when there are multiple configuration pages, the generation sequence supports global remapping.
8. According to claim 3, a python-based digital IP configuration management system is characterized in that: The operation flow of the python script is as follows: the number of configuration pages uses the default configuration sequence list or the global mapping configuration sequence list, and then the output file selection is performed. If the number of configuration pages is multiple pages, the generated sequence is globally mapped and the sequence list is updated. If the number of configuration pages is a single page, the default generated sequence list is used. The output file type is selected. If the process description text needs to be output, the process description text is printed out according to the sequence list index description text list and the Print process description text; if the print output is required, the application scenario is judged, and the base address corresponding to each configuration table is selected for RTL verification, FPGA test and sample test, as well as the sub-dictionary in the nested dictionary, and the configuration dictionary is automatically updated accordingly; then the Print register configuration code is printed out according to the automatic update configuration dict and the sequence list index configuration dict.
9. A Python-based digital IP configuration management system according to claim 8, characterized in that: A computer is required when the python script is running. The computer includes a chassis, a groove is provided on the front side of the chassis, a plurality of rotating seats are fixedly installed on the inner side of the groove, a rotating block is rotatably connected to the inner side of the rotating seat, a USB connector is fixedly installed on one side of the rotating block, a transparent cover is rotatably connected to the front side of the chassis, a magnetic sheet is fixedly installed on the back side of the transparent cover, and the magnetic sheet is magnetically attracted to the front side of the chassis.
10. A Python-based digital IP configuration management system according to claim 9, characterized in that: A toggle block is fixedly installed on the front of the transparent cover plate, and rubber pads are fixedly installed around the bottom of the chassis.