前回までは、verilogでFPGAをいろいろ操作していましたが、
今日は、検証のおはなしです。
検証ツールModelSimの使い方です
■ModelSimに行く前に・・・
◎(今日の話と関係ないけど)
ピンのインポート
・Assignment→ImportAssignment
エクスポートしたCSVファイルを指定
読み込んだら、確認のため
Assignment→PinPlanner
・バスになっているものは、
PinPlannerの左上のGroupでいっぺんに
電圧とか、指定できる
◎階層設計(テストベンチは、これを使う)
下位モジュール=部品
部品をつなげていくかんじ
インスタンシエーション
【書式】
IC uIC1(
.IN1(A),.OUT1(C)
);
【説明】
IC 下位モジュール(部品)
uIC1 インスタンス名
.IN1 .信号→下位モジュール
(A) 上位モジュール
※1対1に対応するなら
IC uIC1(
A,C
);
と、下位モジュールが省略できる
・トップモジュールはプロジェクト名になる
■Model Simでシミュレーション
◎テストベンチモジュールを作る
論理合成+テストベンチ独特
入力信号と出力信号をテストベンチと接続
【書式】
`timescale 1ps/1ps
module ABC_tb;
// Inputs
reg A;
reg B;
reg CLK50;
// Outputs
wire C;
// Instantiate the Unit Under Test (UUT)
ABC uut (
.A(A),
.B(B),
.C(C)
);
initial begin
$monitor("#%t:A=%b,B=%b,C=%b",$time,A,B,C);
$timeformat(-12,0 ,"ps",3);
CLK50 = 0;
end
always #10 begin //generated basic clock
CLK50
今日は、検証のおはなしです。
検証ツールModelSimの使い方です
■ModelSimに行く前に・・・
◎(今日の話と関係ないけど)
ピンのインポート
・Assignment→ImportAssignment
エクスポートしたCSVファイルを指定
読み込んだら、確認のため
Assignment→PinPlanner
・バスになっているものは、
PinPlannerの左上のGroupでいっぺんに
電圧とか、指定できる
◎階層設計(テストベンチは、これを使う)
下位モジュール=部品
部品をつなげていくかんじ
インスタンシエーション
【書式】
IC uIC1(
.IN1(A),.OUT1(C)
);
【説明】
IC 下位モジュール(部品)
uIC1 インスタンス名
.IN1 .信号→下位モジュール
(A) 上位モジュール
※1対1に対応するなら
IC uIC1(
A,C
);
と、下位モジュールが省略できる
・トップモジュールはプロジェクト名になる
■Model Simでシミュレーション
◎テストベンチモジュールを作る
論理合成+テストベンチ独特
入力信号と出力信号をテストベンチと接続
【書式】
`timescale 1ps/1ps
module ABC_tb;
// Inputs
reg A;
reg B;
reg CLK50;
// Outputs
wire C;
// Instantiate the Unit Under Test (UUT)
ABC uut (
.A(A),
.B(B),
.C(C)
);
initial begin
$monitor("#%t:A=%b,B=%b,C=%b",$time,A,B,C);
$timeformat(-12,0 ,"ps",3);
CLK50 = 0;
end
always #10 begin //generated basic clock
CLK50