Skocz do zawartości

Warunkowe dołączanie modułów do projektów VHDL (ISE Xilinx)


FlyingDutch

Pomocna odpowiedź

Witam wszystkich,

nie orientuje się może któryś z kolegów jak w projektach "ISE" osiągnąć efekt podobny do kompilacji warunkowej w programach C/C++ z użyciem pre-procesora języka C?

Chodzi mi o warunkowe dołączenie i zsyntetyzowanie pewnych dodatkowych modułów w języku VHDL dla trybu "Debug" (dla normalnego trybu "Release" moduły te nie powinny być dołączane do projektu i syntetyzowane - w celu zaoszczędzania zasobów układu FPGA).

Chodzi mi o często stosowane w języku C/C++ użycie pre-procesora tego języka dla warunkowego kompilowania kodu np.:

#define DEBUG
...
...
...
#ifdef DEBUG
# include <stdio.h>
... pozostały kod do włączenia i kompilacji
#endif

Chciałbym osiągnąć podobny efekt w projektach VHDL/Verilog w "ISE Webpack" Xilinxa.

Jak na razie znalazłem jeden "sensowny" wątek w sieci:

http://www.edaboard.com/thread140473.html

Jest tam między innymi podany link do projektu VHDL pre-processora (ale, czy jest on coś wart to jak zwykle zagadka)

https://sourceforge.net/projects/vhdlpp/

Interesująca wydaje się też konstrukcja języka VHDL:

genlabel:
if <boolean expression> generate
 <conditional compiled code>
end generate;

ale muszę o tym więcej poczytać.

Pozdrawiam

Link do komentarza
Share on other sites

Aj - widać, że na siłę chcesz o VHDL-a sprowadzić przyzwyczajeniami do C, co jest poważnym błędem - w językach opisu sprzętu nigdy nie występuje pojęcie "preprocesora" czy "dyrektyw preprocesora" - oducz się tego! Niemniej jeśli chcesz osiągnąć podobny efekt to po prostu piszesz stałą o typie boolean (tak, taki typ też jest w VHDL-u) i masz trzy wyjścia:

1. Piszesz if-generate'y i/lub for generate'y (w zależności od potrzeb),
2. Piszesz if-y, case'y, with-selecty czy też when-else'y (w zależności czy to ma być w procesie czy nie)

3. Piszesz funkcje i/lub procedury, ktoorych jednym z argumentów jest właśnie stała i wywołujesz w kodzie

Innymi słowy: po prostu potwierdziłem to co znalazłeś na tym forum oraz to co umieściłeś odnośnie if-generate (plus leciutko to rozszerzyłem). I tyle 🙂 I nie zaprzątaj se głowy jakimiś projektami preprocesorów (szkoda czasu - szybciej uzyskasz ten efekt instrukcjami VHDL-a, niż jakimś amatorskim "preprocesorem").

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.