0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

EBAZ4205 FPGA Xilinx編 第2版 演習2-2

Posted at

EBAZ4205を使ってZYNQとFPGAの勉強をしています。
備忘録を記載します

演習2-2 LED点滅回路にプッシュスイッチを追加

全ての機能がEBAZに無いので、改造や機能の縮小が必要です。

■LED
RJ45の横に赤と緑のLEDがついています。教本にはさらに青色LEDがありますがあきらめます。
image.png
GRN_LEDがW13、RED_LEDがW14に接続されています。

■スイッチ
一見S2,S3といった使えそうなSWが実装されていますがPS部からしか認識できないらしいです。

下記のサイトでも紹介されていますが、FANのPWM用のフォトカプラが不要なのでスイッチをつけます。
https://qiita.com/kan573/items/c4dac8908e1a86d8fce6

2つのフォトカプラを外して、V13とV15に2つのスイッチを接続します。
V13がリセット、V15をスピードチェンジ のスイッチとします。

image.png

制約ファイルの意味

制約ファイルの意味を少し解説します。

# Clock signal
set_property PACKAGE_PIN N18     [get_ports { CLK }]
set_property IOSTANDARD LVCMOS33 [get_ports { CLK }]
create_clock -add -name sys_clk_pin -period 20.000 \
        -waveform {0 10} [get_ports { CLK }]

この行は、CLK ポートに入力されるクロック信号の特性を表しています。
-period 20.000 は、クロックの周期が20.000ナノ秒(ns)という意味です。
これはクロックソースのX5の発信周波数が50MHz(1 / 20ns)だからです。

-waveform {0 10} は、クロックのデューティサイクル(HighレベルとLowレベルの時間比率)を設定しています。
{0 10} は、Highレベルが0nsから10ns、Lowレベルが10nsから20nsであることを意味し、50%のデューティになります。

set_property IOSTANDARD LVCMOS33 [get_ports { CLK }]

このような記述はポートの入出力規格(IOSTANDARD)を意味します。
LVCMOS33 は、3.3VのLVCMOS(Low-Voltage CMOS)規格で使うことを宣言しています。

# RGB LED
set_property -dict { PACKAGE_PIN W14   IOSTANDARD LVCMOS33 } \
        [get_ports { LED_RGB[1] }]; # Red
set_property -dict { PACKAGE_PIN W13   IOSTANDARD LVCMOS33 } \
        [get_ports { LED_RGB[0] }]; # Green

LEDは2つしかないので、制約ファイルも2bitに変更します。本当は名前LED_RGのほうがよかった

HDLファイル変更点

module blinkspeed (
    input               CLK,
    input               RST,
    input       [0:0]   BTN,
    output  reg [1:0]   LED_RGB
);

LEDが2bitしかないので、そこだけ変更しています。

/* LED Decoder */
always @* begin
    case ( cnt3 )
        3'd0:   LED_RGB = ~2'b01;//G
        3'd1:   LED_RGB = ~2'b10;//R
        3'd2:   LED_RGB = ~2'b01;//G
        3'd3:   LED_RGB = ~2'b10;//R
        3'd4:   LED_RGB = ~2'b11;//GR
        3'd5:   LED_RGB = ~2'b00;//off
        default:LED_RGB = ~2'b00;
    endcase
end

あとLEDは0の時にONするので、ビット反転(~)させています。
image.png

今日はここまで

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?