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.