WO2016162970A1 - 回路設計支援装置及び回路設計支援方法及び回路設計支援プログラム - Google Patents

回路設計支援装置及び回路設計支援方法及び回路設計支援プログラム Download PDF

Info

Publication number
WO2016162970A1
WO2016162970A1 PCT/JP2015/060955 JP2015060955W WO2016162970A1 WO 2016162970 A1 WO2016162970 A1 WO 2016162970A1 JP 2015060955 W JP2015060955 W JP 2015060955W WO 2016162970 A1 WO2016162970 A1 WO 2016162970A1
Authority
WO
WIPO (PCT)
Prior art keywords
external memory
memory module
circuit
binding data
latency
Prior art date
Application number
PCT/JP2015/060955
Other languages
English (en)
French (fr)
Inventor
尚也 岡田
山本 亮
Original Assignee
三菱電機株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 三菱電機株式会社 filed Critical 三菱電機株式会社
Priority to US15/556,180 priority Critical patent/US10311188B2/en
Priority to JP2017511392A priority patent/JP6342065B2/ja
Priority to PCT/JP2015/060955 priority patent/WO2016162970A1/ja
Publication of WO2016162970A1 publication Critical patent/WO2016162970A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/392Floor-planning or layout, e.g. partitioning or placement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/04Constraint-based CAD

