Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- library ieee;
- use ieee.std_logic_1164.all;
- use ieee.std_logic_unsigned.all;
- entity reg_ex2 is
- port(
- D : std_logic_vector(3 downto 0);
- op: std_logic_vector(1 downto 0);
- clk: std_logic;
- left_in: std_logic;
- right_in: std_logic;
- Q: out std_logic_vector(3 downto 0)
- );
- end entity;
- architecture toto of reg_ex2 is
- signal inside, nextone : std_logic_vector(3 downto 0);
- begin
- inside <= inside; -- si rien ne se passe, garder la valeur
- process (clk, D, op, left_in, right_in)
- begin
- if rising_edge(clk) then
- case op is
- when "00" =>
- null; -- si opcode="00", garder la valeur
- when "01" =>
- inside <= inside(3 downto 1) & right_in; -- left shift
- when "10" =>
- inside <= left_in & inside(2 downto 0); -- right shift
- when "11" =>
- inside <= D; -- stocker la valeur d'entrée
- when others =>
- null; -- ne rien faire (pour terminer le case uniquement)
- end case;
- end if;
- end process;
- Q <= inside;
- end toto;
Advertisement