プロセッサなどのHandel-C記述から FPGAネットリスト を合成 - CQ出版社

C 言語入力合成ツール活用チュートリアル
第2章
EDA ツール
プロセッサなどのHandel- C 記述から
FPGAネットリストを合成
――論理合成ツール「DK1」
Colin Mason
C 言語をベースとしたクロック・サイクル精度の機能
は非常にシンプルなタイミング・モデルを採用していま
記述からFPGA 用のネットリストを生成する論理合
す.一つのアサインメントは1 クロック・サイクルに対応
成ツールの活用チュートリアルをお届けする.使用す
します.
るツールは,英国Celoxica 社の「DK1
(期間限定版)
」
,
一般に,新規設計では新しいコンセプトの正当性を確
入力言語はHandel-C.Handel-C はハードウェアの
認するため,プロトタイプを作成します.このとき,C 言
並列動作やモジュール間のコミュニケーションなどを
語で記述したアルゴリズム記述をプロトタイプとすること
記述できるように,C 言語を拡張した記述言語であ
がよくあります.これをVHDL やVerilog HDLにマニュ
る.サンプル・デザインとしては,パイプライン乗算
アルあるいは半自動で変換する過程でエラーが混入する場
器,キュー,クライアント・サーバのチャネル・コミ
合があります.一方,Handel-C はC 言語にもとづいた記
ュニケーション・モデル,マイクロプロセッサなど5
述言語であるため,アルゴリズム記述からの変換作業が
種類を用意した.いずれのプログラムも本誌付属の
容易になり,上述のようなリスクを軽減できます.DK1
CD-ROM に収録されている.
は,Handel -C 記述からFPGA 用のEDIF ネットリスト
(編集部)
をダイレクトに生成します.そのため,C 言語からVHDL
筆者ら(英国 Celoxica 社)は,Handel-C と呼ぶC 言
語ベースの記述言語を入力とするFPGA 用論理合成ツー
やVerilog HDL を介してネットリストを生成する場合と
比べて,開発にかかる手間も小さくなります(図 1)
.
ル「DK1」を開発し,出荷しています.DK1 は,システ
DK1 には,論理合成ツールのほか,エディタやデバッ
ム・アーキテクトやソフトウェア技術者のようにハードウ
ガ,シミュレータの機 能 が含 まれています(図 2 ).
ェア記述言語(HDL)の知識のない技術者であってもハー
FPGA 向けのEDIF ネットリストのほか,既存のEDA
ドウェアを設計できるということをめざして開発されまし
ツール向けにRTL のVHDL 記述も出力できます.コシ
た.本チュートリアルではHandel-C とDK1 を利用して,
ミュレーション機能を利用すると,命令セット・シミュ
いくつかのサンプル・デザインからFPGA 用ネットリス
レータ,VHDL シミュレータ(ModelSim など),C テス
トを生成する方法を紹介します.
トベンチなどと組み合わせて検証できます.
それでは,いくつかのサンプル・デザインを利用して,
●並行動作や通信の記述をサポートする拡張C 言語
Handel-C は,ハードウェアのアルゴリズム設計や機
Handel-C による論理合成やシミュレーションを体験して
みましょう.
能設計,ハードウェア・ソフトウェア・コデザインに利
用されています.C 言語をベースとしており,ハードウ
ェアの動作を表現するための拡張が施されています.す
なわち,データ幅,並行動作,モジュール間のコミュニケ
ーションといった概念を備えています.また,Handel-C
128 Design Wave Magazine 2001 May
●システム構成
最小のシステム構成を以下に示します.
>Windows 98/Me/2000/NT 4.0 が動作するパソコン
(Pentium II プロセッサ,233MHz 以上)
C 言語入力合成ツール活用チュートリアル
機能記述
(Handel-C)
VHDLのRTL記述
VHDL
組み込み
ソフトウェア
DK1
コシミュレーション
Handel-C
シミュレータ
HDL
シミュレータ
コシミュレーション
EDIF
VHDLのビヘイビア・モデル
EDIF
外部IPコア
命令セット・
シミュレータ
コンパイラ
EDIF
FPGA
ベンダ製ツール
論理合成
ハードウェア・
システム
入力
〔図 1〕DK1 の設計フロー
Handel-C で記述した設計データ
(実行可能な機能仕様記述)を論理合成ツール
「DK1」に入力する.Handel-C シミュレータが用
意されている.Handel-C シミュレータは,HDL シミュレータや命令セット・シミュレータとコシミュレーションを行える.DK1
はFPGA 用のEDIF ネットリストを出力する.また,VHDL のRTL 記述も生成できる.
ソース・
ウィンドウ
ワーク・スペース・
ウィンドウ
スレッド表示
ウィンドウ
変数表示
ウィンドウ
クロック・
ウィンドウ
〔図 2〕DK1 の画面
プロジェクト管理とデバッガの画面は,ソフトウェア技術者にとって慣れ親しんだGUI になっている.
Design Wave Magazine 2001 May 129