Lab - 2 Overview = lab-1 에서 만든 시스템을 두개의 GPIO(볌용 입출력) IP를 추가해 확장하기
목표
- PS의 GP 마스터 포트를 구성해 PL의 IP에 연결한다(AXI4-Lite)
- 기존 HW설계에 IP를 추가
- 컴파일러 설정 변경법 숙지
======================================================
Step - 1 - Lab-1 실행
- lab-1을 실행시킴
- File > Project > save as를 이용해 lab-2로 저장한다(create project subdirectory를 체크해 새로운 lab을 위한 폴더를 생성한다
======================================================
Step - 2 - 2개의 GPIO Instance 추가
- source 패널에서 system_wrapper를 확장후 system.bd(system_i)를 더블클릭해 Diagram 출력
- ZYNQ 블록을 더블클릭해 RE-Customize IP 열기
- 좌측에 PS-PL Configuration 클릭
- AXI Non Secure Exablement -> GP Master AXI Interfaces 클릭후 M AXI GP0 Interface를 활성화
- General > Enable Clock Reset 에서 FCLK_RESET0_N 활성화
- 좌측의 Clock Configuration 에서 PL Fabric Clocks 를 선택해 FCLK_CLK0 옵션을 활성화 하고 Requested Frequency를 100 (100MHZ 를 의미) 으로 변경후 OK
- PSU Parameter 관련 Critical Messages 가 나오면 OK 클릭 (무시가능 에러)
- 다이어 그램에서 변경된점 확인 (하단 그림처럼 나와야 함)
- M_AXI_GP0_ACLK
- M_AXI_GP0
- FCLK_CLK0
- FCLK_RESET0_N
- +버튼(또는 우클릭후 Add IP 를 눌러 AXI GPIO 를 검색
- 생성된 AXI GPIO 블록 우클릭후 Block Properties 클릭 후 이름을 switches로 변경
- GPIO 블록 더블클릭후 속성창 열기
- Board 탭의 IP Interface 중 GPIO의 Board Interface 를 drop down 후 sws 2bits 로 변경
- IP Configuration 탭을 눌러 Enable Dual Channel과 Enable Interrupt 가 체크 헤지되었는지 확인(이때 채널은 다른 장치와 구성요소갖ㄴ의 유선연결임, 듀얼일때 128bit를 사용하고 싱글은 64 bit를 사용한다)
- 확인으로 저장하고 닫는다
- Designer Assistance available 을 확인하고 Run Connection Autimation 을 누른다
- 좌측 switches 하단의 S_AXI 를 선택
- Master 와 Slave인터페이스를 자동으로 연결되도록 클릭하고 확인을 누른다(2개의 추가 block 이 그려진다(Processor System Reset/AXI Interconnection 하단 그림 참조)
- 다른 GPIO Instance를 추가하고 이름을 buttons로 바꾼다
- 새로 생긴 IP 인 Buttons 를 더블클릭후 GPIO 인터페이스를 btns 4bits 로 바꾼다
- buttons로 추가한 요소의 X_AXI 포트를 클릭하고 AXI Interconnected 블록에 선을 잇는다(M01_AXI 에 선이 이어진다/ Found 1 interface 메시지가 꼭 나와야 한다.
- 이와 마찬가지로 다음 포트를 연결한다
- Buttons 의 s_axi_aclk -> zynq 7의 FCLK_CLK0 (Zynq처리시스템과 장치가 동기화 통신함)
- Buttons 의 s_axi_aresetn -> Processor 의 Reset peripheral_aresetn (Zynq처리시스템이 주변을 Reset한다)
- AXI Interconnect M01_ACKL -> Zynq7 Processing system의 FCLK_CLK0
- AXI Interconnect M01_ARESETN -> Processor System Reset Peripheral_aresetn
- Address Editor 탭을 누르고 Processing_system7_0/Data > Unassigned를 확장시킨다
- 다이어그램 뷰에서 Designer Assistance가 가능한지 확인한다
- Switch 인스턴스에서 GPIO 포트를 마우스 우클릭해 Make External 을 선택해 외부 포트를 만든다-->선이 하나 빠짐
- 추가된 GPIO_0 포트를 우클릭해 Properties 를 눌러 이름을 switches 로 변경한다
- buttons의 GPIO 를 우클릭해 Run Connection Automation 을 누른다
- options 하단 select Board Part Interface 에 btns_4bits를 선택후 OK를 누른다
- 생성된 외부 포트의 이름을 buttons 로 변경한다
- Design validation 을 수행하고 verify하여 에러가 없는지 확인한다/ 이떄 완성된 다이어그램은 하단과 같다(이때 필요하면 automatic connection을 눌러준다)
- Flow Navigator 에서 Run Synthesis 를 실행(저장옵션이 나오면 저장한다)하고 Open Synthesized Design 을 선택하고 확인한다