Python의 FPGA/L 치카 (Zybo)
L치카(Zybo편)
재료가 사라졌기 때문에 Zybo에서도 L 치카를 마음껏 보기로 합니다.
L 치카 애게인 (Python으로 작성)
파이썬 소스를 들고 있습니다.
blink.pyfrom 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에서 실행합니다.
파이썬에서 실행> 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 부분은 사용하지 않으므로 쉽게 만들 수 있습니다.
작업의 자세한 것은 이쪽도 참고해 주세요. 거의 동일합니다.
htps : // 이 m / 료 s36 / ms / 0f757c674 에 f90 아 33 df2
Vivado 프로젝트 만들기
XC7z010clg400-1을 선택합니다.
디자인을 추가하고 소스도 추가
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)
> python3 blink.py
loop: 0
loop: 1
loop: 2
loop: 3
finished
> polyphony blink.py
> ls Blink_blink.v
Blink_blink.v
Block_block.v 추가
make external로 핀을 생성합니다. 이름은 바뀌었습니다.
핀 정보 추가 (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 }];
이것은 회로도의 빨간색으로 둘러싸인 부분으로 만듭니다.
합성 및 실행
합성한 후 Zybo 를 JTAG 로 시작해 실행합니다. L치카의 완성입니다.
Reference
이 문제에 관하여(Python의 FPGA/L 치카 (Zybo)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ryos36/items/defefbda63b873dd1cb1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)