본문 바로가기

IT

Xilinx ucf 파일에서 Pin mapping 하기

세로 광고판 입니다

원하는 FPGA핀으로 시그널을 정의해서 뽑아 보려면, ucf 파일을 건드려야 한다.

물론 친절하게 GUI로 띄워서 클릭으로 선택할 수도 있지만, 기본적인 것은 알아야~~


예제로 보는 것이 가장 쉽다. 추상적인 내용은 보기도 이해도 어렵다.


# ==== Clock Source ==== 

NET "clock" LOC = "C9" | IOSTANDARD = LVCMOS33

NET "clock" PERIOD = 5ns HIGH 40%; 


# ==== Slide Switches (SW) ==== 

NET "reset" LOC = "L13" | IOSTANDARD = LVTTL | PULLUP ; # SW1

(from http://www.ce.rit.edu/studentresources/reference_materials/561/Spartan3E_FPGA_User%20Guide.pdf


Spartan3E_FPGA_User Guide.pdf



어려운 것은 없다. 

단, 시그널 명은 합성하는 top의 시그널 명과 일치 시켜야 한다.

LOC는 핀 이름을 잘 보고 원하는 것을 정확하게 쓰면 되고


예제IOSTANDARD = LVTTL or LVCMOS33 이렇게 쓰고 있는데 그냥 통째로 이 구문을 안쓰고 돌리는 것이 대부분일 것이다. 붙이는 칩들이 옛날 칩을 쓰는 것이 아니라면

즉, NET "reset" LOC = "L13" | IOSTANDARD = LVTTL | PULLUP ; # SW1 <- 이렇게 사용하자.


마지막 파워온시에 기본 값을 줄 수 있는 

PULLUP or PULLDOWN은 유용할 듯 하다.


그리고, ucf 본연의 의무는 핀 할당도 있지만 여러가지 constraint를 주는 것이 목적이다.

결국 타이밍 정보를 여기에 정의해서 사용해야 한다.

복잡하니 이것은 다음에~~