[go: up one dir, main page]

JP2011134218A - Design device, design method and program of semiconductor integrated circuit using reconfigurable memory - Google Patents

Design device, design method and program of semiconductor integrated circuit using reconfigurable memory Download PDF

Info

Publication number
JP2011134218A
JP2011134218A JP2009294756A JP2009294756A JP2011134218A JP 2011134218 A JP2011134218 A JP 2011134218A JP 2009294756 A JP2009294756 A JP 2009294756A JP 2009294756 A JP2009294756 A JP 2009294756A JP 2011134218 A JP2011134218 A JP 2011134218A
Authority
JP
Japan
Prior art keywords
memory
memory block
floor planning
shared
netlist
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2009294756A
Other languages
Japanese (ja)
Inventor
Takumi Okamoto
匠 岡本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2009294756A priority Critical patent/JP2011134218A/en
Publication of JP2011134218A publication Critical patent/JP2011134218A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To achieve a small-area and high-performance semiconductor integrated circuit by utilizing a reconfigurable memory where storage capacity and port position are variable. <P>SOLUTION: The design device 100 of the semiconductor integrated circuit includes: an input part 101 which inputs information about a set of sharable memory blocks, which is configured of information about a net list comprising logic modules and memory blocks and information about memory blocks for exclusive use; a floor planning part 102 which determines arrangement positions of logic modules and memory blocks on the basis of the information about the net list; a memory sharing index setting part 103; a shared memory selection part 104; a delay and wiring property evaluation and determination part 106; a non-shared memory selection part 107; a net list updating part 105; and an output part 108 which outputs the net list updated by the net list updating part 105 and a floor planning result, as a design result. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は、半導体集積回路を設計するための半導体集積回路設計装置、半導体集積回路設計方法、およびコンピュータプログラムに関し、特に、記憶容量およびポート位置が可変な再構成可能メモリを利用して、小面積かつ高性能な半導体集積回路を実現する設計装置、設計方法、およびコンピュータプログラムに関する。   The present invention relates to a semiconductor integrated circuit design apparatus, a semiconductor integrated circuit design method, and a computer program for designing a semiconductor integrated circuit, and in particular, using a reconfigurable memory having a variable storage capacity and port position, and a small area. The present invention also relates to a design apparatus, a design method, and a computer program for realizing a high-performance semiconductor integrated circuit.

半導体集積回路の構成要素は、大きく分けて、論理値を記憶するメモリブロックと、論理演算を行う論理モジュールとに分類される。   The components of the semiconductor integrated circuit are roughly classified into a memory block that stores a logical value and a logic module that performs a logical operation.

メモリブロックおよび論理モジュールを、1つの半導体集積回路上に複数実装し、さらに、メモリブロックと論理モジュールとの間のデータ転送を行うための接続を、その半導体集積回路上に追加することにより、所望の機能を実行する論理回路が実現される。   A plurality of memory blocks and logic modules are mounted on one semiconductor integrated circuit, and a connection for performing data transfer between the memory block and the logic module is added on the semiconductor integrated circuit, so that a desired A logic circuit that performs the functions is realized.

該接続は、論理モジュール間のデータ転送を行うために、論理モジュール同士の間にも存在する。各接続はネットと呼ばれ、ネットの集合はネットリストと呼ばれる。以降、ネットリストという用語には、接続集合に加えて、論理モジュール、メモリブロック自体を含む場合がある。   The connection also exists between the logic modules in order to transfer data between the logic modules. Each connection is called a net, and a set of nets is called a netlist. Hereinafter, the term netlist may include a logical module and a memory block itself in addition to a connection set.

半導体集積回路に実装される代表的なメモリブロックとしては、SRAM(static random access memory)およびDRAM(dynamicrandom access memory)が挙げられる。半導体集積回路上に実装されるメモリブロックの記憶容量は様々であり、各論理モジュールがそれぞれ必要な容量のメモリブロックを利用して集積回路を構成する。   As typical memory blocks mounted on a semiconductor integrated circuit, there are a static random access memory (SRAM) and a dynamic random access memory (DRAM). Memory blocks mounted on a semiconductor integrated circuit have various storage capacities, and each logic module configures an integrated circuit using a memory block having a necessary capacity.

図13に半導体集積回路のネットリスト例を示す。ここでは、8つの論理モジュールlogic1〜logic8がネットリストに含まれ、各論理モジュールがメモリmem1〜mem8のそれぞれと接続している。また、論理モジュール間を接続するネットも存在するが、ここでは、図を簡略化にするために省略している。   FIG. 13 shows an example of a net list of a semiconductor integrated circuit. Here, eight logic modules logic1 to logic8 are included in the netlist, and each logic module is connected to each of the memories mem1 to mem8. There are also nets that connect the logic modules, but are omitted here for the sake of simplicity.

図14は、図13のネットリストを配置した例である。このようなメモリブロックと論理モジュールの配置を行うための既存技術が、特許文献1、特許文献2、特許文献3等に記載されている。   FIG. 14 shows an example in which the net list of FIG. 13 is arranged. Existing techniques for arranging such memory blocks and logic modules are described in Patent Document 1, Patent Document 2, Patent Document 3, and the like.

ここで、近年、メモリ内部の接続を変更することにより、記憶容量、ポート位置を変更することが可能なメモリが提案されている。例えば、非特許文献1に、そのようなメモリの構成技術が提案されている。なお、記憶容量、ポート位置を変更することが可能なメモリを再構成可能メモリと称する。   In recent years, there has been proposed a memory capable of changing the storage capacity and the port position by changing the connection inside the memory. For example, Non-Patent Document 1 proposes such a memory configuration technique. A memory capable of changing the storage capacity and the port position is referred to as a reconfigurable memory.

図11に、再構成可能メモリの例を示す。再構成可能メモリCMEMには、メモリブロックが割当てられる埋め込みメモリエレメントMA〜MLと、論理モジュールとの接続を行うためのメモリポートP1〜P12とが、規則的に配置されている。   FIG. 11 shows an example of a reconfigurable memory. In the reconfigurable memory CMEM, embedded memory elements MA to ML to which memory blocks are allocated and memory ports P1 to P12 for connecting to the logic modules are regularly arranged.

再構成可能メモリCMEMは、ネットワークスイッチN1〜N12の接続を切り替えることによりメモリエレメント間のネットワークを構成し、複数のメモリエレメントを組み合わせて、所望の記憶容量を持つメモリブロックを、様々な構成で実現することが可能である。   Reconfigurable memory CMEM configures a network between memory elements by switching the connection of network switches N1 to N12, and combines a plurality of memory elements to realize memory blocks with a desired storage capacity in various configurations Is possible.

図12に、再構成可能メモリ上に、メモリブロックを実現する例を示す。各メモリエレメントMA〜MLは、2KWord、32Bitの記憶容量を持っている。   FIG. 12 shows an example of realizing a memory block on a reconfigurable memory. Each of the memory elements MA to ML has a storage capacity of 2 KWords and 32 bits.

図12(A)は12個のメモリエレメントMA〜MLがネットワークで接続されることにより24KWord、32BitのメモリブロックA1を構成している。   In FIG. 12A, 12 memory elements MA to ML are connected by a network to constitute a 24 KWord, 32 bit memory block A1.

図12(B)は6個のメモリエレメントMA〜MFがネットワークで接続されることによりメモリブロックB1を構成し、6個のメモリエレメントMG〜MLがネットワークで接続されることによりメモリブロックB2を構成している。記憶容量は、メモリブロックB1、メモリブロックB2ともに、12KWord、32Bitである。   In FIG. 12B, the memory block B1 is configured by connecting six memory elements MA to MF via a network, and the memory block B2 is configured by connecting six memory elements MG to ML via a network. is doing. The storage capacity is 12 KWord and 32 Bit for both the memory block B1 and the memory block B2.

メモリポートは、各メモリブロックがひとつづつ利用することになる。すなわち、図12(A)は1個のメモリポート、図12(B)は2個のメモリポートを、それぞれ利用することになる。   The memory port is used by each memory block one by one. That is, FIG. 12A uses one memory port, and FIG. 12B uses two memory ports.

各メモリブロックが利用するメモリポートは、メモリブロックが割当てられた領域に配置されているメモリポート群の中の1つを任意に選択すれば良い。例えば、図12(A)では、メモリポートP1を利用しているが、メモリブロック領域にある、図11に示すその他の11個のメモリポートP2〜P12から1つ選択して利用しても良い。なお、図12(B)では、メモリブロックB1はメモリポートP5を利用しており、メモリブロックB2はメモリポートP8を利用している。   As the memory port used by each memory block, one of the memory port groups arranged in the area to which the memory block is allocated may be arbitrarily selected. For example, in FIG. 12A, the memory port P1 is used, but one of the other 11 memory ports P2 to P12 shown in FIG. 11 in the memory block area may be selected and used. . In FIG. 12B, the memory block B1 uses the memory port P5, and the memory block B2 uses the memory port P8.

ここで、半導体集積回路において、同時に利用されることのないメモリブロック集合が存在する場合、すなわち、各メモリブロックを利用する論理モジュールが排他的に動作する場合、これらのメモリブロックを、再構成可能メモリを利用して共有化することにより、半導体集積回路の面積を削減することが可能となる。   Here, in a semiconductor integrated circuit, when there is a set of memory blocks that are not used at the same time, that is, when a logic module that uses each memory block operates exclusively, these memory blocks can be reconfigured. By sharing using a memory, the area of the semiconductor integrated circuit can be reduced.

例えば、図13の回路に含まれる全てのメモリブロックが同時に利用されることがないとすると、図15に示すように、再構成可能メモリを利用して、論理モジュール間でひとつのメモリブロックを共有することにより、半導体集積回路の面積を削減することが可能となる。   For example, if all the memory blocks included in the circuit of FIG. 13 are not used at the same time, as shown in FIG. 15, a reconfigurable memory is used to share one memory block between logical modules. As a result, the area of the semiconductor integrated circuit can be reduced.

前述したように再構成可能メモリは様々な記憶容量のメモリブロックを実現することができるため、各論理モジュールが必要とするメモリブロックの記憶容量が様々に異なる場合でも、このようなメモリブロックの共有化が可能である。   As described above, since the reconfigurable memory can realize memory blocks having various storage capacities, even when the storage capacities of the memory blocks required by the respective logic modules are different, such memory blocks can be shared. Is possible.

特開2008−129725号公報JP 2008-129725 A 特開2006−323643号公報JP 2006-323643 A 特開2005−149273号公報JP 2005-149273 A

H.Saito,et al.”A Chip−Stacked Memory for On−Chip SRAM−Rich SoCs and Processors,”InternationalSolid State Circuits Conference,2009H. Saito, et al. “A Chip-Stacked Memory for On-Chip SRAM-Rich SoCs and Processors,” International Solid State Circuits Conference, 2009

しかしながら上記技術は、以下の点で改善の余地を有していた。   However, the above technique has room for improvement in the following points.

1つ目の課題として、メモリブロックを共有化することにより、接続が1つのメモリブロックに集中してしまい、半導体集積回路の配線性が悪化してしまうことがある。図15では、中心に配置された再構成可能メモリに8本の接続が集中している。配線の一か所への集中は配線性の悪化につながり、さらに、配線性の悪化は配線迂回による配線遅延悪化につながるため、深刻な問題である。   As a first problem, by sharing the memory block, the connection is concentrated on one memory block, and the wiring property of the semiconductor integrated circuit may be deteriorated. In FIG. 15, eight connections are concentrated in the reconfigurable memory arranged in the center. Concentration of wiring in one place leads to deterioration of wiring performance, and further, deterioration of wiring performance leads to deterioration of wiring delay due to wiring detouring, which is a serious problem.

2つ目の課題として、配置されたメモリブロックと論理モジュールの距離が遠くなり、メモリブロックと論理モジュール間の遅延が悪化してしまうことがある。図15ではlogic6がメモリブロックから離れて配置されているため、logic6とメモリブロックの間の接続に遅延上の問題が生じる可能性がある。これは、多くの論理モジュールがひとつのメモリブロックを共有する場合、すべての論理モジュールをひとつのメモリブロックの近辺に配置することが不可能となるために生じる問題である。この問題を解決するためには、例えば、図16に示すように、適切にメモリブロックの共有、非共有を行い、配置する必要がある。   The second problem is that the distance between the arranged memory block and the logic module is increased, and the delay between the memory block and the logic module is deteriorated. In FIG. 15, since logic 6 is arranged away from the memory block, there may be a delay problem in the connection between logic 6 and the memory block. This is a problem that occurs when it is impossible to arrange all the logical modules in the vicinity of one memory block when many logical modules share one memory block. In order to solve this problem, for example, as shown in FIG. 16, it is necessary to appropriately share and unshare memory blocks and arrange them.

図16では、logic1、logic6、logic2の組と、logic3、logic4の組と、logic5、logic7の組が、それぞれ再構成可能メモリ1〜4を利用してメモリブロックを共有している。   In FIG. 16, a set of logic1, logic6, and logic2, a set of logic3 and logic4, and a set of logic5 and logic7 share memory blocks using reconfigurable memories 1 to 4, respectively.

図16の場合、全てのメモリブロックをひとつの再構成可能メモリに割り当てる場合(図15)と比較して、面積は大きくなるが、配線性、遅延の観点から、こちらの共有方法の方が優れている場合がある。また、図14の、メモリの共有を全く行わない場合と比較しては、メモリブロックの使用量が削減されるため、全体の面積削減につながる。   In the case of FIG. 16, the area is larger than when all the memory blocks are assigned to one reconfigurable memory (FIG. 15), but this sharing method is better from the viewpoint of wiring property and delay. There may be. Further, compared to the case of not sharing memory at all in FIG. 14, the amount of memory blocks used is reduced, leading to a reduction in the overall area.

以上に述べたように、メモリブロックの共有化は、メモリブロックと論理モジュールの配置を考慮して、配線性が良く、かつ、遅延が小さくなるように、適切に行う必要がある。しかしながら、これまで、このような設計を行うための技術は提案されていない。   As described above, it is necessary to appropriately share the memory block so that the wiring property is good and the delay is small in consideration of the arrangement of the memory block and the logic module. However, until now, no technique has been proposed for performing such a design.

(発明の目的)
本発明は、上記事情に鑑みてなされたものであり、その目的とするところは、記憶容量およびポート位置が可変な再構成可能メモリを利用して、小面積かつ高性能な半導体集積回路を実現する設計装置、設計方法、およびコンピュータプログラムを提供することにある。
(Object of invention)
The present invention has been made in view of the above circumstances, and an object thereof is to realize a small area and high performance semiconductor integrated circuit using a reconfigurable memory having variable storage capacity and port position. The present invention provides a design apparatus, a design method, and a computer program.

本発明の第1の半導体集積回路の設計装置は、論理モジュールとメモリブロックからなるネットリストに関する情報と、排他的に利用されるメモリブロックに関する情報とで構成される、共有可能なメモリブロックの集合に関する情報を入力する入力手段と、ネットリストに関する情報に基づいて、論理モジュールとメモリブロックの配置位置を決定するフロアプランニング手段と、メモリブロック共有化指標を設定するメモリ共有化指標設定手段と、フロアプランニング手段で決定したフロアプランニング結果と、メモリブロック共有化指標とに基づき、共有化するメモリブロックを共有化メモリ集合として選択する共有化メモリ選択手段と、フロアプランニング結果の配線性および遅延を評価する配線性および遅延評価・判定手段と、フロアプランニング結果と、配線性および遅延評価結果とから、非共有化するメモリブロックを非共有化メモリ集合として選択する非共有化メモリ選択手段と、選択された共有化メモリ集合または非共有化メモリ集合の情報に基づきネットリストを更新するネットリスト更新手段と、ネットリスト更新手段によって更新されたネットリストと、フロアプランニング結果とを設計結果として出力する出力手段と、を備える。   A first semiconductor integrated circuit design apparatus according to the present invention is a set of sharable memory blocks composed of information relating to a netlist composed of logic modules and memory blocks, and information relating to memory blocks used exclusively. Input means for inputting information about, floor planning means for determining the placement positions of logical modules and memory blocks based on information about the netlist, memory sharing index setting means for setting a memory block sharing index, floor Based on the floor planning result determined by the planning means and the memory block sharing index, the shared memory selection means for selecting a memory block to be shared as a shared memory set, and the wiring property and delay of the floor planning result are evaluated. Wiring and delay evaluation / judgment means, and Non-shared memory selection means for selecting a memory block to be shared as a non-shared memory set from the planning result and the wiring property and delay evaluation result, and the selected shared memory set or non-shared memory set Netlist updating means for updating the netlist based on the above information, netlist updated by the netlist updating means, and output means for outputting the floor planning result as a design result.

本発明の第1の半導体集積回路の設計方法は、論理モジュールとメモリブロックからなるネットリストに関する情報と、排他的に利用されるメモリブロックに関する情報とで構成される、共有可能なメモリブロックの集合に関する情報を入力する入力ステップと、ネットリストに関する情報に基づいて、論理モジュールとメモリブロックの配置位置を決定するフロアプランニングステップと、メモリブロック共有化指標を設定するメモリ共有化指標設定ステップと、フロアプランニングステップで決定したフロアプランニング結果と、メモリブロック共有化指標とに基づき、共有化するメモリブロックを共有化メモリ集合として選択する共有化メモリ選択ステップと、フロアプランニング結果の配線性および遅延を評価する配線性および遅延評価・判定ステップと、フロアプランニング結果と、配線性および遅延評価結果とから、非共有化するメモリブロックを非共有化メモリ集合として選択する非共有化メモリ選択ステップと、選択された共有化メモリ集合または非共有化メモリ集合の情報に基づきネットリストを更新するネットリスト更新ステップと、ネットリスト更新ステップによって更新されたネットリストと、フロアプランニング結果とを設計結果として出力する出力ステップと、を有する。 A first method for designing a semiconductor integrated circuit according to the present invention is a set of sharable memory blocks composed of information relating to a netlist composed of logic modules and memory blocks, and information relating to memory blocks used exclusively. An input step for inputting information on the floor, a floor planning step for determining the placement positions of the logic modules and memory blocks based on the information on the netlist, a memory sharing index setting step for setting a memory block sharing index, and a floor Based on the floor planning result determined in the planning step and the memory block sharing index, the shared memory selection step for selecting the memory block to be shared as a shared memory set, and the wiring property and delay of the floor planning result are evaluated. Routability and delay A non-shared memory selection step for selecting a memory block to be unshared as a non-shared memory set from the price / judgment step, the floor planning result, the wiring property and the delay evaluation result, and the selected shared memory set Alternatively, the method includes a net list update step for updating the net list based on information of the unshared memory set, a net list updated by the net list update step, and an output step for outputting the floor planning result as a design result.

本発明の第1のプログラムは、半導体集積回路の設計装置であるコンピュータに、論理モジュールとメモリブロックからなるネットリストに関する情報と、排他的に利用されるメモリブロックに関する情報とで構成される、共有可能なメモリブロックの集合に関する情報を入力する入力処理と、ネットリストに関する情報に基づいて、論理モジュールとメモリブロックの配置位置を決定するフロアプランニング処理と、メモリブロック共有化指標を設定するメモリ共有化指標設定処理と、フロアプランニング処理で決定したフロアプランニング結果と、メモリブロック共有化指標とに基づき、共有化するメモリブロックを共有化メモリ集合として選択する共有化メモリ選択処理と、フロアプランニング結果の配線性および遅延を評価する配線性および遅延評価・判定処理と、フロアプランニング結果と、配線性および遅延評価結果とから、非共有化するメモリブロックを非共有化メモリ集合として選択する非共有化メモリ選択処理と、選択された共有化メモリ集合または非共有化メモリ集合の情報に基づきネットリストを更新するネットリスト更新処理と、ネットリスト更新処理によって更新されたネットリストと、フロアプランニング結果とを設計結果として出力する出力処理と、を実行させる。   A first program according to the present invention includes a computer, which is a semiconductor integrated circuit design apparatus, that includes information relating to a netlist composed of logic modules and memory blocks, and information relating to memory blocks used exclusively. Input processing that inputs information about a set of possible memory blocks, floor planning processing that determines the placement positions of logical modules and memory blocks based on information about the netlist, and memory sharing that sets a memory block sharing index Based on the index setting process, the floor planning result determined in the floor planning process, and the memory block sharing index, the shared memory selection process for selecting the memory block to be shared as a shared memory set, and the wiring of the floor planning result Wiring to evaluate safety and delay And non-shared memory selection processing for selecting a non-shared memory block as a non-shared memory set from the delay evaluation / determination processing, the floor planning result, the wiring property and the delay evaluation result, and the selected sharing A netlist update process for updating a netlist based on information on a memory set or a non-shared memory set, a netlist updated by the netlist update process, and an output process for outputting a floor planning result as a design result. Let it run.

本発明によれば、記憶容量およびポート位置が可変な再構成可能メモリを利用する半導体集積回路の設計において、メモリブロックと論理モジュールの配置を考慮して、配線性が良く、かつ、遅延が小さくなるように、メモリブロックの共有化を行うことが可能になる。これにより、小面積かつ高性能な半導体集積回路を設計することが可能となる。   According to the present invention, in the design of a semiconductor integrated circuit using a reconfigurable memory having a variable storage capacity and port position, considering the arrangement of the memory block and the logic module, the wiring property is good and the delay is small. Thus, it becomes possible to share memory blocks. This makes it possible to design a semiconductor integrated circuit having a small area and high performance.

本発明の実施の形態に係る半導体集積回路の設計装置の構成を示す機能ブロック図である。It is a functional block diagram which shows the structure of the design apparatus of the semiconductor integrated circuit which concerns on embodiment of this invention. 本発明の実施の形態に係る半導体集積回路の設計方法の処理手順の一例を示すフローチャートである。It is a flowchart which shows an example of the process sequence of the design method of the semiconductor integrated circuit which concerns on embodiment of this invention. メモリブロックの共有化を行わない初期フロアプランニングの一例を示す図である。It is a figure which shows an example of the initial floor planning which does not share a memory block. 距離制約の緩いメモリ共有化指標に基づいた共有化メモリ選択結果の一例を示す図である。It is a figure which shows an example of the shared memory selection result based on the memory sharing parameter | index with loose distance restrictions. 図4のメモリ共有化情報に基づきメモリブロックを共有化し、ネットリストを更新した後、フロアプランニングを行った結果の一例を示す図である。FIG. 5 is a diagram illustrating an example of a result of floor planning after a memory block is shared based on the memory sharing information of FIG. 4 and a netlist is updated. 配線性および遅延を評価し、非共有化するメモリに接続する論理モジュールを選択した結果の一例を示す図である。It is a figure which shows an example of the result of having selected the logic module connected to the memory which evaluates wiring property and a delay, and is not shared. 図6の非共有化メモリ情報に基づき、メモリブロックを非共有化し、ネットリストを更新した結果の一例を示す図である。It is a figure which shows an example of the result of having made a memory block unshared and updating a net list based on the unshared memory information of FIG. 図7のメモリ非共有化後のネットリストに対するフロアプランニングと、フロアプランニング結果と距離制約の厳しいメモリ共有化指標に基づいた共有化メモリ選択結果の一例を示す図である。FIG. 8 is a diagram illustrating an example of floor planning for the netlist after memory non-sharing in FIG. 7 and a shared memory selection result based on a floor planning result and a memory sharing index with severe distance constraints. 図8のメモリ共有化情報に基づきメモリを共有化し、ネットリストを更新した結果の一例を示す図である。FIG. 9 is a diagram illustrating an example of a result of sharing a memory and updating a netlist based on the memory sharing information of FIG. 8. 図9の更新したネットリストに対してフロアプランニングを行った結果の一例を示す図である。It is a figure which shows an example of the result of having performed floor planning with respect to the updated net list of FIG. 再構成可能メモリの例を示す図である。It is a figure which shows the example of a reconfigurable memory. 再構成可能メモリに24KWord、32bitのメモリブロックを1つ実現する例と、12KWord、32bitのメモリブロックを2つ実現する例を示す図である。It is a figure which shows the example which implement | achieves one 24KWord, 32-bit memory block in a reconfigurable memory, and the example which implement | achieves two 12KWord, 32-bit memory blocks. 論理モジュールとメモリブロックからなるネットリストの一例を示す図である。It is a figure which shows an example of the net list which consists of a logic module and a memory block. 図13に対する背景技術によるフロアプランニング結果の一例を示す図である。It is a figure which shows an example of the floor planning result by the background art with respect to FIG. 図13のすべてのメモリブロックを共有化してフロアプランを行った結果の一例を示す図である。It is a figure which shows an example of the result of having performed the floor plan by sharing all the memory blocks of FIG. 図13のメモリブロック集合を部分的に共有化してフロアプランを行った結果の一例を示す図である。FIG. 14 is a diagram illustrating an example of a result of performing a floor plan by partially sharing the memory block set of FIG. 13.

以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。   Hereinafter, embodiments of the present invention will be described with reference to the drawings. In all the drawings, the same reference numerals are given to the same components, and the description will be omitted as appropriate.

(第1の実施の形態)
図1は、本発明の実施の形態に係る半導体集積回路の設計装置の構成を示す機能ブロック図である。
(First embodiment)
FIG. 1 is a functional block diagram showing a configuration of a semiconductor integrated circuit design apparatus according to an embodiment of the present invention.

本実施の形態の半導体集積回路設計装置100は、論理モジュールとメモリブロックからなるネットリスト、および、排他的に利用されるメモリブロック、すなわち、共有可能なメモリブロック集合に関する情報を入力する入力部101と、論理モジュールとメモリブロックからなるネットリスト情報に基づいて、論理モジュールとメモリブロックの配置位置を決定するフロアプランニング部102と、メモリの共有化指標を設定するメモリ共有化指標設定部103と、フロアプランニング結果とメモリ共有化指標に基づき共有化するメモリを選択する共有化メモリ選択部104と、フロアプランニング結果の配線性および遅延を評価する配線性および遅延評価部106と、フロアプランニング結果と配線性および遅延評価結果から非共有化するメモリを選択する非共有化メモリ選択部107と、選択された共有化メモリ集合または非共有化メモリ集合の情報に基づきネットリストを更新するネットリスト更新部105と、更新されたネットリストとそのフロアプランニング結果を設計結果として出力する出力部108と、を備える。   The semiconductor integrated circuit design apparatus 100 according to the present embodiment has an input unit 101 for inputting information on a netlist composed of logic modules and memory blocks, and memory blocks used exclusively, that is, a sharable memory block set. And a floor planning unit 102 for determining the arrangement position of the logical module and the memory block based on netlist information composed of the logical module and the memory block, a memory sharing index setting unit 103 for setting a memory sharing index, A shared memory selection unit 104 that selects a memory to be shared based on a floor planning result and a memory sharing index, a wiring property and delay evaluation unit 106 that evaluates wiring property and delay of the floor planning result, a floor planning result and wiring Non-sharing from sex and lazy evaluation results A non-shared memory selection unit 107 that selects a memory to be selected, a net list update unit 105 that updates a net list based on information of the selected shared memory set or non-shared memory set, an updated net list, and And an output unit 108 that outputs a floor planning result as a design result.

なお、本実施の形態の半導体集積回路設計装置100は、制御装置、記憶装置、入力装置および表示装置からなる一般的なコンピュータにより構成することができる。これらの各部については図示しない。また、上記の各ユニットは、記憶装置に格納されたコンピュータプログラムにより動作する制御装置により、ROM(Read Only Memory)、RAM(Random Access Memory)などの記憶装置上に構築されて制御される。なお、以下の図において、本発明の本質に関わらない部分の構成については省略してあり、図示されていない。   The semiconductor integrated circuit design device 100 of the present embodiment can be configured by a general computer including a control device, a storage device, an input device, and a display device. These parts are not shown. Each unit is constructed and controlled on a storage device such as a ROM (Read Only Memory) and a RAM (Random Access Memory) by a control device that operates according to a computer program stored in the storage device. In the following drawings, the configuration of parts not related to the essence of the present invention is omitted and is not shown.

すなわち、半導体集積回路設計装置100の各構成要素は、任意のコンピュータのCPU(Central Processing Unit)、メモリ、メモリにロードされた本図の構成要素を実現するプログラム、そのプログラムを格納するハードディスクなどの記憶ユニット、ネットワーク接続用インタフェースを中心にハードウエアとソフトウエアの任意の組合せによって実現される。そして、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。以下説明する各図は、ハードウエア単位の構成ではなく、機能単位のブロックを示している。   That is, each component of the semiconductor integrated circuit design device 100 includes a CPU (Central Processing Unit) of an arbitrary computer, a memory, a program that realizes the components of this figure loaded in the memory, and a hard disk that stores the program. It is realized by any combination of hardware and software, centering on the storage unit and network connection interface. It will be understood by those skilled in the art that there are various modifications to the implementation method and apparatus. Each drawing described below shows a functional unit block, not a hardware unit configuration.

入力部101は、論理モジュールとメモリブロックからなるネットリスト、および、排他的に利用されるメモリブロック、すなわち、共有可能なメモリブロック集合に関する情報を受け付け、記憶する。入力部101は、例えば、半導体集積回路設計装置100の図示されない、入出力インタフェースを介して、各種記録媒体または記憶装置、あるいはネットワークなどを介した他の装置からデータを入力して受け付けてもよいし、ユーザが操作入力したデータを受け付けてもよい。入力情報は、必ずしも毎回受け付けて更新する必要はなく、コンピュータの記憶ユニット等に記憶されている情報を利用することもできる。   The input unit 101 receives and stores information relating to a netlist composed of logic modules and memory blocks, and memory blocks used exclusively, that is, a sharable memory block set. The input unit 101 may receive and input data from various recording media or storage devices or other devices via a network or the like via an input / output interface (not shown) of the semiconductor integrated circuit design device 100, for example. Alternatively, data input by the user may be accepted. The input information does not necessarily have to be received and updated every time, and information stored in a storage unit or the like of the computer can be used.

フロアプランニング部102は、論理モジュールとメモリブロックからなるネットリスト情報に基づいて、論理モジュールとメモリブロックの配置位置を決定する。このフロアプランニング部102は、既存のフロアプランニング技術を用いることもでき、本発明の本質に関わらないので詳細な説明は省略する。   The floor planning unit 102 determines an arrangement position of the logic module and the memory block based on net list information including the logic module and the memory block. The floor planning unit 102 can use an existing floor planning technique, and is not related to the essence of the present invention, and thus detailed description thereof is omitted.

メモリ共有化指標設定部103は、メモリブロックの共有化指標を設定する。たとえば、フロアプランニング結果における、メモリブロック間の距離を指標として用いることができる。すなわち、ある閾値以下の距離内に配置されている共有可能なブロックの集合を共有化対象とすることとし、この閾値を設定することが考えられる。   The memory sharing index setting unit 103 sets a memory block sharing index. For example, the distance between memory blocks in the floor planning result can be used as an index. That is, it is considered that a set of sharable blocks arranged within a distance equal to or smaller than a certain threshold is set as a sharing target, and this threshold is set.

共有化メモリ選択部104は、フロアプランニング結果とメモリ共有化指標に基づき共有化するメモリブロックを選択する。たとえば、フロアプランニング結果における、メモリブロック間の距離を指標として用いる場合、メモリ共有化指標設定部103で設定された閾値以下の距離内に配置されている共有可能なブロックの集合を共有化対象として選択する。   The shared memory selection unit 104 selects a memory block to be shared based on the floor planning result and the memory sharing index. For example, when using the distance between memory blocks as an index in the floor planning result, a set of sharable blocks arranged within a distance equal to or less than the threshold set by the memory sharing index setting unit 103 is set as a sharing target. select.

配線性および遅延評価・判定部106は、フロアプランニング結果の配線性および遅延を評価し、配線性および遅延が設計制約を充足しているかどうかを判定する。   The wiring property and delay evaluation / determination unit 106 evaluates the wiring property and delay of the floor planning result, and determines whether the wiring property and delay satisfy the design constraints.

この配線性および遅延評価には、概略配線を使用するなど、従来から提案されている技術を利用することが可能であり、本発明の本質に関わらないので詳細な説明は省略する。   For this wiring property and delay evaluation, it is possible to use a conventionally proposed technique such as using a schematic wiring, and the detailed description is omitted because it is not related to the essence of the present invention.

非共有化メモリ選択部107は、フロアプランニング結果と配線性および遅延評価結果から非共有化するメモリを選択する。ここでは、共有メモリブロックとの間で配線性制約違反あるいは遅延制約違反を起こしている論理モジュールを選択し、該当の論理モジュールが利用しているメモリを共有化メモリから分離するメモリブロックとして選択する。   The unshared memory selection unit 107 selects a memory to be unshared from the floor planning result, the wiring property, and the delay evaluation result. Here, select a logical module that has caused a wiring constraint violation or delay constraint violation with the shared memory block, and select the memory used by the corresponding logical module as a memory block to be separated from the shared memory. .

ネットリスト更新部105は、選択された共有化メモリ集合または非共有化メモリ集合の情報に基づきネットリストを更新する。メモリブロックを共有化する場合は、ネットリスト内の対象メモリブロックをひとつのメモリブロックに併合する形でネットリストの更新を行う。メモリブロックを非共有化する場合は、ネットリスト内の対象メモリブロックを共有メモリブロックから分離する形でネットリストの更新を行う。   The netlist update unit 105 updates the netlist based on information on the selected shared memory set or non-shared memory set. When sharing a memory block, the netlist is updated by merging the target memory block in the netlist into one memory block. When the memory block is unshared, the net list is updated by separating the target memory block in the net list from the shared memory block.

出力部108は、更新されたネットリストとそのフロアプランニング結果を設計結果として出力する。   The output unit 108 outputs the updated netlist and its floor planning result as a design result.

本実施の形態の半導体集積回路設計装置100において、CPUが、ハードディスクに記憶されるプログラムをメモリに読み出して実行することにより、上記各ユニットの各機能を実現することができる。   In the semiconductor integrated circuit design device 100 according to the present embodiment, the CPU can realize each function of each unit by reading out a program stored in the hard disk into the memory and executing it.

本実施形態のコンピュータプログラムは、半導体集積回路設計装置100を実現させるためのコンピュータに、論理モジュールとメモリブロックからなるネットリスト、および、排他的に利用されるメモリブロック、すなわち、共有可能なメモリブロック集合に関する情報を入力する手順と、論理モジュールとメモリブロックからなるネットリスト情報に基づいて、論理モジュールとメモリブロックの配置位置を決定する手順と、メモリの共有化指標を設定する手順と、フロアプランニング結果とメモリ共有化指標に基づき共有化するメモリを選択する手順と、フロアプランニング結果の配線性および遅延を評価する手順と、フロアプランニング結果と配線性および遅延評価結果から非共有化するメモリを選択する手順と、選択された共有化メモリ集合または非共有化メモリ集合の情報に基づきネットリストを更新する手順と、更新されたネットリストとそのフロアプランニング結果を設計結果として出力する手順と、を実行させるように記述されている。   The computer program according to the present embodiment includes a netlist composed of logic modules and memory blocks and a memory block used exclusively by the computer for realizing the semiconductor integrated circuit design device 100, that is, a sharable memory block. A procedure for inputting information related to the set, a procedure for determining the arrangement position of the logical module and the memory block based on the netlist information composed of the logical module and the memory block, a procedure for setting a memory sharing index, and floor planning Select the memory to be shared based on the result and memory sharing index, the procedure to evaluate the wiring property and delay of the floor planning result, and select the memory to be unshared from the floor planning result and the wiring property and delay evaluation result Procedure and selected sharing A step of updating the netlist based on memory collection or information of the non-sharing memory set, updated netlist and a step of outputting the floorplanning result resulting design is described so as to run.

(第1の実施の形態の動作の説明)
次に、図面を参照して、本実施の形態の動作について詳細に説明する。
(Description of the operation of the first embodiment)
Next, the operation of the present embodiment will be described in detail with reference to the drawings.

本実施の形態による半導体集積回路設計装置100の動作について、図面を参照して詳細に説明する。図2は、本発明の実施の形態に係る半導体集積回路の設計方法の処理手順の一例を示すフローチャートである。   The operation of the semiconductor integrated circuit design apparatus 100 according to the present embodiment will be described in detail with reference to the drawings. FIG. 2 is a flowchart showing an example of the processing procedure of the method for designing a semiconductor integrated circuit according to the embodiment of the present invention.

本実施形態の半導体集積回路の設計方法は、論理モジュールとメモリブロックからなるネットリスト、および共有可能なメモリブロック情報を入力し(ステップS201)、メモリ共有化指標を設定し(ステップS202)、メモリブロックと論理モジュールを配置し(ステップS203)、メモリ共有化指標に基づき、共有化するメモリを選択し(ステップS204)、メモリ共有化情報に基づき、ネットリストを更新し(ステップS205)、更新されたネットリスト内のメモリブロックおよび論理モジュールを再配置し(ステップS206)、メモリブロックと論理モジュール間の遅延および配線性を評価し(ステップS207)、遅延および配線性評価結果が遅延および配線性制約を充足するかどうかを判定し(ステップS208)、制約を満たさない場合は(ステップS208”NO”)、遅延および配線性評価結果に基づき、非共有化するメモリブロックを選択し(ステップS209)、選択された非共有化メモリブロック情報に基づきネットリストを更新し(ステップS2010)、再度ステップS202に戻り、上記のステップ2からステップ10の処理を繰り返す。ただしステップS202での指標は共有化される1つのメモリ集合に含まれるメモリブロック数が徐々に少なくなるように調整される。ステップS202からステップS210までの処理は、ステップS208の遅延および配線性判定で、遅延および配線性に関する制約充足したと判定されるまで繰り返される。ステップS208で、メモリ共有化と対応するネットリストのフロアプランニング結果が、遅延および配線性に関する制約を満たすと判定された場合は(ステップS208”YES”)、メモリ共有化とフロアプランニング結果を、設計結果として出力する(ステップS211)。   The semiconductor integrated circuit design method of the present embodiment inputs a netlist composed of logic modules and memory blocks, and sharable memory block information (step S201), sets a memory sharing index (step S202), and a memory. Blocks and logic modules are arranged (step S203), a memory to be shared is selected based on the memory sharing index (step S204), and the netlist is updated based on the memory sharing information (step S205). The memory blocks and logic modules in the netlist are rearranged (step S206), the delay and wiring property between the memory block and the logic module are evaluated (step S207), and the delay and wiring property evaluation result is the delay and wiring property constraint. Whether or not is satisfied (step S208) If the constraint is not satisfied (step S208 “NO”), a memory block to be unshared is selected based on the delay and wiring property evaluation result (step S209), and a netlist is selected based on the selected unshared memory block information. (Step S2010), the process returns to step S202 again, and the processing from step 2 to step 10 is repeated. However, the index in step S202 is adjusted so that the number of memory blocks included in one shared memory set gradually decreases. The processing from step S202 to step S210 is repeated until it is determined in the delay and wiring property determination in step S208 that the constraints regarding delay and wiring property are satisfied. If it is determined in step S208 that the floor planning result of the netlist corresponding to memory sharing satisfies the constraints on delay and wiring (step S208 “YES”), the memory sharing and floor planning result is designed. The result is output (step S211).

以下、図3乃至図10を用いて具体的に説明する。   This will be specifically described below with reference to FIGS.

はじめに、入力部101により、設計対象となる半導体集積回路のメモリブロックと論理モジュールおよびその間の接続を表現するネットリスト、および共有可能メモリ集合に関する情報の入力を受け付け記憶する(ステップS201)。   First, the input unit 101 receives and stores input of information relating to a memory block and a logic module of a semiconductor integrated circuit to be designed and a netlist expressing a connection between them and a sharable memory set (step S201).

ここで、図3にネットリストの例を示す。図3では、全てのメモリブロックが共有可能であるとする。なお、実際は、論理モジュール間にもデータ転送を行うための接続が存在するが、図3では簡単のため、論理モジュール間の接続を省略している。   Here, FIG. 3 shows an example of a net list. In FIG. 3, it is assumed that all memory blocks can be shared. Actually, there is a connection for transferring data between the logic modules, but in FIG. 3, the connection between the logic modules is omitted for simplicity.

次に、メモリ共有化指標設定部103により、共有化するメモリの指標を設定する(ステップS202)。ここでは、フロアプランニング結果における、メモリブロック間の距離をメモリ共有化指標として用いることにする。すなわち、ある閾値以下の距離内に配置されている共有可能なブロックの集合を共有化対象とすることとし、この閾値を設定する。まずは、配置領域全体を囲う長さをこの閾値として設定する。   Next, the memory sharing index setting unit 103 sets a memory index to be shared (step S202). Here, the distance between the memory blocks in the floor planning result is used as a memory sharing index. That is, a set of sharable blocks arranged within a distance equal to or smaller than a certain threshold is set as a sharing target, and this threshold is set. First, the length surrounding the entire arrangement area is set as this threshold value.

次に、入力部101により記憶されたネットリストに対して、フロアプランニング部102が、論理モジュールとメモリブロックの配置をネットリストのメモリブロックおよび論理モジュール間接続に基づいて行い、図3のようなフロアプランニング結果を生成する(ステップS203)。   Next, with respect to the net list stored by the input unit 101, the floor planning unit 102 performs the arrangement of the logic modules and memory blocks based on the connections between the memory blocks and the logic modules in the net list as shown in FIG. A floor planning result is generated (step S203).

次に、ステップS202で設定した指標とステップS203で得たフロアプランニング結果を基に、共有化メモリ選択部104が、共有化するメモリを選択する(ステップS204)。   Next, based on the index set in step S202 and the floor planning result obtained in step S203, the shared memory selection unit 104 selects a memory to be shared (step S204).

ここで、図4に該選択の結果を示す。図4では、メモリ共有化指標設定部103で、フロアプランニング結果におけるメモリブロック間の距離を共有化指標とし、配置領域全体を囲う長さ以内に配置されているメモリブロックを共有化対象とすることとしたため、すべてのメモリブロックが共有化対象とされている。   Here, FIG. 4 shows the result of the selection. In FIG. 4, the memory sharing index setting unit 103 uses the distance between memory blocks in the floor planning result as a sharing index, and sets memory blocks arranged within a length surrounding the entire arrangement area as sharing targets. Therefore, all memory blocks are shared.

次に、ネットリスト更新部105が、ステップS204で選択された共有化対象メモリを併合することにより、ネットリストを更新する(ステップS205)。 Next, the net list update unit 105 updates the net list by merging the sharing target memories selected in step S204 (step S205).

次に、フロアプランニング部102が、ネットリスト更新により得られたネットリストを対象として、メモリブロック、論理モジュールの配置を行う(ステップS206)。ここで、図5に、ネットリスト更新によりえられたネットリストを対象としたフロアプランニング結果を示す。   Next, the floor planning unit 102 arranges memory blocks and logic modules for the net list obtained by updating the net list (step S206). Here, FIG. 5 shows the floor planning result for the net list obtained by the net list update.

次に、遅延および配線性評価・判定部106が、メモリブロック、論理モジュール間の遅延、配線性の評価を行う(ステップS207)。   Next, the delay and wiring property evaluation / determination unit 106 evaluates the delay and wiring property between the memory block and the logic module (step S207).

次に、遅延および配線性評価・判定部106が、遅延および配線性評価結果に基づき、遅延、配線性制約を充足するかどうかを判定する(ステップS208)。ここでは、logic 1、logic2、logic5、logic6、およびlogic8と再構成可能メモリの間で、配線性あるいは遅延違反を起こしていると判定されたとする。   Next, the delay and wiring property evaluation / determination unit 106 determines whether or not the delay and wiring property restriction is satisfied based on the delay and wiring property evaluation result (step S208). Here, it is assumed that it is determined that a wiring property or a delay violation has occurred between logic 1, logic 2, logic 5, logic 6, logic 8 and the reconfigurable memory.

次に、非共有化メモリ選択部107が、遅延および配線性評価結果に基づき、非共有化するメモリブロックを選択する(ステップS209)。ここで、図6に非共有化対象として選択されたメモリブロックに接続する論理モジュールを示す。   Next, the unshared memory selection unit 107 selects a memory block to be unshared based on the delay and wiring property evaluation results (step S209). Here, FIG. 6 shows a logic module connected to a memory block selected as a non-sharing target.

図6では、遅延および配線性評価・判定部106で、logic1、logic2、logic5、logic6、およびlogic8と、再構成可能メモリとの間で、配線性あるいは遅延違反を起こしていると判定されたため、logic1、logic2、logic5、logic6、およびlogic8に接続するメモリブロックが非共有化対象として選択されている。   In FIG. 6, the delay and wiring property evaluation / determination unit 106 determines that a wiring property or a delay violation has occurred between logic1, logic2, logic5, logic6, and logic8 and the reconfigurable memory. Memory blocks connected to logic1, logic2, logic5, logic6, and logic8 are selected as non-sharing targets.

次に、ネットリスト更新部105が、メモリ共有化情報に基づきネットリストを更新する(ステップS210)。ここで、図7に、ステップS210による更新後のネットリストを示す。   Next, the net list update unit 105 updates the net list based on the memory sharing information (step S210). Here, FIG. 7 shows the net list after the update in step S210.

次に、ステップS202に戻り、メモリ共有化指標設定部103がメモリ共有化指標を更新する。ここでは、前回と同様、フロアプランニング結果における、メモリブロック間の距離をメモリ共有化指標として用いることにする。すなわち、ある閾値以下の距離内に配置されている共有可能なブロックの集合を共有化対象とすることとし、この閾値を更新する。ただし、今回は、配置領域の1辺の1/2をこの閾値として設定する。   Next, returning to step S202, the memory sharing index setting unit 103 updates the memory sharing index. Here, as in the previous case, the distance between the memory blocks in the floor planning result is used as a memory sharing index. In other words, a set of sharable blocks arranged within a distance equal to or smaller than a certain threshold is set as a sharing target, and this threshold is updated. However, this time, 1/2 of one side of the arrangement area is set as this threshold value.

次に、フロアプランニング部102が、メモリブロック非共有化により更新されたネットリストに対して、論理モジュールおよびメモリブロックの再配置を行う(ステップS203)。   Next, the floor planning unit 102 rearranges the logic modules and the memory blocks with respect to the net list updated by the memory block non-sharing (step S203).

次に、ステップS202で設定した指標とステップS203で得たフロアプランニング結果を基に共有化するメモリを選択する(ステップS204)。ここで、図4に選択の結果を示す。   Next, a memory to be shared is selected based on the index set in step S202 and the floor planning result obtained in step S203 (step S204). Here, FIG. 4 shows the result of selection.

図4では、メモリ共有化指標設定部103で、フロアプランニング結果における、メモリブロック間の距離を共有化指標とし、配置領域の1辺の1/2の長さ以内に配置されているメモリブロックを共有化対象とすることとしたため、mem1とmem6の組と、mem5とmem8の組と、mem2と再構成可能メモリの組と、がそれぞれ共有化の組とされている。   In FIG. 4, the memory sharing index setting unit 103 uses the distance between memory blocks in the floorplanning result as a sharing index, and the memory blocks arranged within the length of one side of the arrangement area are displayed. Since it is set as a sharing target, a set of mem1 and mem6, a set of mem5 and mem8, and a set of mem2 and a reconfigurable memory are set as sharing sets.

次に、ネットリスト更新部105が、ステップS204で選択された共有化対象メモリを併合することにより、ネットリストを更新する(ステップS205)。図10にネットリスト更新によりえられたネットリストを示す。   Next, the net list update unit 105 updates the net list by merging the sharing target memories selected in step S204 (step S205). FIG. 10 shows a net list obtained by updating the net list.

次に、フロアプランニング部102が、ネットリスト更新により得られたネットリストを対象として、メモリブロック、論理モジュールの配置を再度行う(ステップS206)。図10に、フロアプランニング結果を示す。   Next, the floor planning unit 102 arranges memory blocks and logic modules again for the net list obtained by updating the net list (step S206). FIG. 10 shows the floor planning result.

次に、遅延および配線性評価・判定部106が、メモリブロック、論理モジュール間の遅延、配線性の評価を行う(ステップS207)。   Next, the delay and wiring property evaluation / determination unit 106 evaluates the delay and wiring property between the memory block and the logic module (step S207).

次に、遅延および配線性評価・判定部106が、遅延および配線性評価結果に基づき、遅延、配線性制約を充足するかどうかを判定する(ステップS208)。ここで、配線性および遅延違反を起こしていないと判定されると(ステップS208”YES”)、図10のネットリストおよびフロアプランニング結果が、設計結果として出力されることになる(ステップS211)。   Next, the delay and wiring property evaluation / determination unit 106 determines whether or not the delay and wiring property restriction is satisfied based on the delay and wiring property evaluation result (step S208). Here, if it is determined that the wiring property and the delay violation have not occurred (step S208 “YES”), the net list and the floor planning result of FIG. 10 are output as the design result (step S211).

(第1の実施の形態による効果)
次に本実施の形態の効果について説明する。
(Effects of the first embodiment)
Next, the effect of this embodiment will be described.

本実施形態の半導体集積回路の設計装置および設計方法によれば、記憶容量およびポート位置が可変な再構成可能メモリを利用して、設計を行う半導体集積回路の設計において、メモリブロックと論理モジュールの配置を考慮して、配線性が良く、かつ、遅延が小さくなるように、メモリブロックの共有化を行うことが可能になる。これにより、小面積かつ高性能な半導体集積回路を設計することが可能となる。   According to the semiconductor integrated circuit design apparatus and design method of the present embodiment, in designing a semiconductor integrated circuit to be designed using a reconfigurable memory having a variable storage capacity and port position, the memory block and the logic module In consideration of the arrangement, it is possible to share the memory blocks so that the wiring property is good and the delay is small. This makes it possible to design a semiconductor integrated circuit having a small area and high performance.

以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。   As mentioned above, although embodiment of this invention was described with reference to drawings, these are the illustrations of this invention, Various structures other than the above are also employable.

以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。   While the present invention has been described with reference to the embodiments, the present invention is not limited to the above embodiments. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention.

なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。   It should be noted that any combination of the above-described constituent elements and a conversion of the expression of the present invention between a method, an apparatus, a system, a recording medium, a computer program, etc. are also effective as an aspect of the present invention.

また、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。   The various components of the present invention do not necessarily have to be independent of each other. A plurality of components are formed as a single member, and a single component is formed of a plurality of members. It may be that a certain component is a part of another component, a part of a certain component overlaps with a part of another component, or the like.

また、本発明の方法およびコンピュータプログラムには複数の手順を順番に記載してあるが、その記載の順番は複数の手順を実行する順番を限定するものではない。このため、本発明の方法およびコンピュータプログラムを実施する時には、その複数の手順の順番は内容的に支障しない範囲で変更することができる。   Moreover, although the several procedure is described in order in the method and computer program of this invention, the order of the description does not limit the order which performs a several procedure. For this reason, when implementing the method and computer program of this invention, the order of the several procedure can be changed in the range which does not interfere in content.

さらに、本発明の方法およびコンピュータプログラムの複数の手順は個々に相違するタイミングで実行されることに限定されない。このため、ある手順の実行中に他の手順が発生すること、ある手順の実行タイミングと他の手順の実行タイミングとの一部ないし全部が重複していること、等でもよい。   Furthermore, the plurality of procedures of the method and the computer program of the present invention are not limited to being executed at different timings. For this reason, another procedure may occur during the execution of a certain procedure, or some or all of the execution timing of a certain procedure and the execution timing of another procedure may overlap.

(付記1)
前記メモリ共有化指標設定ステップで、
前記フロアプランニング結果におけるメモリブロック間の距離を、前記メモリブロック共有化指標とすることを特徴とする請求項8に記載の半導体集積回路の設計方法。
(Appendix 1)
In the memory sharing index setting step,
9. The method of designing a semiconductor integrated circuit according to claim 8, wherein a distance between memory blocks in the floor planning result is used as the memory block sharing index.

(付記2)
前記共有化メモリ選択ステップで、
前記フロアプランニング結果における前記メモリブロック間の距離が、前記メモリブロック共有化指標以下である前記共有可能なメモリブロックの集合を、前記共有化メモリ集合として選択することを特徴とする付記1に記載の半導体集積回路の設計方法。
(Appendix 2)
In the shared memory selection step,
The set of the sharable memory blocks in which the distance between the memory blocks in the floor planning result is equal to or less than the memory block sharing index is selected as the shared memory set. A method for designing a semiconductor integrated circuit.

(付記3)
前記非共有化メモリ選択ステップで、
前記フロアプランニング結果において共有メモリブロックとの間で配線性制約違反あるいは遅延制約違反を起こしている前記論理モジュールを選択し、選択した前記論理モジュールが利用している前記メモリブロックを、前記非共有化メモリ集合として選択することを特徴とする請求項8又は付記1又は付記2に記載の半導体集積回路の設計方法。
(Appendix 3)
In the unshared memory selection step,
In the floor planning result, the logical module that causes a wiring constraint violation or a delay constraint violation with a shared memory block is selected, and the memory block used by the selected logical module is unshared. 9. The method for designing a semiconductor integrated circuit according to claim 8, wherein the memory set is selected as a memory set.

(付記4)
前記ネットリスト更新ステップで、
前記メモリブロックを共有化する場合は、前記ネットリスト内の対象メモリブロックをひとつのメモリブロックに併合する形で前記ネットリストを更新し、
前記メモリブロックを非共有化する場合は、ネットリスト内の対象メモリブロックを共有メモリブロックから分離する形で前記ネットリストを更新することを特徴とする請求項8又は付記1から付記3の何れか1項に記載の半導体集積回路の設計方法。
(Appendix 4)
In the netlist update step,
When sharing the memory block, the netlist is updated in such a manner that the target memory block in the netlist is merged into one memory block,
The non-shared memory block includes updating the net list by separating the target memory block in the net list from the shared memory block. 2. A method for designing a semiconductor integrated circuit according to item 1.

