Skocz do zawartości

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


Pomocna odpowiedź

Napisano

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

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").

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...