Czy w mojej FPGA brakuje zasobów routingu?

9

Mam projekt kontrolera Serial-ATA działający na prawie każdym urządzeniu z serii Xilinx 7, z wyjątkiem urządzenia Artix-7, które sprawia mi ból głowy ...

Czysty projekt (SATA 6.0Gb / s, zegar projektowy 150 MHz) może być zaimplementowany w moim Artix-7 200T. Jeśli dodam rdzenie ILA (wcześniej znane jako ChipScope), czas nie zostanie spełniony.

Co zrobiłem, aby złagodzić sytuację: - dodano 2 etapy rurociągu w każdym rdzeniu ILA - dodano 1 etap rurociągu między transceiverem GTP a logiką - zastosowałem retiming, remap i szerokie rozmieszczenie jako alternatywną strategię wdrażania

Te obrazy pokazują normalny przebieg projektu. Rdzenie ILA są daleko od SATAController (SATAC) i 8-bitowego procesora ( SoFPGA ), ale kontroler nadal ma ścieżki wadliwe (to jedyny region z wadliwymi ścieżkami).

wprowadź opis zdjęcia tutaj

Wydaje się, że w niektórych obszarach Artix-7 nie ma zasobów do routingu. Jak mogę uzyskać raport wskazujący na takie podejrzenie?

Próbowałem też stosować metody Retiming, Remap i szersze strategie rozmieszczania. Rezultat jest następujący:

wprowadź opis zdjęcia tutaj

Błąd synchronizacji jest prawie taki sam ...

PS Projekt wykorzystuje tylko 178 z> 300 BlockRAMów. Użyłem Xilinx ISE, aby użyć prawie każdego BlockRAMu w innych projektach, ale nigdy nie spotkałem się z takim zachowaniem.

Edytować:

Oto mapa cieplna wszystkich ujemnych wartości luzu na plaster (kolor czerwony) wprowadź opis zdjęcia tutaj

Paebbels
źródło
3
W Altera Quartus istnieje coś zwanego regionami LogicLock, które pozwalają ograniczyć partycję lub fragment logiki do określonego regionu. Przypuszczam, że będzie coś podobnego dla Xilinx (choć nie jestem pewien, jak to się nazywa). Jeśli możesz to zrobić, powinieneś ograniczyć ILA do regionu oddalonego od twojej logiki (aby zatrzymać wypieranie ważnych rzeczy) i dodać dodatkowy potok (nieograniczony do regionu), aby pomóc w ustaleniu czasu.
Tom Carpenter
2
Może to być również przypadek fałszywych ścieżek między domeną zegarową ILA i dowolnymi innymi domenami zegarowymi, powodujących fałszywe ścieżki, które skutkują dodatkowym wysiłkiem instalatora (powodując, że prawdziwe ścieżki są traktowane z mniejszym priorytetem, a więc nie tak dobrze)
Tom Carpenter
2
Miałem podobne problemy z SignalTap (ponownie odpowiednik ILA Altera), powodując awarie ścieżek, ponieważ wrażliwe ścieżki były rozsuwane przez logikę tap, chcąc być bliżej podsłuchiwanych sygnałów. Działo się to głównie tam, gdzie gęstość BRAM była wysoka, ponieważ BRAMy SignalTap zmuszały inne BRAM do dalszego oddalania się. Gdy SignalTap został ograniczony do regionu, który był mniej krytycznie wypełniony, problemy zniknęły.
Tom Carpenter
@TomCarpenter Ograniczenia umieszczania nazywane są PBlock :). O ile mogę stwierdzić, nie ma komórek ILA w regionie SoFPGA lub SATAC, są one rozdzielone przez 3 stopnie FF na każdym z 151 sygnałów śladowych. Sondowany projekt działa w tej samej domenie zegara co ILA (150 MHz). Wszystkie ścieżki są ograniczone (brak nieograniczonych, brak ścieżek między zegarami). Wszystkie wymienione ścieżki awarii znajdują się w tej samej domenie zegarowej, albo w SATAC, albo w samej ILA. Znalazłem raport o przeciążeniu routingu, który mówi o około 54% zużyciu (w poziomie i w pionie). Proszę zobaczyć moje neg. do mojego pytania dodano luźną mapę cieplną.
Paebbels
1
Znalazłem 2 problemy: na początku Artix-7 jest od 15 do 50% wolniejszy niż Kintex-7. Jeśli zmienię domyślną klasę prędkości z -2 na -3, wszystko jest w porządku (istnieje margines bezpieczeństwa 200 ps w porównaniu do luzu ujemnego 670 ps. Więc stopień prędkości -3 poprawia ścieżkę 6.600 ns o prawie 0,970 ns! wygląda na to, że samo dołączenie sygnałów śledzenia powoduje większe rozproszenie wentylatora, co powoduje problemy z taktowaniem. Dodatkowo trasy śledzenia przechodzą przez domenę zegara 100 MHz dla 8-bitowego procesora, co z kolei powoduje (jeden na 5 uruchomień) problemy w tej dziedzinie zegara. Tak długie linie / trasy powodują problemy na innych liniach
Paebbels

Odpowiedzi:

1

Możesz uzyskać szczegółowy raport, wykonując analizę projektu w Xilinx Vivado. Uruchom następującą komendę w konsoli tcl: „report_design_analysis” Daje raport czasu, złożoności i przeciążenia wdrożonego projektu. Możesz także uruchomić ten raport, przechodząc do Narzędzia-> Raport-> Raport Analiza_projektów.

W tym raporcie możesz zobaczyć, które obszary powodują zatory spowodowane umieszczaniem. Które plastry są w pełni wykorzystywane lub jaka jest czynsz za takie plastry i / lub trasy.

Mam nadzieję, że to pomogło.

Pozdrawiam, KWQ

KashifWajid
źródło
Dzięki za ten (dla mnie nieznany) raport. Czym różni się od mojego ostatniego obrazu (mapa temperatur czasowych)?
Paebbels