Definitions

  • the present invention relates to a technique for supporting circuit design.
  • the behavioral description only the behavioral specification is described, and the implementation specification is not described. However, due to general restrictions in high-level synthesis, the behavioral description may affect the implementation obtained as a result of the behavioral description depending on the description method.
  • an array variable in a behavioral description is generally assigned to a function module of a storage element such as a memory or a register (hereinafter, the function module of the storage element is referred to as a memory module) in high-level synthesis.
  • Array variables are often described with a large size. For this reason, even in high-level synthesis, an array variable is assigned to a memory module with a large size. Allocation to a large-sized memory module in high-level synthesis may allocate a large-sized memory (hardware) and increase the area of the LSI to be designed. Usually, such a large memory is realized by an external memory outside the LSI to be designed. However, the current high-level synthesis tool cannot automatically assign a specific memory module to an external memory. Therefore, in order to achieve an architecture in which a specific memory module is realized by an external memory, the designer himself has to modify the operation description and describe the communication interface between the LSI and the external memory.
  • Patent Document 1 configuration information of hardware to be designed (presence / absence of external memory) and mapping information (designation of allocation to an external memory for an array variable in the behavior description) are given to the behavior description created by the designer.
  • mapping information designation of allocation to an external memory for an array variable in the behavior description
  • Patent Document 1 it is necessary for the designer himself to select which memory the array variable in the behavioral description is assigned to. That is, the method of Patent Document 1 has a problem that the designer himself has to select a memory module to which an external memory is allocated, which is not efficient.
  • the main object of the present invention is to solve the above-described problems, and a main object is to obtain a configuration that can improve the efficiency of the circuit design procedure.
  • a circuit design support apparatus includes: A binding data acquisition unit that acquires binding data in which a plurality of memory modules are described as functional modules of the design target circuit; A memory module selection unit that selects an external memory module to be mounted as an external memory outside the design target circuit, from among the plurality of memory modules described in the binding data, based on constraints on the design target circuit; Have
  • the circuit design support device selects a memory module to be mounted as an external memory, it is not necessary for the designer to consider a memory module to be mounted as an external memory, and the circuit design procedure can be made efficient. .
  • FIG. 3 is a diagram illustrating a functional configuration example of a high-level synthesis system according to Embodiment 1.
  • FIG. 3 is a diagram illustrating an example of a functional configuration of a circuit design support apparatus according to Embodiment 1.
  • FIG. 3 is a flowchart showing an operation example of the circuit design support apparatus in the first embodiment.
  • 6 is a diagram illustrating an example of constraint information in the first embodiment.
  • FIG. 6 is a diagram illustrating an example of binding data according to Embodiment 1.
  • FIG. 6 is a diagram showing an example of write access timing and read access timing in the first embodiment.
  • FIG. 6 is a diagram illustrating an example of determining an external memory module candidate based on the write data holding cycle time in the first embodiment.
  • FIG. 6 is a diagram illustrating an example of a memory module that is a target of an external memory module candidate determination process based on a read access waiting time according to the first embodiment.
  • FIG. 6 is a diagram illustrating an example of determining external memory module candidates based on the read access waiting time according to the first embodiment.
  • FIG. 6 is a diagram illustrating an example of determining external memory module candidates based on the read access waiting time according to the first embodiment.
  • FIG. 6 is a diagram illustrating an example of external memory module candidates in the first embodiment.
  • FIG. FIG. 10 is a diagram showing an example of a procedure for selecting an external memory module in the first embodiment.
  • 2 is a diagram illustrating a hardware configuration example of a circuit design support device according to Embodiment 1.
  • FIG. *** Explanation of configuration *** FIG. 1 shows a functional configuration example of a high-level synthesis system 100 according to the first embodiment.
  • a functional configuration of the high-level synthesis system 100 according to Embodiment 1 will be described with reference to FIG.
  • the configuration of the high-level synthesis system 100 may be different from that shown in FIG.
  • the high-level synthesis device 110 and the circuit design support device 200 may be configured as a single device.
  • the high-level synthesis system 100 is a system that performs high-level synthesis for circuit design of a semiconductor integrated circuit or the like.
  • a design target circuit for which high-level synthesis is performed in the high-level synthesis system 100 is referred to as a design target circuit.
  • High-level synthesis generates an RTL description that describes the operation of the circuit under design at the register transfer level (RTL) from the operation description that describes the operation of the circuit under design using a high-level language such as C language, C ++ language, or SystemC language. Technology.
  • the high-level synthesis system 100 includes a high-level synthesis device 110 that performs high-level synthesis and a circuit design support device 200 that supports the execution of high-level synthesis.
  • the high-level synthesis device 110 includes a CDFG generation unit 111, a scheduling unit 112, a binding unit 113, an RTL description generation unit 114, and a high-level synthesis device storage unit 120.
  • the CDFG generation unit 111 generates CDFG data 122 including CDFG (Control Data Flow Graph) from the operation description file 121 including the operation description of the circuit to be designed.
  • CDFG represents a calculation order of a plurality of calculations performed by the circuit to be designed.
  • CDFG includes a control flow graph (CFG) and a data flow graph (DFG).
  • the scheduling unit 112 generates scheduling data 123 based on the CDFG data 122.
  • the scheduling data 123 is data indicating an execution time zone of each calculation included in the CDFG.
  • a method for generating the scheduling data 123 may be the same as the scheduling method in the conventional high-level synthesis.
  • the binding unit 113 generates binding data 124 based on the CDFG data 122 and the scheduling data 123.
  • the binding data 124 describes the functional module of the circuit to be designed.
  • a plurality of calculation modules (calculation resources) assigned to each calculation included in the CDFG are described as functional modules.
  • the calculation module includes a calculator and a register.
  • the binding data 124 describes a plurality of memory modules that are modules of storage elements used by the arithmetic module. Details of the binding data 124 will be described later.
  • the method for generating the binding data 124 may be the same as the binding method in the conventional high-level synthesis.
  • the RTL description generation unit 114 generates an RTL description file 125 indicating the RTL description based on the CDFG data 122, the scheduling data 123, and the binding data 124.
  • the method for generating the RTL description file 125 may be the same as the RTL description generation method in the conventional high-level synthesis.
  • the high-level synthesis device storage unit 120 stores data used, generated, or input / output by the high-level synthesis device 110. Specifically, the high-level synthesis device storage unit 120 stores an operation description file 121, CDFG data 122, scheduling data 123, binding data 124, and an RTL description file 125.
  • FIG. 2 shows a functional configuration example of the circuit design support apparatus 200 according to the first embodiment.
  • a functional configuration of the circuit design support apparatus 200 according to the first embodiment will be described with reference to FIG.
  • the functional configuration of the circuit design support apparatus 200 may be different from that shown in FIG.
  • the circuit design support apparatus 200 includes a constraint information input reception unit 210, a binding data acquisition unit 220, an external memory determination unit 230, an external memory selection unit 240, a CDFG data acquisition unit 280, and an external memory interface generation unit 250.
  • the support data providing unit 260 and the support device storage unit 270 are provided.
  • the constraint information input receiving unit 210 receives constraint information 271 in which constraint conditions and the like related to the design target circuit are defined.
  • the user who uses the circuit design support apparatus 200 inputs the constraint information 271.
  • the binding data acquisition unit 220 acquires the binding data 124 from the high-level synthesis device 110.
  • the process performed by the binding data acquisition unit 220 corresponds to an example of the binding data acquisition process.
  • the external memory determination unit 230 analyzes the read cycle time and the write cycle time of the memory module from the constraint information 271 and the binding data 124. Then, the external memory determination unit 230 extracts external memory module candidates that are candidates for an external memory module that is a memory module to be mounted as an external memory outside the design target circuit. Then, the external memory determination unit 230 generates an external memory determination result 272 indicating the extracted external memory module candidate.
  • the external memory selection unit 240 searches for a memory architecture that satisfies the constraint conditions from the constraint information 271, the binding data 124, and the external memory determination result 272. That is, the external memory selection unit 240 selects a memory module that satisfies the constraint condition from the external memory module candidates as an external memory module. More specifically, the external memory selection unit 240 selects an external memory module from the external memory module candidates based on at least one of a circuit scale constraint condition and a latency constraint condition. Then, the external memory selection unit 240 generates an external memory selection result 273 indicating the selected external memory module.
  • the external memory determination unit 230 and the external memory selection unit 240 constitute a memory module selection unit 2000.
  • the processing performed by the external memory determination unit 230 and the external memory selection unit 240 corresponds to an example of the memory module selection processing.
  • the CDFG data acquisition unit 280 acquires the CDFG data 122 from the high-level synthesis apparatus 110.
  • the external memory interface generation unit 250 generates a description of a communication interface module used for the circuit to be designed to communicate with the external memory from the external memory selection result 273. Then, the external memory interface generation unit 250 generates the converted CDFG data 274 by replacing the description of the memory module corresponding to the external memory module in the CDFG data 122 with the description of the module of the communication interface.
  • the support data providing unit 260 provides the converted CDFG data 274 to the high-level synthesis apparatus 110.
  • the scheduling unit 112 of the high-level synthesis apparatus 110 regenerates the scheduling data 123 based on the provided converted CDFG data 274. Then, the binding unit 113 and the RTL description generation unit 114 regenerate the binding data 124 and the RTL description file 125 based on the regenerated scheduling data 123 and the converted CDFG data 274.
  • FIG. 3 is a flowchart of a circuit design support process executed by the circuit design support apparatus 200 according to the first embodiment.
  • a circuit design support process executed by the circuit design support apparatus 200 according to the first embodiment will be described with reference to FIG.
  • the circuit design support processing may be realized by a processing procedure different from that in FIG. 3 corresponds to an example of the circuit design support method and the circuit design support program of the present application.
  • the constraint information input receiving unit 210 receives the constraint information 271 necessary for operating the circuit design support device 200 from the user, and stores the acquired (received) constraint information 271 in the support device storage unit 270.
  • the following five values are defined in the constraint information.
  • E External memory configuration information Info in external memory selection and external memory interface generation
  • the cycle time threshold Tth in the external memory determination is a threshold serving as a reference for extracting external memory module candidates.
  • the cycle time threshold value Tth in the external memory determination is used in S132 and S134.
  • the cycle time threshold Tth in the external memory determination is also simply referred to as the cycle time threshold Tth.
  • the latency constraint Lmax in external memory selection is a constraint condition regarding latency that is referred to when an external memory module is selected from external memory module candidates.
  • the external memory selection unit 240 searches for a memory architecture that satisfies the latency constraint Lmax in external memory selection.
  • the latency constraint Lmax in the external memory selection is used in S140.
  • the latency constraint Lmax in external memory selection is also simply referred to as the latency constraint Lmax.
  • circuit scale constraint Smax in external memory selection is a constraint condition regarding the circuit scale that is referred to when an external memory module is selected from external memory module candidates.
  • the external memory selection unit 240 searches for a memory architecture that satisfies the circuit scale constraint Smax in external memory selection.
  • the circuit scale constraint Smax in external memory selection is used in S140.
  • the circuit scale constraint Smax in external memory selection is also simply referred to as a circuit scale constraint Smax.
  • optimization policy information P in external memory selection is an optimization guideline that is referred to when an external memory module is selected from external memory module candidates. Circuit size optimization and latency optimization are selected as optimization policy information P in external memory selection.
  • the optimization policy information P in the external memory selection is circuit scale optimization
  • the external memory selection unit 240 satisfies the latency constraint Lmax in the external memory selection and the circuit scale constraint Smax in the external memory selection, and the circuit scale is minimum.
  • the external memory selection unit 240 satisfies the latency constraint Lmax in the external memory selection and the circuit size constraint Smax in the external memory selection, and minimizes the latency. Explore the memory architecture.
  • the optimization policy information P in the external memory selection is used in S140.
  • the optimization policy information P in the external memory selection is also simply referred to as optimization policy information P.
  • the external memory configuration information Info in external memory selection and external memory interface generation is information indicating what kind of hardware the external memory module selected in S135 is mounted on.
  • the external memory configuration information Info in external memory selection and external memory interface generation indicates the type of external memory (DRAM, DDR-SDRAM, QDR-SDRAM, etc.) and the like.
  • External memory configuration information Info in external memory selection and external memory interface generation is used in S140 and S160.
  • the external memory configuration information Info in external memory selection and external memory interface generation is also simply referred to as external memory configuration information Info.
  • the constraint information input receiving unit 210 acquires constraint information 271 as illustrated in FIG. 4. After S110, the process proceeds to S120.
  • the binding data acquisition unit 220 of the circuit design support device 200 acquires (receives) the binding data 124 generated by the binding unit 113 of the high-level synthesis device 110 from the high-level synthesis device 110. After S120, the process proceeds to S130.
  • FIG. 5 is a diagram illustrating an example of the binding data 124 according to the first embodiment. The first embodiment will be described based on the binding data shown in FIG.
  • the binding data describes a plurality of functional modules included in the circuit to be designed.
  • a square described as “func” in FIG. 5 is an arithmetic module of the circuit to be designed.
  • the arithmetic module represents an arithmetic unit and a register that perform arithmetic operations.
  • a rectangle described as mem in FIG. 5 is a memory module of the circuit to be designed.
  • the memory module represents a storage element as described above.
  • the arrows in FIG. 5 represent the data flow.
  • the binding data indicates which memory module each arithmetic module performs read access (which memory reads data) and which memory module performs write access (which memory stores the operation result). .
  • the binding data includes read access timing (cycle time) generated in each memory module, a calculation block (read access calculation block) that performs read access, and a write access timing (cycle). Time) and a calculation block (referred to as a write access calculation block) for performing write access is described.
  • the binding data acquisition unit 220 acquires the binding data 124 of FIG. Returning to FIG. 3, the description will be continued from S130.
  • the external memory determination unit 230 selects an arbitrary memory module from the plurality of memory modules described in the binding data 124.
  • the memory module selected in S130 is referred to as a determination target memory module. After S130, the process proceeds to S131.
  • the external memory determination unit 230 analyzes the life cycle of the determination target memory module, and acquires the following two cycle times. (1) Cycle time when write access is completed for the determination target memory module (2) Cycle time when last read access to write data is started for the determination target memory module Next, the external memory determination unit 230 , “(1) cycle time ⁇ (2) cycle time” is calculated, and the write data holding cycle time Ts of the determination target memory module is calculated. In the write data holding cycle time Ts, as shown in the above equation, after the write access to the memory module is completed, the last read access to the write data written in the memory module by the write access starts. It is time until. After S131, the process proceeds to S132.
  • the external memory determination unit 230 compares the write data holding cycle time Ts of the determination target memory module obtained in S131 with the cycle time threshold Tth in the external memory determination in the constraint information 271, and determines the determination target memory module. It is determined whether or not to be an external memory module candidate.
  • Ts ⁇ Tth the external memory determination unit 230 determines that the determination target memory module is an external memory module candidate (YES), and the process proceeds to S135.
  • Ts ⁇ Tth the external memory determination unit 230 does not set the determination target memory module as an external memory module candidate (NO), and the process proceeds to S133.
  • FIG. 6 shows an example of a life cycle analysis result of each memory module in the first embodiment.
  • FIG. 7 shows an example of an external memory module candidate extraction determination result based on the lifetime cycle analysis result of each memory module in the first embodiment. Specific examples of S131 and S132 will be described with reference to FIGS.
  • FIG. 6 shows the result of analyzing the write access cycle time and the read access cycle time for each memory module in the binding data 124. From this analysis result, the external memory determination unit 230 acquires, for each memory module, the cycle time when the write access is completed and the cycle time when the last read access to the write data is started.
  • FIG. 7 shows the cycle time when the write access is completed and the cycle time when the last read access to the write data is started for each memory module acquired by the external memory determination unit 230 from FIG.
  • the external memory determination unit 230 calculates a write data holding cycle time Ts for each memory module, and determines whether each memory module is an external memory module candidate by comparing Ts and Tth.
  • Tth is 1500.
  • Ts of mem1 is 9000, and Ts of mem4 is 2200.
  • mem1 becomes the design target circuit as the internal memory. It does not have to be placed inside. For this reason, mem1 is extracted as an external memory module candidate. Based on the same idea, mem4 does not have to be placed in the design target circuit as an internal memory, and is extracted as an external memory module candidate. However, since mem1 is also used by func2, it is necessary to separately mount a small-capacity internal memory. This will be described later. Returning to FIG. 3, the description will be continued from S133.
  • the external memory determination unit 230 determines that “data necessary for starting the operation of the arithmetic module that requires the determination target memory module is The criterion of “whether the cycle time is within the threshold Tth” is applied. That is, the external memory determination unit 230 determines whether or not to determine the determination target memory module as an external memory module candidate based on the determination criterion.
  • the external memory determination unit 230 analyzes the determination target memory module and acquires the following two pieces of information.
  • Cycle time Tg required until the data of (1) above is prepared After obtaining the above two pieces of information, the process proceeds to S134.
  • the external memory determination unit 230 compares the cycle time Tg obtained in S133 with the cycle time threshold Tth at the time of external memory determination in the constraint information 271, and extracts a determination target memory module as an external memory module candidate. It is determined whether or not.
  • Tg ⁇ Tth the determination target memory module is determined as an external memory module candidate (YES), and the process proceeds to S135.
  • Tg ⁇ Tth the determination target memory module is determined as a candidate for the internal memory module to be mounted as the internal memory (NO), and the process proceeds to S136.
  • FIG. 8 is a diagram illustrating an example of a memory module that is a target of external memory determination in S133.
  • memory modules other than mem1 and mem4 are memory modules to be subjected to external memory determination in S133.
  • FIG. 9 shows an example of determination of external memory module candidates targeting mem5.
  • FIG. 10 shows an example of determination of external memory module candidates targeting mem3. Specific examples of S131 and S132 will be described with reference to FIG. 8, FIG. 9, and FIG.
  • mem1 and mem4 have already been determined as external memory module candidates. Therefore, as shown in FIG. 8, mem2, mem3, mem5, and mem6 are the targets of external memory determination in S133 and S134.
  • FIG. 9 shows the result of determining whether or not mem5 is an external memory module candidate.
  • the external memory determination unit 230 calculates at which timing mem5 [0] and mem5 [N] are aligned.
  • the cycle time Tg from when func 5 starts to operate until func 6 can start operating is 2000. Therefore, “Tg ⁇ Tth” and mem5 is determined as an external memory module candidate.
  • mem5 becomes the design target circuit as the internal memory. It does not have to be placed inside. Therefore, mem5 is extracted as an external memory module candidate.
  • FIG. 10 shows the result of determining whether or not mem3 is an external memory module candidate.
  • the external memory determination unit 230 extracts read access to mem3.
  • the external memory determination unit 230 analyzes which element of mem3 is accessed in the first iteration of the loop.
  • mem3 [0], mem3 [1], and mem3 [2] from mem3 [i], mem3 [i + 1], and mem3 [i + 2]. And are being accessed. That is, if the data of mem3 [0], mem3 [1], and mem3 [2] are aligned, func5 can start operation.
  • the external memory determination unit 230 extracts write access to mem3. Then, the external memory determination unit 230 calculates at which timing mem3 [0], mem3 [1], and mem3 [2] are aligned.
  • func5 cannot start operation until a write access to mem3 [2] occurs.
  • the cycle time Tg from when func3 starts to operate until func5 can start operating is 100. Therefore, “Tg ⁇ Tth” and mem3 is determined to be realized by the internal memory.
  • the external memory determination unit 230 performs the write access timing described in the binding data 124 and the write access calculation block (write access calculation block) and the read access timing and read access for each memory module. Analyzes the calculation block (read access calculation block). Further, in the external memory determination unit 230, a write access calculation block (for example, func5 in FIG. 9) that performs write access to the operation data used for calculation by the read access calculation block (for example, func6 in FIG. 9) starts operation. After that, a read access waiting time (for example, cycle time Tg in FIG. 9), which is a time from when the read access calculation block (for example, func 6 in FIG. 9) can start the read access of the operation target data, is calculated. Then, the external memory determination unit 230 extracts a memory module (for example, mem5 in FIG. 9) whose calculated read access waiting time is equal to or greater than a threshold value as an external memory module candidate.
  • a read access waiting time for example, cycle time Tg in FIG. 9
  • the external memory determination unit 230 checks whether or not all the memory modules in the binding data 124 have been analyzed. If there is a memory module that has not been analyzed (NO), the process returns to S130. If all the memory modules have been analyzed (YES), the process proceeds to S140.
  • the external memory selection unit 240 selects an external memory module from the external memory module candidates in the external memory determination result 272 based on the constraint information 271. After S140, the process proceeds to S150.
  • FIG. 11 shows an example of the external memory determination result 272 in the first embodiment.
  • FIG. 12 shows an example of a memory architecture search result in the first embodiment. A specific example of S140 will be described with reference to FIGS.
  • FIG. 11 shows a list of memory modules determined as external memory module candidates as a result of executing external memory module determination on the memory modules described in the binding data 124 by the external memory determination unit 230.
  • mem1, mem4, mem5, and mem6 are external memory module candidates. Therefore, the external memory selection unit 240 searches which memory module is the external memory module from mem1, mem4, mem5, and mem6.
  • the memory inside the LSI an external memory
  • the memory can be omitted from the LSI, and the circuit scale of the LSI is reduced.
  • the cycle time required to acquire data from the external memory is longer than that when acquiring data from the memory inside the LSI.
  • the conversion of LSI internal memory to external memory involves a tradeoff between circuit scale and processing latency. Therefore, it is not always an optimal solution to realize all the memories determined as external memory module candidates shown in FIG. 11 as external memories. Therefore, it is necessary to search which memory module should be realized as the external memory among the memory modules determined as the external memory module candidates shown in FIG.
  • the external memory selection unit 240 generates all combinations of a plurality of external memory module candidates. Then, for each combination of external memory module candidates, the circuit scale and latency when the external memory module candidates included in the combination are mounted as external memory are calculated based on the binding data 124. Furthermore, the external memory selection unit 240 selects any combination from a plurality of combinations of external memory module candidates based on the calculated circuit scale and latency, and selects external memory module candidates included in the selected combination. Select as external memory module. More specifically, the external memory selection unit 240 determines that the calculated circuit scale matches the circuit scale constraint condition from among a plurality of combinations of external memory module candidates, and the calculated latency becomes the latency constraint condition. Select a matching combination.
  • the external memory selection unit 240 determines that the calculated circuit scale is the smallest. Select a combination. Alternatively, the external memory selection unit 240 may select a combination having the minimum calculated latency.
  • FIG. 12 shows the circuit scale and latency for each combination of external memory module candidates calculated by the external memory selection unit 240.
  • the circuit scale of the entire LSI in FIG. 12 is a circuit scale that combines the circuit scale of the circuit to be designed and the circuit scale of the peripheral circuit when an arbitrary memory module is realized as an external memory from among a plurality of memory modules. is there.
  • the processing latency of the entire LSI in FIG. 12 is processing latency generated in a circuit to be designed when an arbitrary memory module is realized as an external memory from among a plurality of memory modules.
  • circuit scale of the entire LSI is calculated as follows.
  • Circuit scale of the entire LSI Circuit scale of the circuit to be designed when all memory modules are internal memories-Circuit scale of a memory module to be external memory + Circuit scale of a communication interface with an external memory
  • the external memory selection unit 240 is These three circuit scales are calculated, and the above calculation using the three circuit scales is performed.
  • the first “circuit scale of the design target circuit when all the memory modules are internal memories” is the design when all the memory modules described in the binding data 124 are mounted as internal memories in the design target circuit. This is the circuit scale of the target circuit.
  • the second “circuit scale of the memory module to be converted into an external memory” is the circuit scale of the external memory when the external memory module candidate included in the combination is mounted as the external memory.
  • the third “circuit scale of the communication interface with the external memory” is the circuit of the communication interface used for the design target circuit to communicate with the external memory when the external memory module candidate included in the combination is mounted as the external memory. It is a scale.
  • the external memory selection unit 240 calculates these two processing latencies. The above calculation using two processing latencies is performed.
  • the first “processing latency of the design target circuit when all the memory modules are internal memories” occurs when all the memory modules described in the binding data are mounted as internal memories in the design target circuit. This is latency and corresponds to the first latency.
  • the second “processing latency when acquiring data from the external memory” is that the circuit to be designed acquires data from the external memory when the external memory module candidate included in the combination is mounted as the external memory. This is the latency required for the above, and corresponds to the second latency.
  • the external memory selection unit 240 calculates a cycle time necessary for acquiring data from the external memory based on the external memory configuration information Info. In the case of the example of FIG. 4, since the external memory is DDR_SDRAM, a cycle time necessary for acquiring data from the external memory is calculated according to this.
  • the external memory selection unit 240 selects a combination that satisfies the condition from the results of FIG. 12 based on the latency constraint Lmax, the circuit scale constraint Smax, and the optimization policy information P in the constraint information 271.
  • a memory architecture (combination of external memory modules) that satisfies the latency constraint Lmax and the circuit scale constraint Smax and has the smallest circuit scale. Select.
  • the external memory selection unit 240 generates an external memory selection result 273 in which the selection result is described. Returning to FIG. 3, the description will be continued from S150.
  • the CDFG data acquisition unit 280 of the circuit design support device 200 acquires (receives) the CDFG data 122 generated by the CDFG generation unit 111 of the high-level synthesis device 110 from the high-level synthesis device 110. After S150, the process proceeds to S160.
  • the external memory interface generation unit 250 of the circuit design support device 200 automatically generates an external memory interface based on the external memory selection result 273.
  • the external memory interface generation unit 250 converts the description of the memory module selected as the external memory module in the CDFG data 122 into the automatically generated description of the external interface, and generates the converted CDFG data 274.
  • the external memory interface generation unit 250 generates the converted CDFG data 274 using an interface generation device disclosed in Patent Document 1.
  • the support data providing unit 260 provides (transmits) the converted CDFG data 274 to the high-level synthesis apparatus 110. Then, the scheduling unit 112, the binding unit 113, and the RTL description generation unit 114 of the high-level synthesis apparatus 110 generate the scheduling data 123, the binding data 124, and the RTL description file 125 based on the provided converted CDFG data 274. .
  • the circuit design support apparatus extracts a memory module to be mounted as an external memory from the memory modules that are functional modules of the storage element (memory) in the operation description.
  • a circuit necessary for mounting the memory module as an external memory can be automatically generated by high-level synthesis.
  • a circuit design support device that performs high-level synthesis (behavior synthesis) processing with an operation description as an input and outputs an RTL description, From the binding result, which is the result of the high-level synthesis, the write data holding cycle time of each memory module and the cycle time until the data necessary to start each function that requires each memory module are calculated.
  • An external memory determination unit that determines whether each memory module should be an external memory;
  • An external memory selection unit that searches for a memory architecture that satisfies the constraint conditions from among the memory modules that are candidates for the external memory module,
  • the circuit design support apparatus including the external memory interface generation unit that automatically generates the communication interface with the external memory from the selection result of the external memory selection unit has been described.
  • the circuit design support apparatus 200 is a computer.
  • the circuit design support apparatus 200 includes hardware such as a processor 901, an auxiliary storage device 902, a memory 903, a communication device 904, an input interface 905, and a display interface 906.
  • the processor 901 is connected to other hardware via the signal line 910, and controls these other hardware.
  • the input interface 905 is connected to the input device 907.
  • the display interface 906 is connected to the display 908.
  • the processor 901 is an IC (Integrated Circuit) that performs processing.
  • the processor 901 is, for example, a CPU (Central Processing Unit), a DSP (Digital Signal Processor), or a GPU (Graphics Processing Unit).
  • the auxiliary storage device 902 is, for example, a ROM (Read Only Memory), a flash memory, or an HDD (Hard Disk Drive).
  • the memory 903 is, for example, a RAM (Random Access Memory).
  • the communication device 904 includes a receiver 9041 that receives data and a transmitter 9042 that transmits data.
  • the communication device 904 is, for example, a communication chip or a NIC (Network Interface Card).
  • the input interface 905 is a port to which the cable 911 of the input device 907 is connected.
  • the input interface 905 is, for example, a USB (Universal Serial Bus) terminal.
  • the display interface 906 is a port to which the cable 912 of the display 908 is connected.
  • the display interface 906 is, for example, a USB terminal or an HDMI (registered trademark) (High Definition Multimedia Interface) terminal.
  • the input device 907 is, for example, a mouse, a keyboard, or a touch panel.
  • the display 908 is, for example, an LCD (Liquid Crystal Display).
  • the auxiliary storage device 902 includes the constraint information input reception unit 210, the binding data acquisition unit 220, the external memory determination unit 230, the external memory selection unit 240, the external memory interface generation unit 250, the support data provision unit 260, and the CDFG shown in FIG.
  • a program for realizing the function of the data acquisition unit 280 (hereinafter collectively referred to as “part”) is stored. This program is loaded into the memory 903, read into the processor 901, and executed by the processor 901. Further, the auxiliary storage device 902 also stores an OS (Operating System). Then, at least a part of the OS is loaded into the memory 903, and the processor 901 executes a program that realizes the function of “unit” while executing the OS. Although one processor 901 is illustrated in FIG.
  • the circuit design support apparatus 200 may include a plurality of processors 901.
  • a plurality of processors 901 may execute a program for realizing the function of “unit” in cooperation with each other.
  • information, data, signal values, and variable values indicating the processing results of “unit” are stored in the memory 903, the auxiliary storage device 902, or a register or cache memory in the processor 901.
  • circuitry may be provided as “circuitry”. Further, “part” may be read as “circuit”, “process”, “procedure”, or “processing”. “Circuit” and “Circuitry” include not only the processor 901 but also other types of processing circuits such as a logic IC or GA (Gate Array) or ASIC (Application Specific Integrated Circuit) or FPGA (Field-Programmable Gate Array). It is a concept to include.
  • GA Gate Array
  • ASIC Application Specific Integrated Circuit
  • FPGA Field-Programmable Gate Array
  • 100 high-level synthesis system 110 high-level synthesis device, 111 CDFG generation unit, 112 scheduling unit, 113 binding unit, 114 RTL description generation unit, 120 high-level synthesis device storage unit, 121 behavior description file, 122 CDFG data, 123 scheduling data, 124 Binding data, 125 RTL description file, 200 Circuit design support device, 210 Constraint information input reception unit, 220 Binding data acquisition unit, 230 External memory determination unit, 240 External memory selection unit, 250 External memory interface generation unit, 260 Support data provision Part, 270 support device storage part, 271 constraint information, 272 external memory determination result, 273 external memory selection result, 274 CDFG data after conversion, 28 CDFG data acquisition unit, 2000 memory module selection unit.

