FPGAに再入門しようと思いたちFPGAプログラミング大全Xilinx編第2版を頭からやっていく5日目
時期的にも良いので一人Advent Calendarで25日続ける
実際にはFPGAプログラミング大全Xilinx編第2版はCPU付きFPGAの使い方メインなので明日以降どうするか要検討
25日終了時の目標
4004等の実CPUの実装
目次
# | タイトル |
---|---|
01 | ツール導入 |
02 | 実機テスト下準備 |
03 | 実機テスト |
04 | クロック利用 |
05 | シミュレーション検証 |
06 | 未定 |
環境
【実装ボード】 Digilent Artix-7 35T Arty FPGA 評価キット
【OS】 Windows10
【IDE】 Vivado 2022.2
今日のゴール
シミュレーション検証機能を試す
Vavidoのシミュレーションを利用
単純回路だと波形表示でいけるがちゃんとしたCPUクラスでは現実的ではないため実機動作の前にシミュレーションを利用する
シミュレーションにテストデータを入力して出力を観測するのを「テストベンチ」と呼ぶらしい
テストベンチの作成
昨日作ったLチカ回路のテストベンチを作ってみる
-
テストベンチのソースファイルの追加
画面左のAdd Sourcesから
Add or create simulation sourcesを選択
Create Fileから適当な名前で作る
-
テストファイルを書く
とりあえずクロックを発生させて上がったり下がったりしているだけ
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 2022/12/05 22:16:14
// Design Name:
// Module Name: test1
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module test1;
localparam STEP = 8;
reg CLK;
wire [3:0] led;
LED_Test LED_Test(
.CLK100MHZ (CLK),
.led (led)
);
always begin
CLK = 0; #(STEP/2);
CLK = 1; #(STEP/2);
end
initial begin
end
endmodule
3. 実際に動かす
画面左側のRun Simuration ->Run Behavioral Simurationから実行する
本によるとこのシミュレーションは一番検証精度は低いがスピードが早いやつらしい
結果
とりあえずクロックが発生してそう
ただ入力先の信号の出力が正しくなさそうなのでそこは要調査
ただ単にクロック数が足りてないだけな気もしている
今日はここまで