LoginSignup
1
0

More than 5 years have passed since last update.

Lチカ(Zybo編)

ネタがなくなってきたので Zybo でも Lチカをこころみることにします。

Lチカ アゲイン(Python での記述)

Python のソースを掲げます。

blink.py
from polyphony import testbench, module, is_worker_running
from polyphony.io import Port
from polyphony.timing import wait_value
from polyphony.typing import bit

@module
class Blink:
    def __init__(self, interval):
        self.led = Port(bit, 'out')
        self.interval = interval
        self.append_worker(self.main)

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

    def _wait(self):
        for i in range(self.interval // 2):
            pass


@testbench
def test(dut):
    v = 0
    for i in range(4):
        print("loop:", i)
        wait_value(1, dut.led)
        wait_value(0, dut.led)
    print("finished")

blink = Blink(125 * 1000 * 1000)
test(blink)

Python でシミュレーション

Python で実行します。

Pythonで実行
> python3 blink.py
loop: 0
loop: 1
loop: 2
loop: 3
finished

Polyphony でコンパイル

コンパイルすると Blink_blink.v が出来ます。

Polyphonyでコンパイル
> polyphony blink.py
> ls Blink_blink.v
Blink_blink.v

Vivado で合成・実行

Zybo 用ですが ARM の部分は使いませんので簡単に作れます。
作業の詳細はこちらも参考にしてください。ほぼ同じです。
https://qiita.com/ryos36/items/0f757c674ef90a33ddf2

Vivado のプロジェクト作成

XC7z010clg400-1 を選択します。

image.png

デザインを追加してソースも追加

  1. 空の design を作り
  2. wrapper も設定し
  3. Blink_blink.v も追加します。

image.png

Block_block.v を追加

image.png

make external でピンを生成します。名称は変えました。
image.png

ピン情報を追加(xdc の追加)

ピン情報を追加します。

zynq.xdc
## PL System Clock                                                                 
set_property -dict { PACKAGE_PIN L16   IOSTANDARD LVCMOS33 } [get_ports { clk }];  
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 { led0 }];  

## Buttons                                                                         
set_property -dict { PACKAGE_PIN R18   IOSTANDARD LVCMOS33 } [get_ports { btn0 }]; 

これは回路図の赤で囲った部分から作ります。

image.png

合成して実行

合成した上で Zybo を JTAG で立ち上げて実行します。Lチカの完成です。

image.png

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