Landscapes

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

Abstract

 バインディングデータ取得部(220)は、設計対象回路の機能モジュールとして複数のメモリモジュールが記述されるバインディングデータ(124)を取得する。メモリモジュール選択部(2000)は、設計対象回路に関する制約条件に基づいて、バインディングデータ(124)に記述される複数のメモリモジュールの中から、設計対象回路外の外部メモリとして実装される外部メモリモジュールを選択する。

Description

回路設計支援装置及び回路設計支援方法及び回路設計支援プログラム
 本発明は、回路設計を支援する技術に関する。
 従来より、半導体集積回路(以下、LSI(Large Scale Integration)ともいう)の設計に関して、ハードウェア記述言語を用いて、レジスタ(フリップフロップ)間の組み合わせ回路の動作を記述したRTL(Register Transfer Level)を生成する技術が存在する。
 近年では集積回路の回路規模が増大しており、RTLの生成に多大な時間を要するようになっていた。
 そこで、RTLよりも抽象度が高いC言語、C++言語、SystemC言語などの高級言語を用いて、自動的にRTLを生成する技術が提唱されている。
 そして、高級言語からRTLを生成するツールが高位合成ツールとして市販されている。
 動作記述では、動作の仕様のみが記述され、実装についての仕様は記述されない。
 しかし、高位合成における一般的な制約から、動作記述は、記述方法によっては、動作記述の結果として得られる実装に影響を与える場合がある。
 例えば、動作記述中の配列変数は、高位合成において、一般的にメモリやレジスタなどの記憶素子の機能モジュール(以下、記憶素子の機能モジュールをメモリモジュールという)へ割り当てられる。
 配列変数は大きなサイズで記述されることが多く、このため、高位合成においても配列変数は大きなサイズのメモリモジュールへ割り当てられる。
 高位合成における大きなサイズのメモリモジュールへの割り当てによって、サイズの大きなメモリ(ハードウェア)が割り当てられ、設計対象のLSIの面積が増大する可能性がある。
 通常、このような大きなメモリは、設計対象のLSIの外部にある外部メモリにて実現する。
 しかし、今の高位合成ツールでは、特定のメモリモジュールを、自動的に外部メモリへ割り当てることができない。
 このため、特定のメモリモジュールを外部メモリで実現するアーキテクチャとなるようにするためには、設計者自身が動作記述を修正し、LSIと外部メモリとの通信インターフェイスを記述しなければならない。
 例えば特許文献1では、設計者が作成した動作記述に、設計するハードウェアの構成情報(外部メモリの有無)、マッピング情報(動作記述中の配列変数に対する、外部メモリへの割り当て指定)を与えることで、設計者が動作記述を修正せずとも、自動的にLSIと外部メモリとの通信インターフェイスを自動生成する方法が開示されている。
特開2008-204341号公報
 しかしながら、特許文献1では、動作記述中の配列変数をどのメモリに割り当てるかについては、設計者自身が選択する必要がある。
 つまり、特許文献1の方法では、外部メモリを割り当てるメモリモジュールを設計者自身が選択しなければならず、効率的でないという課題がある。
 本発明は上記のような課題を解決することを主な目的としており、回路設計手順を効率化できる構成を得ることを主な目的とする。
 本発明に係る回路設計支援装置は、
 設計対象回路の機能モジュールとして複数のメモリモジュールが記述されるバインディングデータを取得するバインディングデータ取得部と、
 前記設計対象回路に関する制約条件に基づいて、前記バインディングデータに記述される前記複数のメモリモジュールの中から、前記設計対象回路外の外部メモリとして実装すべき外部メモリモジュールを選択するメモリモジュール選択部とを有する。
 本発明によれば、回路設計支援装置が、外部メモリとして実装すべきメモリモジュールを選択するため、設計者が外部メモリとして実装すべきメモリモジュールを検討する必要がなく、回路設計手順を効率化できる。
実施の形態1における高位合成システムの機能構成例を示す図である。 実施の形態1における回路設計支援装置の機能構成例を示す図である。 実施の形態1における回路設計支援装置の動作例を示すフローチャート図。 実施の形態1における制約情報の例を示す図である。 実施の形態1におけるバインディングデータの例を示す図である。 実施の形態1におけるライトアクセスタイミングとリードアクセスタイミングの例を示す図である。 実施の形態1におけるライトデータ保持サイクル時間に基づく外部メモリモジュール候補の判定例を示す図である。 実施の形態1におけるリードアクセス待ち時間に基づく外部メモリモジュール候補の判定処理の対象となるメモリモジュールの例を示す図である。 実施の形態1におけるリードアクセス待ち時間に基づく外部メモリモジュール候補の判定例を示す図である。 実施の形態1におけるリードアクセス待ち時間に基づく外部メモリモジュール候補の判定例を示す図である。 実施の形態1における外部メモリモジュール候補の例を示す図である。 実施の形態1における外部メモリモジュールの選択手順の例を示す図である。 実施の形態1における回路設計支援装置のハードウェア構成例を示す図である。
 実施の形態1.
***構成の説明***
 図1は、実施の形態1における高位合成システム100の機能構成例を示す。
 実施の形態1における高位合成システム100の機能構成を、図1に基づいて説明する。
 但し、高位合成システム100の構成は図1と異なる構成であっても構わない。
 例えば、高位合成装置110および回路設計支援装置200を1台の装置で構成しても構わない。
 高位合成システム100は、半導体集積回路等の回路設計のために、高位合成を行うシステムである。
 以下では、高位合成システム100において高位合成が行われる、設計対象の回路を設計対象回路という。
 高位合成は、C言語、C++言語、SystemC言語などの高級言語を用いた設計対象回路の動作を記述した動作記述から、レジスタ転送レベル(RTL)で設計対象回路の動作を記述したRTL記述を生成する技術である。
 高位合成システム100は、高位合成を実行する高位合成装置110と、高位合成の実行を支援する回路設計支援装置200とを備える。
 高位合成装置110は、CDFG生成部111と、スケジューリング部112と、バインディング部113と、RTL記述生成部114と、高位合成装置記憶部120とを備える。
  CDFG生成部111は、設計対象回路の動作記述を含む動作記述ファイル121からCDFG(Control Data Flow Graph)を含むCDFGデータ122を生成する。
 CDFGは設計対象回路が行う複数の演算の演算順序を表す。
 CDFGは、コントロールフローグラフ(CFG)とデータフローグラフ(DFG)とを含む。
 スケジューリング部112は、CDFGデータ122に基づいて、スケジューリングデータ123を生成する。
 スケジューリングデータ123は、CDFGに含まれる各演算の実行時間帯を示すデータである。
 スケジューリングデータ123を生成する方法は、従来の高位合成におけるスケジューリング方法と同様でよい。
 バインディング部113は、CDFGデータ122とスケジューリングデータ123とに基づいて、バインディングデータ124を生成する。
 バインディングデータ124には、設計対象回路の機能モジュールが記述される。
 バインディングデータ124には、機能モジュールとして、CDFGに含まれる各演算に割り当てられる演算モジュール(演算リソース)が複数記述される。
 演算モジュールは、演算器およびレジスタなどである。
 また、バインディングデータ124には、演算モジュールが利用する記憶素子のモジュールであるメモリモジュールが複数記述される。
 バインディングデータ124の詳細は後述する。
 なお、バインディングデータ124を生成する方法は、従来の高位合成におけるバインディング方法と同様でよい。
 RTL記述生成部114は、CDFGデータ122とスケジューリングデータ123とバインディングデータ124とに基づいて、RTL記述を示すRTL記述ファイル125を生成する。
 RTL記述ファイル125を生成する方法は、従来の高位合成におけるRTL記述生成方法と同様でよい。
 高位合成装置記憶部120は、高位合成装置110が使用、生成または入出力するデータを記憶する。
 具体的には、高位合成装置記憶部120は、動作記述ファイル121、CDFGデータ122、スケジューリングデータ123、バインディングデータ124およびRTL記述ファイル125を記憶する。
 図2は、実施の形態1における回路設計支援装置200の機能構成例を示す。
 実施の形態1における回路設計支援装置200の機能構成を、図2に基づいて説明する。
 但し、回路設計支援装置200の機能構成は図2と異なる機能構成であっても構わない。
 回路設計支援装置200は、制約情報入力受付部210と、バインディングデータ取得部220と、外部メモリ判定部230と、外部メモリ選択部240と、CDFGデータ取得部280と、外部メモリインターフェイス生成部250と、支援データ提供部260と、支援装置記憶部270とを備える。
 制約情報入力受付部210は、設計対象回路に関する制約条件等が定義される制約情報271を受け付ける。
 制約情報271の入力は、回路設計支援装置200を使用するユーザーが実施する。
 バインディングデータ取得部220は、高位合成装置110からバインディングデータ124を取得する。
 なお、バインディングデータ取得部220により行われる処理が、バインディングデータ取得処理の例に相当する。
 外部メモリ判定部230は、制約情報271と、バインディングデータ124より、メモリモジュールのリードサイクル時間及びライトサイクル時間を解析する。
 そして、外部メモリ判定部230は、設計対象回路外の外部メモリとして実装すべきメモリモジュールである外部メモリモジュールの候補となる外部メモリモジュール候補を抽出する。
 そして、外部メモリ判定部230は、抽出した外部メモリモジュール候補が示される外部メモリ判定結果272を生成する。
 外部メモリ選択部240は、制約情報271と、バインディングデータ124と、外部メモリ判定結果272より、制約条件を満たすメモリアーキテクチャを探索する。
 すなわち、外部メモリ選択部240は、外部メモリモジュール候補の中から、制約条件を満たすメモリモジュールを外部メモリモジュールとして選択する。
 より具体的には、外部メモリ選択部240は、回路規模の制約条件及びレイテンシの制約条件の少なくともいずれかに基づいて、外部メモリモジュール候補の中から、外部メモリモジュールを選択する。
 そして、外部メモリ選択部240は、選択した外部メモリモジュールが示される外部メモリ選択結果273を生成する。
 外部メモリ判定部230と外部メモリ選択部240は、メモリモジュール選択部2000を構成する。
 また、外部メモリ判定部230と外部メモリ選択部240により行われる処理が、メモリモジュール選択処理の例に相当する。
 CDFGデータ取得部280は、高位合成装置110からCDFGデータ122を取得する。
 外部メモリインターフェイス生成部250は、外部メモリ選択結果273より、設計対象回路が外部メモリと通信するために用いる通信インターフェイスのモジュールの記述を生成する。
 そして、外部メモリインターフェイス生成部250は、CDFGデータ122内の外部メモリモジュールに対応するメモリモジュールの記述を、通信インターフェイスのモジュールの記述に置き換えることによって、変換後のCDFGデータ274を生成する。
 支援データ提供部260は、変換後のCDFGデータ274を高位合成装置110に提供する。
 高位合成装置110のスケジューリング部112は、提供された変換後のCDFGデータ274に基づいて、スケジューリングデータ123を再生成する。
 そして、バインディング部113およびRTL記述生成部114は、再生成されたスケジューリングデータ123と変換後のCDFGデータ274とに基づいて、バインディングデータ124およびRTL記述ファイル125を再生成する。
