Advertisement
Guest User

Lab #2 - Top.vhd (Dean Nguyen)

a guest
Sep 19th, 2018
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VHDL 1.93 KB | None | 0 0
  1. --Lab #2: Top (Dean Nguyen)--
  2.  
  3. --Libraries--
  4. LIBRARY IEEE;
  5. USE IEEE.STD_LOGIC_1164.ALL;
  6. USE IEEE.STD_LOGIC_UNSIGNED.ALL;
  7. USE IEEE.NUMERIC_STD.ALL;
  8.  
  9. --Entity--
  10. ENTITY Top IS
  11.     GENERIC (   SIZE                        : INTEGER   := 10);
  12.     PORT        (   CLK, RESET_N, LOAD  : IN STD_LOGIC; --Clock, reset, load, serial_in from XOR
  13.                     INPUT                       : IN STD_LOGIC_VECTOR(9 DOWNTO 0); --Random seed input
  14.                     OUTPUT                  : OUT STD_LOGIC_VECTOR(9 DOWNTO 0)); --Output
  15. END Top;
  16.  
  17. --Architecture--
  18. ARCHITECTURE structural OF Top IS
  19.  
  20. --Components--
  21. COMPONENT Shift_Reg
  22.     GENERIC (   SIZE                                    : INTEGER   := 10); --Generic with default value
  23.     PORT        (   CLK, RESET_N, LOAD, SERIAL_IN   : IN STD_LOGIC; --Clock, reset, load, serial_in from XOR
  24.                     SEED                                    : IN STD_LOGIC_VECTOR((SIZE - 1) DOWNTO 0); --Random seed input
  25.                     PARALLEL_OUT                        : OUT STD_LOGIC_VECTOR((SIZE - 1) DOWNTO 0)); --Output
  26. END COMPONENT;
  27.  
  28. COMPONENT XOR_Gate
  29.     GENERIC (   SIZE        : INTEGER   := 2); --Generic with default value
  30.     PORT        (   INPUT       : IN STD_LOGIC_VECTOR((SIZE - 1) DOWNTO 0); --Input by # of inputs
  31.                     OUTPUT  : OUT STD_LOGIC); --Output
  32. END COMPONENT;
  33.  
  34. --Signals--
  35. SIGNAL SHIFT_REG_INPUT  : STD_LOGIC; --Input signal to serial_In from XOR output
  36. SIGNAL SHIFT_REG_OUTPUT : STD_LOGIC_VECTOR((SIZE - 1) DOWNTO 0); --Output signal from parallel_Out
  37. SIGNAL XOR_INPUT            : STD_LOGIC_VECTOR((SIZE - 8) - 1 DOWNTO 0); --Input signal from parallel_out to XOR input
  38.  
  39. BEGIN
  40.  
  41. --Mapping--
  42.     uut: Shift_Reg
  43.         GENERIC MAP (
  44.             SIZE => 10)
  45.         PORT MAP (
  46.             CLK => CLK,
  47.             RESET_N => RESET_N,
  48.             LOAD => LOAD,
  49.             SERIAL_IN => SHIFT_REG_INPUT,
  50.             SEED => INPUT,
  51.             PARALLEL_OUT => SHIFT_REG_OUTPUT);
  52.                
  53.     uut1: XOR_Gate
  54.         GENERIC MAP (
  55.             SIZE => 2)
  56.         PORT MAP (
  57.             INPUT => XOR_INPUT,
  58.             OUTPUT => SHIFT_REG_INPUT);
  59.            
  60. --Structure--
  61.            
  62.     XOR_INPUT <= SHIFT_REG_OUTPUT(9) & SHIFT_REG_OUTPUT(6); --Concatenating the two bits (9, 6)
  63.     OUTPUT <= SHIFT_REG_OUTPUT; --Shows output
  64.    
  65. END structural;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement