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 Rejestry

Moderatorzy: Jacek Bogusz, Moderatorzy

artti
-
-
Posty: 1
Rejestracja: 16 cze 2010, o 17:26
Lokalizacja: Stąd

VHDL Rejestry

Postautor: artti » 16 cze 2010, o 17:33

Witam!

Mam taki problem z zadaniem (mam go zrobić w języku VHDL).

Zaprojektuj układ przesuwający cyklicznie zawartość 7 bitowego rejestru o 2 bity w prawo lub o dwa bity w lewo.

Bardzo proszę o pomoc :)

Kod: Zaznacz cały

Title "zlozone" SUBDESIGN icodalej( S[1..0] : INPUT; A[5..0] : INPUT; B[6..0] : OUTPUT; ) BEGIN IF S0 ==GND AND S1 ==VCC THEN -- 0 Przesuniecie o 2 bity w lewo B[6] = A4; B[5] = A3; B[4] = A2; B[3] = A1; B[2] = A0; B[1] = GND; B[0] = GND; END IF IF S0 == VCC THEN -- 1 Przesuniecie o 2 bity w prawo B[6] = GND; B[5] = GND; B[4] = A6; B[3] = A5; B[2] = A4; B[1] = A3; B[0] = A2; END IF END;

DicE
-
-
Posty: 1
Rejestracja: 6 lip 2010, o 13:12
Lokalizacja: Warszawa

Postautor: DicE » 6 lip 2010, o 13:33

Kod: Zaznacz cały

library ieee; use ieee.std_logic_1164.all; entity artii_reg is Port ( clk : in std_logic; -- zegar ukladu input : in std_logic_vector(6 downto 0); -- wejscie rownolegle rejestru mode : in std_logic; -- tryb pracy: 0 rejestro rownolegly , 1 rejestr samorotujacy LR : in std_logic; -- sygnal wyboru rotacji 1 - w lewo, 0 - w prawo reset : in std_logic; -- sygnal resetu; output : out std_logic_vector(6 downto 0) --wyjscie rownolegle rejestru ); end entity; architecture behave of artii_reg is signal Reg : std_logic_vector(6 downto 0); Begin process(clk,reset) -- glowny proces jak w DFF begin if (reset='1') then reg<= (others=>'0'); elsif (clk'event and clk ='1') then if (mode='0') then --tryb rownolegly reg <= input; elsif (mode='1') then -- tryb rotacji if (LR='0') then -- rotacja w prawo o 2 Reg(0)<= Reg(2); Reg(1)<= Reg(3); Reg(2)<= Reg(4); Reg(3)<= Reg(5); Reg(4)<= Reg(6); Reg(5)<= Reg(0); Reg(6)<= Reg(1); else -- rotacja w lewo o 2 Reg <= Reg(4 downto 0) & Reg(6 downto 5); -- inny prostszy zapis tego co na gorze ;p end if; end if; end if; end process; output<=Reg; end behave;

Wróć do „PLD/FPGA i inne zagadnienia techniki cyfrowej”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 97 gości