***動作の説明***
 図3は、実施の形態1における回路設計支援装置200が実行する回路設計支援処理のフローチャートである。
 実施の形態1における回路設計支援装置200が実行する回路設計支援処理を、図3に基づいて説明する。
 但し、回路設計支援処理は図3と異なる処理手順により実現されてもよい。
 なお、図3に示す回路設計支援処理が、本願の回路設計支援方法及び回路設計支援プログラムの例に相当する。
 S110において、制約情報入力受付部210は、回路設計支援装置200を動作させるために必要な制約情報271をユーザーから受け付け、取得(受信)した制約情報271を支援装置記憶部270に格納する。
 制約情報には、以下の5つ値が定義されている。
(a)外部メモリ判定におけるサイクル時間閾値Tth
(b)外部メモリ選択におけるレイテンシ制約Lmax
(c)外部メモリ選択における回路規模制約Smax
(d)外部メモリ選択における最適化方針情報P
(e)外部メモリ選択および外部メモリインターフェイス生成における外部メモリ構成情報Minfo
 まず、(a)外部メモリ判定におけるサイクル時間閾値Tthについて説明する。
 外部メモリ判定におけるサイクル時間閾値Tthは、外部メモリモジュール候補を抽出するための基準となる閾値である。
 外部メモリ判定におけるサイクル時間閾値Tthは、S132とS134で使用される。
 以下、外部メモリ判定におけるサイクル時間閾値Tthは、単にサイクル時間閾値Tthともいう。
 次に、(b)外部メモリ選択におけるレイテンシ制約Lmaxについて説明する。
 外部メモリ選択におけるレイテンシ制約Lmaxとは、外部メモリモジュール候補から外部メモリモジュールを選択する際に参照される、レイテンシについての制約条件である。
 外部メモリ選択部240は、外部メモリ選択におけるレイテンシ制約Lmaxを満たすメモリアーキテクチャを探索する。
 外部メモリ選択におけるレイテンシ制約Lmaxは、S140で使用される。
 以下、外部メモリ選択におけるレイテンシ制約Lmaxは、単にレイテンシ制約Lmaxともいう。
 次に、(c)外部メモリ選択における回路規模制約Smaxについて説明する。
 外部メモリ選択における回路規模制約Smaxとは、外部メモリモジュール候補から外部メモリモジュールを選択する際に参照される、回路規模についての制約条件である。
 外部メモリ選択部240は、外部メモリ選択における回路規模制約Smaxを満たすメモリアーキテクチャを探索する。
 外部メモリ選択における回路規模制約Smaxは、S140で使用される。
 以下、外部メモリ選択における回路規模制約Smaxは、単に回路規模制約Smaxともいう。
 次に、(d)外部メモリ選択における最適化方針情報Pについて説明する。
 外部メモリ選択における最適化方針情報Pは、外部メモリモジュール候補から外部メモリモジュールを選択する際に参照される、最適化の指針である。
 外部メモリ選択における最適化方針情報Pとして、回路規模最適化と、レイテンシ最適化とが選択される。
 外部メモリ選択における最適化方針情報Pが回路規模最適化の場合は、外部メモリ選択部240は、外部メモリ選択におけるレイテンシ制約Lmaxと外部メモリ選択における回路規模制約Smaxとを満たしつつ、回路規模が最小となるメモリアーキテクチャを探索する。
 外部メモリ選択における最適化方針情報Pがレイテンシ最適化の場合は、外部メモリ選択部240は、外部メモリ選択におけるレイテンシ制約Lmaxと外部メモリ選択における回路規模制約Smaxとを満たしつつ、レイテンシが最小となるメモリアーキテクチャを探索する。
 外部メモリ選択における最適化方針情報Pは、S140で使用される。
 以下、外部メモリ選択における最適化方針情報Pは、単に最適化方針情報Pともいう。
 次に、(e)外部メモリ選択および外部メモリインターフェイス生成における外部メモリ構成情報Minfoについて説明する。
 外部メモリ選択および外部メモリインターフェイス生成における外部メモリ構成情報Minfoは、S135で選択された外部メモリモジュールが、どのようなハードウェアに実装されるのかを示す情報である。
 例えば、外部メモリ選択および外部メモリインターフェイス生成における外部メモリ構成情報Minfoには、外部メモリの種類(DRAMなのか、DDR-SDRAMなのか、QDR-SDRAMなのか等)等が示される。
 外部メモリ選択および外部メモリインターフェイス生成における外部メモリ構成情報Minfoは、S140とS160で使用される。
 以下、外部メモリ選択および外部メモリインターフェイス生成における外部メモリ構成情報Minfoは、単に外部メモリ構成情報Minfoともいう。
 制約情報入力受付部210は、例えば、図4に示すような制約情報271を取得する。
 S110の後、処理はS120に進む。
 S120において、回路設計支援装置200のバインディングデータ取得部220は、高位合成装置110のバインディング部113によって生成されたバインディングデータ124を高位合成装置110から取得(受信)する。
 S120の後、処理はS130に進む。
 図5は、実施の形態1におけるバインディングデータ124の一例を示す図である。
 実施の形態1は、図5に示すバインディングデータに基づいて説明する。
 バインディングデータは、図5に示すように、設計対象回路に含まれる複数の機能モジュールが記述されている。
 図5のfuncと記載された四角形は、設計対象回路の演算モジュールである。
 演算モジュールは、前述のように、演算を行う演算器、レジスタを表す。
 図5のmemと記載された四角形は、設計対象回路のメモリモジュールである。
 メモリモジュールは、前述のように、記憶素子を表す。
 図5の矢印はデータの流れを表している。
 バインディングデータでは、各演算モジュールがどのメモリモジュールにリードアクセスを行うか(どのメモリからデータを読み出すか)、どのメモリモジュールにライトアクセスを行うか(演算結果をどのメモリに格納するか)が示される。
 また、図5では図示されていないが、バインディングデータには、各メモリモジュールで発生するリードアクセスのタイミング(サイクル時間)とリードアクセスを行う演算ブロック(リードアクセス演算ブロック)、ライトアクセスのタイミング(サイクル時間)とライトアクセスを行う演算ブロック(ライトアクセス演算ブロックという)とが記述されている。
 本実施の形態では、バインディングデータ取得部220は、図5のバインディングデータ124を取得する。
 図3に戻り、S130から説明を続ける。
 S130において、外部メモリ判定部230は、バインディングデータ124に記述されている複数のメモリモジュールから、任意のメモリモジュールを選択する。
 以下、S130で選択されたメモリモジュールを、判定対象メモリモジュールという。
 S130の後、処理はS131に進む。
 S131において、外部メモリ判定部230は、判定対象メモリモジュールのライフサイクルを解析し、以下2つのサイクル時間を取得する。
(1)判定対象メモリモジュールについて、ライトアクセスが終了した時のサイクル時間
(2)判定対象メモリモジュールについて、ライトデータに対する最後のリードアクセスが開始した時のサイクル時間
 次に、外部メモリ判定部230は、「(1)のサイクル時間-(2)のサイクル時間」を計算し、判定対象メモリモジュールのライトデータ保持サイクル時間Tsを算出する。
 ライトデータ保持サイクル時間Tsは、上記の式に示されるように、メモリモジュールへのライトアクセスが終了してから、当該ライトアクセスでメモリモジュールに書き込まれたライトデータへの最後のリードアクセスが開始するまでの時間である。
 S131の後、処理はS132に進む。
 S132において、外部メモリ判定部230は、S131で求めた判定対象メモリモジュールのライトデータ保持サイクル時間Tsと、制約情報271中の外部メモリ判定におけるサイクル時間閾値Tthとを比較し、判定対象メモリモジュールを外部メモリモジュール候補とするか否かを判定する。
 Ts≧Tthの場合、外部メモリ判定部230は、判定対象メモリモジュールを外部メモリモジュール候補とすると判定し(YES)、処理はS135に進む。
 Ts<Tthの場合、外部メモリ判定部230は、判定対象メモリモジュールを外部メモリモジュール候補とせず(NO)、処理はS133に進む。
 図6は、実施の形態1における各メモリモジュールのライフタイムサイクル解析結果の一例を示す。
 図7は、実施の形態1における各メモリモジュールのライフタイムサイクル解析結果に基づいた外部メモリモジュール候補の抽出判定結果の一例を示す。
 S131及びS132の具体例を、図6および図7に基づいて説明する。
 図6は、バインディングデータ124中の各メモリモジュールについて、ライトアクセスサイクル時間、及びリードアクセスサイクル時間を解析した結果を示す。
 この解析結果より、外部メモリ判定部230は、メモリモジュールごとに、ライトアクセスが終了した時のサイクル時間と、ライトデータに対する最後のリードアクセスが開始した時のサイクル時間とを取得する。
 図7は、外部メモリ判定部230が図6より取得した、メモリモジュールごとに、ライトアクセスが終了した時のサイクル時間と、ライトデータに対する最後のリードアクセスが開始した時のサイクル時間とを示す。
 また、外部メモリ判定部230は、メモリモジュールごとに、ライトデータの保持サイクル時間Tsを算出し、TsとTthとの比較により各メモリモジュールを外部メモリモジュール候補とするか否かを判定する。
 図4に示すようにTthは1500であり、図7に示すようにmem1のTsは9000であり、mem4のTsは2200である。
 このように、mem1とmem4は、Ts>Tthであるため、図7の例では、mem1とmem4が外部メモリモジュール候補として抽出される。
 図5のバインディングデータ及び図6のサイクル時間では、func1の計算結果を外部メモリに蓄え、func7が動作開始する際に外部メモリからデータを取得するようにすれば、mem1は内部メモリとして設計対象回路の内部に置かなくてもよい。
 このため、mem1は、外部メモリモジュール候補として抽出される。
 同様の考えにより、mem4も内部メモリとして設計対象回路の内部に置かなくてもよいため、外部メモリモジュール候補として抽出される。
 ただし、mem1については、func2でも利用するため、別途小容量の内部メモリを実装する必要がある。これについては後述する。
 図3に戻り、S133から説明を続ける。
 S132の結果、外部メモリモジュール候補では無いと判定された判定対象メモリモジュールに対し、外部メモリ判定部230は、「判定対象メモリモジュールを必要とする演算モジュールを動作開始させるために必要なデータが、閾値Tth以内のサイクル時間で揃うか」という判定基準を適用する。
 つまり、外部メモリ判定部230は、上記の判定基準に基づき、判定対象メモリモジュールを外部メモリモジュール候補とするか否かを判定する。
 S133では、外部メモリ判定部230は、判定対象メモリモジュールを解析して以下の2つの情報を取得する。
