FPGA에 라우팅 리소스가 부족합니까?


9

나는 두통을주는 Artix-7 장치를 제외하고 거의 모든 종류의 Xilinx 7 시리즈 장치에서 작동하는 직렬 ATA 컨트롤러 디자인을 가지고 있습니다 ...

순수한 Artix (SATA 6.0Gb / s, 150 MHz 디자인 클럭)는 Artix-7 200T에서 구현 될 수 있습니다. ILA 코어 (이전의 ChipScope)를 추가하면 타이밍이 충족되지 않습니다.

내가 긴장을 풀었던 상황 :-각 ILA 코어에 2 개의 파이프 라인 단계 추가-GTP 트랜시버와 논리 사이에 1 개의 파이프 라인 단계 추가-대체 구현 전략으로 리 타이밍, 리맵 및 넓은 배치 사용

이 이미지는 일반적인 디자인 흐름을 보여줍니다. ILA 코어는 SATAController (SATAC) 및 8 비트 CPU ( SoFPGA ) 에서 멀리 떨어져 있지만 컨트롤러에는 여전히 경로에 장애가 있습니다 (경로가없는 유일한 지역).

여기에 이미지 설명을 입력하십시오

Artix-7에 일부 지역의 라우팅 리소스가없는 것 같습니다. 그러한 의혹을 나타내는 보고서를 어떻게 얻을 수 있습니까?

또한 리 타이밍, 리매핑 및 더 넓은 게재 위치 전략을 시도했습니다. 결과는 다음과 같습니다.

여기에 이미지 설명을 입력하십시오

타이밍 실패는 거의 동일합니다 ...

PS이 설계는 300 블록 RAM 중 178 개만 사용합니다. Xilinx ISE를 사용하여 다른 디자인에서 거의 모든 BlockRAM을 사용했지만 그러한 동작은 결코 경험하지 못했습니다.

편집하다:

다음은 슬라이스 당 모든 음의 슬랙 값 (빨간색)의 히트 맵입니다. 여기에 이미지 설명을 입력하십시오


3
Altera Quartus에는 LogicLock 영역이라는 것이 있는데,이를 통해 파티션 또는 논리 덩어리를 특정 영역으로 제한 할 수 있습니다. Xilinx와 비슷한 것이있을 것이라고 생각합니다 (무엇이 무엇인지 확실하지는 않지만). 그렇게 할 수 있다면 ILA를 논리에서 멀리 떨어진 영역으로 제한하고 (중요한 것을 대체하지 않기 위해) 파이프 라인을 추가하여 (영역에 제한되지 않음) 타이밍에 도움이됩니다.
— 톰 카펜터

2
또한 ILA의 클럭 도메인과 다른 클럭 도메인 사이에 잘못된 경로가있는 경우 잘못된 경로를 유발하여 피팅 담당자가 추가 노력을 기울여야합니다 (실제 경로가 우선 순위가 낮고 타이밍이 잘못 처리됨)
— Tom Carpenter

2
나는 신호 탭과 비슷한 문제를 겪었고 (Tera는 Altera와 비슷한 ILA와 동일) 탭 논리에 의해 민감한 경로가 밀려 났기 때문에 경로가 잘못되어 발생합니다. SignalTap BRAM이 다른 BRAM을 더 멀리 강제하고 있기 때문에 BRAM 밀도가 높은 곳에서 주로 발생했습니다. SignalTap이 덜 중요하게 채워진 영역으로 제한되면 문제는 사라졌습니다.
— 톰 카펜터

@TomCarpenter 배치 제약 조건을 PBlock :)이라고합니다. 내가 알 수있는 한, SoFPGA 또는 SATAC 영역에는 ILA 셀이 없으며, 151 개의 트레이스 신호 각각에서 3 개의 FF 스테이지를 통해 분리됩니다. 프로브 된 설계는 ILA (150MHz)와 동일한 클록 도메인에서 실행됩니다. 모든 경로가 제한됩니다 (제한되지 않고 클럭 간 경로가 실패하지 않음). 언급 된 장애 경로는 모두 SATAC 또는 ILA 자체에서 동일한 클럭 도메인에 있습니다. 라우팅 정체 보고서에서 사용량이 약 54 %라고합니다 (수평 및 수직). 내 부정을 참조하십시오. 슬랙 열지도가 내 질문에 추가되었습니다.
— Paebbels

1
두 가지 문제를 발견했습니다. 처음에 Artix-7은 Kintex-7보다 15-50 % 느립니다. 기본 속도 등급을 -2에서 -3으로 변경하면 모두 괜찮습니다 (670ps 네거티브 슬랙에 비해 200ps의 안전 여유가 있으므로 속도 -3은 거의 0.970ns로 6.600ns 경로를 향상시킵니다! 트레이스 신호를 순수하게 부착하면 팬 아웃이 높아져 타이밍 문제가 발생하는 것처럼 보이며, 트레이스 경로는 8 비트 CPU의 100MHz 클럭 도메인을 통과하여 5 회 중 1 회 실행됩니다. 긴 회선 / 루트 스루는 다른 회선에 문제를
— 일으킴

답변:


1

Xilinx Vivado에서 설계 분석을 수행하여 자세한 보고서를 얻을 수 있습니다. tcl 콘솔에서 다음 명령을 실행하십시오. "report_design_analysis"구현 된 디자인의 타이밍, 복잡성 및 정체 보고서를 제공합니다. 도구-> 보고서-> 보고서 디자인 _ 분석으로 이동하여이 보고서를 실행할 수도 있습니다.

이 보고서에서는 배치로 인해 정체를 일으키는 영역을 확인할 수 있습니다. 어떤 슬라이스가 완전히 사용되는지 또는 그러한 슬라이스 및 / 또는 경로의 임대료는 얼마입니까?

이것이 도움이 되었기를 바랍니다.

감사합니다.


이 (나에게 알려지지 않은) 보고서에 감사드립니다. 마지막 이미지 (타이밍 히트 맵)와 어떻게 다릅니 까?
— Paebbels
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.