In the design tools of Xilinx and Altera, some circuit libraries in the form of HDL are provided. However, the library units are relatively simple small-scale digital circuits, such as logic gates, 74 series devices, etc., which are not helpful for the design of medium, large-scale and complex logic sequential circuits. In addition, there are also some peripheral function modules and complex logic unit libraries, such as universal asynchronous transceivers, finite impulse response filters, etc., but they are not provided in the form of HDL, only suitable for some specific PLD devices, and the portability is relatively poor. Therefore, an auxiliary design software-HAD software, which manages and combines the HDL circuit unit IP library, is compiled in the actual work. Through HAD software, the designed HDL circuit library is managed, and the corresponding circuit units are selected from the library and combined according to the requirements of the system design specification, which greatly reduces the difficulty of system design and debugging and improves the stability of the system. and reliability, and is conducive to future upgrades of the system.
2. HAD aided design software functions
Aided Design (HAD) software mainly plays an auxiliary design role for the circuit of HDL language. The HAD software has two functions: managing the circuit unit IP library and generating the HDL program for the required peripheral circuits.
The management of the circuit unit library mainly includes two aspects: the management of the circuit unit interface and the management of the circuit unit HDL program. Therefore, the circuit unit library is composed of two libraries, one is the interface library of the circuit unit, and the other is the circuit unit HDL program library . The basic unit in the circuit unit interface library is the interface information of each circuit unit, and the basic unit in the circuit unit HDL program library is the HDL source program describing various circuit units. Similar to the standard chip, such as the 8255 chip, the interface information of the circuit unit describes the input and output of the standard chip and its function, which is equivalent to the pin and function description of the 8255; and the circuit unit HDL program describes the internal standard chip. The actual circuit and what kind of circuit structure is used to realize the corresponding function, which is equivalent to the circuit composition and structure inside the 8255 chip. For managing a library, the basic operations are mainly to add, delete and modify library units.
The ultimate purpose of HAD software is to generate HDL programs of peripheral circuits. That is, according to the requirements of the system design specification, select the appropriate circuit units from the IP library, and then combine them in an appropriate form to become a complete HDL program.
3. Circuit module HDL program generation
The main function of HAD software is the generation of circuit module HDL program. The process of generating the HDL program of the circuit module is mainly the process of instantiating some units in the circuit unit IP library several times.
Two conditions must be met for instantiation: first, a list of the module’s input and output ports, and second, a list of signals connected to those ports. According to the corresponding relationship between the two, the instantiation is completed, and then the instantiated circuit modules are combined into a HDL program file. The flow of generating the circuit module HDL program is shown in Figure 2:
Through the above analysis, first create two databases. One stores the source files of HDL programs of various modules, and the other stores the signal list of the input and output ports corresponding to each module.
The database that stores the source files of HDL programs is relatively simple, and its operations are limited to copying the contents of the files, so it will not be discussed further here.
The database structure for storing the port signal list is shown in Table 1.
In Table 1, the top row is the header of the database, and the field name represents the specific meaning of the content below each field. Among them, module is the name of the circuit unit module; detail is the name of the database storing the detailed information of the module port; PortN represents the name of a port in the module, and N is a natural number.
The records starting from the second row in Table 1 are different modules. For example, the module described in the second line record is a D flip-flop with an asynchronous clear terminal, the module name is DFF, and the detailed information of the module port is stored in the database file of DFF_D. There are a total of 4 ports, namely CLK, CLR, D and Q. The direction and width of each port are stored in the database file DFF_D.
Taking the DFF module as an example, the content of the corresponding database file DFF_D is shown in Table 2:
There are two types of fields in the database file DFF_D. The first half of the fields are in the form of “Pn_io”, which represent the flow direction of this port, whether it is input, output or bidirectional. The second half of the fields are in the form of “Pn_bit”, representing the width of the port signal.
Through the above two types of databases, you can completely grasp all the interface information of a module.
In the flowchart shown in Figure 1, the most important step is “instantiate and combine”. According to the definitions and descriptions of the above-mentioned databases, the flow of instantiation and combination is shown in Figure 3. The work of the two preparatory processes (hexagonal boxes) in the figure is the preparatory work before “instantiating the composition”. According to the requirements of the system design specification, the type and quantity of the required functional modules are determined, and then the designer determines the names of all modules and their input and output signals. These operations can be completed by means of keyboard input, thereby passing the information required in the instantiation and combination process to the HAD software.
Once the required modules are determined, each module can be instantiated one by one. First open the port signal list database to find the selected module. Next, open the database storing the detailed information of the module port, read the type and quantity of the port, and instantiate the module according to the specified connection signal name. Finally, combine the instantiated HDL programs into one file.
4. Design ideas for managing circuit unit library programs
The function of the software for managing the circuit unit library is to add, delete, and modify circuit units, and the process is shown in Figure 4.
In FIG. 4 , the management flow is mainly composed of three processing branches, namely adding, deleting and modifying circuit unit branches.
The added function of the circuit unit is to add the HDL program of the circuit module to the circuit unit library. A new circuit unit has been added to the library, which means one more function to choose from. With the increasing number of circuit units in the library, the proportion of hardware design that can be completed by HAD software will increase, which is beneficial to system design.
The flow of adding circuit unit processing branches is shown in FIG. 5 . Adding a circuit unit involves the operation of two databases, one is the port list database, and the other is the port detail database. First, perform a new operation on the port list database, add an empty record, and fill in the I/O name of the new module into the corresponding field in the empty record. Then, create a new port details database file. Its number of fields is twice the number of I/Os of the new module, half is used to specify the direction of the I/O, and the other half is used to specify the width of the port signal. Finally, fill in the direction and width of the I/O signal into the corresponding fields of the newly created database. After the processing branch ends, return to the entry of the management flow, and select the management content again.
Figure 6 shows the flow of deleting the processing branch of the circuit unit. The delete function of circuit cells is to remove circuit cells that are no longer needed from the library. When implemented by a program, it is only necessary to delete the record of the circuit unit in the database, and at the same time delete the corresponding detailed information database together.
The flow of modifying the processing branch of the circuit unit is shown in Figure 7. The modification function of this unit is to modify the information of the circuit unit in the library.
The HAD software adopts the database management control in the VB design software, and completes operations such as adding, deleting and modifying database units through the database management control. The software has the advantages of user-friendly interface, convenient operation and so on. It has achieved good results in the design of many embedded systems.
Responsible editor: gt