(1)判定対象メモリモジュールを必要とする機能の1イタレーションに必要な判定対象メモリモジュール格納データ
(2)上記の(1)のデータが揃うまでに必要なサイクル時間Tg
 上記の2つの情報の取得後、処理はS134に進む。
 S134において、外部メモリ判定部230は、S133で求めたサイクル時間Tgと、制約情報271中の外部メモリ判定時におけるサイクル時間閾値Tthとを比較し、判定対象メモリモジュールを外部メモリモジュール候補として抽出するか否かを判定する。
 Tg≧Tthの場合、判定対象メモリモジュールは外部メモリモジュール候補と判定し(YES)、処理はS135に進む。
 Tg<Tthの場合、判定対象メモリモジュールは内部メモリとして実装する内部メモリモジュールの候補と判定し(NO)、処理はS136に進む。
 図8は、S133の外部メモリ判定の対象となるメモリモジュールの例を示す図である。
 図8において、mem1及びmem4以外のメモリモジュール(矢印が差しているメモリモジュール)がS133の外部メモリ判定の対象となるメモリモジュールである。
 図9は、mem5を対象とする外部メモリモジュール候補の判定例を示す。
 図10は、mem3を対象とする外部メモリモジュール候補の判定例を示す。
 S131及びS132の具体例を、図8、図9および図10に基づいて説明する。
 S131及びS132において、mem1およびmem4については、既に外部メモリモジュール候補として確定している。
 従って、図8に示すように、mem2、mem3、mem5、mem6が、S133およびS134における外部メモリ判定の対象となる。
 図9は、mem5を対象に外部メモリモジュール候補とするか否かの判定を実施した結果を示す。
 まず、外部メモリ判定部230は、mem5へのリードアクセスを抽出する。
 抽出した結果、mem5がループ内でリードされているのであれば、外部メモリ判定部230は、ループの1回目のイタレーションで、mem5のどの要素がアクセスされているかを解析する。
 図9の例の場合、ループの1回目では、i=0であるため、mem5[i]及びmem5[N-i]より、mem5[0]とmem5[N]とがアクセスされている。
 即ち、mem5[0]とmem5[N]のデータが揃えば、func6は動作開始可能である。
 次に、外部メモリ判定部230は、mem5へのライトアクセスを抽出する。
 そして、外部メモリ判定部230は、mem5[0]とmem5[N]が、どのタイミングで揃うかを算出する。
 図9の例の場合、mem5[N]へのライトアクセスが発生するまで、即ち、func5の動作が終了するまで、func6は動作を開始することができない。
 図9の例では、func5が動作を開始してから、func6が動作を開始できるようになるまで(mem5[N]へのライトアクセスが発生するまで)のサイクル時間Tgは2000である。
 このため、「Tg≧Tth」となり、mem5は外部メモリモジュール候補と判定される。
 図5のバインディングデータ及び図6のサイクル時間では、func5の計算結果を外部メモリに蓄え、func6が動作開始する際に外部メモリからデータを取得するようにすれば、mem5は内部メモリとして設計対象回路の内部に置かなくてもよい。
 したがって、mem5は外部メモリモジュール候補として抽出される。
 図10は、mem3を対象に外部メモリモジュール候補とするか否かの判定をした結果を示す。
 まず、外部メモリ判定部230は、mem3へのリードアクセスを抽出する。
 抽出した結果、mem3がループ内でリードされているのであれば、外部メモリ判定部230は、ループの1回目のイタレーションで、mem3のどの要素がアクセスされているかを解析する。
 図10の例の場合、ループの1回目では、i=0であるため、mem3[i]、mem3[i+1]及びmem3[i+2]より、mem3[0]とmem3[1]とmem3[2]とがアクセスされている。
 即ち、mem3[0]とmem3[1]とmem3[2]のデータが揃えば、func5は動作開始可能である。
 次に、外部メモリ判定部230は、mem3へのライトアクセスを抽出する。
 そして、外部メモリ判定部230は、mem3[0]とmem3[1]とmem3[2]が、どのタイミングで揃うかを算出する。
 図10の例の場合、mem3[2]へのライトアクセスが発生するまでfunc5は動作開始できない。
 しかし、func3の動作終了を待たずとも、mem3[2]にはデータが書き込まれるので、func5を動作開始することができる。
 図10の例では、func3が動作を開始してから、func5が動作を開始できるようになるまで(mem3[2]へのライトアクセスが発生するまで)のサイクル時間Tgは100である。
 このため、「Tg<Tth」となり、mem3は内部メモリで実現すると判定される。
 このように、外部メモリ判定部230は、メモリモジュールごとに、バインディングデータ124に記述されるライトアクセスのタイミング及びライトアクセスを行う演算ブロック(ライトアクセス演算ブロック)とリードアクセスのタイミング及びリードアクセスを行う演算ブロック(リードアクセス演算ブロック)とを解析する。
 また、外部メモリ判定部230は、リードアクセス演算ブロック(例えば、図9のfunc6)が演算に用いる被演算データのライトアクセスを行うライトアクセス演算ブロック(例えば、図9のfunc5)が動作を開始してからリードアクセス演算ブロック(例えば、図9のfunc6)が被演算データのリードアクセスを開始できるまでの時間であるリードアクセス待ち時間(例えば、図9のサイクル時間Tg)を算出する。
 そして、外部メモリ判定部230は、算出したリードアクセス待ち時間が閾値以上であるメモリモジュール(例えば、図9のmem5)を外部メモリモジュール候補として抽出する。
 図3に戻り、S135から説明を続ける。
 S135において、外部メモリ判定部230は、S132とS134の結果、S131で選択された判定対象メモリモジュールが外部メモリモジュール候補と判定された場合に、判定対象メモリモジュールの情報を外部メモリ判定結果272に書き込む。
 S135の後、処理はS136に進む。
 S136において、外部メモリ判定部230は、バインディングデータ124中の全てのメモリモジュールを解析済みかどうかをチェックする。
 解析していないメモリモジュールがある場合(NO)は、処理はS130に戻る。
 全てのメモリモジュールが解析済みである場合(YES)は、処理はS140に進む。
 S140において、外部メモリ選択部240は、制約情報271に基づいて、外部メモリ判定結果272中の外部メモリモジュール候補の中から、外部メモリモジュールを選択する。
 S140の後、処理はS150に進む。
 図11は、実施の形態1における外部メモリ判定結果272の例を示す。
 図12は、実施の形態1におけるメモリアーキテクチャ探索結果の例を示す。
 S140の具体例を、図11および図12に基づいて説明する。
 図11は、外部メモリ判定部230でバインディングデータ124に記述されているメモリモジュールについて外部メモリモジュール判定を実行した結果、外部メモリモジュール候補と判定されたメモリモジュールの一覧を示す。
 図11の例の場合、mem1、mem4、mem5、mem6が外部メモリモジュール候補である。
 従って、外部メモリ選択部240は、mem1、mem4、mem5、mem6の中から、どのメモリモジュールを外部メモリモジュールとするかを探索する。
 一般的に、LSI内部のメモリを外部メモリにすることによって、LSIからメモリを省くことができるため、LSIの回路規模は小さくなる。
 しかし、外部メモリからデータを取得するために必要なサイクル時間は、LSI内部のメモリからデータを取得する場合と比べると長くなる。
 即ち、LSI内部メモリの外部メモリ化には、回路規模と処理レイテンシのトレードオフが伴う。
 従って、図11に示す外部メモリモジュール候補と判定されたメモリを、全て外部メモリとして実現することが最適解であるとは限らない。
 そのため、図11に示す外部メモリモジュール候補と判定されたメモリモジュールのうち、どのメモリモジュールを外部メモリとして実現するべきか探索する必要がある。
 本実施の形態では、外部メモリ選択部240は、複数の外部メモリモジュール候補の全ての組合せを生成する。
 そして、外部メモリモジュール候補の組合せごとに、組合せに含まれる外部メモリモジュール候補が外部メモリとして実装される場合の回路規模及びレイテンシを、バインディングデータ124に基づき算出する。
 更に、外部メモリ選択部240は、算出した回路規模及びレイテンシに基づき、外部メモリモジュール候補の複数の組合せの中から、いずれかの組合せを選択し、選択した組合せに含まれる外部メモリモジュール候補を、外部メモリモジュールとして選択する。
 より具体的には、外部メモリ選択部240は、外部メモリモジュール候補の複数の組合せの中から、算出された回路規模が回路規模の制約条件に合致し、算出されたレイテンシがレイテンシの制約条件に合致する組合せを選択する。
 算出された回路規模が回路規模の制約条件に合致し、算出されたレイテンシがレイテンシの制約条件に合致する組合せが複数存在する場合は、外部メモリ選択部240は、算出された回路規模が最小である組合せを選択する。
 もしくは、外部メモリ選択部240は、算出されたレイテンシが最小である組合せを選択するようにしてもよい。
 図12は、外部メモリ選択部240が算出した、外部メモリモジュール候補の組合せごとの回路規模とレイテンシを示す。
 図12のLSI全体の回路規模とは、複数のメモリモジュールの中から、任意のメモリモジュールを外部メモリとして実現した場合の設計対象回路の回路規模と周辺回路の回路規模とを合わせた回路規模である。
 また、図12のLSI全体の処理レイテンシとは、複数のメモリモジュールの中から、任意のメモリモジュールを外部メモリとして実現した場合の設計対象回路で発生する処理レイテンシである。
 LSI全体の回路規模は、具体的には、以下で計算される。
 LSI全体の回路規模
 = 全メモリモジュールを内部メモリとした場合の設計対象回路の回路規模
 - 外部メモリ化するメモリモジュールの回路規模
 + 外部メモリとの通信インターフェイスの回路規模
 つまり、外部メモリ選択部240は、これら3つの回路規模を算出し、3つの回路規模を用いた上記の計算を行う。
 1つ目の「全メモリモジュールを内部メモリとした場合の設計対象回路の回路規模」は、バインディングデータ124に記述される全てのメモリモジュールが設計対象回路内の内部メモリとして実装される場合の設計対象回路の回路規模である。
 2つ目の「外部メモリ化するメモリモジュールの回路規模」は、組合せに含まれる外部メモリモジュール候補が外部メモリとして実装される場合の外部メモリの回路規模である。
 3つ目の「外部メモリとの通信インターフェイスの回路規模」は、組合せに含まれる外部メモリモジュール候補が外部メモリとして実装される場合に設計対象回路が外部メモリと通信するために用いる通信インターフェイスの回路規模である。
 LSI全体の処理レイテンシは、具体的には、以下で計算される。
 LSI全体の処理レイテンシ
 = 全メモリモジュールを内部メモリとした場合の設計対象回路の処理レイテンシ
 + 外部メモリからデータを取得する際の処理レイテンシ
 つまり、外部メモリ選択部240は、これら2つの処理レイテンシを算出し、2つの処理レイテンシを用いた上記の計算を行う。
 1つ目の「全メモリモジュールを内部メモリとした場合の設計対象回路の処理レイテンシ」は、バインディングデータに記述される全てのメモリモジュールが設計対象回路内の内部メモリとして実装される場合に発生するレイテンシであり、第1のレイテンシに相当する。
 また、2つ目の「外部メモリからデータを取得する際の処理レイテンシ」は、組合せに含まれる外部メモリモジュール候補が外部メモリとして実装される場合に設計対象回路が外部メモリからデータを取得するために要するレイテンシであり、第2のレイテンシに相当する。
 なお、外部メモリ選択部240は、外部メモリからデータを取得するために必要なサイクル時間を、外部メモリ構成情報Minfoを元に計算する。
 図4の例の場合、外部メモリはDDR_SDRAMであるため、これに従って外部メモリからデータを取得するために必要なサイクル時間を計算する。
 外部メモリ選択部240は、制約情報271中のレイテンシ制約Lmax、回路規模制約Smax、最適化方針情報Pを元に、図12の結果の中から、条件を満たす組合せを選択する。
 図4の例の場合、最適化方針情報Pは回路規模優先となっているため、レイテンシ制約Lmax、回路規模制約Smaxを満たし、且つ、回路規模が最小となるメモリアーキテクチャ(外部メモリモジュールの組合せ)を選択する。
 そして、外部メモリ選択部240は、選択結果が記述される外部メモリ選択結果273を生成する。
 図3に戻り、S150から説明を続ける。
 S150において、回路設計支援装置200のCDFGデータ取得部280は、高位合成装置110のCDFG生成部111によって生成されたCDFGデータ122を高位合成装置110から取得(受信)する。
 S150の後、処理はS160に進む。
 S160において、回路設計支援装置200の外部メモリインターフェイス生成部250は、外部メモリ選択結果273に基づいて外部メモリインターフェイスを自動生成する。
 外部メモリインターフェイス生成部250は、CDFGデータ122中の外部メモリモジュールとして選択されたメモリモジュールの記述を、自動生成された外部インターフェイスの記述に変換して、変換後のCDFGデータ274を生成する。
 例えば、外部メモリインターフェイス生成部250は、特許文献1に開示されているインターフェイス生成装置などを用いて、変換後のCDFGデータ274を生成する。
 S160の後、処理はS170に進む。
 S170において、支援データ提供部260は、変換後のCDFGデータ274を高位合成装置110に提供(送信)する。
 そして、高位合成装置110のスケジューリング部112、バインディング部113およびRTL記述生成部114は、提供された変換後のCDFGデータ274に基づいて、スケジューリングデータ123、バインディングデータ124およびRTL記述ファイル125を生成する。
