Semiconductor device, method for generating logic circuit construction data, program, and compiler

The semiconductor device with SRAM-based logic memory blocks and disconnection switches addresses inefficiencies in FPGAs by enhancing speed and reducing power consumption, facilitating integration into SoCs and simplifying development.

JP2026116026APending Publication Date: 2026-07-09MITSUNAMI CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2024233152
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-12-27
Publication Date
2026-07-09

AI Technical Summary

Technical Problem

Conventional FPGAs face challenges with increased power consumption, reduced operating speed, and inefficient wiring that occupy significant chip area due to the use of LUT selector circuits and switch matrices, making it difficult to incorporate complex logic functions into a single semiconductor device.

Method used

A semiconductor device utilizing SRAM-based logic memory blocks with clock-asynchronous capabilities and disconnection switch blocks, optimizing signal wiring paths and reducing the need for selector circuits, combined with a compiler for generating logic circuit construction data that can be integrated into a system-on-a-chip (SoC).

Benefits of technology

Improves operating speed and reduces power consumption by optimizing signal wiring, allows for miniaturization of switch matrices, and enables rapid development and integration into SoCs, eliminating the need for complex timing verifications.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026116026000001_ABST
    Figure 2026116026000001_ABST
Patent Text Reader

Abstract

The objectives are to provide a semiconductor device that optimizes wiring efficiency on silicon chips to improve operating speed and reduce power consumption, and to provide a method for generating logic circuit construction data that simplifies the design process for constructing logic circuits of semiconductor devices, as well as a compiler that facilitates program and system-on-a-chip (hereinafter referred to as SoC) integration. [Solution] The solution includes a plurality of logic memory blocks each having a duplicate SRAM that realizes a logic function by storing a predetermined output value corresponding to an arbitrary input value, signal wiring arranged in a grid pattern to connect the logic memory blocks in a two-dimensional array, and disconnection switch blocks arranged at the intersections of the signal wiring.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a semiconductor device, a method for generating logic circuit construction data, a program, and a compiler that enable any logical configuration to be realized by software writing after manufacturing.

Background Art

[0002] Conventionally, there is a semiconductor device called a field programmable gate array (hereinafter referred to as FPGA) that realizes any logical function by programming with software after manufacturing.

[0003] An FPGA mainly has programmable logic blocks arranged in a two-dimensional array, provides a plurality of signal lines in the vertical and horizontal directions between the logic blocks, and further has a switch matrix arranged at the intersection of the signal lines.

[0004] A logic block has a configuration called a look-up table (hereinafter referred to as LUT). This LUT is composed of a tournament-form circuit including a SRAM that stores a truth table corresponding to a desired function and a plurality of selectors connected to the SRAM.

[0005] The LUT outputs a desired truth value by activating a selector circuit using the address input value corresponding to the input signal from the truth table stored in the SRAM as the input value of the logical operation as it is.

[0006] Also, an FPGA provides a switch matrix for switching the signal path on signal lines arranged in a vertical and horizontal grid pattern prepared in advance.

[0007] The switch matrix consists of a plurality of transistor switch groups with six transistor switches as one. This transistor switch group is arranged at the intersection of the signal lines, and forms a path for flowing a signal by switching the on / off of each transistor switch.

[0008] In other words, FPGAs enable the creation and rewriting of logic circuits after manufacturing by rewriting the truth table held by the LUT and switching the transistor switches that make up the switch matrix. That is, FPGAs can implement arbitrary logic functions after manufacturing.

[0009] Conventional FPGAs calculate the address input value for a logical operation from the input values ​​based on a truth table within the LUT, and then activate the selector circuit using that address input value. Therefore, the physical operation of the selector circuit is always required, which could cause operational delays. In addition, this slower operation resulted in increased power consumption.

[0010] Furthermore, the switch matrix required to realize the desired signal routing consists of multiple transistor switch groups, making it difficult to miniaturize. In addition, it needed to be installed in large quantities inside the FPGA to enable the realization of all conceivable signal paths.

[0011] Therefore, FPGAs occupy the majority of the silicon chip area with signal lines and switch matrices, making it difficult to incorporate many logic functions into a single semiconductor device.

[0012] Therefore, as a method to solve the problems of reduced operating speed and increased power consumption caused by LUTs, a semiconductor device that implements logic functions by storing truth values ​​to be output for predetermined input signals is disclosed in Patent Document 1.

[0013] In other words, the semiconductor device described in Patent Document 1 stores a truth table in its memory to realize a desired logic function, and outputs the corresponding truth value from the truth table in response to a predetermined input value. This eliminates the selector circuit that was previously configured in the LUT of a conventional FPGA, thereby improving operating speed and reducing power consumption. [Prior art documents] [Patent Documents]

[0014] [Patent Document 1] WO2007 / 060738 publication [Overview of the Initiative] [Problems that the invention aims to solve]

[0015] However, the semiconductor device disclosed in Patent Document 1 does not disclose the wiring efficiency of signal lines and therefore does not solve the problem of chip area occupied by signal lines and switches. This allows for complex and long signal line wiring, which can lead to a decrease in operating speed and an increase in power consumption.

[0016] Furthermore, while writing truth tables to memory and outputting based on them contributes to increased operating speed and reduced power consumption compared to LUT selector circuits, there was still room to further improve operating speed and reduce power consumption by selecting the appropriate memory.

[0017] Therefore, the present invention aims to provide a semiconductor device that optimizes wiring efficiency in a silicon chip to improve operating speed and reduce power consumption. It also aims to provide a method for generating logic circuit construction data for constructing arbitrary logic circuits, a program, and a compiler that enables integration into a system-on-a-chip (hereinafter referred to as SoC). [Means for solving the problem]

