ograniczenia czasu wykonania ISE

T

tarcza

Guest
Cześć, mogę napotkać problem: ise przepływu realizacji spędza 5 godzin lub tak.
Doprowadziło to do effiency jest tak niski ASIC prototypowania w naszym projekcie.
Kto ma doświadczenie w tego problemu?Może podasz mi advive lub
świadczenia niektórych materiałów.Dziękuję!
 
używać silnego komputera i dużo pamięci.
linux nie używać Windows.

 
Że mam bardzo duży projekt lub wąskiego miejsca i trasy ograniczeń, jeśli nie oba.Większy jest projektowanie i / lub zaostrzenie swoje miejsce i droga i budżet czasu już ich weźmie na narzędzia do pracy.

E

 
Kilka lat temu miałem podobny problem z dużym Virtex-design II.ISE dumpingowych wszystkie logiki w środku chip i próbował trasy kodowany bałagan.Placer i router walczyli o dwie lub trzy godziny próbując osiągnąć zamknięcia terminu.Zazwyczaj nie.

I znacznie poprawiła się sytuacja przy zastosowaniu ograniczeń LOC każdy obszar mojego HDL modułów.Ja również rozmieszczone obszary tak sygnałów, łączone były w większości krótkie.Kilka sygnałów nadal potrzebne, aby przejść przez układ, więc dodaje się zarejestrować rurociągu do nich do podziału dużego opóźnienia propagacji.ISE budowy projektu około 45 minut.

Miejsce i trasa jest intensywnie wykorzystujących pamięć.Upewnij się, że komputer jest wystarczająco szybki RAM i pamięci RAM, aby uniknąć zamiany na dysku.

 
echo47 napisał:

I znacznie poprawiła się sytuacja przy zastosowaniu ograniczeń LOC każdy obszar mojego HDL modułów.
Ja również rozmieszczone obszary tak sygnałów, łączone były w większości krótkie.
 
Oto przykład, który może pomóc w wyjaśnieniu mojego opisu.

Powiedzmy FPGA ma jakieś przetwarzania danych przy użyciu czterech modułów HDL o nazwie A, B, C i D. Dane wynika z pinów danych poprzez moduł, a następnie poprzez moduł B, potem do C, a następnie do D, i wreszcie na szpilki wyjścia.Jeśli nie stosuje się żadnych ograniczeń powierzchni, ISE zrzuci wszystkie cztery moduły w środku chip i próby ich trasy.Czasami dobrze działa, ale czasami jest zatłoczenie zbyt poważne.Aby uniknąć warczenie, i ograniczyć modułu w lewym górnym rogu chipa, modułu B w prawym górnym rogu, moduł C w prawym dolnym rogu i D moduł w lewym dolnym rogu.I starają się również miejsce pinów wejścia w pobliżu modułu i szpilki wyjście w pobliżu moduł D, aby uniknąć długich trasach chip do I / O poduszki.Teraz, kiedy ISE tras chip, nie mniej zatorów trasy i czystsze krótsze trasy między modułami.

Zarejestruj Rurociąg jest zwykłym D-flop umieszczonym w środku kombinatorycznych logiki, albo w trakcie długiej trasy.To w zasadzie dzieli opóźnienia propagacji w pół.Krótszymi terminami pozwala na zwiększenie częstotliwości zegara.Jednak do rejestru wprowadza dodatkowy cykl zegara opóźnienia, więc należy zmodyfikować system czasu przyjęcia go.

To trwa kilka nanosekund na drodze do krzyża na całą szerokość dużych FPGA.To jest zbyt wolny dla pożądanego kursu zegara.Stawiając rejestru rurociągu w połowie drogi, opóźnienie jest przeciąć na pół.

Jest to nieco zaawansowanych rzeczy.Pomaga to być doświadczenie z projektowania FPGA i narzędzi programowych.

Mogą być też inne sytuacje, które powodować długo miejsca i czasu połączenia, ale tej, którą opisałem tutaj jest problem widzę najczęściej.

 
Znam ludzi, że ise trwać dłużej niż dzień - 5 godzin jest wielki!

 
echo47 napisał:

Oto przykład, który może pomóc w wyjaśnieniu mojego opisu.Powiedzmy FPGA ma jakieś przetwarzania danych przy użyciu czterech modułów HDL o nazwie A, B, C i D. Dane wynika z pinów danych poprzez moduł, a następnie poprzez moduł B, potem do C, a następnie do D, i wreszcie na szpilki wyjścia.
Jeśli nie stosuje się żadnych ograniczeń powierzchni, ISE zrzuci wszystkie cztery moduły w środku chip i próby ich trasy.
Czasami dobrze działa, ale czasami jest zatłoczenie zbyt poważne.
Aby uniknąć warczenie, i ograniczyć modułu w lewym górnym rogu chipa, modułu B w prawym górnym rogu, moduł C w prawym dolnym rogu i D moduł w lewym dolnym rogu.
I starają się również miejsce pinów wejścia w pobliżu modułu i szpilki wyjście w pobliżu moduł D, aby uniknąć długich trasach chip do I / O poduszki.
Teraz, kiedy ISE tras chip, nie mniej zatorów trasy i czystsze krótsze trasy między modułami.
 
Pamiętaj, że celem synchroniczne czasu logika jest zmniejszenie wszystkich flop do opóźnienia ścieżki flop, dopóki nie krótszy niż okres zegara.Typowy nowoczesny szybki FPGA ma sub-nanosekundy bramy i szybkość flop, ale trasę podróży przez układ można łatwo trwać pięć nanosekund.To 5ns trasa będzie ograniczyć stawki zegarem poniżej 200 MHz, nawet jeśli plażowe i bramy były nieskończenie szybko.Przez wprowadzenie D-flop na środku drogi, flop do opóźnienia flopie staje 2.5ns (plus niewielkie opóźnienie flop) i 200 MHz staje się łatwe.Krótsze trasy pozwala na jeszcze wyższych częstotliwości taktowania.Oczywiście, nie należy umieszczać zbyt wiele logiki kombinatorycznej między plażowe, ponieważ ogranicza również współczynnik zegara.Kiedy potrzeba naprawdę szybkim tempie zegar, postawiłem tylko na jednym poziomie logiki kombinatorycznej między plażowe.To zdaje się synteza uruchomić także na łatwiejsze i szybsze.

Jedną z wad wstawienie dodatkowych flop jest, że musisz teraz uwagę na dodatkowe cyklu zegara opóźnienia w projekcie terminy systemu.That's what potokowym projektu jest wokoło, a czasem nie jest łatwe.

Jeśli długo biegać ISE HDL występuje tylko podczas kompilacji, to mój ograniczenie obszaru i sugestie rurociąg nie pomoże.Moje projekty najczęściej kompilacji dość szybko, a następnie przez długi czas w miejscu i trasy.