(付記5)
前記設計結果として出力された前記更新されたネットリストと前記フロアプランニング結果に基づいて、
前記メモリ共有化指標ステップによる処理と、前記フロアプランニングステップによる処理と、前記共有化メモリ選択ステップによる処理と、前記非共有化メモリ選択ステップによる処理と、前記ネットリスト更新ステップによる処理と、前記配線性および遅延評価・判定ステップによる処理と、を繰り返し実行するステップを備えることを特徴とする請求項8又は付記1から付記4の何れか1項に記載の半導体集積回路の設計方法。
(Appendix 5)
Based on the updated netlist output as the design result and the floor planning result,
The processing by the memory sharing index step, the processing by the floor planning step, the processing by the shared memory selection step, the processing by the unshared memory selection step, the processing by the netlist update step, and the wiring 5. The method for designing a semiconductor integrated circuit according to claim 8, further comprising a step of repeatedly executing the processing by the performance and delay evaluation / determination step. 6.

(付記6)
前記メモリ共有化指標設定ステップで、
共有化されるメモリの数が徐々に少なくなるように、前記メモリブロック共有化指標を調整することを特徴とする付記5に記載の半導体集積回路の設計方法。
(Appendix 6)
In the memory sharing index setting step,
The method for designing a semiconductor integrated circuit according to appendix 5, wherein the memory block sharing index is adjusted so that the number of shared memories gradually decreases.

(付記7)
前記メモリ共有化指標設定処理において、
前記フロアプランニング結果におけるメモリブロック間の距離を、前記メモリブロック共有化指標とすることを特徴とする請求項9に記載のプログラム。
(Appendix 7)
In the memory sharing index setting process,
The program according to claim 9, wherein a distance between memory blocks in the floor planning result is used as the memory block sharing index.

(付記8)
前記共有化メモリ選択処理において、
前記フロアプランニング結果における前記メモリブロック間の距離が、前記メモリブロック共有化指標以下である前記共有可能なメモリブロックの集合を、前記共有化メモリ集合として選択することを特徴とする付記7に記載のプログラム。
(Appendix 8)
In the shared memory selection process,
The additional memory according to claim 7, wherein a set of the sharable memory blocks whose distance between the memory blocks in the floor planning result is equal to or smaller than the memory block sharing index is selected as the shared memory set. program.

(付記9)
前記非共有化メモリ選択処理において、
前記フロアプランニング結果において共有メモリブロックとの間で配線性制約違反あるいは遅延制約違反を起こしている前記論理モジュールを選択し、選択した前記論理モジュールが利用している前記メモリブロックを、前記非共有化メモリ集合として選択することを特徴とする請求項9又は付記7又は付記8に記載のプログラム。
(Appendix 9)
In the unshared memory selection process,
In the floor planning result, the logical module that causes a wiring constraint violation or a delay constraint violation with a shared memory block is selected, and the memory block used by the selected logical module is unshared. The program according to claim 9 or appendix 7 or appendix 8, wherein the program is selected as a memory set.

(付記10)
前記ネットリスト更新処理において、
前記メモリブロックを共有化する場合は、前記ネットリスト内の対象メモリブロックをひとつのメモリブロックに併合する形で前記ネットリストを更新し、
前記メモリブロックを非共有化する場合は、ネットリスト内の対象メモリブロックを共有メモリブロックから分離する形で前記ネットリストを更新することを特徴とする請求項9又は付記7から付記9の何れか1項に記載のプログラム。
(Appendix 10)
In the netlist update process,
When sharing the memory block, the netlist is updated in such a manner that the target memory block in the netlist is merged into one memory block,
10. When the memory block is unshared, the net list is updated in such a manner that the target memory block in the net list is separated from the shared memory block. The program according to item 1.

(付記11)
前記設計結果として出力された前記更新されたネットリストと前記フロアプランニング結果に基づいて、
前記メモリ共有化指標処理と、前記フロアプランニング処理と、前記共有化メモリ選択処理と、前記非共有化メモリ選択処理と、前記ネットリスト更新処理と、前記配線性および遅延評価・判定処理と、を繰り返し実行する処理を実行させることを特徴とする請求項9又は付記7から付記10の何れか1項に記載のプログラム。
(Appendix 11)
Based on the updated netlist output as the design result and the floor planning result,
The memory sharing index process, the floor planning process, the shared memory selection process, the non-shared memory selection process, the netlist update process, the wiring property and delay evaluation / determination process, The program according to any one of claims 9 or 7 to 10, wherein a process to be repeatedly executed is executed.

(付記12)
前記メモリ共有化指標設定処理において、
共有化されるメモリの数が徐々に少なくなるように、前記メモリブロック共有化指標を調整することを特徴とする付記11に記載のプログラム。
(Appendix 12)
In the memory sharing index setting process,
The program according to appendix 11, wherein the memory block sharing index is adjusted so that the number of shared memories gradually decreases.

100:設計装置
101:入力部
102:フロアプランニング部
103:メモリ共有化指標設定部
104:共有化メモリ選択部
105:ネットリスト更新部
106:遅延および配線性評価・判定部
107:非共有化メモリ選択部
108:出力部
DESCRIPTION OF SYMBOLS 100: Design apparatus 101: Input part 102: Floor planning part 103: Memory sharing parameter | index setting part 104: Shared memory selection part 105: Net list update part 106: Delay and wiring property evaluation / determination part 107: Unshared memory Selection unit 108: Output unit

Claims (9)

論理モジュールとメモリブロックからなるネットリストに関する情報と、排他的に利用される前記メモリブロックに関する情報とで構成される、共有可能なメモリブロックの集合に関する情報を入力する入力手段と、
前記ネットリストに関する情報に基づいて、前記論理モジュールと前記メモリブロックの配置位置を決定するフロアプランニング手段と、
メモリブロック共有化指標を設定するメモリ共有化指標設定手段と、
前記フロアプランニング手段で決定したフロアプランニング結果と、前記メモリブロック共有化指標とに基づき、共有化するメモリブロックを共有化メモリ集合として選択する共有化メモリ選択手段と、
前記フロアプランニング結果の配線性および遅延を評価する配線性および遅延評価・判定手段と、
前記フロアプランニング結果と、前記配線性および遅延評価結果とから、非共有化するメモリブロックを非共有化メモリ集合として選択する非共有化メモリ選択手段と、
選択された前記共有化メモリ集合または前記非共有化メモリ集合の情報に基づき前記ネットリストを更新するネットリスト更新手段と、
前記ネットリスト更新手段によって更新された前記ネットリストと、前記フロアプランニング結果とを設計結果として出力する出力手段と、を備える半導体集積回路の設計装置。
Input means for inputting information on a set of sharable memory blocks composed of information on a netlist composed of logic modules and memory blocks, and information on the memory blocks used exclusively;
Floor planning means for determining an arrangement position of the logic module and the memory block based on information on the netlist;
A memory sharing index setting means for setting a memory block sharing index;
Shared memory selecting means for selecting a memory block to be shared as a shared memory set based on the floor planning result determined by the floor planning means and the memory block sharing index;
Wiring property and delay evaluation / determination means for evaluating wiring property and delay of the floor planning result,
Unshared memory selection means for selecting a memory block to be unshared as a non-shared memory set from the floor planning result and the wiring property and delay evaluation result;
Netlist update means for updating the netlist based on information of the selected shared memory set or unshared memory set;
An apparatus for designing a semiconductor integrated circuit, comprising: an output unit that outputs the net list updated by the net list update unit and the floor planning result as a design result.
前記メモリ共有化指標設定手段は、
前記フロアプランニング結果におけるメモリブロック間の距離を、前記メモリブロック共有化指標とすることを特徴とする請求項1に記載の半導体集積回路の設計装置。
The memory sharing index setting means includes:
2. The apparatus for designing a semiconductor integrated circuit according to claim 1, wherein a distance between memory blocks in the floor planning result is used as the memory block sharing index.
前記共有化メモリ選択手段は、
前記フロアプランニング結果における前記メモリブロック間の距離が、前記メモリブロック共有化指標以下である前記共有可能なメモリブロックの集合を、前記共有化メモリ集合として選択することを特徴とする請求項2に記載の半導体集積回路の設計装置。
The shared memory selection means includes
3. The set of sharable memory blocks whose distance between the memory blocks in the floor planning result is equal to or less than the memory block sharing index is selected as the shared memory set. Semiconductor integrated circuit design equipment.
前記非共有化メモリ選択手段は、
前記フロアプランニング結果において共有メモリブロックとの間で配線性制約違反あるいは遅延制約違反を起こしている前記論理モジュールを選択し、選択した前記論理モジュールが利用している前記メモリブロックを、前記非共有化メモリ集合として選択することを特徴とする請求項1から請求項3の何れか1項に記載の半導体集積回路の設計装置。
The unshared memory selection means includes:
In the floor planning result, the logical module that causes a wiring constraint violation or a delay constraint violation with a shared memory block is selected, and the memory block used by the selected logical module is unshared. 4. The semiconductor integrated circuit design apparatus according to claim 1, wherein the apparatus is selected as a memory set.
前記ネットリスト更新手段は、
前記メモリブロックを共有化する場合は、前記ネットリスト内の対象メモリブロックをひとつのメモリブロックに併合する形で前記ネットリストを更新し、
前記メモリブロックを非共有化する場合は、ネットリスト内の対象メモリブロックを共有メモリブロックから分離する形で前記ネットリストを更新することを特徴とする請求項1から請求項4の何れか1項に記載の半導体集積回路の設計装置。
The netlist update means includes
When sharing the memory block, the netlist is updated in such a manner that the target memory block in the netlist is merged into one memory block,
5. The method according to claim 1, wherein when the memory block is unshared, the net list is updated in such a manner that a target memory block in the net list is separated from the shared memory block. The semiconductor integrated circuit design apparatus described in 1.
前記設計結果として出力された前記更新されたネットリストと前記フロアプランニング結果に基づいて、
前記メモリ共有化指標手段による処理と、前記フロアプランニング手段による処理と、前記共有化メモリ選択手段による処理と、前記非共有化メモリ選択手段による処理と、前記ネットリスト更新手段による処理と、前記配線性および遅延評価・判定手段による処理と、を繰り返し実行する手段を備えることを特徴とする請求項1から請求項5の何れか1項に記載の半導体集積回路の設計装置。
Based on the updated netlist output as the design result and the floor planning result,
The processing by the memory sharing index means, the processing by the floor planning means, the processing by the shared memory selection means, the processing by the unshared memory selection means, the processing by the netlist update means, and the wiring 6. The apparatus for designing a semiconductor integrated circuit according to claim 1, further comprising means for repeatedly executing the processing by the performance and delay evaluation / determination means.
前記メモリ共有化指標設定手段は、
共有化されるメモリの数が徐々に少なくなるように、前記メモリブロック共有化指標を調整することを特徴とする請求項6に記載の半導体集積回路の設計装置。
The memory sharing index setting means includes:
7. The apparatus for designing a semiconductor integrated circuit according to claim 6, wherein the memory block sharing index is adjusted so that the number of shared memories gradually decreases.
論理モジュールとメモリブロックからなるネットリストに関する情報と、排他的に利用される前記メモリブロックに関する情報とで構成される、共有可能なメモリブロックの集合に関する情報を入力する入力ステップと、
前記ネットリストに関する情報に基づいて、前記論理モジュールと前記メモリブロックの配置位置を決定するフロアプランニングステップと、
メモリブロック共有化指標を設定するメモリ共有化指標設定ステップと、
前記フロアプランニングステップで決定したフロアプランニング結果と、前記メモリブロック共有化指標とに基づき、共有化するメモリブロックを共有化メモリ集合として選択する共有化メモリ選択ステップと、
前記フロアプランニング結果の配線性および遅延を評価する配線性および遅延評価・判定ステップと、
前記フロアプランニング結果と、前記配線性および遅延評価結果とから、非共有化するメモリブロックを非共有化メモリ集合として選択する非共有化メモリ選択ステップと、
選択された前記共有化メモリ集合または前記非共有化メモリ集合の情報に基づき前記ネットリストを更新するネットリスト更新ステップと、
前記ネットリスト更新ステップによって更新された前記ネットリストと、前記フロアプランニング結果とを設計結果として出力する出力ステップと、を有する半導体集積回路の設計方法。
An input step for inputting information on a set of sharable memory blocks composed of information on a netlist composed of logic modules and memory blocks, and information on the memory blocks used exclusively;
A floor planning step for determining an arrangement position of the logic module and the memory block based on information on the netlist;
A memory sharing index setting step for setting a memory block sharing index;
A shared memory selection step of selecting a memory block to be shared as a shared memory set based on the floor planning result determined in the floor planning step and the memory block sharing index;
Wiring property and delay evaluation / determination step for evaluating wiring property and delay of the floor planning result,
A non-shared memory selection step of selecting a memory block to be unshared as a non-shared memory set from the floor planning result and the wiring property and delay evaluation result;
A netlist update step for updating the netlist based on information of the selected shared memory set or unshared memory set;
A design method of a semiconductor integrated circuit, comprising: an output step of outputting the net list updated by the net list update step and the floor planning result as a design result.
半導体集積回路の設計装置であるコンピュータに、
論理モジュールとメモリブロックからなるネットリストに関する情報と、排他的に利用される前記メモリブロックに関する情報とで構成される、共有可能なメモリブロックの集合に関する情報を入力する入力処理と、
前記ネットリストに関する情報に基づいて、前記論理モジュールと前記メモリブロックの配置位置を決定するフロアプランニング処理と、
メモリブロック共有化指標を設定するメモリ共有化指標設定処理と、
前記フロアプランニング処理で決定したフロアプランニング結果と、前記メモリブロック共有化指標とに基づき、共有化するメモリブロックを共有化メモリ集合として選択する共有化メモリ選択処理と、
前記フロアプランニング結果の配線性および遅延を評価する配線性および遅延評価・判定処理と、
前記フロアプランニング結果と、前記配線性および遅延評価結果とから、非共有化するメモリブロックを非共有化メモリ集合として選択する非共有化メモリ選択処理と、
選択された前記共有化メモリ集合または前記非共有化メモリ集合の情報に基づき前記ネットリストを更新するネットリスト更新処理と、
前記ネットリスト更新処理によって更新された前記ネットリストと、前記フロアプランニング結果とを設計結果として出力する出力処理と、を実行させることを特徴とするプログラム。
In a computer that is a design device for semiconductor integrated circuits,
An input process for inputting information on a set of sharable memory blocks composed of information on a netlist composed of logic modules and memory blocks, and information on the memory blocks used exclusively;
A floor planning process for determining an arrangement position of the logic module and the memory block based on information on the netlist;
A memory sharing index setting process for setting a memory block sharing index;
A shared memory selection process for selecting a memory block to be shared as a shared memory set based on the floor planning result determined in the floor planning process and the memory block sharing index;
Wiring property and delay evaluation / determination processing for evaluating wiring property and delay of the floor planning result;
A non-shared memory selection process for selecting a memory block to be shared as a non-shared memory set from the floor planning result and the wiring property and delay evaluation result;
A netlist update process for updating the netlist based on information of the selected shared memory set or the unshared memory set;
A program for executing the output process for outputting the net list updated by the net list update process and the floor planning result as a design result.
JP2009294756A 2009-12-25 2009-12-25 Design device, design method and program of semiconductor integrated circuit using reconfigurable memory Pending JP2011134218A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009294756A JP2011134218A (en) 2009-12-25 2009-12-25 Design device, design method and program of semiconductor integrated circuit using reconfigurable memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009294756A JP2011134218A (en) 2009-12-25 2009-12-25 Design device, design method and program of semiconductor integrated circuit using reconfigurable memory

Publications (1)

Publication Number Publication Date
JP2011134218A true JP2011134218A (en) 2011-07-07

Family

ID=44346851

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009294756A Pending JP2011134218A (en) 2009-12-25 2009-12-25 Design device, design method and program of semiconductor integrated circuit using reconfigurable memory

Country Status (1)

Country Link
JP (1) JP2011134218A (en)

Similar Documents

Publication Publication Date Title
KR102261805B1 (en) Memory arrangement for implementation of high-throughput key-value stores
KR101965476B1 (en) Configurable embedded memory system
US8782591B1 (en) Physically aware logic synthesis of integrated circuit designs
US8860458B2 (en) Integrated circuits with logic regions having input and output bypass paths for accessing registers
US9514259B2 (en) Logic configuration method for reconfigurable semiconductor device
US10048739B2 (en) Managing power consumption of a gated clock mesh
JP2018537871A (en) System and method for FPGA testing and configuration
Shahrouzi et al. An efficient embedded multi-ported memory architecture for next-generation FPGAs
US9705505B2 (en) Reconfigurable semiconductor device
US9361956B2 (en) Performing logical operations in a memory
US20150280717A1 (en) Reconfigurable semiconductor device
US9178513B1 (en) Memory blocks with shared address bus circuitry
US10296699B1 (en) Implementing circuit designs adapted for partial reconfiguration
US9607682B1 (en) Address decoding circuit
US10366001B1 (en) Partitioning memory blocks for reducing dynamic power consumption
US8760191B2 (en) Reconfigurable semiconductor integrated circuit
CN107025920A (en) Integrated circuit memory equipment with customizable standard cell logic
JP2011134218A (en) Design device, design method and program of semiconductor integrated circuit using reconfigurable memory
JP2008091406A (en) Layout method of semiconductor integrated circuit
JP6705401B2 (en) Information processing apparatus, information processing apparatus control method, and information processing apparatus control program
US7996657B2 (en) Reconfigurable computing circuit
US8768991B2 (en) Mechanism to find first two values
WO2019107234A1 (en) Design assistance system, design assistance method, and program recording medium
JP6326756B2 (en) Information processing apparatus, scan path connection method, and program for configuring scan campus
JP5835498B2 (en) LSI and LSI manufacturing method