[0018] To solve the above problems, the semiconductor device, logic circuit construction data generation method, program, and compiler of the present invention have the following features. [1] A semiconductor device comprising: a plurality of logic memory blocks each having SRAM that realizes a logic function by storing a predetermined output value corresponding to an arbitrary input value; signal lines arranged in a grid pattern to connect the logic memory blocks to each other in a two-dimensional array; and disconnection switch blocks disposed at the intersections of the signal lines. [2] The semiconductor device according to [1], wherein the disconnection switch block has at least three switch mechanisms: a vertical disconnection switch provided on a vertical signal line arranged vertically among the signal lines, a horizontal disconnection switch provided on a horizontal signal line arranged horizontally, and a suspended disconnection switch installed across the vertical signal line and the horizontal signal line. [3] The semiconductor device according to [1] or [2], wherein the SRAM is clock asynchronous. [4] The semiconductor device described in [1] or [2], wherein the SRAM is clock-synchronous. [5] The semiconductor device according to [1] or [2], wherein the SRAM is a mixture of clock-synchronous and clock-asynchronous types. [6] The logical memory block is a semiconductor device according to any one of [1] to [5], having four of the SRAMs. [7] A semiconductor device according to any one of [1] to [6], comprising a junction switch for connecting two parallel signal lines, wherein any logic circuit can be constructed by switching the junction switch on or off. [8] A method for generating logic circuit construction data for constructing an arbitrary logic circuit in a semiconductor device having a plurality of logic memory blocks, comprising: a function design description step for designing a predetermined logic function for the semiconductor device; a diagram generation step for generating a diagram showing the grouping of the logic memory blocks for executing the logic function; a terminal number comparison step for comparing the number of input terminals required for each group with the number of input terminals that the actual logic memory block has; a logic function assignment step for determining how to assign the groups to the plurality of actual logic memory blocks; a logic description step for generating logic description statements to be written to the logic memory blocks in order to realize the logic function; a verification data generation step for generating verification data for functional verification of the circuit data of the semiconductor device; a function verification step for performing functional verification based on the verification data; a truth value calculation step for calculating the truth value of each logic operation from the logic description statements; and a programming data generation step for generating programming data to be implemented in the semiconductor device in order to realize the logic function based on the truth value and the circuit data. [9] A method for generating logic circuit construction data for a semiconductor device having a plurality of logic memory blocks, comprising: a logic function assignment step of determining how to assign predetermined logic functions to the actual devices of the plurality of logic memory blocks; an external assignment setting step of determining which terminals to assign external devices to be externally connected to the semiconductor device to; an internal assignment setting step of setting the assignment of terminals used for connecting the plurality of logic memory blocks to each other; an entity generation step of generating framework data relating to logic description statements to be written to each of the logic memory blocks in order to realize the logic functions; a logic memory block design step of writing the logic description statements according to the framework data; a verification data generation step of generating verification data for functional verification of the circuit data of the semiconductor device; a functional verification step of performing functional verification based on the verification data; a truth value calculation step of calculating the truth value of each logic operation from the logic description statements; and a programming data generation step of generating programming data to be implemented in the semiconductor device in order to realize the logic functions based on the truth value and the circuit data.

[10] A program that causes a computer to execute: a function design description step for designing a predetermined logic function for a semiconductor device; a diagram generation step for generating a diagram showing the grouping of logic memory blocks for executing the logic function; a terminal number comparison step for comparing the number of input terminals required for each group with the number of input terminals on the actual logic memory block; a logic function assignment step for determining how to assign the groups to a plurality of actual logic memory blocks; a logic description step for generating logic description statements to be written to the logic memory blocks in order to realize the logic function; a verification data generation step for generating verification data for functional verification of the circuit data of the semiconductor device; a function verification step for performing functional verification based on the verification data; a truth value calculation step for calculating the truth value of each logic operation from the logic description statements; and a programming data generation step for generating programming data to be implemented on the semiconductor device in order to realize the logic function based on the truth value and the circuit data.

[11] A program that causes a computer to execute the following steps: a logic function assignment step of determining how to assign predetermined logic functions to multiple logic memory blocks; an external assignment setting step of determining which terminals to assign external devices to be externally connected to the semiconductor device to; an internal assignment setting step of setting the assignment of terminals used for connecting multiple logic memory blocks to each other; an entity generation step of generating framework data relating to logic description statements to be written to each of the logic memory blocks in order to realize the logic functions; a logic memory block design step of writing the logic description statements according to the framework data; a verification data generation step of generating verification data for functional verification of the circuit data of the semiconductor device; a functional verification step of performing functional verification based on the verification data; a truth value calculation step of calculating the truth value of each logic operation from the logic description statements; and a programming data generation step of generating programming data to be implemented in the semiconductor device in order to realize the logic functions based on the truth value and the circuit data.

[12] A compiler capable of generating layout data for incorporating a semiconductor device having multiple logic memory blocks consisting of multiple SRAMs into an SoC, the compiler automatically compiles based on predetermined input information and outputs layout data including design information of the logic memory blocks and design information of the semiconductor device. [Effects of the Invention]

[0019] The semiconductor device of the present invention improves operating speed and reduces power consumption by using SRAM in the logic memory block and optimizing the signal wiring path with a disconnection switch block. Furthermore, the disconnection switch block can be made smaller than the switch matrix used in FPGAs, allowing sufficient space for the logic memory block on the silicon chip. In addition, by incorporating clock-asynchronous SRAM, signals can be read and written without being affected by the clock period, contributing to further improvements in operating speed and reductions in power consumption.

[0020] In addition, the method for generating the logic circuit construction data and the program of the present invention can omit the enormous labor and time-consuming work such as timing verification in the development of FPGAs, and have the effect of enabling rapid development of semiconductor devices.

[0021] In addition, the compiler of the present invention can generate layout data when incorporated into a SoC by inputting predetermined information, and has the effect of enabling incorporation of the semiconductor device of the present invention into a SoC. That is, it is possible to incorporate a semiconductor device capable of writing logic, which can replace a conventional FPGA that was difficult to incorporate into a SoC, into a SoC. Furthermore, by inputting predetermined information and compiling to generate layout data, it is possible to contribute to the eco-friendliness of SoC design.

Brief Description of the Drawings

[0022] [Figure 1] It is a schematic diagram showing the overall configuration of a semiconductor device according to an embodiment of the present invention. [Figure 2] It is a schematic diagram showing the configuration of a logic memory block according to an embodiment of the present invention. [Figure 3] It is a schematic diagram showing the configuration and usage state of a cut-off switch block according to an embodiment of the present invention. [Figure 4] It is a schematic diagram showing the arrangement state of a bonding switch according to an embodiment of the present invention. [Figure 5] It is a flowchart showing the steps of a method for generating logic circuit construction data when newly constructing a logic circuit according to an embodiment of the present invention. [Figure 6] It is a flowchart showing the steps of a method for generating logic circuit construction data when constructing a logic circuit based on existing design data according to an embodiment of the present invention. [Figure 7] It is an explanatory diagram showing an overview of a compiler according to an embodiment of the present invention. [Figure 8] It is an explanatory diagram showing the flow of compilation in a compiler according to an embodiment of the present invention. [Modes for carrying out the invention]

