Python의 FPGA/Zybo Z7의 L 치카

모카이 L 치카 오사라이



이것이 「L치카다」 에서 L치카를 만들었습니다. 메인 루틴은 매우 간단했습니다.

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에 파이썬 소스를 넣어 둡니다.

이 소스를 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을 선택합니다. 빈 디자인이 가능합니다.



Blink_blink.v를 Vivado 디자인에 추가



Design Sources를 마우스 오른쪽 단추로 클릭하고 Add Sources...를 선택하여 Blink_blink.v를 추가합니다.







Blink_blink.v를 상단 모듈로



Blink_blink.v를 선택하고 오른쪽 클릭에서 Set as TOP을 선택합니다.



Zybo-Z7.xdc를 비활성화합니다.


다시 blink.xdc를 만듭니다.


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을 클릭하여 합성합니다.



실행



Zybo Z7을 JTAG 모드로 설정하고 USB를 통해 PC와 연결하고 비트 스트림을 다운로드합니다. 잘하면 LED 치카치카가 시작될 것입니다. rst에 할당 된 버튼을 누르면 LED가 꺼집니다. 프로그램이 실행 중이지만 clk가 너무 빨라서 치카치카처럼 보이지 않습니다. 개량의 여지가 있을 것 같습니다.



좋은 웹페이지 즐겨찾기