SysmtemC関連の用語集
高位設計という分野でいろいろ用語があって混乱するので、簡単にめも。
間違いがあるかも。
間違いがあるかも。
一般的な用語
SystemCにかぎらず。
BCA
抽象度レベルの1つ。
機能ブロック間を流れる(バス)データのタイミングを正確にとらえたモデル。
バスのタイミング精度は高い。
バスはRTLに近い記述、機能ブロックはタイミングを持たなくてもよい。
BCA:Bus Cycle-Accurrate、バスサイクルアキュレート
抽象レベルの順番は高い順に、UTF、TF、BCA、CA
機能ブロック間を流れる(バス)データのタイミングを正確にとらえたモデル。
バスのタイミング精度は高い。
バスはRTLに近い記述、機能ブロックはタイミングを持たなくてもよい。
BCA:Bus Cycle-Accurrate、バスサイクルアキュレート
抽象レベルの順番は高い順に、UTF、TF、BCA、CA
CAモデル
抽象度レベルの1つ。
CA:Cycle-Accurate、サイクルアキュレート
機能ブロック内の詳細な動作を記述する。
タイミング精度は高い。
RTL記述もしくはそれに近いモデル。
抽象レベルの順番は高い順に、UTF、TF、BCA、CA
CA:Cycle-Accurate、サイクルアキュレート
機能ブロック内の詳細な動作を記述する。
タイミング精度は高い。
RTL記述もしくはそれに近いモデル。
抽象レベルの順番は高い順に、UTF、TF、BCA、CA
CC
CC:Cycle Callable
CA、BCAをあわせて呼ぶことがある。
CA、BCAをあわせて呼ぶことがある。
ESL設計
RTL設計よりも抽象度の高い工程を広く指す用語。
ESL:Electronic System Level
高位設計をESL設計と呼び方を置き換えることが多い。
ESL:Electronic System Level
高位設計をESL設計と呼び方を置き換えることが多い。
GreenSocs
TLM標準化を推進している団体の1つ。
抽象レベルを定義し、OSCIの基本APIをベースにそれらの抽象レベルのAPIを定義している。
残念ながらその定義は少しずつ異なっている。
抽象レベルを定義し、OSCIの基本APIをベースにそれらの抽象レベルのAPIを定義している。
残念ながらその定義は少しずつ異なっている。
OCP-IP
TLM標準化を推進している団体の1つ。
OCP-IP:OCP International Partnership Association, Inc.
OCP:Open Core Protocol
OCPは、完全に支援されたオープンライセンス方式の総合的なインターフェイスソケット。
OCP-IP:OCP International Partnership Association, Inc.
OCP:Open Core Protocol
OCPは、完全に支援されたオープンライセンス方式の総合的なインターフェイスソケット。
OCP/TL0
OCP-IPが提唱する抽象レベルの1つ。
RTL Layer。
RTL Layer。
OCP/TL1
OCP-IPが提唱する抽象レベルの1つ。
transfer layer (closest to implementation)
CA(CC)にあたる。
transfer layer (closest to implementation)
CA(CC)にあたる。
OCP/TL2
OCP-IPが提唱する抽象レベルの1つ。
transaction layer
TF(+BCA)にあたる。
transaction layer
TF(+BCA)にあたる。
OCP/TL3
OCP-IPが提唱する抽象レベルの1つ。
message layer (highest and most abstract level)
UTFにあたる。
message layer (highest and most abstract level)
UTFにあたる。
OSCI
SystemCの標準化・普及推進団体。
オスキーと読む。
OSCI:Open SystemC Initiative
OSCIサイトからSystemCライブラリが無償でダウンロードできる。
オスキーと読む。
OSCI:Open SystemC Initiative
OSCIサイトからSystemCライブラリが無償でダウンロードできる。
OSCI TLM
OSCI TLM WGが開発した、SystemCを用いてTLMを実現するためのライブラリ。
各種通信APIや通信インタフェースなどが定義されている。
OSCIサイトから、TLM-1.0、TLM-2.0 Draft1、TLM-2.0 Draft2がリリースされている。
各種通信APIや通信インタフェースなどが定義されている。
OSCIサイトから、TLM-1.0、TLM-2.0 Draft1、TLM-2.0 Draft2がリリースされている。
PV
OSCI、GreenSocsが提唱する抽象レベルの1つ。
PV:Programmer's View
ソフトウェアを書く人側からみた、充分な精度という意味。
UTF を PV と呼ぶこともある。
PV:Programmer's View
ソフトウェアを書く人側からみた、充分な精度という意味。
UTF を PV と呼ぶこともある。
PVT
OSCI、GreenSocsが提唱する抽象レベルの1つ。
PVT:Programmer's View Timing
PVに時刻の情報を加えたもので、時間精度が上がる。
TFと同じ意味。
PVT:Programmer's View Timing
PVに時刻の情報を加えたもので、時間精度が上がる。
TFと同じ意味。
RTL
RTL:Register Transfer Level
レジスタ間のデータ転送と演算によって記述。
設計言語としてVerilogHDLやVHDLなどが広く使わる。
レジスタ間のデータ転送と演算によって記述。
設計言語としてVerilogHDLやVHDLなどが広く使わる。
SystemC
OSCIにより企画されたハードウェアモデリング言語。
C++だけで構成されている。
IEEE1666で標準化されている。
C++だけで構成されている。
IEEE1666で標準化されている。
TFモデル
抽象度レベルの1つ。
TF:Timed Function、タイムド・ファンクション
抽象レベルの順番は高い順に、UTF、TF、BCA、CA
TF:Timed Function、タイムド・ファンクション
抽象レベルの順番は高い順に、UTF、TF、BCA、CA
TLM
TLM:Transaction Level Modeling、トランザクション・レベル・モデリング
モデルの動作をトランザクション(1つの処理)を基準に設計する手法のこと。
SystemC記述のモデルを全般にTLMという用語を使うことが多い。(間違った使い方をしたりするが)
sc_fifo等のメソッド呼び出し仕様はTLMといえる。
抽象度については、まだ統一性がみられないため混乱しやすい。
モデルの動作をトランザクション(1つの処理)を基準に設計する手法のこと。
SystemC記述のモデルを全般にTLMという用語を使うことが多い。(間違った使い方をしたりするが)
sc_fifo等のメソッド呼び出し仕様はTLMといえる。
抽象度については、まだ統一性がみられないため混乱しやすい。
UTFモデル
抽象度レベルの1つ。
UTF:Untimed Function、アンタイムド・ファンクション
抽象レベルの順番は高い順に、UTF、TF、BCA、CA
UTF:Untimed Function、アンタイムド・ファンクション
抽象レベルの順番は高い順に、UTF、TF、BCA、CA
高位合成
RTLよりも高い抽象レベルモデルから、ハードウェア記述に変換すること。
- Cコード→RTL
- SystemC(TLM)→RTL
- SystemC(BCA)→RTL
ASICをターゲットとする場合、除算とか含まれているときは一気にゲートレベルまで落とすものもある。
いくつかの高位合成ツールがでている。
有名どころは、
いくつかの高位合成ツールがでている。
有名どころは、
- Forte:Cynthesizer
- MentorGraphics:Catapult
- NEC:CyberWorkBench(CWB)
高位設計
ハードウェア設計に入るまでの上位工程をさす。
RTL設計よりも上位工程としては、システム設計、モデリング検討、モデル設計、モデル記述等がある。
SystemCではモデル設計、モデル記述を検討することができる。
RTL設計よりも上位工程としては、システム設計、モデリング検討、モデル設計、モデル記述等がある。
SystemCではモデル設計、モデル記述を検討することができる。
サイクルベース
クロックサイクル単位で処理を行う方式。
システムレベル設計
高位合成技術、協調設計技術を総合して呼ぶ。
ハードウェアとソフトウェアとを区別なく、ソフトウェアの記述と同等の抽象度でデジタルシステム全体を記述すること。
ハードウェアとソフトウェアとを区別なく、ソフトウェアの記述と同等の抽象度でデジタルシステム全体を記述すること。
動作合成
高位合成と同じ意味。
トランザクション(transaction)
処理の単位、集まり。
具体的な例をあげると、イニシエータとターゲット間でバスを介してデータ受け渡しをするとき、インターフェースの関数コールにて1つの構造体(のポインタ)を受け渡して処理動作をさせる。この関数コールによる構造体の受け渡しをさす。
具体的な例をあげると、イニシエータとターゲット間でバスを介してデータ受け渡しをするとき、インターフェースの関数コールにて1つの構造体(のポインタ)を受け渡して処理動作をさせる。この関数コールによる構造体の受け渡しをさす。