[0023] [1. About semiconductor equipment] The configuration of a semiconductor device SE according to one embodiment of the present invention will be described below based on the drawings. Figure 1 schematically shows the overall configuration of the semiconductor device SE. Therefore, although the actual signal lines 3 consist of multiple lines arranged in parallel both vertically and horizontally, they are shown as a single line each for the sake of simplicity in the diagram. Figure 2 is a diagram showing the configuration of the logic memory block 2, and each arrow schematically indicates the input and output of a signal. Figure 3 schematically shows the configuration of the disconnection switch block 4, and (b) and (c) show the electrical disconnection state of the signal line 3 due to the switch function being turned off in order to realize the desired wiring path. In addition, the numbers 0 and 1 shown near the switch function in Figure 3 represent the off state of the switch mechanism and the on state of the switch mechanism, respectively, with 0 representing the off state and 1 representing the on state of the switch mechanism. Figure 4 schematically shows the state in which the junction switch 6 is installed, illustrating a partially enlarged view of the semiconductor device SE.

[0024] As shown in Figure 1, the semiconductor device SE includes a base silicon chip 1, a plurality of logic memory blocks 2 arranged in a two-dimensional array on the silicon chip 1, signal lines 3 arranged in a grid pattern to connect the logic memory blocks 2, and disconnection switch blocks 4 arranged at the intersections of the signal lines 3.

[0025] As shown in Figure 2, the logical memory block 2 consists of four SRAMs 21 and internal wiring 22 connecting each SRAM 21 to the others.

[0026] SRAM21 stores predetermined output values ​​(truth values) corresponding to arbitrary input values ​​in order to realize the desired logic functions during the logic design phase. For example, if the input value to SRAM is 0, it has a corresponding truth value of 0 or 1 stored in advance and outputs that value.

[0027] This eliminates the need for the selector circuit within the LUT in conventional FPGAs, thereby enabling the desired logic functionality. This eliminates the physical operating speed required by the selector circuit, resulting in improved operating speed. Furthermore, since the selector circuit is no longer needed, it eliminates the power consumption associated with its operation.

[0028] Furthermore, by configuring logical memory block 2 with SRAM 21, there is the advantage of faster operation speed compared to using other storage devices.

[0029] Incidentally, while SRAM always operates in sync with the clock when writing information, it can read information independently of the clock period.

[0030] Therefore, at least one of the four SRAMs 21 constituting the logical memory block 2 is configured as a clock-asynchronous type, resulting in a mixed configuration with clock-synchronous types.

[0031] The logical memory block 2 is equipped with clock-asynchronous SRAM 21, which allows for signal transmission without being affected by the clock period when there is no change in the truth values ​​related to input / output between SRAM 21 units within the logical memory block 2 or between logical memory blocks 2.

[0032] Specifically, when the asynchronous SRAM21 performs signal input and output, if the input value is 0 and the output value is also 0 (or if the input value is 1 and the output value is also 1), there is no need to change the output value (write information to the SRAM21). Therefore, the input of a signal and the output of the same signal do not need to be synchronized with the clock period, and the signal with an input value of 0 can be transmitted to the next SRAM21 without being affected by the clock period.

[0033] In other words, if there is no change in the truth values ​​at input and output, the asynchronous SRAM 21 can behave like a simple wire that only transmits signals. This significantly reduces the time wasted in signal transmission and contributes to improving the operating speed of the semiconductor device SE.

[0034] In other words, when synchronized with the clock period, even if there is no change in the truth value, the operation will proceed as if there is no change in accordance with the clock period, and the operation will take longer because it is synchronized with the clock period. Therefore, the logical memory block 2 according to the present invention can eliminate this operation time.

[0035] Furthermore, in the case of a clock-synchronous type, even if the truth value does not change, it will operate as if there is no change in accordance with the clock period. Therefore, even if the truth value (output value) for the input value is the same, it will operate and consume power at each clock period.

[0036] The asynchronous SRAM21 simply transmits the input value as is when there is no change in the truth value, thus effectively reducing power consumption by eliminating any operational steps.

[0037] Furthermore, when generating the logic for an FPGA, that is, during FPGA development and design, programming is performed using a language called RTL (Register Transfer Level) for logic design.

[0038] This RTL language performs logic design along a time axis managed by a clock. Therefore, programming in RTL requires writing the logic function design while considering synchronization with the clock operation, and development in this language requires a certain level of expertise.

[0039] However, the semiconductor device SE according to the present invention, by incorporating a clock-asynchronous SRAM 21, enables logic design without considering clock operation during development. Therefore, it becomes possible to program using a language that does not have the concept of a clock, such as C language.

[0040] Furthermore, the semiconductor device SE according to the present invention also includes a clock-synchronous SRAM 21, making it possible to use conventional development methods, namely, to write programs using the RTL language.

[0041] As shown in Figure 1, signal lines 3 are arranged in a grid pattern between the two-dimensional array of logic memory blocks 2 so that any signal path can be realized. In the following description, signal lines 3 arranged vertically with respect to the silicon chip 1 will be called vertical signal lines 31, and signal lines arranged horizontally will be called horizontal signal lines 32.

[0042] Furthermore, signal line 3 is connected to an input / output block (hereinafter referred to as IOB) that enables input and output to and from the outside, which is arranged along the outer circumference of the silicon chip 1. This IOB 5 has pin terminals for connecting the so-called semiconductor device SE to external devices such as a CPU.

[0043] The disconnection switch block 4 is installed at the intersection of the vertical signal line 31 and the horizontal signal line 32. Specifically, as shown in Figure 3, it consists of a total of three switch mechanisms: a vertical disconnection switch 41 installed on the vertical signal line 31, a horizontal disconnection switch 42 installed on the horizontal signal line 32, and a suspended disconnection switch 43 installed across both the vertical signal line 31 and the horizontal signal line 32.

[0044] For the purpose of explaining the function of the disconnection switch block 4, it is shown as a rhombus shape in Figure 3. Furthermore, the upper vertex of the rhombus-shaped disconnection switch block 4 is denoted as 4a, the lower vertex as 4b, the left vertex as 4c, and the right vertex as 4d. However, the shape of the disconnection switch block 4 is not limited to a rhombus shape.

[0045] As shown in Figure 3(a), all three switch mechanisms of this disconnection switch block 4 (vertical disconnection switch 41, horizontal disconnection switch 42, and overhead disconnection switch 43) are in the ON state before the signal line 3 route design.