***実施の形態の効果の説明***
 以上のように、本実施の形態によれば、回路設計支援装置が、動作記述中の記憶素子(メモリ)の機能モジュールであるメモリモジュールの中から、外部メモリとして実装すべきメモリモジュールを抽出し、また、メモリモジュールを外部メモリとして実装する際に必要な回路を高位合成で自動生成できるという効果がある。
***まとめ***
 以上、本実施の形態では、
 動作記述を入力として高位合成(動作合成)処理を行いRTL記述を出力する回路設計支援装置であって、
 前記高位合成された結果であるバインディング結果から、各メモリモジュールのライトデータの保持サイクル時間と、各メモリモジュールを必要とする各機能を動作開始させるために必要なデータが揃うまでのサイクル時間を算出し、各メモリモジュールを外部メモリ化すべきかを判定する外部メモリ判定部と、
 外部メモリモジュール候補となったメモリモジュールの中から、制約条件を満たすメモリアーキテクチャを探索する外部メモリ選択部と、
 外部メモリ選択部の選択結果から、外部メモリとの通信インターフェイスを自動生成する外部メモリインターフェイス生成部を備える回路設計支援装置を説明した。
 また、本実施の形態では、
 動作記述を入力として高位合成(動作合成)処理を行いRTL記述を出力する回路設計支援方法であって、
 前記高位合成された結果であるバインディング結果から、各メモリモジュールのライトデータの保持サイクル時間と、各メモリモジュールを必要とする各機能を動作開始させるために必要なデータが揃うまでのサイクル時間を算出し、各メモリモジュールを外部メモリ化すべきかを判定する外部メモリ判定工程と、
 外部メモリモジュール候補となったメモリモジュールの中から、制約条件を満たすメモリアーキテクチャを探索する外部メモリ選択工程と、
 外部メモリ選択工程の選択結果から、外部メモリとの通信インターフェイスを自動生成する外部メモリインターフェイス生成工程を含む回路設計支援方法を説明した。
***ハードウェア構成の説明***
 最後に、回路設計支援装置200のハードウェア構成例を図13を参照して説明する。
 回路設計支援装置200はコンピュータである。
 回路設計支援装置200は、プロセッサ901、補助記憶装置902、メモリ903、通信装置904、入力インターフェイス905、ディスプレイインターフェイス906といったハードウェアを備える。
 プロセッサ901は、信号線910を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
 入力インターフェイス905は、入力装置907に接続されている。
 ディスプレイインターフェイス906は、ディスプレイ908に接続されている。
 プロセッサ901は、プロセッシングを行うIC(Integrated Circuit)である。
 プロセッサ901は、例えば、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
 補助記憶装置902は、例えば、ROM(Read Only Memory)、フラッシュメモリ、HDD(Hard Disk Drive)である。
 メモリ903は、例えば、RAM(Random Access Memory)である。
 通信装置904は、データを受信するレシーバー9041及びデータを送信するトランスミッター9042を含む。
 通信装置904は、例えば、通信チップ又はNIC(Network Interface Card)である。
 入力インターフェイス905は、入力装置907のケーブル911が接続されるポートである。
 入力インターフェイス905は、例えば、USB(Universal Serial Bus)端子である。
 ディスプレイインターフェイス906は、ディスプレイ908のケーブル912が接続されるポートである。
 ディスプレイインターフェイス906は、例えば、USB端子又はHDMI(登録商標)(High Definition Multimedia Interface)端子である。
 入力装置907は、例えば、マウス、キーボード又はタッチパネルである。
 ディスプレイ908は、例えば、LCD(Liquid Crystal Display)である。
 補助記憶装置902には、図2に示す制約情報入力受付部210、バインディングデータ取得部220、外部メモリ判定部230、外部メモリ選択部240、外部メモリインターフェイス生成部250、支援データ提供部260、CDFGデータ取得部280(以下、これらをまとめて「部」と表記する)の機能を実現するプログラムが記憶されている。
 このプログラムは、メモリ903にロードされ、プロセッサ901に読み込まれ、プロセッサ901によって実行される。
 更に、補助記憶装置902には、OS(Operating System)も記憶されている。
 そして、OSの少なくとも一部がメモリ903にロードされ、プロセッサ901はOSを実行しながら、「部」の機能を実現するプログラムを実行する。
 図13では、1つのプロセッサ901が図示されているが、回路設計支援装置200が複数のプロセッサ901を備えていてもよい。
 そして、複数のプロセッサ901が「部」の機能を実現するプログラムを連携して実行してもよい。
 また、「部」の処理の結果を示す情報やデータや信号値や変数値が、メモリ903、補助記憶装置902、又は、プロセッサ901内のレジスタ又はキャッシュメモリに記憶される。
 「部」を「サーキットリー」で提供してもよい。
 また、「部」を「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。
 「回路」及び「サーキットリー」は、プロセッサ901だけでなく、ロジックIC又はGA(Gate Array)又はASIC(Application Specific Integrated Circuit)又はFPGA(Field-Programmable Gate Array)といった他の種類の処理回路をも包含する概念である。
 100 高位合成システム、110 高位合成装置、111 CDFG生成部、112 スケジューリング部、113 バインディング部、114 RTL記述生成部、120 高位合成装置記憶部、121 動作記述ファイル、122 CDFGデータ、123 スケジューリングデータ、124 バインディングデータ、125 RTL記述ファイル、200 回路設計支援装置、210 制約情報入力受付部、220 バインディングデータ取得部、230 外部メモリ判定部、240 外部メモリ選択部、250 外部メモリインターフェイス生成部、260 支援データ提供部、270 支援装置記憶部、271 制約情報、272 外部メモリ判定結果、273 外部メモリ選択結果、274 変換後のCDFGデータ、280 CDFGデータ取得部、2000 メモリモジュール選択部。

