Mam 3 pytania z VHDLa.
1.)
Czy można definiować w taki sposób zmienne:
VARIABLE wektor: std_logic_vector(3 DOWNTO 0) := (z2, z5, z6, z7);
gdzie z1-z7 to sygnały wejściowe zdefiniowane w jednostce projektowej. Pytam ponieważ po uruchomieniu Generate Post-Synthesis Simulation powyskakiwały mi komunikaty, że wejścia z1-z7 są nigdy nieużywane.
2.) Dotyczy też pierwszego pytania.
Po powyższym przypisaniu wektor(0) to będzie z7, wektor(1) to z6, wektor(2) to z5 i wektor(3) to z2. Czy to prawda? Czy na odwrót?
3.)
Czy lepiej używać '-' czy 'X' czy to obojętnie bo jedno i drugie oznacza stan nieokreślony? Bo zauważyłem w pewnych przykładowych zadaniach, że dla stanów nieokreślonych dają 'X' a przecież rownie dobrze mogliby i dać '-'.
Aktyw Forum
Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.
Sprawdź punkty Zarejestruj sięVHDL - 3 pytania
Moderatorzy:Jacek Bogusz, Moderatorzy
-
- -
- Posty:22
- Rejestracja:1 lut 2009, o 20:07
- Lokalizacja:Wejherowo
Cześć,
1. to co jest po := stanowi wartość początkowa tej zmiennej i prawdopodobnie dlatego pojawiają się warningi. Moje pytanie po co takie coś robisz, co chciałbyś uzyskać.
2. tak wektor(0) to z7
3. Najlepiej nie używać stanów nieokreślonych. No chyba, że robisz jakiś specjalny dekoder np dekodera priorytetów przerwań to tak. Natomiast sygnałom lub zmiennym lepiej nie przypisywać takich sygnałów.
Pozdrawiam
Piotr
1. to co jest po := stanowi wartość początkowa tej zmiennej i prawdopodobnie dlatego pojawiają się warningi. Moje pytanie po co takie coś robisz, co chciałbyś uzyskać.
2. tak wektor(0) to z7
3. Najlepiej nie używać stanów nieokreślonych. No chyba, że robisz jakiś specjalny dekoder np dekodera priorytetów przerwań to tak. Natomiast sygnałom lub zmiennym lepiej nie przypisywać takich sygnałów.
Pozdrawiam
Piotr
-
- -
- Posty:26
- Rejestracja:15 gru 2008, o 14:07
- Lokalizacja:Poznań
Chcę coś takiego uzyskać:
Czyli dzięki temu 1 instrukcja when => zmienna załatwia mi użycie 4 if-ów i ładniejszy dla oka kod jest. To można tak czy nie można? A jak nie to jak inaczej? Bo zgodnie z książka wydaje się być dobrze.
Czyli znak - mam zastąpić X????
Z góry dziękuję za odpowiedź. Zależy mi na czasie.
TestBencha wykonać nie mogę, bo podczas próby Generate Expected Simulation Results bądź Simulate Behavioral Model wyskakuje mi error ERROR:Simulator:222 - Generated C++ compilation was unsuccessful. Płytki tez nie mam by sprawdzić czy te warningi to pic na wode i będzie hulać czy nie?:)
Kod: Zaznacz cały
entity projektos is
port(z1, z2, z3, z4, z5, z6, z7 : in std_logic;
wyjscie : out std_logic);
end projektos;
architecture .... pomijam deklaracje architetkury
A1: process(z1, z5, z6, z7)
variable wektor: std_logic_vector(3 DOWNTO 0) := (z1, z5, z6, z7);
variable zmienna: std_logic;
begin
case wektor is
when "0000" => zmienna := '0';
when "0001" => zmienna := '0';
when "0010" => zmienna := '1';
when "0011" => zmienna := '0';
when "0100" => zmienna := '1';
when "1---" => zmienna := '1';
when others => zmienna := '-';
end case;
wyjscie <= zmienna;
end process A1;
A2: itd.
Czyli znak - mam zastąpić X????
Z góry dziękuję za odpowiedź. Zależy mi na czasie.
TestBencha wykonać nie mogę, bo podczas próby Generate Expected Simulation Results bądź Simulate Behavioral Model wyskakuje mi error ERROR:Simulator:222 - Generated C++ compilation was unsuccessful. Płytki tez nie mam by sprawdzić czy te warningi to pic na wode i będzie hulać czy nie?:)
-
- -
- Posty:22
- Rejestracja:1 lut 2009, o 20:07
- Lokalizacja:Wejherowo
-
- -
- Posty:26
- Rejestracja:15 gru 2008, o 14:07
- Lokalizacja:Poznań
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 13 gości