[0046] Therefore, both the vertical signal line 31 and the horizontal signal line 32, which correspond to the intersection where the disconnection switch block 4 is installed, are in a state where signals can be transmitted (electricity can flow).

[0047] In route design, if you want to construct a signal path from 4a to 4b, the disconnection switch block 4 is achieved by turning off the horizontal disconnection switch 42 and the vertical disconnection switch 43, as shown in Figure 3(b).

[0048] At this time, the disconnection switch block 4 electrically disconnects the signal line 3 and blocks signal transmission by turning off the horizontal disconnection switch 42, which enabled signal transmission to the horizontal signal line 32, and the vertical disconnection switch 43, which enabled signal transmission to both the vertical signal line 31 and the horizontal signal line 32.

[0049] Therefore, the signal flowing from side 4a to the disconnection switch block 4 will only be transmitted in the direction of 4b, which is the only direction in which transmission is possible.

[0050] Similarly, in path design, if you want to construct a signal path from 4c to 4a, the disconnection switch block 4 can be achieved by turning off the vertical disconnection switch 41, as shown in Figure 3(c).

[0051] At this time, the disconnection switch block 4 electrically disconnects the signal by turning off the vertical disconnection switch 41, which had been enabling signal transmission to the vertical signal line 31, thereby blocking signal transmission.

[0052] Therefore, the signal flowing from side 4c to the disconnection switch block 4 will be transmitted in the 4a and 4d directions, which are in a state where transmission is possible. If you want to transmit the signal only in the 4a direction, turn off the lateral disconnection switch 42 of the adjacent disconnection switch block 4 located to the right of the disconnection switch block 4 shown in Figure 3(c). By doing so, the signal flowing in the 4d direction will be blocked by the adjacent disconnection switch block 4, and the flow of unwanted signals can be cut off.

[0053] In other words, the disconnection switch block 4 can form a desired circuit by blocking the signal path passing through the disconnection switch block 4 through the on / off switching of the three switch mechanisms. Furthermore, if there are two paths for the signal to flow, the desired signal path can be formed by turning off the adjacent disconnection switch block 4 located on the extension of the path other than the desired signal path.

[0054] As described above, even in other cases, the desired signal path can be constructed by turning off the switch mechanisms (vertical cutting switch 41, horizontal cutting switch 42, and overhead cutting switch 43) corresponding to the signal lines 3 that are not needed in the path through which the signal is to be transmitted.

[0055] This disconnection switch block 4 can realize the desired signal path using only three switch mechanisms (vertical disconnection switch 41, horizontal disconnection switch 42, and overhead disconnection switch 43).

[0056] Therefore, compared to the switch matrix used in conventional FPGAs, it has a simpler configuration and can be miniaturized.

[0057] This improves wiring efficiency on the silicon chip 1 and reduces the area occupied by the signal lines 3 and disconnection switch block 4 necessary to realize the desired logic function.

[0058] Furthermore, by reducing the occupancy rate of signal lines 3 and disconnection switch blocks 4 on the silicon chip 1, the number of logic memory blocks 2 that can be mounted per unit area can be increased, enabling the realization of more complex logic functions.

[0059] The disconnection switch block 4 may be constructed using transistor switches, similar to conventional switch matrices. However, transistor switches have high resistance and slow transmission speed. While increasing the size of the transistors used in the transistor switches reduces the resistance, it has the disadvantage of increasing the area occupied on the chip.

[0060] Therefore, it is desirable that the disconnection switch block 4 be formed by a gate rather than a transistor switch. By using a gate, the resistance value can be lower compared to a transistor switch, and a switching mechanism with a faster transmission speed can be realized.

[0061] Furthermore, the semiconductor device SE may also be equipped with a junction switch 6 that connects two parallel vertical signal lines 31 or two horizontal signal lines 32, as shown in Figure 4(a).

[0062] By providing this junction switch 6, the degree of freedom in the overall circuit design of the semiconductor device SE is increased, and the length of the signal line 3 can be prevented as much as possible.

[0063] In particular, it is preferable that the junction switch 6 be provided along the outermost edge of the signal line 3, i.e., along the outer edge of the semiconductor device SE, as shown in Figure 4(b).

[0064] By arranging the junction switch 6 along the outer edge, all signal lines 3 can be connected in a single continuous line, which has the advantage of making it easier to wire signals that should be common to all logic memory blocks 2, such as the clock signal.

[0065] [2. Regarding the method for generating logic circuit construction data] The logic circuit construction data generation method LM according to the present invention can be described in two ways: when constructing a new logic circuit and when constructing a logic circuit based on existing design data (for example, logic function design data of FPGAs or other semiconductor devices that have been used up to date). Each case will be described with reference to the drawings.

[0066] The method LM for generating logic circuit construction data when constructing a new logic circuit includes, as shown in Figure 5, a functional design description process FS1, a description statement verification process FS2, a diagram generation process FS3, a terminal count comparison process FS4, a logic function assignment process FS5, a logic description process FS6, a verification data generation process VS1, a functional verification process VS2, a truth value calculation process VS3, and a programming data generation process VS4.

[0067] The Functional Design Description Process FS1 is a process in which the functional design is described using a predetermined language. Specifically, the logical functions of the semiconductor device SE desired by the designer are described in machine language. It is desirable to use a high-level language that is easy for humans to understand, and RTL language is particularly suitable. For convenience, the descriptions written in this process will be referred to as functional design descriptions in the following explanation.

[0068] Furthermore, while this embodiment uses a method in which the designer describes the desired logical function using machine language as an example, it is also conceivable that the designer describes the desired logical function using text instead of machine language, and that this description is automatically converted into machine language by a computer.

[0069] The description verification process FS2 is a process in which a computer, according to a program, extracts grammatical errors from the functional design description created by the designer and analyzes the content of the functional design description. If a grammatical error is found in the functional design description, the computer will inform the designer of this. Once the verification of the functional design description is completed in the description verification process FS2, the process proceeds to the next step, the diagram generation process FS3.

[0070] The diagram generation process FS3 is a process that groups how the logical functions that can be executed based on the functional design description will be executed in the logical memory block 2, and generates a diagram of that content. This process is executed by a computer according to the program.

[0071] Specifically, logical functions are realized by performing multiple logical operations within the device. Therefore, the diagram generation process FS3 illustrates in a diagram how far the logical operations should be performed on one of the multiple logical operations, the logical memory block 2.

[0072] This diagram can be any diagram that allows us to understand the assignment of logical operations to logical memory block 2. For example, it may represent each logical operation processed in the same logical memory block 2 with small shapes, and the larger shape enclosing these small shapes may represent the logical memory block 2.