Claims (13)

  1.  設計対象回路の機能モジュールとして複数のメモリモジュールが記述されるバインディングデータを取得するバインディングデータ取得部と、
     前記設計対象回路に関する制約条件に基づいて、前記バインディングデータに記述される前記複数のメモリモジュールの中から、前記設計対象回路外の外部メモリとして実装すべき外部メモリモジュールを選択するメモリモジュール選択部とを有する回路設計支援装置。
  2.  前記メモリモジュール選択部は、
     回路規模の制約条件及びレイテンシの制約条件の少なくともいずれかに基づいて、前記複数のメモリモジュールの中から、前記外部メモリモジュールを選択する請求項1に記載の回路設計支援装置。
  3.  前記バインディングデータ取得部は、
     メモリモジュールごとに、メモリモジュールへのライトアクセスのタイミングとリードアクセスのタイミングが記述されるバインディングデータを取得し、
     前記メモリモジュール選択部は
     メモリモジュールごとに、前記バインディングデータに記述されるライトアクセスのタイミングとリードアクセスのタイミングとを解析して、前記複数のメモリモジュールの中から、前記外部メモリモジュールの候補である外部メモリモジュール候補を抽出し、
     抽出した外部メモリモジュール候補の中から、前記制約条件に基づいて、前記外部メモリモジュールを選択する請求項1に記載の回路設計支援装置。
  4.  前記バインディングデータ取得部は、
     前記設計対象回路の機能モジュールとして、前記複数のメモリモジュールが記述されるとともに、演算を行う複数の演算ブロックが記述されるバインディングデータを取得し、
     前記メモリモジュール選択部は、
     複数の外部メモリモジュール候補を抽出した場合に、
     外部メモリモジュール候補の組合せを複数生成し、
     外部メモリモジュール候補の組合せごとに、組合せに含まれる外部メモリモジュール候補が前記外部メモリとして実装される場合の回路規模及びレイテンシを、前記バインディングデータに基づき算出し、
     算出した回路規模及びレイテンシに基づき、外部メモリモジュール候補の複数の組合せの中から、いずれかの組合せを選択し、
     選択した組合せに含まれる外部メモリモジュール候補を、前記外部メモリモジュールとして選択する請求項3に記載の回路設計支援装置。
  5.  前記メモリモジュール選択部は、
     外部メモリモジュール候補の複数の組合せの中から、算出された回路規模が回路規模の制約条件に合致し、算出されたレイテンシがレイテンシの制約条件に合致する組合せを選択する請求項4に記載の回路設計支援装置。
  6.  前記メモリモジュール選択部は、
     算出された回路規模が回路規模の制約条件に合致し、算出されたレイテンシがレイテンシの制約条件に合致する組合せの中から、算出された回路規模が最小である組合せを選択する請求項5に記載の回路設計支援装置。
  7.  前記メモリモジュール選択部は、
     算出された回路規模が回路規模の制約条件に合致し、算出されたレイテンシがレイテンシの制約条件に合致する組合せの中から、算出されたレイテンシが最小である組合せを選択する請求項5に記載の回路設計支援装置。
  8.  前記メモリモジュール選択部は、
     外部メモリモジュール候補の組合せごとに、
     前記バインディングデータに記述される全てのメモリモジュールが前記設計対象回路内の内部メモリとして実装される場合の前記設計対象回路の回路規模と、組合せに含まれる外部メモリモジュール候補が前記外部メモリとして実装される場合の前記外部メモリの回路規模と、組合せに含まれる外部メモリモジュール候補が前記外部メモリとして実装される場合に前記設計対象回路が前記外部メモリと通信するために用いる通信インターフェイスの回路規模とを算出し、
     前記設計対象回路の回路規模から前記外部メモリの回路規模を減算し、減算値に前記通信インターフェイスの回路規模を加算して得られる回路規模が回路規模の制約条件に合致するか否かを判断し、
     前記バインディングデータに記述される全てのメモリモジュールが前記設計対象回路内の内部メモリとして実装される場合に発生する第1のレイテンシと、組合せに含まれる外部メモリモジュール候補が前記外部メモリとして実装される場合に前記設計対象回路が前記外部メモリからデータを取得するために要する第2のレイテンシとを算出し、
     前記第1のレイテンシに前記第2のレイテンシを加算して得られるレイテンシが、レイテンシの制約条件に合致するか否かを判断する請求項5に記載の回路設計支援装置。
  9.  前記メモリモジュール選択部は、
     メモリモジュールごとに、前記バインディングデータに記述されるライトアクセスのタイミングとリードアクセスのタイミングとを解析して、メモリモジュールへのライトアクセスが終了してから、当該ライトアクセスでメモリモジュールに書き込まれたデータへの最後のリードアクセスが開始するまでの時間であるライトデータ保持時間を算出し、
     算出したライトデータ保持時間が閾値以上であるメモリモジュールを前記外部メモリモジュール候補として抽出する請求項3に記載の回路設計支援装置。
  10.  前記バインディングデータ取得部は、
     前記設計対象回路の機能モジュールとして、前記複数のメモリモジュールが記述されるとともに、演算を行う複数の演算ブロックが記述され、更に、メモリモジュールごとに、メモリモジュールへのライトアクセスのタイミング及びライトアクセスを行うライトアクセス演算ブロックと、メモリモジュールへのリードアクセスのタイミング及びリードアクセスを行うリードアクセス演算ブロックとが記述されるバインディングデータを取得し、
     前記メモリモジュール選択部は、
     メモリモジュールごとに、前記バインディングデータに記述されるライトアクセスのタイミング及びライトアクセス演算ブロックとリードアクセスのタイミング及びリードアクセス演算ブロックとを解析して、リードアクセス演算ブロックが演算に用いる被演算データのライトアクセスを行うライトアクセス演算ブロックが動作を開始してから前記リードアクセス演算ブロックが前記被演算データのリードアクセスを開始できるまでの時間であるリードアクセス待ち時間を算出し、
     算出したリードアクセス待ち時間が閾値以上であるメモリモジュールを前記外部メモリモジュール候補として抽出する請求項3に記載の回路設計支援装置。
  11.  前記回路設計支援装置は、更に、
      前記バインディングデータに記述される前記複数のメモリモジュールが記述されるCDFG(Control Data Flow Graph)データを取得するCDFGデータ取得部と、
     前記CDFGデータ内の前記外部メモリモジュールに対応するメモリモジュールの記述を、前記設計対象回路が前記外部メモリと通信するために用いる通信インターフェイスのモジュールの記述に置換する外部メモリインターフェイス生成部とを有する請求項1に記載の回路設計支援装置。
  12.  コンピュータが、設計対象回路の機能モジュールとして複数のメモリモジュールが記述されるバインディングデータを取得し、
     前記コンピュータが、前記設計対象回路に関する制約条件に基づいて、前記バインディングデータに記述される前記複数のメモリモジュールの中から、前記設計対象回路外の外部メモリとして実装すべき外部メモリモジュールを選択する回路設計支援方法。
  13.  設計対象回路の機能モジュールとして複数のメモリモジュールが記述されるバインディングデータを取得するバインディングデータ取得処理と、
     前記設計対象回路に関する制約条件に基づいて、前記バインディングデータに記述される前記複数のメモリモジュールの中から、前記設計対象回路外の外部メモリとして実装すべき外部メモリモジュールを選択するメモリモジュール選択処理とをコンピュータに実行させる回路設計支援プログラム。
PCT/JP2015/060955 2015-04-08 2015-04-08 回路設計支援装置及び回路設計支援方法及び回路設計支援プログラム WO2016162970A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US15/556,180 US10311188B2 (en) 2015-04-08 2015-04-08 Circuit design support apparatus, circuit design support method, and computer readable medium
JP2017511392A JP6342065B2 (ja) 2015-04-08 2015-04-08 回路設計支援装置及び回路設計支援方法及び回路設計支援プログラム
PCT/JP2015/060955 WO2016162970A1 (ja) 2015-04-08 2015-04-08 回路設計支援装置及び回路設計支援方法及び回路設計支援プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/060955 WO2016162970A1 (ja) 2015-04-08 2015-04-08 回路設計支援装置及び回路設計支援方法及び回路設計支援プログラム

Publications (1)

Publication Number Publication Date
WO2016162970A1 true WO2016162970A1 (ja) 2016-10-13

Family

ID=57072604

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/060955 WO2016162970A1 (ja) 2015-04-08 2015-04-08 回路設計支援装置及び回路設計支援方法及び回路設計支援プログラム

Country Status (3)

Country Link
US (1) US10311188B2 (ja)
JP (1) JP6342065B2 (ja)
WO (1) WO2016162970A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10192014B2 (en) * 2015-08-27 2019-01-29 Mitsubishi Electric Corporation Circuit design support apparatus and computer readable medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11184895A (ja) * 1997-12-19 1999-07-09 Nec Corp 回路設計方法および装置、情報記憶媒体
JP2011134308A (ja) * 2009-11-25 2011-07-07 Ricoh Co Ltd 高位合成装置、高位合成方法および高位合成プログラム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6862563B1 (en) * 1998-10-14 2005-03-01 Arc International Method and apparatus for managing the configuration and functionality of a semiconductor design
DE69926084T2 (de) * 1998-12-15 2006-05-04 Matsushita Electric Industrial Co., Ltd., Kadoma Taktphasenregelsystem, integrierte schaltung und entwurfsverfahren dafür
JP2002230065A (ja) * 2001-02-02 2002-08-16 Toshiba Corp システムlsi開発装置およびシステムlsi開発方法
JP4007483B2 (ja) * 2001-07-16 2007-11-14 シャープ株式会社 高位合成装置および高位合成方法
JP2007034584A (ja) * 2005-07-26 2007-02-08 Toshiba Corp 高位合成装置、自動高位合成方法、高位合成プログラム及びゲートネットリスト自動検証方法
US8291396B1 (en) * 2006-01-17 2012-10-16 Altera Corporation Scheduling optimization of aliased pointers for implementation on programmable chips
JP4853312B2 (ja) * 2007-01-30 2012-01-11 日本電気株式会社 テストベンチ生成機能を有する動作合成装置と方法及びプログラム
JP2008204341A (ja) 2007-02-22 2008-09-04 Nec Corp インタフェース合成装置
US7904850B2 (en) * 2007-11-30 2011-03-08 Cebatech System and method for converting software to a register transfer (RTL) design
JP2011022863A (ja) 2009-07-16 2011-02-03 Renesas Electronics Corp 動作合成装置及び動作合成方法
US8621414B2 (en) * 2010-04-21 2013-12-31 National Cheng Kung University Method and algorithm analyzer for determining a design framework
JP5751669B2 (ja) * 2011-07-08 2015-07-22 ルネサスエレクトロニクス株式会社 言語変換処理方法及び言語変換処理プログラム
KR20130019082A (ko) * 2011-08-16 2013-02-26 삼성전자주식회사 비휘발성 메모리 장치의 설계 방법
US9852250B2 (en) * 2015-02-20 2017-12-26 Esilicon Corporation Memory optimization in VLSI design using generic memory models
US9477807B1 (en) * 2015-06-11 2016-10-25 International Business Machines Corporation Automating system on a chip customized design integration, specification, and verification through a single, integrated service

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11184895A (ja) * 1997-12-19 1999-07-09 Nec Corp 回路設計方法および装置、情報記憶媒体
JP2011134308A (ja) * 2009-11-25 2011-07-07 Ricoh Co Ltd 高位合成装置、高位合成方法および高位合成プログラム

Also Published As

Publication number Publication date
US20180039722A1 (en) 2018-02-08
JP6342065B2 (ja) 2018-06-13
JPWO2016162970A1 (ja) 2017-07-13
US10311188B2 (en) 2019-06-04

Similar Documents

Publication Publication Date Title
Da Silva et al. Performance Modeling for FPGAs: Extending the Roofline Model with High‐Level Synthesis Tools
US10817353B1 (en) Adaptable dynamic region for hardware acceleration
US8850371B2 (en) Enhanced clock gating in retimed modules
US10216217B1 (en) Adaptive compilation and execution for hardware acceleration
US10387600B2 (en) Dynamic power reduction in circuit designs and circuits
US10579303B1 (en) Memory controller having command queue with entries merging
US20210350216A1 (en) Architecture estimation device, architecture estimation method, and computer readable medium
JP6342065B2 (ja) 回路設計支援装置及び回路設計支援方法及び回路設計支援プログラム
US10963613B1 (en) Partial reconfiguration of integrated circuits using shell representation of platform design with extended routing region
US10671779B1 (en) Function calls in high level synthesis
US20190034562A1 (en) High-level synthesis device, high-level synthesis method, and computer readable medium
JP6567215B2 (ja) アーキテクチャ選定装置、アーキテクチャ選定方法およびアーキテクチャ選定プログラム
US8522175B2 (en) Semiconductor circuit design supporting apparatus and method, and non-transitory computer-readable medium
KR102350941B1 (ko) 집적 회로 설계 방법 및 이를 수행하는 집적 회로 설계 시스템
US10599803B2 (en) High level synthesis apparatus, high level synthesis method, and computer readable medium
WO2017135219A1 (ja) 設計支援装置、設計支援方法、および設計支援プログラムを格納した記録媒体
US20200410149A1 (en) High-level synthesis apparatus, high-level synthesis method, and computer readable medium
JP6091140B2 (ja) 情報処理装置及び情報処理方法及びプログラム
US10684862B2 (en) Processor synthesis device, processor synthesis method, and computer readable medium
JP6305644B2 (ja) アーキテクチャ生成装置およびアーキテクチャ生成プログラム
CN106650033B (zh) 一种输入输出端口的工艺映射方法
JP6545406B2 (ja) 高位合成装置、高位合成方法および高位合成プログラム
US20160004797A1 (en) Circuit designing support apparatus and program
JP2011090518A (ja) 高位合成装置、高位合成方法、及び高位合成プログラム
JP6257421B2 (ja) 回路設計支援装置および回路設計支援プログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15888463

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2017511392

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 15556180

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15888463

Country of ref document: EP

Kind code of ref document: A1