LoginSignup
2
1

More than 5 years have passed since last update.

Python で FPGA/Zybo Z7 で Lチカ

Last updated at Posted at 2018-12-08

もっかい Lチカおさらい

これが「Lチカだ」でLチカをつくりました。main ルーチンはごく簡単でした。

main
    def main(self):
        led_bit:bit = 1
        while is_worker_running():
            self.led(led_bit)
            led_bit= 1 - led_bit
            self._wait()

ぐるぐるまわって led_bit を 0/1 でひっくり返すだけです。

Polyphony でコンパイル

gist に python のソースを置いておきます。

このソースを polyphony でコンパイルします。

コンパイル
$ polyphony blink.py
$ ls *.v
Blink_blink.v  polyphony_out.v  test.v

出来たソースは?

Verilog のソースの冒頭部分はこんな感じ

> head Blink_blink.v
module Blink_blink
  (
    input wire clk,
    input wire rst,
    output reg led = 0
  );

Vivado 2018.1 に入れてみる

XADC でつくったプロジェクトに無理やり入れてみます。

Create Block Design

まずはお絵かき回路図で作業をしたいので、左の選択肢から IP INTEGRATOR -> Create Block Design を選択します。空のデザインができます。

image.png

Blink_blink.v を Vivado のデザインに追加

Design Sources を右クリックして Add Sources... を選択し Blink_blink.v を追加します。

image.png

image.png

image.png

Blink_blink.v をトップモジュールに

Blink_blink.v を選択して右クリックから Set as TOP を選択します。

image.png

Zybo-Z7.xdc を Disable します。
image.png

あらたに blink.xdc をつくります。
image.png

blink.xdc の中身

Verilog のトップモジュールの各ピンをどこにアサインするか指定します。

blink.xdc
set_property -dict { PACKAGE_PIN K17   IOSTANDARD LVCMOS33 } [get_ports { clk }]; #IO_L12P_T1_MRCC_35 Sch=sysclk
create_clock -add -name sys_clk_pin -period 8.00 -waveform {0 4} [get_ports { clk }];

#LED
set_property -dict { PACKAGE_PIN M14   IOSTANDARD LVCMOS33 } [get_ports { led }]; #IO_L23P_T3_35 

set_property -dict { PACKAGE_PIN K18   IOSTANDARD LVCMOS33 } [get_ports { rst }]; #IO_L12N_T1_MRCC_35

合成とダウンロード

Generate Bitstream をクリックして合成してください。

image.png

実行

Zybo Z7 を JTAG モードにして USB 経由で PC とつなぎ、bit stream をダウンロードします。うまくいけば LED チカチカが始まるはず、、、といいたいところですが、LED はひかりぱなしです。rst にアサインしたボタンを押すと LED は消えます。プログラムは動いていますが、clk が早すぎてチカチカに見えません。改良の余地がありそうです。

image.png

image.png

2
1
5

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
2
1