[0073] As mentioned above, a single logical memory block 2 can perform multiple logical operations. However, the number of logical operations that can be processed by a single logical memory block 2 is limited by the number of terminals used for signal input and output.

[0074] Therefore, the number of input / output terminals required for one logic memory block 2 shown in the diagram must be less than or equal to the number of input / output terminals for the logic memory block 2 implemented in the semiconductor device SE.

[0075] Therefore, the terminal count comparison process FS4 is a process that compares the number of input / output terminals required for the logical memory block 2 shown in each diagram with the actual number of input / output terminals in the logical memory block 2, and verifies that there are no problems with the number of input / output terminals. This process is performed by a computer according to the program.

[0076] Furthermore, if the number of input / output terminals required for logical memory block 2 as shown in the diagram exceeds the number of input / output terminals in logical memory block 2, the relevant group is decomposed and reconstructed. The number of input / output terminals for logical memory block 2 shown in all diagrams is then kept within the actual number of input / output terminals in logical memory block 2.

[0077] The logical function assignment process FS5 is the process of determining where to assign the arithmetic processing (logical function) of each group illustrated in the diagram to one of the multiple logical memory blocks 2 mounted on the actual semiconductor device SE. This process can be performed by the designer or by a computer according to a program.

[0078] At this point, it is also possible to cluster each group before assigning logical functions. That is, multiple groups are classified according to predetermined rules, and identical or similar classes are assigned to close locations. This makes it possible to shorten the length of signal line 3 as much as possible, enabling improved operating speed and reduced power consumption during operation.

[0079] Furthermore, the logic function assignment process FS5 also determines the path of the signal lines 3 between the logic memory blocks 2 to which the logic functions have been assigned. This path determination includes information regarding the on / off state of the disconnection switch block 4. This step may also be separated into a separate process.

[0080] The logical description process FS6 is the process of generating logical description statements to be written to the logical memory block 2 in order to execute a logical function.

[0081] This process may involve the designer directly writing the logical description statements for executing the logical functions corresponding to each logical memory block 2, or it may be a method in which the computer automatically generates them from the functional design description statements obtained in the functional design description process FS1. For convenience, in the following explanation, the description statements written in this process will be referred to as logical description statements.

[0082] This logical description can be written in any machine language; however, it is most preferable to use an RTL language, which is commonly used for such descriptions.

[0083] The verification data generation process VS1 generates verification data for verifying the circuit data of the entire semiconductor device SE and the logic functions derived from the circuit data, based on the information obtained through the processes described above. This process is executed by a computer according to a program.

[0084] Specifically, the circuit data for the entire semiconductor device SE is generated based on information such as which logic memory block 2 to assign the logic function determined in the logic function assignment process FS5, information regarding the path of the signal lines 3 between each logic memory block 2, and information regarding the logic description statements to be written to the logic memory block 2 determined in the logic description process FS6.

[0085] Next, verification data is generated to verify the logic functions obtained from the circuit data and the operation of the circuits that realize them. This verification data is written in a language that can be read by the functional verification simulator used in the next step, functional verification step VS2. The language corresponding to this simulator can be any machine language, but Verilog-RTL is preferably used.

[0086] The functional verification process VS2 reads the verification data generated in the verification data generation process VS1 into the functional verification simulator and verifies whether there are any problems with the circuit design of the semiconductor device SE. In other words, the functional verification simulator verifies whether the desired logical functions can be realized and whether there are any inefficiencies in the operation when the actual semiconductor device SE is programmed according to the generated circuit data.

[0087] The truth value calculation process VS3 is performed after the functional verification process VS2 has determined that there are no problems in realizing the logical functions, and calculates the results of each logical operation from the logical description statements written in each logical memory block 2. In other words, it is the process of converting the logical function description statements written in each logical memory block 2 into truth values ​​that are actually stored in the SRAM 21. This process is executed by the computer according to the program.

[0088] By the way, the SRAM21 used in semiconductor device SE has the characteristic of losing the information it stores when the power supply is cut off. Therefore, it is necessary to store the data (configuration data) to be stored in the SRAM21 when the power supply is restored in a non-volatile memory (such as ROM or flash memory) that retains information regardless of whether power is supplied or not.

[0089] The truth value information obtained in the truth value calculation process VS3 is also used as configuration data. Naturally, the semiconductor device SE in this embodiment is equipped with an internal storage device such as ROM or flash memory to hold this configuration data. Alternatively, the semiconductor device SE could be connected to an external storage device that holds the configuration data.

[0090] The programming data generation process VS4 generates programming data to be written to the actual semiconductor device SE, based on the truth values ​​(including configuration data) obtained in the truth value calculation process VS3 and the wiring information of signal lines 3 for realizing logic functions. This process is executed by a computer according to the program.

[0091] The programming data consists of truth values, which can be called logical design information, stored in each logical memory block 2, assignment information with external devices, and wiring information for connecting each logical memory block 2 to itself.

[0092] The wiring information consists of the signal transmission path between each logic memory block 2, i.e., the path design information for the signal lines 3, and the on / off information for the disconnection switch block 4. However, the switch does not have to be the disconnection switch block 4; any switch that allows arbitrary selection of whether or not to transmit a signal to the signal lines 3, which are pre-arranged in a grid pattern, may be used.

[0093] Next, we will explain the case of constructing a logic circuit based on existing design data. Note that the verification data generation process VS1, the functional verification process VS2, the truth value calculation process VS3, and the programming data generation process VS4 described below are the same as the process described above when constructing a new logic circuit, so their explanation will be omitted.

[0094] The method LM for generating logic circuit construction data when constructing a logic circuit based on existing design data includes, as shown in Figure 6, a logic function assignment process TS1, an external assignment setting process TS2, an internal assignment setting process TS3, an entity generation process TS4, a logic memory block design process TS5, a verification data generation process VS1, a function verification process VS2, a truth value calculation process VS3, and a programming data generation process VS4.

[0095] The logic function assignment process TS1 is a process that determines the assignment of logic functions, such as which logic memory block 2 will execute the functions that are performed by the logic description statements in the existing design data. The logic function assignment process TS1 is a process that includes the diagram generation process FS3, the terminal count comparison process FS4, and the logic function assignment process FS5 in the method for generating logic circuit construction data when constructing a new logic circuit as described above.

[0096] Specifically, the logical function assignment process TS1 includes details such as which logical memory block 2 to execute each logical operation on, how many logical operations to perform on a single logical memory block 2, and whether there are enough input / output terminals.

