AMBA AXI BUS - AXI4 VIP
·
AMBA BUS/AXI BUS
Vivado에서 제공하는 AXI4 VIP (Verification IP)는 AXI 버스를 테스트하거나 시뮬레이션할 때 사용하는 모델이다. RTL 설계자가 AXI 인터페이스를 가진 IP를 만들었을 때, 그것이 정상적으로 AXI 프로토콜을 따르고 있는지 검증하는 용도로 사용된다.내가 만든 RTL 모듈이 AXI4 Slave인데, Master가 아직 없어서 테스트 못 하겠음... 이럴 때, AXI4 VIP를 Master 역할로 연결해놓고 다양한 read/write 시나리오를 흘려보낼 수 있다.반대로, 내가 만든 RTL이 Master일 때, VIP를 Slave로 연결해서 응답을 테스트할 수 있다."Verify Peripheral IP using AXI4 VIP" 이 옵션을 선택하면, Vivado가 아래와 같은 검..
Vitis - 08. Application Software(AP) 구성
·
AMBA BUS/Vitis
소프트웨어를 작성할 때 작업을 효율적으로 관리하고 코드를 체계적으로 구성하기 위해 전체 과정을입력(INPUT)처리(PROCESSING)출력(OUTPUT)의 세 단계로 나눌 수 있다. 이 각각의 단계를 담당하는 역할을 Listener, Controller, Presenter라는 이름으로 정의하면 다음과 같이 설명할 수 있다:1. Listener (입력 담당)외부에서 들어오는 데이터를 수집하고 감지하는 부분데이터를 입력받고 이를 처리할 수 있는 형태로 가공해 Controller에게 전달한다.2. Controller (처리 담당)Listener로부터 받은 데이터를 분석하고 논리적인 처리를 수행하는 부분Controller는 입력 데이터를 기반으로 무엇을 할지 결정한다. 조건을 판단하고, 계산을 수행하며, 필요한..
Vitis - 07. Interrupt
·
AMBA BUS/Vitis
이번에는 Vitis를 통해 Interrupt를 구현해보자. 우선 Interrupt를 구현하기 위해서는 Interrupt Timer를 위한 Counting Module, 그리고 Block Design에서 몇가지가  추가되어야 한다.1. Timer IP (Interrupt Tick 발생기) 설계module Timer ( input wire clk, input wire resetn, input wire enable, input wire clear, input wire [31:0] PSC, output wire [31:0] TCNT, input wire [31:0] ARR, output wire ..
Vitis - 06. FND 제어
·
AMBA BUS/Vitis
Vitis와 AXI4-Lite Interface를 이용해 소프트웨어적으로 FND를 제어해보자.1. FND CONTROLLER 구현 후, AXI Interface로 연결module fndController ( input clk, input reset, input en, input [ 3:0] fndDot, input [13:0] fndData, output [ 3:0] fndCom, output [ 7:0] fndFont); wire [3:0] digit_1, digit_10, digit_100, digit_1000; wire [3:0] bcdData; wire tick_1khz; wire ..
Vitis - 05. Common Code 작성
·
AMBA BUS/Vitis
펌웨어에서 보통 여러 모듈이나 프로젝트에서 공통으로 사용되는 유틸리티 함수나 기본 기능을 common 폴더로 만들어 모아 놓는다. 그 중 시간 관리와 관련된 역할을 하는 delay와 Tick_timer를 구현해보자.1. Tick Generator를 구현 후, AXI Interface로 연결module basicTimer ( input wire clk, input wire resetn, input wire enable, input wire clear, input wire [31:0] PSC, output wire [31:0] TCNT); reg [31:0] counter; reg [31:0] timer; ..