====== UX8L Design Compilerによる32bit加算器の論理合成手順 ======
===== 準備 =====
/home/vdec/lib/ux8l/DesignFlow/sample_script/design_compiler
から,サンプルスクリプトをコピーする.
今回は,
/home/hlab/masayuki/wasmii3/ux8l/design_compiler/
にコピーをする.
attachedfileディレクトリをコピーして,ADDER32ディレクトリを作成する.
/home/hlab/masayuki/wasmii3/ux8l/design_compiler/ADDER32/verilog_rtl
に,新しいデザインファイルを置く.
今回は,ADDER32.vというデザインを作成した.
module ADDER32( CLK_IN, RESET_N,
X_IN, Y_IN,
Z_OUT );
input CLK_IN;
input RESET_N;
input [31: 0] X_IN, Y_IN;
output [31: 0] Z_OUT;
reg [31: 0] Z_OUT;
always @ ( posedge CLK_IN or negedge RESET_N ) begin
if( RESET_N == 1'b0 ) begin
Z_OUT <= 32'h0;
end else begin
Z_OUT <= X_IN + Y_IN;
end
end
endmodule // ADDER32
===== tclの修正 =====
修正したtclを以下に置く.
* ADDER32_ux8l.tcl[[http://www.am.ics.keio.ac.jp/~masayuki/ux8l/ADDER32_ux8l.tcl]]
* ADDER32_verilog_list[[http://www.am.ics.keio.ac.jp/~masayuki/ux8l/ADDER32_verilog_list]]
* ADDER32_const.tcl[[http://www.am.ics.keio.ac.jp/~masayuki/ux8l/ADDER32_const.tcl]]
* dc_ux8l.setup[[http://www.am.ics.keio.ac.jp/~masayuki/ux8l/dc_ux8l.setup]]
==== 編集の概要 ====
* ライブラリの場所の変更.ふんが研内でのライブラリの場所は,
/home/vdec/lib/ux8l
となる.
* いくつかのライブラリの追加,削除
これは dc_ux8l.setupにいくつかの変更を行っている.UX8L_w1_1.1V_MAX_primitive_lvt.dbの追加を行い,メモリまわり,PLL回りの不要そうなライブラリを削除.
* クロック制約の変更
ADDER32_const.tclにおいて,クロック制約の部分がなんだかよくわからなかったので,社長さん方式を導入.以下のようにクロック制約を書き換え.
create_clock -name "CLK" -period 5.0 -waveform {0 2.500} [find port {CLK_IN}]
* IOセルの制約の削除(ADDER32_const.tclの下の部分を全てコメントアウト)
これについては,IOセルについてまだよくわかってないから.また後で調べる.
===== 論理合成 =====
/home/hlab/masayuki/wasmii3/ux8l/design_compiler/ADDER32上で,
dc_shell-t -f script/ADDER32_ux8l.tcl
を実行.論理合成が行われる.Design_vision上で見た結果は,以下のようになっている.
{{:tapeout_enter:ux8l_dc:ux8l_adder32.jpg|}}
おおむね出来てるのかなぁ?