Skip to content
DevBJ
Go back

Vivado에서 Nexys A7 핀을 XDC로 할당하는 방법

Advertisement
Updated:
Editor

Vivado에서 Nexys A7 핀을 할당해 보자.

일단 XDC 파일을 프로젝트에 추가한다. 그다음 보드의 Master XDC에서 필요한 핀만 골라 top module의 포트 이름에 맞춘다.

먼저 확인할 것

Nexys A7-100T라면 Digilent의 Nexys-A7-100T Master XDC를 먼저 받는다.

50T와 100T의 파일이 따로 있다. 사용하는 보드 모델부터 확인한다.

스크린샷은 2024년에 직접 작업하면서 저장한 화면이다. 현재 Vivado 버전에서는 메뉴 모양이 조금 다를 수 있다.

XDC 파일 추가

Sources 창의 Constraints에서 constraint set을 우클릭한다. Edit Constraints Sets...를 선택한다.

Vivado Sources 창에서 Edit Constraints Sets 메뉴를 선택한 화면

새 파일을 만드는 경우 Create File을 누른다.

Vivado Edit Constraints Sets 창의 Create File 버튼

파일 형식은 XDC로 두고 이름을 입력한다.

Vivado Create Constraints File 창에서 XDC 파일 이름을 입력한 화면

목록에 새 XDC 파일이 들어왔는지 확인하고 OK를 누른다.

Vivado constraint set에 UARTDemo.xdc가 추가된 화면

Sources 창의 Constraints 아래에 파일이 생긴다. 처음 만든 파일은 비어 있다.

Vivado Sources 창에 생성된 빈 UARTDemo.xdc 파일

문법이 기억나지 않으면 Language Templates에서 XDC 예제를 볼 수 있다.

Vivado Language Templates에서 XDC 예제를 연 화면

Nexys A7 핀 할당

Master XDC에서 사용할 줄의 주석을 풀고 get_ports 이름을 top module 포트와 맞춘다.

아래는 100 MHz clock, 스위치 하나, LED 하나만 연결한 예제다.

## 100 MHz clock
set_property -dict { PACKAGE_PIN E3 IOSTANDARD LVCMOS33 } [get_ports { CLK100MHZ }]
create_clock -add -name sys_clk_pin -period 10.00 -waveform {0 5} [get_ports { CLK100MHZ }]

## Switch 0
set_property -dict { PACKAGE_PIN J15 IOSTANDARD LVCMOS33 } [get_ports { SW[0] }]

## LED 0
set_property -dict { PACKAGE_PIN H17 IOSTANDARD LVCMOS33 } [get_ports { LED[0] }]

PACKAGE_PIN은 FPGA package의 실제 핀이다. IOSTANDARD는 해당 I/O의 전기 규격이다.

get_ports 안의 이름이 RTL top module과 다르면 constraint가 적용되지 않는다. 대소문자와 배열 표기까지 같이 확인한다.

확인

일단 아래 세 가지만 본다.

  1. 선택한 Master XDC가 실제 Nexys A7 모델과 맞는지
  2. XDC의 get_ports 이름과 top module 포트가 같은지
  3. clock 포트에 create_clock이 들어갔는지

AMD 문서도 top-level I/O에 PACKAGE_PINIOSTANDARD를 지정하는 방식을 사용한다. IOSTANDARD를 빠뜨린 채 bitstream 생성을 진행하지 않는다.

Vivado 화면에서 실제 bitstream 생성까지는 이번에 다시 확인하지 않았다. 여기서는 XDC 추가와 핀 작성까지만 정리한다.

관련 글

공식 자료

원문 기록

한 줄 요약

Nexys A7의 Master XDC에서 필요한 줄만 골라 포트 이름을 맞추면 된다.


Share this post on:

Next Post
Vivado에서 Nexys A7 bitstream을 생성하고 FPGA에 올리는 방법