Xilinx ISE, jeden komponent z różnymi param

May 06, 2008 13 Replies

Witam! Robię mały projekt w ISE na FPGA Spartan 3E. I natrafiłem na taki problem. Mam pewien komponent zbudowany w oparciu o pamięci ROM. Potrzebuję teraz w projekcie 4 sztuki tego komponentu różniące się tylko zawartością ROMu. Czy można to w jakiś prosty sposób uzyskać? Czy też muszę stworzyć 4 różne komponenty z różną zawartością ROMu? Pracuję głownie w środowisku graficznym (tak, wiem, mordęga straszna ale nie bardzo mam jak i kiedy się nauczyć VHDLa czy Veriloga) więc było by miło jeśli dało by się taki efekt z poziomu graficznego interfejsu uzyskać. Ale jeżeli trzeba pogrzebać w źródłach to trudno. Chodzi mi o samą koncepcję uzyskania komponentu różniącego się w gruncie rzeczy tylko parametrem INIT.



Pozdrawiam!


Nie bardzo rozumiem - probujesz w jednej kostce FPGA miec

4 kostki ROM o roznych zawartosciach? Czy moze chcesz miec jedna kostke FPGA z jednym komponentem ROM z przelaczana zawartoscia w czasie pracy jednego urzadzenia? Czy moze chcesz produkowac urzadzenia ktore kazdy ma jeden FPGA z jednym komponentem ROM rozniace sie "wsadem"?

Nie pracuje z Xilinxem lecz Altera ale Twoje pytanie brzmi troche podejrzanie... :-) U Altery kazda zawartosc pamieci jest konfigurowalna plikiem i wlaczana do pliku konfigurujacego FPGA. Kazdy komponent bedzie mial u Ciebie osobny plik.

Jesli kostka jest na tyle duza aby zmiescily sie tam 4 ROMy to najprosciej jest przeciez miec wszystkie 4 jednoczesnie. Kombinowac musisz dopiero gdy sie 4 na raz nie mieszcza...

Pszemol pisze:

Dokładnie tak! Z tym że pojedyncza kostka ROM jest składnikiem pewnego komponentu.

Albo inaczej, mam pamięć ROM. W niej sekwencję bitów. Do wejść adresowych podłączam licznik. Całość zamykam w komponencie, na zewnątrz mam wejście CLK i wyjście danych. Teraz chcę wrzucić do głównego układu

4 takie komponenty, z różnymi zawartościami ROMU. No ale tu problem, bo komponent i zawartość umieszczonego w nim ROMu zdefiniowana jest w opisie komponentu. Zatem gdy umieszczę 4 komponenty w schemacie nadrzędny, będę miał w każdym identycznego ROMa, a ja chcę żeby każdy był inny.

W jaki sposob w tej chwili "definiujesz opis komponentu"? Nie znam softu jakiego uzywasz, ale ja w sofcie Altery po prostu podaje nazwe pliku z zawartoscia ROMu w czasie tworzenia projektu. Kompilator ma wiec skad wziac zawartosc ROM do wypelnienia komponentu. Czy Ty samemu zrobiles sobie ta kostke ROM czy uzywasz komponentu bibliotecznego?

TRS napisał:

W bibliotecznych ROMach zawartość pamięci ustawiana jest wartością parametru INIT. Co prawda sam korzystałem z tego tylko w kodzie VHDL ale wydaje mi się, że w Schematicu można edytować właściwości elementu.

Używając graficznego edytora, tworzę schemat (ROM pochodzi z fabrycznych bibliotek Xilinxa), definiuję porty wejściowe/wyjściowe, i z tego tworzę element (symbol) komponentu do dalszego wykorzystania. Właściwie to jest taka hierarchiczna struktura projektu.

No właśnie a tutaj symbol pamięci ROM ma właściwość INIT gdzie wpisuje się zawartość ROMu.

Wpisuje sie zawartosc recznie, z klawiatury? Nie zartuj!

Tu masz obrazek jak wyglada 3 etap wizarda komponentu LPM_ROM w programie Altery:

formatting link
element ROM w swoim projekcie jako miejsce przechowania bootloadera dla zewnetrznego w stosunku do FPGA procesora... Chyba bym sie poplakal gdybym musial recznie wpisywac te bajty z pliku po kazdej nowej kompilacji bootloadera :-)

To jest niemozliwe aby software Xilinxa byl taki kijowy. Musi tam byc cos porownywalne do tego co oferuje Altera. Poszukaj lepiej.

No a czemu nie? A kto mówi ze to ma być np. loader z kilobajtami kodu? tam można zapisać kilka bajtów np. wsp. jakiegoś wielomianu czy dekodera. Oczywiście że można dołączyć plik z kodem, ale nie zawsze jest taka potrzeba.

MiSter

Plik jest uniwersalny, bo moze miec 4 bajty lub 4 tysiace, bez roznicy. Ale jesli znasz software Xilinx to pomoz koledze z rozwiazaniem jego problemu.

TRS snipped-for-privacy@spam.spam napisał(a):

Musisz sobie podlaczyć parametr INIT tego ROM-a do analogicznego parametru swojego komponentu, a w projekcie instancjonując swój komponent za każdym razem nadać inna wartość temu parametrowi w instancji swojego komponentu. Jasne ?!

Pomimo że to środowisko graficzne musi ono oferować możliwość zmiany parametrów poprzez jakieś dodatkowe menu z właściwościami czy cuś.

Choć na:

formatting link
to pogadamy

Pszemol snipped-for-privacy@PolBox.com napisał(a):

To jeśli ktoś Cie w przyszłości zapyta o inicjalizowanie zawartości ROM w narzędziach Xilinx, to napisz mu że istnieje zarówno możliwość podłączenia zewnętrznego pliku z zawartością pamięci *.coe przy generacji w CoreGeneratorze, jak i wklepania tych wartości w kodzie, jako parametr lub jako atrybut, bądź też nadpisania ich już po syntezie w osobnym pliku *.ucf

Pszemol snipped-for-privacy@PolBox.com napisał(a):

Za duzo troli ;P

In the darkest hour on Fri, 9 May 2008 07:23:26 +0000 (UTC), [g.d.] <g snipped-for-privacy@gazeta.pl screamed:

Wymień pierwszych trzydziestu.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required