春のプロジェクト2012/第1回
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[春のプロジェクト2012]]
*第1回 2007年4月号 全加算器をHDLで設計してみよう [#x8749e93]
**概要 [#l91c0f76]
-この連載では、Xilinx社の「Spartan-3Eスタータ・キット」を利用しているが、今回のプロジェクトでは、Altera社のDE2ボードを利用する。
-FPGA設計の流れ
>
+デザイン入力
+RTLシミュレーション
+論理合成
+配置配線
**Keyword [#u730c3cb]
-Verilog HDL、FPGA、HLD、全加算器、モジュール、ポート、シミュレーション、テストベンチ
**回路記述について [#c51d4164]
***1.全加算器を設計してみる [#le25abab]
-全加算器とは。
-入出力の確認
***2.設計ツールを使用してVerilog HDLを記述する [#y1d510a7]
-記述の説明
--モジュール宣言
--ポート宣言
--ネット宣言
--モジュールの終わり
-Verilogの演算子は?
**3. テストベンチの作成 [#m8415019]
-テストベンチとは?
--入力信号について時系列順に記述したもの
--シミュレーションをするときに必要
-記述方法は?
--テストベンチもモジュールとして作成
--確認したいモジュールをインスタンス宣言する
--initial文の中で、入力信号を定義していく
--出力方法を定義する
---monitor(信号が変わったら出力)
---display(その時間の値を出力)
---dumpfile(波形を出力)
--今回使うテストベンチの一部
未完成状態です。
`timescale 1ns / 1ps
// include needed module
`include "fa.v"
module fa_tb;
reg a, b, cin;
wire s, cout;
fa fa0(.a(a), .b(b), .cin(cin), .s(s), .cout(cout));
initial begin
// output waveform
$dumpfile("fa_tb_wf.vcd"); // file name
$dumpvars(0, fa_tb); // starting time, test module name
// decide the input signals
a = 0; b = 0; cin = 0;
#100 a = 1; b = 0; cin = 0;
// write other input signals
$finish;
end
endmodule
--[[詳細>Verilog-HDL基礎#q9235777]]
**4. シミュレーションをして動作確認 [#oab0d409]
-シミュレーション方法
--ある時間におけるワイヤーやレジスタの値を出力する
-波形を出力する
--テストベンチにdumpfile文を書く
-ツールは?使い方は?
--NC-Verilog
---環境設定が必要
% ncverilog +ncaccess+rwc fa_tb.v
--SimVision
---環境設定が必要
% simvision &
---ncverilogで出力されたダンプファイル(fa_tb_wf.vcd)を開く
***参照ページ [#ae474462]
-[[シミュレーションの環境構築>論理回路設計環境の設定]]
-[[テストベンチの書き方>Verilog-HDL基礎]]
----
#comment
終了行:
[[春のプロジェクト2012]]
*第1回 2007年4月号 全加算器をHDLで設計してみよう [#x8749e93]
**概要 [#l91c0f76]
-この連載では、Xilinx社の「Spartan-3Eスタータ・キット」を利用しているが、今回のプロジェクトでは、Altera社のDE2ボードを利用する。
-FPGA設計の流れ
>
+デザイン入力
+RTLシミュレーション
+論理合成
+配置配線
**Keyword [#u730c3cb]
-Verilog HDL、FPGA、HLD、全加算器、モジュール、ポート、シミュレーション、テストベンチ
**回路記述について [#c51d4164]
***1.全加算器を設計してみる [#le25abab]
-全加算器とは。
-入出力の確認
***2.設計ツールを使用してVerilog HDLを記述する [#y1d510a7]
-記述の説明
--モジュール宣言
--ポート宣言
--ネット宣言
--モジュールの終わり
-Verilogの演算子は?
**3. テストベンチの作成 [#m8415019]
-テストベンチとは?
--入力信号について時系列順に記述したもの
--シミュレーションをするときに必要
-記述方法は?
--テストベンチもモジュールとして作成
--確認したいモジュールをインスタンス宣言する
--initial文の中で、入力信号を定義していく
--出力方法を定義する
---monitor(信号が変わったら出力)
---display(その時間の値を出力)
---dumpfile(波形を出力)
--今回使うテストベンチの一部
未完成状態です。
`timescale 1ns / 1ps
// include needed module
`include "fa.v"
module fa_tb;
reg a, b, cin;
wire s, cout;
fa fa0(.a(a), .b(b), .cin(cin), .s(s), .cout(cout));
initial begin
// output waveform
$dumpfile("fa_tb_wf.vcd"); // file name
$dumpvars(0, fa_tb); // starting time, test module name
// decide the input signals
a = 0; b = 0; cin = 0;
#100 a = 1; b = 0; cin = 0;
// write other input signals
$finish;
end
endmodule
--[[詳細>Verilog-HDL基礎#q9235777]]
**4. シミュレーションをして動作確認 [#oab0d409]
-シミュレーション方法
--ある時間におけるワイヤーやレジスタの値を出力する
-波形を出力する
--テストベンチにdumpfile文を書く
-ツールは?使い方は?
--NC-Verilog
---環境設定が必要
% ncverilog +ncaccess+rwc fa_tb.v
--SimVision
---環境設定が必要
% simvision &
---ncverilogで出力されたダンプファイル(fa_tb_wf.vcd)を開く
***参照ページ [#ae474462]
-[[シミュレーションの環境構築>論理回路設計環境の設定]]
-[[テストベンチの書き方>Verilog-HDL基礎]]
----
#comment
ページ名: