Advertisement
Mihailo21

TBB

Dec 2nd, 2023
245
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VHDL 2.21 KB | None | 0 0
  1. library ieee;
  2. use ieee.std_logic_1164.all;
  3. use ieee.std_logic_unsigned.all;
  4.  
  5. entity zadatakB_tb is
  6. end entity;
  7.  
  8. architecture Test of zadatakB_tb is
  9.  
  10.     --Inputs and outputs
  11.    signal sCLK   : std_logic := '0';
  12.    signal sRST   : std_logic := '0';
  13.    signal sEN    : std_logic := '0';
  14.     signal sDATA  : std_logic_vector(7 downto 0);
  15.     signal sLOAD   : std_logic;
  16.     signal sCODE     : std_logic_vector(2 downto 0);
  17.     signal sCNTG   : std_logic_vector(3 downto 0);
  18.     signal sCNTS   : std_logic_vector(3 downto 0);
  19.    
  20.     constant iCLK_PERIOD : time := 10 ns;
  21.    
  22.    component zadatakB is port(
  23.             iCLK    : in  std_logic;
  24.          iRST    : in  std_logic;
  25.          iEN     : in  std_logic;
  26.             iDATA    : in std_logic_vector(7 downto 0);
  27.             iLOAD   : in std_logic;
  28.             oCODE    : out std_logic_vector(2 downto 0);
  29.             oCNTG   : out std_logic_vector(3 downto 0);
  30.             oCNTS   : out std_logic_vector(3 downto 0)
  31.       );
  32.    end component;
  33.  
  34. begin
  35.  
  36.    uut: zadatakB port map (
  37.           iCLK => sCLK,
  38.           iRST => sRST,
  39.           iEN => sEN,
  40.              iDATA => sDATA,
  41.              iLOAD => sLOAD,
  42.              oCODE => sCODE,
  43.              oCNTG => sCNTG,
  44.              oCNTS => sCNTS
  45.              
  46.         );
  47.    
  48.     --takt process
  49.     clk_proc : process
  50.     begin
  51.         sCLK <= '1';
  52.         wait for iCLK_PERIOD / 2;
  53.         sCLK <= '0';
  54.         wait for iCLK_PERIOD / 2;
  55.     end process;
  56.    
  57.    -- Stimulus process
  58.    stim_proc: process
  59.    begin
  60.        
  61.         --Resetovati sistem tačno 3.25 perioda takta
  62.         sRST <= '1';
  63.         wait for 3.25 * iCLK_PERIOD;
  64.         sRST <= '0';
  65.         --Postaviti na ulaz komplementera takvu vrednost da u rotirajućem registru završi broj 2
  66.         sDATA <= "11111110";
  67.         sLOAD <= '1';
  68.         wait for iCLK_PERIOD;
  69.         sLOAD <= '0';
  70.         --Dati dozvolu rotirajućem registru sve dok vrednost u registru ne postane veća od 5
  71.         --i onda ukinuti dozvolu dok brojač većih ne izbroji do 10
  72.         sEN <= '1';
  73.         wait for 2 * iCLK_PERIOD;
  74.         sEN <= '0';
  75.         wait for 10 * iCLK_PERIOD;
  76.         --Potom dati dozvolu za rad rotirajućem registru sve dok vrednost u njemu ne bude manja od 5
  77.         --i onda ukinuti dozvolu dok brojač manjih ne izbroji do 5
  78.         sEN <= '1';
  79.         wait for 5 * iCLK_PERIOD;
  80.         sEN <= '0';
  81.         wait for 2 * iCLK_PERIOD;
  82.         --Resetovati sistem
  83.         sRST <= '1';
  84.        
  85.         wait;
  86.    end process;
  87.  
  88. end architecture;
  89.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement