Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4177851B2 - Logic circuit design method - Google Patents
[go: Go Back, main page]

JP4177851B2 - Logic circuit design method - Google Patents

Logic circuit design method Download PDF

Info

Publication number
JP4177851B2
JP4177851B2 JP2006038226A JP2006038226A JP4177851B2 JP 4177851 B2 JP4177851 B2 JP 4177851B2 JP 2006038226 A JP2006038226 A JP 2006038226A JP 2006038226 A JP2006038226 A JP 2006038226A JP 4177851 B2 JP4177851 B2 JP 4177851B2
Authority
JP
Japan
Prior art keywords
description
function
level
conversion step
state
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.)
Expired - Fee Related
Application number
JP2006038226A
Other languages
Japanese (ja)
Other versions
JP2006185461A (en
Inventor
勝義 東島
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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2006038226A priority Critical patent/JP4177851B2/en
Publication of JP2006185461A publication Critical patent/JP2006185461A/en
Application granted granted Critical
Publication of JP4177851B2 publication Critical patent/JP4177851B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

本発明は、論理回路の設計に関するものであり、特に、C言語記述からのトップダウン設計に関する技術に属する。   The present invention relates to logic circuit design, and particularly relates to a technology related to top-down design from a C language description.

従来、論理回路のハードウェアは、Verilog−HDLやVHDLといったHDL言語によって設計を行っていた。しかし、近年、SpecCやSystemCと呼ばれるシステムレベル記述言語が登場してきており、C言語を利用したハードウェア設計が注目されるようになってきた。   Conventionally, logic circuit hardware has been designed using HDL languages such as Verilog-HDL and VHDL. However, in recent years, system level description languages called SpecC and SystemC have appeared, and hardware design using the C language has attracted attention.

従来の技術として、アルゴリズム記述とRTレベル記述の中間レベルでのシミュレーションを可能にする言語を提供するものがある(特開2001−109788号公報に開示)。図16は従来の論理シミュレーションシステムであって、アルゴリズム記述103をクロックレベル記述に低位化し、アルゴリズム記述103の複数機能を1クロック中で動作可能な部分機能に分解し、その複数機能を動作させるために、その部分機能を組み立てる。複数機能は、クロックレベル記述であるクロックレベルシミュレータ108として、レジスタを変数とする言語によって表現されている。   As a conventional technique, there is one that provides a language that enables simulation at an intermediate level between an algorithm description and an RT level description (disclosed in Japanese Patent Laid-Open No. 2001-109788). FIG. 16 shows a conventional logic simulation system for reducing the algorithm description 103 to a clock level description, decomposing a plurality of functions of the algorithm description 103 into partial functions operable in one clock, and operating the functions. Assemble the partial functions. The multiple functions are expressed in a language using registers as variables as the clock level simulator 108 which is a clock level description.

図16に示すように、アルゴリズムレベル検証部102とRTレベル検証部115との間に、新たにクロックレベル検証部106が設けられている。クロックレベル検証部106はクロックレベルシステム107を備え、クロックレベルシステム107は、クロックレベル記述であるクロックレベルシミュレーションモデル108とクロックレベルCPUモデル109とを備えている。クロックレベルシステム107は、組込用Cコンパイラ111により自動生成されて記述変換され、その記述変換には、慣用の機能合成ツール112が持つツールであるレジスタが用語(単語または一次変数)として用いられる。アルゴリズム記述103は、機能合成ツール112で記述されるツールを持つモデル変換ツール113によってクロックレベルシミュレーションモデル108に記述変換される。クロックレベルCPUモデル109は、組込用Cコンパイラ111によりC−プログラム104から自動生成される。クロックベースシミュレータ114は、クロックレベルシミュレーションモデル108とクロックレベルCPUモデル109とから形成されている。   As illustrated in FIG. 16, a clock level verification unit 106 is newly provided between the algorithm level verification unit 102 and the RT level verification unit 115. The clock level verification unit 106 includes a clock level system 107. The clock level system 107 includes a clock level simulation model 108 and a clock level CPU model 109, which are clock level descriptions. The clock level system 107 is automatically generated by the built-in C compiler 111 and subjected to description conversion. In the description conversion, a register which is a tool of the conventional function synthesis tool 112 is used as a term (a word or a primary variable). . The algorithm description 103 is converted into a clock level simulation model 108 by a model conversion tool 113 having a tool described by the function synthesis tool 112. The clock level CPU model 109 is automatically generated from the C-program 104 by the embedded C compiler 111. The clock base simulator 114 is formed of a clock level simulation model 108 and a clock level CPU model 109.

近年は、動作合成ツールなどの中で、直接HDLのRTレベル記述に変換できるものが提供され始めている。ところが、このようなツールで設計された回路は、RTレベル記述で直接設計されたものと比べて、回路規模が格段に大きくなるだけでなく、回路の品質も低くなる。また、回路構成を自由に制御できないので、設計者が意図する回路を得ることが非常に困難であり、設計された回路を読み取ることも非常に困難である。   In recent years, among behavioral synthesis tools and the like, those that can be directly converted into an HDL RT level description have begun to be provided. However, a circuit designed with such a tool not only greatly increases the circuit scale but also lowers the quality of the circuit as compared to a circuit designed directly with RT level description. In addition, since the circuit configuration cannot be freely controlled, it is very difficult to obtain a circuit intended by the designer, and it is very difficult to read the designed circuit.

また、上述した従来の技術では、ハードウェアの3大構成要素である、データパス、制御およびクロックの全てを考慮したモデルを生成するため、クロックレベルシミュレータを用いた論理検証は、RTレベルでの検証よりも高速になるだけであって、検証の複雑度は変わらない。また、クロック単位で処理可能な機能に分解するので、抽象度を落とした記述となり、結局はRTレベルと同等の記述になってしまう。これでは、これまでのRTレベルでの設計における、仕様変更への対応の困難さや、ハードウェアアーキテクチャ検討の複雑さなどは解消されず、RTレベル設計と同等の詳細な設計・検証が必要となる。   In addition, in the conventional technology described above, a model that takes into account all of the three major components of hardware, the data path, control, and clock, is generated. Therefore, logic verification using a clock level simulator is performed at the RT level. It is only faster than verification and does not change the complexity of verification. In addition, since it is broken down into functions that can be processed in units of clocks, it becomes a description with a lower level of abstraction, and eventually a description equivalent to the RT level. This does not eliminate the difficulty of responding to specification changes and the complexity of hardware architecture studies in conventional RT-level design, and requires detailed design and verification equivalent to RT-level design. .

さらに具体的には、クロック単位の動作を行わせるので、ハードウェアを意識した記述になっている。例えば、クロックのみならず、リセットまでも含めたレベルでのクロックレベル検証となっている。リセットは、ハードウェアの初期状態を決定するためには必要であるが、ハードウェアアーキテクチャの検討や機能検証の段階では必要ない。むしろ、基本となるハードウェアの処理単位や機能ブロック、および制御単位などを明確にすることが重要である。   More specifically, since the operation is performed in units of clocks, the description is conscious of hardware. For example, clock level verification is performed not only at the clock but also at a level including reset. The reset is necessary to determine the initial state of the hardware, but is not necessary at the stage of examining the hardware architecture or verifying the function. Rather, it is important to clarify basic hardware processing units, functional blocks, and control units.

また、クロック動作を考慮したハードウェアアーキテクチャ検討およびハードウェア機能設計・検証は、演算機能、制御機能およびタイミング機能の3つを同時に検討することに他ならず、考え方が複雑になってしまう。つまり、ハードウェアアーキテクチャ検討および機能設計時には、クロックおよびリセットは不要であり、むしろ検討を複雑にする原因になる。これでは、C言語という抽象度が高いレベルでの設計の利点を生かすことができない。   Further, the hardware architecture examination and the hardware function design / verification considering the clock operation are nothing but the simultaneous examination of the arithmetic function, the control function, and the timing function, and the concept becomes complicated. In other words, clocks and resets are not required when considering hardware architecture and designing functions, but rather cause complicated considerations. This makes it impossible to take advantage of the design at a high level of abstraction called C language.

また、上述した従来技術のクロックレベルシミュレーションモデル108は、CDFG(コントロール・データ・フロー・グラフ)等を用いて、クロック単位で処理を分解して細かな制御記述を書く必要がある。このため、サイクル動作のハードウェアが想像できないと設計が極めて困難である。   The above-described conventional clock level simulation model 108 needs to write a detailed control description by disassembling the processing in units of clocks using CDFG (Control Data Flow Graph) or the like. For this reason, it is extremely difficult to design unless hardware for cycle operation can be imagined.

また、このクロックレベルシミュレーションモデル108の記述では、1つのcase文が1クロックに相当し、クロックを模擬するように、case毎にその関数をbreak するので、その関数の処理を終了するためには、サイクル単位で何度も関数を呼び出す必要がある。これは、シミュレーション速度を低下させる大きな要因となる。さらに、1状態遷移は1関数とする必要もある。   In this description of the clock level simulation model 108, one case statement corresponds to one clock, and the function is broken for each case so that the clock is simulated. It is necessary to call the function many times in cycle units. This is a major factor that reduces the simulation speed. Furthermore, one state transition needs to be one function.

前記の問題に鑑み、本発明は、論理回路設計において、純粋なC言語で書かれたアルゴリズム記述から、品質の良いハードウェアを、短期間に効率よく設計可能にすることを課題とする。   In view of the above problems, an object of the present invention is to enable efficient design of hardware with good quality in a short time from algorithm description written in pure C language in logic circuit design.

前記の課題を解決するために、請求項1〜12の発明が講じた解決手段は、状態分割手段と、クロック挿入手段と、変換ツールとを有する論理回路設計システムを用いた論理回路設計方法として、前記状態分割手段が、論理回路の演算または制御のアルゴリズムをC言語によって記述したアルゴリズムC記述を、機能を基準とした処理単位毎の状態に記述し直し、処理の実行順序を状態の遷移として記述することによって、ハードウェアの制御を記述した機能C記述に変換する機能C変換ステップと、前記クロック挿入手段が、前記機能C変換ステップによって生成された機能C記述に、時間の概念であるクロック記述を挿入して、レジスタ・トランスファ(RT)レベルC記述に変換するRTレベルC変換ステップと、前記変換ツールが、前記RTレベルC変換ステップによって生成されたRTレベルC記述を、HDLによるRTレベル記述に変換するHDL変換ステップとを備えたものである。   In order to solve the above-mentioned problems, the solving means taken by the inventions of claims 1 to 12 is a logic circuit design method using a logic circuit design system having a state dividing means, a clock inserting means, and a conversion tool. The state dividing means re-describes the algorithm C description in which the logic circuit operation or control algorithm is described in the C language in the state for each processing unit based on the function, and sets the execution order of the processing as the state transition. The function C conversion step for converting the hardware control into the function C description describing the hardware control, and the clock insertion means adds a clock that is a concept of time to the function C description generated by the function C conversion step. An RT level C conversion step of inserting a description and converting it into a register transfer (RT) level C description, and the conversion tool comprises: The serial RT level C RT level C description generated by the conversion step, in which a HDL conversion step of converting the RT level description by HDL.

これによると、ANSI−CやC++に代表される既存の純粋なC言語によって書かれたアルゴリズムC記述を基にして、論理回路のハードウェアを容易に設計することができる。また、機能C記述は、アルゴリズムC記述を、クロックサイクルにとらわれない処理単位で複数の状態に分割することによって生成されるので、1つの状態が複数サイクルで実行されるように表現することが可能である。このため、より抽象度が高いレベルでハードウェアアーキテクチャを検討するための記述スタイルとして適している。したがって、従来よりも抽象度が高いレベルで、ハードウェアアーキテクチャを検討することができる。   According to this, the hardware of the logic circuit can be easily designed based on the algorithm C description written in the existing pure C language represented by ANSI-C and C ++. In addition, since the function C description is generated by dividing the algorithm C description into a plurality of states in a processing unit that is not bound by a clock cycle, it can be expressed so that one state is executed in a plurality of cycles. It is. Therefore, it is suitable as a description style for studying hardware architecture at a higher level of abstraction. Therefore, the hardware architecture can be examined at a level with a higher level of abstraction than before.

そして、請求項1の発明では、前記論理回路設計方法における機能C変換ステップは、前記アルゴリズムC記述を、少なくとも1つのアイドル状態または初期化状態を含む複数の状態に、分割するものとする。   In the invention of claim 1, the function C conversion step in the logic circuit design method divides the algorithm C description into a plurality of states including at least one idle state or initialization state.

請求項1によると、RTLC変換ステップにおいてクロック記述を挿入したときでも、動作しない場合は常にアイドル状態になる。このため、ステートマシーンに時間概念を加える際にサイクル調整の必要がなく、まさにクロック記述を挿入するのみですむ。   According to the first aspect, even when the clock description is inserted in the RTLC conversion step, it always becomes an idle state when it does not operate. This eliminates the need for cycle adjustments when adding a time concept to the state machine, just inserting a clock description.

また、請求項2の発明では、前記論理回路設計方法における機能C変換ステップは、前記アルゴリズムC記述を、少なくとも、データ入力処理に対応するデータ入力状態、演算処理に対応する演算状態、およびデータ出力処理に対応する結果出力状態に、分割するものとする。   According to a second aspect of the present invention, in the function C conversion step in the logic circuit design method, the algorithm C description includes at least a data input state corresponding to data input processing, an arithmetic state corresponding to arithmetic processing, and a data output. The result output state corresponding to the process is divided.

請求項2によると、機能C記述への変換スタイルを統一することが可能になる。また、データ入力状態および結果出力状態がステートマシーン外部またはモジュール外部とのデータの入出力を行う状態として表現できるので、RTLC変換ステップにおいてクロック記述を挿入する際に、機能間データの受け渡し時におけるクロックサイクルのタイミング調整が容易になる。   According to the second aspect, it is possible to unify the conversion style to the function C description. In addition, since the data input state and result output state can be expressed as a state in which data is input / output to / from the state machine or the outside of the module, when inserting the clock description in the RTLC conversion step, Cycle timing adjustment is easy.

また、請求項3の発明では、前記論理回路設計方法は、前記機能C記述を用いて、ハードウェアの機能について、クロックを除き、そのデータパスと制御のみを検証する機能検証ステップを備え、前記機能検証ステップにおいて前記ハードウェア機能が正しいと確認されたとき、前記RTレベルC変換ステップに移行するものとする。   According to a third aspect of the present invention, the logic circuit design method includes a function verification step of verifying only a data path and control of a hardware function using the function C description, excluding a clock. When it is confirmed that the hardware function is correct in the function verification step, the process proceeds to the RT level C conversion step.

請求項3によると、設計の早い段階で、ハードウェアの構成要素であるデータパスと制御を確定できる。また、機能C記述にはクロックの概念が存在しないため、高速な機能検証が可能であり、かつ、検証が容易となる。また、設計変更時の修正も容易である。このため、設計期間を大幅に短縮できるという効果が得られる。さらには、状態毎にクロック計測関数を挿入することによって、各状態の実行サイクルを細かく見積もることが可能であるので、処理性能を高い精度で見積もることができる。すなわち、通常ハードウェアと並行して作成しているC言語による機能モデル(シミュレーションモデル)をこの機能C記述で代用することが可能となるため、2重開発をも防ぐことができる。   According to the third aspect, the data path and the control, which are hardware components, can be determined at an early stage of design. Further, since there is no clock concept in the function C description, high-speed function verification is possible and verification is easy. It is also easy to modify the design when changing. For this reason, the effect that a design period can be shortened significantly is acquired. Furthermore, by inserting a clock measurement function for each state, it is possible to estimate the execution cycle of each state in detail, so that the processing performance can be estimated with high accuracy. That is, since a functional model (simulation model) in C language that is normally created in parallel with hardware can be substituted with this functional C description, double development can be prevented.

また、請求項4の発明では、前記論理回路設計方法は、前記クロック挿入手段が、前記RTレベルC記述を用いて、ハードウェアのクロックサイクルタイミング動作を検証する動作検証ステップを備え、前記動作検証ステップにおいてクロックサイクルタイミング動作が正しいと確認されたとき、前記HDL変換ステップに移行するものとする。   According to a fourth aspect of the present invention, in the logic circuit design method, the clock insertion unit includes an operation verification step of verifying a hardware clock cycle timing operation using the RT level C description, and the operation verification When it is confirmed that the clock cycle timing operation is correct in the step, the process proceeds to the HDL conversion step.

請求項4によると、RTLC記述が生成された段階において、クロックサイクルタイミングに関する問題に着目して、動作を検証することができる。これにより、検証が容易となり、検証効率が向上し、デバッグ効率が向上する。この結果、設計期間を短縮することができる。   According to the fourth aspect, at the stage where the RTLC description is generated, the operation can be verified by paying attention to the problem concerning the clock cycle timing. This facilitates verification, improves verification efficiency, and improves debugging efficiency. As a result, the design period can be shortened.

また、請求項5の発明では、前記論理回路設計方法における機能C変換ステップは、状態遷移表現をswitch文で記述するものとし、分割した処理単位を多分岐表現によってそれぞれ記述し、実行順序をcase内に遷移先を明記することによって表現し、かつ、1個のステートマシーンをループ表現を用いて閉じるように記述するものとする。   In the invention of claim 5, the function C conversion step in the logic circuit design method is described in which the state transition expression is described by a switch statement, each divided processing unit is described by a multi-branch expression, and the execution order is case. It is expressed by specifying the transition destination in and a state machine is described so as to be closed using a loop expression.

請求項5によると、既存のC言語のままで、アルゴリズム動作を変えることなく、ステートマシーンを記述できる。すなわち、特別な専用言語を用いることなく、状態遷移表現を挿入して、ステートマシーン内の演算処理動作を正しく実行することができる。さらに、サイクル毎に状態遷移を抜けることがないため、一の状態遷移を1個の関数に割り当てる必要がなく、また、サイクル毎に関数を呼び出す必要がないため、シミュレーションを高速に実行することができる。これは言い換えると、C言語において、ハードウェアの構成要素である「制御」を演算処理内に明示的に埋め込むことが可能であるということであり、機能C記述において、ハードウェアの演算部と制御部を記述することができる。これにより、早期にハードウェアアーキテクチャを検討できるだけでなく、機能検証を高速に実施することが可能となる。   According to claim 5, the state machine can be described without changing the algorithm operation in the existing C language. That is, without using a special dedicated language, it is possible to insert the state transition expression and correctly execute the arithmetic processing operation in the state machine. Furthermore, since there is no exit from state transitions every cycle, there is no need to assign one state transition to one function, and there is no need to call a function every cycle, so simulation can be executed at high speed. it can. In other words, in C language, it is possible to explicitly embed “control”, which is a hardware component, in the arithmetic processing. In the function C description, the hardware arithmetic unit and the control are controlled. A part can be described. As a result, not only can the hardware architecture be examined early, but also functional verification can be performed at high speed.

そして、請求項6の発明では、前記請求項5の論理回路設計方法における機能C変換ステップは、1個の状態内で複数の処理を並列に実行させるとき、その複数のステートマシーンをループ表現を用いてそれぞれ閉じるように記述するものとする。   In the invention of claim 6, in the function C conversion step in the logic circuit design method of claim 5, when a plurality of processes are executed in parallel in one state, the plurality of state machines are expressed as loops. It shall be described to be closed using each.

請求項6によると、C言語によるアルゴリズムC記述において、C言語の高速シミュレーションの特徴を保ったまま、かつ動作も変更することなく並列動作を容易に記述できる。これは、ハードウェアアーキテクチャ検討時に並列動作まで考慮して記述できることであり、早期段階におけるハードウェア検討の自由度が高まり、かつ高度な制御方法を記述することができる。これにより、さらに、RTLC記述に変換する際も、簡単に並列動作記述に変更可能となる。   According to the sixth aspect, in the C language algorithm C description, it is possible to easily describe the parallel operation while maintaining the characteristics of the C language high-speed simulation and without changing the operation. This is because it can be described in consideration of parallel operation when considering the hardware architecture, and the degree of freedom of hardware consideration at an early stage is increased, and an advanced control method can be described. This makes it possible to easily change to a parallel operation description when converting to an RTLC description.

また、請求項7の発明では、前記論理回路設計方法は、前記機能C変換ステップの前処理として、前記状態分割手段が、前記アルゴリズムC記述をハードウェア機能に着目してモジュール毎に記述し直し、モジュール毎のアルゴリズムC記述を生成するモジュール分割ステップを備えたものとする。   According to a seventh aspect of the present invention, in the logic circuit design method, as the pre-processing of the function C conversion step, the state dividing unit re-describes the algorithm C description for each module focusing on hardware functions. Assume that a module dividing step for generating an algorithm C description for each module is provided.

請求項7によると、抽象度の高い段階で、ハードウェアアーキテクチャを検討することが可能となり、ハードウェア特有の機能を意図的に分離することが可能となる。これにより、演算処理機能と蓄積機能などを容易に分離することが可能となり、次段の機能C変換ステップの設計が容易となるほか、RTレベルC記述の設計も容易となる。また、部分的に変更がなされた場合でも、各機能単位に対応することが容易となる。   According to the seventh aspect, the hardware architecture can be examined at a high level of abstraction, and the hardware-specific functions can be intentionally separated. As a result, the arithmetic processing function and the storage function can be easily separated, and the function C conversion step in the next stage can be easily designed, and the RT level C description can also be easily designed. Further, even when a partial change is made, it is easy to deal with each functional unit.

そして、請求項8の発明では、前記請求項7の論理回路設計方法におけるモジュール分割ステップは、前記アルゴリズムC記述を、少なくともメモリ部と演算処理部とに分割するものとする。   In the invention of claim 8, the module dividing step in the logic circuit design method of claim 7 divides the algorithm C description into at least a memory part and an arithmetic processing part.

請求項8によると、HDLのRTLコードを生成する際に、メモリライブラリとの置き換えを容易に行うことができ、早い段階からハードウェアアーキテクチャを考慮した設計を行うことができる。このため、回路規模が大きくなることを未然に防ぎ、HDLによって設計したときと同様に、メモリを考慮した設計が行える他、使用するメモリの変更などが容易となる。また、演算処理部のみを機能C記述またはRTレベルC記述に変更して設計およびシミュレーションすることが可能となるので、設計容易性およびシミュレーション速度が向上する。   According to the eighth aspect, when the HDL RTL code is generated, the replacement with the memory library can be easily performed, and the design considering the hardware architecture can be performed from an early stage. For this reason, it is possible to prevent the circuit scale from becoming large and to design in consideration of the memory as in the case of designing by HDL, and to easily change the memory to be used. In addition, design and simulation can be performed by changing only the arithmetic processing unit to the function C description or the RT level C description, thereby improving the ease of design and the simulation speed.

そして、請求項9の発明では、前記請求項7の論理回路設計方法におけるモジュール分割ステップは、前記アルゴリズムC記述について、ハードウェアのソフトマクロまたはハードマクロに対応した演算器を別モジュールとして分割するものとする。   In the ninth aspect of the invention, the module dividing step in the logic circuit design method of the seventh aspect divides the algorithm C description into a hardware soft macro or an arithmetic unit corresponding to the hard macro as a separate module. And

請求項9によると、HDLのRTLコードを生成する際に、乗算器マクロのようなマクロライブラリと容易に置き換えることが可能になり、早い段階からハードウェアアーキテクチャを考慮した設計を行うことができる。そして、自動合成などを使用した際の回路規模増大を未然にかつ明示的に防止することができる。また、乗算器マクロやメモリ部を除いた演算処理部のみを機能C記述またはRTレベルC記述に変更して設計およびシミュレーションすることが可能となるので、設計容易性およびシミュレーション速度が向上する。   According to the ninth aspect, when the HDL RTL code is generated, it can be easily replaced with a macro library such as a multiplier macro, and the design considering the hardware architecture can be performed from an early stage. Further, it is possible to explicitly and explicitly prevent an increase in circuit scale when using automatic synthesis or the like. In addition, design and simulation can be performed by changing only the arithmetic processing unit excluding the multiplier macro and the memory unit to the function C description or the RT level C description, thereby improving the design easiness and the simulation speed.

そして、請求項10の発明では、前記請求項7の論理回路設計方法におけるモジュール分割ステップは、前記アルゴリズムC記述について、演算処理のためのパラメータ設定レジスタ部を別モジュールとして分割するものとする。   In the invention of claim 10, the module dividing step in the logic circuit design method of claim 7 divides the parameter setting register unit for arithmetic processing as another module for the algorithm C description.

請求項10によると、レジスタ数変更の場合など、演算処理部などのコードに変更を加えることなく、部分的に変更することができる。また、機能検証時の不具合解析時に所望の変数名を大きなコードから探し出す必要がなくなるので、デバッグが容易となる。さらに、ハードウェアにしたときに、レジスタ部をメモリに置き換えることも容易に可能である。   According to the tenth aspect, the code can be partially changed without changing the code of the arithmetic processing unit or the like in the case of changing the number of registers. Further, since it is not necessary to search for a desired variable name from a large code at the time of failure analysis at the time of function verification, debugging is facilitated. Furthermore, it is possible to easily replace the register portion with a memory when hardware is used.

また、請求項11の発明は、前記論理回路設計方法におけるRTレベルC変換ステップは、前記機能C記述から、制御を表す状態遷移記述と、データパスを表す演算処理記述とを、抜き出し、抜き出した前記状態遷移記述および演算処理記述のそれぞれに、時間の概念であるクロック記述を挿入するものとする。   In the invention according to claim 11, the RT level C conversion step in the logic circuit design method extracts and extracts from the function C description a state transition description representing control and an operation processing description representing a data path. It is assumed that a clock description, which is a concept of time, is inserted into each of the state transition description and the arithmetic processing description.

請求項11によると、HDLのRTレベルを記述するのと同様に、コードの可読性が向上し、検証時の不具合解析時のデバッグ性が向上する。   According to the eleventh aspect, as in the case of describing the HDL RT level, the readability of the code is improved, and the debugging performance at the time of failure analysis at the time of verification is improved.

また、請求項12の発明では、前記論理回路設計方法におけるRTレベルC変換ステップは、SystemCまたはSpecCの文法を適用してRTレベルC記述を生成するものとする。   In the invention of claim 12, the RT level C conversion step in the logic circuit design method generates an RT level C description by applying a grammar of SystemC or SpecC.

請求項12によると、設計言語に依存せずに、ハードウェア機能を検証した後で、設計言語を決定できる。これにより、設計言語やシミュレーションツール、および動作合成ツールなどが開発当初に決定しなくとも、設計を開始することが可能になる。したがって、開発効率を大幅に向上させ、開発期間を短縮することができる。   According to the twelfth aspect, the design language can be determined after verifying the hardware function without depending on the design language. As a result, the design can be started even if the design language, the simulation tool, the behavioral synthesis tool, and the like are not determined at the beginning of development. Therefore, the development efficiency can be greatly improved and the development period can be shortened.

請求項13〜24の発明が講じた解決手段は、コンピュータに、論理回路の演算または制御のアルゴリズムをC言語によって記述したアルゴリズムC記述を、機能を基準とした処理単位毎の状態に記述し直し、処理の実行順序を状態の遷移として記述することによって、ハードウェアの制御を記述した機能C記述に変換する機能C変換ステップと、前記機能C変換ステップによって生成された機能C記述に、時間の概念であるクロック記述を挿入して、レジスタ・トランスファ(RT)レベルC記述に変換するRTレベルC変換ステップとを実行させるプログラムである。   The solution provided by the inventions of claims 13 to 24 rewrites an algorithm C description in which an algorithm for arithmetic or control of a logic circuit is described in C language in a state for each processing unit based on a function. By describing the execution order of the processes as state transitions, the function C conversion step for converting the hardware control into the function C description describing the control of the hardware, and the function C description generated by the function C conversion step, This is a program that inserts a clock description, which is a concept, and executes an RT level C conversion step for converting into a register transfer (RT) level C description.

そして、請求項13の発明は、前記プログラムにおける機能C変換ステップは、前記アルゴリズムC記述を、少なくとも1つのアイドル状態または初期化状態を含む複数の状態の記述に、分割するものとする。   In the invention according to claim 13, the function C conversion step in the program divides the algorithm C description into a plurality of state descriptions including at least one idle state or initialization state.

また、請求項14の発明は、前記プログラムにおける機能C変換ステップは、前記アルゴリズムC記述を、少なくとも、データ入力処理に対応するデータ入力状態の記述、演算処理に対応する演算状態の記述、およびデータ出力処理に対応する結果出力状態の記述に、分割するものとする。   According to a fourteenth aspect of the present invention, in the function C conversion step in the program, the algorithm C description includes at least a description of a data input state corresponding to a data input process, a description of an operation state corresponding to an arithmetic process, and data The result output state corresponding to the output process is divided into descriptions.

また、請求項15の発明は、前記プログラムにおいて、前記機能C記述を用いて、ハードウェアの機能について、クロックを除き、そのデータパスと制御のみを検証する機能検証ステップを実行させるものとし、前記機能検証ステップにおいて、前記ハードウェア機能が正しいと確認されたとき、前記RTレベルC変換ステップに移行するものとする。   According to a fifteenth aspect of the present invention, in the program, the function C description is used to execute a function verification step for verifying only a data path and control of a hardware function, excluding a clock. In the function verification step, when it is confirmed that the hardware function is correct, the process proceeds to the RT level C conversion step.

また、請求項16の発明は、前記プログラムにおいて、前記RTレベルC記述を用いて、ハードウェアのクロックサイクルタイミング動作を検証する動作検証ステップを実行させるものとし、前記動作検証ステップにおいて、クロックサイクルタイミング動作が正しいと確認されたとき、前記RTレベルC変換ステップによって生成されたRTレベルC記述を、HDLによるRTレベル記述に変換するHDL変換ステップに移行するものとする。   According to a sixteenth aspect of the present invention, in the program, the RT level C description is used to execute an operation verification step of verifying a hardware clock cycle timing operation. In the operation verification step, the clock cycle timing is verified. When the operation is confirmed to be correct, the RT level C description generated by the RT level C conversion step is shifted to an HDL conversion step for converting the RT level description into an HDL RT level description.

また、請求項17の発明は、前記プログラムにおける機能C変換ステップは、状態遷移表現をswitch文で記述するものであり、処理単位を多分岐表現によってそれぞれ記述し、実行順序をcase内に遷移先を明記することによって表現し、かつ1個のステートマシーンをループ表現を用いて閉じるように記述するものとする。   The function C conversion step in the program is such that the state transition expression is described by a switch statement in the program, each processing unit is described by a multi-branch expression, and the execution order is set in the case. , And a state machine is described to be closed using a loop expression.

そして、請求項18の発明は、前記請求項17のプログラムにおける機能C変換ステップは、1個の状態内で複数の処理を並列に実行させるとき、その複数のステートマシーンを、ループ表現を用いてそれぞれ閉じるように、記述するものとする。   In the invention of claim 18, in the function C conversion step in the program of claim 17, when a plurality of processes are executed in parallel in one state, the plurality of state machines are expressed using a loop expression. It shall be written to close each.

また、請求項19の発明は、前記プログラムにおいて、前記機能C変換ステップの前処理として、前記アルゴリズムC記述を、ハードウェア機能に着目してモジュール毎に記述し直し、モジュール毎のアルゴリズムC記述を生成するモジュール分割ステップを実行させるものとする。   Further, in the program according to the nineteenth aspect, in the program, as the preprocessing of the function C conversion step, the algorithm C description is rewritten for each module by paying attention to hardware functions, and the algorithm C description for each module is changed. Assume that the module division step to be generated is executed.

そして、請求項20の発明は、前記請求項19のプログラムにおけるモジュール分割ステップは、前記アルゴリズムC記述を少なくともメモリ部と演算処理部とに分割するものとする。   In a twentieth aspect of the invention, the module dividing step in the program of the nineteenth aspect divides the algorithm C description into at least a memory part and an arithmetic processing part.

また、請求項21の発明は、前記請求項19のプログラムにおけるモジュール分割ステップは、前記アルゴリズムC記述について、ハードウェアのソフトマクロまたはハードマクロに対応した演算器を別モジュールとして分割するものとする。   According to a twenty-first aspect of the present invention, the module dividing step in the program of the nineteenth aspect divides the algorithm C description into a hardware soft macro or an arithmetic unit corresponding to a hard macro as a separate module.

また、請求項22の発明は、前記請求項19のプログラムにおけるモジュール分割ステップは、前記アルゴリズムC記述について、演算処理のためのパラメータ設定レジスタ部を別モジュールとして分割するものとする。   According to a twenty-second aspect of the present invention, in the module dividing step in the program of the nineteenth aspect, the parameter setting register section for arithmetic processing is divided as a separate module for the algorithm C description.

また、請求項23の発明は、前記プログラムにおけるRTレベルC変換ステップは、前記機能C記述から、制御を表す状態遷移記述と、データパスを表す演算処理記述とを、抜き出し、抜き出した前記状態遷移記述および演算処理記述のそれぞれに、時間の概念であるクロック記述を挿入するものとする。   In the invention of claim 23, the RT level C conversion step in the program extracts the state transition description representing control and the arithmetic processing description representing the data path from the function C description, and extracts the state transition. Assume that a clock description, which is a concept of time, is inserted into each of the description and the operation processing description.

また、請求項24の発明は、前記プログラムにおけるRTレベルC変換ステップは、SystemCまたはSpecCの文法を適用して、RTレベルC記述を生成するものとする。   According to a twenty-fourth aspect of the present invention, the RT level C conversion step in the program generates RT level C description by applying SystemC or SpecC grammar.

また、請求項25の発明は、前記請求項13〜24のうちいずれか1項のプログラムを記録したコンピュータ読み取り可能な記録媒体である。   The invention of claim 25 is a computer-readable recording medium on which the program of any one of claims 13 to 24 is recorded.

以上のように本発明によると、既存の純粋なC言語によって書かれたアルゴリズムC記述を基にして、論理回路のハードウェアを容易に設計することができる。また、機能C記述は、1つの状態が複数サイクルで実行されるように表現することが可能なので、より抽象度が高いレベルでハードウェアアーキテクチャを検討するための記述スタイルとして適している。したがって、従来よりも抽象度が高いレベルで、ハードウェアアーキテクチャを検討することができる。   As described above, according to the present invention, the hardware of the logic circuit can be easily designed based on the algorithm C description written in the existing pure C language. Further, since the function C description can be expressed so that one state is executed in a plurality of cycles, it is suitable as a description style for studying the hardware architecture at a higher level of abstraction. Therefore, the hardware architecture can be examined at a level with a higher level of abstraction than before.

また本発明は、DA(Design Automation )ツールとしての実現が容易である。これにより、設計期間の更なる短縮を実現することができる。   Further, the present invention can be easily realized as a DA (Design Automation) tool. Thereby, the further shortening of a design period is realizable.

以下、本発明の実施の形態について、図面を参照して説明する。   Embodiments of the present invention will be described below with reference to the drawings.

(第1の実施形態)
図1は本発明の第1の実施形態に係る論理回路設計システムであって、C言語記述からのハードウェアトップダウン設計システムの構成を示す図である。図1において、1は設計対象システムとなる論理回路の演算または制御のアルゴリズムがC言語によって記述されたアルゴリズムC記述、2はハードウェアの制御を記述した機能C記述、3はレジスタ・トランスファ(RT)レベルのC言語記述であるRTレベルC記述である。アルゴリズムC記述1は、ANSI−CやC++に代表される既存のC言語によって記述されている。
(First embodiment)
FIG. 1 is a diagram showing a configuration of a hardware top-down design system based on a C language description, which is a logic circuit design system according to a first embodiment of the present invention. In FIG. 1, 1 is an algorithm C description in which an algorithm for operation or control of a logic circuit to be designed is described in C language, 2 is a function C description that describes hardware control, and 3 is a register transfer (RT ) RT level C description which is a level C language description. The algorithm C description 1 is described in an existing C language represented by ANSI-C and C ++.

10はアルゴリズム検証システムであり、アルゴリズムC記述1をCコンパイラ11によってコンパイルすることによって、アルゴリズムCシミュレータ12を生成する。20はアルゴリズムC記述1を機能C記述2に変換する機能C変換システムであり、状態分割手段21を備えている。30は機能検証システムであり、機能C記述2をCコンパイラ31によってコンパイルすることによって、機能Cシミュレータ32を生成する。40は機能C記述2をRTレベルC記述3に変換するRTレベルC変換システムであり、クロック挿入手段41を備えている。50はタイミング検証システムであり、RTレベルC記述3を、クロック記述を許容するライブラリ4とともにCコンパイラ51によってコンパイルすることによって、サイクルベースCシミュレータ52を生成する。   Reference numeral 10 denotes an algorithm verification system, which generates an algorithm C simulator 12 by compiling an algorithm C description 1 with a C compiler 11. Reference numeral 20 denotes a function C conversion system that converts the algorithm C description 1 into the function C description 2 and includes a state dividing unit 21. A function verification system 30 compiles the function C description 2 with the C compiler 31 to generate a function C simulator 32. Reference numeral 40 denotes an RT level C conversion system for converting the function C description 2 into the RT level C description 3, and includes a clock insertion means 41. A timing verification system 50 compiles the RT level C description 3 together with the library 4 that allows clock description by the C compiler 51 to generate a cycle-based C simulator 52.

60はC言語の文法をHDL記述に変換する既存の変換ツールであって、RTレベルC記述3をHDLによるRTレベル記述としてのVerilog−HDL5に変換する。   Reference numeral 60 denotes an existing conversion tool for converting a C language grammar into an HDL description. The RT level C description 3 is converted into Verilog-HDL5 as an RT level description in HDL.

図2は本実施形態に係る論理回路設計方法を示す処理フローである。図2において、S1はアルゴリズム検証システム10において、アルゴリズムCシミュレータ12を用いてアルゴリズムを検証するアルゴリズム検証ステップ、S2はアルゴリズム検証ステップS1においてアルゴリズムが確定した後、機能C変換システム20において、アルゴリズムC記述1のモジュール内の記述を機能処理単位で状態分割し、機能C記述2に変換する機能C変換ステップである。S3は機能C変換ステップS2において変換した機能C記述3について、機能Cシミュレータ32を用いて、ハードウェアの機能を検証する機能検証ステップ、S4は機能検証ステップS3において機能が確定した後、機能C記述3に対してクロック記述を挿入し、RTレベルC記述3に変換するRTレベルC変換ステップである。S5はサイクルベースCシミュレータ52を用いてRTレベルC記述3の動作をクロックサイクルのタイミングに着目して検証する動作検証ステップ、S6は動作検証ステップS5においてクロックタイミングでの動作が確認された後、変換ツール60を用いてRTレベルC記述3をVerilog−HDL5に変換するHDL変換ステップである。   FIG. 2 is a processing flow showing the logic circuit design method according to this embodiment. 2, S1 is an algorithm verification step for verifying an algorithm using the algorithm C simulator 12 in the algorithm verification system 10, and S2 is an algorithm C description in the function C conversion system 20 after the algorithm is determined in the algorithm verification step S1. This is a function C conversion step in which the description in one module is state-divided into function processing units and converted to function C description 2. S3 is a function verification step of verifying the function of the hardware using the function C simulator 32 for the function C description 3 converted in the function C conversion step S2, and S4 is a function C step after the function is confirmed in the function verification step S3. This is an RT level C conversion step of inserting a clock description into description 3 and converting it to RT level C description 3. S5 is an operation verification step for verifying the operation of the RT level C description 3 using the cycle-based C simulator 52 by paying attention to the timing of the clock cycle, and S6 is the operation verification step S5 after the operation at the clock timing is confirmed. This is an HDL conversion step of converting the RT level C description 3 into Verilog-HDL5 using the conversion tool 60.

以下、本実施形態に係る論理回路設計方法について、図1〜図5を参照して説明する。   Hereinafter, a logic circuit design method according to the present embodiment will be described with reference to FIGS.

まずアルゴリズム検証ステップS1では、アルゴリズム検証システム10において、アルゴリズムC記述1は、ccやgccといったCコンパイラ11によってコンパイルされ、アルゴリズムを検証するためのアルゴリズムCシミュレータ12になる。そして、このアルゴリズムCシミュレータ12を用いて、演算処理(データパス)のみを検証する。またこれとともに、アルゴリズムが確定したか否かを判断する。そして、アルゴリズムが確定するまで、アルゴリズムC記述1の修正とその検証が繰り返される。   First, in the algorithm verification step S1, in the algorithm verification system 10, the algorithm C description 1 is compiled by a C compiler 11 such as cc or gcc, and becomes an algorithm C simulator 12 for verifying the algorithm. Then, using this algorithm C simulator 12, only the arithmetic processing (data path) is verified. At the same time, it is determined whether or not the algorithm has been determined. Then, correction of the algorithm C description 1 and its verification are repeated until the algorithm is determined.

アルゴリズム検証ステップS1でアルゴリズムが確定した後、次に、機能C変換ステップS2において、アルゴリズムC記述1を、処理単位毎の状態に記述し直すことによって、機能C記述2に変換する。例えば、アルゴリズムC記述1の各モジュール内の記述を、データ入力処理に対応する初期化状態、演算処理に対応する演算実行状態、およびデータ出力処理に対応する結果出力状態といった処理単位で、状態分割する。また、分割した状態の遷移先や遷移条件、遷移順序を記述する。これにより、ハードウェアの「制御」にあたる記述が、機能C記述2に埋め込まれることになる。   After the algorithm is determined in the algorithm verification step S1, next, in the function C conversion step S2, the algorithm C description 1 is converted into the function C description 2 by rewriting it in a state for each processing unit. For example, the description in each module of algorithm C description 1 is divided into processing units such as an initialization state corresponding to data input processing, an operation execution state corresponding to arithmetic processing, and a result output state corresponding to data output processing. To do. In addition, the transition destination, transition condition, and transition order of the divided state are described. As a result, the description corresponding to the “control” of the hardware is embedded in the function C description 2.

ここでの変換処理は、例えば、分割したい行にコメント文等によってキーワードを埋め込み、そのキーワードに従ってプログラム変換を行うことによって、実現することができる。   The conversion process here can be realized, for example, by embedding a keyword in a comment sentence or the like in a line to be divided and performing program conversion according to the keyword.

ここでは、GUIによって状態分割を行う方法を図3を参照して説明する。図3に示すように、GUI画面70上に、変換前のアルゴリズムC記述71を表示させる。利用者は、画面表示上で一塊の処理として認識する部分72を選択し、選択した部分72について、「State Name」73に状態名を指定し、「Order 」74にその処理の実行順序を指定する。さらに「End Condition 」75には、その状態を抜ける条件を入力する。このように指定すると、状態分割手段21によるプログラム変換によって、変換後の機能C記述76が作成される。   Here, a method of performing state division using a GUI will be described with reference to FIG. As shown in FIG. 3, an algorithm C description 71 before conversion is displayed on the GUI screen 70. The user selects a part 72 to be recognized as a batch of processes on the screen display, specifies a state name in “State Name” 73 for the selected part 72, and specifies an execution order of the processes in “Order” 74 To do. Further, in “End Condition” 75, a condition for exiting the state is input. When specified in this way, the converted function C description 76 is created by program conversion by the state dividing means 21.

図4は状態分割の一例を示す図であり、同図中、(a)は状態分割前のアルゴリズムC記述の例、(b)は(a)のアルゴリズムC記述に対して状態分割を実行した後の機能C記述である。図4(a)に示すアルゴリズムC記述では、テキストAは初期化およびアイドル状態、テキストBは演算実行状態、そしてテキストCは結果出力状態であると判断できる。また、実行順序は次のようになる。すなわち、テキストAで初期化を行った後、テキストBに移行し、演算処理を実行する。そしてテキストBにおいて演算終了条件が整ったとき、テキストCに移行し、演算結果を出力する。演算結果を出力すると、アイドル状態であるテキストAに戻る。   FIG. 4 is a diagram showing an example of state division, in which (a) shows an example of algorithm C description before state division, and (b) shows state division performed on algorithm C description of (a). This is a later function C description. In the algorithm C description shown in FIG. 4A, it can be determined that the text A is in the initialization and idle state, the text B is in the operation execution state, and the text C is in the result output state. The execution order is as follows. That is, after initialization with the text A, the process proceeds to the text B, and the arithmetic processing is executed. When the calculation end condition is satisfied in the text B, the process proceeds to the text C and the calculation result is output. When the calculation result is output, the text A is returned to the idle state.

このような状態分割と実行順序に従って変換した結果、図4(b)に示すような機能C記述が得られる。分割した処理単位A,B,Cは、多分岐表現としてのswitch文のcaseによって、それぞれ記述されている。また、その実行順序は、case内において遷移先をstateに代入することによって表現されている。なおここでは多分岐表現として、switch-case文を用いたが、多分岐表現を記述できるものであればこの限りでない。   As a result of conversion according to such state division and execution order, a function C description as shown in FIG. 4B is obtained. The divided processing units A, B, and C are respectively described by switch statement cases as multi-branch expressions. The execution order is expressed by assigning the transition destination to state in case. Here, the switch-case statement is used as the multi-branch expression, but this is not limited as long as the multi-branch expression can be described.

さらに、この機能C記述はアルゴリズムC記述と同様にC言語で記述されているため、このswitch文をループ表現としての“do”“while”文を用いて閉じておく。そして“while”文を抜ける条件としてアイドル状態であるAを指定する。このように記述することによって、処理の実行時には、処理単位A,B,C全ての処理が終わってから再び処理単位Aに戻った段階で、switch文から抜けることになる。このため、次にこの処理が実行される際も、処理単位Aの状態から始まる。なおここでは、ループ表現として“do”“while”文を用いてステートマシーンを閉じるものとしたが、while文や、for文など他のループ文を用いても同様に実現できる。“while(1)”を用いて記述する場合は、アイドル状態に戻る前の状態Cにおいて“break”文を挿入しておけばよい。   Further, since the function C description is described in C language like the algorithm C description, the switch statement is closed using “do” and “while” statements as loop expressions. Then, A which is in an idle state is designated as a condition for exiting the “while” statement. By describing in this way, at the time of execution of the process, the process exits from the switch statement when all the processing units A, B, and C have been processed and returned to the processing unit A again. Therefore, the next time this process is executed, it starts from the state of the processing unit A. Here, the state machine is closed by using “do” and “while” statements as loop expressions, but the same can be realized by using other loop statements such as while statements and for statements. When writing using “while (1)”, a “break” statement may be inserted in state C before returning to the idle state.

すなわち、処理が終了した時点でこの状態遷移から抜ける、というアルゴリズムと等価な動作が表現でき、かつ、ハードウェアの「制御」を明示する記述が埋め込まれた機能C記述が完成する。   That is, a function C description in which an operation equivalent to an algorithm of exiting from this state transition when processing is completed can be expressed and a description clearly indicating hardware “control” is embedded is completed.

ここで、アイドル状態を備えることによる作用効果について、説明する。   Here, the effect by having an idle state is demonstrated.

クロックを挿入した際、回路は常に動作することになるが、ステートマシーンが常にアイドル状態に戻るようにしておけば、状態遷移の条件が整わない限り、アイドル状態を維持する。アイドル状態がない場合、クロックを挿入すると、それぞれの機能が動作しない場合の制御を新たに加える等の処理が必要になり、RTレベルC変換ステップS4においてのタイミング設計を複雑にしてしまう。   When the clock is inserted, the circuit always operates. However, if the state machine always returns to the idle state, the idle state is maintained unless the condition for the state transition is satisfied. If there is no idle state, insertion of a clock requires processing such as newly adding control when the respective functions do not operate, complicating the timing design in the RT level C conversion step S4.

したがって、クロックが存在しない機能C記述の作成時においてアイドル状態を明示することによって、クロックを挿入しても機能が正しく動作しないような事態を防ぐことができる。また、アイドル状態を備えたとしても、機能C記述の段階での動作に影響はない。すなわち、このアイドル状態、もしくは初期化状態を持つことによって、クロックを挿入するだけでRTレベルC記述へ容易に変換することができる。   Therefore, by specifying the idle state when creating a function C description that does not have a clock, it is possible to prevent a situation in which the function does not operate correctly even if a clock is inserted. Even if an idle state is provided, the operation at the stage of function C description is not affected. In other words, by having this idle state or initialization state, it is possible to easily convert to an RT level C description simply by inserting a clock.

機能C変換ステップS2において機能C記述2が生成されると、次に、機能検証ステップS3に移行し、機能C検証システム30において、Cコンパイラ31によってコンパイルされた機能Cシミュレータ32を用いて、ハードウェアの機能について検証を行う。ここでは、演算機能が、ハードウェアに最適な制御に従って実現できているか否かを検証する。もし不具合や仕様変更がある場合は、機能C変換ステップS2における状態分割を修正する。   When the function C description 2 is generated in the function C conversion step S2, the process proceeds to the function verification step S3, and the function C verification system 30 uses the function C simulator 32 compiled by the C compiler 31 to The function of the wear is verified. Here, it is verified whether or not the arithmetic function can be realized in accordance with control optimal for hardware. If there is a problem or specification change, the state division in the function C conversion step S2 is corrected.

このとき、機能C記述2には、時間の概念であるクロックは反映されていない。このため、ハードウェアの三大構成要素のうち、クロックを除き、データパスと制御のみを考慮して機能検証を行う。ここで、ハードウェアの「データパス」とは、演算処理に相当し、「制御」とは、switch文で記述されたステートマシーンに相当する。時間の概念であるクロックを考慮しないことによって、検証の複雑化を防止することができる。   At this time, the clock which is the concept of time is not reflected in the function C description 2. Therefore, functional verification is performed considering only the data path and control, except for the clock, among the three major components of the hardware. Here, the “data path” of hardware corresponds to arithmetic processing, and “control” corresponds to a state machine described by a switch statement. By not considering the clock which is the concept of time, it is possible to prevent the verification from becoming complicated.

機能検証ステップS3においてハードウェアの機能が確定したと判断されると、RTレベルC変換ステップS4に移行し、RTレベルC変換システム40が有するクロック挿入手段41によって、機能C記述2に対して、時間の概念であるクロック記述を挿入し、RTレベルC記述3を生成する。このクロック記述挿入は例えば、変換プログラムによって実行される。   When it is determined in the function verification step S3 that the hardware function is confirmed, the process proceeds to the RT level C conversion step S4, and the function C description 2 is added to the function C description 2 by the clock insertion means 41 of the RT level C conversion system 40. A clock description, which is a concept of time, is inserted, and an RT level C description 3 is generated. This clock description insertion is executed by, for example, a conversion program.

図5はRTレベルC記述3の一例であり、ハード・ソフト協調設計ツールN2C用のCoWareCに適用した場合の記述例である。図5では、ステートマシーン全体がクロックで動作するように“thread rise(clk)”文を挿入している。また、機能C記述2において見積もった実行時間を参考にして、状態を細かく分割するなどの処理を行う。例えば図4(b)では、EXEC状態に、「2サイクル必要」という意味のコメント“//2Cycle”が挿入されている。このコメントを受けて、EXEC状態を例えばEXECとEXEC1とに分割する。このとき、switch文を利用する代わりに、“if”文で記述してもよい。さらに、ポートは、ポートプロトコルに従って、データやイネーブルなどの複数信号に変換する。これらの変換は、プログラムにより自動化可能である。   FIG. 5 shows an example of the RT level C description 3, which is a description example when applied to CoWare C for the hardware / software co-design tool N2C. In FIG. 5, a “thread rise (clk)” statement is inserted so that the entire state machine operates with a clock. Further, referring to the execution time estimated in the function C description 2, processing such as finely dividing the state is performed. For example, in FIG. 4B, a comment “// 2Cycle” meaning “2 cycles required” is inserted in the EXEC state. In response to this comment, the EXEC status is divided into, for example, EXEC and EXEC1. At this time, instead of using a switch statement, an “if” statement may be used. Further, the port converts into a plurality of signals such as data and enable according to the port protocol. These conversions can be automated by a program.

RTレベルC変換ステップS4においてRTレベルC記述3が作成されると、動作検証ステップS5において、クロックサイクル精度でハードウェアの動作タイミングの検証を行う。データパスおよび制御に関しては、上述の機能検証ステップS3においてすでに検証済みであるので、ここでは、タイミング動作のみを検証する。   When the RT level C description 3 is created in the RT level C conversion step S4, the operation timing of the hardware is verified with clock cycle accuracy in the operation verification step S5. Since the data path and control have already been verified in the function verification step S3 described above, only the timing operation is verified here.

動作検証ステップS5において、タイミング動作が確認されると、HDL変換ステップS6において、変換ツール60を用いて、RTレベルC記述3をVerilog−HDL5に変換する。   When the timing operation is confirmed in the operation verification step S5, the RT level C description 3 is converted into Verilog-HDL5 by using the conversion tool 60 in the HDL conversion step S6.

以上のように本実施形態によると、アルゴリズムC記述1と同一レベルで記述を変更することによって、機能C記述2を作成できるので、ANSI−CやC++に代表される既存の純粋なC言語によって書かれた記述を基にして、論理回路のハードウェアを容易に設計することができる。   As described above, according to the present embodiment, the function C description 2 can be created by changing the description at the same level as that of the algorithm C description 1, so that the existing pure C language represented by ANSI-C and C ++ can be used. Based on the written description, the logic circuit hardware can be easily designed.

また、機能C記述2は、クロックサイクルにとらわれない処理単位に着目して状態が分割されているので、1つの状態が複数サイクルで実行されるように表現することができる。このため、従来よりも抽象度がより高いレベルで、ハードウェアアーキテクチャおよびハードウェア制御方法を検討することができる。   In addition, since the function C description 2 is divided into states with a focus on processing units that are not constrained by clock cycles, it can be expressed such that one state is executed in a plurality of cycles. For this reason, the hardware architecture and the hardware control method can be studied at a higher level of abstraction than before.

さらに、機能C記述2について、初期化状態、演算状態および結果出力状態を基本として状態分割したので、変換スタイルを統一することが可能である。またこれにより、初期化部および結果出力部がステートマシーン外部またはモジュール外部とのデータの入出力を行う状態として表現できるので、RTレベルC変換ステップS4においてクロック記述を挿入する際にも、機能間データの受け渡し時におけるクロックサイクルのタイミング調整が容易になる。   Furthermore, since the function C description 2 is divided into states based on the initialization state, the operation state, and the result output state, it is possible to unify the conversion style. This also allows the initialization unit and the result output unit to be expressed as a state of inputting / outputting data to / from the outside of the state machine or the outside of the module. Therefore, even when the clock description is inserted in the RT level C conversion step S4, It is easy to adjust the timing of the clock cycle when transferring data.

加えて、機能検証ステップS3により、ハードウェアのデータパスと制御のみを検証し、クロックタイミングを除いた機能を早期に確定させるようにしたので、設計の早い段階で、ハードウェアの構成要素であるデータパスと制御を確定できる。さらに、クロックの概念が存在しないため、高速な機能検証が可能であり、かつ、検証および設計変更時の修正も容易である。これにより、設計期間を大幅に短縮できるという効果が得られる。   In addition, in the function verification step S3, only the data path and control of the hardware are verified, and the functions excluding the clock timing are determined at an early stage, so that it is a hardware component at an early stage of design. Data path and control can be determined. Furthermore, since there is no clock concept, high-speed functional verification is possible, and verification and correction at the time of design change are easy. Thereby, the effect that a design period can be shortened significantly is acquired.

さらに、状態毎にクロック計測関数を挿入することによって、各状態の実行サイクルを細かく見積もることが可能であるので、処理性能を高い精度で見積もることができる。すなわち、通常ハードウェアと並行して作成しているC言語による機能モデル(シミュレーションモデル)を、この機能C記述2によって代用することが可能となるため、2重開発をも防ぐことができる。   Furthermore, by inserting a clock measurement function for each state, it is possible to estimate the execution cycle of each state in detail, so that the processing performance can be estimated with high accuracy. That is, since the function model (simulation model) in C language that is normally created in parallel with the hardware can be substituted by the function C description 2, double development can be prevented.

また、クロックサイクルタイミング検証を最後に行うので、この段階で、サイクルタイミングに関する問題に着目して検証を行うことができ、検証が容易となる。このことは、検証効率を向上させ、デバッグ効率が向上させる。この結果、設計期間を短縮することができる。   In addition, since the clock cycle timing verification is performed last, it is possible to perform the verification by paying attention to the problem related to the cycle timing at this stage, and the verification becomes easy. This improves verification efficiency and debugging efficiency. As a result, the design period can be shortened.

さらに、1つの状態遷移は1つの“do”“while”文で完結するようにしたので、ANSI−CまたはC++等の言語そのままで、アルゴリズム動作を変えることなく、ステートマシーンを記述できる。これにより、特別な専用言語を用いることなく、状態遷移表現を挿入しても、ステートマシーン内の演算処理動作を正しく実行することができる。   Furthermore, since one state transition is completed by one “do” and “while” statement, the state machine can be described without changing the algorithm operation in a language such as ANSI-C or C ++. As a result, even if the state transition expression is inserted without using a special dedicated language, the arithmetic processing operation in the state machine can be correctly executed.

さらには、サイクル毎に状態遷移を抜ける(breakする)ことがないため、1状態遷移を1関数に割り当てる必要もなく、また、サイクル毎に関数を呼び出す必要がないため、高速にシミュレーションを実行することができる。これは、C言語において、ハードウェアの構成要素である「制御」を演算処理内に明示的に埋め込むことが可能ということであり、機能C記述2において、特別な言語を用いることなく、ハードウェアの演算部と制御部を記述できるということである。これにより、早期にハードウェアアーキテクチャを検討できるほか、高速に機能検証を実施することが可能となる。   Furthermore, since the state transition does not break (break) every cycle, there is no need to assign one state transition to one function, and there is no need to call a function every cycle, so the simulation is executed at high speed. be able to. This means that, in C language, it is possible to explicitly embed “control”, which is a hardware component, in the arithmetic processing. In the function C description 2, the hardware can be used without using a special language. This means that the calculation unit and control unit can be described. As a result, the hardware architecture can be studied at an early stage, and the function can be verified at high speed.

加えて、機能C変換ステップS2において、並列動作を表現する場合について説明する。   In addition, the case where parallel operation is expressed in the function C conversion step S2 will be described.

図6は並列動作を表現する場合の記述例である。例えば1つの状態内で複数の処理を並列に実行させたいと考えたとする。この場合、図6(a−1)に示す機能C記述2のように、各処理に対応するコメント(例えば“//parallel”)によって、並列処理を明示する方法が考えられる(破線囲み部分)。図6(a−2)は図6(a−1)の機能C記述2をRTレベルCに変換した際の記述例である。図6(a−2)に示すように、機能C記述2のとおり、同一状態“S0==2”において2つの処理が動作するように変換すればよい。   FIG. 6 is a description example in the case of expressing a parallel operation. For example, assume that it is desired to execute a plurality of processes in parallel in one state. In this case, as shown in the function C description 2 shown in FIG. 6A-1, a method of clearly indicating parallel processing by a comment (for example, “// parallel”) corresponding to each processing is conceivable (a portion surrounded by a broken line). . FIG. 6A-2 is a description example when the function C description 2 of FIG. 6A-1 is converted to RT level C. FIG. As shown in FIG. 6A-2, conversion may be performed so that two processes operate in the same state “S0 == 2” as in function C description 2.

しかし、各処理単位が、状態遷移を持つ必要がある場合が考えられる。この場合は図6(b−1)に示すように、それぞれのステートマシーンを“do”“while ”文を用いてそれぞれ閉じるように、記述する(破線囲み部分)。図6(b−2)は図6(b−1)の機能C記述2をRTレベルCに変換した際の記述例である。図6(b−2)に示すように、2個のステートマシーンは、機能C記述2のとおり、同一状態“S0==2”で動作するように条件文を挿入して変換すればよい。   However, there may be a case where each processing unit needs to have a state transition. In this case, as shown in FIG. 6B-1, each state machine is described so as to be closed by using “do” and “while” statements (a portion surrounded by a broken line). FIG. 6B-2 is a description example when the function C description 2 in FIG. 6B-1 is converted to the RT level C. As shown in FIG. 6B-2, the two state machines may be converted by inserting conditional statements so that they operate in the same state “S0 == 2” as in function C description 2.

このように、機能C変換ステップS2において、処理の並列性を明示できるので、機能C記述2において、特別なシミュレータを必要とせずに並列動作を記述でき、かつ高速にシミュレーション可能である。また、ハードウェアの制御にあたる部分と並列性の両方を明示することができるので、RTレベルC記述に変換する際も、並列記述への変換が容易となる。   As described above, since the parallelism of the processing can be clearly shown in the function C conversion step S2, the parallel operation can be described in the function C description 2 without requiring a special simulator, and the simulation can be performed at high speed. Further, since both the hardware control part and the parallelism can be clearly shown, conversion to the parallel description is facilitated when converting to the RT level C description.

(第2の実施形態)
図7は本発明の第2の実施形態に係る論理回路設計システムであって、C言語記述からのハードウェアトップダウン設計システムの構成を示す図である。図7では、図1と共通の構成要素には図1と同一の符号を付している。図7において、22は機能C変換システム20Aが有するモジュール分割手段であり、アルゴリズムC記述1に対し、ハードウェア機能に着目してモジュール毎に記述し直し、モジュール分割を行う。42はRTレベルC変換システム40Aが有する制御・データパス分離手段であり、機能C記述2から、「制御」を表す状態遷移記述と「データパス」を表す演算記述とを分離する。
(Second Embodiment)
FIG. 7 is a diagram showing a configuration of a hardware top-down design system based on a C language description, which is a logic circuit design system according to the second embodiment of the present invention. In FIG. 7, the same reference numerals as those in FIG. In FIG. 7, reference numeral 22 denotes a module dividing unit included in the function C conversion system 20 </ b> A. The algorithm C description 1 is rewritten for each module by paying attention to the hardware function, and module division is performed. Reference numeral 42 denotes control / data path separation means included in the RT level C conversion system 40A, which separates from the function C description 2 a state transition description representing “control” and an operation description representing “data path”.

図8は本実施形態に係る論理回路設計方法を示す処理フローである。図8では、図2と共通の処理ステップには図2と同一の符号を付している。図8において、S7はアルゴリズムC記述1がハードウェア機能に着目してモジュール分割できるか否かを判断するモジュール分割判断ステップであり、S8はアルゴリズムC記述1について、ハードウェア特有の機能であるメモリやハードマクロなどを別モジュールとして分割するモジュール分割ステップである。S9は制御・データパス分離ステップであり、機能C記述2から、制御を表しているステートマシーンの“switch”文記述と、“switch”文の“case”文内の演算処理記述とを分離する。   FIG. 8 is a processing flow showing the logic circuit design method according to this embodiment. In FIG. 8, the same processing steps as those in FIG. 2 are denoted by the same reference numerals as those in FIG. In FIG. 8, S7 is a module division determination step for determining whether or not the algorithm C description 1 can be divided into modules by paying attention to the hardware function, and S8 is a memory that is a hardware-specific function for the algorithm C description 1. This is a module dividing step for dividing a hard macro or the like as a separate module. S9 is a control / data path separation step, which separates the “switch” statement description of the state machine representing the control and the operation processing description in the “case” statement of the “switch” statement from the function C description 2. .

以下、本実施形態に係る論理回路設計方法について、図7〜図11を参照して説明する。   Hereinafter, the logic circuit design method according to the present embodiment will be described with reference to FIGS.

まずアルゴリズム検証ステップS1では、第1の実施形態と同様に、アルゴリズム検証システム10において、アルゴリズムC記述1がCコンパイラ11によってコンパイルされ、アルゴリズムを検証するためのアルゴリズムCシミュレータ12になる。そして、このアルゴリズムCシミュレータ12を用いて、演算処理(データパス)のみを検証する。またこれとともに、アルゴリズムが確定したか否かを判断する。そして、アルゴリズムが確定するまで、アルゴリズムC記述1の修正とその検証が繰り返される。   First, in the algorithm verification step S1, as in the first embodiment, in the algorithm verification system 10, the algorithm C description 1 is compiled by the C compiler 11 to become an algorithm C simulator 12 for verifying the algorithm. Then, using this algorithm C simulator 12, only the arithmetic processing (data path) is verified. At the same time, it is determined whether or not the algorithm has been determined. Then, correction of the algorithm C description 1 and its verification are repeated until the algorithm is determined.

アルゴリズム検証ステップS1でアルゴリズムが確定した後、次に、モジュール分割判断ステップS7において、モジュール分割手段22によって、アルゴリズムC記述1について、そのハードウェア機能に着目して、モジュールに分割できるか否かを判断する。アルゴリズムC記述1に、例えば、配列のようなメモリに相当する記述があるとき、または、乗算器のハードウェアマクロの使用を想定している場合は乗算部分の記述があるとき、これらの記述を別モジュールとして分割する。この処理は、変換プログラム等を用いて、配列およびハードマクロを認識することによって実現することができる。あるいは、例えばコードをGUI等で表示しておき、演算処理単位で切り貼りすることによって、記述の分割を行うことも可能である。   After the algorithm is determined in the algorithm verification step S1, next, in the module division determination step S7, whether or not the module C description 1 can be divided into modules by paying attention to the hardware function of the algorithm C description 1 to decide. For example, when algorithm C description 1 has a description corresponding to a memory such as an array, or when a hardware macro of a multiplier is assumed, there is a description of a multiplication part, these descriptions are Divide as a separate module. This processing can be realized by recognizing the array and the hard macro using a conversion program or the like. Alternatively, for example, the code can be displayed by GUI or the like, and the description can be divided by cutting and pasting in units of arithmetic processing.

ここでは、GUIによってモジュール分割を行う方法を図9を参照して説明する。図9に示すように、GUI画面80上にファイルをオープンし、変換前のアルゴリズムC記述81を表示させる。利用者は、画面表示上で、メモリに相当する配列への代入文や乗算部分、または複数のパラメータ設定レジスタ部をモジュール分割部分82として選択していき、それぞれについて「Module Name 」83にモジュール名を指定する。このように指定すると、モジュール分割手段22によるプログラム変換によって、変換後の分割C記述が作成され、分割C記述表示欄84に分割後の個別モジュールがそれぞれ表示される。   Here, a method of dividing a module by using a GUI will be described with reference to FIG. As shown in FIG. 9, the file is opened on the GUI screen 80, and the algorithm C description 81 before conversion is displayed. On the screen display, the user selects an assignment statement to the array corresponding to the memory, a multiplication part, or a plurality of parameter setting register parts as the module division part 82, and assigns a module name to “Module Name” 83 for each. Is specified. When designated in this way, the divided C description after conversion is created by program conversion by the module dividing means 22, and the divided individual modules are respectively displayed in the divided C description display field 84.

図10はモジュール分割の一例を示す図である。同図中、(a)は元のアルゴリズムC記述、(b)はモジュール分割後のアルゴリズムC記述である。図10(a)において、配列にデータを入力している部分Aがハードウェアのメモリ部となり、パラメータに代入している部分B1,B2がレジスタ部となる。また、関数を呼び出している部分Cが演算実行部となる。部分A、部分B1,B2および部分Cはそれぞれ、図10(b)のようにモジュール分割される。分割したモジュール内にハードウェア機能特有の記述が存在しなくなると、機能C変換ステップS2に移行する。   FIG. 10 is a diagram illustrating an example of module division. In the figure, (a) is the original algorithm C description, and (b) is the algorithm C description after module division. In FIG. 10A, a portion A where data is input to the array is a hardware memory portion, and portions B1 and B2 assigned to parameters are register portions. Further, the part C that calls the function is the operation execution unit. Part A, parts B1, B2, and part C are each divided into modules as shown in FIG. When there is no description specific to the hardware function in the divided module, the process proceeds to the function C conversion step S2.

機能C変換ステップS2では、ハードウェア特有の機能を持ったモジュールは、基本的には、機能C記述への変換を行わない。信号線の制御を含む場合等は、RTレベルC記述に変換する際に、論理回路にあたる部分のみを具体化する。これ以外の部分については、第1の実施形態と同様にして、モジュール内の状態分割および状態遷移の明示を行い、機能C記述2に変換する。ここでは、演算実行部にあたるモジュールを状態分割し、機能C記述2とする。   In the function C conversion step S2, a module having a hardware-specific function is basically not converted into a function C description. In the case of including signal line control, only the portion corresponding to the logic circuit is embodied when converting to the RT level C description. For other parts, as in the first embodiment, the state division in the module and the state transition are clearly specified, and converted into the function C description 2. Here, the module corresponding to the operation execution unit is state-divided into a function C description 2.

図11は機能C記述2への変換の一例を示す図である。同図中、(a)はアルゴリズムC記述、(b)は機能C記述である。Aは初期化状態、Bは演算実行状態、Cは結果出力状態である。演算実行状態Bはさらに2つの状態に分割してもよく、図11(b)ではさらに分割した記述例を示している。すなわち図11(b)では、状態Bはさらに、メモリなどからのデータ入力状態と、演算状態とに分割されている。この場合、状態遷移は、A初期化状態(アイドル状態)→B1データ入力状態→B2演算実行状態→C結果出力状態→初期化状態(アイドル状態)となる。   FIG. 11 is a diagram illustrating an example of conversion into the function C description 2. In the figure, (a) is an algorithm C description, and (b) is a function C description. A is an initialization state, B is an operation execution state, and C is a result output state. The operation execution state B may be further divided into two states, and FIG. 11B shows a description example further divided. That is, in FIG. 11B, the state B is further divided into a data input state from a memory or the like and a calculation state. In this case, the state transition is A initialization state (idle state) → B1 data input state → B2 operation execution state → C result output state → initialization state (idle state).

次に機能検証ステップS3において、第1の実施形態と同様にハードウェアの制御とデータパスを検証し、ハードウェアの機能を確定する。   Next, in the function verification step S3, the hardware control and the data path are verified as in the first embodiment, and the hardware function is determined.

次に、制御・データパス分離ステップS9において、RTレベルC変換システム40A内の制御・データパス分離手段42によって、機能C記述2から、「制御」に相当する状態遷移記述の“switch”文と、“switch”文の“case”文内に書かれた「データパス」にあたる演算処理記述とを分離する。このとき、“For ”文等はカウンタ記述に展開する。その後、RTレベルC変換ステップS4において、クロック記述を挿入して、RTレベルC記述3を生成する。   Next, in the control / data path separation step S9, the control / data path separation means 42 in the RT level C conversion system 40A uses the “switch” statement of the state transition description corresponding to “control” from the function C description 2. The operation processing description corresponding to the “data path” written in the “case” statement of the “switch” statement is separated. At this time, the “For” statement and the like are expanded into a counter description. Thereafter, in RT level C conversion step S4, a clock description is inserted to generate RT level C description 3.

図12はハード・ソフト協調設計ツールN2C用のCoWareCに沿ったRTレベルC記述の変換例を示す図である。同図中、(a)は元のアルゴリズムC記述、(b)はRTレベルC記述である。図12(a)に示すアルゴリズムC記述から、制御部分を抽出し、ステートマシーンを形成し、クロック記述を挿入する。また、図12(a)の各状態内の演算処理を、同一パラメータに着目して個別に抜き出し、抜き出した演算処理について、それぞれが存在していた状態のみ動作するように制御信号を加え、それぞれにクロック記述を挿入する。また“For ”文はカウンタ記述として別途展開する。このようにして作成したRTレベルC記述は、図12(b)のようになる。図12(b)の記述は、HDLのRTL記述とほぼ同様の構成をしており、ハードウェア設計者にとって可読性が高い。   FIG. 12 is a diagram showing an example of conversion of RT level C description along CoWareC for the hardware / software co-design tool N2C. In the figure, (a) is the original algorithm C description, and (b) is the RT level C description. A control part is extracted from the algorithm C description shown in FIG. 12A, a state machine is formed, and a clock description is inserted. In addition, the arithmetic processing in each state of FIG. 12A is individually extracted by paying attention to the same parameter, and a control signal is added so that each of the extracted arithmetic processing operates only in the existing state, Insert a clock description into The “For” statement is separately expanded as a counter description. The RT level C description created in this way is as shown in FIG. The description of FIG. 12B has almost the same configuration as the HDL RTL description, and is highly readable for the hardware designer.

次に、動作検証ステップS5において、RTレベルC変換ステップS4において生成したRTレベルC記述3を用いて、タイミング検証システム50において、タイミング検証を実施する。そして、タイミング動作に問題がない場合は、HDL変換ステップS6において、RTレベルC記述3をVerilog−HDL5に変換する。   Next, in the operation verification step S5, the timing verification system 50 performs timing verification using the RT level C description 3 generated in the RT level C conversion step S4. If there is no problem in the timing operation, the RT level C description 3 is converted into Verilog-HDL5 in the HDL conversion step S6.

以上のように本実施形態によると、機能C変換ステップS2の前処理として、アルゴリズムC記述1をハードウェア機能に着目して、複数のモジュールに分割するので、抽象度が高い段階でハードウェアアーキテクチャを検討することが可能となり、ハードウェア特有の機能を意図的に分離することが可能となる。これにより、演算処理機能と蓄積機能などを容易に分離することが可能となり、次段の機能C変換ステップS2での分割設計が容易になるとともに、後にハードマクロに置き換えるような,アルゴリズムC記述1のままで検証すればよい記述を分離できるので、RTレベルの設計も容易となる。   As described above, according to the present embodiment, as preprocessing of the function C conversion step S2, the algorithm C description 1 is divided into a plurality of modules by focusing on the hardware function. Therefore, it is possible to intentionally separate hardware-specific functions. As a result, it is possible to easily separate the arithmetic processing function and the storage function, and the division C design step 1 in the next function C conversion step S2 becomes easy, and the algorithm C description 1 is replaced with a hard macro later. Since it is possible to separate descriptions that can be verified as they are, RT-level design is also facilitated.

また、データ入力状態、演算状態、および結果出力状態を基本として状態分割したので、機能C記述2への変換スタイルを統一することが可能になる。また、データ入力状態および結果出力状態がステートマシーン外部またはモジュール外部とのデータの入出力を行う状態として表現できるので、RTレベルC変換ステップS4においてクロック記述を挿入する際に、機能間データの受け渡し時におけるクロックサイクルのタイミング調整が容易になる。   In addition, since the state is divided based on the data input state, the operation state, and the result output state, the conversion style to the function C description 2 can be unified. In addition, since the data input state and the result output state can be expressed as a state in which data is input / output to / from the state machine or the outside of the module, the inter-function data is transferred when the clock description is inserted in the RT level C conversion step S4 It is easy to adjust the timing of the clock cycle at the time.

また、設計の後半で、機能C記述2から、「制御」を表す状態遷移記述を抜き出し、さらに各状態内に記述されている「データパス」を表す演算処理記述を各変数単位で個別に抜き出し分離して、RTレベルCを生成するので、HDLによるRTレベル記述と同様に、コードの可読性が向上し、検証時における不具合解析のデバッグ性が向上する。   Also, in the latter half of the design, the state transition description representing “control” is extracted from the function C description 2, and the operation processing description representing “data path” described in each state is extracted individually for each variable. Since the RT level C is generated separately, the readability of the code is improved as in the case of the RT level description by HDL, and the debugging performance of the failure analysis at the time of verification is improved.

さらに、メモリ部と演算処理部とに分割するようにしたので、HDLのRTLコードを生成する際に、メモリライブラリとの置き換えを容易に行うことができ、早い段階からハードウェアアーキテクチャを考慮した、設計を行うことができる。このため、回路規模が大きくなることを未然に防ぎ、HDLによって設計したときと同様に、メモリを考慮した設計が行えるだけでなく、使用するメモリの変更等が容易になる。また、演算処理部のみを機能C記述またはRTレベルC記述に変更して設計およびシミュレーションすることが可能となるので、設計容易性およびシミュレーション速度が向上する。   Furthermore, since the memory unit and the arithmetic processing unit are divided, when generating the HDL RTL code, it can be easily replaced with the memory library, considering the hardware architecture from an early stage. Design can be done. For this reason, it is possible to prevent the circuit scale from becoming large, and not only can the design be performed in consideration of the memory, but also the change of the memory to be used can be facilitated as in the case of designing by HDL. In addition, design and simulation can be performed by changing only the arithmetic processing unit to the function C description or the RT level C description, so that design ease and simulation speed are improved.

加えて、演算処理のためのパラメータ設定レジスタ部を別モジュールとして分割するようにしたので、レジスタ数変更等の場合において、演算処理部などのコードに変更を加えることなく、部分的に変更することができる。また、機能検証時の不具合解析時に、所望の変数名を大きなコードから探し出す必要がないため、デバッグが容易となる。さらに、ハードウェアにしたときに、レジスタ部をメモリに置き換えることも容易に可能である。   In addition, since the parameter setting register unit for arithmetic processing is divided as a separate module, in the case of changing the number of registers, etc., it is necessary to change partly without changing the code of the arithmetic processing unit etc. Can do. In addition, since it is not necessary to search for a desired variable name from a large code at the time of failure analysis during function verification, debugging is facilitated. Furthermore, it is possible to easily replace the register portion with a memory when hardware is used.

なおここでは、メモリ部の分割を例にあげたが、例えば、乗算器などの演算器が、ハードウェアにおいてソフトマクロまたはハードウェアマクロとして定義されている場合は、同様に、その演算処理部を別モジュールとして分割しておけばよい。   Here, the division of the memory unit is taken as an example. However, for example, when an arithmetic unit such as a multiplier is defined as a soft macro or a hardware macro in hardware, similarly, the arithmetic processing unit is Divide it as a separate module.

(第3の実施形態)
図13は本発明の第3の実施形態に係る論理回路設計システムであって、C言語記述からのハードウェアトップダウン設計システムの構成を示す図である。図13では、図7と共通の構成要素には図7と同一の符号を付している。図13において、図7におけるRTレベルC変換システム40A、タイミング検証システム50および変換ツール60に代えて、SystemC変換システム40B、SystemC検証システム50AおよびSystemC合成ツール70が、それぞれ設けられている。SystemC変換システム40Bは、制御・データパス分離手段42およびセンシティブ指定のためのセンシティブ記述挿入手段43を備えており、機能C記述2をSystemC記述6に変換する。SystemC検証システム50Aは、SystemC記述6をSystemCのライブラリ7を用いてCコンパイラ53によってコンパイルし、SystemCシミュレータ54を生成する。SystemC合成ツール70は例えばSynopsyのSystemCコンパイラからなり、SystemC記述6をVerilog−HDL5に変換する。
(Third embodiment)
FIG. 13 is a diagram showing a configuration of a hardware top-down design system based on a C language description, which is a logic circuit design system according to the third embodiment of the present invention. In FIG. 13, the same reference numerals as those in FIG. In FIG. 13, instead of the RT level C conversion system 40A, the timing verification system 50, and the conversion tool 60 in FIG. 7, a SystemC conversion system 40B, a SystemC verification system 50A, and a SystemC synthesis tool 70 are provided. The System C conversion system 40B includes a control / data path separation unit 42 and a sensitive description insertion unit 43 for sensitive designation, and converts the function C description 2 into the System C description 6. The SystemC verification system 50A compiles the SystemC description 6 by the C compiler 53 using the SystemC library 7 and generates a SystemC simulator 54. The SystemC synthesis tool 70 includes, for example, a SystemC compiler from Synopsy, and converts the SystemC description 6 into Verilog-HDL5.

図14は本実施形態に係る論理回路設計方法を示す処理フローである。図14では、図8と共通の処理ステップには図8と同一の符号を付している。図14において、S10はSystemC変換システム40Bにおいて、機能C記述2にセンシティブ記述を挿入してSystemC記述6に変換するSystemC変換ステップであり、S11はSystemCシミュレータ54を用いてクロックサイクルのシミュレーションを行うSystemC検証ステップである。またS12は既存の合成ツールを用いてSystemC記述6をVerilog−HDL5に合成するHDL変換ステップである。SystemC変換ステップS10は本発明のRTレベルC変換ステップに相当する。   FIG. 14 is a processing flow showing the logic circuit design method according to this embodiment. In FIG. 14, the same processing steps as those in FIG. 8 are denoted by the same reference numerals as those in FIG. In FIG. 14, S10 is a SystemC conversion step in which the system C conversion system 40B inserts a sensitive description into the function C description 2 and converts it into the SystemC description 6. S11 performs a system cycle simulation using the SystemC simulator 54. This is a verification step. S12 is an HDL conversion step for synthesizing the SystemC description 6 into Verilog-HDL5 using an existing synthesis tool. The System C conversion step S10 corresponds to the RT level C conversion step of the present invention.

以下、本実施形態に係る論理回路設計方法について、図13〜図15を参照して説明する。   Hereinafter, the logic circuit design method according to the present embodiment will be described with reference to FIGS.

第2の実施形態と同様にして、機能C変換ステップS2において機能C記述2を生成し、機能検証ステップS3においてハードウェアの機能を確定させる。そして、制御・データパス分離ステップS9において、SystemC変換システム40B内の制御・データパス分離手段42によって、ハードウェアの「制御」に相当する状態遷移を記述した制御記述と、「データパス」に相当する各状態内の演算処理を記述したデータパス記述とを分離する。データパス記述は、各パラメータ毎に個別に記述する。   Similar to the second embodiment, the function C description 2 is generated in the function C conversion step S2, and the hardware function is determined in the function verification step S3. Then, in the control / data path separation step S9, the control / data path separation means 42 in the SystemC conversion system 40B uses the control description describing the state transition corresponding to the “control” of the hardware and the “data path”. The data path description describing the arithmetic processing in each state is separated. The data path description is described individually for each parameter.

次に、SystemC変換ステップS10において、ステップS9で分離した制御記述およびデータパス記述に対して、センシティブ記述を付加する。またこれとともに、SystemC文法への変換を行う。この変換は例えば、変換プログラムを用いて行われる。   Next, in SystemC conversion step S10, a sensitive description is added to the control description and data path description separated in step S9. At the same time, conversion to SystemC grammar is performed. This conversion is performed using, for example, a conversion program.

図15はSystemC記述6への変換の一例を示す図であり、同図中、(a)は元の機能C記述、(b)はSystemCに変換した記述である。最後に付加されたセンシティブ記述91によって、クロック同期で動作する部分か、センシティブリストで組み合わせ回路となるべき記述かが指定される。   FIG. 15 is a diagram showing an example of conversion to the SystemC description 6, in which (a) is the original function C description and (b) is the description converted to SystemC. The sensitive description 91 added at the end designates a portion that operates in clock synchronization or a description that should be a combinational circuit in the sensitive list.

ステップS10においてSystemC記述6に変換されると、SystemC検証ステップS11において、SystemC検証システム50Aが有するSystemCシミュレータ54を用いて、クロックサイクルベースの検証を行う。クロックサイクルベースの検証において正しい動作が確認されると、HDL変換ステップS12において、SystemCコンパイラ等の既存のSystemC合成ツール70を用いて、SystemC記述6をHDLのRTレベル記述5に変換する。   When converted into the SystemC description 6 in step S10, in the SystemC verification step S11, verification based on the clock cycle is performed using the SystemC simulator 54 included in the SystemC verification system 50A. When correct operation is confirmed in the clock cycle-based verification, in the HDL conversion step S12, the SystemC description 6 is converted into the HDL RT level description 5 by using an existing SystemC synthesis tool 70 such as a SystemC compiler.

以上のように本実施形態によると、機能C記述から例えばSystemCに変換することによって、所望の設計言語へスムーズに変換できる。このように、設計言語に依存せずに、ハードウェア機能を検証した後で、設計言語を決定できる。これにより、設計言語やシミュレーションツール、および動作合成ツールなどが開発当初に決定しなくとも、設計を開始することが可能であるので、開発効率を大幅に向上させ、開発期間を短縮することができる。また、機能C記述完成の段階で、最適なツールを選択することもできる。   As described above, according to the present embodiment, conversion from a function C description to, for example, SystemC can be performed smoothly into a desired design language. Thus, the design language can be determined after verifying the hardware function without depending on the design language. As a result, the design can be started even if the design language, simulation tool, behavioral synthesis tool, etc. are not decided at the beginning of development, so the development efficiency can be greatly improved and the development period can be shortened. . Also, an optimal tool can be selected at the stage of completion of the function C description.

なお、ここではSystemCの記述例を示したが、同様の手順により、SpecCの文法を適用すれば、機能C記述からSpecCに変換可能で、同様の効果が得られることは言うまでもない。   Although a description example of SystemC is shown here, it goes without saying that if the SpecC grammar is applied according to the same procedure, the function C description can be converted to SpecC, and the same effect can be obtained.

なお各実施形態においては、RTLCの段階で、CoWareC,SystemCまたはSpecCなどに変換するとしたが、例えば、アルゴリズムの段階からこれらの記述で設計されたモジュールと接続されており、接続はこれらの文法に従って記述しておいて、モジュールまたはブロック内の記述は純粋なC言語で書かれているようなものであっても、本段階的設計方法は、まったく同様に実施できる。そして、各実施形態と同様に、設計効率向上の効果が十分効得られることは、ハードウェアの3大構成要素であるデータパス、制御およびクロックが言語とは無関係であることから明らかである。   In each embodiment, conversion to CoWareC, SystemC, SpecC, or the like is performed in the RTLC stage. However, for example, the module is connected to the module designed in these descriptions from the algorithm stage, and the connection follows these grammars. Even though the description in the module or block is written in pure C language, this stepwise design method can be implemented in exactly the same way. As in the embodiments, it is clear that the effect of improving the design efficiency can be sufficiently obtained because the data path, control, and clock, which are the three major components of hardware, are independent of the language.

なお、本発明の各実施形態に係る論理回路設計方法は、当該方法を実現するためのプログラムを実行するコンピュータによって実現することができる。また、当該方法を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録したプログラムをコンピュータに実行させることによって実現することができる。特に、機能C変換システム20,20A、RTレベルC変換システム40,40AおよびSystemC変換システム40Bの機能を、プログラムによって実現することが可能であることはいうまでもない。   The logic circuit design method according to each embodiment of the present invention can be realized by a computer that executes a program for realizing the method. Further, it can be realized by recording a program for realizing the method on a computer-readable recording medium and causing the computer to execute the program recorded on the recording medium. In particular, it goes without saying that the functions of the function C conversion systems 20, 20A, the RT level C conversion systems 40, 40A, and the System C conversion system 40B can be realized by a program.

本発明の第1の実施形態に係るC言語記述からのトップダウン設計システムの構成を示す図である。It is a figure which shows the structure of the top-down design system from the C language description based on the 1st Embodiment of this invention. 本発明の第1の実施形態に係る論理回路設計方法を示す処理フロー図である。It is a processing flow figure showing a logic circuit design method concerning a 1st embodiment of the present invention. 本発明の第1の実施形態において、アルゴリズムC記述をGUIを用いて分割する例を示す図である。FIG. 10 is a diagram illustrating an example of dividing an algorithm C description using a GUI in the first embodiment of the present invention. 本発明の第1の実施形態における状態分割の一例を示す図である。It is a figure which shows an example of the state division | segmentation in the 1st Embodiment of this invention. クロック記述が挿入されたRTレベル記述の例を示す図である。It is a figure which shows the example of RT level description in which the clock description was inserted. 並列動作を表現した記述例とその状態分割の一例を示す図である。It is a figure which shows an example of the description which expressed parallel operation | movement, and an example of the state division | segmentation. 本発明の第2の実施形態に係るC言語記述からのトップダウン設計システム構成図である。It is a top-down design system block diagram from the C language description based on the 2nd Embodiment of this invention. 本発明の第2の実施形態に係る論理回路設計方法を示す処理フロー図である。It is a processing flowchart which shows the logic circuit design method which concerns on the 2nd Embodiment of this invention. 本発明の第2の実施形態において、アルゴリズムC記述をGUIを用いて分割する例を示す図である。In the 2nd Embodiment of this invention, it is a figure which shows the example which divides | segments the algorithm C description using GUI. 本発明の第2の実施形態における状態分割の一例を示す図である。It is a figure which shows an example of the state division | segmentation in the 2nd Embodiment of this invention. 本発明の第2の実施形態における状態分割記述変換例を示す図である。It is a figure which shows the example of a state division | segmentation description conversion in the 2nd Embodiment of this invention. 本発明の第2の実施形態におけるRTレベルC記述への変換例を示す図である。It is a figure which shows the example of conversion into RT level C description in the 2nd Embodiment of this invention. 本発明の第3の実施形態に係るC言語記述からのトップダウン設計システム構成図である。It is a top-down design system block diagram from the C language description based on the 3rd Embodiment of this invention. 本発明の第3の実施形態に係る論理回路設計方法を示す処理フロー図である。It is a processing flowchart which shows the logic circuit design method which concerns on the 3rd Embodiment of this invention. 本発明の第3の実施形態における変換した記述例を示す図である。It is a figure which shows the converted description example in the 3rd Embodiment of this invention. 従来の論理シミュレーションシステムの構成を示す図である。It is a figure which shows the structure of the conventional logic simulation system.

符号の説明Explanation of symbols

1 アルゴリズムC記述
2 機能C記述
3 RTレベルC記述
5 Verilog−HDL(HDLによるRTレベル記述)
20,20A 機能C変換システム
21 状態分割手段
30 機能検証システム
40,40A RTレベルC変換システム
41 クロック挿入手段
50 タイミング検証システム
60 HDL変換ツール
S2 機能C変換ステップ
S3 機能検証ステップ
S4 RTレベルC変換ステップ
S5 動作検証ステップ
S6 HDL変換ステップ
S8 モジュール分割ステップ
S10 SystemC変換ステップ(RTレベルC変換ステップ)
DESCRIPTION OF SYMBOLS 1 Algorithm C description 2 Function C description 3 RT level C description 5 Verilog-HDL (RT level description by HDL)
20, 20A Function C conversion system 21 State division means 30 Function verification system 40, 40A RT level C conversion system 41 Clock insertion means 50 Timing verification system 60 HDL conversion tool S2 Function C conversion step S3 Function verification step S4 RT level C conversion step S5 operation verification step S6 HDL conversion step S8 module division step S10 SystemC conversion step (RT level C conversion step)

Claims (25)

状態分割手段と、クロック挿入手段と、変換ツールとを有する論理回路設計システムを用いた論理回路設計方法であって、
前記状態分割手段が、論理回路の演算または制御のアルゴリズムをC言語によって記述したアルゴリズムC記述を、機能を基準とした処理単位毎の状態に記述し直し、処理の実行順序を状態の遷移として記述することによって、ハードウェアの制御を記述した機能C記述に変換する機能C変換ステップと、
前記クロック挿入手段が、前記機能C変換ステップによって生成された機能C記述に、時間の概念であるクロック記述を挿入して、レジスタ・トランスファ(RT)レベルC記述に変換するRTレベルC変換ステップと、
前記変換ツールが、前記RTレベルC変換ステップによって生成されたRTレベルC記述を、HDLによるRTレベル記述に変換するHDL変換ステップとを備え、
前記機能C変換ステップは、
前記アルゴリズムC記述を、少なくとも1つのアイドル状態または初期化状態を含む複数の状態の記述に、分割するものである
ことを特徴とする論理回路設計方法。
A logic circuit design method using a logic circuit design system having a state dividing unit, a clock inserting unit, and a conversion tool,
The state dividing means re-describes an algorithm C description in which a logic circuit operation or control algorithm is described in C language into a state for each processing unit based on a function, and describes a process execution order as a state transition. A function C conversion step of converting the hardware control into a function C description describing the hardware control;
An RT level C conversion step in which the clock insertion means inserts a clock description, which is a concept of time, into the function C description generated by the function C conversion step and converts the clock description into a register transfer (RT) level C description; ,
The conversion tool comprises an HDL conversion step of converting the RT level C description generated by the RT level C conversion step into an HDL RT level description;
The function C conversion step includes:
A logic circuit design method, wherein the algorithm C description is divided into a plurality of state descriptions including at least one idle state or initialization state.
状態分割手段と、クロック挿入手段と、変換ツールとを有する論理回路設計システムを用いた論理回路設計方法であって、
前記状態分割手段が、論理回路の演算または制御のアルゴリズムをC言語によって記述したアルゴリズムC記述を、機能を基準とした処理単位毎の状態に記述し直し、処理の実行順序を状態の遷移として記述することによって、ハードウェアの制御を記述した機能C記述に変換する機能C変換ステップと、
前記クロック挿入手段が、前記機能C変換ステップによって生成された機能C記述に、時間の概念であるクロック記述を挿入して、レジスタ・トランスファ(RT)レベルC記述に変換するRTレベルC変換ステップと、
前記変換ツールが、前記RTレベルC変換ステップによって生成されたRTレベルC記述を、HDLによるRTレベル記述に変換するHDL変換ステップとを備え、
前記機能C変換ステップは、
前記アルゴリズムC記述を、少なくとも、データ入力処理に対応するデータ入力状態の記述、演算処理に対応する演算状態の記述、およびデータ出力処理に対応する結果出力状態の記述に、分割するものである
ことを特徴とする論理回路設計方法。
A logic circuit design method using a logic circuit design system having a state dividing unit, a clock inserting unit, and a conversion tool,
The state dividing means re-describes an algorithm C description in which a logic circuit operation or control algorithm is described in C language into a state for each processing unit based on a function, and describes a process execution order as a state transition. A function C conversion step of converting the hardware control into a function C description describing the hardware control;
An RT level C conversion step in which the clock insertion means inserts a clock description, which is a concept of time, into the function C description generated by the function C conversion step and converts the clock description into a register transfer (RT) level C description; ,
The conversion tool comprises an HDL conversion step of converting the RT level C description generated by the RT level C conversion step into an HDL RT level description;
The function C conversion step includes:
The algorithm C description is divided into at least a data input state description corresponding to the data input process, an operation state description corresponding to the operation process, and a result output state description corresponding to the data output process. A logic circuit design method characterized by the above.
状態分割手段と、クロック挿入手段と、変換ツールとを有する論理回路設計システムを用いた論理回路設計方法であって、
前記状態分割手段が、論理回路の演算または制御のアルゴリズムをC言語によって記述したアルゴリズムC記述を、機能を基準とした処理単位毎の状態に記述し直し、処理の実行順序を状態の遷移として記述することによって、ハードウェアの制御を記述した機能C記述に変換する機能C変換ステップと、
前記クロック挿入手段が、前記機能C変換ステップによって生成された機能C記述に、時間の概念であるクロック記述を挿入して、レジスタ・トランスファ(RT)レベルC記述に変換するRTレベルC変換ステップと、
前記変換ツールが、前記RTレベルC変換ステップによって生成されたRTレベルC記述を、HDLによるRTレベル記述に変換するHDL変換ステップとを備え、かつ、
前記機能C記述を用いて、ハードウェアの機能について、クロックを除き、そのデータパスと制御のみを検証する機能検証ステップを備え、
前記機能検証ステップにおいて、前記ハードウェア機能が正しいと確認されたとき、前記RTレベルC変換ステップに移行する
ことを特徴とする論理回路設計方法。
A logic circuit design method using a logic circuit design system having a state dividing unit, a clock inserting unit, and a conversion tool,
The state dividing means re-describes an algorithm C description in which a logic circuit operation or control algorithm is described in C language into a state for each processing unit based on a function, and describes a process execution order as a state transition. A function C conversion step of converting the hardware control into a function C description describing the hardware control;
An RT level C conversion step in which the clock insertion means inserts a clock description, which is a concept of time, into the function C description generated by the function C conversion step and converts the clock description into a register transfer (RT) level C description; ,
The conversion tool comprises an HDL conversion step of converting the RT level C description generated by the RT level C conversion step into an HDL RT level description, and
Using the function C description, the hardware function includes a function verification step for verifying only the data path and control, excluding the clock,
In the function verification step, when it is confirmed that the hardware function is correct, the logic circuit design method shifts to the RT level C conversion step.
状態分割手段と、クロック挿入手段と、変換ツールとを有する論理回路設計システムを用いた論理回路設計方法であって、
前記状態分割手段が、論理回路の演算または制御のアルゴリズムをC言語によって記述したアルゴリズムC記述を、機能を基準とした処理単位毎の状態に記述し直し、処理の実行順序を状態の遷移として記述することによって、ハードウェアの制御を記述した機能C記述に変換する機能C変換ステップと、
前記クロック挿入手段が、前記機能C変換ステップによって生成された機能C記述に、時間の概念であるクロック記述を挿入して、レジスタ・トランスファ(RT)レベルC記述に変換するRTレベルC変換ステップと、
前記変換ツールが、前記RTレベルC変換ステップによって生成されたRTレベルC記述を、HDLによるRTレベル記述に変換するHDL変換ステップとを備え、かつ、
前記クロック挿入手段が、前記RTレベルC記述を用いて、ハードウェアのクロックサイクルタイミング動作を検証する動作検証ステップを備え、
前記動作検証ステップにおいて、クロックサイクルタイミング動作が正しいと確認されたとき、前記HDL変換ステップに移行する
ことを特徴とする論理回路設計方法。
A logic circuit design method using a logic circuit design system having a state dividing unit, a clock inserting unit, and a conversion tool,
The state dividing means re-describes an algorithm C description in which a logic circuit operation or control algorithm is described in C language into a state for each processing unit based on a function, and describes a process execution order as a state transition. A function C conversion step of converting the hardware control into a function C description describing the hardware control;
An RT level C conversion step in which the clock insertion means inserts a clock description, which is a concept of time, into the function C description generated by the function C conversion step and converts the clock description into a register transfer (RT) level C description; ,
The conversion tool comprises an HDL conversion step of converting the RT level C description generated by the RT level C conversion step into an HDL RT level description, and
The clock insertion means comprises an operation verification step of verifying a hardware clock cycle timing operation using the RT level C description;
In the operation verification step, when it is confirmed that the clock cycle timing operation is correct, the logic circuit design method moves to the HDL conversion step.
状態分割手段と、クロック挿入手段と、変換ツールとを有する論理回路設計システムを用いた論理回路設計方法であって、
前記状態分割手段が、論理回路の演算または制御のアルゴリズムをC言語によって記述したアルゴリズムC記述を、機能を基準とした処理単位毎の状態に記述し直し、処理の実行順序を状態の遷移として記述することによって、ハードウェアの制御を記述した機能C記述に変換する機能C変換ステップと、
前記クロック挿入手段が、前記機能C変換ステップによって生成された機能C記述に、時間の概念であるクロック記述を挿入して、レジスタ・トランスファ(RT)レベルC記述に変換するRTレベルC変換ステップと、
前記変換ツールが、前記RTレベルC変換ステップによって生成されたRTレベルC記述を、HDLによるRTレベル記述に変換するHDL変換ステップとを備え、
前記機能C変換ステップは、
状態遷移表現を、switch文で記述するものであり、
処理単位を、多分岐表現によって、それぞれ記述し、
実行順序を、case内に遷移先を明記することによって表現し、かつ
1個のステートマシーンを、ループ表現を用いて閉じるように、記述するものである
ことを特徴とする論理回路設計方法。
A logic circuit design method using a logic circuit design system having a state dividing unit, a clock inserting unit, and a conversion tool,
The state dividing means re-describes an algorithm C description in which a logic circuit operation or control algorithm is described in C language into a state for each processing unit based on a function, and describes a process execution order as a state transition. A function C conversion step of converting the hardware control into a function C description describing the hardware control;
An RT level C conversion step in which the clock insertion means inserts a clock description, which is a concept of time, into the function C description generated by the function C conversion step and converts the clock description into a register transfer (RT) level C description; ,
The conversion tool comprises an HDL conversion step of converting the RT level C description generated by the RT level C conversion step into an HDL RT level description;
The function C conversion step includes:
State transition expression is described by a switch statement.
Describe each processing unit in multi-branch expression,
A logic circuit design method characterized in that an execution order is expressed by specifying a transition destination in a case, and a state machine is described so as to be closed using a loop expression.
請求項5記載の論理回路設計方法において、
前記機能C変換ステップは、
1個の状態内で複数の処理を並列に実行させるとき、その複数のステートマシーンを、ループ表現を用いてそれぞれ閉じるように、記述するものである
ことを特徴とする論理回路設計方法。
The logic circuit design method according to claim 5,
The function C conversion step includes:
A logic circuit design method characterized in that when a plurality of processes are executed in parallel in one state, the plurality of state machines are described so as to be closed using a loop expression.
状態分割手段と、クロック挿入手段と、変換ツールとを有する論理回路設計システムを用いた論理回路設計方法であって、
前記状態分割手段が、論理回路の演算または制御のアルゴリズムをC言語によって記述したアルゴリズムC記述を、機能を基準とした処理単位毎の状態に記述し直し、処理の実行順序を状態の遷移として記述することによって、ハードウェアの制御を記述した機能C記述に変換する機能C変換ステップと、
前記クロック挿入手段が、前記機能C変換ステップによって生成された機能C記述に、時間の概念であるクロック記述を挿入して、レジスタ・トランスファ(RT)レベルC記述に変換するRTレベルC変換ステップと、
前記変換ツールが、前記RTレベルC変換ステップによって生成されたRTレベルC記述を、HDLによるRTレベル記述に変換するHDL変換ステップとを備え、
前記機能C変換ステップの前処理として、前記状態分割手段が、前記アルゴリズムC記述を、ハードウェア機能に着目してモジュール毎に記述し直し、モジュール毎のアルゴリズムC記述を生成するモジュール分割ステップを備えた
ことを特徴とする論理回路設計方法。
A logic circuit design method using a logic circuit design system having a state dividing unit, a clock inserting unit, and a conversion tool,
The state dividing means re-describes an algorithm C description in which a logic circuit operation or control algorithm is described in C language into a state for each processing unit based on a function, and describes a process execution order as a state transition. A function C conversion step of converting the hardware control into a function C description describing the hardware control;
An RT level C conversion step in which the clock insertion means inserts a clock description, which is a concept of time, into the function C description generated by the function C conversion step and converts the clock description into a register transfer (RT) level C description; ,
The conversion tool comprises an HDL conversion step of converting the RT level C description generated by the RT level C conversion step into an HDL RT level description;
As a pre-processing of the function C conversion step, the state dividing unit includes a module dividing step for rewriting the algorithm C description for each module by paying attention to a hardware function and generating an algorithm C description for each module. A logic circuit design method characterized by that.
請求項7記載の論理回路設計方法において、
前記モジュール分割ステップは、
前記アルゴリズムC記述を、少なくとも、メモリ部と、演算処理部とに、分割する
ことを特徴とする論理回路設計方法。
The logic circuit design method according to claim 7,
The module dividing step includes:
A logic circuit design method, wherein the algorithm C description is divided into at least a memory unit and an arithmetic processing unit.
請求項7記載の論理回路設計方法において、
前記モジュール分割ステップは、
前記アルゴリズムC記述について、ハードウェアのソフトマクロまたはハードマクロに対応した演算器を別モジュールとして分割する
ことを特徴とする論理回路設計方法。
The logic circuit design method according to claim 7,
The module dividing step includes:
A logic circuit design method for dividing the algorithm C description into a hardware soft macro or an arithmetic unit corresponding to the hard macro as a separate module.
請求項7記載の論理回路設計方法において、
前記モジュール分割ステップは、
前記アルゴリズムC記述について、演算処理のためのパラメータ設定レジスタ部を別モジュールとして分割する
ことを特徴とする論理回路設計方法。
The logic circuit design method according to claim 7,
The module dividing step includes:
A logic circuit design method for dividing the parameter setting register unit for arithmetic processing into a separate module for the algorithm C description.
状態分割手段と、クロック挿入手段と、変換ツールとを有する論理回路設計システムを用いた論理回路設計方法であって、
前記状態分割手段が、論理回路の演算または制御のアルゴリズムをC言語によって記述したアルゴリズムC記述を、機能を基準とした処理単位毎の状態に記述し直し、処理の実行順序を状態の遷移として記述することによって、ハードウェアの制御を記述した機能C記述に変換する機能C変換ステップと、
前記クロック挿入手段が、前記機能C変換ステップによって生成された機能C記述に、時間の概念であるクロック記述を挿入して、レジスタ・トランスファ(RT)レベルC記述に変換するRTレベルC変換ステップと、
前記変換ツールが、前記RTレベルC変換ステップによって生成されたRTレベルC記述を、HDLによるRTレベル記述に変換するHDL変換ステップとを備え、
前記RTレベルC変換ステップは、
前記機能C記述から、制御を表す状態遷移記述と、データパスを表す演算処理記述とを、抜き出し、
抜き出した前記状態遷移記述および演算処理記述のそれぞれに、時間の概念であるクロック記述を挿入するものである
ことを特徴とする論理回路設計方法。
A logic circuit design method using a logic circuit design system having a state dividing unit, a clock inserting unit, and a conversion tool,
The state dividing means re-describes an algorithm C description in which a logic circuit operation or control algorithm is described in C language into a state for each processing unit based on a function, and describes a process execution order as a state transition. A function C conversion step of converting the hardware control into a function C description describing the hardware control;
An RT level C conversion step in which the clock insertion means inserts a clock description, which is a concept of time, into the function C description generated by the function C conversion step and converts the clock description into a register transfer (RT) level C description; ,
The conversion tool comprises an HDL conversion step of converting the RT level C description generated by the RT level C conversion step into an HDL RT level description;
The RT level C conversion step includes:
From the function C description, a state transition description representing control and an arithmetic processing description representing a data path are extracted,
A logic circuit design method, wherein a clock description which is a concept of time is inserted into each of the extracted state transition description and operation processing description.
状態分割手段と、クロック挿入手段と、変換ツールとを有する論理回路設計システムを用いた論理回路設計方法であって、
前記状態分割手段が、論理回路の演算または制御のアルゴリズムをC言語によって記述したアルゴリズムC記述を、機能を基準とした処理単位毎の状態に記述し直し、処理の実行順序を状態の遷移として記述することによって、ハードウェアの制御を記述した機能C記述に変換する機能C変換ステップと、
前記クロック挿入手段が、前記機能C変換ステップによって生成された機能C記述に、時間の概念であるクロック記述を挿入して、レジスタ・トランスファ(RT)レベルC記述に変換するRTレベルC変換ステップと、
前記変換ツールが、前記RTレベルC変換ステップによって生成されたRTレベルC記述を、HDLによるRTレベル記述に変換するHDL変換ステップとを備え、
前記RTレベルC変換ステップは、
SystemCまたはSpecCの文法を適用して、RTレベルC記述を生成するものである
ことを特徴とする論理回路設計方法。
A logic circuit design method using a logic circuit design system having a state dividing unit, a clock inserting unit, and a conversion tool,
The state dividing means re-describes an algorithm C description in which a logic circuit operation or control algorithm is described in C language into a state for each processing unit based on a function, and describes a process execution order as a state transition. A function C conversion step of converting the hardware control into a function C description describing the hardware control;
An RT level C conversion step in which the clock insertion means inserts a clock description, which is a concept of time, into the function C description generated by the function C conversion step and converts the clock description into a register transfer (RT) level C description; ,
The conversion tool comprises an HDL conversion step of converting the RT level C description generated by the RT level C conversion step into an HDL RT level description;
The RT level C conversion step includes:
A logic circuit design method for generating an RT level C description by applying a grammar of SystemC or SpecC.
コンピュータに、
論理回路の演算または制御のアルゴリズムをC言語によって記述したアルゴリズムC記述を、機能を基準とした処理単位毎の状態に記述し直し、処理の実行順序を状態の遷移として記述することによって、ハードウェアの制御を記述した機能C記述に変換する機能C変換ステップと、
前記機能C変換ステップによって生成された機能C記述に、時間の概念であるクロック記述を挿入して、レジスタ・トランスファ(RT)レベルC記述に変換するRTレベルC変換ステップとを実行させるものであり、
前記機能C変換ステップは、
前記アルゴリズムC記述を、少なくとも1つのアイドル状態または初期化状態を含む複数の状態の記述に、分割するものである
ことを特徴とするプログラム。
On the computer,
By rewriting an algorithm C description in which a logic circuit operation or control algorithm is described in C language into a state for each processing unit based on a function, and describing the execution order of processing as a state transition, the hardware A function C conversion step for converting into a function C description describing the control of
An RT level C conversion step of inserting a clock description, which is a concept of time, into the function C description generated by the function C conversion step and converting it into a register transfer (RT) level C description is executed. ,
The function C conversion step includes:
A program characterized in that the algorithm C description is divided into a plurality of state descriptions including at least one idle state or initialization state.
コンピュータに、
論理回路の演算または制御のアルゴリズムをC言語によって記述したアルゴリズムC記述を、機能を基準とした処理単位毎の状態に記述し直し、処理の実行順序を状態の遷移として記述することによって、ハードウェアの制御を記述した機能C記述に変換する機能C変換ステップと、
前記機能C変換ステップによって生成された機能C記述に、時間の概念であるクロック記述を挿入して、レジスタ・トランスファ(RT)レベルC記述に変換するRTレベルC変換ステップとを実行させるものであり、
前記機能C変換ステップは、
前記アルゴリズムC記述を、少なくとも、データ入力処理に対応するデータ入力状態の記述、演算処理に対応する演算状態の記述、およびデータ出力処理に対応する結果出力状態の記述に、分割するものである
ことを特徴とするプログラム。
On the computer,
By rewriting an algorithm C description in which a logic circuit operation or control algorithm is described in C language into a state for each processing unit based on a function, and describing the execution order of processing as a state transition, the hardware A function C conversion step for converting into a function C description describing the control of
An RT level C conversion step of inserting a clock description, which is a concept of time, into the function C description generated by the function C conversion step and converting it into a register transfer (RT) level C description is executed. ,
The function C conversion step includes:
The algorithm C description is divided into at least a data input state description corresponding to the data input process, an operation state description corresponding to the operation process, and a result output state description corresponding to the data output process. A program characterized by
コンピュータに、
論理回路の演算または制御のアルゴリズムをC言語によって記述したアルゴリズムC記述を、機能を基準とした処理単位毎の状態に記述し直し、処理の実行順序を状態の遷移として記述することによって、ハードウェアの制御を記述した機能C記述に変換する機能C変換ステップと、
前記機能C変換ステップによって生成された機能C記述に、時間の概念であるクロック記述を挿入して、レジスタ・トランスファ(RT)レベルC記述に変換するRTレベルC変換ステップとを実行させるものであり、かつ、
前記機能C記述を用いて、ハードウェアの機能について、クロックを除き、そのデータパスと制御のみを検証する機能検証ステップを実行させるものであり、
前記機能検証ステップにおいて、前記ハードウェア機能が正しいと確認されたとき、前記RTレベルC変換ステップに移行する
ことを特徴とするプログラム。
On the computer,
By rewriting an algorithm C description in which a logic circuit operation or control algorithm is described in C language into a state for each processing unit based on a function, and describing the execution order of processing as a state transition, the hardware A function C conversion step for converting into a function C description describing the control of
An RT level C conversion step of inserting a clock description, which is a concept of time, into the function C description generated by the function C conversion step and converting it into a register transfer (RT) level C description is executed. ,And,
Using the function C description, a function verification step for verifying only the data path and control of the hardware function, excluding the clock, is performed.
In the function verification step, when it is confirmed that the hardware function is correct, the program shifts to the RT level C conversion step.
コンピュータに、
論理回路の演算または制御のアルゴリズムをC言語によって記述したアルゴリズムC記述を、機能を基準とした処理単位毎の状態に記述し直し、処理の実行順序を状態の遷移として記述することによって、ハードウェアの制御を記述した機能C記述に変換する機能C変換ステップと、
前記機能C変換ステップによって生成された機能C記述に、時間の概念であるクロック記述を挿入して、レジスタ・トランスファ(RT)レベルC記述に変換するRTレベルC変換ステップとを実行させるものであり、かつ、
前記RTレベルC記述を用いて、ハードウェアのクロックサイクルタイミング動作を検証する動作検証ステップを実行させるものであり、
前記動作検証ステップにおいて、クロックサイクルタイミング動作が正しいと確認されたとき、前記RTレベルC変換ステップによって生成されたRTレベルC記述を、HDLによるRTレベル記述に変換するHDL変換ステップに移行する
ことを特徴とするプログラム。
On the computer,
By rewriting an algorithm C description in which a logic circuit operation or control algorithm is described in C language into a state for each processing unit based on a function, and describing the execution order of processing as a state transition, the hardware A function C conversion step for converting into a function C description describing the control of
An RT level C conversion step of inserting a clock description, which is a concept of time, into the function C description generated by the function C conversion step and converting it into a register transfer (RT) level C description is executed. ,And,
Using the RT level C description to execute an operation verification step of verifying a clock cycle timing operation of hardware;
In the operation verification step, when the clock cycle timing operation is confirmed to be correct, the RT level C description generated by the RT level C conversion step is shifted to an HDL conversion step for converting the RT level description into an RT level description by HDL. A featured program.
コンピュータに、
論理回路の演算または制御のアルゴリズムをC言語によって記述したアルゴリズムC記述を、機能を基準とした処理単位毎の状態に記述し直し、処理の実行順序を状態の遷移として記述することによって、ハードウェアの制御を記述した機能C記述に変換する機能C変換ステップと、
前記機能C変換ステップによって生成された機能C記述に、時間の概念であるクロック記述を挿入して、レジスタ・トランスファ(RT)レベルC記述に変換するRTレベルC変換ステップとを実行させるものであり、
前記機能C変換ステップは、
状態遷移表現を、switch文で記述するものであり、
処理単位を、多分岐表現によって、それぞれ記述し、
実行順序を、case内に遷移先を明記することによって表現し、かつ
1個のステートマシーンを、ループ表現を用いて閉じるように、記述するものである
ことを特徴とするプログラム。
On the computer,
By rewriting an algorithm C description in which a logic circuit operation or control algorithm is described in C language into a state for each processing unit based on a function, and describing the execution order of processing as a state transition, the hardware A function C conversion step for converting into a function C description describing the control of
An RT level C conversion step of inserting a clock description, which is a concept of time, into the function C description generated by the function C conversion step and converting it into a register transfer (RT) level C description is executed. ,
The function C conversion step includes:
State transition expression is described by a switch statement.
Describe each processing unit in multi-branch expression,
A program characterized in that the execution order is expressed by specifying a transition destination in a case, and one state machine is described so as to be closed using a loop expression.
請求項17記載のプログラムにおいて、
前記機能C変換ステップは、
1個の状態内で複数の処理を並列に実行させるとき、その複数のステートマシーンを、ループ表現を用いてそれぞれ閉じるように、記述するものである
ことを特徴とするプログラム。
The program according to claim 17,
The function C conversion step includes:
A program characterized in that when a plurality of processes are executed in parallel in one state, the plurality of state machines are described so as to be closed using a loop expression.
コンピュータに、
論理回路の演算または制御のアルゴリズムをC言語によって記述したアルゴリズムC記述を、機能を基準とした処理単位毎の状態に記述し直し、処理の実行順序を状態の遷移として記述することによって、ハードウェアの制御を記述した機能C記述に変換する機能C変換ステップと、
前記機能C変換ステップによって生成された機能C記述に、時間の概念であるクロック記述を挿入して、レジスタ・トランスファ(RT)レベルC記述に変換するRTレベルC変換ステップとを実行させるものであり、かつ、
前記機能C変換ステップの前処理として、前記アルゴリズムC記述を、ハードウェア機能に着目してモジュール毎に記述し直し、モジュール毎のアルゴリズムC記述を生成するモジュール分割ステップを実行させる
ことを特徴とするプログラム。
On the computer,
By rewriting an algorithm C description in which a logic circuit operation or control algorithm is described in C language into a state for each processing unit based on a function, and describing the execution order of processing as a state transition, the hardware A function C conversion step for converting into a function C description describing the control of
An RT level C conversion step of inserting a clock description, which is a concept of time, into the function C description generated by the function C conversion step and converting it into a register transfer (RT) level C description is executed. ,And,
As pre-processing of the function C conversion step, the algorithm C description is rewritten for each module by paying attention to hardware functions, and a module division step for generating an algorithm C description for each module is executed. program.
請求項19記載のプログラムにおいて、
前記モジュール分割ステップは、
前記アルゴリズムC記述を、少なくとも、メモリ部と、演算処理部とに、分割する
ことを特徴とするプログラム。
The program according to claim 19, wherein
The module dividing step includes:
A program characterized by dividing the algorithm C description into at least a memory unit and an arithmetic processing unit.
請求項19記載のプログラムにおいて、
前記モジュール分割ステップは、
前記アルゴリズムC記述について、ハードウェアのソフトマクロまたはハードマクロに対応した演算器を別モジュールとして分割する
ことを特徴とするプログラム。
The program according to claim 19, wherein
The module dividing step includes:
A program for dividing the algorithm C description into a hardware soft macro or an arithmetic unit corresponding to the hard macro as a separate module.
請求項19記載のプログラムにおいて、
前記モジュール分割ステップは、
前記アルゴリズムC記述について、演算処理のためのパラメータ設定レジスタ部を別モジュールとして分割する
ことを特徴とするプログラム。
The program according to claim 19, wherein
The module dividing step includes:
A program characterized by dividing a parameter setting register for arithmetic processing as a separate module for the algorithm C description.
コンピュータに、
論理回路の演算または制御のアルゴリズムをC言語によって記述したアルゴリズムC記述を、機能を基準とした処理単位毎の状態に記述し直し、処理の実行順序を状態の遷移として記述することによって、ハードウェアの制御を記述した機能C記述に変換する機能C変換ステップと、
前記機能C変換ステップによって生成された機能C記述に、時間の概念であるクロック記述を挿入して、レジスタ・トランスファ(RT)レベルC記述に変換するRTレベルC変換ステップとを実行させるものであり、
前記RTレベルC変換ステップは、
前記機能C記述から、制御を表す状態遷移記述と、データパスを表す演算処理記述とを、抜き出し、
抜き出した前記状態遷移記述および演算処理記述のそれぞれに、時間の概念であるクロック記述を挿入するものである
ことを特徴とするプログラム。
On the computer,
By rewriting an algorithm C description in which a logic circuit operation or control algorithm is described in C language into a state for each processing unit based on a function, and describing the execution order of processing as a state transition, the hardware A function C conversion step for converting into a function C description describing the control of
An RT level C conversion step of inserting a clock description, which is a concept of time, into the function C description generated by the function C conversion step and converting it into a register transfer (RT) level C description is executed. ,
The RT level C conversion step includes:
From the function C description, a state transition description representing control and an arithmetic processing description representing a data path are extracted,
A program for inserting a clock description, which is a concept of time, into each of the extracted state transition description and operation processing description.
コンピュータに、
論理回路の演算または制御のアルゴリズムをC言語によって記述したアルゴリズムC記述を、機能を基準とした処理単位毎の状態に記述し直し、処理の実行順序を状態の遷移として記述することによって、ハードウェアの制御を記述した機能C記述に変換する機能C変換ステップと、
前記機能C変換ステップによって生成された機能C記述に、時間の概念であるクロック記述を挿入して、レジスタ・トランスファ(RT)レベルC記述に変換するRTレベルC変換ステップとを実行させるものであり、
前記RTレベルC変換ステップは、
SystemCまたはSpecCの文法を適用して、RTレベルC記述を生成するものである
ことを特徴とするプログラム。
On the computer,
By rewriting an algorithm C description in which a logic circuit operation or control algorithm is described in C language into a state for each processing unit based on a function, and describing the execution order of processing as a state transition, the hardware A function C conversion step for converting into a function C description describing the control of
An RT level C conversion step of inserting a clock description, which is a concept of time, into the function C description generated by the function C conversion step and converting it into a register transfer (RT) level C description is executed. ,
The RT level C conversion step includes:
A program characterized in that an RT level C description is generated by applying a grammar of SystemC or SpecC.
請求項13〜24のうちいずれか1項に記載のプログラムを記録した
コンピュータ読み取り可能な記録媒体。
A computer-readable recording medium on which the program according to any one of claims 13 to 24 is recorded.
JP2006038226A 2006-02-15 2006-02-15 Logic circuit design method Expired - Fee Related JP4177851B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006038226A JP4177851B2 (en) 2006-02-15 2006-02-15 Logic circuit design method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006038226A JP4177851B2 (en) 2006-02-15 2006-02-15 Logic circuit design method

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2001197867A Division JP3803561B2 (en) 2001-06-29 2001-06-29 Logic circuit design method

Publications (2)

Publication Number Publication Date
JP2006185461A JP2006185461A (en) 2006-07-13
JP4177851B2 true JP4177851B2 (en) 2008-11-05

Family

ID=36738483

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006038226A Expired - Fee Related JP4177851B2 (en) 2006-02-15 2006-02-15 Logic circuit design method

Country Status (1)

Country Link
JP (1) JP4177851B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5211776B2 (en) * 2008-03-14 2013-06-12 日本電気株式会社 Behavioral synthesis apparatus, behavioral synthesis method, and program
JP5644344B2 (en) * 2010-10-05 2014-12-24 富士通セミコンダクター株式会社 DESIGN DATA GENERATION DEVICE, DESIGN DATA GENERATION METHOD, AND PROGRAM

Also Published As

Publication number Publication date
JP2006185461A (en) 2006-07-13

Similar Documents

Publication Publication Date Title
JP3803561B2 (en) Logic circuit design method
Gajski et al. Embedded system design: modeling, synthesis and verification
JP3835754B2 (en) Integrated circuit design method and integrated circuit designed thereby
US5764951A (en) Methods for automatically pipelining loops
US20020152061A1 (en) Data processing system and design system
EP1872288A2 (en) Method and system for debugging using replicated logic and trigger logic
JP4147842B2 (en) Logic verification system and method, logic cone extraction apparatus and method, logic verification and logic cone extraction program
JP2006048525A (en) Simulation method
US6760889B2 (en) Method for converting a logic circuit model
EP1784749A2 (en) Method and system for designing a structural level description of an electronic circuit
JPH113367A (en) Design environment and method for generating an implementable description of a digital system
JP4177851B2 (en) Logic circuit design method
US7305650B1 (en) Data path synthesis apparatus and method for optimizing a behavioral design description being processed by a behavioral synthesis tool
JP2006285333A (en) Operation composition device and method
Tripakis et al. Correct and non-defensive glue design using abstract models
JP4152659B2 (en) Data processing system and design system
US20070271080A1 (en) Model generation method for software/hardware collaboration design
CN101351801A (en) Method for reconstructing sentence and computer system with the same function
Reshadi No-Instruction-Set-Computer (NISC) technology modeling and compilation
Reese et al. Synchronous Sequential Circuit Design
JP5729546B2 (en) Semiconductor design support apparatus, timing constraint generation method, and program
Niskanen High-level verification flow for a high-level synthesis-based digital logic design
Gajski System-level design methodology
JP2009129367A (en) Behavioral synthesis system, behavioral synthesis method, and program for behavioral synthesis
Öberg et al. Grammar-based design of embedded systems

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080729

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080822

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110829

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110829

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120829

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees