[Vivado] Place 30-716, Place 30-681

[vivado] Place 30-716

enter image description here

[Vivado] Place 30-716, Place 30-681

Zynq ultrascale+ 설계를 진행하다가 처음 보는 에러를 접했는데 디버깅 하는데 시간을 좀 보내서 리뷰 남겨 둔다.

[Place 30-716] 또는 [Place 30-681] 에러는 Vivado 진행 단계 중 Implementation(구현) 단계에서 발생하는 문제다.

위 에러들은 울트라스케일 클럭 전용 핀인 GCIO와 MMCM 간의 비효율적인 배치로 인한 오류 이다.

아래와 같은 임시 방편으로 해결 할 수 있지만 클럭 전용핀이 아닌 핀을 클럭으로 사용할 때 대체 방법으로 절대 추천하지 않는다.
실제로 클럭 특성들을 제대로 살려 안정적으로 사용할 수 없기 때문에 의미가 없다.

set_property CLOCK_DEDICATED_ROUTE BACKBONE [get_nets NETLIST_NAME]

클럭 전용 핀도 사용했고 여러 참조 자료들을 봐도 큰 문제가 없어 보이는데 이 문제로 인해 몇 시간 보낸 듯 하다.

원인은 Xilinx FPGA는 하나의 BANK 에서는 하나의 MMCM 을 사용할 수 있다는 제약 조건 때문이다.
IDELAYCTRL 은 하나의 뱅크만 사용하는 것으로 알고 있어 개별 뱅크로 설정했는데 왜 문제가 되는지 했더니
PL의 시스템 클럭을 LVDS 입력 받는 뱅크와 같이 사용하다 보니
하나의 뱅크에서 외부 기준 클럭을 두 개 받아 두개의 MMCM을 사용해 버린 것이다.

PL 시스템 클럭을 다른 뱅크로 옮겨주고 해결되었다.

보드 만들기 전에 중요한 문제이니 반드시 확인이 필요할 듯 하다.

끝 :)

도움이 되셨다면 더 좋은 정보 공유를 위해 광고 클릭 부탁 드립니다 :)

댓글 쓰기

0 댓글