[0097] This logical function assignment process TS1 can be performed by the designer, or it can be executed by a computer using a program that reads existing design data and automatically assigns logical functions.

[0098] The external assignment setting process TS2 is the process of setting which terminal of the IOB5 on the semiconductor device SE will be assigned to connect to an external device. This is basically done by the designer, but it may also be performed by a computer according to a program.

[0099] The internal assignment setting process TS3 sets the assignments between each logical memory block 2, which has been configured with logical functions by the logical function assignment process TS1. It also sets the wiring paths of the signal lines 3 and the disconnection switch blocks 4 to realize the desired logical functions. This is basically done by the designer, but it may also be performed by a computer according to the program.

[0100] The entity generation process TS4 is a process in which a computer automatically generates entity files for describing logical functions in each logical memory block 2.

[0101] In the logical memory block design process TS5, the designer writes logical description statements for each logical memory block 2 according to the entity file generated in the entity generation process TS4.

[0102] The description of this logical statement is based on programming in the RTL language. Therefore, the entity files generated in the entity generation process TS4 serve as framework data for description in the RTL language.

[0103] However, logical descriptions do not necessarily have to be written in an RTL language; they may be written in other languages, such as C. Naturally, in that case, the entity files generated by the entity generation process TS4 will be structured data appropriate to the language used.

[0104] Once the logical memory block design process TS5 is completed, the design work then proceeds in the following order: verification data generation process VS1, functional verification process VS2, truth value calculation process VS3, and programming data generation process VS4.

[0105] The LM method for generating logic circuit construction data is performed using a program that instructs a computer to sequentially execute the processes described above, whether constructing a new logic circuit or constructing one based on existing design data.

[0106] Specifically, when constructing a new logic circuit, as shown in Figure 5, the function mapping program FMP is used to execute the functional design description process FS1 to the logic description process FS6 on the computer, and the verification data generation process VS1 to the programming data generation process VS4 is used to execute the verification data generation program VGP on the computer.

[0107] Furthermore, the function mapping program FMP according to this embodiment is configured to require a description from the designer for the first step, the functional design description step FS1, while the other steps are executed by the computer through the program.

[0108] In this case, it is preferable to have the computer programmatically display the input form in order to assist the designer in the functional design description process FS1.

[0109] However, this configuration is not always necessary; a mix of requests for descriptions from the designer and computer-based analysis is also conceivable. Furthermore, the execution scope of the function mapping program FMP could include the verification data generation process VS1.

[0110] When constructing a logic circuit based on existing design data, as shown in Figure 6, the first steps, from the logic function setting step TS1 to the logic memory block design step TS5, are executed by the computer using the template mapping program TMP, and the verification data generation step VS1 to the programming data generation step VS4 are executed by the computer using the verification data generation program VGP.

[0111] Furthermore, the template mapping program TMP is configured to request input from the designer during the logical function assignment process TS1, the external assignment setting process TS2, the internal assignment setting process TS3, and the logical memory block design process TS5, while the entity generation process TS4 is executed by the computer via a program.

[0112] However, this configuration is not always necessary; a mix of requests for descriptions from the designer and computer-based analysis is also conceivable. Furthermore, the execution scope of the template mapping program TMP could include the verification data generation process VS1.

[0113] Furthermore, the template mapping program TMP is configured to display input templates to assist with input during processes that require input from the designer. In other words, the designer can generate logic circuit construction data by making inputs according to the input templates.

[0114] Therefore, the logic circuit construction data generation method LM can facilitate the design of the logic functions of semiconductor device SE.

[0115] Furthermore, in the development of conventional FPGAs and similar semiconductor devices, after logic verification (the functional verification process in this embodiment), it is necessary to perform three verifications: logic synthesis, which replaces the descriptive statements with gate circuits; gate verification, which verifies the operation of the gate circuits replaced by logic synthesis; and timing verification, which verifies whether the calculations that realize the logic functions operate correctly within the clock period.

[0116] In particular, timing verification in the development of semiconductor devices requires a vast number of verifications, which has been a factor in prolonging development.

[0117] However, in the logic circuit construction data generation method LM according to the present invention, the logic description statement verified by functional verification is converted into a truth value, and this information can be used as configuration data, thus eliminating the need to replace it with a gate circuit.

[0118] Furthermore, because the logic memory block 2 that stores truth values ​​functions in the same way as a logic block in an FPGA, and because the wiring is optimized by the disconnection switch block 4, delays caused by gate circuits and wiring are almost eliminated, thus eliminating the need for timing verification. Therefore, the development and design period for the semiconductor device SE can be significantly reduced.

[0119] [3. About the compiler] SoCs are manufactured by semiconductor manufacturers (including not only companies but also factories; hereinafter referred to as "Fabs") by placing discrete semiconductors such as memory and MPUs that meet the specified standards onto a silicon chip during the manufacturing process.

[0120] Therefore, FPGAs, which require a special manufacturing process different from that of discrete semiconductors incorporated into SoCs, could not be included in the manufacturing process of conventional SoCs and thus could not be incorporated into existing standardized SoCs.

[0121] However, because FPGAs allow for logic circuit programming after manufacturing, there is high demand for the devices themselves, and at the same time, there is a strong desire to integrate them into SoCs.

[0122] The semiconductor device SE according to the present invention allows for programming of logic circuits after manufacturing and can be used in the same way as conventional FPGAs. On the other hand, since the semiconductor device SE is composed of SRAM 21, unlike conventional FPGAs, it does not involve a special manufacturing process and can be incorporated into an SoC in the same way as ordinary SRAM as memory.

[0123] Therefore, we will now describe a compiler C for more easily integrating the semiconductor device SE according to the present invention into an SoC.

[0124] As shown in Figure 7, compiler C outputs layout data CO1 and verification data CO2 based on the input information, enabling easy integration of the semiconductor device SE into the SoC. By using the output layout data CO1, which is tailored to the SoC, the semiconductor device SE can be easily integrated into the SoC in the same way as an SRAM.

[0125] The information input to compiler C consists of at least Fab information CI1, which includes the design rules of the SoC; memory IP information CI2, which includes memory design data supplied from the Fab; and semiconductor device information CI3, which includes the capacity and operating frequency of the semiconductor device SE to be incorporated into the SoC.

[0126] Memory IP information CI2 is the design information for the memory actually used in the SoC, provided by the fab. In other words, it is the design information for the SRAM21 that constitutes the semiconductor device SE.

