• 検索結果がありません。

オリジナルDSPの開発環境構築の事例研究

N/A
N/A
Protected

Academic year: 2021

シェア "オリジナルDSPの開発環境構築の事例研究"

Copied!
2
0
0

読み込み中.... (全文を見る)

全文

(1)

オリジナル

DSP の開発環境構築の事例研究

後閑 博 山口 啓太

三菱電機(株)

1

はじめに

現在さまざまな C 言語ベースでのH/W 設計が取り組み はじめられている。今回、敢えてその中で高位合成とい うものを意識せず H/W 設計者がその経験と知識をフルに 生かせる C 言語ベースでのH/W, S/W 設計への取り組みと いうものを考えてみたい。 本稿では現在スタンダードとなっているシステム C 言 語開発環境の問題点を挙げ、よりポータブルで使いやす いオリジナルの C 言語環境を提案しその狙いと、それに よりアプリケーション指向型の DSP コアの開発と実際の 産業用コントローラへの適用を述べる。

2

C 言語ベース設計

2.1 既存の C 言語ベース設計の問題点 現在スタンダードとして使用されているシステム設計 用 C 言語として SystemC と Spec-C などがある。これらに は特徴的な大きな違いがあり同一視すべきではないが、 両方共通に見出される問題点を考察する。 (1) 信号処理データフローと実際のプロセッサを介し た処理のデータの流れはまったく異なるものであり、 信号処理データフローをあらわすシステム記述は実 際の”システム”ではない。現実の処理は信号処理の数 式どおりに演算器を配置するわけにいかず、複数の 演算器とそれへデータの入出力を行うスケジューラ からなるプロセッサとプロセッサとメモリ、または 複数のプロセッサ間でデータの入出力を行う DMAC や 通信IO などからなるハードウェアとその上のソフト ウェアから成る。それらはシステム記述というもの とはまったく異なるものである。 (2) 現時点では、高位合成能力が十分ではないため、そ れを無理に使おうとするのはあまり得策ではない。 (3) C ベースのシステムレベルやハードウェアレベルの 各々のレベルの記述は理解し記述することができて も、システム全体を動かそうとする場合、様々なレ ベルのオブジェクト指向的記述と関数の引数(=概念 的ワイヤ記述)とハードウェアの引数(=物理的ワイ ヤ記述)の塊の中で自縄自縛に陥る。 2.2 オリジナル C 言語ベースへの要求仕様 今回の LSI とそのソフト開発のためのオリジナルの C 言語の開発のポイントを述べる。 単純に(a)ハードウェアと等価な C 記述があり、それが PC でも EWS にでもあるような(b)デバッガでデバッグす ることでハードウェア設計ができ、かつ、汎用的な信号 処理シミュレータの専用コンパイラでもコンパイルでき て、(c)容易にリンクしてソフト込みで(d)高速にシミュ レーションできるようなポータブルで使いまわしの良い C 言語記述が必要であった。 従来の C 言語ではアルゴリズム/ビヘイビアレベルの 記述では上記は可能であるが、どうしてもクロックの概 念を導入して、ソフトとハードでのシミュレーションを 考えるとき、クロックを動かしながらの汎用的な信号処 理シミュレータとのリンクは不可能ではないが、容易に 実現しづらい。また、単に C 言語で書けるといってもシ ステム屋にとってはハード設計専用の特別仕様の C 言語 環境には魅力なく、ハード設計者側の視点にしか立って いない。 図 1 に述べる H/W 設計環境において他の言語が点線の Design Methodology and Implementation of the original DSP

Hiroshi GOKAN, Keita YAMAGUCHI Mitsubishi Electric Corporation

8-1-1, Tsukaguchi-honmachi, Amagasaki, Hyogo 661-8661, Japan

制御/信号処理 開発環境 制御シミュレータ アルゴリズムレベルでの シミュレーション C ベースオリジナル言語 (Poc-C)による記述 H/W 開発環境 H/W 記述言語 / 開発環境 従来の C レベルでは回路要素が入る と回路側でしかシミュレーション できない アルゴリズム+回路 レベルでの シミュレーション レジスタトランスファ レベル ゲートレベル 図 1. 新しく提案する開発フローとPoc-C 言語の関係 Poc-C 言語:今回開発した C 記述(Portable Clocked C Language)

LSI へ 高位合成など Poc-C による提案する開発フロー 既存 C 言語ベース設計が目指す開発フロー

1−37

4G-1

情報処理学会第65回全国大会

(2)

矢印に沿ったフローであるのに対し、ここでは黒矢印の 回路もソフトも含めて信号処理の開発環境で評価するこ とを経由することで設計の効率化を狙うものである。 2.3 オリジナル C 言語(Poc-C)の記述と方法論 今回提案するオリジナルのC 言語は基本的に HDL のレ ジスタトランスファレベルに相当し、ルールに沿った回 路モジュールとワイヤ接続を記述する。それと短いクロ ックコントロール部分とどこにでもある C コンパイラで コンパイル、リンクを行う。今回は RedHat Linux 7.0.1 上の GNU-C/gdb にて回路とソフト込みで基本動作の開発 とデバッグを行った。 汎用的な信号処理シミュレータとしてMathWorks 社の Matlab™を使用し、その C 言語リンクとして同ツール上 の”cmex”コマンドによって Poc-C 言語記述部ごと全体を コンパイルして”S-function”で”Simulink”とインタフェ ースを取って”discrete 時間”でシミュレーションを実行 させた。

