210 likes | 415 Views
SpecCを用いた回路設計 の評価に関する研究. 情報科学部情報処理学科 800-167 吉本 公彦. 1.背景. 仕様そのものの不備 仕様の 取り扱い 不備 設計不備. ・従来の設計手法. プログラム( C言語 ). クレーム. 試作(統合). 外部仕様書(文章、図表). 内部仕様書( 文章、図表 ). 分業. 認定レビュー. 製造. 市場へ. 回路設計( VHDL ). プログラム( C ). 組込み ソフトウェア. 仕様書( 文章、図表 ). 回路設計( VHDL ). 電子回路設計. ・問題点.
E N D
SpecCを用いた回路設計の評価に関する研究SpecCを用いた回路設計の評価に関する研究 情報科学部情報処理学科 800-167 吉本 公彦
1.背景 仕様そのものの不備 仕様の取り扱い不備 設計不備 ・従来の設計手法 プログラム(C言語) クレーム 試作(統合) 外部仕様書(文章、図表) 内部仕様書(文章、図表) 分業 認定レビュー 製造 市場へ 回路設計(VHDL)
プログラム(C) 組込み ソフトウェア 仕様書(文章、図表) 回路設計(VHDL) 電子回路設計
・問題点 →コストや時間が大幅に掛かってしまう →ハードウェア技術者の不足 →ハードウェアとソフトウェアの設計者の壁
・新しいシステム設計手法 ソフトウェア・モデル (システムレベル言語) 設計不備 クレーム 試作(統合) 仕様・モデル (システムレベル言語) 仕様書(文章、図表) 認定レビュー 製造 市場へ 同時 ハードウェア・モデル (システムレベル言語)
ソフトウェア・モデル (システムレベル言語) 接続して協調検証が可能になる 組込み ソフトウェア 仕様・モデル (システムレベル言語) ハードウェア・モデル (システムレベル言語) 電子回路設計
2.有名なシステムレベル言語 • SpecC →カリフォルニア大学のGajski教授が提唱 →C言語を拡張 →STOCが 普及推進を行っている • SystemC →Synopsys社、CoWare社などが共同開発 →C++言語を拡張 →OSCIが普及活動を行っている
3.SpecCとは • 概要 ハードウェア記述を 可能にするための構文 (配列の代入、変数の初期化、ブーリアン型、ロングロング型、 ビットベクター型、ロングダブル型、同期、シグナル型、ビヘイビア・・・・etc) ANSI-Cの 文法すべて
・特徴 →実行可能 記述したソースをそのままコンパイルして、実行することができ、シミュレーションできること。 →モジュラリティ システムの動作を記述するときは、機能と接続を完全に分けて記述する必要があること。 →完全性 behavior(動作)、階層構造、並列性、同期、通信、状態の遷移、例外処理、タイミングの記述をすべて扱えること。
3.1 仕様モデル 動作 変数 B1 同期 並列処理 V1 V2 B3 B2 E2
behavior B2B3(in int v1) { int v2; event e2; B2 b2(v1,v2,e2); B3 b3(v1,v2,e2); void main(void){ par{ b2.main(); b3.main(); } }; behavior Design() { ・・・・
ANSI-C #include<stdio.h> void main(void) { printf(“HelloWorld\n”); } SpecC #include<stdio.h> behavior Main { void main(void) { printf(“HelloWorld\n”); } }; 3.2 ソフトウェア・モデル
VHDL Library IEEE; use IEEE.std_Logic_1164.all; entity AND_2 is port(A,B : in std_Logic; C : out std_Logic); end AND_2; architecture AND_2 of AND_2 is begin C <= A and B; end AND_2; SpecC #include<stdio.h> #include<stdlib.h> behavior AND_2( in bit[1] a,in bit[1]b,out bit[1] c) { void main(void) { c = a & b; } }; 3.3 ハードウェア・モデル
4.検証実験 4.1 評価項目 ・設計時間 ・記述量 ・使い易さ
4. 2 試作回路 ・AND回路 ・セレクタ回路 ・比較回路 ・10進デコーダ ・10進エンコーダ ・パリティジェネレータ ・フリップフロップ回路 ・4ビットレジスタ ・シフトレジスタ ・アップカウンタ ・全加算器 ・16ビット加算器 など20種類
% emacs ファイル名.sc SpecC ソースファイル % scrc ファイル名 SpecC 実行ファイル % ./ファイル名 確認 4.3 実験方法(SpecC)
実験方法(VHDL) 回路のソース テストベンチ のソース ボタンひとつで コンパイルとシミュレーション 確認
5.評価 上記の20個の動作確認を行った。 ・設計時間 →VHDLのほうが短い ・記述量 →全体ではSpecCのほうが少なくなる ・使い易さ →ツールはVHDL、言語としてはSpecC
SpecC 6.結果 ・記述量平均 回路部 = 18.52 step テストベンチ部 = 29.78 step • VHDL ・記述量平均 回路部 = 21.26 step テストベンチ部 = 31.47 step
7.今後の課題 • 規模の大きい回路の設計 • 自動合成ツールを用いて、SpecCからVHDLや回路図への変更 • PLDに焼いてみて動作確認