Takagi Lab.

はじめに

次の順でテスト容易化乗算器の自動生成の手順を記述する。

部分積生成器と4-2加算木の自動合成

Verilog記述を生成するジェネレータプログラムと、テストパターンを生成するパターン生成プログラム がある。

回路記述の生成

ジェネレータプログラム、テストパターン生成プログラムは共にC言語で記述されており、 gcc等のCコンパイラでコンパイルできる。 Gen42TreeModifiedPPG.c, Makefile, patgen_newppg.c を用意し、以下の手順でコンパイルする。

$ make
gcc -c -g -Wall Gen42TreeModifiedPPG.c -o Gen42TreeModifiedPPG.o
Gen42TreeModifiedPPG.c: In function `main':
Gen42TreeModifiedPPG.c:598: warning: array subscript has type `char'
gcc -g -Wall Gen42TreeModifiedPPG.o -o Gen42TreeModifiedPPG

$ gcc patgen_newppg.c -o patgen_newppg

Gen42TreeModifiedPPG, patgen_newppg ができる。まず、Gen42TreeModifiedPPG を使って verilog ファイルを作る。 32ビットのテスト容易化したものを生成する場合は次のようにする。

./Gen42TreeModifiedPPG -m 32

生成したコードは標準出力に出力される。引数として与えるビット幅は2の冪にする。 オプションとして次のものが指定できる。

パターンの生成

下記の文献で示している部分積生成部と4-2加算器のための10個のテストパターンを生成する。

引数にビット幅を指定して patgen_newppg 実行する。

$ ./patgen_newppg (ビット幅)

とすると、10個のテストパターンを出力する。

回路の合成

合成時は、テスト用の回路がフォールスパスになることを合成系に設定して合成する。 Synopsys Design Compiler 合成用のサンプルスクリプト synthv.sh を用いる場合、次のように用いる。

$ ./synthv.sh 42Tree.modify.128 5

一つ目の引数が、verilogファイル、2つ目の引数が制約として与える遅延時間。

ファイル

加算器の自動合成

回路記述の生成

つぎのようにVerilogファイルをつくる。pythonが必要。

$ python sklansky_gen_verilog.py (ビット幅)

ビット幅として2の冪を指定する。出力は標準出力に出力される。

ファイル