Nie zauważyłem żadnych szczególnych składni HDL, która znacznie ułatwia i boli kompilacji (poza jakimś dziwnym problem XST udziałem pętli w początkowej "oświadczenie Verilog).Ważnym celem jest stworzenie wydajnego sprzętu, a następnie opisać dokładnie z HDL.Zazwyczaj nie ma znaczenia, który HDL składni użyć, tak długo jak nie zniekształca oryginalny efektywne projektowanie.Jeśli używasz Xilinx XST, można zobaczyć wiele małych przykładów "XST HDL Coding Techniques" rozdział XST User Guide.

Dużych rozproszonych RAM zajmuje dużo czasu do syntezy i drogi, ponieważ jest wdrożyć w wielu powiązanych ze sobą LUT i plażowe.Blok pamięci RAM jest prosty obiekt, który syntetyzuje i tras znacznie szybciej.

 
Nie, ale znaczek FAE może być przydatne.FAES zapewne mają dostęp do specjalnych narzędzi programistycznych, kodu źródłowego, przed produktu info o wersji, a lepiej wsparcia ludzi.Stare klientów o niskiej głośności jak mi się WebCase.

 
Dzięki "echo47" ... Również zdarza mi uświadomić sobie, że dodaje Block RAM do naszego modelu nie zawsze pomaga w obniżaniu poziomu bramy (Distr RAM) zasobów ... Dowiedziałem się z doświadczenia, że do pewnego stopnia korzystania z BRAM pomaga się przypadku jednak nie zawsze, może to tylko ułatwia wycinanie bardzo syntezy i czas realizacji ... Morever Pisanie \ BRAM Reading zajmuje więcej niż jeden CLK (port jedn np.) niż robienie tego samego na Distributed RAM których działanie jest natychmiastowe .Jakie korzyści kinda myślisz BRAM jest dadzą nam, kiedy timming jest tak krytyczna \ tight? ...

 
To brzmi jak coś poszło nie tak podczas realizacji bloku pamięci RAM.Sprawdź, czy sprawozdanie podsumowujące, aby zobaczyć, czy blok pamięci RAM lub Distributed RAM faktycznie syntezatora.

Block RAM może działać od około 200 MHz do 500 MHz, w zależności od typu FPGA.To wymaga tylko jednego cyklu zegara, chyba że zostanie włączona opcja rejestr wyjście to przewidziane w niektórych FPGA.Nie należy spożywać żadnych zasobów FPGA z wyjątkiem bloku RAM sobie.

Jeden skuteczną metodę wprowadzania RAM blok w twój projekt jest instancję RAMB16_ * Biblioteka prymitywnych do swojego HDL.Ja jednak wolę używać tablicy rejestr HDL, że wywodzi bloku pamięci RAM, ale wymaga starannego kodowania, ponieważ jest łatwa do napisania HDL trochę racji, powodujących XST wyprowadzić Distributed RAM zamiast bloku pamięci RAM.XST User Guide opisuje odpowiedniej składni w rozdziale "HDL Coding Techniques".Lub spróbuj użyć kodu HDL szablonu przedstawionego w projekcie Navigator (nie próbowałem ich).Ponadto, nowsze wersje XST jest mądrzejszy o wnioskowaniu Block RAM niż starsze wersje.

Jeśli projekt wymaga wielu bardzo małych RAM (np. 16 lub 32 słów), a następnie Distributed RAM może być lepszym wyborem niż Block RAM.

 
Hello friend, I don't know how you guys mogą opisywać BRAM, ale jak dowiedziałem się od rdzenia IP generatora w Xilinx, ja używać do konfiguracji pamięci RAM jako port z jednego lub dwóch, jak tylko do odczytu lub w trybie Read-Write , szerokość i głębokość danych itp. .. To generuje mi kod VHDL strukturalnych, które mogę dodać jako element mojego głównego modułu.Więc inorder zapisu danych na to, muszę najpierw wybrać wr \ rd = "0", a następnie w kolejnych zegar położę danych i serw.Jeśli chcesz przeczytać, znowu trzeba będzie wybrać wr \ rd = '1 ', a następnie addr miejsce.Dopiero w następnym CLK rośnie, dane będą się od BRAM.Tak więc znacznie wymaga czasu .... po prostu oznaczało, że ... mam nadzieję, że rozumiesz moją sprawę.

 
Tak, Core Generator to w inny sposób.

Blok pamięci RAM jest synchroniczne, a więc wymaga impulsu zegara, aby załadować swój adres i odczytu / zapisu, ale zegar może być bardzo szybko.Jeśli potrzebujesz asynchroniczne RAM bez odczytu zegara, a następnie należy użyć Distributed RAM.Jednakże duże Distributed RAM ma znaczne opóźnienia propagacji, powodującej zwykle wolniej niż ogólna wydajność bloku pamięci RAM.Małe Distributed RAM są wystarczająco szybkie, though.Jest to projekt systemu handlu-off decyzji.

 
Jedną z wad wstawienie dodatkowych flop jest, że musisz teraz uwagę na dodatkowe cyklu zegara opóźnienia w projekcie terminy systemu.That's what potokowym projektu jest wokoło, a czasem nie jest łatwe.

Jeśli długo biegać ISE HDL występuje tylko podczas kompilacji, to mój ograniczenie obszaru i sugestie rurociąg nie pomoże.Moje projekty najczęściej kompilacji dość szybko, a następnie przez długi czas w miejscu i trasy.

 
Wręcz oppsoite infaact dla mnie !.... Moje syntezy czasu trwa znacznie dłużej niż można było cierpliwie poczekać .... Ale mój trasy i czasu wprowadzania prędkości się jak turbo ... Nie rozumiem, czy to ze względu na sposób programów i pętli, które mogą spowodować dłuższy czas wyprowadzić wymaganych zasobów ....

 

Welcome to EDABoard.com

Sponsor

Back
Top