WO2003088095A1 - Integrated circuit development method, program storage medium containing integrated circuit development method, system for concurrent development of asic and programmable logic device, development program, and development method - Google Patents
Integrated circuit development method, program storage medium containing integrated circuit development method, system for concurrent development of asic and programmable logic device, development program, and development method Download PDFInfo
- Publication number
- WO2003088095A1 WO2003088095A1 PCT/JP2003/004787 JP0304787W WO03088095A1 WO 2003088095 A1 WO2003088095 A1 WO 2003088095A1 JP 0304787 W JP0304787 W JP 0304787W WO 03088095 A1 WO03088095 A1 WO 03088095A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- asic
- logic synthesis
- core
- data
- design
- 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.)
- Ceased
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
-
- H—ELECTRICITY
- H10—SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
- H10D—INORGANIC ELECTRIC SEMICONDUCTOR DEVICES
- H10D84/00—Integrated devices formed in or on semiconductor substrates that comprise only semiconducting layers, e.g. on Si wafers or on GaAs-on-Si wafers
- H10D84/01—Manufacture or treatment
Definitions
- the present invention relates to a method for developing an integrated circuit, a program storage medium storing the method for developing an integrated circuit, a control device for a logic synthesis tool, and an ASIC and a programmable logic device used by a user from a computer connected to a network. It relates to concurrent development systems, development programs and development methods.
- a method for configuring a programmable logic device in the development of integrated circuits uses only the connection information of the port specifications of the block, which is the result of studying the circuit architecture and is a part of the logic design document.
- Integrated data development method using integrated data and seamless concurrent development of ASICs and programmable logic devices, while ensuring both design quality and shortening the development period.
- ASICs and professionals that can reduce such human resources and costs Gramabu ⁇ / ⁇ Concurrent development system, development program and development method for logic devices. Background art
- FIG. 11 is a flowchart showing the procedure for designing an integrated circuit.
- ASIC ASIC Get the specifications of (IC) (gl).
- IC circuit
- g2 circuit architecture
- g3 circuit architecture study
- This circuit design is performed while performing logic verification (g4).
- the part according to the present invention is the part relating to the logic synthesis in step g5.
- a macro refers to a macro that can be used without modification, such as RAM and ROM including IP.
- An initial estimate of the scale of the circuit or IP for which the configuration was studied is calculated.At this time, if the number of gates is known in advance, calculation is performed using the number of gates. It calculates the number of mouthpieces and estimates the realization scale.
- a plurality of functions are grouped into one block based on the estimated scale and the number of input / output signals (hereinafter referred to as ports) of each function. This grouping is performed for all functions.
- a circuit design is performed for a programmable logic device by means of HDL (hardware description language) or the like based on the above-described functions and the estimated scale, and the on-board function evaluation is performed. After the evaluation was completed, re-design and re-verification were performed when converting to ASIC.
- HDL hardware description language
- the program-the AS from the point of designing for the logic device (for example, FPGA) It is rarely designed in consideration of Ic, and I / O buffers, device test circuits, macros such as memory, etc. are programmable.
- '' Programmable for ASICs due to differences between logic devices and ASICs '' Redesign occurs based on device design data, and double management of design data by redesigning, prolonging the development period and increasing development costs by redesigning and re-verifying functions are emerging.
- ASICs have a long development period but low cost
- programmable logic devices (FPGAs) have a short development period but high costs.
- the present invention has been made in view of such a problem, and has been developed in consideration of a circuit architecture applied to logic design in the development of a large-scale ASIC and concurrent (parallel) development of logic synthesis and layout.
- a method of generating an inter-block netlist as connection information between ports from port information of a block obtained by functionally dividing a block and port information of a chip (see Japanese Patent Application Laid-Open No. 2000-90042).
- the logic synthesis tool is controlled so as to generate an arbitrary size and number of blocks and interblock nets constituting blocks of an integrated circuit developed by the integrated circuit development method by applying the above method from the interblock netlist.
- ASICs with more than 10M gates can be developed due to the miniaturization of semiconductors.
- specification design, logic design and floor planning, logic synthesis It has become difficult to secure design quality as the implementation of layout design and timing verification has become longer and longer.
- remake of ASIC development not only prolongs the development period of electronic equipment but also increases costs and leads to loss of opportunity for market introduction.
- TAT Transaction Around Time
- Logic devices are becoming more popular, but programmable logic devices are costly and difficult to miniaturize.
- ASICs are often used at the time of birth.
- the present invention enables seamless and concurrent development of ASICs and programmable logic devices, while ensuring both design quality and shortening the development period, and reducing human resources and costs involved in development.
- FIG. 1 is a flowchart showing the principle of this effort method.
- the invention described in Claim 1 (1) is characterized in that the ASIC core (logical core) power, which is the connection information of the blocks and the port connection information, is arbitrarily selected by means of selecting and grouping any blocks having connection relations.
- a temporary chip design is created, terminals are generated in this design (step 2), the same design as in step 2 is generated as cells inside the created design (step 3), and the same name between the design and the cell is created.
- Step 4 Connect the ports (Step 4), insert device-technology dependent I / O buffers for the nets between the connected ports (Step 5), and Replace the cell with the core (logical core) created in Step 1 and expand the design hierarchy, which is the top hierarchy, to generate a netlist (Step 6).
- an entity that is a block port specification is created from a port name, a range, and an input / output definition and output to a file (writing to a file).
- Check that there is no mistake in the output port name of the output source instance specified for the input port of a certain block by means of creating an output signal file for the ports defined for input and output, and specify the device in the output source instance name. If there is a key word definition such as I / O to connect to the package terminal, the name in the output port name of the output source instance is used as the device package terminal name.
- Vector means for judging whether the terminal is an input or output from the input / output definition, and means for judging whether the terminal is an input or output, and judging from the type definition whether the terminal is bidirectional.
- a sense is a circuit unit.
- the processing including checking all instances, the above-mentioned core (logical core) entities and inter-instance nets are read, and a core (logical core) is generated and output to a file.
- the HDL hardware hardware
- This is a computer-readable recording medium that stores a program that causes a computer to execute a method of outputting a file of a description language (hereinafter referred to as a core (logical core)).
- the program storage medium storing a program for causing a computer to execute the method of generating a core (logical core) according to the first aspect of the present invention, a block serving as an input of an RTL design in integrated circuit development
- the quality of the port specifications can be ensured in advance, and in the development of large-scale integrated circuits with many functional blocks and large design resources, the connection between the blocks can be confirmed in advance, so It is possible to guarantee that the chip is assembled.
- the invention described in claim 2 is an invention in which concurrent development of an ASIC and a programmable logic device is performed, and an arbitrary connection relationship is established from an ASIC core (logical core) comprising block connection information and port connection information.
- a core logical core
- a core consisting of port and port connection information of an arbitrary scale and number of blocks is generated by means of selecting and grouping the blocks (step 1), and logic synthesis is performed from the terminal information of the chip.
- a temporary chip design is created with the tool (Step 2), and a terminal is generated in this design with the name in the terminal information of the chip (Step 3).
- T JP03 / 04787 T JP03 / 04787
- the same design as above is generated as a cell inside the cell (step 4), and the port created with the same name between the design and the cell created in step 2 is connected (step 5).
- An I / O buffer depending on the device technology is inserted from the information (step 6), the core (logical core) generated in step 1 is replaced with the cell (step 7), and the top hierarchy of this core (logical core) is obtained.
- the method is characterized in that the created design hierarchy is expanded to generate a netlist of programmable logic device chips (step 8).
- a netlist generation method is controlled by a control device equipped with a program storage medium storing a program for causing a computer to execute the method, and any blocks having a connection relation are grouped,
- An integrated circuit characterized by cutting out as a core of a programmable logic device (logic core), inserting an I / O buffer depending on a programmable logic device, and generating a netlist of chips of the programmable logic device. It is a development method.
- the ASIC core (logical core) is cut out as a programmer's logic device core (logical core) while retaining interblock connections,
- verification of a programmable logic device using this core (logic core) is performed, it is possible to avoid duplication of verification with at least the same configuration in an ASIC. Therefore, concurrent development of ASIC and programmable logic devices can be efficiently promoted.
- a temporary core (logical core) is generated from the terminal information of the chip, and is replaced by a core (logical core) generated from the block.
- the port information of the chip and the terminal information of the chip can be cross-checked, ensuring the quality of both the block port specification and the chip terminal specification.
- the invention described in claim 3 is a method for selecting an arbitrary block having a connection relationship from an ASIC core (logical core) consisting of block port and port connection information and forming an arbitrary block by means of a group. It is characterized by generating a netlist consisting of block size and number of block ports and port connection information.
- the invention according to claim 4 is a method of selecting and grouping arbitrary blocks having a connection relationship from an ASIC core (logical core) comprising block port and port connection information, thereby providing blocks of an arbitrary size and number.
- a core consisting of port-to-port connection information is generated (step 1), and a tentative chip design is created from the terminal information of the chip using a logic synthesis tool, and the terminal information of the chip is written in this design.
- a terminal is generated with the name in the report (step 2), the same design as above is generated as a cell therein (step 3), and a port having the same name is connected between the design and the cell (step 4).
- Step 5 an I / O buffer depending on the device and technology is inserted from the terminal information of the chip (step 5), and the core generated in step 1 is (Logical core) is replaced with the cell (Step 6), and a chip net list is generated by expanding the design hierarchy created in Step 2, which is the top hierarchy of this core (Logical core) (Step 7). It is characterized by.
- the invention described in Claim 5 is a method for generating a netlist including ports of arbitrary size and number of blocks and connection information of the ports, and the port name of the top hierarchy is converted from the net name to the connection destination block.
- the feature is to modify the port name so that it matches the port name of the block, and to generate a netlist consisting of block ports and port connection information.
- the invention described in claim 5 relates to an ASIC and a programmable logic device. 3 04787
- ASIC cores When any arbitrary blocks that have a connection relationship are grouped together and cut out as programmable logic device cores (logical cores) using the functions of a logic synthesis tool, the cores that are usually cut out
- the port name at the top of (logical core) is the net name connected to the port.
- the storage medium storing the program for causing the logic synthesis tool to execute the method for generating the core of the programmable logic device (logical core) according to claim 5, it is possible to determine the function of the port. This can prevent a decrease in debugging efficiency such as logic verification when a net name that is difficult to use becomes a port name.
- a core is generated from the data of the design document, and the core (logical core) is newly created for the programmable logic device while retaining the hierarchical structure and connection information.
- (Logical core) can be used to share the circuit architecture.
- the circuit data can be loaded, and the circuit data independent of the device technology in the instance whose function has been verified and the nets between the instances can be stored in ASICs. In this case, re-verification can be avoided, and re-design due to the difference between ASIC and programmable and magic devices can be avoided.
- an arbitrary block constituting the ASIC is selected from an ASIC core (logical core) consisting of connection information between the ports of the block and the ports, and the blocks are configured by the selected block.
- a logic synthesis tool control device that controls the generation of a programmable logic device core (logic core) consisting of block port-to-port connection information, consisting of blocks selected by the designer who generated the logic synthesis tool
- the logic synthesis tool assigns a port name to the port of the programmable logic device core (logic core) From the net connected to the port to the name of the port of the block that constitutes the connected programmable logic device, and from the terminal information of the chip, Means for generating a design of a temporary chip having a port specified by the terminal information with a logic synthesis tool, means for generating the design of the temporary chip as cells inside the design, and design of the temporary chip.
- the present invention also relates to a method for concurrently developing an ASIC and a programmable logic device, wherein functional blocks constituting the ASIC are grouped based on information on connection between ports, and ports and ports of the grouped functional blocks are provided.
- List generation step of generating a netlist consisting of interconnect information as a programmer's logic device core (logic core), and logic synthesis data for ASIC and programmable logic data from the circuit data of the functional blocks constituting the ASIC.
- a logic synthesis step of creating logic synthesis data for a device; and a programmable memory for the grouped functional blocks.
- the logic synthesis data for a magic device is inserted into the netlist generated in the netlist generation step and programmed.
- Layers for generating and concurrently generating evaluation ROM data And a difference reflection step of reflecting a change in circuit data based on an actual device evaluation result using the ROM data generated in the ROM data generation step in the layout creation and timing verification of the ASIC. It is characterized by including.
- the present invention is a concurrent development program for an ASIC and a programmable logic device, wherein functional blocks constituting the ASIC are grouped based on connection information between ports, and the ports of the grouped functional blocks are connected to each other.
- a netlist generation procedure for generating a netlist consisting of connection information as a core of a programmable logic device (logical core), and logic synthesis data for ASIC and programmable logic device from circuit data of a function block constituting the ASIC.
- a logic synthesis procedure for creating logic synthesis data, and a programmable logic logic data for the grouped function blocks are inserted into the netlist generated by the netlist generation procedure.
- Data generation procedure for generating actual machine evaluation ROM data that records the circuit of the ASIC, and ASIC layout creation and timing verification using the ASIC logic synthesis data created by the logic synthesis procedure.
- a rate creation procedure for performing concurrently with the generation of the ROM data for the actual device evaluation by the data generation procedure, and a change of the circuit data based on the actual device evaluation result using the ROM data generated by the ROM data generation procedure.
- the difference reflection procedure to be reflected in the layout creation and the timing verification, and the step of causing the computer to execute the steps are specially provided.
- the function blocks constituting the ASIC are grouped based on the inter-port connection information, and the netlist including the grouped function block ports and the inter-port connection information is programmed / re-logic device.
- Logic synthesis data for ASICs and logic synthesis data for programmable logic devices are created from the circuit data of the function blocks that make up the ASIC.
- the logic synthesis data is inserted into the generated netlist to create a programmable logic
- Generates RM data for actual device evaluation that records the circuit of the ASIC device, and performs ASIC layout creation and timing verification using the created ASIC logic synthesis data concurrently with the generation of the RM data for actual device evaluation.
- Circuit data changes based on the actual machine evaluation results using the generated R ⁇ M data are reflected in ASIC layout creation and timing verification, so efficient concurrent development of ASICs and programmable devices ASIC development time can be shortened.
- the present invention is a concurrent development system of an ASIC and a programmer-free logic device, wherein functional blocks constituting the ASIC are grouped based on connection information between ports, and ports and ports of the grouped functional blocks are provided.
- Netlist generating means for generating a netlist consisting of indirect information as a core (logic core) of a programmable logic device; and logic synthesis data for ASIC and programmable logic from circuit data of function blocks constituting the ASIC.
- Logic synthesis means for creating logic synthesis data for the device; programmable logic data for the grouped function blocks; programmable by inserting the logic synthesis data for the logic device into the netlist generated by the netlist generation means.
- 'Logic device Data generating means for generating actual machine evaluation ROM data recording the circuit of the ASIC, and ASIC layout creation and timing verification using the ASIC logic synthesis data created by the logic synthesis means.
- a layout generating means for concurrently generating the real machine evaluation ROM data by the data generating means and the layout generating means.
- the function blocks constituting the ASIC are grouped based on the inter-port connection information, and a netlist including the grouped function block ports and the inter-port connection information is programmed by a programmable logic device core (logical core).
- a netlist including the grouped function block ports and the inter-port connection information is programmed by a programmable logic device core (logical core).
- Logic synthesis data for ASIC and programmable 'Logic synthesis data for logic devices are created from the circuit data of the function blocks constituting the ASIC, and the logic synthesis data for the grouped function blocks are programmable' for logic devices.
- Logic synthesis data is inserted into the generated netlist to generate ROM data for actual equipment evaluation that records the programmable logic device circuits, and ASIC layout creation and timing verification are performed using the created ASIC logic synthesis data. Since the machine evaluation ROM data is generated and performed concurrently, efficient concurrent development of ASICs and programmable logic devices becomes possible, and the development period of ASICs can be shortened.
- the present invention also provides an ASIC logic synthesis means for executing logic synthesis of an ASIC in response to a user request in a concurrent development system of an ASIC and a programmable logic device used by a user from a computer connected to a network.
- ASIC logic synthesis result judging means for judging whether the logic synthesis result of the ASIC created by the ASIC logic synthesis means satisfies the speed performance requested by the user, and the ASIC logic synthesis result judging means
- Programmable logic device logic synthesis means for executing logic synthesis of a programmable logic device based on the determination result by the ASIC logic synthesis means executed by the ASIC logic synthesis means and programmable logic device logic synthesis means by the programmable logic device logic synthesis means '' Logic device logic Logic synthesis result display means for displaying the execution result of the synthesis on the computer; ASIC logic synthesis execution start and execution result by the ASIC logic synthesis means; and programmable logic device logic logic by the programmable logic device logic synthesis means.
- the present invention provides a concurrent development method of an ASIC and a programmable logic device used by a user from a computer connected to a network, wherein the ASIC logic synthesis step executes logic synthesis of the ASIC in response to the user's request.
- An ASIC logic synthesis result determining step of determining whether the logic synthesis result of the ASIC created in the ASIC logic synthesis step satisfies the speed performance requested by the user; and Based on the judgment result, Programmable logic device logic synthesis process that executes logic synthesis of a logic device logic device, ASIC logic synthesis execution result by the ASIC logic synthesis process, and programmable logic device logic synthesis process by the programmable logic device logic synthesis process.
- ASIC logic synthesis results Judge whether or not the speed meets the speed performance to be performed.Based on the judgment result, execute logic synthesis of the programmer's logic device, and execute the execution result of the ASIC logic synthesis and the execution result of the programmable logic device logic synthesis on the computer.
- the start of execution of ASIC logic synthesis and the execution result and the programmable logic device logic synthesis execution start and execution result are notified to the user by e-mail. There is no need to set up a user, the logic synthesis can be executed at any time, the quality of the synthesis can be kept uniform as if by a dedicated person, and the start of the logic synthesis and notification of the result can be received by e-mail. This eliminates the need to regularly check the progress of logic synthesis on a computer.
- the present invention provides a netlist generating means for generating a netlist including inter-port connection information of a plurality of function blocks specified by the user from a function block configuring the ASIC in response to the user's request, ROM data generating means for inserting ROM data of a logic-synthesized target functional block into a netlist generated by the netlist generating means to generate ROM data recording a circuit of a programmable logic device; ROM data generation result display means for displaying the generation result of the R ⁇ M data generated by the ROM data generation means on the computer 4787
- ROM data generation result notifying means for notifying the user of the generation result of the ROM data generated by the ROM data generating means to the user by e-mail.
- a netlist including connection information between ports of a plurality of function blocks specified by a user is generated from a function block configuring an ASIC in response to a user request, and logical synthesis is performed on the generated netlist.
- the generated results of the generated ROM data are displayed on a computer and the user is notified by e-mail. This eliminates the need for a dedicated development environment for programmable logic devices, reducing the load, time, and cost of creating ROM data that records the circuit of a programmable logic device. .
- the present invention provides a method of using a temporary flip-flop or the like for the input terminal and the output terminal of the function block when the design of the function block configuring the ASIC specified by the user is not completed and there is no circuit data. And a temporary netlist generating means for generating a netlist incorporating the existing circuit.
- a temporary flip-flop or the like is used for the input terminal and the output terminal of the function block. Since we decided to generate a netlist with the circuit inserted, we will proceed with prototyping verification of the programmable logic device even if the design of the functional blocks that are not to be verified has not been completed in the verification using prototype pink '. And the efficiency of verification can be improved.
- the present invention provides a monitoring means for monitoring the scale of change between the latest circuit data held by the user and the circuit data taken by the implementation designer in the implementation design, and a monitoring result and a rate design by the monitoring means.
- a monitoring means for monitoring the scale of change between the latest circuit data held by the user and the circuit data taken by the implementation designer in the implementation design, and a monitoring result and a rate design by the monitoring means.
- Change timing notifying means for notifying the user and the ASIC implementation designer of the timing of the reflection by e-mail, and in response to the change timing notifying means, the user sets the date of the reflection.
- a reflection suspension requesting means for requesting suspension by changing.
- the magnitude of a change between the latest circuit data held by the user and the circuit data taken by the implementation designer in the implementation design is monitored, and the plan designed based on the monitoring result and the time required for the layout design is described.
- the user and the ASIC implementation designer are notified by e-mail that it is time to reflect the change to the ASIC implementation design, and the user changes the reflection date in response to this notification and stops. Changes can be efficiently reflected in the ASIC layout design, and the user can determine when changes can be made by setting the timing to reflect the changes. Schedule can be reviewed at an early stage.
- the present invention provides a first design in which terminal information of an FPGA including all or a part of functional blocks of a plurality of functional blocks is described, and a first design described as a lower layer of the first design. From the second design in which the same terminal information as the FPGA is described, the design information for FPGA in which the same terminals in the first design and the second design are connected and a buffer corresponding to the FPGA is inserted between the terminals. On the other hand, a third design in which terminal information of an ASIC including the plurality of functional blocks is described, and a third design in which terminal information similar to that of the ASIC described as a lower layer of the third design are described.
- ASIC design information in which the same terminal between the third design and the fourth design is connected, and an ASIC-compatible buffer is inserted between the terminals, and the second design is generated.
- design It is characterized by generating netlists of FPGA and ASIC by replacing each of the fourth designs with circuit information generated based on the connection information of function blocks included in each design.
- the functional blocks of the plurality of functional blocks are provided.
- the first design which describes the terminal information of the FPGA including the logic
- the second design which describes the same terminal information as the FPGA described as the lower layer of the first design
- the second design Generates FPGA design information in which the same terminals in the design are connected and an FPGA-compatible buffer is inserted between the terminals.
- a third design in which the ASIC terminal information including a plurality of functional blocks is described
- the fourth design in which the same terminal information as the ASIC described in the lower layer of the third design is described, the same terminals are connected between the third design and the fourth design, and between the terminals.
- ASIC design information in which ASIC-compatible buffers are inserted, and converts the second and fourth designs based on the connection information of the function blocks included in each design.
- a netlist for FPGAs and ASICs was created, enabling efficient concurrent development of ASICs and programmable logic devices and shortening the ASIC development period.
- FIG. 1 is a flowchart showing the principle of the method of the present invention
- FIG. 2 is an explanatory diagram of the operation of the first embodiment of the present invention
- FIG. 3 is a block diagram of the logic synthesis tool control device of the present invention.
- FIG. 4 is a block diagram illustrating an embodiment of a control device
- FIG. 5 is a flowchart illustrating a core (logical core) generation program. 1)
- FIG. 6 is a flowchart (2) showing a core (logical core) generation program
- FIG. 7 is a flowchart showing a detailed procedure of the first embodiment of the present invention
- FIG. 9 is a flowchart showing a core (logical core) design check control.
- FIG. 9 is a flowchart showing a grouping control.
- FIG. 9 is a flowchart showing a grouping control.
- FIG. 10 is a flowchart showing an I / O buffer input control.
- Processing image Fig. 11 is a flowchart showing the procedure for designing an integrated circuit.
- Fig. 12 explains the concept of concurrent development of ASIC and FPGA according to the second embodiment.
- FIG. 13 is a diagram for explaining the second embodiment.
- FIG. 14 is a functional block diagram showing a system configuration of a concurrent development system of AS IC and FPGA.
- FIG. 14 is a diagram showing an example of a directory configuration for storing data in a file server.
- FIG. 16 is a diagram showing an example of a logical CORE generation table.
- FIG. 16 is a flowchart showing a processing procedure of a concurrent development system of an AS IC and an FPGA according to the second embodiment.
- FIG. 18 is a diagram showing an example of a login screen
- FIG. 18 is a diagram showing an example of a procedure screen
- FIG. 19 is a flowchart showing a processing procedure of a logical CORE generation interface program
- FIG. 21 is a diagram showing an example of a logical CORE generation interface screen
- FIG. 21 is a flowchart (1) showing a processing procedure of an AS IC logical CORE generation program
- FIG. 23 is a flowchart showing a processing procedure of a logical CORE check program
- FIG. 24 is a flowchart showing an example of a status display selection screen
- FIG. 25 is a diagram showing an example of a logical CORE generation status screen.
- FIG. 26 is a flowchart showing a processing procedure on a logical CORE generation status display screen of an ASIC.
- FIG. 28 is a diagram showing an example of a CORE generation interface screen.
- FIG. 28 is a flowchart (1) showing a processing procedure of an FPGA logic CORE generation program.
- FIG. 29 is a flowchart showing a processing procedure of an FPGA logic CORE generation program.
- FIG. 30 is a flowchart showing an example of a compatible package table, and
- FIG. 31 is a flowchart showing a processing procedure of a logic synthesis interface program.
- FIG. 32 is a diagram showing an example of a logic synthesis interface screen,
- FIG. 33 is a flowchart showing an FPGA logic synthesis interface processing procedure, and
- FIG. 34 is an example of a logic synthesis status display screen
- FIG. 35 is a diagram showing an example of a fitting data input and execution screen.
- FIG. 36 is a diagram showing an example of a ROM data generation status screen.
- Fig. 38 is a diagram showing an example of the schedule and results screen.
- Fig. 38 is a diagram showing an example of the manual operation time.
- FIG. 2 is an operation explanatory diagram of Embodiment 1 of the present invention.
- the circuit architecture is considered; 3 ⁇ 4 is input, the design data is shared, and the integrated circuit is developed while sharing the circuit architecture.
- the chip which is the product itself, is composed of instances that have a certain function.
- This instance refers to a block composed of multiple functions designed in HDL, and refers to multiple blocks if a specific block is necessary to realize the function of the chip. is there.
- FIG. X, Y, and ⁇ are tables that define the port specifications of the block created from the results of the circuit architecture study in accordance with a defined format.
- These tables X, ⁇ , ⁇ are always created when designing a block, and include the block name, instance name, port name, range, input / output, type, output source instance name, and output of the output source instance. It consists of a port name. These data are entered manually by the user. It is the point of the present invention to prepare each table in advance as described above.
- step S1 receives the table data of all the above-mentioned instances as input, and checks whether the external terminals defined between the instances and between the instances and the terminals of the device package are connected without contradiction. This is the step of generating a core (logical core) consisting only of the port of the block and the connection information between the blocks by means of the definition. If there is an error in step S1, an error is returned to the user, and the user performs data entry again (circular arrow 1 in the figure indicates repetition).
- Step S2 refers to the FPGA table ⁇ 2, reads the core (logic core) of step S1 output into the logic synthesis tool, and creates a programmable logic device.
- Step S that selects a logic group by controlling the function of the logic synthesis tool, generates a new core (logical core) while maintaining the hierarchical information, and does not include the 1 / o buffer, etc., which depends on the device technology. This is the step of outputting the same core (logical core) netlist as the one output.
- X and Y are user specified.
- the S3 generates a temporary core (logical core) from the terminal names of the device package terminal specification table data, which is a defined format 1, and temporarily stores the iZo buffer that depends on the specified device 'technology in the table data. This is the step of replacing the netlist with the output of step S2 after inserting it into the port of the core (logical core) of this step, which is the point of the present invention.
- the logic synthesis tool functions are controlled to read the logic-synthesized circuit data from the target device 'technology from the FPG ⁇ synthesis result library 3 and respond. To complete the netlist of the desired device.
- the netlist generated as FPGA is fitted with the FPGA layout tool and converted to ROM data.
- step S2 the process is converted into an ASIC by referring to the ASIS synthesis result library 4.
- FIG. 3 is a block diagram showing an embodiment of the logic synthesis tool control device of the present invention.
- 22 is a control device for controlling the overall operation
- 24 is a CRT for displaying various information
- 21 is an input device for inputting various commands and the like to the control device 22
- 23 is a control device 22 It is a storage device that is connected to and stores various information.
- Input device 21 is a core (logical core) generation program start command, logic synthesis
- the storage device 23 stores a logic synthesis tool, a core (logical core) generation program, and a logic synthesis control program.
- a core (logical core) generation program start command is input from the input device 21 by specifying a block table file
- the core (logical core) generation program reads the table file and generates a core (logical core).
- the file is output to the storage device 23. If there is an error during this process, the error information is displayed on the display device CRT 24.
- the designer corrects the table file and executes the command again.
- necessary data for control is prepared as a file, and a predetermined data in the storage device 23 is stored together with the core (logical core) file generated by the core (logical core) generating program. In the location.
- the logic synthesis tool is activated, and the processing result is displayed on the CRT 24. If the process fails in the middle, the status at the time of failure is displayed in CRT24.
- FIG. 4 is a block diagram showing an embodiment of the control device 22 of FIG.
- 31 is a CPU for controlling the whole operation
- 32 is a memory for storing various information
- 21 is a keyboard for inputting various commands and the like
- 24 is a CRT as a display device.
- Reference numeral 23 denotes a storage device, which comprises a core (logical core) generation program 36, a logic synthesis tool control program 35, a logic synthesis tool 34, and an operating system (OS) 33.
- Reference numeral 37 denotes a path connecting the components.
- a hard disk device is used as the storage device 23, for example.
- the CPU 31 searches the storage device 23, calls a corresponding program, and executes the corresponding program.
- FIGS. 5 and 6 are flowcharts showing a core (logical core) generation program.
- F1 reads the data of X
- F2 extracts all the data of the table of port ⁇ ⁇ , stores it in the memory, and performs the following processing while referring to the data in this memory.
- the port checks whether it is an output. Since port A is an input, skip step F3 of outputting the instance name and port name to file A, and proceed to F3 '. In F3, check whether the keyword connected to the package terminal has a certain force. Next, since there is no package terminal connection keyword, F4 for storing package terminal information in memory is skipped, and all data of the next port B is stored in memory.
- I NPUT inst d_log ic
- step F7 the data of the file A is read in the step F7, stored in the memory in the step F8, and processed one file at a time.
- step F8 ' check if the port is an input.
- the table data of X will be described as an example. Since port A is an input, the output source Y and port name C are extracted in step F9, and YC [1: 0] is searched for in the data stored in F8 in the subsequent step F10. . Then check with F 10 'for a match.
- connection information is output to file B in the step of F12. If the results do not match, error information such as a difference in port name or range is output to a log file in the storage device 23 and displayed on the CRT 24.
- step F10 Although port I is an input, "IOI NPUT" cannot be found in the search of the step F10, and is output to the log file as an error in the step F13, and is also displayed on the CRT 24. However, the port connected to the package terminal In this case, there is no problem. On the other hand, the error information output to the log can be used to confirm which port of which instance is connected to which terminal of the package.
- step F12 the following connection information is output to file / file B.
- step F12 ' it is checked whether all ports in all tables have been completed. If not, the flow returns to step F8'.
- the above processing is also performed for the tape data of Y and ⁇ .
- the port for which connection information could not be created is output to the log file by the step of F14, and the port is output by the step of F6 by the step of F15.
- FIG. 7 is a flowchart showing a detailed procedure of the first embodiment of the present invention.
- This flowchart shows in detail the processing in and after S2 in which the core (logical core) output in S1 in the first embodiment described with reference to FIG. 2 is input.
- the solid line indicates the flow of processing
- the dashed line indicates the flow of data.
- the core (logical core) 10 and the dummy core (logical core) 11 are compared and checked (a5). Then, it is checked whether or not it is OK (a 5 ′). As a result of the comparison, if it is OK, termination processing is performed (a 6). If it is not OK, check the terminal specifications of the device package (a 9), check the tape data shown in FIG. 2 and execute again (a 10).
- step a6 When the termination processing of step a6 is completed, the circuit data is inserted with reference to the synthesis result file 15 (a7), and the DFT circuit is inserted with reference to the file 16 (a8).
- FIG. 8 is a flowchart showing a core (logical core) design check control.
- a core logical core
- step a1 see Fig. 7
- the core (logical core) output in step S2 is used as input, and the HDL description grammar of the core (logical core), an empty input port, and the like are checked.
- the core (logical core) is read by the logic synthesis tool in step a12.
- the logic synthesis tool has a function to check the grammar, etc. when it is read. If the result is an error, the content is checked on the CRT, and as shown in step a10, a tape node describing port specifications of the block is written. Review the data and perform the design check again.
- FIG. 9 is a flowchart showing the grouping control, and shows the details of step a2 in FIG.
- it checks whether there is a file of the core (logical core) (a13), and if so, checks whether there is a file of the instance to be grouped (a14). In some cases, that is, when there is no problem with the result of step a1, if there is a file 13 in which the names of blocks to be converted into programmable logic devices are written one block at a time, read them (a2 1) While maintaining the hierarchical information of the target block, logical integration is performed as a new core (logical core). 'Control the grouping function of the tool by grouping (a22).
- the port name of the core becomes the net name connecting the instances, so that all the ports of the core (logical core) go inside the core (logical core). Traces the net, generates a new port on the core (logical core) with the port name of the first instance found, and generates a net connected to the port of the core (logical core) that is the name of the net. Connect to the port and delete the port that is the net name (a23). This is to create a new port and delete the old port.
- a port is generated for the core (logical core) with the port name of the specified instance, and connected to the terminal of the block (a24). If not, a netlist that does not include an IZO buffer or the like that depends on the device technology is output to the storage device 10 (see FIG. 7) (a25). In this case, on the display device, it can be confirmed using the display function of the logic synthesis tool.
- the ports of the grouped blocks can be generated as ports of the core (logical core) (a24). Use this function when there is a port you want to monitor when evaluating the function of a programmable logic device.
- the specification method is performed by reading a file in which the port names are described one by one per line as shown in File 12 after grouping and port name change.
- step S1 the terminal name of the device package defined in the table data of the block in the core (logical core) is the device package. It is common to refer to the terminal specifications of this item, so there may be differences due to simple mistakes or changes from the printed circuit board design.
- step a 2 If the port of the core (logical core) generated in (7) becomes a terminal of the device package, there is a possibility that there is a difference as described above because the port becomes the specification. This problem is solved by steps a3 to a5.
- FIG. 10 is a diagram showing a flow chart showing the IZO buffer insertion control and a processing image. This flowchart shows the process of step a4 in FIG. In the following explanation, a 3 to a 5 are different, but the processing is one command — a series of processing.
- step a4 the dummy core (logical core) of the storage device 11 is read, and the I / ⁇ buffer in the second column of the terminal package tape data 14 of the device package is replaced with the dummy core (logical core).
- An I-noise buffer depending on the device technology is inserted from the terminal information of the chip into the net (a32).
- step a5 of the ports of the dummy core (logical core), the ports for testing, etc., which are unique to the device and have no relation to the function and are not related to the logic, are deleted, and the core (logical core) of the storage device 10 is used as an internal cell (A33), and check whether there is any mismatch of the terminal names (a33 '). If all the port names match between the two cores (logical cores), the insertion is successful. In this way, the terminal name of the terminal specification table data of the device package and the port name of the core (logical core) can be clicked. Loss check can be performed and the above problems can be solved. If there is, the process ends; otherwise, the netlist is output.
- step a9 If it fails, check the terminal specifications of the device package as shown in step a9 and re-execute from step a3, or use table data that defines the terminal specifications of the block as shown in step a10. Check and re-run from step S1 (see Fig. 2). If successful, it becomes a chip by expanding the core (logical core) hierarchy.
- step a6 flip-flops are connected to the input / output ports of all blocks of the chip inside the block and terminated. This terminating process is for generating a netlist without any problem even if there is a block for which circuit design has not been completed, thereby enabling a layout operation.
- step a7 the logic-synthesized circuit data is read from the library of the synthesis result, and inserted into the corresponding block. At this time, if there is no synthesis result for the block inside the chip and the design name or cell name of the block complies with the naming rule, the input port and output port of the block are preliminarily specified. Then, connection processing is performed inside the block.
- This processing does not exist in the case of a programmable logic device, and is performed when a specific block such as DLL of a program-logic device is used as an ASIC.
- the architecture can be maintained by connecting this block inside the block without deleting this block. If a block such as a memory exists inside the block, replace it with the circuit data of the device-specific memory.
- a8 is a process in the case of ASIC, in which an SCAN test circuit for automatically testing a device is automatically inserted, or a file 16 that defines a sequence of blocks for connecting the SCAN test circuit is input and connected in the defined order.
- the core (logical core) is generated from the data from the design document, and the hierarchical structure and the connection information are held from this core (logical core).
- ⁇ New core for logic devices (Logic Generating a core) has the effect of sharing the circuit architecture.
- This core (logical core) is filled with circuit data and its function is verified.
- This network can avoid re-verification when it is converted to AS IC. Therefore, there is an effect that the concurrent development of the AS IC and the programmable logic device can be efficiently advanced.
- the logic design language includes C language, UML, and the like.
- HDL is described as the design language.
- FIG. 12 is an explanatory diagram for explaining the concept of concurrent development of an ASIC and an FPGA according to the second embodiment.
- the feature of this concurrent development of ASICs and FPGAs is that in order for the prototyping verification by the FPGA to proceed concurrently with the AS IC implementation design, a ROM that records the FPGA circuit necessary for prototyping verification The data can be provided from the AS IC implementation design, and the development of FPGA and AS IC can be done seamlessly.
- RTL design and verification RTL design common to AS IC and FPGA is performed according to the structure of the circuit architecture study result, and logic analysis is performed with emphasis on corner cases for each function. Perform software verification using a certification tool. Perform logic synthesis of the AS IC concurrently with this RTL design verification, and if the same characteristics as the AS I can be secured, then perform logic synthesis of the FPGA and form the circuit in the FPGA on the sequential prototyping board. And enable verification by FPGA prototyping.
- the verification results by the soft verification and prototyping are reflected constantly as needed, and the verification by FPGA prototyping is performed. To shorten the period from completion of AS IC development to completion of AS IC development.
- FIG. 13 is a function block diagram showing a system configuration of a concurrent development system of ASIC and FPGA according to the second embodiment.
- this concurrent development system 200 of AS IC and FPGA includes a firewall 210, a web server 220, a user authentication server 230, a user management server 240, a logic synthesis server 250, and a mail server.
- the concurrent development system 200 of ASIC and FPGA can be used from the Web client 100 via the Internet.
- the firewall 210 is a computer that accepts only an access request according to a set communication procedure in response to an access request from the Internet, and prevents an unauthorized external access to the concurrent development system 200 of the AS IC and the FPGA. prevent.
- the web server 220 is a computer that transmits information in response to a request from the web client 100 made through the Internet, and has connection information between a port of a function block and a port of a function block constituting an AS IC or FPGA.
- Logic CORE generation interface program for generating a logical CORE from only logic synthesis interface program 222, fitting interface Program 223, a status display interface program 224, a format file required for generating a logical CORE and a format file required for logic synthesis, and the computer executes these programs in response to a request from the web client 100. And send the result to the Web client 100.
- the user authentication server 230 is a computer for authenticating a user, and a user name and a password to be used based on a contract are registered.
- User management server 240 a user of the registration, a computer to perform the deletion, logic synthesis server 250 p r oject name and e-mail address, which will be described later with the user name you want to use on the basis of the contract has been registered, AS IC logic A computer having a CORE generation program 251, an FPG A logic CORE generation program 252, an AS IC logic synthesis program 253, an FPG A logic synthesis program 254, and a fitting program 255 that is an FPGA layout.
- the logic synthesis and fitting program in the logic synthesis server 250 is started from the logic synthesis interface program 222, reads the RTL source stored in the file server 270, and executes the logic synthesis and FPG A of AS IC and FPGA. Perform PGA fitting.
- the mail server 260 is a computer having mail sending / receiving software, and distributes processing information executed from the web server 220 and information from the web client 100 to the user and the system.
- the file server 270 is a storage medium for storing a logic synthesis target RTL source, a logic synthesis result, FPG A ROM data, and the like.
- FIG. 14 is a diagram showing an example of a directory structure for storing data in a file server.
- Project 41 shown in the figure is a directory of the Project name for developing ASIC and FPGA or a nickname of ASIC, and this name is set based on the contract.
- I ⁇ 42 is a directory that stores data for generating a logical CORE.
- a directory FPGA 49 for copying and storing the file of the logical core generation tape in the directory AS IC 48 in accordance with the specification of the user.
- the CORE 43 is a directory for storing the logical CORE generated by the logical CORE generation program.
- the RTL44 is a directory that stores circuit design data (hereinafter referred to as RTL) expressed in HDL (hardware description language) uploaded by the user from the logic synthesis interface described later, and is a functional block that constitutes the logic CORE of ASIC.
- SYNTHES IS45 which has a directory AS I C52 to store in units and a directory F PGA 53 to copy and store the RTL in the AS IC directory according to the user's specification, is the result of logical synthesis of the RTL by the logical synthesis server 250.
- a directory that stores the results of AS IC logic synthesis in units of functional blocks that make up the logic core of AS IC AS AS 54, and stores the results of logic synthesis for each FPGA Has a directory F PGA 55 with a directory to be changed.
- the ROM 46 is a directory for storing ROM data for storing FPGA circuit data generated after the fitting, which is a layout of the FPGA based on the logic synthesis result of the FPGA, and a directory for storing for each FPGA.
- Have. LAYO UT47 is a work directory where a layout designer of AS IC designs a layout of AS IC.
- the application server 280 is a computer having a program for performing floor planning, layout design, and timing verification of ASIC. With this computer, the implementation designer performs the ASIC floor plan, layout design, and timing verification.
- the monitoring server 290 acquires the user name and the project name registered in the user management server 240, and stores the data in the directory of each project name in the directory LAYOUT 47 managed by the implementation designer.
- the time required by the tool to compare the data with the data in other directories, synthesize the data, and process the layout twice a day, twice a day, the first being the changes to the implementation designer This is a computer that notifies the user and updates the schedule to reflect changes based on the second collected time.
- FIG. 16 is a flowchart showing a processing procedure of the concurrent development system 200 of ASIC and FPGA according to the second embodiment.
- the concurrent development system 200 of AS IC and FPGA is used.
- the web server 220 sends display control data of the login screen shown in FIG. 17 to the web client 100, and the web client 100 displays the screen based on the received data.
- the web client 100 sends the user name and password to the web server 220. .
- the web server 220 sends the received user name and password to the user authentication server 2
- the user authentication server 230 checks whether or not the user name and the password are registered (step S501), and compares the result with the Web server 22. Returns to 0. The web server 220 is rejected by the user authentication server 230
- step S502 the display control data of the login rejection screen is sent to the web client 100, and the web client 100 displays the login rejection on the screen based on the received data and ends (step S502).
- the web server 220 When the web server 220 receives the login from the user authentication server 230, the web server 220 sends display control data of the procedure screen shown in FIG. 18 to the web client 100, and the web client 100 performs the procedure based on the received data.
- the screen is displayed (step S503).
- the user selects a menu according to the procedure screen shown in Fig. 18 and performs concurrent development of PGA with 31 ⁇ .
- the format files required for the target design in the web server 220 are downloaded to the web client 100 ( Step S505).
- Form 1 is the format data of the logical CORE generation table shown in FIG.
- Form 2 is the format of a tape drive that defines the AS IC package pin names and pin numbers used in AS IC logic synthesis described later, and defines the IO buffer that electrically interfaces between the AS IC and external devices. Data.
- step S506 When the user selects the logical CORE generation (Yes in step S506), the web client 100 sends to the web server 220 that the logical core generation is selected, and the web server 220 sends the logical core generation interface program 221. Is started (step S507).
- step S508 When the user selects the logic synthesis (Yes in step S508), the Web client 100 sends the selection of the logic synthesis to the web server 220, and the web server 220 transmits the logic synthesis interface program 222. Activate (Step S509).
- the Web Ryan MO 0 sends the selection of the fitting to the web server 220, and the web server 220 activates the fitting interface program 223 (step S511).
- step S512 When the user selects the status display (Yes in step S512), the web client 10 ⁇ sends the selection of the status display to the web server 220, and the web server 220 displays the status display
- the interface program 224 is started (step S5 13).
- FIG. 19 is a flowchart showing a processing procedure of the logical CORE generation interface program 221.
- the logical CORE generation interface program 221 sends display control data of the logical CORE generation interface screen shown in FIG. 20 to the web server 220, and the web server 220 receives the display control data.
- the display control data of the logical CORE generation interface screen is sent to the Web client 100, and the Web client 100 displays the logical CORE generation interface screen based on the received display control data of the logical CORE generation interface screen. It is displayed (step S8001).
- the user inputs a project name, selects an execution button, and follows a file selection screen displayed by the web client 100 to display a function block of an AS IC for generating a logical core of the AS IC according to a file selection screen.
- D that specifies the file of the logical CORE generation table shown in Fig. 15 that defines the IO specifications
- the web client 100 sends the specified data of the project and the file of the logical CORE generation table of the IO to the web server 220, and the web server 220 stores the file in the file server 270 in FIG. Create directories such as I ⁇ 42, CORE43, RTL44, SYNTHESIS45, ROM46, LAYOUT47, etc. (step S802), and generate a logical CORE in the directory AS IC48 under I042.
- Stores the file of the tape inserter specifies the project name, executes the ASIC logic CORE generation program 251, and executes the process ID. Is stored in the memory (step S803).
- FIGS. 21 and 22 are flowcharts showing the processing procedure of the ASIC logic CORE generation program 251.
- the ASIC logical CORE generation program 251 reads the logical CORE generation tables X, Y, and ⁇ ⁇ shown in FIG. 15 from the directory AS I C48 of FIG. The processing is performed one by one.
- the logical CORE generation tables X, Y, and ⁇ are tables that define the port specifications of the functional blocks created from the results of the circuit architecture study according to the defined “Format 1”. This table is always created when designing a functional block, and includes the function block name, instance name, port name, range, input / output, type, output source instance name, output port name of the output source instance, etc. Consisting of An instance refers to a functional block that constitutes an ASIC. When multiple function blocks having the same function are used, the name of this instance is changed and inserted.
- step S1001 the data of X is read (step S1001), all data of the table ⁇ "of port A is extracted and stored in the memory (step S1002), and it is checked whether or not port A is an output (step S1003).
- step S1003 the presence or absence of the package terminal connection keyword "I0 ,,” is checked next (step S1005).
- step S1005 the presence or absence of the package terminal connection keyword "I0 ,,” is checked next (step S1005).
- step S1005 the presence or absence of the package terminal connection keyword "IO"
- all data of the next port B is stored in the memory.
- step S1004 Since port B is an output, "XB" is output as a file to directory AS IC 50 in FIG. 14 under the name of A (step S1004).
- step S1004 since there is no package terminal connection keyword "IO”, all data of the next port Z is stored in the memory. Since port Z is an output, output "XZ [2: 0]” to file A.
- step S1006 since there is no connection key "IO” for the package terminal, all data of the next port I is stored in the memory. Since port I is an input, and next there is a package terminal connection key word "IO", "INPUT, in, 2: 0" is stored in the memory as a logical CORE port name (step S1006).
- step S1007 This completes the processing of all ports of X (Yes in step S1007), and stores an entity file defining port names, input / output and range information in accordance with the HDL syntax in the directory AS IC 50 in FIG. To output the file (step S1008).
- the output contents for VHDL are as follows.
- Step S1010 the data of the file ⁇ (Step S1010) is read and stored in the memory (Step S1011), and the processing is performed one file at a time.
- the table data of X will be described as an example.
- step S1012 it is checked whether or not the port A is an input (step S1012).
- step S1013 the output source Y and the port name C are extracted (step S1013).
- step S1014 the memory is searched with YC [1: 0] (step S1014), and the presence or absence of matching data is checked (step S1016).
- connection information is output to the directory ASIC 50 in FIG. 14 as a file with the name B (step S1018). If the results do not match, error information such as a different port name or range is output to a log file in the directory ASIC 50 (step S1017).
- connection information is output to file B of directory AS IC 50 (step S1015).
- port Z is an output, the following connection information is output to file B of directory ASIC 50.
- step S1019 When the above processing is performed on the table data of ⁇ and ⁇ and the processing is completed (Yes at step S1019), the port for which the connection information could not be created is output to a log file (step S1020).
- the entity file of the logical CORE of the AS IC having the information as described above is output to the directory AS IC 50 (step S1021).
- the logical CORE entity file is combined with the connection information, and the logical CORE of the AS IC is output to the directory AS IC 50 as a file with the project name specified in FIG. 17, and the processing is terminated.
- the processing returns to the logic CORE generation interface program 221 (step S1022).
- the logical CORE generation interface program 221 searches the log files in the directory AS IC 50 for errors. If an error has been recorded (Yes at step S804), the error is read (step S805), and P The mail address, error information, and process ID of the user obtained by querying the user management server 240 with the P roject name, and the process ID are sent to the mail server 260, and mail is sent from the mail server 260 to the user (step S 806). The user confirms the contents of the error with this e-mail and repeats the logical CORE generation process until the error disappears.
- step S804 if no error is recorded in the log file (rejection of step S804), the proc name, the e-mail address of the user obtained by querying the user management server 240 with the proc name, the process ID, The logical CORE generation end message and the mail server 260 are sent to the mail server 260 (step S807), and the mail is sent from the mail server 260 to the user.
- a directory is created in the directory AS IC 50 with the name of “CORE + process ID + date and time”, and the logical CORE and log files generated under the project name are moved to this directory in the directory AS IC 50.
- Create a directory with the name of IO in the directory move the table data in the directory AS I C48 used to generate the logical CORE to this I ⁇ directory, and add this project to the logical CORE check program in the logic synthesis server 250.
- This logical CORE check program checks the syntax of the ASIC's logical CORE, checks the unconnected state of the input / output ports of each instance that constitutes the logical CORE, and describes the commands of the logic synthesis tool to output a report. ing.
- FIG. 23 is a flowchart showing a processing procedure of the logical CORE check program.
- This logical CORE check program is located under the directory of the received project name, and the AS IC Check if there is a logical CORE directory (step S1201), and if so, create a WORK directory in the ASIC directory where the logical CORE directory is located (step S1202), and The synthesis tool performs a check (step S1203).
- error information is extracted from the report file in the WORK directory, and the user ID obtained by querying the user management server 240 with the project name and the process ID extracted from the logical CORE directory name
- the mail is sent to the mail server 260, and the mail is sent from the mail server 260 to the user (step S1204).
- the user confirms the intendedness of the error information in the content of the sent mail.
- the logical C ORE generated by this series of steps guarantees that it will always be built as an AS I C unless there is a connection error between the instances that constitute the A S IC in the user's logic design. This effect appears in logic verification. If the operation of a plurality of instances constituting the AS I C is performed in a different manner than expected in the function verification, the connection between the instances can be guaranteed, so that it is possible to perform debugging focused on each function constituting the instance.
- the status display interface program 224 When the user selects the status display on the procedure screen shown in FIG. 18, the status display interface program 224 is started.
- the status display interface program 224 sends the display control data of the status display selection screen shown in FIG. 24 to the web server 220, and the web server 220 transmits the received display control data of the status display selection screen to the web client 100.
- the Web client 100 displays the screen based on the received display control data of the status display selection screen.
- the status display interface program 224 When the user selects the logical CRE creation on this screen, the status display interface program 224 generates display control data without the logical CORE name display on the logical CORE generation status screen shown in FIG.
- the web server 220 transmits the received logical CORE generation status screen display control data to the web server 220.
- the Web client 100 sends the Project name to the Web server 220 and receives the Project name from the Web server 220, a status display interface program.
- 224 extracts the directory name of the logical CORE in the directory AS IC 50 in FIG. 14 from the directory of the designated project name, updates the display control data on the logical CORE generation status screen, and sends it to the web server 220.
- Web server 220 sends the received display control data of the logical CORE generation status screen to Web client 100, and Web client 100 displays the screen based on the received logical CORE generation status display control data. I do.
- This screen shows the directory name of the previously created ASIC logical core.
- FIG. 26 is a flowchart showing a processing procedure on the logical CORE generation status display screen of ASIC.
- the target logical core can be downloaded to the web client 100.
- the downloaded logical CORE can be used for logic verification as an ASIC chip-level netlist, and enables debugging that focuses on the functions that make up the instance as described above.
- the Web client 100 confirms that the Project name, the logical CORE name, and the F PGA conversion have been selected.
- the data is sent to the b server 220, and the web server 220 sends the received data to the status display interface program 224.
- the status display interface program 224 extracts the file name of the table data in the I ⁇ directory under the directory of the target logical CORE name in the directory AS IC 50 in FIG. Figure Create the display control data of the FPGA logic CORE generation interface screen as shown in (1) and send it to the Web server 220.
- the web server 220 sends the received display control data of the FPGA logic CORE generation interface screen to the web client 100, and the web client 100 displays the screen based on the received display control data of the FPGA logic CORE generation interface screen. It is displayed (step S1504).
- a list of the specified Project name, fflunli CORE name, and instance names constituting the logical CORE are listed in the left list box.
- this screen is an interface for generating the FPGA logic CORE from the table data of the instances that make up the target AS IC logic CORE, and the user specifies the instance from the left list box and clicks the add button. Select to add an instance to the right list box.
- the instance listed in the right list box is one FPGA.
- the Web client 100 When the user selects an instance, sets the FPGA name and the FPGA number, which is a unique integer of 1 or more, which is an additional number for management, and selects an execution button, the Web client 100 and the target P
- the roject name, the logical CORE name of the AS IC, the FPGA name, the list of instance names to be used as the FPGA, and the FPGA number are sent to the web server 220, and the web server 220 displays the status of the received data. Send to interface program 224.
- FIG. 28 and FIG. 29 are flowcharts showing the processing procedure of the FPGA logic CORE generation program 252.
- FIG. 28 is the same as the process shown in FIG. 21, and FIG. 29 is the same as the process shown in FIG.
- step S1717 and step S1720 Explanation of steps In step S1017 of Fig. 22, if the instance name of the connection partner defined for the input port of the target instance and the output port name are not in the information stored in the memory, an error occurs. However, in step S1717 in Fig. 29, the connection between the ports of the instances was originally guaranteed as the logic CORE of the AS IC, so in this step S1717, not the error but the input terminal information of the package And store it in memory.
- step S1020 in FIG. 22 the information about the unconnected ports that have finally been left is output to the log file.
- step S1720 the log file and the step S in the directory of the logical CORE of the target AS IC created by “CORE + process ID + date” under the directory AS IC 50 in FIG.
- the log file output in step 1720 is compared, and an output port not included in the log file output in step S1020 is additionally stored in the memory as output terminal information of the package.
- a logical CORE is output as a file with the designated FPG A name in the designated directory under the directory FPGA 51 in FIG. 14 in the same manner as the processing in step S1020.
- the status display interface program 224 is? .
- the logical 001 E file is read, the number of terminals that become the input and output of the package is counted, and the ratio of all the IOs in the second column of the compatible package table shown in Fig. 30 is calculated, and the package with the largest ratio is calculated. and extracting the compatible package data, the package name of F PGA logic CORE generating interface screen shown in FIG. 27, and updates the screen display control data I_ ⁇ utilization, sent to We b server 2 20.
- We b sir The bar 220 sends the received display control data of the FPGA logic CORE generation interface screen to the web client 100, and the web client 100 displays the input screen based on the received display control data of the FPGA logic CORE generation interface screen. Update.
- the web client 100 sends the decision and the F PGA number, the package name, and the data of the IO usage to the web server 220, and the web server 220 transmits the data.
- the received status display interface program 224 creates a directory with the number specified in the directory FPGA55 in FIG. 14, and outputs the received data in the form of a plist, for example, in the form of a file.
- FIG. 31 is a flowchart showing a processing procedure of the logic synthesis interface program 222.
- the logic synthesis interface program 222 sends display control data of a logic synthesis interface screen as shown in FIG. 32 to the web server 220, and the web server 220 receives the logic synthesis interface screen. Is transmitted to the web client 100, and the web client 100 displays a screen based on the received display control data of the logic synthesis interface screen (step S2001).
- the user specifies the name of the project, the name of the target logical CORE displayed in Fig. 25, the name of the functional block to be synthesized, and the number of the FPG A to be incorporated.
- Specifying De bug do not execute logic synthesis of FPGA) or Fix (execute logic synthesis of FPGA) (Step S 2002), and select the execution button (Step S 2003)
- the web client 100 displays a data selection screen.
- the Web client 100 sends these data to the Web server 220, and the Web server
- the logic synthesis interface program 222 that has received the data from the 220 creates a directory with the designated function block name in the directory AS IC 52 of FIG. 14 and stores the RTL source in the directory AS IC 52 (step S2004). Then, the RTL source was read one file at a time, and the operating frequency data defined by the user was extracted in the header that describes the change history and version number in the RTL source, and the value was increased by 20% from the extracted value.
- the logic synthesis interface program 222 When the logic synthesis of the AS IC is completed, the logic synthesis interface program 222 generates a report file output by the AS IC logic synthesis program 253 in the directory of the specified functional block under the directory AS IC 54 in FIG.
- the mail address and block name of the user obtained by inquiring of the user management server 240 with the project name are sent to the mail server 260, and the mail is transmitted from the mail server 260 to the user (step S2006).
- the logic synthesis interface program 222 executes this processing for all the RTL sources existing in the directory created under the specified function block name under the directory ASIC 52 in FIG.
- the logic synthesis interface program 222 reports the result of logic synthesis of all RTLs when speed priority is specified (Yes in step S2008).
- step S2009 to step S2010 To determine whether the force satisfies the operating frequency defined in the RTL source (step S2009 to step S2010). None is done in case of emphasis on area.
- step S 2011 the F i X designation is checked (step S 2011). If the F i X designation is made, the logic synthesis interface program 222 creates a directory under the directory FPGA 55 in FIG. 14 with the designated FPGA number. The R in the specified function block directory under the directory AS IC 52 in FIG. The TL is copied and stored, and the FPGA logic synthesis interface program is executed using the specified project name and FPGA number as arguments (step S2012).
- the logic synthesis interface program 222 activates the logic synthesis tool, and issues a command to the logic synthesis tool using the logic CORE of the specified logic core in the specified logic core in the directory AS IC 5 ° in FIG.
- a file that defines the package pin assignment of the AS IC which is uploaded from the user and exists in the directory AS IC 54 in FIG. 14, and a buffer that electrically interfaces with an external device connected to the AS IC.
- the test circuit such as the buffer and scan of the AS IC, is inserted between the chip pins connected to the logic core terminal of the AS IC and the package terminal. 14 and the functional blocks in all directories under the directory AS IC 52 in FIG.
- Step S 2013 Data is input into the logic synthesis tool by reading commands and loaded into the logic CORE, and a netlist of AS IC is generated for layout design, and a file is output as a project name to the directory AS IC 54 in Fig. 14. (Step S 2013).
- FIG. 33 is a flowchart showing a processing procedure of the FPGA logic synthesis interface program.
- this FPGA logic synthesis interface program creates a directory in the directory FPGA55 in FIG. 14 with the FPGA number specified by the logic synthesis interface program of the ASIC, and creates a directory in FIG.
- the FTL source in the directory with the specified number under the bird F PGA53 is read one file at a time, and the operating frequency data defined by the user in a part of the header that describes the change history, version number, etc.
- the FPGA logic synthesis program 254 executes the FPGA logic synthesis program 254 of the FPGA logic synthesis tool by specifying the function block name of the logic synthesis target as the logic synthesis constraint with the frequency value increased by 20% from the extracted value as the logic synthesis constraint. (Step S2201).
- the FPGA logic synthesis program 254 outputs the logic synthesis result to the directory of the target number in the directory FPGA55 in FIG. 14 by the name of the functional block. By doing so, the user can proceed with the design work while checking the gut usage rate on the logic synthesis status display in FIG. 34 described later.
- the FPGA logic synthesis interface program sends to the mail server 260 the logic synthesis end message, the FPGA number, the block name, and the mail address of the user who has inquired of the user management server 240 with the project name.
- the mail is transmitted from the mail server 260 to the user (step S2202).
- the FPGA logic synthesis interface program confirms that the logic synthesis of all the functional blocks constituting the FPGA of the designated number has been completed (step S2203). This confirmation is performed by extracting the name of the function block in the directory of the number targeted for the directory FPGA 51 in FIG. 14 and comparing it with the name of the function block for which the logic synthesis has been completed. If there is no difference, then the FPGA logic synthesis interface program extracts the file name of the logic CORE, which is the FPGA name in the directory of the target number in the directory FPG A51 in FIG. In the directory of Fig.
- the FPGA 55 defines the layout of the FPG A, the correspondence between the package pin names and pin numbers that are the same as the port names of the logic CORE of the FPGA used for fitting, the operating frequency, etc. It is checked whether the fitting control file thus uploaded exists from the user (step S2206).
- the FPGA logic synthesis interface program specifies all functional blocks constituting the FPGA and the logic CORE of the FPGA in the directory of the target number under the directory FPGA 51 in FIG. Run synthesis program 254. Then, when the logic synthesis of the FPGA is completed, the FPG A logic synthesis interface program starts the fitting program 255 and inputs the netlist of the logic synthesis result to the fitting program 255. Then, ROM data that is the layout result of the FPGA and records the circuit information is generated, and output to the directory of the target number under the directory ROM 46 in FIG. 14 with the FPGA name (step S2207).
- step S2208 the end message of the ROM data generation, the FPGA number, the Project name, and the user's e-mail address obtained by inquiring of the user management server 240 are sent to the e-mail server 260, and the e-mail is transmitted. Yes (step S2208).
- step S2204 it is determined whether or not an execution button is selected on the input and execution screen of the fitting data described later (step S2204), and if not selected, the process is terminated.
- flip-flops are provided for all input / output ports inside each function block in the logic CORE of FPG A in the directory of the target number under the directory F PGA 51 in FIG. Connect the output ports of all flip-flops on the input side to an appropriate gate, for example, the input port of a 2-input NAND, and connect the outputs of all NAND gates to the input ports of a new 2-input NAND gate.
- the program 224 queries the user management server 240 with the name of the logged-in user for all project names obtained from the user management server 240.
- the logical program in the directory of all numbers under the directory FPG A 55 in FIG. Extract the gate size from the synthesis result.
- the package information is extracted from the plist in the same directory created by the FPGA logic CORE generation described above, and based on this package information, the gate scale ratio in the table of FIG. The following packages are selected, and the display control data of the logic synthesis status display screen shown in FIG. 34 is generated and sent to the web server 220.
- the web server 220 sends the display control data of the logic synthesis status display screen to the web client 100, and the web client 100 displays the screen based on the received display control data of the logic synthesis status display screen. I do.
- the gate size ratio of 75% is briefly explained.
- the F PGA logic synthesis tool suggests an appropriate package and gate utilization from the database of the logic synthesis tool based on the gate size of the logic synthesis result.
- a unit block that realizes logic by the FPGA is used for wiring in order to increase the efficiency of the arrangement and the di in the process of arranging the cells. Therefore, considering that the gate size will be larger than the result of logic synthesis, the gate utilization rate after fitting is set to 75% so that it does not exceed 100%, and it may be different for FPGA. . For this reason, it is effective to execute the FPGA logic synthesis described above for each function block.
- FIG. 35 is a diagram showing an example of a fitting data input and execution screen.
- the web client 100 sends the selection of the fitting to the web server 220 and the web server 2
- the fitting interface program 2 23 which received the data from the server 20 receives the query name from the user management server 240 using the name of the logged-in user. And the file name of the netlist that is the result of logic synthesis in each directory, that is, the FPGA name under the directory F PGA 55, is extracted, and the fitting data input and execution screen shown in Fig. 35 are displayed. Generates display control data and sends it to the Web server 220.
- the web server 220 sends the fitting data input and execution screen display control data to the web client 100, and the web client 100 receives the fitting data and executes the received screen display control data based on the received fitting data. Display the screen. When the condition data input on this screen is selected, the web client 100 displays a data selection screen.
- the web client 100 sends the selected FPGA number and the fitting control file to the web server 220, and transmits data from the web server 220.
- the received fitting interface program 223 stores the fitting control file in the directory of the target number under the directory FPGA 55 in FIG.
- the web client 100 sends the selected FPGA number, the project name, and the execution selection to the web server 220, and sends the data from the web server 220 to the web server 220.
- the fitting interface program 223 receiving the command executes the FPGA logic synthesis interface program using the project name and the FPGA number as arguments. The processing of the FPGA logic synthesis interface program is as described above.
- FIG. 36 is a diagram showing an example of a ROM data generation status screen.
- the status display interface program 224 that has received the data from the web server 220 queries the user management server 240 with the name of the logged-in user. For all the obtained project names, the number names of all directories under the directory ROM 46 in FIG. 14 and the ROM data name, that is, the FPGA name as the fitting result in each directory, were extracted, and the results are shown in FIG. 36.
- the display control data of the ROM data generation status screen is generated and sent to the web server 220.
- the web server 220 sends the display control data of the ROM data generation status screen to the web client 100, and the web client 100 displays the screen based on the received display control data of the ROM data generation status screen.
- the user can download the ROM data by selecting the attached part of the target FPGA on this screen.
- monitoring server 290 monitors the processing of the monitoring server 290 .
- what the monitoring server 290 monitors is used for implementation design based on whether RTL has been changed, the time required for logic synthesis, fitting, layout design tool processing, and the scale of function block changes defined by the designer. This is the time required for manual work required to reflect changes, other than the processing time of the tool to be used.
- the directory LAYOUT47 in Fig. 14 managed by the implementation designer has a directory named Project for each Project, and work proceeds in that directory.
- Project for each Project
- RTL directory that stores the RTL source.
- the directories below the RTL directory are the same as the directories AS IC 52 and below in Fig. 14. It has a configuration.
- the monitoring server 290 monitors the LAY and RTL directories.
- the schedule reflecting the results of the aggregation of time is stored in the directory named Project under the name of Schedu 1 e.
- Project under the name of Schedu 1 e.
- the scheduled date of 1 stR TL and Sign Of f Is set. 1s tRTL is defined as an RTL for which layout design can be undertaken, no major changes are expected at that time, and functional verification has been completed about 80%. Sign Off is to pass AS IC manufacturing data to device vendor after completion of AS IC layout design Day.
- FIG. 37 is a diagram showing an example of the schedule and results screen.
- the Schedu1e file is converted into screen display control data, and is displayed by the Web client 100. That is, when the user selects the result and the schedule on the status display screen of FIG. 24, the web client 100 displays the status that the result and the schedule are selected via the web server 220.
- Send to interface program 2 2 4 The status display interface program 2 2 4 receiving the selection of the result and schedule converts the Schema 1 e file into screen display control data and sends it to the web client 100 via the web server 220.
- the Web client 100 that has received the screen display control data displays a screen based on the screen display control data.
- FIG. 38 is a diagram showing an example of a work time setting file set by a layout designer. This file is stored under the name MANUA1 in the same directory as the SCHEDU1 file.
- the monitoring server 290 acquires the user name, the Project name to which the user belongs, and the mail address from the user management server 240. Then, the Sch edu 1e file is read, and the scheduled date of 1 st RTL is extracted. If this scheduled date is later than the monitoring execution date, nothing is done and the process ends. If the scheduled date is earlier than the monitoring execution date 0, the subsequent processing is executed.
- the block name with the difference, the project name, and the mail address of the implement designer are sent to the mail server 260, and the mail server 260 sends it to the implement designer.
- the implementation designer will use this email to estimate how long it will take to reflect the changes.
- the implementation designer updates or adds time data in the Schema 1 Caro, delete.
- the monitoring server 290 extracts the names of the blocks constituting the ASIC from the logical CORE of the ASIC with the latest creation time under the directory ASIC50 in FIG. 14 and stores the extracted block names in the memory. Then, the logic synthesis processing time is extracted from the report file of the logic synthesis result in the directory of each block under the directory ASIC 54 in FIG. If there is no report file for the block name previously stored in the memory, that is, if logical synthesis has not yet been performed, apply the average time of the time extracted from the existing report file, calculate the total time, and store it in the memory I do.
- the monitoring server 290 calculates the number of days by taking the sum of the total time and the time set in Manua 1 described above as 1 day to 12 hours, and saves the Schedu 1 e file. Update if necessary.
- the Schedule 1 e file has only the scheduled date of 1st RTL, and the total time is added to this scheduled date, and as shown in Fig. 37, it is implemented as the reflection start date. Add a planned date for incorporating changes to the design.
- the reflection start date is later than the monitoring execution date, compare and compare the number of days from the 1st RTL scheduled date, which is one time before the reflection start date, to the scheduled date set as the reflection start date.
- the reflection start date is not updated if it is longer than the calculated number of days for the implementation design.
- the monitoring server 290 provides the user and the implementation designer with the e-mail addresses and the opportunity to start the reflection. Message to the mail-server 260, and mail is sent from the mail server 260 to the user and the implementation designer.
- the monitoring server 290 does not update the Schemadu 1 e file unless there is no actual date on the actual reflection start date. .
- the Schedu 1 e file is immediately reflected.
- the monitoring server 290 When the scheduled date of the reflection start date is calculated, and if the date exceeds the Sign Off date, the monitoring server 290 sends the message and the user who have reached the date and time when the scheduled date of the reflection start cannot be set. And the e-mail address of the implement designer to the mail server 260, and mail is sent from the mail server 260 to both sides.
- the mail server sends a message to the user to set the scheduled date from the Web client 100 and the mail address of the user and the implementation designer. Send to 260 and send mail from mail server 260 to both sides.
- FIG. 37 is a diagram showing an example of the schedule and results screen.
- the logical FIX button and the change button in the figure are before the execution date S of the monitoring of the monitoring server 290, and are arranged beside the newest reflection start date.
- the web client 1000 displays that the set date and the change have been selected.
- the status program that sent the data to the eb server 220 and received the data from the web server 220, the interface program 224 sets the scheduled date of the latest reflection start date in the schedule file to the specified date. Changes, and a message stating that the changes
- the mail addresses of the user and the implementation designer are sent to the mail server 260, and mail is sent from the mail server 260 to both sides.
- the status display interface program 224 performs the same processing as when the change button is selected, and then executes the monitoring server Performs the process of stopping monitoring at 290. This will clarify the short-term goals of both the user and the implementation designer, and the greater the number of trials of the implementation design, the more likely the change start date will be. In response to this, it is possible for both the user and the implementation designer to give an opportunity to think about how to proceed, and as a result, greatly contribute to the improvement of efficiency.
- the AS IC logic synthesis program 253 performs AS IC logic synthesis based on a user request from the Web client 100, and the FPGA logic synthesis program 254
- the logic synthesis of A is performed, the logic synthesis interface program 222 displays the result of the logic synthesis of AS IC and FPGA on the Web client 100, and the mail server 260 starts the logic synthesis of AS IC and FPGA and the result.
- the logic synthesis can be executed at any time, and the quality of the logic synthesis is kept uniform as if the dedicated staff executed it.
- the AS IC logical core generation program 251 specifies a plurality of function block ports designated by the user from the function blocks constituting the AS IC.
- ROM data that records the programmable logic device circuit by generating a netlist consisting only of interconnection information and inserting the data of the logic-synthesized target function block into the netlist generated by the FPGA logic CORE generation program 252. And displays the results of the ROM data generated by the logical CORE generation interface program 221 on a computer, and the mail server 260 e-mails the user.
- the notification configuration eliminates the need for a dedicated development environment for programmable logic devices, reducing the load, time, and cost of creating ROM data that records the circuits of programmable logic devices. be able to.
- the FPGA logic CORE generation program 252 uses the input terminal of the function block and the Because a netlist that incorporates a circuit using a temporary flip-flop at the output terminal is generated, the design of a functional block that is not the target of verification is verified in verification by prototyping of a programmable device. Even if it has not been completed, verification by prototyping can be advanced, and verification efficiency can be improved.
- the monitoring server 290 monitors the scale of the change between the latest circuit data held by the user and the circuit data incorporated by the implementation designer in the implementation design, and monitors the monitoring result and
- the main server 260 notifies the user and the ASIC implementation designer by e-mail that it is time to reflect the changes to the ASIC implementation design.
- the user has requested the stop by changing the date of reflection, so that the generated change can be efficiently reflected in the ASIC layout design, and the timing of reflecting the change Setting allows the user to determine when changes can be made. It is a review of Yuru.
- a program storage medium storing a program for causing a computer to execute a method of generating a core (logical core) according to the first aspect of the present invention.
- a program for causing a computer to execute a method of generating a core (logical core) according to the first aspect of the present invention.
- it has the effect of ensuring the quality of the port specifications of the block that will be the input of the RTL design in advance.
- the core is cut out from the ASIC core (logical core) as a program 'logic device core (logical core) while maintaining the connection between blocks.
- a temporary core (logical core) is generated from the chip terminal information, and is replaced with a core (logical core) generated from the block.
- the port information of the chip and the terminal information of the chip can be cross-checked, and the quality of both the port specification of the block and the chip terminal specification can be ensured.
- a chip net list can be generated from a net list including ports of arbitrary size and number of blocks and connection information of the ports.
- the storage medium storing a program for causing a logic synthesis tool to execute a method of generating a core (logic core) of a programmable logic device, the function of the port is determined. It is possible to prevent a decrease in debugging efficiency such as logic verification when a net name that is difficult to perform becomes a port name.
- a core logical core
- logical core is generated from the data of the design document, and the core (logical core) is newly programmed for the logic device while maintaining the hierarchical structure and connection information.
- (Logical core) can be used to share the circuit architecture.
- the circuit data can be loaded, and the circuit data independent of the device technology in the instance whose function has been verified and the nets between the instances can be stored in ASICs.
- ASICs can be used to avoid re-verification. It is also possible to avoid redesign due to differences between programmable logic devices.
- an integrated circuit development method capable of realizing architecture sharing and avoiding redesign and re-verification as much as possible, and a programmable storage medium storing the integrated circuit development method. be able to.
- the functional blocks constituting the ASIC are grouped based on the inter-port connection information, and the netlist including the ports of the grouped functional blocks and the inter-port connection information is converted into a programmable logic device.
- the logic synthesis data for the device is inserted into the generated netlist to generate ROM data for the evaluation of the actual device that records the circuit of the programmable logic device, and the ASIC layout is created using the logic synthesis data created for the ASIC.
- timing verification of ROM data for actual machine evaluation This is done concurrently with the generation, and the circuit data changes based on the evaluation results of the actual machine using the generated ROM data are reflected in the ASIC layout creation and timing verification. This enables effective concurrent development, and shortens the ASIC development period.
- the function blocks constituting the ASIC are grouped based on the inter-port connection information, and the netlist including the grouped function block ports and the inter-port connection information is used as the core of the programmable logic device.
- Logic data for programmable logic devices was inserted into the generated netlist to generate logic data for evaluation of actual devices.
- ASIC layout creation and timing verification using logic synthesis data for ICs are performed concurrently with the generation of ROM data for actual machine evaluation, enabling efficient concurrent development of ASICs and programmable logic devices. This has the effect of shortening the development period of the ASIC.
- logic synthesis of an ASIC is executed in response to a user request, and it is determined whether or not the created logic synthesis result of the ASIC satisfies the speed performance requested by the user, and based on the determination result.
- Performs logic synthesis of programmable logic devices displays the results of ASIC logic synthesis and the results of programmable logic device logic synthesis on a computer, and starts and executes the results of ASIC logic synthesis and programmable logic devices.
- the user is notified of the start of logic synthesis execution and the execution result by e-mail, so there is no need for the user to assign a dedicated logic synthesis user.
- the quality of the logic synthesis can be kept uniform, and the start of the logic synthesis and the notification of the result can be received by e-mail. Can, there is an effect that need to check periodically computer Susumu ⁇ logic synthesis is eliminated.
- a netlist including port-to-port connection information of a plurality of functional blocks specified by a user is generated from a functional block configuring an ASIC in response to a user request, and the generated netlist is generated.
- Generates ROM data that records the circuit of the programmable logic device by filling in the data of the logic-synthesized target function block, displays the generated ROM data on a computer, and notifies the user by e-mail. This eliminates the need for a dedicated development environment for programmable logic devices, reducing the load, time, and cost of creating ROM data that records the circuits of programmable logic devices. This has the effect that it can be performed.
- a temporary flip-flop or the like is applied to the input terminal and the output terminal of the function block. Netlist with inserted circuit Therefore, even if the design of a functional block that is not the target of verification has not been completed in verification by prototyping of a programmable logic device, verification by prototyping can be advanced, and verification efficiency can be improved. If it can be achieved, it will have a ray effect.
- the scale of a change between the latest circuit data held by the user and the circuit data incorporated in the implementation design by the implementation designer is monitored, and based on the monitoring result and the time required for the layout design!
- the user and the ASIC implementation designer are notified by electronic mail that it is time to reflect the change in the ASIC implementation design, and the user reflects in response to this notification Since the stop was requested by changing the date of the change, the generated change can be efficiently reflected in the ASIC layout design, and by setting the timing to reflect the change, the user can change until how long. It is possible to judge whether or not the schedule is possible, and it is possible to review the schedule at an early stage.
- a third design in which terminal information of an ASIC including a plurality of functional blocks is described, and a fourth design in which terminal information similar to that of the ASIC described as a lower layer of the third design are described.
- the integrated circuit development method according to the present invention the program storage medium storing the integrated circuit development method, the concurrent development system of the ASIC and the programmable logic device, the development program and the development method are provided for the integrated circuit. Suitable for development, especially for ASIC and programmable logic devices.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Logic Circuits (AREA)
Abstract
Description
明 細 書 集積回路の開発方法及び集積回路の開発方法を記憶したプログラム記憶媒体、 な らびに A S I Cとプログラマブル -ロジックデバイスのコンカレント開発システ ム、 開発プログラム及び開発方法 技術分野 Description Integrated circuit development method and program storage medium storing the integrated circuit development method, and concurrent development system for ASIC and programmable logic device, development program and development method
本発明は集積回路の開発方法、 集積回路の開発方法を記憶したプログラム記憶 媒体及び論理合成ツールの制御装置、 ならびにネットワークに接続されたコンビ ユータからユーザが利用する A S I Cとプログラマブノレ ·ロジックデバイスのコ ンカレント開発システム、 開発プログラム及び開発方法に関する。 The present invention relates to a method for developing an integrated circuit, a program storage medium storing the method for developing an integrated circuit, a control device for a logic synthesis tool, and an ASIC and a programmable logic device used by a user from a computer connected to a network. It relates to concurrent development systems, development programs and development methods.
更に詳しくは、 集積回路の開発におけるプログラマブル' ロジックデバイス構 成方法に係り、 回路アーキテクチャ検討結果であり論理設計ドキュメントの一部 であるブロックのポート仕様の接続情報のみを用いてデバイス 'テクノ口ジに依 存しないブロックのポートとポート間を結ぶネットからなるコア (論理コア) と 呼ぶネットリストを生成し、 コア (論理コア) から対象プロックを選択、 グルー プ化し、 グループ化したコア (論理コア) のデータを使用し、 集積回路の開発を 行なう集積回路の開発方法、 ならびに A S I C .とプログラマブル'口ジックデバ イスのシームレスなコンカレント開発を可能とし、 設計品質確保と開発期間短縮 を両立するとともに、 開発にかかる人的資源とコストを低減することができる A S I Cとプログラマブ^ /■ ロジックデバイスのコンカレント開発システム、 開発 プログラム及び開発方法に関する。 背景技術 More specifically, it relates to a method for configuring a programmable logic device in the development of integrated circuits, and uses only the connection information of the port specifications of the block, which is the result of studying the circuit architecture and is a part of the logic design document. Generates a netlist called a core (logical core) consisting of ports between ports of blocks that do not depend on each other, selects target blocks from the cores (logical cores), groups them, and groups the cores (logical cores) Integrated data development method using integrated data, and seamless concurrent development of ASICs and programmable logic devices, while ensuring both design quality and shortening the development period. ASICs and professionals that can reduce such human resources and costs Gramabu ^ / ■ Concurrent development system, development program and development method for logic devices. Background art
集積回路の手順では、 先ず仕様を决定する際、 もれ等がないか慎重に検討した 後、 その仕様に従い設計を行なうようになっている。 第 1 1図は集積回路設計の 手順を示すフローチャートである。 先ず、 製品仕様から A S I C (特定用途向け I C) のスペックを取得する (g l) 。 次に、 回路アーキテクチャを検討する ( g 2) 。 次に、 回路アーキテクチャ検討結果に基づいて回路設計を行なう (g 3 ) 。 この回路設計は、 論理検証 (g 4) を行ないながら行なう。 In the integrated circuit procedure, when deciding the specifications, first carefully consider whether there are any leaks, and then design according to the specifications. FIG. 11 is a flowchart showing the procedure for designing an integrated circuit. First, from the product specifications, ASIC Get the specifications of (IC) (gl). Next, we examine the circuit architecture (g2). Next, a circuit is designed based on the results of the circuit architecture study (g3). This circuit design is performed while performing logic verification (g4).
次に、 回路設計が終了したら回路の論理合成を行なう (g 5) 。 論理合成が終 了したら、 論理合成結果に基づいてレイアウト展開する (g 6) 。 この段階で回 路が設計できたことになる。 回路が設計できたら、 当該回路を製造し (g 7) 、 製造した回路を用いて実機の評価を行なう (g 8) 。 以上のシーケンスの内、 本 発明に係る部分は、 ステップ g 5の論理合成に係る部分である。 Next, when the circuit design is completed, the logic of the circuit is synthesized (g5). When the logic synthesis is completed, the layout is developed based on the result of the logic synthesis (g6). At this stage, the circuit has been designed. After the circuit is designed, the circuit is manufactured (g7), and the actual machine is evaluated using the manufactured circuit (g8). In the above sequence, the part according to the present invention is the part relating to the logic synthesis in step g5.
集積回路開発において、 仕様を入力として実現する機能の検討、 機能を実現す る回路構成の検討を行なう回路アーキテクチャ検討を以下のような流れで実施し ている。 通常、 集積回路の開発では、 製品の仕様から製品を実現する機能を洩れ なく洗い出し、 洗い出した機能を実現する回路の構成の検討や、 I P ( I n t e 1 1 e c t u 1 P r o p e r t y :知的財産) 等のマクロの検討を行なう。 ここで、 マクロとは I Pも含む RAM、 ROM等の変更しなくても使えるものを いう。 In the development of integrated circuits, the following flow is used to study functions to realize specifications as inputs and to study circuit configurations to realize functions. Normally, in the development of integrated circuits, the functions that realize the product are thoroughly identified from the product specifications, and the circuit configuration that realizes the identified functions is examined, and the IP (Inte 1 1 ectu 1 Proprty: intellectual property) Consider macros such as. Here, a macro refers to a macro that can be used without modification, such as RAM and ROM including IP.
構成を検討した回路や I Pの実現規模の初期見積りを行ない、 この時予め判つ ていればゲート数で算出し、 ゲート数が判らない場合は必要な信号数と処理に必 要な時間からフリップフ口ップ数を算出して実現規模を見積もつている。 ここで 、 見積もった規模と各機能の入出力信号 (以降ポートと称する) 本数を基に複数 の機能をグループ化し 1つのブロックとする。 このグループ化を全機能について 行なう。 An initial estimate of the scale of the circuit or IP for which the configuration was studied is calculated.At this time, if the number of gates is known in advance, calculation is performed using the number of gates. It calculates the number of mouthpieces and estimates the realization scale. Here, a plurality of functions are grouped into one block based on the estimated scale and the number of input / output signals (hereinafter referred to as ports) of each function. This grouping is performed for all functions.
論理設計では、 前述の機能と見積り規模を基に HDL (ハードウェア記述言語 ) 等の手段によりプログラマブノレ 'ロジックデバイスを対象に回路設計を行ない 、 オンボードでの機能評価が行なわれる。 評価完了後、 AS I C化する場合に再 設計及び再検証が行なわれていた。 In the logic design, a circuit design is performed for a programmable logic device by means of HDL (hardware description language) or the like based on the above-described functions and the estimated scale, and the on-board function evaluation is performed. After the evaluation was completed, re-design and re-verification were performed when converting to ASIC.
機能評価の完了後、 AS I C化によるコストダウンが実施される場合、 プログ ラマプル - ロジックデバイス (例えば F P G A) を対象に設計する時点から A S I cを考慮した設計を施されることが少なく、 I /Oバッファ、 デバイス用試験 回路、 メモリ等のマクロなど、 プログラマブノレ ' ロジックデバイスと A S I C間 の違いのため A S I Cを対象にプログラマブル' ロジックデバイスの設計データ を基に再設計が発生し、 再設計することによる設計データの二重管理、 再設計と 機能の再検証による開発期間の長期化と開発コストの増大が表面化してきている ここで、 A S I Cは開発期間が長いがコストが安いという特徴があり、 一方、 プログラマプル .ロジックデバイス ( F P G A) は開発期間は短レ、がコストが高 いという特徴がある。 If the cost reduction by implementing AS IC is performed after the completion of the functional evaluation, the program-the AS from the point of designing for the logic device (for example, FPGA) It is rarely designed in consideration of Ic, and I / O buffers, device test circuits, macros such as memory, etc. are programmable. '' Programmable for ASICs due to differences between logic devices and ASICs '' Redesign occurs based on device design data, and double management of design data by redesigning, prolonging the development period and increasing development costs by redesigning and re-verifying functions are emerging. ASICs have a long development period but low cost, while programmable logic devices (FPGAs) have a short development period but high costs.
本発明はこのような課題に鑑みてなされたものであって、 大規模 A S I Cの開 発における論理設計と、 論理合成、 レイァゥトのコンカレント (並行した) 開発 に適用している回路アーキテクチャ検討において、 チップを機能的に分割したプ ロックのポート情報と、 チップのポート情報とからポート間の接続情報としてブ ロック間ネットリストを生成する方法 (特開 2 0 0 0— 9 0 1 4 2号に記載) を 応用した、 集積回路の開発方法及び該集積回路の開発方法によって開発する集積 回路を構成するプロックとブロック間ネットをブロック間ネットリストから任意 の規模と個数生成するよう論理合成ツールを制御する装置を提供し、 ァーキテク チヤの共有化を実現し、 再設計と再検証を極力回避することができる集積回路の 開発方法及び集積回路の開発方法を記憶したプログラム記憶媒体を提供すること を目的としている。 The present invention has been made in view of such a problem, and has been developed in consideration of a circuit architecture applied to logic design in the development of a large-scale ASIC and concurrent (parallel) development of logic synthesis and layout. A method of generating an inter-block netlist as connection information between ports from port information of a block obtained by functionally dividing a block and port information of a chip (see Japanese Patent Application Laid-Open No. 2000-90042). The logic synthesis tool is controlled so as to generate an arbitrary size and number of blocks and interblock nets constituting blocks of an integrated circuit developed by the integrated circuit development method by applying the above method from the interblock netlist. A method and an integrated circuit for providing an apparatus, realizing an architecture, and avoiding redesign and reverification as much as possible. And its object is to provide a program storage medium storing a developing method of the road.
また、 近年、 半導体の微細化により 1 0 Mゲートを超す A S I Cも開発可能と なっているが、 電子機器の高機能化と複雑ィ匕に伴い、 仕様設計, 論理設計および フロアプラン、 論理合成, レイァゥト設計、 タイミング検証を行なうインプリメ ント設計が長期化すると共に設計品質の確保が困難となってきている。 特に、 A S I C開発のリメイクは、 電子機器の開発期間の長期化のみならずコストの増大 、 市場投入の機会損失を招いている。 In recent years, ASICs with more than 10M gates can be developed due to the miniaturization of semiconductors. However, as electronic devices have become more sophisticated and complex, specification design, logic design and floor planning, logic synthesis, It has become difficult to secure design quality as the implementation of layout design and timing verification has become longer and longer. In particular, the remake of ASIC development not only prolongs the development period of electronic equipment but also increases costs and leads to loss of opportunity for market introduction.
このため、 開努 T AT (Turn Around Time) が短く、 設計変更が容易なプログ ラマブノレ .ロジックデバイスが多用されつつあるが、 プログラマプル■ ロジック デバイスはコストがかかり、 小型化が困難であることから、 まずプログラマブル -ロジックデバイスで機能を実現し、 プロトタイピングにてデバッグした後、 量 産時期に A S I C化することが多い。 As a result, the TAT (Turn Around Time) is short and the design is easy to change. Logic devices are becoming more popular, but programmable logic devices are costly and difficult to miniaturize. ASICs are often used at the time of birth.
し力 しながら、 A S I C化を前提にプログラマブル'ロジックデバイスのプロ トタイピングにより検証したとしても、 プログラマブノレ -ロジックデバイスから A S I Cへとシリアルな開発では、 総開発手番を短くする事は難しいという問題 がある。 特に、 A S I C開発時のインプリメント設計においてタイミング問題が 発生すると、 プログラマブル'ロジックデバイスの再設計からやり直しとなる可 能性があり、 半導体ベンダなど社外に依託している場合は、 依託先の人的リソー スの確保、 人的リソースの確保に伴うコストの増大を招く。 However, even if verification is performed by prototyping a programmable logic device on the premise of ASIC implementation, it is difficult to reduce the total development turn in serial development from a logic device to an ASIC. There's a problem. In particular, if a timing problem occurs in the implementation design during ASIC development, there is a possibility that the redesign of the programmable logic device will start over, and if a third party such as a semiconductor vendor is outsourced, human resources at the outsourcing site will be required. And increase costs associated with securing human resources.
更には、 プログラマブル.ロジックデバイスと A S I Cデバイス間の構造の違 いから A S I C専用に再設計が発生した場合は、 プログラマブル'ロジックデバ イスによるデバッグが無意味になるばかりでなく、 開発期間が長期化してコスト も増大する。 どちらにしても市場投入の機会損失になる。 Furthermore, if a redesign occurs exclusively for an ASIC due to the difference in structure between the programmable logic device and the ASIC device, not only will debugging with a programmable logic device become meaningless, but the development period will be prolonged and costs will increase. Also increase. Either way, you will lose the opportunity to get to the market.
なお、 A S I Cの大規模化に伴う開発期間の長期化の対策として、 特開 2 0 0 0 - 9 0 1 4 2号公報に記載のとおり、 回路アーキテクチャ検討、 論理設計 -検 証、 インプリメント設計をコンカレントに行っているが、 電子機器の機能の複雑 化と市場の動きの早さによって、 仕様設計、 論理の設計、 検証が長期化し開発手 番を短くする事が困難となってきている。 さらに、 コンカレントに開発を進める 場合には、 A S I C開発の知識を有した人的資源と開発ツールが必要であり、 半 導体技術の進歩に伴い複雑化する開発ツールの教育も必要となるという問題が生 ずる。 As a countermeasure for prolonging the development period due to the increase in the scale of ASICs, as described in Japanese Patent Application Laid-Open No. 2000-90042, circuit architecture study, logic design-verification, and implementation design were implemented. Although they are conducting concurrently, due to the complexity of electronic device functions and the speed of market movement, it has become difficult to shorten the development steps by lengthening the specification design, logic design, and verification. Furthermore, when developing concurrently, human resources and development tools with ASIC development knowledge are required, and there is a need for education on development tools that become more complex as semiconductor technology advances. Birth.
従って、 この発明は、 A S I Cとプログラマブル ·ロジックデバイスのシーム レスなコンカレント開発を可能とし、 設計品質確保と開発期間短縮を両立すると ともに、 開発にかかる人的資源、とコス卜を低減することができる A S I Cとプロ グラマブル.ロジックデバイスのコンカレント開発システム、 開発プログラム及 03 04787 Therefore, the present invention enables seamless and concurrent development of ASICs and programmable logic devices, while ensuring both design quality and shortening the development period, and reducing human resources and costs involved in development. ASICs and programmable logic device concurrent development systems, development programs and 03 04787
び開発方法を提供することも目的とする。 発明の開示 It also aims to provide development and development methods. Disclosure of the invention
第 1図は本努明方法の原理を示すフローチャートである。 請求の範囲第 1項記 载の発明は、 ブロックのポートとポートの接続情報なる A S I Cのコア (論理コ ァ) 力^、 接続関係のある任意のブロックを選択しグループ化する手段により任 意の規模、 個数のプロックのポートとポートの接続情報からなる、 論理合成ツー ^^が読み込み可能な HD Lフォーマットのコア (論理コア) を生成し (ステップ 1 ) 、 チップの端子情報から論理合成ツールで仮のチップデザインを作成し、 こ のデザインに端子を発生させ (ステップ 2 ) 、 作成したデザイン内部にステップ 2と同一のデザィンをセルとして発生させ (ステップ 3 ) 、 デザインとセル間の 同一名称のポートを接続し (ステップ 4 ) 、 接続したポート間のネットに対し、 デバイス ■テクノロジに依存する I /Oバッファを揷入し (ステップ 5 ) 、 ステ ップ 1で作成したコア (論理コア) とセルを入れ替え、 トップ階層であるデザィ ンの階層を展開し、 ネットリストを生成する (ステップ 6 ) 、 こと ¾:特徴とする FIG. 1 is a flowchart showing the principle of this effort method. The invention described in Claim 1 (1) is characterized in that the ASIC core (logical core) power, which is the connection information of the blocks and the port connection information, is arbitrarily selected by means of selecting and grouping any blocks having connection relations. Generates an HDL format core (logical core) that can be read by the logic synthesis tool ^^, which consists of the block and port connection information of the block and the number of blocks (step 1), and uses the logic synthesis tool from the chip terminal information. A temporary chip design is created, terminals are generated in this design (step 2), the same design as in step 2 is generated as cells inside the created design (step 3), and the same name between the design and the cell is created. Connect the ports (Step 4), insert device-technology dependent I / O buffers for the nets between the connected ports (Step 5), and Replace the cell with the core (logical core) created in Step 1 and expand the design hierarchy, which is the top hierarchy, to generate a netlist (Step 6).
請求の範囲第 1項記載の発明では、 ポート名、 レンジ、 入出力定義からブロッ クのポート仕様であるエンティティを作成しファイルに出力する (ファイルに書 き込む) 。 入出力で出力定義されているポートに関して出力信号ファイルを作成 する手段により、 あるプロックの入力ポートに指定された、 出力元インスタンス の出力ポート名に間違いがないかチェックし、 出力元ィンスタンス名にデバイス のパッケージの端子と接続する旨の I /o等、 キーヮードの定義がある場合に、 出力元ィンスタンスの出力ポート名にある名称をデバイスのパッケージの端子名 とし、 該端子が 1本なのか複数 (ベクタ) なのかをレンジの定義から判断する手 段と、 該端子が入力なのか出力なのかを入出力の定義から判断する手段と、 該端 子が双方向なのかを種別の定義から判断する手段により、 コア (論理コア) のポ ート仕様であるエンティティを作成し、 ファイルに出力する。 ここで、 インスタ JP03/04787 In the invention described in claim 1, an entity that is a block port specification is created from a port name, a range, and an input / output definition and output to a file (writing to a file). Check that there is no mistake in the output port name of the output source instance specified for the input port of a certain block by means of creating an output signal file for the ports defined for input and output, and specify the device in the output source instance name. If there is a key word definition such as I / O to connect to the package terminal, the name in the output port name of the output source instance is used as the device package terminal name. Vector) means for judging whether the terminal is an input or output from the input / output definition, and means for judging whether the terminal is an input or output, and judging from the type definition whether the terminal is bidirectional. By means, create an entity that is a port specification of the core (logical core) and output it to a file. Where insta JP03 / 04787
ンスとは回路ュニットのことである。 A sense is a circuit unit.
プロックのポートが入出力定義で入力定義されている場合、 該ポートの出力元 インスタンス名と出力元ィンスタンスの出力ポート名の組が前述の出力信号フ了 ィルに存在するかチェックする手段と、 前記チェック結果、 インスタンス間のポ ートの接続が可能と判断した場合、 インスタンス間を接続する信号を生成し、 フ アイルに出力する。 全インスタンスのチェックを含め、 処理が完了した時、 前述 のコア (論理コア) のエンティティとインスタンス間ネットを読み込み、 コア ( 論理コア) を生成しファイルに出力する。 Means for checking whether a pair of the output source instance name of the block and the output port name of the output source instance exists in the output signal file when the block port is input-defined in the input / output definition; As a result of the check, if it is determined that a port connection between the instances is possible, a signal for connecting the instances is generated and output to a file. When the processing is completed, including checking all instances, the above-mentioned core (logical core) entities and inter-instance nets are read, and a core (logical core) is generated and output to a file.
チェック結果が問題なければ、 プロックの入出力ポート仕様とィンスタンス間 の接続ネットとインスタンスとデバイスパッケージの端子となる外部端子間の接 続ネットからなり、 論理設計部分を全く持たない HD L (ハードウェア記述言語 ) のファイル (以降コア (論理コア) と称する) を出力する手法をコンピュータ に実行させるプログラムを記録したコンピュータが読み取り可能な記録媒体であ る。 If there is no problem with the check result, the HDL (hardware hardware), which consists of the connection net between the block input / output port specifications and the instance, and the connection net between the instance and the external terminal that is the terminal of the device package, has no logical design part This is a computer-readable recording medium that stores a program that causes a computer to execute a method of outputting a file of a description language (hereinafter referred to as a core (logical core)).
従って、 請求の範囲第 1項の発明のコア (論理コア) を生成する手法をコンビ ユータに実行させるプログラムを記憶したプログラム記憶媒体によれば、 集積回 路開発において、 R T L設計の入力となるブロックのポート仕様の品質を事前に 確保できる効果があり、 更に機能プロックが多く存在し、 設計リソースも多い大 規模集積回路の開発においても、 事前にプロック間の接続が確認できていること により、 必ずチップが組み上がることを保証することができる。 Therefore, according to the program storage medium storing a program for causing a computer to execute the method of generating a core (logical core) according to the first aspect of the present invention, a block serving as an input of an RTL design in integrated circuit development The quality of the port specifications can be ensured in advance, and in the development of large-scale integrated circuits with many functional blocks and large design resources, the connection between the blocks can be confirmed in advance, so It is possible to guarantee that the chip is assembled.
請求の範囲第 2項記載の発明は、 A S I Cとプログラマブル'口ジックデバイ スのコンカレント開発を行なう場合において、 プロックのポートとポートの接続 情報からなる A S I Cのコア (論理コア) から、 接続関係のある任意のブロック を選択しグループ化する手段により、 任意の規模、 個数のブロックのポートとポ ートの接続情報からなるコア (論理コア) を生成し (ステップ 1 ) 、 チップの端 子情報から論理合成ツールで仮のチップのデザインを作成し (ステップ 2 ) 、 こ のデザィンに前記チップの端子情報にある名称で端子を発生させ (ステップ 3 ) T JP03/04787 The invention described in claim 2 is an invention in which concurrent development of an ASIC and a programmable logic device is performed, and an arbitrary connection relationship is established from an ASIC core (logical core) comprising block connection information and port connection information. A core (logical core) consisting of port and port connection information of an arbitrary scale and number of blocks is generated by means of selecting and grouping the blocks (step 1), and logic synthesis is performed from the terminal information of the chip. A temporary chip design is created with the tool (Step 2), and a terminal is generated in this design with the name in the terminal information of the chip (Step 3). T JP03 / 04787
、 この内部に前記と同一デザインをセルとして発生させ (ステップ 4 ) 、 ステツ プ 2で作成したデザィンとセル間の同一名称のポートを接続し (ステップ 5 ) 、 この接続ネットに対し、 チップの端子情報からデバイス■テクノロジに依存する I /Oバッファを揷入し (ステップ 6 ) 、 ステップ 1で生成したコア (論理コア ) を前記セルと入れ替え (ステップ 7 ) 、 このコア (論理コア) のトップ階層で ある、 作成したデザインの階層を展開しプログラマプル ·ロジックデバイスのチ ップのネットリストを生成する (ステップ 8 ) 、 ことを特徴とする。 The same design as above is generated as a cell inside the cell (step 4), and the port created with the same name between the design and the cell created in step 2 is connected (step 5). An I / O buffer depending on the device technology is inserted from the information (step 6), the core (logical core) generated in step 1 is replaced with the cell (step 7), and the top hierarchy of this core (logical core) is obtained. The method is characterized in that the created design hierarchy is expanded to generate a netlist of programmable logic device chips (step 8).
請求の範囲第 2項記載の発明は、 A S I Cとプログラマブ ·口ジックデバイ スのコンカレント開発において、 請求の範囲第 1項による A S I Cのコア (論理 コア) 力 ら、 論理合成ツールの機能を、 後述する請求の範囲第 3項及び請求項 4 記載のネットリスト生成手法をコンピュータに実行させるプログラムを記憶した プログラム記憶媒体を搭載した制御装置によつて制御し、 接続関係のある任意の プロックをグループ化し、 プログラマブル · ロジックデバイスのコア (論理コア ) として切り出し、 プログラマプル'ロジックデバイスに依存する I /Oバッフ 了を挿入し、 プログラマブル · ロジックデバイスのチップのネットリストを生成 することを特徴とする集積回路の開発方法である。 The invention described in claim 2 relates to the concurrent development of an ASIC and a programmable logic device. The functions of a logic synthesis tool from the ASIC core (logic core) according to claim 1 will be described later. A netlist generation method according to claims 3 and 4 is controlled by a control device equipped with a program storage medium storing a program for causing a computer to execute the method, and any blocks having a connection relation are grouped, An integrated circuit characterized by cutting out as a core of a programmable logic device (logic core), inserting an I / O buffer depending on a programmable logic device, and generating a netlist of chips of the programmable logic device. It is a development method.
従って、 請求の範囲第 2項記載の集積回路の開発方法によれば、 A S I Cのコ ァ (論理コア) からプログラマプル'ロジックデバイスのコア (論理コア) とし てブロック間接続を保持したまま切り出すため、 本コア (論理コア) を用いたプ ログラマブル · ロジックデバイスの検証を実施すれば、 A S I Cにおいては、 少 なくとも同一の構成での検証の重複を回避することができる。 よって、 A S I C とプログラマブル ·ロジックデバイスのコンカレント開発を効率よく進めること ができる。 Therefore, according to the integrated circuit development method described in claim 2, since the ASIC core (logical core) is cut out as a programmer's logic device core (logical core) while retaining interblock connections, However, if verification of a programmable logic device using this core (logic core) is performed, it is possible to avoid duplication of verification with at least the same configuration in an ASIC. Therefore, concurrent development of ASIC and programmable logic devices can be efficiently promoted.
また、 I ZOバッファを揷入する際、 チップの端子情報から仮のコア (論理コ ァ) を生成し、 ブロックから生成したコア (論理コア) と入れ替える手段によつ て、 ブロックに定義されているチップのポート情報とチップの端子情報をクロス チェックでき、 ブロックのポート仕様とチップ端子仕様の両者の品質を確保する 03 04787 Also, when inserting the IZO buffer, a temporary core (logical core) is generated from the terminal information of the chip, and is replaced by a core (logical core) generated from the block. The port information of the chip and the terminal information of the chip can be cross-checked, ensuring the quality of both the block port specification and the chip terminal specification. 03 04787
8 ことができる。 8 You can
請求の範囲第 3項記載の発明は、 ブロックのポートとポートの接続情報からな る A S I Cのコア (論理コア) から、 接続関係のある任意のプロックを選択しグ ループ化する手段により、 任意の規模、 個数のプロックのポートとポートの接続 情報からなるネットリストを生成することを特徴とする。 The invention described in claim 3 is a method for selecting an arbitrary block having a connection relationship from an ASIC core (logical core) consisting of block port and port connection information and forming an arbitrary block by means of a group. It is characterized by generating a netlist consisting of block size and number of block ports and port connection information.
このように構成すれば、 任意の規模、 個数のブロックのポートとポートの接続 情報からなるネットリストを生成することができる。 With this configuration, it is possible to generate a netlist including ports of arbitrary size and number of blocks and connection information of the ports.
請求項 4記載の発明は、 ブロックのポートとポートの接続情報からなる A S I Cのコア (論理コア) から、 接続関係のある任意のブロックを選択しグループ化 する手段により、 任意の規模、 個数のブロックのポートとポートの接続情報から なるコア (論理コア) を生成し (ステップ 1 ) 、 チップの端子情報から、 論理合 成ッールで仮のチップのデザィンを作成し、 このデザィンに前記チップの端子情 報にある名称で端子を発生させ (ステップ 2 ) 、 この内部に前記と同一デザイン をセルとして発生させ (ステップ 3 ) 、 前記デザインとセル間の同一名称のポー トを接続し (ステップ 4 ) 、 この接続ネットに対しチップの端子情報からデバイ ス .テクノロジに依存する I /Oバッファを揷入し (ステップ 5 ) 、 ステップ 1 で生成したコア (論理コア) を前記セルと入れ替え (ステップ 6 ) 、 このコア ( 論理コア) のトップの階層であるステップ 2で作成したデザィンの階層を展開し てチップネットリストを生成する (ステップ 7 ) 、 ことを特徴とする。 The invention according to claim 4 is a method of selecting and grouping arbitrary blocks having a connection relationship from an ASIC core (logical core) comprising block port and port connection information, thereby providing blocks of an arbitrary size and number. A core (logical core) consisting of port-to-port connection information is generated (step 1), and a tentative chip design is created from the terminal information of the chip using a logic synthesis tool, and the terminal information of the chip is written in this design. A terminal is generated with the name in the report (step 2), the same design as above is generated as a cell therein (step 3), and a port having the same name is connected between the design and the cell (step 4). For this connection net, an I / O buffer depending on the device and technology is inserted from the terminal information of the chip (step 5), and the core generated in step 1 is (Logical core) is replaced with the cell (Step 6), and a chip net list is generated by expanding the design hierarchy created in Step 2, which is the top hierarchy of this core (Logical core) (Step 7). It is characterized by.
このように構成すれば、 任意の規模、 個数のブロックのポートとポートの接続 情報からなるネットリストから、 チップネットリストを生成することができる。 請求の範囲第 5項記載の発明は、 任意の規模、 個数のブロックのポートとポー トの接続情報からなるネットリストを生成する場合において、 トップ階層のポー ト名をネット名から接続先のプロックのポート名と一致するようにポート名を修 正し、 プロックのポートとポートの接続情報からなるネットリストを生成するこ とを特 ί敫とする。 With this configuration, it is possible to generate a chip netlist from a netlist composed of port information of ports of arbitrary size and number of blocks. The invention described in Claim 5 is a method for generating a netlist including ports of arbitrary size and number of blocks and connection information of the ports, and the port name of the top hierarchy is converted from the net name to the connection destination block. The feature is to modify the port name so that it matches the port name of the block, and to generate a netlist consisting of block ports and port connection information.
請求の範囲第 5項記載の発明は、 A S I Cとプログラマプル -ロジックデバイ 3 04787 The invention described in claim 5 relates to an ASIC and a programmable logic device. 3 04787
スのコンカレント開発において、 ブロックのポ一トとポートの接続情報からなるIn block concurrent development, it consists of block port and port connection information
A S I Cのコア (論理コア) 力、ら、 接続関係のある任意のブロックをグループ化 し、 論理合成ツールの機能を使用してプログラマブル 'ロジックデバイスのコア (論理コア) として切り出す場合、 通常切り出したコア (論理コア) のトップの ポート名称は、 当該ポートに接続されているネット名となる。 ASIC cores (logical cores) When any arbitrary blocks that have a connection relationship are grouped together and cut out as programmable logic device cores (logical cores) using the functions of a logic synthesis tool, the cores that are usually cut out The port name at the top of (logical core) is the net name connected to the port.
これを論理合成ツールの機能を制御してポートからコア (論理コア) 内部へネ ットをトレースし、 最初に発見したブロックのポート名称に付け替えることを特 徴とする論理合成ツールの制御方法である。 This is a logic synthesis tool control method characterized by controlling the function of the logic synthesis tool, tracing the net from the port to the inside of the core (logical core), and replacing it with the port name of the first block found. is there.
従って、 本請求の範囲第 5項のプログラマブル'ロジックデバイスのコア (論 理コア) を生成する手法を論理合成ツールに実行させるプログラムを記憶した記 憶媒体によれば、 ポートの機能を判断することが難しいネット名がポートの名称 となる場合の論理検証等デバッグの効率の低下を防ぐことができる。 Therefore, according to the storage medium storing the program for causing the logic synthesis tool to execute the method for generating the core of the programmable logic device (logical core) according to claim 5, it is possible to determine the function of the port. This can prevent a decrease in debugging efficiency such as logic verification when a net name that is difficult to use becomes a port name.
上述のようにして、 設計ドキュメントのデータからコア (論理コア) を生成し 、 該コア (論理コア) カゝら階層構造及び接続情報を保持した状態でプログラマブ ル ' ロジックデバイス用に新たにコア (論理コア) を生成することで、 回路ァー キテクチャを共有することができ、 回路データを填め込み、 機能検証したインス タンス内のデバイス ·テクノロジに依存しない回路データ及びインスタンス間の ネットは、 A S I C化した場合に再検証を回避することが可能となり、 A S I C とプログラマブル ·口ジックデバイス間の違いによる再設計も回避することが可 言 gとなる。 As described above, a core (logical core) is generated from the data of the design document, and the core (logical core) is newly created for the programmable logic device while retaining the hierarchical structure and connection information. (Logical core) can be used to share the circuit architecture. The circuit data can be loaded, and the circuit data independent of the device technology in the instance whose function has been verified and the nets between the instances can be stored in ASICs. In this case, re-verification can be avoided, and re-design due to the difference between ASIC and programmable and magic devices can be avoided.
また、 この発明において、 ブロックのポートとポート間の接続情報からなる A S I Cのコア (論理コア) から、 A S I Cを構成する任意のブロックを選択し、 グループ化することにより、 選択したプロックで構成されるブロックのポートと ポート間の接続情報からなるプログラマブル 'ロジックデバイスのコア (論理コ ァ) の生成を制御する論理合成ツールの制御装置において、 論理合成ツールが生 成した設計者が選択したプロックで構成されるプログラマブル ·ロジックデバイ 'スのコア (論理コア) のポートに対して、 論理合成ツールがポート名として付与 したネット名を、 該ポートにつながるネットを迪り、 接続されているプログラマ ブル ·ロジックデバイスを構成するプロックのポートの名称に変更する制御を行 なう手段と、 チップの端子情報から、 チップの端子情報で指定されたポートをも つ仮のチップのデザィンを論理合成ツールで生成する手段と、 このデザィン内部 に前記仮のチップのデザインをセルとして発生させる手段と、 前記仮のチップの デザィンとセル間の同一名称のポート間を接続し、 この接続したネットに対し、 チップの端子情報からデバイス ·テクノロジに依存する I /Oバッファを挿入し 、 前記名称を変更した論理合成ツールが生成した、 設計者が選択したブロックで 構成されるプログラマブル 'ロジックデバイスのコア (論理コア) とセノレとを入 れ替える手段と、 このコア (論理コア) のトップ階層を展開することによりプロ グラマブノレ■ロジックデバイスのチップネットリストを生成する手段、 とを具備 することを特徴とする。 Further, in the present invention, an arbitrary block constituting the ASIC is selected from an ASIC core (logical core) consisting of connection information between the ports of the block and the ports, and the blocks are configured by the selected block. A logic synthesis tool control device that controls the generation of a programmable logic device core (logic core) consisting of block port-to-port connection information, consisting of blocks selected by the designer who generated the logic synthesis tool The logic synthesis tool assigns a port name to the port of the programmable logic device core (logic core) From the net connected to the port to the name of the port of the block that constitutes the connected programmable logic device, and from the terminal information of the chip, Means for generating a design of a temporary chip having a port specified by the terminal information with a logic synthesis tool, means for generating the design of the temporary chip as cells inside the design, and design of the temporary chip. Ports with the same name between cells are connected, and an I / O buffer depending on device technology is inserted from the chip terminal information into the connected net, and a logic synthesis tool whose name is changed is generated. Swap the core of a programmable logic device (logic core) consisting of blocks selected by the designer with senoré A stage, means for generating a chip netlist Pro Guramabunore ■ logic devices by developing the top-level of the core (logic core), characterized by including the capital.
このように構成すれば、 プログラマブル ·ロジックデバイスのチップネットリ ストを生成することが可能となる。 With this configuration, it is possible to generate a chip netlist of a programmable logic device.
また、 本発明は、 A S I Cとプログラマブル -口ジックデバイスのコンカレン ト開発方法であって、 A S I Cを構成する機能ブロックをポート間接続情報に基 づいてグループ化し、 該グループ化した機能プロックのポートとポート間接続情 報からなるネットリストをプログラマプル'ロジックデバイスのコア (論理コア ) として生成するネットリスト生成工程と、 前記 A S I Cを構成する機能プロッ クの回路データから A S I C用論理合成データ及びプログラマブル■ロジックデ バイス用論理合成データを作成する論理合成工程と、 前記グループ化した機能ブ ロックについてのプログラマブノレ■ 口ジックデバイス用論理合成データを前記ネ ットリスト生成工程により生成されたネットリストに填め込んでプログラマブル ■ロジックデバイスの回路を記録した実機評価用 R OMデータを生成する R OM データ生成工程と、 前記論理合成工程により作成された A S I C用論理合成デー タを用いて A S I Cのレイァゥト作成およびタイミング検証を前記 R OMデータ 生成工程による実機評価用 R OMデータの生成とコンカレントに行なうレイァゥ ト作成工程と、 前記 R OMデータ生成工程により生成された R OMデータを用い た実機評価結果に基づく回路データの変更を前記 A S I Cのレイァゥト作成およ びタイミング検証に反映する差分反映工程と、 を含んだことを特徴とする。 The present invention also relates to a method for concurrently developing an ASIC and a programmable logic device, wherein functional blocks constituting the ASIC are grouped based on information on connection between ports, and ports and ports of the grouped functional blocks are provided. List generation step of generating a netlist consisting of interconnect information as a programmer's logic device core (logic core), and logic synthesis data for ASIC and programmable logic data from the circuit data of the functional blocks constituting the ASIC. A logic synthesis step of creating logic synthesis data for a device; and a programmable memory for the grouped functional blocks. The logic synthesis data for a magic device is inserted into the netlist generated in the netlist generation step and programmed. ■ Record the logic device circuit A ROM data generating step for generating the ROM data for actual machine evaluation, and an ASIC layout creation and timing verification using the ASIC logic synthesis data created in the logic synthesis step, by the ROM data generating step. Layers for generating and concurrently generating evaluation ROM data And a difference reflection step of reflecting a change in circuit data based on an actual device evaluation result using the ROM data generated in the ROM data generation step in the layout creation and timing verification of the ASIC. It is characterized by including.
また、 本発明は、 A S I Cとプログラマブル' ロジックデバイスのコンカレン ト開発プログラムであって、 A S I Cを構成する機能ブロックをポート間接続情 報に基づいてグループ化し、 該グループ化した機能プロックのポートとポート間 接続情報からなるネットリストをプログラマブル■ ロジックデバイスのコア (論 理コア) として生成するネットリス ト生成手順と、 前記 A S I Cを構成する機能 プロックの回路データから A S I C用論理合成データ及びプログラマブル ·ロジ ックデバイス用論理合成データを作成する論理合成手順と、 前記グループ化した 機能プロックについてのプログラマブル■ ロジックデバイス用論理合成データを 前記ネットリスト生成手順により生成されたネットリス トに填め込んでプロダラ マブル 'ロジックデバイスの回路を記録した実機評価用 R OMデータを生成する R OMデータ生成手順と、 前記論理合成手順により作成された A S I C用論理合 成データを用いて A S I Cのレイァゥト作成およびタイミング検証を前記 R OM データ生成手順による実機評価用 R O Mデータの生成とコンカレントに行なうレ ィァゥト作成手順と、 前記 R OMデータ生成手順により生成された R OMデータ を用いた実機評価結果に基づく回路データの変更を前記 A S I Cのレイアウト作 成およびタイミング検証に反映する差分反映手順と、 をコンピュータに実行させ ることを特 ί敷とする。 Further, the present invention is a concurrent development program for an ASIC and a programmable logic device, wherein functional blocks constituting the ASIC are grouped based on connection information between ports, and the ports of the grouped functional blocks are connected to each other. A netlist generation procedure for generating a netlist consisting of connection information as a core of a programmable logic device (logical core), and logic synthesis data for ASIC and programmable logic device from circuit data of a function block constituting the ASIC. A logic synthesis procedure for creating logic synthesis data, and a programmable logic logic data for the grouped function blocks are inserted into the netlist generated by the netlist generation procedure. Data generation procedure for generating actual machine evaluation ROM data that records the circuit of the ASIC, and ASIC layout creation and timing verification using the ASIC logic synthesis data created by the logic synthesis procedure. A rate creation procedure for performing concurrently with the generation of the ROM data for the actual device evaluation by the data generation procedure, and a change of the circuit data based on the actual device evaluation result using the ROM data generated by the ROM data generation procedure. The difference reflection procedure to be reflected in the layout creation and the timing verification, and the step of causing the computer to execute the steps are specially provided.
かかる発明によれば、 A S I Cを構成する機能プロックをポート間接続情報に 基づいてグループィ匕し、 グループ化した機能プロックのポートとポート間接続情 報からなるネットリストをプログラマブ /レ -ロジックデバイスのコア (論理コア ) として生成し、 A S I Cを構成する機能ブロックの回路データから A S I C用 論理合成データ及びプログラマブル'ロジックデバイス用論理合成データを作成 し、 グループ化した機能ブロックについてのプログラマブル .ロジックデバイス 用論理合成データを生成したネットリストに填め込んでプログラマブル■ ロジッ クデバイスの回路を記録した実機評価用 R OMデータを生成し、 作成した A S I C用論理合成データを用いて A S I Cのレイァゥト作成おょぴタイミング検証を 実機評価用 R OMデータの生成とコンカレントに行ない、 生成した R〇Mデータ を用いた実機評価結果に基づく回路データの変更を A S I Cのレイァゥト作成お よびタイミング検証に反映することとしたので、 A S I Cとプログラマブノレ - 口 ジックデバイスの効率的なコンカレント開発が可能になり、 A S I Cの開発期間 を短縮することができる。 According to the invention, the function blocks constituting the ASIC are grouped based on the inter-port connection information, and the netlist including the grouped function block ports and the inter-port connection information is programmed / re-logic device. Logic synthesis data for ASICs and logic synthesis data for programmable logic devices are created from the circuit data of the function blocks that make up the ASIC. The logic synthesis data is inserted into the generated netlist to create a programmable logic Generates RM data for actual device evaluation that records the circuit of the ASIC device, and performs ASIC layout creation and timing verification using the created ASIC logic synthesis data concurrently with the generation of the RM data for actual device evaluation. Circuit data changes based on the actual machine evaluation results using the generated R〇M data are reflected in ASIC layout creation and timing verification, so efficient concurrent development of ASICs and programmable devices ASIC development time can be shortened.
また、 本発明は、 A S I Cとプログラマフ レ ' ロジックデバイスのコンカレン ト開発システムであって、 A S I Cを構成する機能ブロックをポート間接続情報 に基づいてグループ化し、 該グループ化した機能ブロックのポートとポート間接 続情報からなるネットリス トをプログラマブル · ロジックデバイスのコア (論理 コア) として生成するネットリスト生成手段と、 前記 A S I Cを構成する機能ブ ロックの回路データから A S I C用論理合成データ及びプログラマブル · ロジッ クデバイス用論理合成データを作成する論理合成手段と、 前記グループ化した機 能プロックについてのプログラマブル ·ロジックデバイス用論理合成データを前 記ネットリスト生成手段により生成されたネットリス トに填め込んでプログラマ ブル 'ロジックデバイスの回路を記録した実機評価用 R OMデータを生成する R OMデータ生成手段と、 前記論理合成手段により作成された A S I C用論理合成 データを用いて A S I Cのレイァゥト作成およびタイミング検証を前記 R OMデ ータ生成手段による実機評価用 R OMデータの生成とコンカレントに行なうレイ アウト作成手段と、 を備えたことを特徴とする。 Further, the present invention is a concurrent development system of an ASIC and a programmer-free logic device, wherein functional blocks constituting the ASIC are grouped based on connection information between ports, and ports and ports of the grouped functional blocks are provided. Netlist generating means for generating a netlist consisting of indirect information as a core (logic core) of a programmable logic device; and logic synthesis data for ASIC and programmable logic from circuit data of function blocks constituting the ASIC. Logic synthesis means for creating logic synthesis data for the device; programmable logic data for the grouped function blocks; programmable by inserting the logic synthesis data for the logic device into the netlist generated by the netlist generation means. 'Logic device Data generating means for generating actual machine evaluation ROM data recording the circuit of the ASIC, and ASIC layout creation and timing verification using the ASIC logic synthesis data created by the logic synthesis means. And a layout generating means for concurrently generating the real machine evaluation ROM data by the data generating means and the layout generating means.
この発明によれば、 A S I Cを構成する機能プロックをポート間接続情報に基 づいてグループ化し、 グループ化した機能プロックのポートとポート間接続情報 からなるネットリストをプログラマブル' ロジックデバイスのコア (論理コア) として生成し、 A S I Cを構成する機能ブロックの回路データから A S I C用論 理合成データ及びプログラマブル ' ロジックデバイス用論理合成データを作成し 、 グループ化した機能ブロックについてのプログラマブル' ロジックデバイス用 論理合成データを生成したネットリストに填め込んでプログラマブル 'ロジック デバイスの回路を記録した実機評価用 R OMデータを生成し、 作成した A S I C 用論理合成データを用いて A S I Cのレイァゥト作成およびタイミング検証を実 機評価用 R OMデータの生成とコンカレントに行なうこととしたので、 A S I C とプログラマブル. ロジックデバイスの効率的なコンカレント開発が可能になり . A S I Cの開発期間を短縮することができる。 According to the present invention, the function blocks constituting the ASIC are grouped based on the inter-port connection information, and a netlist including the grouped function block ports and the inter-port connection information is programmed by a programmable logic device core (logical core). ) Logic synthesis data for ASIC and programmable 'Logic synthesis data for logic devices are created from the circuit data of the function blocks constituting the ASIC, and the logic synthesis data for the grouped function blocks are programmable' for logic devices. Logic synthesis data is inserted into the generated netlist to generate ROM data for actual equipment evaluation that records the programmable logic device circuits, and ASIC layout creation and timing verification are performed using the created ASIC logic synthesis data. Since the machine evaluation ROM data is generated and performed concurrently, efficient concurrent development of ASICs and programmable logic devices becomes possible, and the development period of ASICs can be shortened.
また、 本発明は、 ネットワークに接続されたコンピュータからユーザが利用す る A S I Cとプログラマブル'ロジックデバイスのコンカレント開発システムに おいて、 前記ユーザの要求に応じて A S I Cの論理合成を実行する A S I C論理 合成手段と、 前記 A S I C論理合成手段により作成された A S I Cの論理合成結 果が前記ユーザの要求する速度性能を満足したか否かを判断する A S I C論理合 成結果判断手段と、 前記 A S I C論理合成結果判断手段による判断結果に基づい てプログラマブル ·ロジックデパイスの論理合成を実行するプログラマブル -口 ジックデバイス論理合成手段と、 前記 A S I C論理合成手段による A S I C論理 合成の実行結果及び前記プログラマブル ·口ジックデバイス論理合成手段による プログラマブル 'ロジックデパイス論理合成の実行結果を前記コンピュータに表 示する論理合成結果表示手段と、 前記 A S I C論理合成手段による A S I C論理 合成の実行開始と実行結果及び前記プログラマブル ·ロジックデバイス論理合成 手段によるプログラマブノレ 'ロジックデバイス論理合成の実行開始と実行結果を 前記ユーザに電子メールで通知する論理合成通知手段と、 を備えたことを特徴と する。 The present invention also provides an ASIC logic synthesis means for executing logic synthesis of an ASIC in response to a user request in a concurrent development system of an ASIC and a programmable logic device used by a user from a computer connected to a network. ASIC logic synthesis result judging means for judging whether the logic synthesis result of the ASIC created by the ASIC logic synthesis means satisfies the speed performance requested by the user, and the ASIC logic synthesis result judging means Programmable logic device logic synthesis means for executing logic synthesis of a programmable logic device based on the determination result by the ASIC logic synthesis means executed by the ASIC logic synthesis means and programmable logic device logic synthesis means by the programmable logic device logic synthesis means '' Logic device logic Logic synthesis result display means for displaying the execution result of the synthesis on the computer; ASIC logic synthesis execution start and execution result by the ASIC logic synthesis means; and programmable logic device logic logic by the programmable logic device logic synthesis means. Logic synthesis notifying means for notifying the user of the start of execution of synthesis and the execution result by e-mail.
また、 本発明は、 ネットワークに接続されたコンピュータからユーザが利用す る A S I Cとプログラマブル'ロジックデバイスのコンカレント開発方法におい て、 前記ユーザの要求に応じて A S I Cの論理合成を実行する A S I C論理合成 工程と、 前記 A S I C論理合成工程により作成された A S I Cの論理合成結果が 前記ユーザの要求する速度性能を満足したカゝ否かを判断する A S I C論理合成結 果判断工程と、 前記 A S I C論理合成結果判断工程による判断結果に基づいてプ ログラマブル' ロジックデバイスの論理合成を実行するプログラマブル'ロジッ クデバイス論理合成工程と、 前記 A S I C論理合成工程による A S I C論理合成 の実行結果及び前記プログラマブル · ロジックデバイス論理合成工程によるプロ グラマブル ·口ジックデバイス論理合成の実行結果を前記コンピュータに表示す る論理合成結果表示工程と、 前記 A S I C論理合成工程による A S I C論理合成 の実行開始と実行結果及び前記プログラマプル ·ロジックデバイス論理合成工程 によるプログラマブル 'ロジックデバイス論理合成の実行開始と実行結果を前記 ユーザに電子メールで通知する論理合成通知工程と、 を含んだことを特徴とする かかる発明によれば、 ユーザの要求に応じて A S I Cの論理合成を実行し、 作 成した A S I Cの論理合成結果がユーザの要求する速度性能を満足したカゝ否かを 判断し、 判断結果に基づいてプログラマプル 'ロジックデバイスの論理合成を実 行し、 A S I C論理合成の実行結果及びプログラマブル'ロジックデバイス論理 合成の実行結果をコンピュータに表示し、 A S I C論理合成の実行開始と実行結 果及びプ口グラマブル 'ロジックデバイス論理合成の実行開始と実行結果をユー ザに電子メールで通知することとしたので、 ユーザは、 論理合成の専任者を設置 する必要がなく、 いつでも論理合成が実行でき、 専任者が実行したが如く論理合 成品質を均一に保つことができるとともに、 電子メールで論理合成の開始と結果 の通知を受けることができ、 論理合成の進拔を定期的にコンピュータで確認する 必要がなくなる。 Further, the present invention provides a concurrent development method of an ASIC and a programmable logic device used by a user from a computer connected to a network, wherein the ASIC logic synthesis step executes logic synthesis of the ASIC in response to the user's request. An ASIC logic synthesis result determining step of determining whether the logic synthesis result of the ASIC created in the ASIC logic synthesis step satisfies the speed performance requested by the user; and Based on the judgment result, Programmable logic device logic synthesis process that executes logic synthesis of a logic device logic device, ASIC logic synthesis execution result by the ASIC logic synthesis process, and programmable logic device logic synthesis process by the programmable logic device logic synthesis process. A logic synthesis result display step of displaying the execution result of the ASIC logic synthesis on the computer, and an execution start and execution result of the ASIC logic synthesis by the ASIC logic synthesis step, and a programmable logic device logic synthesis by the programmable logic device logic synthesis step. A logic synthesis notifying step of notifying the user of the execution start and the execution result to the user by e-mail. According to the invention, the logic synthesis of the ASIC is executed in response to the request of the user, and the creation is performed. ASIC logic synthesis results Judge whether or not the speed meets the speed performance to be performed.Based on the judgment result, execute logic synthesis of the programmer's logic device, and execute the execution result of the ASIC logic synthesis and the execution result of the programmable logic device logic synthesis on the computer. The start of execution of ASIC logic synthesis and the execution result and the programmable logic device logic synthesis execution start and execution result are notified to the user by e-mail. There is no need to set up a user, the logic synthesis can be executed at any time, the quality of the synthesis can be kept uniform as if by a dedicated person, and the start of the logic synthesis and notification of the result can be received by e-mail. This eliminates the need to regularly check the progress of logic synthesis on a computer.
また、 本発明は、 前記ユーザの要求に応じて前記 A S I Cを構成する機能プロ ックから前記ユーザが指定する複数の機能プロックのポート間接続情報から成る ネットリストを生成するネットリスト生成手段と、 前記ネットリスト生成手段に より生成されたネットリストに論理合成済み対象機能ブロックのデータを填め込 んでプログラマブノレ -ロジックデバイスの回路を記録した R OMデータを生成す る R OMデータ生成手段と、 前記 R OMデータ生成手段により生成された R〇M データの生成結果を前記コンピュータに表示する R O Mデータ生成結果表示手段 4787 Also, the present invention provides a netlist generating means for generating a netlist including inter-port connection information of a plurality of function blocks specified by the user from a function block configuring the ASIC in response to the user's request, ROM data generating means for inserting ROM data of a logic-synthesized target functional block into a netlist generated by the netlist generating means to generate ROM data recording a circuit of a programmable logic device; ROM data generation result display means for displaying the generation result of the R〇M data generated by the ROM data generation means on the computer 4787
15 と、 前記 R OMデータ生成手段により生成された R OMデータの生成結果を前記 ユーザに電子メールで通知する R OMデータ生成結果通知手段とをさらに備えた ことを特徴とする。 15 and a ROM data generation result notifying means for notifying the user of the generation result of the ROM data generated by the ROM data generating means to the user by e-mail.
この発明によれば、 ユーザの要求に応じて A S I Cを構成する機能ブロックか らユーザが指定する複数の機能プロックのポート間接続情報から成るネットリス トを生成し、 生成したネットリストに論理合成済み対象機能プロックのデータを 填め込んでプログラマブル ·ロジックデバイスの回路を記録した R OMデータを 生成し、 生成した R OMデータの生成結果をコンピュータに表示するとともに、 ユーザに電子メールで通知することとしたので、 ユーザは、 プログラマブル - 口 ジックデバイス専用の開発環境が必要なく、 プログラマプル'ロジックデバイス の回路を記録した R OMデータを作成する負荷と、 時間と、 かかるコストとを削 減することができる。 According to the present invention, a netlist including connection information between ports of a plurality of function blocks specified by a user is generated from a function block configuring an ASIC in response to a user request, and logical synthesis is performed on the generated netlist. By inserting the data of the target function block and generating ROM data that records the circuit of the programmable logic device, the generated results of the generated ROM data are displayed on a computer and the user is notified by e-mail. This eliminates the need for a dedicated development environment for programmable logic devices, reducing the load, time, and cost of creating ROM data that records the circuit of a programmable logic device. .
また、 本発明は、 前記ユーザが指定した前記 A S I Cを構成する機能プロック の設計が未完了で回路データが存在しない場合に、 当該機能プロックの入力端子 及び出力端子に仮のフリップ 'フロップなどを用いた回路を揷入したネットリス トを生成する仮ネットリスト生成手段をさらに備えたことを特徴とする。 Further, the present invention provides a method of using a temporary flip-flop or the like for the input terminal and the output terminal of the function block when the design of the function block configuring the ASIC specified by the user is not completed and there is no circuit data. And a temporary netlist generating means for generating a netlist incorporating the existing circuit.
この発明によれば、 ユーザが指定した A S I Cを構成する機能ブロックの設計 が未完了で回路データが存在しない場合に、 当該機能プロックの入力端子及び出 力端子に仮のフリップ ·フロップなどを用いた回路を挿入したネットリストを生 成することとしたので、 プログラマブル ·ロジックデバイスのプロトタイピンク' による検証において、 検証対象ではない機能ブロックの設計が完了していなくと も、 プロトタイピングによる検証を進めることができ、 検証の効率化を図ること ができる。 According to the present invention, when the design of the functional block constituting the ASIC specified by the user is not completed and there is no circuit data, a temporary flip-flop or the like is used for the input terminal and the output terminal of the function block. Since we decided to generate a netlist with the circuit inserted, we will proceed with prototyping verification of the programmable logic device even if the design of the functional blocks that are not to be verified has not been completed in the verification using prototype pink '. And the efficiency of verification can be improved.
また、 本発明は、 前記ユーザが持つ最新の回路データとインプリメント設計者 がィンプリメント設計に取り込んでいる回路データ間の変更の規模を監視する監 視手段と、 前記監視手段による監視結果及びレイァゥト設計にかかる時間に基づ いて計画された日時に到達すると前記変更を前記 A S I Cのインプリメント設計 への反映のタイミングにあることを前記ユーザ及び前記 A S I Cのインプリメン ト設計者に電子メールで通知する変更タイミング通知手段と、 前記変更タイミン グ通知手段に応答して前記ユーザが前記反映の日付を変更することで停止を要求 する反映停止要求手段とをさらに備えたことを特徴とする。 Further, the present invention provides a monitoring means for monitoring the scale of change between the latest circuit data held by the user and the circuit data taken by the implementation designer in the implementation design, and a monitoring result and a rate design by the monitoring means. When the scheduled date and time is reached based on the time, the change is implemented in the ASIC implementation design. Change timing notifying means for notifying the user and the ASIC implementation designer of the timing of the reflection by e-mail, and in response to the change timing notifying means, the user sets the date of the reflection. And a reflection suspension requesting means for requesting suspension by changing.
この発明によれば、 ユーザが持つ最新の回路データとインプリメント設計者が ィンプリメント設計に取り込んでいる回路データ間の変更の規模を監視し、 監視 結果及びレイアウト設計にかかる時間に基づいて計画された曰時に到達すると変 更を A S I Cのインプリメント設計へ反映するタイミングにあることをユーザ及 び A S I Cのインプリメント設計者に電子メールで通知し、 この通知に応答して ユーザが反映の日付を変更することで停止を要求することとしたので、 発生した 変更を効率よく A S I Cのレイァゥト設計に反映することができるとともに、 変 更を反映するタイミングを設定することで、 ユーザはいつまで変更することが可 能かを判断することができ、 早い段階でスケジュールの見直しができる。 According to the present invention, the magnitude of a change between the latest circuit data held by the user and the circuit data taken by the implementation designer in the implementation design is monitored, and the plan designed based on the monitoring result and the time required for the layout design is described. When the time arrives, the user and the ASIC implementation designer are notified by e-mail that it is time to reflect the change to the ASIC implementation design, and the user changes the reflection date in response to this notification and stops. Changes can be efficiently reflected in the ASIC layout design, and the user can determine when changes can be made by setting the timing to reflect the changes. Schedule can be reviewed at an early stage.
また、 本発明は、 一方では、 複数の機能ブロックの全部又は一部の機能ブロッ クを含む F P G Aの端子情報が記述された第 1デザィンと、 該第 1デザィンの下 位層として記述された該 F P G Aと同様の端子情報が記述された第 2デザインと から、 該第 1デザイン、 第 2デザインにおける同一端子間が接続され、 かつ、 該 端子間に F P G A対応のバッファが挿入された F P G A用デザィン情報を生成し 、 他方では、 該複数の機能ブロックを含む A S I Cの端子情報が記述された第3 デザィンと、 該第 3デザィンの下位層として記述された該 A S I Cと同様の端子 情報が記述された第 4デザインとから、 該第 3デザイン、 第 4デザイン間におけ る同一端子間が接続され、 かつ、 該端子間に A S I C対応のバッファが揷入され た A S I C用デザイン情報を生成し、 前記第 2デザイン、 第 4デザインのそれぞ れを、 各デザィンが含む機能プロックの接続情報に基づいて生成された回路情報 で置き換える、 ことで F P G A及び A S I Cのネットリストを生成することを特 徴とする。 On the other hand, the present invention provides a first design in which terminal information of an FPGA including all or a part of functional blocks of a plurality of functional blocks is described, and a first design described as a lower layer of the first design. From the second design in which the same terminal information as the FPGA is described, the design information for FPGA in which the same terminals in the first design and the second design are connected and a buffer corresponding to the FPGA is inserted between the terminals. On the other hand, a third design in which terminal information of an ASIC including the plurality of functional blocks is described, and a third design in which terminal information similar to that of the ASIC described as a lower layer of the third design are described. From the four designs, ASIC design information in which the same terminal between the third design and the fourth design is connected, and an ASIC-compatible buffer is inserted between the terminals, and the second design is generated. design It is characterized by generating netlists of FPGA and ASIC by replacing each of the fourth designs with circuit information generated based on the connection information of function blocks included in each design.
この発明によれば、 一方では、 複数の機能ブロックの全部又は一部の機能プロ ックを含む F P G Aの端子情報が記述された第 1デザィンと、 第 1デザィンの下 位層として記述された F P G Aと同様の端子情報が記述された第 2デザィンとか ら、 第 1デザイン、 第 2デザインにおける同一端子間が接続され、 かつ、 端子間 に F P G A対応のバッファが挿入された F P G A用デザィン情報を生成し、 他方 では、 複数の機能ブロックを含む A S I Cの端子情報が記述された第 3デザィン と、 第 3デザィンの下位層として記述された A S I Cと同様の端子情報が記述さ れた第 4デザインとから、 第 3デザイン、 第 4デザイン間における同一端子間が 接続され、 かつ、 端子間に A S I C対応のバッファが揷入された A S I C用デザ イン情報を生成し、 第 2デザイン、 第 4デザインのそれぞれを、 各デザインが含 む機能プロックの接続情報に基づいて生成された回路情報で置き換える、 ことで F P G A及び A S I Cのネットリストを生成することとしたので、 A S I Cとプ 口グラマブル 'ロジックデバイスの効率的なコンカレント開発が可能になり、 A S I Cの開発期間を短縮することができる。 図面の簡単な説明 According to the present invention, on the other hand, all or some of the functional blocks of the plurality of functional blocks are provided. The first design, which describes the terminal information of the FPGA including the logic, and the second design, which describes the same terminal information as the FPGA described as the lower layer of the first design, from the first design, the second design Generates FPGA design information in which the same terminals in the design are connected and an FPGA-compatible buffer is inserted between the terminals. On the other hand, a third design in which the ASIC terminal information including a plurality of functional blocks is described And the fourth design in which the same terminal information as the ASIC described in the lower layer of the third design is described, the same terminals are connected between the third design and the fourth design, and between the terminals. Generates ASIC design information in which ASIC-compatible buffers are inserted, and converts the second and fourth designs based on the connection information of the function blocks included in each design. By replacing the information with information, a netlist for FPGAs and ASICs was created, enabling efficient concurrent development of ASICs and programmable logic devices and shortening the ASIC development period. BRIEF DESCRIPTION OF THE FIGURES
第 1図は、 本発明方法の原理を示すフローチャートであり、 第 2図は、 本発明 の実施の形態 1の動作説明図であり、 第 3図は、 本発明の論理合成ツール制御装 置の一実施の形態例を示すブロック図であり、 第 4図は、 制御装置の一実施の形 態例を示すブロック図であり、 第 5図は、 コア (論理コア) 生成プログラムを示 すフローチャート (1 ) であり、 第 6図は、 コア (論理コア) 生成プログラムを 示すフローチャート (2 ) であり、 第 7図は、 本発明の実施の形態 1の詳細手順 を示すフローチャートであり、 第 8図は、 コア (論理コア) デザインチェック制 御を示すフローチャートであり、 第 9図は、 グループ化制御を示すフローチヤ一 トであり、 第 1 0図は、 I /Oバッファ揷入制御を示すフローチャートと処理の イメージを示す図であり、 第 1 1図は、 集積回路設計の手順を示すフローチヤ一 トであり、 第 1 2図は、 本実施の形態 2に係る A S I Cと F P GAのコンカレン ト開発の概念を説明するための説明図であり、 第 1 3図は、 本実施の形態 2に係 る AS I Cと F PGAのコンカレント開発システムのシステム構成を示す機能ブ ロック図であり、 第 14図は、 ファイルサーバ内にデータを格納するためのディ レクトリ構成の一例を示す図であり、 第 15図は、 論理 CORE生成用テーブル の一例を示す図であり、 第 16図は、 本実施の形態 2の AS I Cと FPGAのコ ンカレント開発システムの処理手順を示すフローチャートであり、 第 17図は、 ログイン画面の一例を示す図であり、 第 18図は、 手順画面の一例を示す図であ り、 第 19図は、 論理 CORE生成インタフェースプログラムの処理手順を示す フローチャートであり、 第 20図は、 論理 CORE生成インタフェース画面の一 例を示す図であり、 第 21図は、 AS I C論理 CO RE生成プログラムの処理手 順を示すフローチャート (1) であり、 第 22図は、 AS I C論理 CORE生成 プログラムの処理手順を示すフローチャート (2) であり、 第 23図は、 論理 C OREチェックプログラムの処理手順を示すフローチャートであり、 第 24図は 、 状況表示選択画面の一例を示す図であり、 第 25図は、 論理 CORE生成状況 画面の一例を示す図であり、 第 26図は、 AS I Cの論理 CO RE生成状況表示 画面での処理手順を示すフローチャートであり、 第 27図は、 FPGA論理 CO RE生成インタフェース画面の一例を示す図であり、 第 28図は、 FPGA論理 CORE生成プログラムの処理手順を示すフローチャート (1) であり、 第 29 図は、 FPGA論理 CORE生成プログラムの処理手順を示すフローチャート ( 2) であり、 第 30図は、 互換パッケージテーブルの一例を示す図であり、 第 3 1図は、 論理合成インタフェースプログラムの処理手順を示すフローチャートで あり、 第 32図は、 論理合成インタフェース画面の一例を示す図であり、 第 33 図は、 F PGA論理合成ィンタフエース処理手順を示すフローチャートであり、 第 34図は、 論理合成状況表示画面の一例を示す図であり、 第 35図は、 フイツ ティングデータの投入と実行画面の一例を示す図であり、 第 36図は、 ROMデ ータ生成状況画面の一例を示す図であり、 第 37図は、 予定と実績画面の一例を 示す図であり、 第 38図は、 手作業時間の一例を示す図である。 発明を実施するための最良の形態 FIG. 1 is a flowchart showing the principle of the method of the present invention, FIG. 2 is an explanatory diagram of the operation of the first embodiment of the present invention, and FIG. 3 is a block diagram of the logic synthesis tool control device of the present invention. FIG. 4 is a block diagram illustrating an embodiment of a control device, and FIG. 5 is a flowchart illustrating a core (logical core) generation program. 1), FIG. 6 is a flowchart (2) showing a core (logical core) generation program, FIG. 7 is a flowchart showing a detailed procedure of the first embodiment of the present invention, and FIG. FIG. 9 is a flowchart showing a core (logical core) design check control. FIG. 9 is a flowchart showing a grouping control. FIG. 10 is a flowchart showing an I / O buffer input control. Processing image Fig. 11 is a flowchart showing the procedure for designing an integrated circuit. Fig. 12 explains the concept of concurrent development of ASIC and FPGA according to the second embodiment. FIG. 13 is a diagram for explaining the second embodiment. FIG. 14 is a functional block diagram showing a system configuration of a concurrent development system of AS IC and FPGA. FIG. 14 is a diagram showing an example of a directory configuration for storing data in a file server. FIG. 16 is a diagram showing an example of a logical CORE generation table. FIG. 16 is a flowchart showing a processing procedure of a concurrent development system of an AS IC and an FPGA according to the second embodiment. FIG. 18 is a diagram showing an example of a login screen, FIG. 18 is a diagram showing an example of a procedure screen, FIG. 19 is a flowchart showing a processing procedure of a logical CORE generation interface program, and FIG. FIG. 21 is a diagram showing an example of a logical CORE generation interface screen, FIG. 21 is a flowchart (1) showing a processing procedure of an AS IC logical CORE generation program, and FIG. FIG. 23 is a flowchart showing a processing procedure of a logical CORE check program, and FIG. 24 is a flowchart showing an example of a status display selection screen. FIG. 25 is a diagram showing an example of a logical CORE generation status screen. FIG. 26 is a flowchart showing a processing procedure on a logical CORE generation status display screen of an ASIC. FIG. 28 is a diagram showing an example of a CORE generation interface screen. FIG. 28 is a flowchart (1) showing a processing procedure of an FPGA logic CORE generation program. FIG. 29 is a flowchart showing a processing procedure of an FPGA logic CORE generation program. FIG. 30 is a flowchart showing an example of a compatible package table, and FIG. 31 is a flowchart showing a processing procedure of a logic synthesis interface program. FIG. 32 is a diagram showing an example of a logic synthesis interface screen, FIG. 33 is a flowchart showing an FPGA logic synthesis interface processing procedure, and FIG. 34 is an example of a logic synthesis status display screen FIG. 35 is a diagram showing an example of a fitting data input and execution screen. FIG. 36 is a diagram showing an example of a ROM data generation status screen. Fig. 38 is a diagram showing an example of the schedule and results screen. Fig. 38 is a diagram showing an example of the manual operation time. BEST MODE FOR CARRYING OUT THE INVENTION
以下、 図面を参照して本発明の実施の形態例を詳細に説明する Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
実施の形態 1 . Embodiment 1
第 2図は本発明の実施の形態 1の動作説明図である。 この図は、 回路ァーキテ クチャ検討結; ¾を入力とし、 設計データを共通化し、 回路アーキテクチャを共有 しつつ集積回路を開発するものである。 FIG. 2 is an operation explanatory diagram of Embodiment 1 of the present invention. In this figure, the circuit architecture is considered; ¾ is input, the design data is shared, and the integrated circuit is developed while sharing the circuit architecture.
実現する機能を HD Lを手段として設計する場合、 製品自身であるチップは、 ある機能を持つインスタンスで構成される。 このインスタンスは、 HD Lで設計 された複数の機能で構成されるブロックを参照するものであり、 特定のプロック がチップの機能を実現する上で必要であれば、 該プロックを複数参照するもので ある。 When designing a function to be realized by means of HDL, the chip, which is the product itself, is composed of instances that have a certain function. This instance refers to a block composed of multiple functions designed in HDL, and refers to multiple blocks if a specific block is necessary to realize the function of the chip. is there.
第 2図に従い本発明の流れを説明する。 X、 Y、 Ζは、 回路アーキテクチャ検 討結果から作成されるプロックのポート仕様を、 定義済みのフォーマツトに従つ て定義したテーブルである。 これらテーブル X、 Υ、 Ζは、 ブロックを設計する 際、 必ず作成されるものであり、 ブロック名、 インスタンス名、 ポート名、 レン ジ、 入出力、 種別、 出力元インスタンス名、 出力元インスタンスの出力ポート名 等からなる。 これらデータは、 ユーザがマニュアルで入力するものである。 この ように、 各テーブルを予め作成しておくことが本発明のボイントである。 The flow of the present invention will be described with reference to FIG. X, Y, and 、 are tables that define the port specifications of the block created from the results of the circuit architecture study in accordance with a defined format. These tables X, Υ, Ζ are always created when designing a block, and include the block name, instance name, port name, range, input / output, type, output source instance name, and output of the output source instance. It consists of a port name. These data are entered manually by the user. It is the point of the present invention to prepare each table in advance as described above.
S 1は、 前述の全インスタンスのテーブルデータを入力とし、 インスタンス間 及びインスタンスとデバイスパッケージの端子として定義された外部端子問が矛 盾なく接続されているかをチェックする手段と、 インスタンス間のネットを定義 する手段とによりブロックのポートとブロック間接続情報のみからなるコア (論 理コア) を生成するステップである。 ステップ S 1でエラーがあった場合、 エラ 一をユーザに返し、 ユーザはデータ入力をやり直す (図中に示す円状の矢印 1は 繰り返しを示している) 。 S1 receives the table data of all the above-mentioned instances as input, and checks whether the external terminals defined between the instances and between the instances and the terminals of the device package are connected without contradiction. This is the step of generating a core (logical core) consisting only of the port of the block and the connection information between the blocks by means of the definition. If there is an error in step S1, an error is returned to the user, and the user performs data entry again (circular arrow 1 in the figure indicates repetition).
S 2は F P G Aテーブ^ ^ 2を参照し、 ステップ S 1出力のコア (論理コア) を 論理合成ツールに読み込み、 プログラマブル'ロジックデバイスとするインスタ ンスのグループを論理合成ツールの機能を制御して選択し、 階層情報を維持した 状態で新たなコア (論理コア) を生成し、 デバイス ·テクノロジに依存する 1 / oバッファ等を含まないステップ S 1出力と同様のコア (論理コア) のネットリ ストを出力するステップである。 この図で、 X、 Yはユーザが指定するもめであ る。 S2 refers to the FPGA table ^^ 2, reads the core (logic core) of step S1 output into the logic synthesis tool, and creates a programmable logic device. Step S that selects a logic group by controlling the function of the logic synthesis tool, generates a new core (logical core) while maintaining the hierarchical information, and does not include the 1 / o buffer, etc., which depends on the device technology. This is the step of outputting the same core (logical core) netlist as the one output. In this figure, X and Y are user specified.
S 3は、 定義済みフォーマツ 1、であるデバイスパッケージの端子仕様テーブル データの端子名から仮のコア (論理コア) を生成し、 テーブルデータで指定のデ バイス 'テクノロジに依存する i Zoバッファを仮のコア (論理コア) のポート に挿入後、 ステップ S 2出力のネットリストと入れ替えるステップであり、 本発 明のポイントである。 この処理によって対象とするデバイスのチップのネットリ ストができた後、 論理合成ツールの機能を制御して対象のデバイス 'テクノロジ で論理合成済みの回路データを F P G Α合成結果のライブラリ 3から読み込み、 対応するブロックに填め込み、 所望のデバイスのネットリストを完成させるもの である。 F P G Aとして生成したネットリストは、 F P G Aのレイアウトツール でフィッティングし、 R OMデータ化される。 The S3 generates a temporary core (logical core) from the terminal names of the device package terminal specification table data, which is a defined format 1, and temporarily stores the iZo buffer that depends on the specified device 'technology in the table data. This is the step of replacing the netlist with the output of step S2 after inserting it into the port of the core (logical core) of this step, which is the point of the present invention. After a netlist of the target device's chip is created by this process, the logic synthesis tool functions are controlled to read the logic-synthesized circuit data from the target device 'technology from the FPG Α synthesis result library 3 and respond. To complete the netlist of the desired device. The netlist generated as FPGA is fitted with the FPGA layout tool and converted to ROM data.
また、 ステップ S 2から、 A S I C合成結果ライブラリ 4を参照することによ つて A S I C化している。 Further, from step S2, the process is converted into an ASIC by referring to the ASIS synthesis result library 4.
この実施の形態 1によれば、 集積回路開発において、 R T L設計の入力となる プロックのポート仕様の品質を事前に確保できる効果があり、 更に機能プロック が多く存在し、 設計リソースも多い大規模集積回路の開発においても、 事前にブ 口ック間の接続が確認できていることにより、 必ずチップが組み上がることを保 証することができる。 According to the first embodiment, in the development of an integrated circuit, there is an effect that the quality of a port specification of a block, which is an input of an RTL design, can be secured in advance, and further, there are many functional blocks, and large-scale integration with many design resources. In circuit development as well, it is possible to guarantee that the chip will be assembled by confirming the connection between the blocks in advance.
筹 3図は本発明の論理合成ツール制御装置の一実施の形態例を示すプロック図 である。 図において、 2 2は全体の動作を制御する制御装置、 2 4は各種情報を 表示する C R T、 2 1は制御装置 2 2に各種のコマンド等を入力する入力装置、 2 3は制御装置 2 2と接続され、 各種の情報を記憶する記憶装置である。 FIG. 3 is a block diagram showing an embodiment of the logic synthesis tool control device of the present invention. In the figure, 22 is a control device for controlling the overall operation, 24 is a CRT for displaying various information, 21 is an input device for inputting various commands and the like to the control device 22, and 23 is a control device 22 It is a storage device that is connected to and stores various information.
入力装置 2 1は、 コア (論理コア) 生成プログラムの起動コマンド、 論理合成 ッール制御コマンドを入力するものであり、 記憶装置 2 3には論理合成ッール、 コア (論理コア) 生成プログラム、 論理合成制御プログラムが記憶されている。 入力装置 2 1からブロックのテーブルファイルを指定してコア (論理コア) 生 成プログラム起動コマンドを入力すると、 コア (論理コア) 生成プログラムはテ 一ブルファイルを読み込み、 コア (論理コア) を生成し、 記憶装置 2 3にフアイ ル出力する。 この処理中にエラーがあれば、 そのエラー情報を表示装置である C R T 2 4に表示する。 Input device 21 is a core (logical core) generation program start command, logic synthesis The storage device 23 stores a logic synthesis tool, a core (logical core) generation program, and a logic synthesis control program. When a core (logical core) generation program start command is input from the input device 21 by specifying a block table file, the core (logical core) generation program reads the table file and generates a core (logical core). The file is output to the storage device 23. If there is an error during this process, the error information is displayed on the display device CRT 24.
設計者は、 エラーがあった場合、 テーブルファイルを修正後、 再度コマンドを 実行する。 論理合成ツールの制御では、 先ず制御用の必要なデータをファイルと して用意し、 コア (論理コア) 生成プログラムで生成したコア (論理コア) ファ ィルと一緒に記憶装置 2 3内の所定の場所に格納する。 そして、 論理合成ツール の制御コマンドを入力装置 2 1から入力すると、 論理合成ツールが起動し、 処理 結果が C R T 2 4に表示される。 途中、 処理に失敗した場合は、 失敗した時の状 態が C R T 2 4に表示される。 If there is an error, the designer corrects the table file and executes the command again. In the control of the logic synthesis tool, first, necessary data for control is prepared as a file, and a predetermined data in the storage device 23 is stored together with the core (logical core) file generated by the core (logical core) generating program. In the location. Then, when a control command of the logic synthesis tool is input from the input device 21, the logic synthesis tool is activated, and the processing result is displayed on the CRT 24. If the process fails in the middle, the status at the time of failure is displayed in CRT24.
第 4図は第 3図の制御装置 2 2の一実施の形態例を示すブロック図である。 第 3図と同一のものは、 同一の符号を付して示す。 図において、 3 1は全体の動作 を制御する C P U、 3 2は各種の情報を記憶するメモリ、 2 1は各種のコマンド 等を入力するキーボード、 2 4は表示装置としての C R Tである。 2 3は記憶装 置であり、 コア (論理コア) 生成プログラム 3 6、 論理合成ツール制御プロダラ ム 3 5、 論理合成ツール 3 4及びオペレーティングシステム (O S ) 3 3より構 成されている。 3 7は各構成要素間を接続するパスである。 記憶装置 2 3として は、 例えばハードディスク装置が用いられる。 FIG. 4 is a block diagram showing an embodiment of the control device 22 of FIG. The same components as those in FIG. 3 are denoted by the same reference numerals. In the figure, 31 is a CPU for controlling the whole operation, 32 is a memory for storing various information, 21 is a keyboard for inputting various commands and the like, and 24 is a CRT as a display device. Reference numeral 23 denotes a storage device, which comprises a core (logical core) generation program 36, a logic synthesis tool control program 35, a logic synthesis tool 34, and an operating system (OS) 33. Reference numeral 37 denotes a path connecting the components. As the storage device 23, for example, a hard disk device is used.
このように構成されたシステムにおいて、 C P U 3 1はキーボード 2 1からの コマンドを入力すると、 記憶装置 2 3を検索して、 該当するプログラムを呼び出 し、 該当するプログラムを実行する。 In the system configured as described above, when a command is input from the keyboard 21, the CPU 31 searches the storage device 23, calls a corresponding program, and executes the corresponding program.
第 5図、 第 6図はコア (論理コア) 生成プログラムを示すフローチャートであ る。 ここでは、 第 2図の X、 Y、 Ζのテーブルデータを使用して説明する。 テー ブルデータ X、 Υ、 Ζ (インスタンスも X、 Υ、 Ζ) のファイルを読み込み、 1 ファイルずつ処理を行なう。 F 1で Xのデータを読み込み、 F 2でポート Αのテ 一ブルの全データを抽出してメモリに記憶し、 このメモリのデータを参照しなが ら次の処理を行なう。 F 2' でポートは出力であるか否かをチェックする。 ポ一ト Aは入力であるので、 インスタンス名とポート名をファイル Aに出力す るステップ F 3はスキップし、 F 3' に進む。 F 3, では、 パッケージ端子との 接続キーワードがある力否かをチェックする。 次に、 パッケージ端子の接続キー ワードはないため、 パッケージ端子情報をメモリに格納する F 4はスキップし、 次のポート Bの全データをメモリに記憶する。 FIGS. 5 and 6 are flowcharts showing a core (logical core) generation program. Here, the explanation will be made using the table data of X, Y, Ζ in FIG. The Reads the data files X, Υ, ブ ル (instances are also X, Υ, Ζ) and processes them one by one. F1 reads the data of X, F2 extracts all the data of the table of port し て, stores it in the memory, and performs the following processing while referring to the data in this memory. At F 2 ′, the port checks whether it is an output. Since port A is an input, skip step F3 of outputting the instance name and port name to file A, and proceed to F3 '. In F3, check whether the keyword connected to the package terminal has a certain force. Next, since there is no package terminal connection keyword, F4 for storing package terminal information in memory is skipped, and all data of the next port B is stored in memory.
ポート Bは出力であるので、 F 3のステップにより "XB" を記憶装置 23の ファイル Aに出力する。 ここで、 Xはファイル名、 Bはポート名である。 次に、 パッケージ端子の接続キーヮードはないため F 4をスキップして次のポート Zの 全データをメモリに記'慮する。 ポート Zは出力であるので、 F 3のステップによ り "XZ [2 : 0] " を前記ファイル Aに出力する。 ここで、 [2: 0] は、 2 、 1、 0を示す。 Since port B is an output, "XB" is output to file A of the storage device 23 in the step of F3. Where X is the file name and B is the port name. Next, since there is no connection key for the package terminal, F4 is skipped and all data of the next port Z is stored in the memory. Since the port Z is an output, “XZ [2: 0]” is output to the file A in step F3. Here, [2: 0] indicates 2, 1, 0.
次に、 パッケージ端子の接続キーヮ一ドはないため、 F 4をスキップし、 次の ポート Iの全データをメモリに記憶する。 ポート Iは入力であるので F 3をスキ ップし、 次にパッケージ端子の接続キーヮード " I O" があるため、 " I NPU T, i n, 2 : 0" をコア (論理コア) のポート名としてメモリに記憶する。 次 に、 全ポート終了であるかどうかチェックする (F4, ) 。 全ポートが終了して いない場合には、 ステップ F 2に戻る。 Next, since there is no connection keypad for the package terminal, F4 is skipped and all data of the next port I is stored in the memory. Since port I is an input, skip F3, and then there is a package terminal connection key word "IO", so "I NPU T, in, 2: 0" is used as the core (logical core) port name. Store in memory. Next, check whether all ports are terminated (F4,). If not, return to step F2.
これで、 Xの全ポートの処理が終了し、 VHDLであれば、 以下のような情報 を持ったエンティティファイルを記憶装置 23に出力する。 With this, the processing of all ports of X is completed, and if it is VHDL, an entity file having the following information is output to the storage device 23.
A: i n s t d― l o g i c ; A: instd-logic;
B : o u t s t d一 l o g i .c ; B: o u t s t d l l o g i .c;
Z : o u t s t d一 l o g i c v e c t o r ( 2 d o w n t o 0) ; I : i n s t d一 l o g i c ; 上記の処理を Y, Ζのデータについても行ない、 全ファイルが終了すると (F 5, ) 、 F 6のステップにより VHDLであれば、 以下のような情報を持ったコ ァ (論理コア) のエンティティファイルを記憶装置 23に出力する。 Z: outstd one logicvector (2 downto 0); I: instd one logic; The above processing is also performed on the data of Y and Ζ. When all the files are completed (F5,), if it is VHDL by the step of F6, the entity of the core (logical core) having the following information The file is output to the storage device 23.
I NPUT : i n s t d_l o g i c ; I NPUT: inst d_log ic;
OUT : o u t s t d一 l o g i c ; OUT: o u t s t d d l l o g i c;
また、 ファイル Aには以下のようなデータが記録されている。 The following data is recorded in file A.
XB, XZ [2 : 0] , YC [1 : 0] , YO, ZF XB, XZ [2: 0], YC [1: 0], YO, ZF
次に、 F 7のステップで上記ファイル Aのデータを読み込み、 F8のステップ でメモリに記憶し、 1ファイルずつ処理を行なう。 F8' のステップでは、 ポー トは入力であるかどうかチェックする。 ここで、 Xのテーブルデータを例に説明 する。 ポート Aは入力であるので、 F 9のステップにより出力元の Yとポート名 の Cを抽出し、 続く F 10のステップにより YC [1 : 0] を F 8で記憶したデ ータで検索する。 そして、 F 10' で一致するかどうかチェックする。 Next, the data of the file A is read in the step F7, stored in the memory in the step F8, and processed one file at a time. In step F8 ', check if the port is an input. Here, the table data of X will be described as an example. Since port A is an input, the output source Y and port name C are extracted in step F9, and YC [1: 0] is searched for in the data stored in F8 in the subsequent step F10. . Then check with F 10 'for a match.
検索の結果、 存在するので、 F 12のステップにより以下のような接続情報を ファイル Bに出力する。 結果が一致しない場合は、 ポートの名称又はレンジが異 なっている等のエラー情報を記憶装置 23のログファイルに出力すると共に、 C RT 24にも表示する。 As a result of the search, it exists, so the following connection information is output to file B in the step of F12. If the results do not match, error information such as a difference in port name or range is output to a log file in the storage device 23 and displayed on the CRT 24.
A = >YC A => YC
次に、 同様にしてポート Bは出力であるので、 F 11のステップにより、 以下の ような接続情報をファイル Bに出力する。 Next, similarly, since port B is an output, the following connection information is output to file B in step F11.
B = >XB B => XB
次に、 同様にしてポート Zは出力であるので、 F 11のステップにより、 以下の ような接続情報をファイル Bに出力する。 Next, similarly, since port Z is an output, the following connection information is output to file B in step F11.
z = >xz z => xz
次に、 ポート Iは入力であるが、 F 10のステップの検索で " I O I NPUT " が発見できず、 F 13のステップでエラーとしてログファイルに出力されると 共に、 CRT 24にも表示する。 但し、 パッケージの端子と接続されるポートの 場合は問題ではなく、 逆にログに出力されたエラー情報からどのィンスタンスの どのポートがパッケージのどの端子と接続したかの確認ができる。 次に、 F 12 のステップにより、 以下のような接続情報をファィ /レ Bに出力する。 Next, although port I is an input, "IOI NPUT" cannot be found in the search of the step F10, and is output to the log file as an error in the step F13, and is also displayed on the CRT 24. However, the port connected to the package terminal In this case, there is no problem. On the other hand, the error information output to the log can be used to confirm which port of which instance is connected to which terminal of the package. Next, in step F12, the following connection information is output to file / file B.
I => I O I NPUT I => I O I NPUT
ステップ F 12' では、 全テーブルの全ポートが終了したかどうかをチェックし 、 終了していない場合には、 ステップ F 8' に戻る。 In step F12 ', it is checked whether all ports in all tables have been completed. If not, the flow returns to step F8'.
以上の処理を Y, Ζのテープノレデータについても行ない、 終了すると、 F 14 のステップにより、 接続情報が作成できなかったポートをログファイルに出力し 、 F 15のステップにより F 6のステップで出力したコア (論理コア) のェンテ ィティリストと F 11と F 12のステップで出力した接続情報を結合し、 コア ( 論理コア) のネットリストを生成し、 記憶装置 23に出力してプログラムを終了 する。 The above processing is also performed for the tape data of Y and Ζ. When the processing is completed, the port for which connection information could not be created is output to the log file by the step of F14, and the port is output by the step of F6 by the step of F15. Combine the entity list of the core (logical core) with the connection information output in steps F11 and F12, generate a netlist of the core (logical core), output it to storage device 23, and terminate the program .
次に、 図を用いて本発明の実施の形態 1の詳細手順について説明する。 第 7図 は本発明の実施の形態 1の詳細手順を示すフローチヤ一トである。 このフロ チ ヤートは、 第 2図で説明した実施の形態 1のうち、 S 1で出力したコア (論理コ ァ) を入力とする S 2以降の処理を詳細に示すものである。 図中、 実線は処理の 流れを示し、 破線はデータの流れを示す。 処理の実行前に、 入力装置を操作して ステップ S 2で出力したコア (論理コア) と必要があれば、 以降の説明で出てく る制御フアイルを制御プログラムが参照する記憶装置内の場所へ複写等の手段に よって準備する。 Next, a detailed procedure of the first embodiment of the present invention will be described with reference to the drawings. FIG. 7 is a flowchart showing a detailed procedure of the first embodiment of the present invention. This flowchart shows in detail the processing in and after S2 in which the core (logical core) output in S1 in the first embodiment described with reference to FIG. 2 is input. In the figure, the solid line indicates the flow of processing, and the dashed line indicates the flow of data. Before executing the processing, operate the input device and, if necessary, the core (logical core) output in step S2 to the location in the storage device where the control program refers to the control file described in the following description. Prepare by copying or other means.
先ず、 コア (論理コア) デザインをチェックする (a 1) 。 そして、 該コア ( 論理コア) デザインが OKかどうかチェックする (a 1 ' ) 0 OKでない場合に は、 第 2図説明のテーブルデータをチェック後、 再実行する (a l'O)。 〇Kで ある場合、 ファイル 12、 13を参照してグループ化し (a 2) 、 コア (論理コ ァ) 10として格納する。 次に、 端子名とバッファ名からなるテーブルュ 4を参 照してダミーコア (論理コア) を生成する (a 3) 。 この結果、 ダミーコア (論 理コア) 1 1が生成される。 次に、 このダミーコア (論理コア) 1 1及びテーブル 14を基にして I/Oバ ッファを挿入する (a 4) 。 次に、 コア (論理コア) 10とダミーコア (論理コ ァ) 1 1とを比較チェックする (a 5) 。 そして、 OKであるかどうかチェック する (a 5' ) 比較の結果、 OKである場合には終端処理を行なう (a 6) 。 O Kでない場合には、 デバイスパッケージの端子仕様をチェックし (a 9) 、 第 2 図説明のテープノレデータをチェック後、 再実行する (a 10) 。 First, check the core (logical core) design (a 1). Then, check whether the core (logical core) design is OK (a 1 ′). 0 If not OK, check the table data described in FIG. 2 and execute again (a l′ O). If 〇K, group by referring to files 12 and 13 (a 2) and store as core (logical core) 10. Next, a dummy core (logical core) is generated with reference to Table 4 consisting of the terminal name and buffer name (a3). As a result, a dummy core (logical core) 11 is generated. Next, an I / O buffer is inserted based on the dummy core (logical core) 11 and the table 14 (a4). Next, the core (logical core) 10 and the dummy core (logical core) 11 are compared and checked (a5). Then, it is checked whether or not it is OK (a 5 ′). As a result of the comparison, if it is OK, termination processing is performed (a 6). If it is not OK, check the terminal specifications of the device package (a 9), check the tape data shown in FIG. 2 and execute again (a 10).
ステップ a 6の終端処理が終了したら、 合成結果フアイル 1 5を参照して回路 データを填め込み (a 7) 、 ファイル 1 6を参照して DFT回路を揷入する (a 8) 。 When the termination processing of step a6 is completed, the circuit data is inserted with reference to the synthesis result file 15 (a7), and the DFT circuit is inserted with reference to the file 16 (a8).
次に、 第 7図で説明した各ステップの更に詳細な説明をする。 第 8図はコア ( 論理コア) デザインチェック制御を示すフローチャートである。 先ず、 コア (論 理コア) のファイルがあるかどうかチェックし (a 1 1) 、 ある場合には、 論理 合成ツールで読み込ませる (a 1 2) 。 ない場合には、 何もしない。 ステップ a 1 (第 7図参照) では、 ステップ S 2で出力したコア (論理コア) を入力とし、 コア (論理コア) の HDL記述文法、 空き入力ポート等をチェックするステップ で、 コア (論理コア) のファイルが存在すれば、 ステップ a 1 2で論理合成ツー ルにコア (論理コア) を読み込ませる。 論理合成ツールは、 読み込んだ際、 文法 等のチェックを行なう機能を持っており、 結果がエラーであれば C RTで内容を 確認し、 ステップ a 1 0に示す通りブロックのポート仕様を記述したテープノレデ ータを見直し、 再度デザインチェックを実行する。 Next, each step described in FIG. 7 will be described in more detail. FIG. 8 is a flowchart showing a core (logical core) design check control. First, check if there is a core (logical core) file (a11), and if so, read it with a logic synthesis tool (a12). If not, do nothing. In step a1 (see Fig. 7), the core (logical core) output in step S2 is used as input, and the HDL description grammar of the core (logical core), an empty input port, and the like are checked. If the file exists, the core (logical core) is read by the logic synthesis tool in step a12. The logic synthesis tool has a function to check the grammar, etc. when it is read. If the result is an error, the content is checked on the CRT, and as shown in step a10, a tape node describing port specifications of the block is written. Review the data and perform the design check again.
第 9図はグループ化制御を示すフローチャートで、 第 7図のステップ a 2の詳 細を示している。 先ず、 コア (論理コア) のファイルがあるかどうかチェックし (a 1 3) 、 ある場合にはグループ化するインスタンスのフアイルがあるかどう かチェックする (a 14) 。 ある場合には、 即ち、 ステップ a 1の結果に問題が ない場合、 プログラマブル ' ロジックデバイス化する対象のプロック名を 1行に 1ブロックずつ記載されたファイル 1 3があればそれを読み込み (a 2 1) 、 対 象のブロックの階層情報を維持した状態で新たなコア (論理コア) として論理合 '成ツールのダル一ピング機能を制御してグループ化する ( a 2 2 ) 。 FIG. 9 is a flowchart showing the grouping control, and shows the details of step a2 in FIG. First, it checks whether there is a file of the core (logical core) (a13), and if so, checks whether there is a file of the instance to be grouped (a14). In some cases, that is, when there is no problem with the result of step a1, if there is a file 13 in which the names of blocks to be converted into programmable logic devices are written one block at a time, read them (a2 1) While maintaining the hierarchical information of the target block, logical integration is performed as a new core (logical core). 'Control the grouping function of the tool by grouping (a22).
グルーピング機能を使用する場合、 コア (論理コア) のポート名がインスタン ス間を接続しているネット名となるため、 コア (論理コア) の全てのポートに対 してコア (論理コア) 内部へネットをトレースし、 最初に発見したインスタンス のポート名でコア (論理コア) に新規ポートを発生させネットの名前となってい るコア (論理コア) のポートに接続されているネットを発生させた新規ポートに 接続し、 ネット名となっているポートを削除する (a 2 3 ) 。 新しいポートを作 成して古いポートを消すためである。 When the grouping function is used, the port name of the core (logical core) becomes the net name connecting the instances, so that all the ports of the core (logical core) go inside the core (logical core). Traces the net, generates a new port on the core (logical core) with the port name of the first instance found, and generates a net connected to the port of the core (logical core) that is the name of the net. Connect to the port and delete the port that is the net name (a23). This is to create a new port and delete the old port.
次に、 モニタポート情報があるかないかチェックする (a 2 3, ) 。 ある場合 には、 コア (論理コア) に指定のインスタンスのポート名でポートを発生させ、 ブロックの端子と接続する ( a 2 4 ) 。 ない場合には、 デバイス ·テクノロジに 依存する I ZOバッファ等を含まないネットリストを記憶装置 1 0 (第 7図参照 ) に出力する (a 2 5 ) 。 この場合、 表示装置においては、 論理合成ツールの表 示機能を使用して確認することができる。 Next, check whether there is monitor port information (a23,). In some cases, a port is generated for the core (logical core) with the port name of the specified instance, and connected to the terminal of the block (a24). If not, a netlist that does not include an IZO buffer or the like that depends on the device technology is output to the storage device 10 (see FIG. 7) (a25). In this case, on the display device, it can be confirmed using the display function of the logic synthesis tool.
このステップ a 2では、 他に必要があれば、 グループ化したプロックのポート をコア (論理コア) のポートとして発生させる (a 2 4 ) こともできる。 この機 能は、 プログラマプル'ロジックデバイスの機能評価時にモニタしたいポートが ある場合に使用する。 指定方法は、 ファイル 1 2に示すように、 ポート名を 1行 に 1ポートずつ記載したファイルをグルーピングとポート名称変更後に読み込ま せることで行なう。 In this step a2, if necessary, the ports of the grouped blocks can be generated as ports of the core (logical core) (a24). Use this function when there is a port you want to monitor when evaluating the function of a programmable logic device. The specification method is performed by reading a file in which the port names are described one by one per line as shown in File 12 after grouping and port name change.
ここまでは、 設計者自身がプロックのポート仕様を決めるデータを用いてコア (論理コア) を生成するため、 コア (論理コア) 内のブロック間のポート接続に 間違いはないはずである。 しかしながら、 ステップ S 1 (第 2図参照) で生成す るコア (論理コア) をそのまま使用する A S I Cの場合、 コア (論理コア) 内ブ ロックのテーブルデータに定義するデバイスパッケージの端子名称はデバイスパ ッケージの端子仕様を参照するのが普通であり、 従って単純なミスやプリント基 板設計からの変更等で相違がある可能性がある。 これとは逆に、 ステップ a 2 ( 第 7図参照) で生成したコア (論理コア) のポートがデバイスパッケージの端子 となる場合、 該ポートが仕様となるため、 前述と同様に相違がある可能性がある 。 この問題をステップ a 3から a 5のステップで解消している。 Up to this point, since the designer himself generates the core (logical core) using the data that determines the port specifications of the block, the port connection between the blocks in the core (logical core) should be correct. However, in the case of an ASIC that uses the core (logical core) generated in step S1 (see Fig. 2) as it is, the terminal name of the device package defined in the table data of the block in the core (logical core) is the device package. It is common to refer to the terminal specifications of this item, so there may be differences due to simple mistakes or changes from the printed circuit board design. Conversely, step a 2 ( If the port of the core (logical core) generated in (7) becomes a terminal of the device package, there is a possibility that there is a difference as described above because the port becomes the specification. This problem is solved by steps a3 to a5.
第 1 0図は I ZOバッファ挿入制御を示すフ口一チヤ一トと処理のィメージを 示す図である。 このフローチャートは、 第 7図のステップ a 4の処理を示してい る。 以下の説明では、 a 3から a 5は別としているが、 処理は 1つのコマンドで —連の処理である。 FIG. 10 is a diagram showing a flow chart showing the IZO buffer insertion control and a processing image. This flowchart shows the process of step a4 in FIG. In the following explanation, a 3 to a 5 are different, but the processing is one command — a series of processing.
先ず、 外部端子情報及びコア (論理コア) のファイルがあるかどうかチヱック する (a l 5 ) 。 ある場合には、 以下の処理を行なう。 a 3では、 a 2と違い第 7図の 1 4で示すように第 1カラムに端子名称、 第 2カラムに使用するデバイス テクノロジに依存する I /Oバッファ名を定義したデバイスパッケージの端子仕 様のテーブルデータが存在すれば、 それを読み込ませ、 ダミーのチップのデザィ ン (第 1カラムの名称の端子情報を記述した第 1デザイン) を作成し (a 3 1 ) 、 この内部に前記ダミーチップのデザインをセル (第 1デザインの下位層として 記述した第 1デザィンと同様の端子情報を記述した第 2デザィン) として発生さ せ、 前記デザインと前記セル間の同一名称のポートを接続し、 記憶装置 1 1にダ ミーのコア (論理コア) を出力する。 First, it is checked whether there is a file of external terminal information and a core (logical core) (al5). In some cases, the following processing is performed. In a3, unlike a2, the pin specification of the device package that defines the terminal name in the first column and the I / O buffer name depending on the device technology used in the second column as shown in 14 in Fig. 7 If the table data exists, it is read and a dummy chip design (first design describing the terminal information of the name of the first column) is created (a 31), and the dummy chip Is generated as a cell (a second design describing the same terminal information as the first design described as a lower layer of the first design), and the ports of the same name between the design and the cell are connected and stored. Outputs dummy core (logical core) to device 11.
ステップ a 4では、 記憶装置 1 1のダミーのコア (論理コア) を読み込み、 デ バイスパッケージの端子仕様テープノレデータ 1 4の第 2カラムにある I /〇バッ ファをダミーのコア (論理コァ) のネットに対しチップの端子情報からデバィス •テクノロジに依存する Iノ〇バッファを揷入する (a 3 2 ) 。 In step a4, the dummy core (logical core) of the storage device 11 is read, and the I / 〇 buffer in the second column of the terminal package tape data 14 of the device package is replaced with the dummy core (logical core). An I-noise buffer depending on the device technology is inserted from the terminal information of the chip into the net (a32).
ステップ a 5では、 上記ダミーコア (論理コア) のポートのうち機能に関係の ない論理に係わらないデバイス特有でテスト用等のポートを削除し、 内部のセル として記憶装置 1 0のコア (論理コア) と入れ替え (a 3 3 ) 、 端子名の不一致 があるかどうかチェックする (a 3 3 ' ) 。 2つのコア (論理コア) 間のポート 名が全て一致すれば、 填め込みに成功である。 こうすることで、 デバイスパッケ ージの端子仕様テーブルデータの端子名称とコア (論理コア) のポート名称をク ロスチェックでき、 上記の問題を解消できる。 ある場合は処理は終了し、 ない場 合にはネットリストを出力する。 In step a5, of the ports of the dummy core (logical core), the ports for testing, etc., which are unique to the device and have no relation to the function and are not related to the logic, are deleted, and the core (logical core) of the storage device 10 is used as an internal cell (A33), and check whether there is any mismatch of the terminal names (a33 '). If all the port names match between the two cores (logical cores), the insertion is successful. In this way, the terminal name of the terminal specification table data of the device package and the port name of the core (logical core) can be clicked. Loss check can be performed and the above problems can be solved. If there is, the process ends; otherwise, the netlist is output.
失敗した場合には、 ステップ a 9に示す通り、 デバイスパッケージの端子仕様 をチェックし、 a 3のステップから再実行するか、 ステップ a 1 0に示す通りブ ロックの端子仕様を定義したテーブルデータをチェックし、 ステップ S 1 (第 2 図参照) から再実行する。 成功した場合、 コア (論理コア) の階層を展開するこ とでチップと化す。 If it fails, check the terminal specifications of the device package as shown in step a9 and re-execute from step a3, or use table data that defines the terminal specifications of the block as shown in step a10. Check and re-run from step S1 (see Fig. 2). If successful, it becomes a chip by expanding the core (logical core) hierarchy.
ステップ a 6では、 前記チップの全ブロックの入出力ポートにフリップフロッ プをプロック内部に接続し、 終端する。 この終端処理は、 仮に回路設計が完了し ていないブロックが存在したとしても問題なくネットリストを生成し、 レイァゥ ト作業を可能とするためのものである。 In step a6, flip-flops are connected to the input / output ports of all blocks of the chip inside the block and terminated. This terminating process is for generating a netlist without any problem even if there is a block for which circuit design has not been completed, thereby enabling a layout operation.
ステップ a 7では、 論理合成済みの回路データを合成結果のライブラリから読 み込み、 対応するブロックに填め込む。 この時、 チップ内部のブロックに対する 合成結果が存在せず、 且つ該プロックのデザィン名称又はセル名称が名前付け規 則に従ったものであれば、 該ブロックの入力ポートと出力ポートを予め規則に従 つて該ブロック内部で接続処理する。 In step a7, the logic-synthesized circuit data is read from the library of the synthesis result, and inserted into the corresponding block. At this time, if there is no synthesis result for the block inside the chip and the design name or cell name of the block complies with the naming rule, the input port and output port of the block are preliminarily specified. Then, connection processing is performed inside the block.
この処理は、 プログラマブル 'ロジックデバイスの場合には、 存在せず、 プロ グラマプル- ロジックデバイスの D L L等特有のブロックを A S I Cとする場合 に施す。 このブロックを削除せずプロック内部で接続する処理によって、 ァーキ テクチヤが保持できる。 また、 ブロック内部にメモリ等のマク口が存在する場合 は、 デバイス特有のメモリの回路データに入れ替える。 This processing does not exist in the case of a programmable logic device, and is performed when a specific block such as DLL of a program-logic device is used as an ASIC. The architecture can be maintained by connecting this block inside the block without deleting this block. If a block such as a memory exists inside the block, replace it with the circuit data of the device-specific memory.
a 8は A S I Cの場合の処理で、 デバイスをテストする S C ANテスト回路の 自動揷入、 又は S C ANテスト回路を接続するプロックの順序を定義したフアイ ル 1 6を入力し、 定義順に接続する。 a8 is a process in the case of ASIC, in which an SCAN test circuit for automatically testing a device is automatically inserted, or a file 16 that defines a sequence of blocks for connecting the SCAN test circuit is input and connected in the defined order.
以上、 述べたように、 本実施の形態 1によれば、 設計ドキュメントからのデー タカ らコア (論理コア) を生成し、 このコア (論理コア) から階層構造及び接続 情報を保持した状態でプログラマブル ·ロジックデバイス用に新たにコア (論理 コア) を生成することによって、 回路アーキテクチャを共有できる効果があり、 このコア (論理コア) に対して回路データを填め込み機能を検証したインスタン ス内のデバイス ·テクノロジに依存しない回路データ及びインスタンス間のネッ トは、 AS I C化した場合に再検証を回避することが可能となる。 よって、 AS I Cとプログラマブル' ロジックデバイスのコンカレント開発を効率よく進める ことを可能にできる効果もある。 As described above, according to the first embodiment, the core (logical core) is generated from the data from the design document, and the hierarchical structure and the connection information are held from this core (logical core). · New core for logic devices (Logic Generating a core) has the effect of sharing the circuit architecture. This core (logical core) is filled with circuit data and its function is verified. This network can avoid re-verification when it is converted to AS IC. Therefore, there is an effect that the concurrent development of the AS IC and the programmable logic device can be efficiently advanced.
実施の形態 2. Embodiment 2.
次に、 本発明に係る AS I Cと FPGAのコンカレント開発システムについて 詳細に説明する。 なお、 論理の設計言語には、 C言語、 UMLなどがあるが、 本 実施の形態 2では、 HDLを設計言語として説明する。 Next, the concurrent development system of ASIC and FPGA according to the present invention will be described in detail. The logic design language includes C language, UML, and the like. In the second embodiment, HDL is described as the design language.
まず、 本実施の形態 2に係る A S I Cと F P G Aのコンカレント開発の概念に ついて説明する。 第 12図は、 本実施の形態 2に係る AS I Cと FPGAのコン カレント開発の概念を説明するための説明図である。 同図に示すように、 この A S I Cと FPGAのコンカレント開発の特徴は、 FPGAによるプロトタイピン グ検証を AS I Cのインプリメント設計とコンカレントに進めるために、 プロト タイピング検証に必要な FPGAの回路を記録した ROMデータを AS I Cのィ ンプリメント設計から提供し、 FPGAと AS I C開発をシームレスにできるこ とである。 First, the concept of concurrent development of ASIC and FPGA according to the second embodiment will be described. FIG. 12 is an explanatory diagram for explaining the concept of concurrent development of an ASIC and an FPGA according to the second embodiment. As shown in the figure, the feature of this concurrent development of ASICs and FPGAs is that in order for the prototyping verification by the FPGA to proceed concurrently with the AS IC implementation design, a ROM that records the FPGA circuit necessary for prototyping verification The data can be provided from the AS IC implementation design, and the development of FPGA and AS IC can be done seamlessly.
この AS I Cと F PGAのコンカレント開発では、 回路アーキテクチャ検討に おいて FPGAによるプロトタイピング検証を考慮し、 適当な予想規模の実現回 路での実現機能の分割、 AS I Cと FPGA間の構造的違いに係る機能の階層化 などを行ない、 A S I Cと F P G A設計間の共通の機能プロック構成及び機能ブ ロックのポート仕様を作成する。 この機能ブロック構成及び機能プロックのポー ト仕様データは、 AS I Cのインプリメント設計のフロアプラン、 論理合成、 レ ィアウト設計の共通のデータとなる。 In this concurrent development of AS IC and FPGA, considering the prototyping verification by FPGA in the circuit architecture study, the division of the realization function in the realization circuit of an appropriate expected scale, the structural difference between AS IC and FPGA The functions related to the above are hierarchized, and a common function block configuration between ASIC and FPGA design and port specifications of function blocks are created. The function block configuration and port specification data of the function block are common data for the floor plan, logic synthesis, and layout design of the ASIC implementation design.
RTL設計 ·検証では、 回路アーキテクチャ検討結果の構造に従って AS I C と F PGA共通の RTL設計を行ない、 機能毎にコーナーケースを重点に論理検 証ツールを用いてソフト検証を行なう。 この RTL設計'検証とコンカレントに AS I Cの論理合成を実施し、 AS Iじとしての特性が確保できれば、 次に FP GAの論理合成を実施し、 逐次プロトタイピング用基板上の FPGAに回路を形 成し、 FPGAのプロトタイピングによる検証を可能にする。 In RTL design and verification, RTL design common to AS IC and FPGA is performed according to the structure of the circuit architecture study result, and logic analysis is performed with emphasis on corner cases for each function. Perform software verification using a certification tool. Perform logic synthesis of the AS IC concurrently with this RTL design verification, and if the same characteristics as the AS I can be secured, then perform logic synthesis of the FPGA and form the circuit in the FPGA on the sequential prototyping board. And enable verification by FPGA prototyping.
一方、 AS I Cのレイァゥトでは、 A S I Cと F P G A設計間の共通の機能ブ 口ック構成を基に、 ソフト検証とプロトタイビングによる検証結果を随時コンカ レントに反映させることによって、 FPGAのプロトタイピングによる検証の完 了から AS I C開発完了までの期間を短縮する。 On the other hand, in the AS IC layout, based on the common functional block configuration between the ASIC and the FPGA design, the verification results by the soft verification and prototyping are reflected constantly as needed, and the verification by FPGA prototyping is performed. To shorten the period from completion of AS IC development to completion of AS IC development.
次に、 本実施の形態 2に係る AS I Cと FPGAのコンカレント開発システム のシステム構成について説明する。 第 13図は、 本実施の形態 2に係る AS I C と F PGAのコンカレント開発システムのシステム構成を示す機能プロック図で ある。 同図に示すように、 この AS I Cと FPGAのコンカレント開発システム 200は、 ファイアウォール 210と、 We bサーバ 220と、 ユーザ認証サー バ 230と、 ユーザ管理サーバ 240と、 論理合成サーバ 250と、 メ一ルサー バ 260と、 ファイノレサーバ 270と、 アプリケーションサーバ 280と、 監視 サーバ 290とを有する。 また、 この AS I Cと F PGAのコンカレント開発シ ステム 200は、 インターネットを介して We bクライアント 100から利用す ることができる。 Next, a system configuration of a concurrent development system of ASIC and FPGA according to the second embodiment will be described. FIG. 13 is a function block diagram showing a system configuration of a concurrent development system of ASIC and FPGA according to the second embodiment. As shown in the figure, this concurrent development system 200 of AS IC and FPGA includes a firewall 210, a web server 220, a user authentication server 230, a user management server 240, a logic synthesis server 250, and a mail server. Server 260, a file server 270, an application server 280, and a monitoring server 290. The concurrent development system 200 of ASIC and FPGA can be used from the Web client 100 via the Internet.
ファイアウォール 210は、 インタ一ネットからのアクセス要求に対し、 設定 された通信手順に従ったアクセス要求のみを受入れるコンピュータであり、 AS I Cと FPGAのコンカレント開発システム 200への外部からの不正なァクセ スを防ぐ。 The firewall 210 is a computer that accepts only an access request according to a set communication procedure in response to an access request from the Internet, and prevents an unauthorized external access to the concurrent development system 200 of the AS IC and the FPGA. prevent.
We bサーバ 220は、 インターネットを通じて成される We bクライアント 100からの要求に対して情報送信を行なうコンピュータであり、 AS I C又は F PGAを構成する機能プロックのポートと機能ブロックのポート間の接続情報 のみから論理 COREを生成する論理 CORE生成インタフェースプログラム 2 21、 論理合成インタフェースプログラム 222、 フィッティングインタフエ一 スプログラム 223、 状況表示インタフェースプログラム 224、 論理 CORE 生成に必要なフォーマツトファイルと論理合成に必要なフォーマツトファイルと を有し、 このコンピュータが We bクライアント 100からの要求に応じてこれ らのプログラムを実行し、 We bクライアント 100に結果を送信する。 The web server 220 is a computer that transmits information in response to a request from the web client 100 made through the Internet, and has connection information between a port of a function block and a port of a function block constituting an AS IC or FPGA. Logic CORE generation interface program for generating a logical CORE from only logic synthesis interface program 222, fitting interface Program 223, a status display interface program 224, a format file required for generating a logical CORE and a format file required for logic synthesis, and the computer executes these programs in response to a request from the web client 100. And send the result to the Web client 100.
ユーザ認証サーバ 230は、 ユーザの認証を行なうコンピュータであり、 契約 に基づいて使用するユーザ名とパスワードが登録されている。 ユーザ管理サーバ 240は、 ユーザの登録、 削除を行なうコンピュータであり、 契約に基づいて使 用するユーザ名と後述する p r o j e c t名とメールアドレスが登録されている 論理合成サーバ 250は、 AS I C論理 CORE生成プログラム 25 1と、 F PG A論理 CORE生成プログラム 252と、 AS I C論理合成プログラム 25 3と、 FPG A論理合成プログラム 254と、 F P G Aのレイアウトであるフィ ッティングプログラム 255とを有するコンピュータであり、 この論理合成サー バ 250にある論理合成及びフィッティングのプログラムは、 論理合成インタフ エースプログラム 222から起動され、 ファイルサーバ 270に格納されている RTLソースを読込み、 AS I C及び FPG Aの論理合成と F PGAのフィッテ イングを実行する。 The user authentication server 230 is a computer for authenticating a user, and a user name and a password to be used based on a contract are registered. User management server 240, a user of the registration, a computer to perform the deletion, logic synthesis server 250 p r oject name and e-mail address, which will be described later with the user name you want to use on the basis of the contract has been registered, AS IC logic A computer having a CORE generation program 251, an FPG A logic CORE generation program 252, an AS IC logic synthesis program 253, an FPG A logic synthesis program 254, and a fitting program 255 that is an FPGA layout. The logic synthesis and fitting program in the logic synthesis server 250 is started from the logic synthesis interface program 222, reads the RTL source stored in the file server 270, and executes the logic synthesis and FPG A of AS IC and FPGA. Perform PGA fitting.
メールサーバ 260は、 メール送受信ソフトウエアを有するコンピュータであ り、 We bサーバ 220から実行された処理情報、 We bクライアント 100か らの情報をユーザとシステム内ヘメ一ル配信する。 The mail server 260 is a computer having mail sending / receiving software, and distributes processing information executed from the web server 220 and information from the web client 100 to the user and the system.
ファイルサーバ 270は、 論理合成対象 R T Lソース、 論理合成結果、 FPG Aの ROMデータなどを格納する記憶媒体である。 第 14図は、 ファイルサーバ 内にデータを格納するためのディレクトリ構成の一例を示す図である。 同図に示 す P r o j e c t 41とは、 AS I C及び F P G Aを開発する P r o j e c t名 あるいは AS I Cのニックネームのディレクトリであり、 この名称は契約に基づ いて設定される。 The file server 270 is a storage medium for storing a logic synthesis target RTL source, a logic synthesis result, FPG A ROM data, and the like. FIG. 14 is a diagram showing an example of a directory structure for storing data in a file server. Project 41 shown in the figure is a directory of the Project name for developing ASIC and FPGA or a nickname of ASIC, and this name is set based on the contract.
I〇42は、 論理 COREを生成するためのデータを格納するディレク トリで あり、 AS I Cを構成する機能ブロック単位に、 第 15図に示す機能ブロックの ポート仕様を記載した論理 CORE生成用テーブルのファイルを格納するディレ クトリ AS I C48と、 論理 CORE生成インタフェースプログラム 221がュ 一ザの指定に従ってディレクトリ AS I C 48内の論理 CO RE生成用テープノレ のファイルを複写して格納するディレクトリ FPGA49とをもつ。 また、 ディ レクトリ FPGA49の下に、 ユーザが指定する F PGAの番号の数のディレク トリが存在する。 なお、 論理 CORE生成用テーブル及び論理 CORE生成イン タフエースプログラム 221の詳細については後述する。 I〇42 is a directory that stores data for generating a logical CORE. There is a directory ASIC48 for storing a logical CORE generation table file describing the port specifications of the functional blocks shown in Fig. 15, and a logical CORE generation interface program 221 for each functional block constituting the AS IC. And a directory FPGA 49 for copying and storing the file of the logical core generation tape in the directory AS IC 48 in accordance with the specification of the user. In addition, under the directory FPGA49, there are directories of the number of FPGA numbers specified by the user. The details of the logical CORE generation table and the logical CORE generation interface program 221 will be described later.
CORE 43は、 論理 CORE生成プログラムが生成した論理 COREを格納 するディレクトリであり、 AS I ςを構成する機能ブロックのポート仕様から生 成した AS I Cの論理 COREを格納するディレクトリ AS I C 50と、 FPG Aを構成する機能ブロックのポート仕様から F P G Aの論理 COREを格納する ディレクトリ FPGA51をもつ。 CORE 43 is a directory for storing the logical CORE generated by the logical CORE generation program. The directory AS IC 50 for storing the logical CORE of the AS IC generated from the port specifications of the functional blocks constituting the AS I I, and the FPG It has a directory FPGA51 that stores the logic CORE of the FPGA from the port specifications of the functional blocks that make up A.
RTL44は、 後述する論理合成インタフェースからユーザがアップロードす る HDL (ハードウェア記述言語) で表現された回路設計データ (以降 RTL) を格納するディレクトリであり、 AS I Cの論理 COREを構成する機能プロッ ク単位に格納するディレクトリ AS I C52と、 ユーザの指定に従って AS I C ディレクトリ内の RTLを複写して格納するディレク トリ F PGA53とをもつ SYNTHES I S45は、 論理合成サーバ 250が R T Lを論理合成した結 果を格納するディレクトリであり、 AS I Cの論理合成結果を AS I Cの論理 C OREを構成する機能プロック単位に格納するディレク トリをもつディレク トリ AS I C 54と、 それぞれの F PGAの論理合成結果を格納するディレク トリを もつディレクトリ F PGA 55をもつ。 The RTL44 is a directory that stores circuit design data (hereinafter referred to as RTL) expressed in HDL (hardware description language) uploaded by the user from the logic synthesis interface described later, and is a functional block that constitutes the logic CORE of ASIC. SYNTHES IS45, which has a directory AS I C52 to store in units and a directory F PGA 53 to copy and store the RTL in the AS IC directory according to the user's specification, is the result of logical synthesis of the RTL by the logical synthesis server 250. A directory that stores the results of AS IC logic synthesis in units of functional blocks that make up the logic core of AS IC AS AS 54, and stores the results of logic synthesis for each FPGA Has a directory F PGA 55 with a directory to be changed.
ROM46は、 F PGAの論理合成結果を基に F PGAのレイアウトであるフ イツティング後生成される F PG Aの回路データを記憶する ROMデータを格納 するディレクトリであり、 FPGA毎に格納するディレクトリをもつ。 LAYO UT47は、 AS I Cのレイァゥト設計担当者が AS I Cのレイァゥト設計を行 なう作業ディレクトリである。 The ROM 46 is a directory for storing ROM data for storing FPGA circuit data generated after the fitting, which is a layout of the FPGA based on the logic synthesis result of the FPGA, and a directory for storing for each FPGA. Have. LAYO UT47 is a work directory where a layout designer of AS IC designs a layout of AS IC.
アプリケーションサーバ 280は、 AS I Cのフロアプラン、 レイアウト設計 、 タイミング検証を行なうプログラムを有するコンピュータである。 このコンビ ユータでインプリメント設計者が AS I Cのフロアプラン、 レイアウト設計、 タ ィミング検証を行なう。 The application server 280 is a computer having a program for performing floor planning, layout design, and timing verification of ASIC. With this computer, the implementation designer performs the ASIC floor plan, layout design, and timing verification.
監視サーバ 290は、 ユーザ管理サーバ 240に登録されているユーザ名と P r o j e c t名を取得し、 それぞれの P r o j e c t名のディレクトリ内にある データにおいて、 インプリメント設計者が管理するディレクトリ LAYOUT 4 7内のデータとその他のディレクトリ内のデータとの比較、 論理合成、 レイァゥ ト処理にツールが要した時間の収集を 1日に 1回ずつ 2回に分けて行ない、 1回 目がインプリメント設計者への変更内容の通知を行ない、 2回目に収集した時間 を基に変更を反映するスケジュールを更新するコンピュータである。 The monitoring server 290 acquires the user name and the project name registered in the user management server 240, and stores the data in the directory of each project name in the directory LAYOUT 47 managed by the implementation designer. The time required by the tool to compare the data with the data in other directories, synthesize the data, and process the layout twice a day, twice a day, the first being the changes to the implementation designer This is a computer that notifies the user and updates the schedule to reflect changes based on the second collected time.
次に、 本実施の形態 2の AS I Cと FPGAのコンカレント開発システム 20 0の処理手順について説明する。 第 16図は、 本実施の形態 2の A S I Cと F P GAのコンカレント開発システム 200の処理手順を示すフローチヤ一トである 同図に示すように、 この AS I Cと F PGAのコンカレント開発システム 20 0に We bクライアント 100を用いてアクセスすると、 We bサーバ 220は 、 第 17図に示すログイン画面の表示制御データを We bクライアント 100へ 送り、 We bクライアント 100は、 受取ったデータに基づいて画面を表示する 。 ユーザは、 このログイン画面で契約に基づいて登録しているユーザ名とパスヮ ードを入力して L o g i nポタンを押すと、 We bクライアント 100は、 ユー ザ名とパスヮードを W e bサーバ 220に送る。 Next, a processing procedure of the concurrent development system 200 of the ASIC and the FPGA according to the second embodiment will be described. FIG. 16 is a flowchart showing a processing procedure of the concurrent development system 200 of ASIC and FPGA according to the second embodiment. As shown in FIG. 16, the concurrent development system 200 of AS IC and FPGA is used. When accessing using the web client 100, the web server 220 sends display control data of the login screen shown in FIG. 17 to the web client 100, and the web client 100 displays the screen based on the received data. To When the user inputs the user name and password registered based on the contract on this login screen and presses the Login button, the web client 100 sends the user name and password to the web server 220. .
We bサーバ 220は、 受取つたユーザ名とパスヮードをユーザ認証サーバ 2 The web server 220 sends the received user name and password to the user authentication server 2
30に問い合わせる。 ユーザ認証サーバ 230は、 ユーザ名とパスヮードが登録 されている力否かを確認し (ステップ S 501) 、 その結果を We bサーバ 22 0に返す。 We bサーバ 220は、 ユーザ認証サーバ 230から拒絶された場合Contact 30. The user authentication server 230 checks whether or not the user name and the password are registered (step S501), and compares the result with the Web server 22. Returns to 0. The web server 220 is rejected by the user authentication server 230
、 口グイン拒否画面の表示制御データを We bクライアント 100へ送り、 W e bクライアント 100は、 受取ったデータに基づいてログイン拒否を画面に表示 して終了する (ステップ S 502) 。 Then, the display control data of the login rejection screen is sent to the web client 100, and the web client 100 displays the login rejection on the screen based on the received data and ends (step S502).
We bサーバ 220は、 ユーザ認証サーバ 230から口グインを受け付けられ た場合、 第 18図に示す手順画面の表示制御データを We bクライアント 100 へ送り、 We bクライアント 100は受取ったデータに基づいて手順画面を表示 する (ステップ S 503) 。 · When the web server 220 receives the login from the user authentication server 230, the web server 220 sends display control data of the procedure screen shown in FIG. 18 to the web client 100, and the web client 100 performs the procedure based on the received data. The screen is displayed (step S503). ·
ユーザは、 第 18図に示した手順画面に従いメニューを選択し、 31〇と PGAのコンカレント開発を行なう。 ユーザが 「フォーマット 1」 及び 「フォー マット 2」 を選択すると (ステップ S 504の肯定) 、 We bサーバ 220内に ある対象の設計に必要なフォーマツトファイルが We bクライアント 100にダ ゥンロードされる (ステップ S 505) 。 The user selects a menu according to the procedure screen shown in Fig. 18 and performs concurrent development of PGA with 31〇. When the user selects “Format 1” and “Format 2” (Yes in step S504), the format files required for the target design in the web server 220 are downloaded to the web client 100 ( Step S505).
「フォーマツト 1」 は、 第 15図に示した論理 CORE生成用テーブルのフォ —マツトデータである。 「フォーマツト 2」 は、 後述する AS I Cの論理合成で 使用する AS I Cのパッケージの端子名称と端子番号割り付け、 及び AS I Cと 外部デバイス間を電気的にインタフェースする I Oバッファを定義したテープノレ のフォーマツトデータである。 “Format 1” is the format data of the logical CORE generation table shown in FIG. “Format 2” is the format of a tape drive that defines the AS IC package pin names and pin numbers used in AS IC logic synthesis described later, and defines the IO buffer that electrically interfaces between the AS IC and external devices. Data.
ユーザが論理 CORE生成を選択すると (ステップ S 506の肯定) 、 We b クライアント 100は論理 CO RE生成が選択された事を We bサーバ 220へ 送り、 We bサーバ 220は論理 CO RE生成インタフェースプログラム 221 を起動する (ステップ S 507) 。 When the user selects the logical CORE generation (Yes in step S506), the web client 100 sends to the web server 220 that the logical core generation is selected, and the web server 220 sends the logical core generation interface program 221. Is started (step S507).
ユーザが論理合成を選択すると (ステップ S 508の肯定) 、 We bクライア ン.ト 100は論理合成が選択された事を W e bサーバ 220へ送り、 W e bサー バ 220は論理合成インタフェースプログラム 222を起動する (ステップ S 5 09) 。 When the user selects the logic synthesis (Yes in step S508), the Web client 100 sends the selection of the logic synthesis to the web server 220, and the web server 220 transmits the logic synthesis interface program 222. Activate (Step S509).
ューザがフィッティングを選択すると (ステップ S 510の肯定) 、 We bク ライアン M O 0はフィッティングが選択された事を We bサーバ 220へ送り 、 We bサーバ 2 20はフィッティングインタフェースプログラム 22 3を起動 する (ステップ S 5 1 1) 。 When the user selects the fitting (Yes at step S510), the Web Ryan MO 0 sends the selection of the fitting to the web server 220, and the web server 220 activates the fitting interface program 223 (step S511).
ユーザが状況表示を選択すると (ステップ S 5 1 2の肯定) 、 We bクライア ント 1 0◦は状況表示が選択された事を W e bサーバ 2 20へ送り、 W e bサー バ 2 20は状況表示インタフェースプログラム 2 24を起動する (ステップ S 5 1 3) 。 When the user selects the status display (Yes in step S512), the web client 10◦ sends the selection of the status display to the web server 220, and the web server 220 displays the status display The interface program 224 is started (step S5 13).
次に、 論理 CORE生成インタフェースプログラム 2 2 1の処理手順について 説明する。 第 1 9図は、 論理 CORE生成インタフェースプログラム 2 2 1の処 理手順を示すフローチャートである。 同図に示すように、 この論理 CORE生成 インタフェースプログラム 2 2 1は、 第 20図に示す論理 CORE生成インタフ エース画面の表示制御データを We bサーバ 2 20へ送り、 We bサーバ 2 20 は受取つた論理 C O R E生成ィンタフェース画面の表示制御データを W e bクラ イアント 1 00へ送り、 We bクライアント 1 00は受取った論理 CORE生成 インタフェース画面の表示制御データに基づレ、て論理 CORE生成ィンタフエー ス画面を表示する (ステップ S 8 0 1) 。 Next, the processing procedure of the logical CORE generation interface program 221 will be described. FIG. 19 is a flowchart showing a processing procedure of the logical CORE generation interface program 221. As shown in the figure, the logical CORE generation interface program 221 sends display control data of the logical CORE generation interface screen shown in FIG. 20 to the web server 220, and the web server 220 receives the display control data. The display control data of the logical CORE generation interface screen is sent to the Web client 100, and the Web client 100 displays the logical CORE generation interface screen based on the received display control data of the logical CORE generation interface screen. It is displayed (step S8001).
ユーザは、 P r o j e c t名を入力して実行ボタンを選択し、 We bクライア ント 1 0 0によって表示されるファイル選択画面に従って AS I Cの論理 COR Eを生成するための AS I Cを構成する機能ブロックの I O仕様を定義した第 1 5図に示す論理 CORE生成用テ一ブルのフアイルを指定する D The user inputs a project name, selects an execution button, and follows a file selection screen displayed by the web client 100 to display a function block of an AS IC for generating a logical core of the AS IC according to a file selection screen. D that specifies the file of the logical CORE generation table shown in Fig. 15 that defines the IO specifications
We bクライアント 1 00は、 P r o j e c tの指定データと I Oの論理 CO R E生成用テーブルのファイルを W e bサーバ 2 20へ送り、 We bサーバ 2 2 0は、 ファイルサーバ 2 70内に、 第 14図に示した I〇4 2, CORE 4 3, RTL 44, SYNTHE S I S 4 5 , ROM46, LAYOUT4 7などのデ ィレクトリを作成し (ステップ S 80 2) 、 I 042下のディレクトリ AS I C 48に論理 CORE生成用テープノレのファイルを格納し、 P r o j e c t名を指 定し、 AS I C論理 CORE生成プログラム 2 5 1を実行し、 実行プロセス I D をメモリに格納する (ステップ S 803) 。 The web client 100 sends the specified data of the project and the file of the logical CORE generation table of the IO to the web server 220, and the web server 220 stores the file in the file server 270 in FIG. Create directories such as I〇42, CORE43, RTL44, SYNTHESIS45, ROM46, LAYOUT47, etc. (step S802), and generate a logical CORE in the directory AS IC48 under I042. Stores the file of the tape inserter, specifies the project name, executes the ASIC logic CORE generation program 251, and executes the process ID. Is stored in the memory (step S803).
ここで、 AS I C論理 CO RE生成プログラム 251の処理手順について説明 する。 第 21図及び第 22図は、 AS I C論理 CORE生成プログラム 251の 処理手順を示すフローチャートである。 第 21図に示すように、 この A S I C論 理 CORE生成プログラム 251は、 第 15図に示した論理 CORE生成用テー ブノレ X、 Y、 Ζを、 第 14図のディレクトリ AS I C48から読込み、 1フアイ ルずつ処理を行なう。 Here, the processing procedure of the ASIC logical core generation program 251 will be described. FIGS. 21 and 22 are flowcharts showing the processing procedure of the ASIC logic CORE generation program 251. As shown in FIG. 21, the ASIC logical CORE generation program 251 reads the logical CORE generation tables X, Y, and 示 し shown in FIG. 15 from the directory AS I C48 of FIG. The processing is performed one by one.
論理 CORE生成用テーブル X、 Y、 Ζは、 回路アーキテクチャ検討結果から 作成される機能ブロックのポート仕様を、 定義済みの 「フォーマット 1」 に従つ て定義したテーブルである。 このテーブルは、 機能ブロックを設計する際必ず作 成されるものであり、 機能ブロック名、 インスタンス名、 ポート名、 レンジ、 入 出力、 種別、 出力元インスタンス名、 出力元インスタンスの出力ボート名などか ら成る。 インスタンスとは、 AS I Cを構成する機能ブロックを参照するもので あり、 同一機能の機能プロックを複数使用する場合はこのィンスタンスの名称を 変えて糸且込まれる。 The logical CORE generation tables X, Y, and Ζ are tables that define the port specifications of the functional blocks created from the results of the circuit architecture study according to the defined “Format 1”. This table is always created when designing a functional block, and includes the function block name, instance name, port name, range, input / output, type, output source instance name, output port name of the output source instance, etc. Consisting of An instance refers to a functional block that constitutes an ASIC. When multiple function blocks having the same function are used, the name of this instance is changed and inserted.
まず、 Xのデータを読込み (ステップ S 1001) 、 ポート Aのテーブ^ "の全 データを抽出してメモリに格納し (ステップ S 1002) 、 ポート Aが出力か否 かを調べる (ステップ S 1003) 。 その結果、 ポート Aは入力であるので、 次 にパッケージ端子の接続キーワード" I 0,, の有無を調べる (ステップ S 100 5) 。 その結果、 接続キーワード" I O" はないので、 次のポート Bの全データ をメモリに格納する。 First, the data of X is read (step S1001), all data of the table ^ "of port A is extracted and stored in the memory (step S1002), and it is checked whether or not port A is an output (step S1003). As a result, since port A is an input, the presence or absence of the package terminal connection keyword "I0 ,," is checked next (step S1005). As a result, since there is no connection keyword "IO", all data of the next port B is stored in the memory.
ポート Bは出力であるので、 " XB" を第 14図のディレクトリ AS I C 50 に Aの名称でファイル出力する (ステップ S 1004) 。 次にパッケージ端子の 接続キーワード" I O" はないので、 次のポート Zの全データをメモリに格納す る。 ポート Zは出力であるので、 " XZ[2:0] " をファイル Aに出力する。 次に パッケージ端子の接続キーヮード" I O" はないので、 次のポート Iの全データ をメモリに格納する。 ポート Iは入力であり、 次にパッケージ端子の接続キーヮード" I O" がある ので" I NPUT, in, 2 : 0" を論理 C OR Eのポート名としてメモリに格納 する (ステップ S 1006) 。 これで Xの全ポートの処理が終了し (ステップ S 1007の肯定) 、 HDLの文法に従ってポート名と入出力とレンジ情報を定義 したェンティティフアイルを第 14図のディレクトリ AS I C 50に Xの名称で フアイノレ出力する (ステップ S 1008) 。 出力される内容は、 VHDLであれ ば以下のようなものである。 Since port B is an output, "XB" is output as a file to directory AS IC 50 in FIG. 14 under the name of A (step S1004). Next, since there is no package terminal connection keyword "IO", all data of the next port Z is stored in the memory. Since port Z is an output, output "XZ [2: 0]" to file A. Next, since there is no connection key "IO" for the package terminal, all data of the next port I is stored in the memory. Since port I is an input, and next there is a package terminal connection key word "IO", "INPUT, in, 2: 0" is stored in the memory as a logical CORE port name (step S1006). This completes the processing of all ports of X (Yes in step S1007), and stores an entity file defining port names, input / output and range information in accordance with the HDL syntax in the directory AS IC 50 in FIG. To output the file (step S1008). The output contents for VHDL are as follows.
A: in std— logic; A: in std— logic;
B : out stdー丄 ogic; B: out std ー ogic;
Z : out std— logic一 vector (2 downto 0) ; Z: out std—logic one vector (2 downto 0);
I : in std— logic; I: in std—logic;
そして、 上記の処理を Y、 Ζのデータについても行なう。 また、 この段階でフ 了ィル Αには次のようなデータが記録されている。 Then, the above processing is also performed on the data of Y and Ζ. Also, at this stage, the following data is recorded in file Α.
XB, XZ [2 : 0], YC[1 : 0], YO, ZF XB, XZ [2: 0], YC [1: 0], YO, ZF
上記 X、 Υ、 Ζの全ファイルの処理が終了すると (ステップ S 1009の肯定 ) 、 上記ファイル Α (ステップ S 1010) のデータを読込み、 メモリに格納し (ステップ S 1011) 、 1ファイルずつ処理を行なう。 ここでは、 Xのテープ ルデータを例に説明する。 まず、 ポート Aが入力である力否かを調べ (ステップ S 1012) 、 その結果、 ポート Aは入力であるので、 出力元の Yとポート名の Cを抽出する (ステップ S 1013) 。 そして、 メモリを YC[1 : 0]で検索し (ステップ S 1014) 、 —致するデータの有無を調べる (ステップ S 1016 ) 。 その結果、 一致するデータがメモリに存在するので、 以下のような接続情報 を第 14図のディレクトリ AS I C 50に Bの名称でフアイル出力する (ステツ プ S 1018) 。 結果が一致しない場合は、 ポートの名称またはレンジが異なつ ているなどのエラー情報をディレクトリ AS I C 50のログファイルに出力する (ステップ S 1017) 。 When the processing of all the files X, Υ, and 上 記 is completed (Yes at Step S1009), the data of the file Α (Step S1010) is read and stored in the memory (Step S1011), and the processing is performed one file at a time. Do. Here, the table data of X will be described as an example. First, it is checked whether or not the port A is an input (step S1012). As a result, since the port A is an input, the output source Y and the port name C are extracted (step S1013). Then, the memory is searched with YC [1: 0] (step S1014), and the presence or absence of matching data is checked (step S1016). As a result, since the matching data exists in the memory, the following connection information is output to the directory ASIC 50 in FIG. 14 as a file with the name B (step S1018). If the results do not match, error information such as a different port name or range is output to a log file in the directory ASIC 50 (step S1017).
A => YC 同様にして、 ポート Bは出力であるので、 以下のような接続情報をディレクト リ AS I C 50のファイル Bに出力する (ステップ S 1015) 。 A => YC Similarly, since port B is an output, the following connection information is output to file B of directory AS IC 50 (step S1015).
B => XB B => XB
同様にして、 ポート Zは出力であるので、 以下のような接続情報をディレクト リ AS I C 50のファイル Bに出力する。 Similarly, since port Z is an output, the following connection information is output to file B of directory ASIC 50.
Z => XZ Z => XZ
同様にして、 ポート Iは入力であり、 検索で"' I O I NPUT" が発見できな いので、 エラーとしてディレク トリ AS I C 50のログファイルに出力する。 た だし、 パッケージの端子と接続されるポートの場合は問題ではなく、 逆に口グに 出力されたエラー情報からどのィンスタンスのどのポートがパッケージのどの端 子と接続したかの確認ができる。 次に、 以下のような接続情報をディレクトリ A S I C 50のフアイ/レ Bに出力する。 Similarly, since port I is an input and "'IO I NPUT" cannot be found by searching, an error is output to the log file in directory AS IC 50. However, this is not a problem in the case of a port connected to a package terminal. Conversely, the error information output to the port can confirm which port of which instance is connected to which terminal of the package. Next, the following connection information is output to the file / file B of the directory A SIC 50.
I=> I O I NPUT I => I O I NPUT
以上の処理を Υ,Ζのテーブルデータについても行って終了すると (ステップ S 1019の肯定) 、 接続情報が作成できなかったポートをログファイルに出力 し (ステップ S 1020) 、 VHDLであれば、 以下のような情報をもった AS I Cの論理 COREのエンティティファイルをディレク トリ AS I C50に出力 する (ステップ S 1021) 。 When the above processing is performed on the table data of Υ and Ζ and the processing is completed (Yes at step S1019), the port for which the connection information could not be created is output to a log file (step S1020). The entity file of the logical CORE of the AS IC having the information as described above is output to the directory AS IC 50 (step S1021).
INPUT: in std— logic; INPUT: in std— logic;
OUT : out std_logic; OUT: out std_logic;
また、 論理 COREのエンティティファイルと接続情報を結合し、 AS I Cの 論理 COREをディレクトリ AS I C 50に第 17図で指定された P r o j e c t名でファイル出力して処理を終了し、 第 19図に示した論理 CORE生成イン タフエースプログラム 221に戻る (ステップ S 1022) 。 Also, the logical CORE entity file is combined with the connection information, and the logical CORE of the AS IC is output to the directory AS IC 50 as a file with the project name specified in FIG. 17, and the processing is terminated. The processing returns to the logic CORE generation interface program 221 (step S1022).
論理 CORE生成インタフェースプログラム 221は、 ディレクトリ AS I C 50内のログファイルにエラーがないかを検索する。 もしエラーが記録されてい れば (ステップ S 804の肯定) 、 エラーを読み込み (ステップ S 805) 、 P r o j e c t名と、 ユーザ管理サーバ 240に P r o j e c t名で問い合わせて 得たユーザのメールアドレスと、 エラー情報と、 プロセス I Dとをメールサーバ 260へ送り、 メールサーバ 260からユーザへメールを送信する (ステップ S 806) 。 ユーザは、 このメールでエラー内容を確認し、 エラーがなくなるまで 論理 CORE生成の処理を繰り返す。 The logical CORE generation interface program 221 searches the log files in the directory AS IC 50 for errors. If an error has been recorded (Yes at step S804), the error is read (step S805), and P The mail address, error information, and process ID of the user obtained by querying the user management server 240 with the P roject name, and the process ID are sent to the mail server 260, and mail is sent from the mail server 260 to the user (step S 806). The user confirms the contents of the error with this e-mail and repeats the logical CORE generation process until the error disappears.
一方、 ログファイルにエラーが記録されていなければ (ステップ S 804の否 定) 、 P r o j e c t名と、 ユーザ管理サーバ 240に P r o j e c t名で問い 合わせて得たユーザのメールアドレスと、 プロセス I Dと、 論理 CORE生成終 了メッセージとをメールサーバ 260へ送り (ステップ S 807) 、 メ一ルサ一 バ 260からユーザヘメールを送信する。 On the other hand, if no error is recorded in the log file (rejection of step S804), the proc name, the e-mail address of the user obtained by querying the user management server 240 with the proc name, the process ID, The logical CORE generation end message and the mail server 260 are sent to the mail server 260 (step S807), and the mail is sent from the mail server 260 to the user.
また、 ディレクトリ AS I C 50に" C ORE +プロセス I D+日時" の名称 でディレクトリを作成し、 ディレクトリ AS I C 50に P r o j e c t名で生成 した論理 COREとログファイルとをこのディレクトリに移動し、 このディレク トリに I Oの名称でディレクトリを作成し、 論理 COREの生成に使用したディ レクトリ AS I C48にあるテーブルデータをこの I〇ディレクトリに移動し、 論理合成サーバ 250内の論理 COREチェックプログラムにこの P r o j e c t名と" C〇RE +プロセス I D+日時" の名称で作成した論理 CO REのディ レクトリ名を指定し、 論理 COREチェックプログラムを起動する (ステップ S 808) 。 In addition, a directory is created in the directory AS IC 50 with the name of “CORE + process ID + date and time”, and the logical CORE and log files generated under the project name are moved to this directory in the directory AS IC 50. Create a directory with the name of IO in the directory, move the table data in the directory AS I C48 used to generate the logical CORE to this I〇 directory, and add this project to the logical CORE check program in the logic synthesis server 250. Specify the directory name of the logical core created with the name “C〇RE + process ID + date and time” and start the logical CORE check program (step S808).
この論理 COREチェックプログラムは、 AS I Cの論理 COREの文法チェ ック、 論理 COREを構成する各インスタンスの入出力ポートの未接続チェック を行ない、 レポートを出力するように論理合成ツールのコマンドが記述されてい る。 This logical CORE check program checks the syntax of the ASIC's logical CORE, checks the unconnected state of the input / output ports of each instance that constitutes the logical CORE, and describes the commands of the logic synthesis tool to output a report. ing.
ここで、 論理 COREチェックプログラムの処理手順について説明する。 第 2 3図は、 論理 COREチェックプログラムの処理手順を示すフローチャートであ る。 この論理 COREチェックプログラムは、 受取った P r o j e c t名のディ レクトリ下にあり、 第 14図のディレクトリ AS I C50に対象とする AS I C の論理 COREのディレクトリがあるかを調べ (ステップ S 1 20 1) 、 もしあ れば、 その論理 COREのディレクトリがある AS I Cディレクトリ内に WOR Kディレク トリを作成し (ステップ S 1 202) 、 論理合成ツールにチェックを 実行させる (ステップ S 1 203) 。 Here, the processing procedure of the logical CORE check program will be described. FIG. 23 is a flowchart showing a processing procedure of the logical CORE check program. This logical CORE check program is located under the directory of the received project name, and the AS IC Check if there is a logical CORE directory (step S1201), and if so, create a WORK directory in the ASIC directory where the logical CORE directory is located (step S1202), and The synthesis tool performs a check (step S1203).
実行が終了すると、 WORKディレクトリ内にあるレポートファイル内からェ ラー情報を抽出し、 ユーザ管理サーバ 240に P r o j e c t名で問い合わせて 得たユーザのメールァドレスと論理 COREのディレクトリ名から抽出したプロ セス I Dと共にメーノレサーバ 260へ送り、 メールサーバ 260からユーザヘメ ール送信する (ステップ S 1 204) 。 ユーザはこの送られたメールの内容でェ ラー情報が意図したもの力確認する。 When the execution is completed, error information is extracted from the report file in the WORK directory, and the user ID obtained by querying the user management server 240 with the project name and the process ID extracted from the logical CORE directory name At the same time, the mail is sent to the mail server 260, and the mail is sent from the mail server 260 to the user (step S1204). The user confirms the intendedness of the error information in the content of the sent mail.
この一連のフ口一で生成された論理 C O R Eは、 ユーザの論理設計において A S I Cを構成するインスタンス間の結線ミスが無い限り必ず AS I Cとして組み 上がることを保証するものである。 この効果は、 論理検証にて現れる。 AS I C を構成する複数のィンスタンスの機能検証において期待と違った動作をした場合 、 インスタンス間の接続は保証できていることからインスタンスを構成する各機 能に絞つたデバッグが可能となる。 The logical C ORE generated by this series of steps guarantees that it will always be built as an AS I C unless there is a connection error between the instances that constitute the A S IC in the user's logic design. This effect appears in logic verification. If the operation of a plurality of instances constituting the AS I C is performed in a different manner than expected in the function verification, the connection between the instances can be guaranteed, so that it is possible to perform debugging focused on each function constituting the instance.
次に、 ユーザが第 1 8図の手順画面において状況表示を選択した場合の処理に ついて説明する。 ユーザが第 18図の手順画面において状況表示を選択すると、 状況表示インタフェースプログラム 224が起動される。 この状況表示インタフ エースプログラム 224は、 第 24図に示す状況表示選択画面の表示制御データ を W e bサーバ 220へ送り、 W e bサーバ 220は受取つた状況表示選択画面 の表示制御データを We bクライアント 100へ送り、 We bクライアント 1 0 0は受取った状況表示選択画面の表示制御データに基づいて画面を表示する。 この画面でユーザが論理 C〇 R E作成を選択すると、 今度は状況表示ィンタフ エースプログラム 224が第 25図に示す論理 CORE生成状況画面の論理 CO REの名称表示がない表示制御データを生成して We bサーバ 220へ送り、 W e bサーバ 220は受取つた論理 C O R E生成状況画面の表示制御データを W e bクライアント 100へ送り、 We bクライアント 100は受取った論理 COR E生成状況画面の表示制御データに基づいて画面を表示する。 Next, the processing when the user selects the status display on the procedure screen of FIG. 18 will be described. When the user selects the status display on the procedure screen shown in FIG. 18, the status display interface program 224 is started. The status display interface program 224 sends the display control data of the status display selection screen shown in FIG. 24 to the web server 220, and the web server 220 transmits the received display control data of the status display selection screen to the web client 100. And the Web client 100 displays the screen based on the received display control data of the status display selection screen. When the user selects the logical CRE creation on this screen, the status display interface program 224 generates display control data without the logical CORE name display on the logical CORE generation status screen shown in FIG. b server 220, and the web server 220 transmits the received logical CORE generation status screen display control data to the web server 220. Send to the b client 100, and the web client 100 displays the screen based on the received display control data of the logical core generation status screen.
この画面でユーザが P r o j e c t名を入力し表示ボタンを選択すると、 P r o j e c t名を We bクライアント 100が W e bサーバ 220に送り、 We b サーバ 220から P r o j e c t名を受取った状況表示ィンタフェースプログラ ム 224は、 指定の P r o j e c t名のディレクトリから第 14図のディレクト リ AS I C 50にある論理 COREのディレクトリ名称を抽出し、 論理 CORE 生成状況画面の表示制御データを更新して We bサーバ 220へ送り、 We bサ ーバ 220は受取った論理 C O R E生成状況画面の表示制御データを W e bクラ イアント 100へ送り、 We bクライアント 100は受取った論理 CORE生成 状況画面の表示制御データに基づいて画面を表示する。 この画面には先に生成さ れた AS I Cの論理 CO REのディレクトリ名称が表示される。 On this screen, when the user inputs the Project name and selects the display button, the Web client 100 sends the Project name to the Web server 220 and receives the Project name from the Web server 220, a status display interface program. 224 extracts the directory name of the logical CORE in the directory AS IC 50 in FIG. 14 from the directory of the designated project name, updates the display control data on the logical CORE generation status screen, and sends it to the web server 220. Web server 220 sends the received display control data of the logical CORE generation status screen to Web client 100, and Web client 100 displays the screen based on the received logical CORE generation status display control data. I do. This screen shows the directory name of the previously created ASIC logical core.
ここで、 AS I Cの論理 CO RE生成状況表示画面での処理手順について説明 する。 第 26図は、 AS I Cの論理 CORE生成状況表示画面での処理手順を示 すフローチャートである。 同図に示すように、 ユーザが、 表示された論理 COR Eのどれかを選びダウンロードを選択すると (ステップ S 1501) 、 対象の論 理 COREを We bクライアント 100にダウン口一ドすることができる (ステ ップ S 1502) 。 このダウンロードした論理 COREは、 AS I Cのチップレ ベルのネットリストとして論理検証に使用することができ、 先に述べたようにィ ンスタンスを構成する機能に絞ったデバッグが可能となる。 Here, the processing procedure on the logical core generation status display screen of ASIC will be described. FIG. 26 is a flowchart showing a processing procedure on the logical CORE generation status display screen of ASIC. As shown in the figure, when the user selects one of the displayed logical cores and selects download (step S1501), the target logical core can be downloaded to the web client 100. (Step S 1502). The downloaded logical CORE can be used for logic verification as an ASIC chip-level netlist, and enables debugging that focuses on the functions that make up the instance as described above.
一方、 ユーザが論理 CORE名称を指定して F PG A化ポタンを選択すると ( ステップ S 1503) 、 We bクライアント 100は、 P r o j e c t名と論理 CORE名称と F PGA化が選択されたこととを We bサーバ 220に送り、 W e bサーバ 220は受取ったデータを状況表示インタフェースプログラム 224 へ送る。 状況表示インタフェースプログラム 224は、 第 14図のディレクトリ AS I C 50内にある、 対象とする論理 CORE名称のディレクトリ下の I〇デ ィレクトリ内にあるテーブルデータのファイル名を抽出し、 その結果、 第 27図 に示すような FPGA論理 CORE生成インタフェース画面の表示制御データを 作成し W e bサーバ 220へ送る。 On the other hand, when the user specifies the logical CORE name and selects the FPG conversion button (step S1503), the Web client 100 confirms that the Project name, the logical CORE name, and the F PGA conversion have been selected. The data is sent to the b server 220, and the web server 220 sends the received data to the status display interface program 224. The status display interface program 224 extracts the file name of the table data in the I〇 directory under the directory of the target logical CORE name in the directory AS IC 50 in FIG. Figure Create the display control data of the FPGA logic CORE generation interface screen as shown in (1) and send it to the Web server 220.
We bサーバ 220は受取った F PGA論理 CORE生成インタフェース画面 の表示制御データを We bクライアント 100へ送り、 We bクライアント 10 0は受取った F PGA論理 CORE生成インタフェース画面の表示制御データに 基づいて画面を表示する (ステップ S 1504) 。 この画面では、 指定された P r o j e c t名と、 ff侖理 CORE名と、 論理 C O R Eを構成するインスタンス名 のリストが左側のリストボックスにリストされる。 また、 この画面では、 対象の 論理 COREを変えることも可能であり、 ユーザが P r o j e c t名と論理 CO RE名を指定すると第 25図で指定した同様の処理によって画面が更新される。 さらに、 この画面は、 対象の AS I Cの論理 COREを構成するインスタンス のテーブルデータから F PGAの論理 COREを生成するィンタフェースであつ て、 ユーザは、 左のリストボックスからィンスタンスを指定し追加ボタンを選-択 することで右のリストボックスにインスタンスを追加する。 この右のリストポッ クスにリス トされたインスタンスが 1つの FPGAとなる。 ユーザがィンスタン スを選択し、 F PGA名と管理のための追い番号である 1以上の一意の整数であ る F PGA番号を設定して実行ポタンを選択すると、 We bクライアント 100 、 対象の P r o j e c t名と、 AS I Cの論理 CORE名と、 FPGA名と、 FPGAとするインスタンス名のリストと、 FPGAの番号とを We bサーバ 2 20へ送り、 We bサーバ 220は、 受取ったデータを状況表示インタフェース プログラム 224へ送る。 The web server 220 sends the received display control data of the FPGA logic CORE generation interface screen to the web client 100, and the web client 100 displays the screen based on the received display control data of the FPGA logic CORE generation interface screen. It is displayed (step S1504). In this screen, a list of the specified Project name, fflunli CORE name, and instance names constituting the logical CORE are listed in the left list box. In this screen, it is also possible to change the target logical CORE. If the user specifies a Project name and a logical CORE name, the screen is updated by the same processing specified in FIG. Furthermore, this screen is an interface for generating the FPGA logic CORE from the table data of the instances that make up the target AS IC logic CORE, and the user specifies the instance from the left list box and clicks the add button. Select to add an instance to the right list box. The instance listed in the right list box is one FPGA. When the user selects an instance, sets the FPGA name and the FPGA number, which is a unique integer of 1 or more, which is an additional number for management, and selects an execution button, the Web client 100 and the target P The roject name, the logical CORE name of the AS IC, the FPGA name, the list of instance names to be used as the FPGA, and the FPGA number are sent to the web server 220, and the web server 220 displays the status of the received data. Send to interface program 224.
そして、 状況表示インタフェースプログラム 224は、 受取ったインスタンス 名のリストに従って第 14図のディレクトリ FPGA49に指定された FPGA の番号でディレクトリを作成し、 第 14図のディレクトリ AS I C50にある、 CORE名称のディレクトリ下の I Oディレクトリから名称の一致するテーブル データを前記番号のディレクトリへ複写し、 テーブルデータ名のリストを引数と して FPGA論理 CORE生成プログラム 252を実行する。 ここで、' F P G A論理 C OR E生成プログラム 252の処理手順について説明 する。 第 28図及び第 29図は、 FPGA論理 CORE生成プログラム 252の 処理手順を示すフローチヤ一トである。 第 28図は第 21図に示した処理と同じ であり、 また、 第 29図は第 22図に示した処理とステップ S 1717及びステ ップ S 1720を除いて同じであるので、 この 2つのステップについて説明する 第 22図のステップ S 1017では、 対象のィンスタンスの入力であるポート に定義してある接続相手のインスタンス名とその出力ポート名が、 メモリに格納 している情報にない場合、 エラーとしてログフアイノレに出力しているが、 第 29 図のステップ S 1717では、 元々 AS I Cの論理 COREとしてインスタンス のポート間接続は保証できているので、 このステップ S 1717ではエラーでは なくパッケージの入力端子情報としてメモリに追加格納する。 Then, the status display interface program 224 creates a directory with the number of the FPGA specified in the directory FPGA49 in FIG. 14 according to the received list of instance names, and creates a directory named CORE in the directory AS I C50 in FIG. The table data with the same name is copied from the IO directory below to the directory with the above number, and the FPGA logic CORE generation program 252 is executed with the list of table data names as an argument. Here, the processing procedure of the FPGA logic CORE generation program 252 will be described. FIG. 28 and FIG. 29 are flowcharts showing the processing procedure of the FPGA logic CORE generation program 252. FIG. 28 is the same as the process shown in FIG. 21, and FIG. 29 is the same as the process shown in FIG. 22 except for step S1717 and step S1720. Explanation of steps In step S1017 of Fig. 22, if the instance name of the connection partner defined for the input port of the target instance and the output port name are not in the information stored in the memory, an error occurs. However, in step S1717 in Fig. 29, the connection between the ports of the instances was originally guaranteed as the logic CORE of the AS IC, so in this step S1717, not the error but the input terminal information of the package And store it in memory.
また、 第 22図のステップ S 1020では、 最終的に残った未接続のポート情 報をログフアイノレに出力している。 一方、 ステップ S 1720では、 第 14図の ディレク トリ AS I C 50下の" CORE +プロセス I D+日付" で作成してい る対象とする AS I Cの論理 COREのディレクトリにあるログファイルとステ ップ S 1720で出力したログファイルとを比較し、 ステップ S 1020で出力 したログフアイルにない出力ポートをパッケージの出力端子情報としてメモリに 追加格納する。 後は、 ステップ S 1020の処理と同様にして第 14図のディレ クトリ FPGA51の下の指定された番号のディレクトリ内に指定された FPG A名称で論理 COREをファイル出力する。 In step S1020 in FIG. 22, the information about the unconnected ports that have finally been left is output to the log file. On the other hand, in step S1720, the log file and the step S in the directory of the logical CORE of the target AS IC created by “CORE + process ID + date” under the directory AS IC 50 in FIG. The log file output in step 1720 is compared, and an output port not included in the log file output in step S1020 is additionally stored in the memory as output terminal information of the package. Thereafter, a logical CORE is output as a file with the designated FPG A name in the designated directory under the directory FPGA 51 in FIG. 14 in the same manner as the processing in step S1020.
そして、 状況表示インタフェースプログラム 224は、 ?。 の論理001 Eファイルを読込み、 パッケージの入出力となる端子数をカウントし、 第 30図 に示す互換パッケージのテーブルの第 2カラムにある I O数に占める割合を全て 計算し、 割合が最大のパッケージとその互換パッケージデータを抽出し、 第 27 図に示した F PGA論理 CORE生成インタフェース画面のパッケージ名、 I〇 使用率の画面表示制御データを更新し、 We bサーバ220へ送る。 We bサー バ 220は受取った F PGA論理 CO RE生成インタフェース画面の表示制御デ ータを We bクライアント 100へ送り、 We bクライアント 100は受取った FPGA論理 CORE生成インタフェース画面の表示制御データに基づいて入力 画面を更新する。 And the status display interface program 224 is? . The logical 001 E file is read, the number of terminals that become the input and output of the package is counted, and the ratio of all the IOs in the second column of the compatible package table shown in Fig. 30 is calculated, and the package with the largest ratio is calculated. and extracting the compatible package data, the package name of F PGA logic CORE generating interface screen shown in FIG. 27, and updates the screen display control data I_〇 utilization, sent to We b server 2 20. We b sir The bar 220 sends the received display control data of the FPGA logic CORE generation interface screen to the web client 100, and the web client 100 displays the input screen based on the received display control data of the FPGA logic CORE generation interface screen. Update.
ユーザは、 この結果に満足できなければ再度 F PGA論理 CORE生成をやり 直す。 ユーザが決定を選択すると、 We bクライアント 100は決定が選択され たことと、 F PGA番号とパッケージ名と I O使用率のデータとを We bサーバ 220に送り、 We bサーバ 220からこれらのデータを受取った状況表示イン タフエースプログラム 224は、 第 14図のディレクトリ F PGA55に指定さ れた番号のディレク トリを作成し、 例えば plistの名称で受取ったデータをファ イノレ出力する。 If the user is not satisfied with this result, re-generate the FPGA logic CORE again. When the user selects the decision, the web client 100 sends the decision and the F PGA number, the package name, and the data of the IO usage to the web server 220, and the web server 220 transmits the data. The received status display interface program 224 creates a directory with the number specified in the directory FPGA55 in FIG. 14, and outputs the received data in the form of a plist, for example, in the form of a file.
次に、 論理合成インタフェースプログラム 222の処理手順について説明する 。 第 31図は、 論理合成インタフェースプログラム 222の処理手順を示すフロ 一チャートである。 同図に示すように、 この論理合成インタフェースプログラム 222は、 第 32図に示すような論理合成ィンタフエース画面の表示制御データ を We bサーバ 220へ送り、 We bサーバ 220は受取った論理合成インタフ エース画面の表示制御データを We bクライアント 100へ送り、 We bクライ アント 100は受取った論理合成ィンタフェース画面の表示制御データに基づい て画面を表示する (ステップ S 2001) 。 Next, the processing procedure of the logic synthesis interface program 222 will be described. FIG. 31 is a flowchart showing a processing procedure of the logic synthesis interface program 222. As shown in the figure, the logic synthesis interface program 222 sends display control data of a logic synthesis interface screen as shown in FIG. 32 to the web server 220, and the web server 220 receives the logic synthesis interface screen. Is transmitted to the web client 100, and the web client 100 displays a screen based on the received display control data of the logic synthesis interface screen (step S2001).
ユーザが P r o j e c t名、 第 25図で表示されている対象の論理 C O R E名 、 論理合成する対象の機能ブロック名、 組込む F PG Aの番号を指定し、 力ゝっ面 積優先か速度優先かの指定と、 De b u g (FP G Aの論理合成を実行しない) か F i X (F PGAの論理合成を実行する) かを指定し (ステップ S 2002) 、 実行ボタンを選択すると (ステップ S 2003) 、 We bクライアント 100 はデータ選択画面を表示する。 The user specifies the name of the project, the name of the target logical CORE displayed in Fig. 25, the name of the functional block to be synthesized, and the number of the FPG A to be incorporated. Specifying De bug (do not execute logic synthesis of FPGA) or Fix (execute logic synthesis of FPGA) (Step S 2002), and select the execution button (Step S 2003) The web client 100 displays a data selection screen.
ユーザがこの画面に従って論理合成する RT Lソースを選択すると、 これらの データを We bクライアント 100は We bサーバ 220に送り、 We bサーバ 220からデータを受取った論理合成インタフェースプログラム 222は、 RT Lソースを第 14図のディレクトリ AS I C 52に指定の機能ブロック名でディ レク トリを作成し、 RTLを格納する (ステップ S 2004) 。 そして、 RTL ソースを 1ファイルずつ読込み、 RTLソース内の変更履歴、 版数などを記載す るヘッダー部分にユーザが定義している動作周波数データを抽出し、 抽出した値 に対して 20 %増した周波数値とユーザに指定された速度優先または面積優先の 論理合成条件を論理合成の制約として論理合成対象の機能ブロック名を指定して AS I Cの論理合成ツールの AS I C論理合成プログラム 253を実行する (ス テツプ S 2005)。 When the user selects an RTL source to perform logic synthesis according to this screen, the Web client 100 sends these data to the Web server 220, and the Web server The logic synthesis interface program 222 that has received the data from the 220 creates a directory with the designated function block name in the directory AS IC 52 of FIG. 14 and stores the RTL source in the directory AS IC 52 (step S2004). Then, the RTL source was read one file at a time, and the operating frequency data defined by the user was extracted in the header that describes the change history and version number in the RTL source, and the value was increased by 20% from the extracted value. Execute the AS IC logic synthesis program 253 of the AS IC logic synthesis tool by specifying the functional block name of the logic synthesis target with the frequency value and the speed-first or area-first logic synthesis condition specified by the user as the constraint of the logic synthesis. (Step S 2005).
AS I Cの論理合成が終了すると、 論理合成インタフェースプログラム 222 は、 第 14図のディレクトリ AS I C 54下にある指定の機能ブロックのディレ クトリに AS I C論理合成プログラム 253が出力した結果のレポートファイル と、 ユーザ管理サーバ 240に P r o j e c t名で問い合わせて得たユーザのメ ールァドレスとプロック名とをメールサーバ 260に送り、 メールサーバ 260 からユーザにメールを送信する (ステップ S 2006) 。 When the logic synthesis of the AS IC is completed, the logic synthesis interface program 222 generates a report file output by the AS IC logic synthesis program 253 in the directory of the specified functional block under the directory AS IC 54 in FIG. The mail address and block name of the user obtained by inquiring of the user management server 240 with the project name are sent to the mail server 260, and the mail is transmitted from the mail server 260 to the user (step S2006).
そして、 論理合成インタフェースプログラム 222は、 この処理過程を第 14 図のディレク トリ AS I C 52下に指定の機能プロック名で作成したディレクト リに存在する全 RTLソースに対して実行する。 全 RTLソースの論理合成が終 了すると (ステップ S 2007の肯定) 、論理合成インタフェースプログラム 2 22は、 速度優先指定の場合は (ステップ S 2008の肯定) 、 全 RTLの論理 合成結果のレポ一トを検索し、 R T Lソースに定義された動作周波数を満足して いる力、否かを判断する (ステップ S 2009〜ステップ S 2010) 。 面積重視 の場合は何もしない。 Then, the logic synthesis interface program 222 executes this processing for all the RTL sources existing in the directory created under the specified function block name under the directory ASIC 52 in FIG. When the logic synthesis of all RTL sources is completed (Yes in step S2007), the logic synthesis interface program 222 reports the result of logic synthesis of all RTLs when speed priority is specified (Yes in step S2008). To determine whether the force satisfies the operating frequency defined in the RTL source (step S2009 to step S2010). Nothing is done in case of emphasis on area.
次に、 F i X指定を調べ (ステップ S 2011) 、 F i X指定されていれば、 '論理合成インタフェースプログラム 222は、 指定された FPGA番号で第 14 図のディレクトリ FPGA55下にディレクトリを作成し、 この中に第 14図の ディレクトリ AS I C 52下にある指定された機能プロックディレクトリ内の R TLを複写して格納し、 指定された P r o j e c t名と F PGA番号とを引数と して F PGA論理合成インタフェースプログラムを実行する (ステップ S 201 2) 。 Next, the F i X designation is checked (step S 2011). If the F i X designation is made, the logic synthesis interface program 222 creates a directory under the directory FPGA 55 in FIG. 14 with the designated FPGA number. The R in the specified function block directory under the directory AS IC 52 in FIG. The TL is copied and stored, and the FPGA logic synthesis interface program is executed using the specified project name and FPGA number as arguments (step S2012).
そして、 論理合成インタフェースプログラム 222は、 論理合成ツーノレを起動 し、 第 14図のディレクトリ AS I C 5◦にある指定の論理 CO REのディレク トリカゝら AS I Cの論理 COREを論理合成ツールにコマンドを投入して読込ま せ、 ユーザからアップロードされ第 14図のディレクトリ AS I C 54に存在す る AS I Cのパッケージ端子割付けと AS I Cと接続される外部デバイスと電気 的にィンタフェースするバッファとを定義したファイルを読込み、 定義に従って 論理合成ツールにコマンドを投入することで AS I Cのバッファとスキャンなど テスト回路を AS I Cの論理 CO REの端子とパッケージの端子と接続されるチ ップのパッド間に挿入し接続させ、 そして、 論理合成済みである第 14図のディ レク トリ AS I C 52下の全ディレクトリにある機能ブロックのデータを論理合 成ツールにコマンドを投入して読込んで論理 COREに填め込ませ、 レイアウト 設計用に AS I Cのネットリストを生成させ、 第 14図のディレクトリ AS I C 54に P r o j e c t名でファイル出力させる (ステップ S 2013) 。 Then, the logic synthesis interface program 222 activates the logic synthesis tool, and issues a command to the logic synthesis tool using the logic CORE of the specified logic core in the specified logic core in the directory AS IC 5 ° in FIG. A file that defines the package pin assignment of the AS IC, which is uploaded from the user and exists in the directory AS IC 54 in FIG. 14, and a buffer that electrically interfaces with an external device connected to the AS IC. By loading commands into the logic synthesis tool according to the definition, the test circuit, such as the buffer and scan of the AS IC, is inserted between the chip pins connected to the logic core terminal of the AS IC and the package terminal. 14 and the functional blocks in all directories under the directory AS IC 52 in FIG. Data is input into the logic synthesis tool by reading commands and loaded into the logic CORE, and a netlist of AS IC is generated for layout design, and a file is output as a project name to the directory AS IC 54 in Fig. 14. (Step S 2013).
次に、 F P G A論理合成ィンタフェースプログラムの処理手順について説明す る。 第 33図は、 FPGA論理合成インタフェースプログラムの処理手順を示す フローチャートである。 同図に示すように、 この F PGA論理合成インタフエ一 スプログラムは、 AS I Cの論理合成インタフェースプログラムから指定された FPGA番号で第 14図のディレク トリ FPGA55にディレクトリを作成し、 第 14図のディレク トリ F PGA53下にある指定された番号のディレク トリ内 の RTLソースを 1ファイルずつ読込み、 RTLソース内の変更履歴、 版数など を記載するへッダ一部分にユーザが定義している動作周波数データを抽出し、 抽 出した値に対して 20 %増した周波数値を論理合成の制約として論理合成対象の 機能プロック名を指定して F PGAの論理合成ツールの F PGA論理合成プログ ラム 254を実行する (ステップ S 2201) 。 F P G Aの論理合成が終了すると、 F P G A論理合成プログラム 254は、 第 14図のディレク トリ FPGA55にある対象とする番号のディレクトリに論理 合成結果を機能ブロックの名称で出力する。 こうすることでユーザは、 後述する 第 34図の論理合成状況表示でグート使用率を確認しつつ設計作業を進めること ができる。 そして、 FPGA論理合成インタフェースプログラムは、 論理合成の 終了メッセージと、 FPGAの番号と、 ブロック名と、 P r o j e c t名でユー ザ管理サーバ 240に問い合わせ得たユーザのメールァドレスとをメールサーバ 260に送り、 メールサーバ 260からユーザにメールを送信する (ステップ S 2202) 。 Next, the processing procedure of the FPGA logic synthesis interface program will be described. FIG. 33 is a flowchart showing a processing procedure of the FPGA logic synthesis interface program. As shown in the figure, this FPGA logic synthesis interface program creates a directory in the directory FPGA55 in FIG. 14 with the FPGA number specified by the logic synthesis interface program of the ASIC, and creates a directory in FIG. The FTL source in the directory with the specified number under the bird F PGA53 is read one file at a time, and the operating frequency data defined by the user in a part of the header that describes the change history, version number, etc. in the RTL source And execute the FPGA logic synthesis program 254 of the FPGA logic synthesis tool by specifying the function block name of the logic synthesis target as the logic synthesis constraint with the frequency value increased by 20% from the extracted value as the logic synthesis constraint. (Step S2201). When the logic synthesis of the FPGA is completed, the FPGA logic synthesis program 254 outputs the logic synthesis result to the directory of the target number in the directory FPGA55 in FIG. 14 by the name of the functional block. By doing so, the user can proceed with the design work while checking the gut usage rate on the logic synthesis status display in FIG. 34 described later. Then, the FPGA logic synthesis interface program sends to the mail server 260 the logic synthesis end message, the FPGA number, the block name, and the mail address of the user who has inquired of the user management server 240 with the project name. The mail is transmitted from the mail server 260 to the user (step S2202).
次に、 FPGA論理合成インタフェースプログラムは、 指定された番号の FP G Aを構成する機能プロックの論理合成がすべて終了している力確認する (ステ ップ S 2203) 。 この確認は、 第 14図のディレク トリ F PGA51の対象と する番号のディレクトリにある機能プロックの名称を抽出し、 前記論理合成が終 了した機能プロック名と比較することで行なう。 差分がなければ、 次に F P G A 論理合成インタフェースプログラムは、 今度は、 第 14図のディレクトリ FPG A 5 1にある対象の番号のディレクトリにある FPGA名である論理 COREの ファイル名を抽出し、 この名称で第 14図のディレク トリ FPGA 55に FPG Aのレイァゥトである、 フィッティングに使用する FPGAの論理 COREのポ ート名と同一であるパッケージの端子名と端子番号の対応、 動作周波数、 などを 定義したフィッティング制御ファイルが、 ユーザからアップロードされ存在して いるかチェックする (ステップ S 2206) 。 Next, the FPGA logic synthesis interface program confirms that the logic synthesis of all the functional blocks constituting the FPGA of the designated number has been completed (step S2203). This confirmation is performed by extracting the name of the function block in the directory of the number targeted for the directory FPGA 51 in FIG. 14 and comparing it with the name of the function block for which the logic synthesis has been completed. If there is no difference, then the FPGA logic synthesis interface program extracts the file name of the logic CORE, which is the FPGA name in the directory of the target number in the directory FPG A51 in FIG. In the directory of Fig. 14, the FPGA 55 defines the layout of the FPG A, the correspondence between the package pin names and pin numbers that are the same as the port names of the logic CORE of the FPGA used for fitting, the operating frequency, etc. It is checked whether the fitting control file thus uploaded exists from the user (step S2206).
存在していれば、 FPGA論理合成インタフェースプログラムは、 FPGAを 構成する全機能ブロックと第 14図のディレクトリ FPGA 51下の、 対象の番 号のディレクトリにある FPGAの論理 COREとを指定し、 FPGA論理合成 プログラム 254を実行する。 そして FPGAの論理合成が終了すると、 FPG A論理合成インタフェースプログラムは、 フィッティングプログラム 255を起 動し、 論理合成結果のネットリストをフィッティングプログラム 255に投入し てレイァゥトを行ない、 F PGAのレイァゥト結果であり回路情報を記録した R OMデータを生成し、 第 14図のディレクトリ ROM46下の対象とする番号の ディレクトリに FPGA名で出力させる (ステップ S 2207) 。 そして、 RO Mデータ生成の終了メッセージと、 FPGAの番号と、 P r o〗 e c t名と、 ュ 一ザ管理サーバ 240に問い合わせて得たユーザのメールァドレスとをメールサ ーバ 260へ送り、 メールを送信する (ステップ S 2208) 。 If it exists, the FPGA logic synthesis interface program specifies all functional blocks constituting the FPGA and the logic CORE of the FPGA in the directory of the target number under the directory FPGA 51 in FIG. Run synthesis program 254. Then, when the logic synthesis of the FPGA is completed, the FPG A logic synthesis interface program starts the fitting program 255 and inputs the netlist of the logic synthesis result to the fitting program 255. Then, ROM data that is the layout result of the FPGA and records the circuit information is generated, and output to the directory of the target number under the directory ROM 46 in FIG. 14 with the FPGA name (step S2207). Then, the end message of the ROM data generation, the FPGA number, the Project name, and the user's e-mail address obtained by inquiring of the user management server 240 are sent to the e-mail server 260, and the e-mail is transmitted. Yes (step S2208).
差分があれば、 後述するフイツティングデータの投入と実行画面で実行ポタン が選択されていないか判断し (ステップ S 2204) 、 選択されていなければ終 了するが、 選択されていれば論理合成が未の機能ブロック全てに対し、 第 14図 のディレクトリ F PGA 51下にある対象の番号のディレクトリにある、 FPG Aの論理 CORE内の各機能ブロック内部で、 入出力ポート全てにフリップ-フ 口ップを接続し、 入力側の全フリップ'フロップの出力ポートを適当なゲート、 例えば 2入力 N ANDの入力ポートに接続し、 全 NANDゲートの出力を新たな 2入力の NANDゲートの入力ポートに接続し、 前述のように 2入力 N ANDの 多段接続を繰り返し、 最終段の 2入力 N ANDの出力を出力側の全フリップ 'フ 口ップの入力ポートに接続する HD L記述を揷入して論理合成可能な状態にする (ステップ S 2205) 。 If there is a difference, it is determined whether or not an execution button is selected on the input and execution screen of the fitting data described later (step S2204), and if not selected, the process is terminated. For all function blocks that have not yet been set, flip-flops are provided for all input / output ports inside each function block in the logic CORE of FPG A in the directory of the target number under the directory F PGA 51 in FIG. Connect the output ports of all flip-flops on the input side to an appropriate gate, for example, the input port of a 2-input NAND, and connect the outputs of all NAND gates to the input ports of a new 2-input NAND gate. Connect, repeat the multi-stage connection of 2-input NAND as described above, and enter the HDL description that connects the output of the final 2-input NAND to the input ports of all flip-flops on the output side. Can be logically synthesized The state is set (step S2205).
後は、 差分がない場合と同一の処理となる。 開発着手時点の検証戦略にも依る 力 回路アーキテクチャ検討にて機能的に上りと下りに大きく分割できる機能ブ ロック構成となっている場合、 上述のフリップ'フロップなどを用いたダミー回 路を揷入することによって、 上りの機能の設計が完了していれば、 下りの機能の 設計が未完であつても検証が可能であり、 検証の効率化に貢献するところが大き レ、。 After that, the process is the same as when there is no difference. Power depending on the verification strategy at the start of development In the case of a functional block configuration that can be largely divided into upstream and downstream in circuit architecture study, use a dummy circuit using the above-mentioned flip-flop As a result, if the design of the upstream function is completed, verification can be performed even if the design of the downstream function is incomplete, which greatly contributes to efficient verification.
次に、 第 34図の論理合成状況表示画面について説明する。 この画面は、 ユー ザが We bクライアント 100で第 24図の状況表示画面にある論理合成を選択 すると、 We bクライアント 100は論理合成を選択されたことを We bサーバ 220に送り、 We bサーバ 220からデータを受取った状況表示インタフエ一 スプログラム 2 24は、 口グインしたユーザの名称でユーザ管理サーバ 240に 問い合わせて得た P r o j e c t名全てに対し、 第 1 4図のディレクトリ F PG A 5 5下の、 全番号のディレクトリにある論理合成結果からゲート規模を抽出す る。 Next, the logic composition status display screen of FIG. 34 will be described. This screen is displayed when the user selects the logic synthesis in the status display screen of Fig. 24 with the web client 100, the web client 100 sends the selection of the logic synthesis to the web server 220, and the web server Status display interface that received data from 220 The program 224 queries the user management server 240 with the name of the logged-in user for all project names obtained from the user management server 240. The logical program in the directory of all numbers under the directory FPG A 55 in FIG. Extract the gate size from the synthesis result.
そして、 先に説明した F PGA論理 CORE生成で作成された同一ディレクト リにある plistからパッケージ情報を抽出し、 このパッケージ情報を基に第 3 0 図のテーブル内でゲート規模の割合が 7 5 %以下になるパッケージを選び出し、 第 34図の論理合成状況表示画面の表示制御データを生成し、 We bサーバ 2 2 0に送る。 We bサーバ 2 20は、 論理合成状況表示画面の表示制御データを W e bクライアント 1 00に送り、 We bクライアント 1 00は、 受取った論理合 成状況表示画面の表示制御データに基づいて画面を表示する。 Then, the package information is extracted from the plist in the same directory created by the FPGA logic CORE generation described above, and based on this package information, the gate scale ratio in the table of FIG. The following packages are selected, and the display control data of the logic synthesis status display screen shown in FIG. 34 is generated and sent to the web server 220. The web server 220 sends the display control data of the logic synthesis status display screen to the web client 100, and the web client 100 displays the screen based on the received display control data of the logic synthesis status display screen. I do.
ここで、 ゲート規模の割合 7 5 %について簡単に説明しておく。 通常 F P G A の論理合成ツールは、 論理合成の結果のゲート規模を基に論理合成ツールがもつ データベースから適当なパッケージとゲート使用率を示唆してくれる。 し力 しな がら、 F PGAのフィッティングにおいては、 セルの配置過程において配,棣の効 率を上げるため、 F PGAで論理を実現する単位ブロックを配線に使用する。 従 つて、 論理合成結果よりゲート規模が大きくなることを考慮し、 フィッティング 後ゲート使用率が 1 00%を超えないように 7 5 %に設定しているものであり、 F PGAで異なることもある。 このためにも先に説明した F PGAの論理合成を 機能プロック毎に実行させることは有効である。 Here, the gate size ratio of 75% is briefly explained. Usually, the F PGA logic synthesis tool suggests an appropriate package and gate utilization from the database of the logic synthesis tool based on the gate size of the logic synthesis result. However, in the fitting of the FPGA, a unit block that realizes logic by the FPGA is used for wiring in order to increase the efficiency of the arrangement and the di in the process of arranging the cells. Therefore, considering that the gate size will be larger than the result of logic synthesis, the gate utilization rate after fitting is set to 75% so that it does not exceed 100%, and it may be different for FPGA. . For this reason, it is effective to execute the FPGA logic synthesis described above for each function block.
次に、 フィッティングデータの投入と実行画面について説明する。 第 3 5図は 、 フィッティングデータの投入と実行画面の一例を示す図である。 ユーザが We bクライアント 1 00で第 1 8図に示した手順画面にあるフィッティングを選択 すると、 We bクライアント 1 00はフィッティングが選択されたことを We b サーバ 2 2 0に送り、 We bサーバ 2 20からデータを受取ったフィッティング インタフェースプログラム 2 2 3は、 口グインしたユーザの名称でユーザ管理サ ーバ 240に問い合わせて得た P r o j e c t名全てに対し、 第 14図のディレ クトリ F PGA 5 5下の、 全ディレクトリの番号名と、 それぞれのディレクトリ にある論理合成結果であるネットリストのファイル名即ち FPGA名を抽出し、 第 35図に示すフィッティングデータの投入と実行画面の表示制御データを生成 し、 We bサーバ 220に送る。 Next, the fitting data input and execution screen will be described. FIG. 35 is a diagram showing an example of a fitting data input and execution screen. When the user selects the fitting in the procedure screen shown in FIG. 18 with the web client 100, the web client 100 sends the selection of the fitting to the web server 220 and the web server 2 The fitting interface program 2 23 which received the data from the server 20 receives the query name from the user management server 240 using the name of the logged-in user. And the file name of the netlist that is the result of logic synthesis in each directory, that is, the FPGA name under the directory F PGA 55, is extracted, and the fitting data input and execution screen shown in Fig. 35 are displayed. Generates display control data and sends it to the Web server 220.
We bサーバ 220はフイツティングデータの投入と実行画面の表示制御デー タを We bクライアント 1 00に送り、 We bクライアント 100は、 受取った フィッティングデータの投入と実行画面の表示制御データに基づいて画面を表示 する。 この画面の条件データ投入を選択すると、 We bクライアント 1 00によ りデータ選択画面が表示される。 The web server 220 sends the fitting data input and execution screen display control data to the web client 100, and the web client 100 receives the fitting data and executes the received screen display control data based on the received fitting data. Display the screen. When the condition data input on this screen is selected, the web client 100 displays a data selection screen.
この画面に従い、 ユーザが先に述べたフィッティング制御ファイルを選択する と、 We bクライアント 1 00は、 選択した FPGAの番号とフィッティング制 御ファイルを We bサーバ 220に送り、 We bサーバ 220からデータを受取 つたフィッティングィンタフエースプログラム 2 23は、 第 14図のディレクト リ F PGA 55下の、 対象の番号のディレクトリにフィッティング制御フアイノレ を格納する。 According to this screen, when the user selects the fitting control file described above, the web client 100 sends the selected FPGA number and the fitting control file to the web server 220, and transmits data from the web server 220. The received fitting interface program 223 stores the fitting control file in the directory of the target number under the directory FPGA 55 in FIG.
また、 ユーザが実行ボタンを選択すると、 We bクライアント 100は、 選択 した FPGAの番号と、 P r o j e c t名と、 実行が選択されたことを W e bサ ーバ 220に送り、 We bサーバ 220からデータを受取ったフィッティングイ ンタフェースプログラム 223は、 P r o j e c t名と F P G A番号とを引数と して FPGA論理合成インタフェースプログラムを実行する。 FPGA論理合成 ィンタフェースプログラムの処理は先に説明した通りである。 When the user selects the execution button, the web client 100 sends the selected FPGA number, the project name, and the execution selection to the web server 220, and sends the data from the web server 220 to the web server 220. The fitting interface program 223 receiving the command executes the FPGA logic synthesis interface program using the project name and the FPGA number as arguments. The processing of the FPGA logic synthesis interface program is as described above.
次に、 ROMデータ生成状況画面について説明する。 第 36図は、 ROMデー タ生成状況画面の一例を示す図である。 ユーザが We bクライアント 1 00で第 24図に示した状況表示選択画面にある R〇Mデータを選択すると、 W e bクラ イアント 100は ROMデータを選択されたことを We bサーバ 220に送る。 Next, the ROM data generation status screen will be described. FIG. 36 is a diagram showing an example of a ROM data generation status screen. When the user selects R〇M data on the status display selection screen shown in FIG. 24 with the Web client 100, the Web client 100 sends a message to the Web server 220 that the ROM data has been selected.
We bサーバ 220からデータを受取つた状況表示ィンタフェースプログラム 224は、 口グインしたユーザの名称でユーザ管理サーバ 240に問い合わせて 得た P r o j e c t名全てに対し、 第 14図のディレクトリ ROM46下の、 全 ディレクトリの番号名と、 それぞれのディレクトリにあるフィッティング結果で ある ROMデータ名即ち FPGA名を抽出し、 第 36図に示した ROMデータ生 成状況画面の表示制御データを生成し、 We bサーバ 220に送る。 The status display interface program 224 that has received the data from the web server 220 queries the user management server 240 with the name of the logged-in user. For all the obtained project names, the number names of all directories under the directory ROM 46 in FIG. 14 and the ROM data name, that is, the FPGA name as the fitting result in each directory, were extracted, and the results are shown in FIG. 36. The display control data of the ROM data generation status screen is generated and sent to the web server 220.
We bサーバ 220は、 R OMデータ生成状況画面の表示制御データを W e b クライアント 100に送り、 We bクライアント 100は、 受取った ROMデー タ生成状況画面の表示制御データに基づいて画面を表示する。 ユーザは、 この画 面で対象とする FPGAの 付部分を選択すると、 R OMデータをダウンロード することができる。 The web server 220 sends the display control data of the ROM data generation status screen to the web client 100, and the web client 100 displays the screen based on the received display control data of the ROM data generation status screen. The user can download the ROM data by selecting the attached part of the target FPGA on this screen.
次に、 監視サーバ 290の処理について説明する.。 先ず、 監視サーバ 290が 監視するものは、 RTLの変更有無と、 論理合成、 フイツティング、 レイアウト 設計ツールの処理に要した時間と、 設計者が定義する機能プロックの変更規模を 基にィンプリメント設計に使用するツールの処理時間以外にかかる、 変更反映に 必要な手作業の時間である。 Next, the processing of the monitoring server 290 will be described. First, what the monitoring server 290 monitors is used for implementation design based on whether RTL has been changed, the time required for logic synthesis, fitting, layout design tool processing, and the scale of function block changes defined by the designer. This is the time required for manual work required to reflect changes, other than the processing time of the tool to be used.
インプリメント設計者が管理する第 14図のディレク トリ LAYOUT47に は、 P r o j e c t毎に P r o j e c t名のディレク トリがあり、 その中で作業 を進める。 各 P r o j e c t名のディレク トリにはレイァゥト設計データが格納 される LAYディレク トリと R T Lソースを格納する R T Lディレクトリが存在 し、 RTLディレクトリ以下は、 第 14図のディレクトリ AS I C 52以下と同 一のディレクトリ構成となっている。 The directory LAYOUT47 in Fig. 14 managed by the implementation designer has a directory named Project for each Project, and work proceeds in that directory. In the directory with each project name, there is a LAY directory that stores the layout design data and an RTL directory that stores the RTL source. The directories below the RTL directory are the same as the directories AS IC 52 and below in Fig. 14. It has a configuration.
監視サーバ 290は、 L A Yと R T Lディレクトリ内を監視する。 時間を集計 した結果を反映するスケジュールは、 P r o j e c t名のディレクトリに S c h e d u 1 eの名称で格納されており、 初期状態では、 契約に基づいて、 1 s tR TLの予定日と S i g n Of f の予定日が設定されている。 1 s tRTLとは 、 レイアウト設計が着手できる、 その時点で大きな変更の見込みがなく、 機能検 証が 80%程度終了している RTLであると定義する。 S i g n O f f とは、 AS I Cのレイァゥト設計完了後、 AS I C製造データをデバイスベンダに渡す 日である。 The monitoring server 290 monitors the LAY and RTL directories. The schedule reflecting the results of the aggregation of time is stored in the directory named Project under the name of Schedu 1 e. In the initial state, based on the contract, the scheduled date of 1 stR TL and Sign Of f Is set. 1s tRTL is defined as an RTL for which layout design can be undertaken, no major changes are expected at that time, and functional verification has been completed about 80%. Sign Off is to pass AS IC manufacturing data to device vendor after completion of AS IC layout design Day.
第 3 7図は、 予定と実績画面の一例を示す図である。 同図は、 S c h e d u 1 eファイルを画面表示制御データに変換し、 W e bクライアント 1 0 0によって 表示される。 すなわち、 ユーザが第 2 4図の状況表示画面で実績と予定を選択す ると、 W e bクライアント 1 0 0は、 実績と予定が選択されたことを W e bサー バ 2 2 0経由で状況表示インタフェースプログラム 2 2 4に送る。 実績と予定が 選択されたことを受け取った状況表示インタフェースプログラム 2 2 4は、 S c h e d u 1 eファイルを画面表示制御データに変換し、 W e bサーバ 2 2 0経由 で W e bクライアント 1 0 0に送る。 画面表示制御データを受け取った W e bク ライアント 1 0 0は、 画面表示制御データに基づいて画面表示する。 FIG. 37 is a diagram showing an example of the schedule and results screen. In the figure, the Schedu1e file is converted into screen display control data, and is displayed by the Web client 100. That is, when the user selects the result and the schedule on the status display screen of FIG. 24, the web client 100 displays the status that the result and the schedule are selected via the web server 220. Send to interface program 2 2 4 The status display interface program 2 2 4 receiving the selection of the result and schedule converts the Schema 1 e file into screen display control data and sends it to the web client 100 via the web server 220. . The Web client 100 that has received the screen display control data displays a screen based on the screen display control data.
また、 第 3 8図は、 レイアウト設計者が設定する作業時間の設定ファイルの一 例を示す図である。 このファイルは、 S c h e d u 1 eファイルと同一ディレク トリに M a n u a 1の名称で格納される。 FIG. 38 is a diagram showing an example of a work time setting file set by a layout designer. This file is stored under the name MANUA1 in the same directory as the SCHEDU1 file.
監視サーバ 2 9 0は、 監視時間になると、 ユーザ管理サーバ 2 4 0からユーザ 名とユーザが所属する P r o j e c t名とメールアドレスを獲得する。 そして、 S c h e d u 1 eファイルを読みこみ 1 s t R T Lの予定日を抽出する。 この予 定日が監視の実行年月日より未来であれば何もせず終了する。 予定日が監視の実 行年月 0より以前であれば、 以降の処理を実行する。 When the monitoring time comes, the monitoring server 290 acquires the user name, the Project name to which the user belongs, and the mail address from the user management server 240. Then, the Sch edu 1e file is read, and the scheduled date of 1 st RTL is extracted. If this scheduled date is later than the monitoring execution date, nothing is done and the process ends. If the scheduled date is earlier than the monitoring execution date 0, the subsequent processing is executed.
まず、 インプリメント設計者が管理する L A Y O U Tディレクトリ下の、 P r o j e c t名のディレクト Vにある R T Lディレクトリに R T Lソースがなけれ ば処理を中断する。 R T Lソースがあれば、 第 1 4図のディレクトリ A S I C 5 2下の、 各ブロックのディレク トリにある R T Lソース間で比較する。 First, if there is no RTL source in the RTL directory in the directory V named Project under the LYAOT directory managed by the implementation designer, the processing is interrupted. If there is an RTL source, a comparison is made between the RTL sources in the directory of each block under the directory ASIC52 in FIG.
差分があれば、 差分のあるブロック名と P r o j e c t名とインプリメント設 計者のメールァドレスをメールサーバ 2 6 0に送り、 メ—ルサーバ 2 6 0からィ ンプリメント設計者に送信する。 インプリメント設計者は、 このメールによって 変更の反映にかかる時間の見積り作業を行なう。 見積りの結果、 インプリメント 設計者は、 必要があれば S c h e d u 1 eファイルの時間データを更新または追 カロ、 削除する。 If there is a difference, the block name with the difference, the project name, and the mail address of the implement designer are sent to the mail server 260, and the mail server 260 sends it to the implement designer. The implementation designer will use this email to estimate how long it will take to reflect the changes. As a result of the estimation, the implementation designer updates or adds time data in the Schema 1 Caro, delete.
次に、 監視サーバ 2 9 0は、 第 1 4図のディレク トリ A S I C 5 0下の、 作成 時間が一番新しい A S I Cの論理 C O R Eから A S I Cを構成するブロック名を 抽出し、 メモリに格納する。 そして、 第 1 4図のディレク トリ A S I C 5 4下の 、 各プロックのディレク トリにある論理合成結果のレポートファイルから論理合 成処理時間を抽出する。 先にメモリに格納したプロック名に対するレポートファ ィルが存在しない、 つまり未だ論理合成されていない場合は、 存在するレポート フアイルから抽出した時間の平均時間を適用し、 合計時間を算出しメモリに格納 する。 Next, the monitoring server 290 extracts the names of the blocks constituting the ASIC from the logical CORE of the ASIC with the latest creation time under the directory ASIC50 in FIG. 14 and stores the extracted block names in the memory. Then, the logic synthesis processing time is extracted from the report file of the logic synthesis result in the directory of each block under the directory ASIC 54 in FIG. If there is no report file for the block name previously stored in the memory, that is, if logical synthesis has not yet been performed, apply the average time of the time extracted from the existing report file, calculate the total time, and store it in the memory I do.
そして今度は、 インプリメント設計者が管理する第 1 4図のディレクトリ L A Y O U T 4 7下の、 P r o j e c t名のディレクトリ内にあるレイァゥト設計結 果のうち、 レイアウト設計工程の最終工程であるタイミング検証結果のファイル が存在すれば、 レイァゥト設計の全行程で使用するツールが出力した処理結果フ アイルから処理時間を抽出し、 先にメモリに格納した時間と合せて合計時間を算 出する。 タイミング検証結果のファイルが存在しない場合は、 契約時点にレイァ ゥト設計者が仮に見積り予め監視サーバに設定した時間を適用する。 This time, among the layout design results in the directory named Project under the directory LAYOUT 47 of FIG. 14 managed by the implementation designer, a file of the timing verification result which is the final step of the layout design process If exists, the processing time is extracted from the processing result file output by the tool used in the entire process of the layout design, and the total time is calculated by combining the processing time with the time previously stored in the memory. If the timing verification result file does not exist, the time set by the layout designer in advance and temporarily set in the monitoring server is applied at the time of contract.
次に、 監視サーバ 2 9 0は、 この合計時間と先に説明した M a n u a 1に設定 されている時間の合計をとり、 1日を 1 2時間として日数を算出し、 S c h e d u 1 eファイルを必要であれば更新する。 つまり、 最初の状態では、 S c h e d u 1 eファイルには 1 s t R T Lの予定日しかなく、 この予定日に対して合計時 間を加算し、 第 3 7図に示したように反映開始日としてィンプリメント設計への 変更取り込みの予定日を追加する。 Next, the monitoring server 290 calculates the number of days by taking the sum of the total time and the time set in Manua 1 described above as 1 day to 12 hours, and saves the Schedu 1 e file. Update if necessary. In other words, in the initial state, the Schedule 1 e file has only the scheduled date of 1st RTL, and the total time is added to this scheduled date, and as shown in Fig. 37, it is implemented as the reflection start date. Add a planned date for incorporating changes to the design.
次の監視では、 反映開始日が監視の実行年月日より未来であれば、 反映開始日 の一つ前である 1 s t R T L予定日から反映開始日として設定した予定日までの 日数を比較対照とし、 算出したィンプリメント設計にかかる日数より長ければ反 映開始日は更新しない。 反映開始日が監視の実行年月日以前の時、 監視サーバ 2 9 0は、 ユーザとインプリメント設計者のメールァドレスと反映開始の機会であ るメッセージとをメール -一バ 2 6 0へ送り、 メールサーバ 2 6 0からユーザと インプリメント設計者にメールを送信する。 この時監視サーバ 2 9 0は、 一番新 しい反映開始日が監視実行の年月日以前である時、 反映開始日の実績日に年月日 がなければ S c h e d u 1 eファイルの更新はしない。 In the next monitoring, if the reflection start date is later than the monitoring execution date, compare and compare the number of days from the 1st RTL scheduled date, which is one time before the reflection start date, to the scheduled date set as the reflection start date. The reflection start date is not updated if it is longer than the calculated number of days for the implementation design. When the reflection start date is before the monitoring execution date, the monitoring server 290 provides the user and the implementation designer with the e-mail addresses and the opportunity to start the reflection. Message to the mail-server 260, and mail is sent from the mail server 260 to the user and the implementation designer. At this time, if the newest reflection start date is before the date of monitoring execution, the monitoring server 290 does not update the Schemadu 1 e file unless there is no actual date on the actual reflection start date. .
反映開始の機会であるメッセージのメールに対してユーザ及ぴィンプリメント 設計者双方から承認または拒絶のメールが監視サーバ 2 9 0に届いた時、 双方共 承認であれば直ちに S c h e d u 1 eファイルの反映開始日の実績日にメールを 受けた年月日を設定し、 次回の監視では、 一番新しい反映予定日が監視実施の年 月 13以前であり、 反映予定日の実績日に年月日があれば、 実績 13を基にインプリ .メント設計の日数を算出し、 新たに反映開始日を追加する。 この処理を続けて行 くと反映開始日が S i g n O f に近づく。 When the approval and rejection emails from both the user and the designer arrive at the monitoring server 290 for the message email that is the opportunity to start the reflection, if both are approved, the Schedu 1 e file is immediately reflected. Set the date when the e-mail was received on the actual date of the start date, and in the next monitoring, the latest scheduled reflection date is before the monitoring date of 13th, and the actual date of the scheduled reflection date is If so, calculate the number of days for implementation design based on track record 13 and add a new reflection start date. If this process is continued, the reflection start date approaches Sig nO f.
反映開始日の予定日を算出し、 S i g n O f f 日を超えた場合、 監視サーバ 2 9 0は、 反映開始の予定日の設定が不可能な年月日にきているメッセージとュ 一ザとインプリメント設計者のメールァドレスをメールサーバ 2 6 0へ送り、 メ ールサーバ 2 6 0から双方ヘメールを送信する。 When the scheduled date of the reflection start date is calculated, and if the date exceeds the Sign Off date, the monitoring server 290 sends the message and the user who have reached the date and time when the scheduled date of the reflection start cannot be set. And the e-mail address of the implement designer to the mail server 260, and mail is sent from the mail server 260 to both sides.
反映開始の機会であるメッセージのメールに対してユーザが拒絶している場合 、 ユーザに対し W e bクライアント 1 0 0から予定日を設定する旨のメッセージ とユーザとインプリメント設計者のメールァドレスをメールサーバ 2 6 0へ送り 、 メールサーバ 2 6 0から双方へメールを送信する。 If the user has rejected the email of the message that is the opportunity to start the reflection, the mail server sends a message to the user to set the scheduled date from the Web client 100 and the mail address of the user and the implementation designer. Send to 260 and send mail from mail server 260 to both sides.
次に、 予定と実績画面ついて説明する。 第 3 7図は、 予定と実績画面の一例を 示す図である。 同図の論理 F i Xボタンと変更ボタンは、 監視サーバ 2 9 0の監 視の実行年月 S以前であり、 一番新しい反映開始日のよこに配置される。 ユーザ がこのボタンの下にある年月日の設定欄に年月 を指定し変更ポタンを選択する と、 W e bクライアント 1 0 0は、 設定された年月日と変更が選択されたことを W e bサーバ 2 2 0に送り、 W e bサーバ 2 2 0からデータを受取った状況表示 インタフェースプログラム 2 2 4は、 S c h e d u l eファイル内の一番新しい 反映開始日の予定日を指定された年月日に変更し、 変更された旨のメッセージと ユーザとインプリメント設計者のメールァドレスをメールサーバ 260へ送り、 メールサーバ 260から双方ヘメールを送信する。 Next, the schedule and results screens will be described. FIG. 37 is a diagram showing an example of the schedule and results screen. The logical FIX button and the change button in the figure are before the execution date S of the monitoring of the monitoring server 290, and are arranged beside the newest reflection start date. When the user specifies the date in the date field below this button and selects the change button, the web client 1000 displays that the set date and the change have been selected. The status program that sent the data to the eb server 220 and received the data from the web server 220, the interface program 224 sets the scheduled date of the latest reflection start date in the schedule file to the specified date. Changes, and a message stating that the changes The mail addresses of the user and the implementation designer are sent to the mail server 260, and mail is sent from the mail server 260 to both sides.
第 37図内の論理 F i Xポタンが年月 (≡!の指定とともに選択された場合は、 状 況表示インタフェースプログラム 224は、 変更ボタンを選択された場合と同一 の処理を実行後、 監視サーバ 290の監視を停止する処理を行なう。 こうする事 でユーザとインプリメント設計者双方の短期間の目標が明確となることと、 ィン プリメント設計の試行回数が多いほど変更開始日の予定日の確度があがり、 これ に対してユーザ及びィンプリメント設計者双方共に進め方を考える契機を与える 事が可能となり、 結果として効率の向上に大きく貢献する。 If the logical F i X button in FIG. 37 is selected together with the date (≡!), The status display interface program 224 performs the same processing as when the change button is selected, and then executes the monitoring server Performs the process of stopping monitoring at 290. This will clarify the short-term goals of both the user and the implementation designer, and the greater the number of trials of the implementation design, the more likely the change start date will be. In response to this, it is possible for both the user and the implementation designer to give an opportunity to think about how to proceed, and as a result, greatly contribute to the improvement of efficiency.
上述してきたように、 本実施の形態 2では、 We bクライアント 100からの ユーザの要求に基づいて AS I C論理合成プログラム 253が AS I Cの論理合 成を行ない、 F PGA論理合成プログラム 254が F PG Aの論理合成を行ない 、 論理合成インタフェースプログラム 222が We bクライアント 100に AS I C及び F PGAの論理合成の結果を表示し、 メールサーバ 260が AS I C及 び F PG Aの論理合成の開始と結果をユーザに電子メールで通知することとした ので、 ユーザは、 論理合成の専任者を設置する必要がなく、 いつでも論理合成が 実行でき、 専任者が実行したが如く論理合成品質を均一に保つことができるとと もに、 電子メールで論理合成の開始と結果の通知を受けることができ、 論理合成 の進埗を定期的にコンピュータで確認する必要がなくなる。 As described above, in the second embodiment, the AS IC logic synthesis program 253 performs AS IC logic synthesis based on a user request from the Web client 100, and the FPGA logic synthesis program 254 The logic synthesis of A is performed, the logic synthesis interface program 222 displays the result of the logic synthesis of AS IC and FPGA on the Web client 100, and the mail server 260 starts the logic synthesis of AS IC and FPGA and the result. Is notified to the user by e-mail, so that the user does not need to have a dedicated logic synthesis person, the logic synthesis can be executed at any time, and the quality of the logic synthesis is kept uniform as if the dedicated staff executed it. As well as being able to receive the start of logic synthesis and notification of the result by e-mail, there is no need to periodically check the progress of logic synthesis on a computer.
また、 本実施の形態 2では、 We bクライアント 100からのユーザの要求に 基づいて、 AS I C論理 CO RE生成プログラム 251が AS I Cを構成する機 能プロックからユーザが指定する複数の機能プロックのポート間接続情報のみか ら成るネットリストを生成し、 FPGA論理 CORE生成プログラム 252が生 成したネットリストに論理合成済み対象機能プロックのデータを填め込んでプロ グラマブル' ロジックデバイスの回路を記録した ROMデータを生成し、 論理 C ORE生成インタフェースプログラム 221が生成した ROMデータの生成結果 をコンピュータに表示するとともにメールサーバ 260がユーザに電子メールで 通知する構成としたので、 ユーザは、 プログラマブル'ロジックデバイス専用の 開発環境が必要なく、 プログラマブノレ 'ロジックデバイスの回路を記録した R O Mデータを作成する負荷と、 時間と、 かかるコストとを削減することができる。 また、 本実施の形態 2では、 ユーザが指定した A S I Cを構成する機能プロッ クの設計が未完了で回路データが存在しない場合に、 F P G A論理 C O R E生成 プログラム 2 5 2が当該機能プロックの入力端子及び出力端子に仮のフリップ- フロップなどを用いた回路を揷入したネットリストを生成することとしたので、 プログラマブノレ . ロジックデバイスのプロトタイピングによる検証において、 検 証対象ではない機能プロックの設計が完了していなくとも、 プロトタイビングに よる検証を進めることができ、 検証の効率ィヒを図ることができる。 Also, in the second embodiment, based on a user request from the web client 100, the AS IC logical core generation program 251 specifies a plurality of function block ports designated by the user from the function blocks constituting the AS IC. ROM data that records the programmable logic device circuit by generating a netlist consisting only of interconnection information and inserting the data of the logic-synthesized target function block into the netlist generated by the FPGA logic CORE generation program 252. And displays the results of the ROM data generated by the logical CORE generation interface program 221 on a computer, and the mail server 260 e-mails the user. The notification configuration eliminates the need for a dedicated development environment for programmable logic devices, reducing the load, time, and cost of creating ROM data that records the circuits of programmable logic devices. be able to. Further, in the second embodiment, when the design of the function block that constitutes the ASIC specified by the user is not completed and there is no circuit data, the FPGA logic CORE generation program 252 uses the input terminal of the function block and the Because a netlist that incorporates a circuit using a temporary flip-flop at the output terminal is generated, the design of a functional block that is not the target of verification is verified in verification by prototyping of a programmable device. Even if it has not been completed, verification by prototyping can be advanced, and verification efficiency can be improved.
また、 本実施の形態 2では、 監視サーバ 2 9 0が、 ユーザが持つ最新の回路デ ータとインプリメント設計者がィンプリメント設計に取り込んでいる回路データ 間の変更の規模を監視し、 監視結果及びレイァゥト設計にかかる時間に基づいて 計画された日時に到達すると、 メーノレサーバ 2 6 0が変更を A S I Cのインプリ メント設計へ反映するタイミングにあることをユーザ及び A S I Cのインプリメ ント設計者に電子メールで通知し、 この通知に応答してユーザが反映の日付を変 更することで停止を要求することとしたので、 発生した変更を効率よく A S I C のレイァゥト設計に反映することができるとともに、 変更を反映するタイミング を設定することで、 ユーザはいつまで変更することが可能かを判断することがで き、 早い段階でスケジュールの見直しができる。 Further, in the second embodiment, the monitoring server 290 monitors the scale of the change between the latest circuit data held by the user and the circuit data incorporated by the implementation designer in the implementation design, and monitors the monitoring result and When the planned date and time is reached based on the time taken for the layout design, the main server 260 notifies the user and the ASIC implementation designer by e-mail that it is time to reflect the changes to the ASIC implementation design. However, in response to this notification, the user has requested the stop by changing the date of reflection, so that the generated change can be efficiently reflected in the ASIC layout design, and the timing of reflecting the change Setting allows the user to determine when changes can be made. It is a review of Yuru.
以上説明したように、 本発明によれば以下の効果が得られる。 As described above, according to the present invention, the following effects can be obtained.
請求の範囲第 1項記載の発明によれば、 請求の範囲第 1項の発明のコア (論理 コア) を生成する手法をコンピュータに実行させるプログラムを記憶したプログ ラム記憶媒体によれば、 集積回路開発において、 R T L設計の入力となるプロッ クのポート仕様の品質を事前に確保できる効果があり、 更に機能プロックが多く 存在し、 設計リソースも多い大規模集積回路の開発においても、 事前にブロック 間の接続が確認できていることにより、 必ずチップが組み上がることを保証する ことができる。 According to the first aspect of the present invention, there is provided a program storage medium storing a program for causing a computer to execute a method of generating a core (logical core) according to the first aspect of the present invention. In development, it has the effect of ensuring the quality of the port specifications of the block that will be the input of the RTL design in advance.In addition, even in the development of a large-scale integrated circuit with many functional blocks and large design resources, Ensure that the chip is assembled by confirming the connection of be able to.
請求の範囲第 2項記載の発明によれば、 A S I Cのコア (論理コア) からプロ グラマプル'ロジックデバイスのコア (論理コア) としてブロック間接続を保持 したまま切り出すため、 本コア (論理コア) を用いたプログラマブル' ロジック デバイスの検証を実施すれば、 A S I Cにおレ、ては、 少なくとも同一の構成での 検証の重複を回避することができる。 よって、 A S I Cとプログラマブル ·ロジ ックデバイスのコンカレント開発を効率よく進めることができる。 According to the invention set forth in claim 2, the core (logical core) is cut out from the ASIC core (logical core) as a program 'logic device core (logical core) while maintaining the connection between blocks. By verifying the programmable logic device used, ASICs can at least avoid duplication of verification with the same configuration. Therefore, concurrent development of ASIC and programmable logic devices can be efficiently promoted.
また、 I ZOバッファを挿入する際、 チップの端子情報から仮のコア (論理コ ァ) を生成し、 ブロックから生成したコア (論理コア) と入れ替える手段によつ て、 ブロックに定義されているチップのポート情報とチップの端子情報をクロス チェックでき、 ブロックのポート仕様とチップ端子仕様の両者の品質を確保する ことができる。 In addition, when inserting an IZO buffer, a temporary core (logical core) is generated from the chip terminal information, and is replaced with a core (logical core) generated from the block. The port information of the chip and the terminal information of the chip can be cross-checked, and the quality of both the port specification of the block and the chip terminal specification can be ensured.
請求の範囲第 3項記載の発明によれば、 任意の規模、 個数のプロックのポート とポートの接続情報からなるネットリストを生成することができる。 According to the invention set forth in claim 3, it is possible to generate a netlist including ports of arbitrary scale and number of blocks and connection information of the ports.
請求項 4記載の発明によれば、 任意の規模、 個数のブロックのポートとポート の接続情報からなるネッ トリストから、 チップネットリストを生成することがで きる。 According to the invention described in claim 4, a chip net list can be generated from a net list including ports of arbitrary size and number of blocks and connection information of the ports.
請求の範囲第 5項記載の発明によれば、 プログラマブル · ロジックデバイスの コア (論理コア) を生成する手法を論理合成ツールに実行させるプログラムを記 憶した記憶媒体によれば、 ポートの機能を判断することが難しいネット名がポー トの名称となる場合の論理検証等デバッグの効率の低下を防ぐことができる。 上述のようにして、 設計ドキュメントのデータからコア (論理コア) を生成し 、 該コア (論理コア) カゝら階層構造及び接続情報を保持した状態でプログラマブ ル . ロジックデバイス用に新たにコア (論理コア) を生成することで、 回路ァー キテクチャを共有することができ、 回路データを填め込み、 機能検証したインス タンス内のデバイス ·テクノロジに依存しない回路データ及びインスタンス間の ネットは、 A S I C化した場合に再検証を回避することが可能となり、 A S I C とプログラマブル 'ロジックデバイス間の違 、による再設計も回避することが可 會 となる。 According to the invention described in claim 5, according to the storage medium storing a program for causing a logic synthesis tool to execute a method of generating a core (logic core) of a programmable logic device, the function of the port is determined. It is possible to prevent a decrease in debugging efficiency such as logic verification when a net name that is difficult to perform becomes a port name. As described above, a core (logical core) is generated from the data of the design document, and the core (logical core) is newly programmed for the logic device while maintaining the hierarchical structure and connection information. (Logical core) can be used to share the circuit architecture. The circuit data can be loaded, and the circuit data independent of the device technology in the instance whose function has been verified and the nets between the instances can be stored in ASICs. ASICs can be used to avoid re-verification. It is also possible to avoid redesign due to differences between programmable logic devices.
このように、 本発明によれば、 アーキテクチャの共有化を実現し、 再設計と再 検証を極力回避することができる集積回路の開発方法及び集積回路の開発方法を 記憶したプログラマブル記憶媒体を提供することができる。 As described above, according to the present invention, there is provided an integrated circuit development method capable of realizing architecture sharing and avoiding redesign and re-verification as much as possible, and a programmable storage medium storing the integrated circuit development method. be able to.
また、 本発明によれば、 A S I Cを構成する機能ブロックをポート間接続情報 に基づいてグループィ匕し、 グループィ匕した機能ブロックのポートとポート間接続 情報からなるネットリストをプログラマブル ·ロジックデバイスのコア (論理コ ァ) として生成し、 A S I Cを構成する機能ブロックの回路データから A S I C 用論理合成データ及びプログラマプル■ロジックデバイス用論理合成データを作 成し、 グループ化した機能ブロックについてのプログラマブル ·ロジックデバイ ス用論理合成データを生成したネットリストに填め込んでプログラマプル■口ジ ックデバイスの回路を記録した実機評価用 R OMデータを生成し、 作成した A S I C用論理合成データを用いて A S I Cのレイァゥト作成およびタイミング検証 を実機評価用 R OMデータの生成とコンカレントに行ない、 生成した R OMデー タを用いた実機評価結果に基づく回路データの変更を A S I Cのレイアウト作成 およびタイミング検証に反映することとしたので、 A S I Cとプログラマブル · 口ジックデバイスの効率的なコンカレント開発が可能になり、 A S I Cの開発期 間を短縮することができるという効果を奏する。 Further, according to the present invention, the functional blocks constituting the ASIC are grouped based on the inter-port connection information, and the netlist including the ports of the grouped functional blocks and the inter-port connection information is converted into a programmable logic device. Generates ASIC logic synthesis data and programmable logic device logic synthesis data from the circuit data of the functional blocks that make up the ASIC, generated as a core (logic core), and creates programmable logic for the functional blocks that are grouped. The logic synthesis data for the device is inserted into the generated netlist to generate ROM data for the evaluation of the actual device that records the circuit of the programmable logic device, and the ASIC layout is created using the logic synthesis data created for the ASIC. And timing verification of ROM data for actual machine evaluation This is done concurrently with the generation, and the circuit data changes based on the evaluation results of the actual machine using the generated ROM data are reflected in the ASIC layout creation and timing verification. This enables effective concurrent development, and shortens the ASIC development period.
また、 本発明によれば、 A S I Cを構成する機能プロックをポート間接続情報 に基づいてグループィ匕し、 グループ化した機能プロックのポートとポート間接続 情報からなるネットリストをプログラマブル■ロジックデバイスのコア (論理コ ァ) として生成し、 A S I Cを構成する機能ブロックの回路データから A S I C 用論理合成データ及びプログラマブル 'ロジックデバイス用論理合成データを作 成し、 グループ化した機能ブロックについてのプログラマブル'ロジックデバイ ス用論理合成データを生成したネットリストに填め込んでプログラマブル■口ジ ックデバイスの回路を記録した実機評価用 R OMデータを生成し、 作成した A S I C用論理合成データを用いて A S I Cのレイァゥト作成およびタイミング検証 を実機評価用 R OMデータの生成とコンカレントに行なうよう構成したので、 A S I Cとプログラマブ^ / · ロジックデバイスの効率的なコンカレント開発が可能 になり、 A S I Cの開発期間を短縮することができるという効果を奏する。 Further, according to the present invention, the function blocks constituting the ASIC are grouped based on the inter-port connection information, and the netlist including the grouped function block ports and the inter-port connection information is used as the core of the programmable logic device. Logic synthesis data for ASICs and programmable logic synthesis data for logic devices created from the circuit data of the functional blocks that make up the ASIC, and programmable logic devices for the functional blocks that are grouped. Logic data for programmable logic devices was inserted into the generated netlist to generate logic data for evaluation of actual devices. ASIC layout creation and timing verification using logic synthesis data for ICs are performed concurrently with the generation of ROM data for actual machine evaluation, enabling efficient concurrent development of ASICs and programmable logic devices. This has the effect of shortening the development period of the ASIC.
また、 本発明によれば、 ユーザの要求に応じて A S I Cの論理合成を実行し、 作成した A S I Cの論理合成結果がユーザの要求する速度性能を満足した力否か を判断し、 判断結果に基づいてプログラマブル' ロジックデバイスの論理合成を 実行し、 A S I C論理合成の実行結果及びプログラマブル ' ロジックデバイス論 理合成の実行結果をコンピュータに表示し、 A S I C論理合成の実行開始と実行 結果及びプログラマプル - ロジックデバイス論理合成の実行開始と実行結果をュ 一ザに電子メールで通知する構成としたので、 ユーザは、 論理合成の専任者を設 置する必要がなく、 いつでも論理合成が実行でき、 専任者が実行したが如く論理 合成品質を均一に保つことができるとともに、 電子メールで論理合成の開始と結 果の通知を受けることができ、 論理合成の進涉を定期的にコンピュータで確認す る必要がなくなるという効果を奏する。 Further, according to the present invention, logic synthesis of an ASIC is executed in response to a user request, and it is determined whether or not the created logic synthesis result of the ASIC satisfies the speed performance requested by the user, and based on the determination result. Performs logic synthesis of programmable logic devices, displays the results of ASIC logic synthesis and the results of programmable logic device logic synthesis on a computer, and starts and executes the results of ASIC logic synthesis and programmable logic devices. The user is notified of the start of logic synthesis execution and the execution result by e-mail, so there is no need for the user to assign a dedicated logic synthesis user. As described above, the quality of the logic synthesis can be kept uniform, and the start of the logic synthesis and the notification of the result can be received by e-mail. Can, there is an effect that need to check periodically computer Susumu涉 logic synthesis is eliminated.
また、 本発明によれば、 ユーザの要求に応じて A S I Cを構成する機能ブロッ クからユーザが指定する複数の機能ブロックのポート間接続情報から成るネット リス トを生成し、 生成したネットリス トに論理合成済み対象機能プロックのデー タを填め込んでプログラマブル ·ロジックデバイスの回路を記録した R OMデー タを生成し、 生成した R O Mデータの生成結果をコンピュータに表示するととも にユーザに電子メールで通知する構成としたので、 ユーザは、 プログラマブル' ロジックデバイス専用の開発環境が必要なく、 プログラマブル 'ロジックデバイ スの回路を記録した R OMデータを作成する負荷と、 時間と、 かかるコストとを 削減することができるという効果を奏する。 Further, according to the present invention, a netlist including port-to-port connection information of a plurality of functional blocks specified by a user is generated from a functional block configuring an ASIC in response to a user request, and the generated netlist is generated. Generates ROM data that records the circuit of the programmable logic device by filling in the data of the logic-synthesized target function block, displays the generated ROM data on a computer, and notifies the user by e-mail. This eliminates the need for a dedicated development environment for programmable logic devices, reducing the load, time, and cost of creating ROM data that records the circuits of programmable logic devices. This has the effect that it can be performed.
また、 本発明によれば、 ユーザが指定した A S I Cを構成する機能ブロックの 設計が未完了で回路データが存在しない場合に、 当該機能プロックの入力端子及 び出力端子に仮のフリップ .プロップなどを用いた回路を挿入したネッ トリスト を生成することとしたので、 プログラマブル'ロジックデバイスのプロトタイピ ングによる検証において、 検証対象ではない機能プロックの設計が完了していな くとも、 プロトタイピングによる検証を進めることができ、 検証の効率化を図る ことができるとレヽぅ効果を奏する。 Further, according to the present invention, when the design of the functional block constituting the ASIC designated by the user is not completed and there is no circuit data, a temporary flip-flop or the like is applied to the input terminal and the output terminal of the function block. Netlist with inserted circuit Therefore, even if the design of a functional block that is not the target of verification has not been completed in verification by prototyping of a programmable logic device, verification by prototyping can be advanced, and verification efficiency can be improved. If it can be achieved, it will have a ray effect.
また、 本発明によれば、 ユーザが持つ最新の回路データとインプリメント設計 者がインプリメント設計に取り込んでいる回路データ間の変更の規模を監視し、 監視結果及びレイァゥト設計にかかる時間に基づ!/、て計画された日時に到達する と変更を A S I Cのインプリメント設計へ反映するタイミングにあることをユー ザ及び A S I Cのインプリメント設計者に電子メ一ノレで通知し、 この通知に応答 してユーザが反映の日付を変更することで停止を要求することとしたので、 発生 した変更を効率よく A S I Cのレイアウト設計に反映することができるとともに 、 変更を反映するタイミングを設定することでユーザはいつまで変更することが 可能かを判断することができ、 早い段階でスケジュールの見直しができるという 効果を奏する。 Further, according to the present invention, the scale of a change between the latest circuit data held by the user and the circuit data incorporated in the implementation design by the implementation designer is monitored, and based on the monitoring result and the time required for the layout design! At the scheduled date and time, the user and the ASIC implementation designer are notified by electronic mail that it is time to reflect the change in the ASIC implementation design, and the user reflects in response to this notification Since the stop was requested by changing the date of the change, the generated change can be efficiently reflected in the ASIC layout design, and by setting the timing to reflect the change, the user can change until how long. It is possible to judge whether or not the schedule is possible, and it is possible to review the schedule at an early stage.
また、 本発明によれば、 一方では、 複数の機能ブロックの全部又は一部の機能 ブロックを含む F P G Aの端子情報が記述された第 1デザィンと、 第 1デザィン の下位層として記述された F P G Aと同様の端子情報が記述された第 2デザィン とから、 第 1デザイン、 第 2デザインにおける同一端子間が接続され、 かつ、 端 子間に F P G A対応のバッファが挿入された F P G A用デザィン情報を生成し、 他方では、 複数の機能ブロックを含む A S I Cの端子情報が記述された第 3デザ インと、 第 3デザィンの下位層として記述された A S I Cと同様の端子情報が記 述された第 4デザインとから、 第 3デザイン、 第 4デザイン間における同一端子 間が接続され、 つ、 端子間に A S I C対応のバッファが揷入された A S I C用 デザィン情報を生成し、 第 2デザイン、 第 4デザインのそれぞれを、 各デザイン が含む機能プロックの接続情報に基づいて生成された回路情報で置き換える、 こ とで F P GA及び A S I Cのネットリストを生成することとしたので、 A S I C とプログラマブノレ 'ロジックデバイスの効率的なコンカレント開発が可能になり 、 A S I Cの開発期間を短縮することができるという効果を奏する。 産業上の利用可能性 According to the present invention, on the other hand, a first design in which terminal information of an FPGA including all or some functional blocks of a plurality of functional blocks is described, and an FPGA described as a lower layer of the first design From the second design in which the same terminal information is described, the design information for the FPGA is generated in which the same terminals in the first design and the second design are connected and a buffer corresponding to the FPGA is inserted between the terminals. On the other hand, a third design in which terminal information of an ASIC including a plurality of functional blocks is described, and a fourth design in which terminal information similar to that of the ASIC described as a lower layer of the third design are described. The same terminal between the third design and the fourth design is connected, and the ASIC design information in which an ASIC-compatible buffer is inserted between the terminals is generated. Each of them is replaced with circuit information generated based on the connection information of the function blocks included in each design, thereby generating the FPGA and ASIC netlists. Enables efficient concurrent development of devices This has the effect of shortening the ASIC development period. Industrial applicability
以上のように、 本発明に係る集積回路の開発方法及び集積回路の開発方法を記 憶したプロダラム記憶媒体、 ならびに A S I Cとプログラマブル 'ロジックデバ イスのコンカレント開発システム、 開発プログラム及び開発方法は、 集積回路の 開発、 特に A S I Cとプログラマブル'ロジックデバイスの開発に適している。 As described above, the integrated circuit development method according to the present invention, the program storage medium storing the integrated circuit development method, the concurrent development system of the ASIC and the programmable logic device, the development program and the development method are provided for the integrated circuit. Suitable for development, especially for ASIC and programmable logic devices.
Claims
Priority Applications (7)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003584963A JP3860812B2 (en) | 2002-04-17 | 2003-04-15 | Concurrent development support program, development support method, and development support apparatus for ASIC and programmable logic device |
| CN038085666A CN1647082B (en) | 2002-04-17 | 2003-04-15 | Integrated Circuit Development Methods |
| KR1020047016617A KR100745959B1 (en) | 2002-04-17 | 2003-04-15 | Program recording medium recording the development method of the integrated circuit and the development method of the integrated circuit |
| US10/965,850 US7219311B2 (en) | 2002-04-17 | 2004-10-18 | Development method for integrated circuits, program storage medium for storing the development method for integrated circuits, and concurrent development system, development program, and development method of ASIC and programmable logic device |
| US11/636,607 US7650586B2 (en) | 2002-04-17 | 2006-12-11 | Development method for integrated circuits, program storage medium for storing the development method for integrated circuits, and concurrent development system, development program, and development method of ASIC and programmable logic device |
| US11/636,606 US7647575B2 (en) | 2002-04-17 | 2006-12-11 | Method of creating a netlist for an FPGA and an ASIC |
| US12/591,356 US8225243B2 (en) | 2002-04-17 | 2009-11-17 | Development method for integrated circuits, program storage medium for storing the development method for integrated circuits, and concurrent development system, development program, and development method of ASIC and programmable logic device |
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2002115273 | 2002-04-17 | ||
| JP2002-115273 | 2002-04-17 | ||
| JP2002147930 | 2002-05-22 | ||
| JP2002-147930 | 2002-05-22 |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US10/965,850 Continuation US7219311B2 (en) | 2002-04-17 | 2004-10-18 | Development method for integrated circuits, program storage medium for storing the development method for integrated circuits, and concurrent development system, development program, and development method of ASIC and programmable logic device |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2003088095A1 true WO2003088095A1 (en) | 2003-10-23 |
Family
ID=29253576
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2003/004787 Ceased WO2003088095A1 (en) | 2002-04-17 | 2003-04-15 | Integrated circuit development method, program storage medium containing integrated circuit development method, system for concurrent development of asic and programmable logic device, development program, and development method |
Country Status (5)
| Country | Link |
|---|---|
| US (4) | US7219311B2 (en) |
| JP (1) | JP3860812B2 (en) |
| KR (2) | KR100745959B1 (en) |
| CN (1) | CN1647082B (en) |
| WO (1) | WO2003088095A1 (en) |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7516435B2 (en) | 2001-12-10 | 2009-04-07 | Mentor Graphics Corporation | Reservation of design elements in a parallel printed circuit board design environment |
| US7546571B2 (en) | 2004-09-08 | 2009-06-09 | Mentor Graphics Corporation | Distributed electronic design automation environment |
| US7587695B2 (en) | 2001-12-10 | 2009-09-08 | Mentor Graphics Corporation | Protection boundaries in a parallel printed circuit board design environment |
| US7590963B2 (en) | 2003-11-21 | 2009-09-15 | Mentor Graphics Corporation | Integrating multiple electronic design applications |
| US7788622B2 (en) | 2003-11-21 | 2010-08-31 | Mentor Graphics Corporation | Distributed autorouting of conductive paths |
| JP2012157054A (en) * | 2004-07-02 | 2012-08-16 | Altera Corp | Application-specific integrated circuit equivalent of programmable logic and associated method |
| JP6591116B1 (en) * | 2018-03-07 | 2019-10-16 | 三菱電機株式会社 | Programmable logic controller CPU unit, programmable logic controller, method, and computer |
Families Citing this family (41)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP1451732A4 (en) * | 2001-12-10 | 2007-08-08 | Mentor Graphics Corp | Parallel electronic design automation: shared simultaneous editing |
| US7112994B2 (en) | 2002-07-08 | 2006-09-26 | Viciciv Technology | Three dimensional integrated circuits |
| US6992503B2 (en) | 2002-07-08 | 2006-01-31 | Viciciv Technology | Programmable devices with convertibility to customizable devices |
| US8643162B2 (en) | 2007-11-19 | 2014-02-04 | Raminda Udaya Madurawe | Pads and pin-outs in three dimensional integrated circuits |
| US7030651B2 (en) | 2003-12-04 | 2006-04-18 | Viciciv Technology | Programmable structured arrays |
| US20090276367A1 (en) * | 2008-04-30 | 2009-11-05 | Rosenthal Collins Group, L.L.C. | Method and system for providing risk management for multi-market electronic trading |
| US20060101368A1 (en) * | 2004-09-08 | 2006-05-11 | Mentor Graphics Corporation | Distributed electronic design automation environment |
| US8566616B1 (en) | 2004-09-10 | 2013-10-22 | Altera Corporation | Method and apparatus for protecting designs in SRAM-based programmable logic devices and the like |
| US8612772B1 (en) * | 2004-09-10 | 2013-12-17 | Altera Corporation | Security core using soft key |
| US20060123378A1 (en) * | 2004-12-03 | 2006-06-08 | Ipextreme Inc. | Method, System, and Software Product For Using Synthesizable Semiconductor Intellectual Property In Self-Documenting Electronic Extended Package |
| JP4563286B2 (en) * | 2005-03-08 | 2010-10-13 | パナソニック株式会社 | Automatic circuit generator |
| US7299444B1 (en) * | 2005-03-31 | 2007-11-20 | Altera Corporation | Interface for pin swap information |
| US7246339B2 (en) * | 2005-04-08 | 2007-07-17 | Altera Corporation | Methods for creating and expanding libraries of structured ASIC logic and other functions |
| US7386819B1 (en) * | 2005-07-28 | 2008-06-10 | Altera Corporation | Methods of verifying functional equivalence between FPGA and structured ASIC logic cells |
| US8326926B2 (en) * | 2005-09-13 | 2012-12-04 | Mentor Graphics Corporation | Distributed electronic design automation architecture |
| US20070061764A1 (en) * | 2005-09-15 | 2007-03-15 | Interntional Business Machines Corporation | Keyword-based connectivity verification |
| US20070168741A1 (en) * | 2005-11-17 | 2007-07-19 | International Business Machines Corporation | Method, system and program product for facilitating debugging of simulation results obtained for an optimized simulation model of a device design having hierarchically-connected components |
| US7701252B1 (en) * | 2007-11-06 | 2010-04-20 | Altera Corporation | Stacked die network-on-chip for FPGA |
| JP5117170B2 (en) * | 2007-11-20 | 2013-01-09 | 株式会社リコー | Circuit design support device, circuit design support method, circuit design support program, and recording medium |
| US8516399B2 (en) * | 2009-02-18 | 2013-08-20 | Mentor Graphics Corporation | Collaborative environment for physical verification of microdevice designs |
| US8099694B1 (en) * | 2009-04-15 | 2012-01-17 | Altera Corporation | Interactive tool for contemporaneous design of integrated circuits having different device packages |
| US20100287571A1 (en) | 2009-05-07 | 2010-11-11 | Cypress Semiconductor Corporation | Development, programming, and debugging environment |
| US8438530B2 (en) * | 2009-07-22 | 2013-05-07 | Synopsys, Inc. | Connection navigation in electronic design automation |
| US8645901B2 (en) * | 2009-12-01 | 2014-02-04 | Cadence Design Systems, Inc. | Visualization and information display for shapes in displayed graphical images based on a cursor |
| US8533626B2 (en) * | 2009-12-01 | 2013-09-10 | Cadence Design Systems, Inc. | Visualization and information display for shapes in displayed graphical images based on user zone of focus |
| US8438531B2 (en) * | 2009-12-01 | 2013-05-07 | Cadence Design Systems, Inc. | Visualization and information display for shapes in displayed graphical images |
| CN101771408B (en) * | 2010-01-05 | 2012-05-02 | 中国人民解放军信息工程大学 | A method and device for generating FPGA hardware components |
| US8443327B2 (en) * | 2011-02-22 | 2013-05-14 | Altera Corporation | Reassembling scattered logic blocks in integrated circuits |
| US8484589B2 (en) * | 2011-10-28 | 2013-07-09 | Apple Inc. | Logical repartitioning in design compiler |
| TWI502387B (en) * | 2012-08-06 | 2015-10-01 | Wistron Corp | Crosstalk analysis method |
| US9015644B2 (en) * | 2012-08-06 | 2015-04-21 | Wistron Corp. | Crosstalk analysis method |
| WO2014056201A1 (en) | 2012-10-12 | 2014-04-17 | Mediatek Inc. | Layout module for printed circuit board |
| US8914762B1 (en) * | 2013-07-25 | 2014-12-16 | Xilinx, Inc. | Automated generation of platform-specific logic designs for target environments from a common base design |
| CN103684849A (en) * | 2013-11-22 | 2014-03-26 | 汉柏科技有限公司 | Method and system for shielding network devices |
| KR20150112537A (en) * | 2014-03-28 | 2015-10-07 | 현대자동차주식회사 | Electronic control unit software coding system and method |
| CN104486197A (en) * | 2014-11-25 | 2015-04-01 | 上海高性能集成电路设计中心 | Email-based remote chip designing system |
| US10740257B2 (en) * | 2018-07-02 | 2020-08-11 | International Business Machines Corporation | Managing accelerators in application-specific integrated circuits |
| GB2576493B (en) * | 2018-07-23 | 2022-01-05 | Advanced Risc Mach Ltd | Data Processing |
| CN112257357B (en) * | 2020-09-14 | 2022-09-13 | 深圳市紫光同创电子有限公司 | Method and device for constructing top-level circuit of FPGA (field programmable Gate array) chip and storage medium |
| CN114626320A (en) * | 2022-03-29 | 2022-06-14 | 上海阵量智能科技有限公司 | Logic synthesis method and device for integrated circuit, electronic device and storage medium |
| CN117454817B (en) * | 2023-12-25 | 2024-04-12 | 芯能量集成电路(上海)有限公司 | Engineering processing method and device based on FPGA, electronic equipment and storage medium |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH08194725A (en) * | 1995-01-19 | 1996-07-30 | Hitachi Ltd | Logical partition device |
| JP2000090142A (en) * | 1998-09-16 | 2000-03-31 | Fujitsu Ltd | Development method and development tool for large-scale integrated circuits |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5867399A (en) * | 1990-04-06 | 1999-02-02 | Lsi Logic Corporation | System and method for creating and validating structural description of electronic system from higher-level and behavior-oriented description |
| US6237132B1 (en) * | 1998-08-18 | 2001-05-22 | International Business Machines Corporation | Toggle based application specific core methodology |
| JP2002526908A (en) * | 1998-09-30 | 2002-08-20 | ケイデンス デザイン システムズ インコーポレイテッド | Block-based design method |
| US6862563B1 (en) * | 1998-10-14 | 2005-03-01 | Arc International | Method and apparatus for managing the configuration and functionality of a semiconductor design |
| US7013438B1 (en) * | 2000-11-01 | 2006-03-14 | Cadence Design Systems, Inc. | System chip synthesis |
| US6976239B1 (en) * | 2001-06-12 | 2005-12-13 | Altera Corporation | Methods and apparatus for implementing parameterizable processors and peripherals |
| US6823502B2 (en) * | 2002-12-31 | 2004-11-23 | Lsi Logic Corporation | Placement of configurable input/output buffer structures during design of integrated circuits |
| KR101003577B1 (en) | 2003-12-29 | 2010-12-23 | 엘지디스플레이 주식회사 | Mask and manufacturing method of liquid crystal display device using same |
| US7353489B2 (en) * | 2004-05-28 | 2008-04-01 | Synopsys, Inc. | Determining hardware parameters specified when configurable IP is synthesized |
| US7275232B2 (en) | 2005-04-01 | 2007-09-25 | Altera Corporation | Methods for producing equivalent field-programmable gate arrays and structured application specific integrated circuits |
-
2003
- 2003-04-15 CN CN038085666A patent/CN1647082B/en not_active Expired - Fee Related
- 2003-04-15 JP JP2003584963A patent/JP3860812B2/en not_active Expired - Lifetime
- 2003-04-15 KR KR1020047016617A patent/KR100745959B1/en not_active Expired - Fee Related
- 2003-04-15 WO PCT/JP2003/004787 patent/WO2003088095A1/en not_active Ceased
- 2003-04-15 KR KR1020077008540A patent/KR100788112B1/en not_active Expired - Fee Related
-
2004
- 2004-10-18 US US10/965,850 patent/US7219311B2/en not_active Expired - Fee Related
-
2006
- 2006-12-11 US US11/636,607 patent/US7650586B2/en not_active Expired - Fee Related
- 2006-12-11 US US11/636,606 patent/US7647575B2/en not_active Expired - Fee Related
-
2009
- 2009-11-17 US US12/591,356 patent/US8225243B2/en not_active Expired - Fee Related
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH08194725A (en) * | 1995-01-19 | 1996-07-30 | Hitachi Ltd | Logical partition device |
| JP2000090142A (en) * | 1998-09-16 | 2000-03-31 | Fujitsu Ltd | Development method and development tool for large-scale integrated circuits |
Non-Patent Citations (2)
| Title |
|---|
| Koichi HANDA et al., "FPGA/PLD-kan Kessen Check Shuho", The Institute of Electronics, Information and Communication Engineers Gijutsu Kenkyu Hokoku, The Institute of Electronics, Information and Communication Engineers, 28 November, 2002 (28.11.02), Vol.102, No.479, pages 115 to 120 * |
| Tomoaki KOGA et al., "Mega Gate ASIC no Implement Sekkei", The Institute of Electronics, Information and Communication Engineers Gijutsu Kenkyu Hokoku, The Institute of Electronics, Information and Communication Engineers, 22 September, 1998 (22.09.98), Vol.98, No.287, pages 71 to 77 * |
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7516435B2 (en) | 2001-12-10 | 2009-04-07 | Mentor Graphics Corporation | Reservation of design elements in a parallel printed circuit board design environment |
| US7587695B2 (en) | 2001-12-10 | 2009-09-08 | Mentor Graphics Corporation | Protection boundaries in a parallel printed circuit board design environment |
| US7590963B2 (en) | 2003-11-21 | 2009-09-15 | Mentor Graphics Corporation | Integrating multiple electronic design applications |
| US7788622B2 (en) | 2003-11-21 | 2010-08-31 | Mentor Graphics Corporation | Distributed autorouting of conductive paths |
| JP2012157054A (en) * | 2004-07-02 | 2012-08-16 | Altera Corp | Application-specific integrated circuit equivalent of programmable logic and associated method |
| JP2012235499A (en) * | 2004-07-02 | 2012-11-29 | Altera Corp | Application-specific integrated circuit equivalent of programmable logic and associated method |
| JP2014131365A (en) * | 2004-07-02 | 2014-07-10 | Altera Corp | Application-specific integrated circuit equivalent of programmable logic and associated method |
| US7546571B2 (en) | 2004-09-08 | 2009-06-09 | Mentor Graphics Corporation | Distributed electronic design automation environment |
| JP6591116B1 (en) * | 2018-03-07 | 2019-10-16 | 三菱電機株式会社 | Programmable logic controller CPU unit, programmable logic controller, method, and computer |
Also Published As
| Publication number | Publication date |
|---|---|
| KR20040101512A (en) | 2004-12-02 |
| US8225243B2 (en) | 2012-07-17 |
| CN1647082B (en) | 2010-04-21 |
| US20050071787A1 (en) | 2005-03-31 |
| US7650586B2 (en) | 2010-01-19 |
| US7647575B2 (en) | 2010-01-12 |
| JP3860812B2 (en) | 2006-12-20 |
| US20070083845A1 (en) | 2007-04-12 |
| KR100745959B1 (en) | 2007-08-02 |
| KR20070043061A (en) | 2007-04-24 |
| US20100070943A1 (en) | 2010-03-18 |
| JPWO2003088095A1 (en) | 2005-08-25 |
| US7219311B2 (en) | 2007-05-15 |
| CN1647082A (en) | 2005-07-27 |
| KR100788112B1 (en) | 2007-12-21 |
| US20070083840A1 (en) | 2007-04-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2003088095A1 (en) | Integrated circuit development method, program storage medium containing integrated circuit development method, system for concurrent development of asic and programmable logic device, development program, and development method | |
| US6779158B2 (en) | Digital logic optimization using selection operators | |
| US5930148A (en) | Method and system for verifying a digital circuit design including dynamic circuit cells that utilize diverse circuit techniques | |
| JP4495865B2 (en) | Inter-trade application service provider | |
| WO1999009497A1 (en) | Method of extracting timing characteristics of transistor circuits, storage medium storing timing characteristic library, lsi designing method, and gate extraction method | |
| CN116738901A (en) | Chip verification method and device | |
| US20030177457A1 (en) | Optimization of digital designs | |
| US6560571B1 (en) | Method and apparatus for prioritizing the order in which checks are performed on a node in an integrated circuit | |
| Hutton et al. | Generation of synthetic sequential benchmark circuits | |
| JP2009517764A (en) | Merge timing constraints in hierarchical SOC design | |
| US7991603B2 (en) | Method for simulating a complex system with expansion of instance vectors, corresponding computer program product and storage means | |
| CN101131713B (en) | System for concurrent development of ASIC and programmable logic device, and development method | |
| JP4127719B2 (en) | Concurrent development system and development method for ASIC and programmable logic device | |
| JP2006268862A (en) | Concurrent development system, development program, and development method for ASIC and programmable logic device | |
| WO2002103757A2 (en) | Digital circuits with selection operators | |
| JP4127720B2 (en) | Method for generating FPGA and ASIC netlist | |
| Charaf et al. | Amah-flex: A modular and highly flexible tool for generating relocatable systems on fpgas | |
| Patterson et al. | Slotless module-based reconfiguration of embedded FPGAs | |
| Huttony et al. | Generation of Synthetic Sequential Benchmark Circuits | |
| Heo | Early system architecture optimization for multi-chip systems | |
| US20090070723A1 (en) | method for generating a scan chain in a custom electronic circuit design |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AK | Designated states |
Kind code of ref document: A1 Designated state(s): CN JP KR US |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2003584963 Country of ref document: JP |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 1020047016617 Country of ref document: KR Ref document number: 20038085666 Country of ref document: CN |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 10965850 Country of ref document: US |
|
| WWP | Wipo information: published in national office |
Ref document number: 1020047016617 Country of ref document: KR |