VHDL/Operacje na zmiennych: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Piotr (dyskusja | edycje)
m lit.,ort. itp.
Linia 3:
= Operacje przypisywania =
 
Jak wspomniano w rozdziale [[VHDL/Typy danych|Typy danych]], w VHDL istnieje rozróżnienie między '''sygnałem''', a '''zmiennnązmienną'''. Ma to odzwierciedlenie w sposobie przypisywania wartości do nich.
 
==Przypisywanie do sygnałów==
Linia 16:
''sygnał2'' <= "001";
 
{{Uwaga|Podczas przypiswaniaprzypisywania wartości istnieje rozróżnienie między skalarem, a wektorem. Do przypisania pojedyńczejpojedynczej wartości (skalaru) stosuje się znak apostrofu ('). Do przypisania całego wektora stosuje się znak cudzysłowu (").}}
 
==Przypisywanie do zmiennych==
Linia 40:
==Kopiowanie części wektora==
 
Przy stosowaniu operatora przypisania do wektora należy zachować odpowiednią wielkość wektorów po obu stronach operatora. IsniejeIstnieje jednak czasem potrzeba ''"wykrojenia"'' z wektora jego części, by móc ją przypisać do innego wektora. Czyni się to po przez stosowanie słów kluczowych ''to'' i ''downto'' (stosowanych już w rozdziale [[VHDL/Typy danych|Typy danych]]). Przykładowo, jeśli ''sygnał1'' ma wartość "011", to zapis:
 
''sygnał2'' <= ''sygnał1'' (2 downto 1);
Linia 48:
== Koniunkcja ==
 
Jak wspomniano w rozdziale [[VHDL/Typy danych|Typy danych]], w VHDL można deklarować zarówno wektory jak i skalary. Istnieje jednak możliwoścmożliwość przypisania wartości z wektoruwektora do skalaru, jak i na odwrót.
 
Zapis:
 
''sklarskalar'' <= ''wektor''(''indeks'');
 
spowoduje przypisanie do sygnału ''sklarskalar'' wartości z sygnału ''wektor'' o indeksie ''indeks''. Przykładowo, jeśli ''sygnał2'' ma wartość ''101'', to zapis:
''sygnał1'' <= ''sygnał2''(1);
 
spowoduje przypisanie do ''sygnał1'' wartości ''0'' (jak więc widać jest to szczególny przypadek kopiowania częsciczęści wektoruwektora).
 
Można też z kilku skalarów utworzyć nową wartość wektora, po przez zapis:
Linia 66:
Przykładowo, jeśli ''skalar1'' ma wartość 1, a ''skalar2'' i ''skalar3'' mają wartości ''0'', to powyższy zapis spowoduje przypisanie wartości ''100'' do zmiennej ''wektor''.
 
Ta druga operacja (tworzenie wektora ze skalarów) ma nazwę '''koniunkcji''', zaś znak ''&'' nazywany jest ''operatorem koniunkcji''. IsniejeIstnieje możliwość koniunkcji nie tylko ''skalarów'', ale i ''wektorów'', oraz ''wektorów i skalarów''. Przykładowo (pozostając przy wartościach z poprzednich przykładów), zapis:
 
''sygnał4'' <= ''skalar2'' & ''sygnał2''(2 dwonto 1) & ''skalar1'';
Linia 74:
= Operacje logiczne =
==Podstawowe informacje ==
W VHDLu można dokonać podstawowych operacji logicznych przy użyciu nastepującychnastępujących słów kluczowych:
'''
*and
Linia 94:
c <= '''not''' (a '''and''' b);
 
da w efekcięefekcie operację '''nand'''.
 
=Operacje arytmetyczne=
Linia 103:
 
=Operacje warunkowe=
{{Uwaga|Jak zaznaczono w rozdziale [[VHDL/Jednostki projektowe|Jednostki projektowe]], poniższe operacja, mają sens wtylkotylko w obrębie procesu}}
==IF==
==CASE==