Python의 FPGA/L 치카 (Zybo)

L치카(Zybo편)



재료가 사라졌기 때문에 Zybo에서도 L 치카를 마음껏 보기로 합니다.

L 치카 애게인 (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에서 실행합니다.

파이썬에서 실행
> 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을 선택합니다.



디자인을 추가하고 소스도 추가


  • 빈 디자인 만들기
  • wrapper도 설정
  • 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치카의 완성입니다.

    좋은 웹페이지 즐겨찾기