3

オリジナル C 言語での DSP 設計適用

3.1 開発した LSI とコンパイラ モータ制御用プロセッサで演算は一次のIIR 型フィル タ演算を多く使用し、一つの演算結果が次の演算や先の 演算に用いる依存性が高い演算が特徴となる。汎用の高 速 DSP だと局所的な演算は非常に速いが実際のプログラ ムとなるとメモリへの格納と読み出しを多くランダム的 に使うことになり単純に期待通りには速度が上がらない。 短時間でランダムにアクセス可能なメモリを複数用意 し、逆にレジスタ群を最小構成としてハードをコンパク トにすることや他との通信バッファ回路を高速のカスタ ム仕様とすることで、ハンドシェイクなどのソフト処理 を簡素化した。消費電力の低減、レイアウト配線の収束 性よくメモリアクセス速度が必要以上に長くなることを 防ぐために、基本アーキテクチャのレジスタ構成とレジ スタ間の配線はシンプルかつ単純化し、ゲート規模は小 さく納め、動作周波数も下げることが求められた。加え 処理上のハードウェアのフラグメントの処理省いて、専 用のコンパイラ側で吸収しハードは不必要に処理を多く せず出来る限り規模を抑制した。 3.2 開発した LSI LSI の設計においては C による直接デバッグが主体で HDL のシミュレータは動作確認や記述の一致性の確認で しか使用していない。HDL に落とした後一致をチェックし て直接 FPGA に焼いて実機の動作確認を行った(図3)。 産業用コントローラとしての製品化をめざし ASIC 化した。 演算速度に関しても初期的要求の 3 相誘導モータ制御 のためのベクトル制御演算として、モータの電圧/電流入 力から PWM に出力するまでの一周期を 20μsec 未満で実 行し、割込み処理で AD 入力や速度チェックなど別の処理 を合わせて3 つのタスクを同時に並行して動かしている。

4

まとめ

今回”高位合成”というものから離れて C 言語ベース設 計を捉え、H/W 設計者が持つ能力を生かす形で H/W, S/W の同時設計をシステム設計の環境側での実現を行った。 今後は SystemC や高位合成との協調などを検討したい。

参考文献

[1] SystemC v2.0.1 User’s Guide, Open SystemC Initiative

http://www.systemc.org/

[2] Using Simulink ver3 & Writing S-Functions ver3,

Matlab/Simulink Manuals, MathWorks, Inc.

[3] Virtex-E 1.8V Field Programmable Gate Arrays Data Sheet: DS022-1 (v2.2) November 9, 2001, XILINX

信号処理シミュレータ用 IF 記 述

レジスタトランスファレベルに相当 する回路のC 記述部 Clock & event control

図 2. Poc -C 記述の階層構成 Poc-C 記述 通常のファイル IO, 端末 IO 単体のコマンドとして、または簡単な GUI ツールやデバッガとのリンク モジュールごとの 動作記述部 ワイヤ接続記述部 モジュール間 クロックとIO の IF 部 汎用的な信号処理シミュレータとの リンクなど 制御 /信号処理シミュレータ

Ex.) S-Function, cmex コンパイラなど

Ex.) GCC, gdb でのデバッグ環境など

図 3. 開発した LSI と試作ボード 開発した LSI

総命令数 42 種 ゲート規模 55KG 動作周波数 50MHz 32bit での加減算、16bit x 16bit 乗算器、limit など特殊命令あり 演算速度…三相誘導モータ制御(ベクトル制御演算) 20usec 未満で実行 試作ボード(部分拡大写真) FPGA1 プロセッサ部と高速通信バッファ FPGA2 周辺ロジック PWM, UART など

1−38

図 2. Poc -C 記述の階層構成 Poc-C 記述  通常のファイル IO,  端末 IO  単体のコマンドとして、または簡単な GUIツールやデバッガとのリンク モジュールごとの動作記述部 モジュール間ワイヤ接続記述部クロックとIO の IF 部 汎用的な信号処理シミュレータとのリンクなど制御/信号処理シミュレータ Ex.) S-Function, cmex コンパイラなど Ex.) GCC, gdb でのデバッグ環境など  図 3.  開発した LSI と試作ボード 開発した LSI  総命令数 

参照

関連したドキュメント

ところで,このテクストには,「真理を作品のうちへもたらすこと(daslnsaWakPBrinWl

暑熱環境を的確に評価することは、発熱のある屋内の作業環境はいう

などに名を残す数学者であるが、「ガロア理論 (Galois theory)」の教科書を

それゆえ、この条件下では光学的性質はもっぱら媒質の誘電率で決まる。ここではこのよ

と言っても、事例ごとに意味がかなり異なるのは、子どもの性格が異なることと同じである。その

自閉症の人達は、「~かもしれ ない 」という予測を立てて行動 することが難しく、これから起 こる事も予測出来ず 不安で混乱

最愛の隣人・中国と、相互理解を深める友愛のこころ

○事業者 今回のアセスの図書の中で、現況並みに風環境を抑えるということを目標に、ま ずは、 この 80 番の青山の、国道 246 号沿いの風環境を