[0127] The output layout data CO1 consists of information about the semiconductor device SE and information about the logical memory block 2 that constitutes the semiconductor device SE.

[0128] Information regarding the semiconductor device SE includes circuit information of the semiconductor device SE (device circuit information CO11) and arrangement information of the logic memory blocks 2 that constitute the semiconductor device SE (block layout information CO12).

[0129] The information regarding the logic memory block 2 includes circuit information for the logic memory block 2 (block circuit information CO13) and arrangement information for the SRAM 21 that constitutes the logic memory block 2 (SRAM layout information CO14).

[0130] By the way, SoCs require functional verification of the entire integrated circuit they incorporate. Therefore, compiler C outputs the information of various verifications performed when generating layout data CO1 as verification data CO2.

[0131] Next, we will explain the compilation process using compiler C. Compiler C has a database containing the input format C1 for Fab information CI1, reference circuit information C2 for multiple pre-prepared logical memory blocks 2, and framework information C3 for the arrangement and wiring of SRAM 21 in the logical memory block 2.

[0132] Regarding the compilation process, as shown in Figure 8, first, compiler C requests the designer to input Fab information CI1, memory IP information CI2, and semiconductor device information CI3. At this time, the designer inputs Fab information CI1 according to input format C1 sent from compiler C. By standardizing the input format with input format C1, it is possible to make it easier for compiler C to read the data. However, input format C1 is not mandatory as long as Fab information CI1 can be input.

[0133] Compiler C generates the information from logical memory block 2 within the layout data CO1 based on the input information.

[0134] Compiler C generates block circuit information CO13 by synthesizing the circuit of logic memory block 2. The circuit synthesis of logic memory block 2 automatically generates the circuit of logic memory block 2 according to the SoC manufacturing process of the specified fab, using reference circuit information C2 held by compiler C and input memory IP information CI2 and Fab information CI1.

[0135] The automatically generated logic memory block 2 circuit will be verified to ensure it functions correctly through functional testing. Specifically, the netlist will be extracted from the generated logic memory block 2 circuit, and the logic functionality of that netlist will be verified using a simulator.

[0136] The circuit information of logic memory block 2, which was determined to be correct through functional verification, becomes block circuit information CO13. In addition, the data obtained when verifying the circuit of logic memory block 2 (functional verification data CO21) becomes one of the verification data CO2 outputs later.

[0137] Next, based on the generated block circuit information CO13, the SRAM21 is automatically arranged according to the design rules included in the input Fab information CI1 and the framework information C3 held by the compiler C.

[0138] Once the placement of SRAM21 is complete, a layout verification is performed to check whether the placement conforms to the design rules and whether it is constructed according to the block circuit information CO13.

[0139] If the layout verification confirms that there are no problems with the placement of SRAM21, this placement information will become SRAM layout information CO14. Furthermore, the data obtained during the verification of the SRAM21 placement (SRAM layout verification data CO22) will become one of the verification data CO2 outputs later.

[0140] Next, compiler C generates device circuit information CO11 by performing circuit synthesis of the semiconductor device SE. The circuit synthesis of the semiconductor device SE automatically generates the circuit of the semiconductor device SE, which constitutes the logic memory block 2, based on the semiconductor device information CI3 input by the designer.

[0141] The automatically generated semiconductor device (SE) circuit is verified to ensure there are no problems with the connections between each logic memory block 2. Specifically, the netlist is extracted from the generated semiconductor device (SE) circuit, and the connections are verified using a simulator against that netlist.

[0142] The circuit information of the semiconductor device SE that is determined to be correct through connection verification becomes the device circuit information CO11. In addition, the data obtained when verifying the connection of the semiconductor device SE circuit (connection verification data CO23) becomes one of the verification data CO2 that is output later.

[0143] Next, based on the generated device circuit information CO11, the logical memory block 2 is automatically arranged according to the design rules contained in the input Fab information CI1.

[0144] Once the placement of logic memory block 2 is complete, a layout verification is performed to check whether the placement conforms to the design rules and whether it is constructed according to the device circuit information CO11.

[0145] If the layout verification confirms that there are no problems with the placement of SRAM21, this placement information becomes block layout information CO12. Additionally, the data obtained when verifying the placement of logical memory block 2 (block layout verification data CO24) becomes one of the verification data CO2 outputs later.

[0146] Once compiler C has finished generating block layout information CO12, it outputs block circuit information CO13, SRAM layout information CO14, device circuit information CO11, and block layout information CO12 as layout data CO1. It also outputs functional verification data CO21, SRAM layout verification data CO22, connection verification data CO23, and block layout verification data CO24 as verification data CO2.

[0147] As described above, compiler C receives Fab information CI1, memory IP information CI2, and semiconductor device information CI3 as input from the designer. Based on the various input information and the input format C1, reference circuit information C2, and framework information C3 that compiler C holds as a database, it can output layout data CO1 and verification data CO2.

[0148] The semiconductor device SE can be easily integrated into the SoC provided by the Fab by using the outputted layout data CO1 and verification data CO2.

[0149] The compiler C according to the present invention can generate layout data CO1 for integration into an SoC with a user experience similar to that of a conventional memory compiler. However, its distinguishing feature is that, unlike a simple memory compiler, it performs a two-stage compilation process: first for the layout of the SRAM 21 constituting the logical memory block 2, and then for the layout of the logical memory block 2 constituting the semiconductor device SE.

[0150] Furthermore, the compiler C according to the present invention performs various verifications in conjunction with generating layout data CO1. Another feature is that the verification data CO2 obtained at this time can be utilized for verifying the entire integrated circuit of the SoC.

[0151] Furthermore, compiler C can also output document data CO3, which includes specification information for the semiconductor device SE that generated the layout data CO1, as part of the output data.

[0152] The above exemplifies embodiments of the semiconductor device, logic circuit construction data generation method, program, and compiler according to the present invention, but it goes without saying that these are not intended to limit the technical scope of the present invention. These novel embodiments can be realized in various other forms, and various omissions, substitutions, and modifications can be made without departing from the spirit of the present invention. These embodiments and their variations are included in the scope and spirit of the present invention, as well as in the claims and their equivalents. [Explanation of Symbols]

[0153] SE Semiconductor Equipment 1 Silicone chip 2 Logical memory blocks 21 SRAM 22 Internal wiring 3 signal lines 31 Vertical signal line 32 Horizontal signal lines 4. Disconnection switch block 41 Vertically mounted cutting switch 42 Horizontal cutting switch 43 Erection and Disconnection Switch 5 IOB 6. Junction switch Method for generating LM logic circuit construction data FMP Function Mapping Program FS1 Functional design description process FS2 written statement confirmation process FS3 Diagram Generation Process FS4 terminal number comparison process FS5 Logical Function Assignment Process FS6 Logical Description Process TMP Template Mapping Program TS1 Logical Function Assignment Process TS2 External Assignment Setting Process TS3 Internal Assignment Setting Process TS4 Entity Generation Process TS5 Logical Memory Block Design Process VGP Verification and Data Generation Program VS1 Validation Data Generation Process VS2 Functional Verification Process VS3 Truth Value Calculation Process VS4 Programming Data Generation Process C compiler C1 Input Format C2 Reference Circuit Information C3 Frame Information CI1 Fab Information CI2 Memory IP Information CI3 Semiconductor Equipment Information CO1 layout data CO11 device circuit information CO12 Block Layout Information CO13 Block Circuit Information CO14 SRAM Layout Information CO2 verification data CO21 Functional Verification Data CO22 SRAM layout verification data CO23 connection verification data CO24 Block Layout Verification Data CO3 Document Data

Claims

1. A semiconductor device comprising: a plurality of logic memory blocks each having SRAM that realizes a logic function by storing a predetermined output value corresponding to an arbitrary input value; signal lines arranged in a grid pattern to connect the logic memory blocks, with the logic memory blocks arranged in a two-dimensional array; and disconnection switch blocks arranged at the intersections of the signal lines.

2. The semiconductor device according to claim 1, wherein the disconnection switch block has at least three switch mechanisms: a vertical disconnection switch provided on a vertical signal line arranged vertically among the signal lines, a horizontal disconnection switch provided on a horizontal signal line arranged horizontally, and a horizontal disconnection switch installed across the vertical signal line and the horizontal signal line.

3. The semiconductor device according to claim 1 or 2, wherein the SRAM is clock-asynchronous.

4. The semiconductor device according to claim 1 or 2, wherein the SRAM is clock-synchronous.

5. The semiconductor device according to claim 1 or 2, wherein the SRAM comprises a mixture of clock-synchronous and clock-asynchronous types.

6. The semiconductor device according to any one of claims 1 to 5, wherein the logical memory block has four of the SRAMs.

7. A semiconductor device according to any one of claims 1 to 6, comprising a junction switch for connecting two parallel signal lines, wherein any logic circuit can be constructed by switching the junction switch on or off.

8. A method for generating logic circuit construction data for constructing an arbitrary logic circuit in a semiconductor device having multiple logic memory blocks, A functional design description step for designing a predetermined logical function for the semiconductor device, A diagram generation step of generating a diagram showing the grouping of the logical memory blocks for executing the aforementioned logical function, A terminal count comparison step is performed to compare the number of input terminals required for each group with the number of input terminals that the actual logical memory block has. A logical function assignment step that determines how to assign the group to the actual logical memory blocks of a plurality of them, A logic description step that generates a logic description statement to be written to the logical memory block in order to realize the aforementioned logical function, A verification data generation step for generating verification data for functional verification of the circuit data of the semiconductor device, A functional verification process in which functional verification is performed based on the aforementioned verification data, A truth value calculation step, which calculates the truth value of each logical operation from the aforementioned logical description statement, A programming data generation step that generates programming data to be implemented in the semiconductor device in order to realize the logic function based on the truth value and the circuit data, and a method for generating logic circuit construction data including the above.

9. A method for generating logic circuit construction data for constructing an arbitrary logic circuit in a semiconductor device having multiple logic memory blocks, A logical function assignment step that determines how to assign a predetermined logical function to the actual logical memory blocks of a plurality of them, An external assignment setting step is performed to determine which terminal to assign external devices connected to the semiconductor device, An internal assignment setting step for setting the assignment of terminals used to connect multiple logical memory blocks, An entity generation process that generates framework data relating to logical description statements to be written to each of the logical memory blocks in order to realize the aforementioned logical function, A logical memory block design step in which the logical description statement is written according to the framework data, A verification data generation step for generating verification data for functional verification of the circuit data of the semiconductor device, A functional verification process in which functional verification is performed based on the aforementioned verification data, A truth value calculation step, which calculates the truth value of each logical operation from the aforementioned logical description statement, A programming data generation step that generates programming data to be implemented in the semiconductor device in order to realize the logic function based on the truth value and the circuit data, and a method for generating logic circuit construction data including the above.

10. A functional design description process for designing predetermined logic functions for a semiconductor device, A diagram generation step of generating a diagram that shows the grouping of logical memory blocks for executing the aforementioned logical function, A terminal count comparison step is performed to compare the number of input terminals required for each group with the number of input terminals that the actual logical memory block has. A logical function assignment step that determines how to assign the group to the actual logical memory blocks of a plurality of them, A logic description step that generates a logic description statement to be written to the logical memory block in order to realize the aforementioned logical function, A verification data generation step for generating verification data for functional verification of the circuit data of the semiconductor device, A functional verification process in which functional verification is performed based on the aforementioned verification data, A truth value calculation step, which calculates the truth value of each logical operation from the aforementioned logical description statement, A program that causes a computer to execute a programming data generation step, which generates programming data to be implemented in the semiconductor device in order to realize the logic function based on the truth value and the circuit data.

11. A logical function assignment process that determines how to assign a predetermined logical function to multiple logical memory blocks in the actual hardware, The external assignment setting process determines which terminals to assign external devices connected to the semiconductor device, An internal assignment setting step for setting the assignment of terminals used to connect multiple logical memory blocks, An entity generation process that generates framework data relating to logical description statements to be written to each of the logical memory blocks in order to realize the aforementioned logical function, A logical memory block design step in which the logical description statement is written according to the framework data, A verification data generation step for generating verification data for functional verification of the circuit data of the semiconductor device, A functional verification process in which functional verification is performed based on the aforementioned verification data, A truth value calculation step, which calculates the truth value of each logical operation from the aforementioned logical description statement, A program that causes a computer to execute a programming data generation step, which generates programming data to be implemented in the semiconductor device in order to realize the logic function based on the truth value and the circuit data.

12. A compiler capable of generating layout data when incorporating a semiconductor device having multiple logical memory blocks consisting of multiple SRAMs into an SoC, A compiler that automatically compiles based on predetermined input information and outputs layout data including the design information of the logical memory block and the design information of the semiconductor device.

Citation Information

Patent Citations

  • Semiconductor device

    WO2007060738A1