Advertisement
Vedro

Finish him TEST

May 15th, 2019
397
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VHDL 13.79 KB | None | 0 0
  1. LIBRARY ieee;
  2. USE ieee.std_logic_1164.ALL;
  3.  
  4. ENTITY KlawTest IS
  5. END KlawTest;
  6.  
  7. ARCHITECTURE behavior OF KlawTest IS
  8.  
  9.     -- Component Declaration for the Unit Under Test (UUT)
  10.  
  11.     COMPONENT Klawiatura
  12.     PORT(
  13.          clk_i : IN  std_logic;
  14.          ps2_clk_i : IN  std_logic;
  15.          rst_i : IN  std_logic;
  16.          ps2_data_i : IN  std_logic;
  17.          led7_an_o : OUT  std_logic_vector(3 downto 0);
  18.          led7_seg_o : OUT  std_logic_vector(7 downto 0)
  19.         );
  20.     END COMPONENT;
  21.    
  22.  
  23.    --Inputs
  24.    signal clk_i : std_logic := '0';
  25.    signal ps2_clk_i : std_logic := '1';
  26.    signal rst_i : std_logic := '0';
  27.    signal ps2_data_i : std_logic;
  28.  
  29.     --Outputs
  30.    signal led7_an_o : std_logic_vector(3 downto 0);
  31.    signal led7_seg_o : std_logic_vector(7 downto 0);
  32.  
  33.    -- Clock period definitions
  34.    constant clk_i_period : time := 100 ps;
  35.  
  36. BEGIN
  37.  
  38.     -- Instantiate the Unit Under Test (UUT)
  39.    uut: Klawiatura PORT MAP (
  40.           clk_i => clk_i,
  41.           ps2_clk_i => ps2_clk_i,
  42.           rst_i => rst_i,
  43.           ps2_data_i => ps2_data_i,
  44.           led7_an_o => led7_an_o,
  45.           led7_seg_o => led7_seg_o
  46.         );
  47.  
  48.    -- Clock process definitions
  49.    clk_i_process :process
  50.    begin
  51.         clk_i <= '0';
  52.         wait for clk_i_period/2;
  53.         clk_i <= '1';
  54.         wait for clk_i_period/2;
  55.    end process;
  56.  
  57.  
  58.    -- Stimulus process
  59.    stim_proc: process
  60.    begin       
  61.         ps2_clk_i <= '0';
  62.         ps2_data_i <= '1';
  63.         wait for 3 ns;
  64.         ps2_clk_i <= '1';
  65.         wait for clk_i_period*100;
  66.         ps2_clk_i <= '0';
  67.         ps2_data_i <= '0';                                              -- 0        start                       1. litera
  68.         wait for clk_i_period*100;
  69.         ps2_clk_i <= '1';
  70.         wait for clk_i_period*100;
  71.         ps2_clk_i <= '0';
  72.         ps2_data_i <= '0';                                              -- 0        dane
  73.         wait for clk_i_period*100;
  74.         ps2_clk_i <= '1';
  75.         wait for clk_i_period*100;
  76.         ps2_clk_i <= '0';
  77.         ps2_data_i <= '0';                                              -- 0        dane
  78.         wait for clk_i_period*100;
  79.         ps2_clk_i <= '1';
  80.         wait for clk_i_period*100;
  81.         ps2_clk_i <= '0';
  82.         ps2_data_i <= '1';                                              -- 1        dane
  83.         wait for clk_i_period*100;
  84.         ps2_clk_i <= '1';
  85.         wait for clk_i_period*100;
  86.         ps2_clk_i <= '0';
  87.         ps2_data_i <= '0';                                              -- 0        dane
  88.         wait for clk_i_period*100;
  89.         ps2_clk_i <= '1';
  90.         wait for clk_i_period*100;
  91.         ps2_clk_i <= '0';
  92.         ps2_data_i <= '0';                                              -- 0        dane
  93.         wait for clk_i_period*100;
  94.         ps2_clk_i <= '1';
  95.         wait for clk_i_period*100;
  96.         ps2_clk_i <= '0';
  97.         ps2_data_i <= '1';                                              -- 1        dane
  98.         wait for clk_i_period*100;
  99.         ps2_clk_i <= '1';
  100.         wait for clk_i_period*100;
  101.         ps2_clk_i <= '0';
  102.         ps2_data_i <= '0';                                              -- 0        dane
  103.         wait for clk_i_period*100;
  104.         ps2_clk_i <= '1';
  105.         wait for clk_i_period*100;
  106.         ps2_clk_i <= '0';
  107.         ps2_data_i <= '0';                                              -- 0        dane
  108.         wait for clk_i_period*100;
  109.         ps2_clk_i <= '1';
  110.         wait for clk_i_period*100;
  111.         ps2_clk_i <= '0';
  112.         ps2_data_i <= '1';                                              -- 1        parity
  113.         wait for clk_i_period*100;
  114.         ps2_clk_i <= '1';
  115.         wait for clk_i_period*100;
  116.         ps2_clk_i <= '0';
  117.         ps2_data_i <= '1';                                              -- 1        stop
  118.         wait for clk_i_period*100;
  119.         ps2_clk_i <= '1';
  120.         wait for clk_i_period*100;
  121.         ps2_clk_i <= '0';
  122.         ps2_data_i <= '0';                                              -- 0        start                       2. litera
  123.         wait for clk_i_period*100;
  124.         ps2_clk_i <= '1';
  125.         wait for clk_i_period*100;
  126.         ps2_clk_i <= '0';
  127.         ps2_data_i <= '1';                                              -- 1        dane
  128.         wait for clk_i_period*100;
  129.         ps2_clk_i <= '1';
  130.         wait for clk_i_period*100;
  131.         ps2_clk_i <= '0';
  132.         ps2_data_i <= '1';                                              -- 1        dane
  133.         wait for clk_i_period*100;
  134.         ps2_clk_i <= '1';
  135.         wait for clk_i_period*100;
  136.         ps2_clk_i <= '0';
  137.         ps2_data_i <= '0';                                              -- 0        dane
  138.         wait for clk_i_period*100;
  139.         ps2_clk_i <= '1';
  140.         wait for clk_i_period*100;
  141.         ps2_clk_i <= '0';
  142.         ps2_data_i <= '1';                                              -- 1        dane
  143.         wait for clk_i_period*100;
  144.         ps2_clk_i <= '1';
  145.         wait for clk_i_period*100;
  146.         ps2_clk_i <= '0';
  147.         ps2_data_i <= '0';                                              -- 0        dane
  148.         wait for clk_i_period*100;
  149.         ps2_clk_i <= '1';
  150.         wait for clk_i_period*100;
  151.         ps2_clk_i <= '0';
  152.         ps2_data_i <= '1';                                              -- 1        dane
  153.         wait for clk_i_period*100;
  154.         ps2_clk_i <= '1';
  155.         wait for clk_i_period*100;
  156.         ps2_clk_i <= '0';
  157.         ps2_data_i <= '0';                                              -- 0        dane
  158.         wait for clk_i_period*100;
  159.         ps2_clk_i <= '1';
  160.         wait for clk_i_period*100;
  161.         ps2_clk_i <= '0';
  162.         ps2_data_i <= '0';                                              -- 0        dane
  163.         wait for clk_i_period*100;
  164.         ps2_clk_i <= '1';
  165.         wait for clk_i_period*100;
  166.         ps2_clk_i <= '0';
  167.         ps2_data_i <= '1';                                              -- 1        parity
  168.         wait for clk_i_period*100;
  169.         ps2_clk_i <= '1';
  170.         wait for clk_i_period*100;
  171.         ps2_clk_i <= '0';
  172.         ps2_data_i <= '1';                                              -- 1        stop
  173.         wait for clk_i_period*100;
  174.         ps2_clk_i <= '1';
  175.         wait for clk_i_period*100;
  176.         ps2_clk_i <= '0';
  177.         ps2_data_i <= '0';                                              -- 0        start                       F0, czyli break (1)
  178.         wait for clk_i_period*100;
  179.         ps2_clk_i <= '1';
  180.         wait for clk_i_period*100;
  181.         ps2_clk_i <= '0';
  182.         ps2_data_i <= '0';                                              -- 0        dane
  183.         wait for clk_i_period*100;
  184.         ps2_clk_i <= '1';
  185.         wait for clk_i_period*100;
  186.         ps2_clk_i <= '0';
  187.         ps2_data_i <= '0';                                              -- 0        dane
  188.         wait for clk_i_period*100;
  189.         ps2_clk_i <= '1';
  190.         wait for clk_i_period*100;
  191.         ps2_clk_i <= '0';
  192.         ps2_data_i <= '0';                                              -- 0        dane
  193.         wait for clk_i_period*100;
  194.         ps2_clk_i <= '1';
  195.         wait for clk_i_period*100;
  196.         ps2_clk_i <= '0';
  197.         ps2_data_i <= '0';                                              -- 0        dane
  198.         wait for clk_i_period*100;
  199.         ps2_clk_i <= '1';
  200.         wait for clk_i_period*100;
  201.         ps2_clk_i <= '0';
  202.         ps2_data_i <= '1';                                              -- 1        dane
  203.         wait for clk_i_period*100;
  204.         ps2_clk_i <= '1';
  205.         wait for clk_i_period*100;
  206.         ps2_clk_i <= '0';
  207.         ps2_data_i <= '1';                                              -- 1        dane
  208.         wait for clk_i_period*100;
  209.         ps2_clk_i <= '1';
  210.         wait for clk_i_period*100;
  211.         ps2_clk_i <= '0';
  212.         ps2_data_i <= '1';                                              -- 1        dane
  213.         wait for clk_i_period*100;
  214.         ps2_clk_i <= '1';
  215.         wait for clk_i_period*100;
  216.         ps2_clk_i <= '0';
  217.         ps2_data_i <= '1';                                              -- 1        dane
  218.         wait for clk_i_period*100;
  219.         ps2_clk_i <= '1';
  220.         wait for clk_i_period*100;
  221.         ps2_clk_i <= '0';
  222.         ps2_data_i <= '1';                                              -- 1        parity
  223.         wait for clk_i_period*100;
  224.         ps2_clk_i <= '1';
  225.         wait for clk_i_period*100;
  226.         ps2_clk_i <= '0';
  227.         ps2_data_i <= '1';                                              -- 1        stop
  228.         wait for clk_i_period*100;
  229.         ps2_clk_i <= '1';
  230.         wait for clk_i_period*100;
  231.         ps2_clk_i <= '0';
  232.         ps2_data_i <= '0';                                              -- 0        start                       Kod litery zbrejkowanej
  233.         wait for clk_i_period*100;
  234.         ps2_clk_i <= '1';
  235.         wait for clk_i_period*100;
  236.         ps2_clk_i <= '0';
  237.         ps2_data_i <= '1';                                              -- 1        dane
  238.         wait for clk_i_period*100;
  239.         ps2_clk_i <= '1';
  240.         wait for clk_i_period*100;
  241.         ps2_clk_i <= '0';
  242.         ps2_data_i <= '1';                                              -- 1        dane
  243.         wait for clk_i_period*100;
  244.         ps2_clk_i <= '1';
  245.         wait for clk_i_period*100;
  246.         ps2_clk_i <= '0';
  247.         ps2_data_i <= '0';                                              -- 0        dane
  248.         wait for clk_i_period*100;
  249.         ps2_clk_i <= '1';
  250.         wait for clk_i_period*100;
  251.         ps2_clk_i <= '0';
  252.         ps2_data_i <= '1';                                              -- 1        dane
  253.         wait for clk_i_period*100;
  254.         ps2_clk_i <= '1';
  255.         wait for clk_i_period*100;
  256.         ps2_clk_i <= '0';
  257.         ps2_data_i <= '0';                                              -- 0        dane
  258.         wait for clk_i_period*100;
  259.         ps2_clk_i <= '1';
  260.         wait for clk_i_period*100;
  261.         ps2_clk_i <= '0';
  262.         ps2_data_i <= '1';                                              -- 1        dane
  263.         wait for clk_i_period*100;
  264.         ps2_clk_i <= '1';
  265.         wait for clk_i_period*100;
  266.         ps2_clk_i <= '0';
  267.         ps2_data_i <= '0';                                              -- 0        dane
  268.         wait for clk_i_period*100;
  269.         ps2_clk_i <= '1';
  270.         wait for clk_i_period*100;
  271.         ps2_clk_i <= '0';
  272.         ps2_data_i <= '0';                                              -- 0        dane
  273.         wait for clk_i_period*100;
  274.         ps2_clk_i <= '1';
  275.         wait for clk_i_period*100;
  276.         ps2_clk_i <= '0';
  277.         ps2_data_i <= '1';                                              -- 1        parity
  278.         wait for clk_i_period*100;
  279.         ps2_clk_i <= '1';
  280.         wait for clk_i_period*100;
  281.         ps2_clk_i <= '0';
  282.         ps2_data_i <= '1';                                              -- 1        stop
  283.         wait for clk_i_period*100;
  284.         ps2_clk_i <= '1';
  285.         wait for clk_i_period*100;
  286.         ps2_clk_i <= '0';
  287.         ps2_data_i <= '0';                                              -- 0        start                       Powrót do pierwszej, trzymanej litry
  288.         wait for clk_i_period*100;
  289.         ps2_clk_i <= '1';
  290.         wait for clk_i_period*100;
  291.         ps2_clk_i <= '0';
  292.         ps2_data_i <= '0';                                              -- 0        dane
  293.         wait for clk_i_period*100;
  294.         ps2_clk_i <= '1';
  295.         wait for clk_i_period*100;
  296.         ps2_clk_i <= '0';
  297.         ps2_data_i <= '0';                                              -- 0        dane
  298.         wait for clk_i_period*100;
  299.         ps2_clk_i <= '1';
  300.         wait for clk_i_period*100;
  301.         ps2_clk_i <= '0';
  302.         ps2_data_i <= '1';                                              -- 1        dane
  303.         wait for clk_i_period*100;
  304.         ps2_clk_i <= '1';
  305.         wait for clk_i_period*100;
  306.         ps2_clk_i <= '0';
  307.         ps2_data_i <= '0';                                              -- 0        dane
  308.         wait for clk_i_period*100;
  309.         ps2_clk_i <= '1';
  310.         wait for clk_i_period*100;
  311.         ps2_clk_i <= '0';
  312.         ps2_data_i <= '0';                                              -- 0        dane
  313.         wait for clk_i_period*100;
  314.         ps2_clk_i <= '1';
  315.         wait for clk_i_period*100;
  316.         ps2_clk_i <= '0';
  317.         ps2_data_i <= '1';                                              -- 1        dane
  318.         wait for clk_i_period*100;
  319.         ps2_clk_i <= '1';
  320.         wait for clk_i_period*100;
  321.         ps2_clk_i <= '0';
  322.         ps2_data_i <= '0';                                              -- 0        dane
  323.         wait for clk_i_period*100;
  324.         ps2_clk_i <= '1';
  325.         wait for clk_i_period*100;
  326.         ps2_clk_i <= '0';
  327.         ps2_data_i <= '0';                                              -- 0        dane
  328.         wait for clk_i_period*100;
  329.         ps2_clk_i <= '1';
  330.         wait for clk_i_period*100;
  331.         ps2_clk_i <= '0';
  332.         ps2_data_i <= '1';                                              -- 1        parity
  333.         wait for clk_i_period*100;
  334.         ps2_clk_i <= '1';
  335.         wait for clk_i_period*100;
  336.         ps2_clk_i <= '0';
  337.         ps2_data_i <= '1';                                              -- 1        stop
  338.         wait for clk_i_period*100;
  339.         ps2_clk_i <= '1';
  340.         wait for clk_i_period*100;
  341.         ps2_clk_i <= '0';
  342.         ps2_data_i <= '0';                                              -- 0        start                       F0 trzymanej litery
  343.         wait for clk_i_period*100;
  344.         ps2_clk_i <= '1';
  345.         wait for clk_i_period*100;
  346.         ps2_clk_i <= '0';
  347.         ps2_data_i <= '0';                                              -- 0        dane
  348.         wait for clk_i_period*100;
  349.         ps2_clk_i <= '1';
  350.         wait for clk_i_period*100;
  351.         ps2_clk_i <= '0';
  352.         ps2_data_i <= '0';                                              -- 0        dane
  353.         wait for clk_i_period*100;
  354.         ps2_clk_i <= '1';
  355.         wait for clk_i_period*100;
  356.         ps2_clk_i <= '0';
  357.         ps2_data_i <= '0';                                              -- 0        dane
  358.         wait for clk_i_period*100;
  359.         ps2_clk_i <= '1';
  360.         wait for clk_i_period*100;
  361.         ps2_clk_i <= '0';
  362.         ps2_data_i <= '0';                                              -- 0        dane
  363.         wait for clk_i_period*100;
  364.         ps2_clk_i <= '1';
  365.         wait for clk_i_period*100;
  366.         ps2_clk_i <= '0';
  367.         ps2_data_i <= '1';                                              -- 1        dane
  368.         wait for clk_i_period*100;
  369.         ps2_clk_i <= '1';
  370.         wait for clk_i_period*100;
  371.         ps2_clk_i <= '0';
  372.         ps2_data_i <= '1';                                              -- 1        dane
  373.         wait for clk_i_period*100;
  374.         ps2_clk_i <= '1';
  375.         wait for clk_i_period*100;
  376.         ps2_clk_i <= '0';
  377.         ps2_data_i <= '1';                                              -- 1        dane
  378.         wait for clk_i_period*100;
  379.         ps2_clk_i <= '1';
  380.         wait for clk_i_period*100;
  381.         ps2_clk_i <= '0';
  382.         ps2_data_i <= '1';                                              -- 1        dane
  383.         wait for clk_i_period*100;
  384.         ps2_clk_i <= '1';
  385.         wait for clk_i_period*100;
  386.         ps2_clk_i <= '0';
  387.         ps2_data_i <= '1';                                              -- 1        parity
  388.         wait for clk_i_period*100;
  389.         ps2_clk_i <= '1';
  390.         wait for clk_i_period*100;
  391.         ps2_clk_i <= '0';
  392.         ps2_data_i <= '1';                                              -- 1        stop
  393.         wait for clk_i_period*100;
  394.         ps2_clk_i <= '1';
  395.         wait for clk_i_period*100;
  396.         ps2_clk_i <= '0';
  397.         ps2_data_i <= '0';                                              -- 0        start                       Brejkowy powrót trzymanej litery
  398.         wait for clk_i_period*100;
  399.         ps2_clk_i <= '1';
  400.         wait for clk_i_period*100;
  401.         ps2_clk_i <= '0';
  402.         ps2_data_i <= '0';                                              -- 0        dane
  403.         wait for clk_i_period*100;
  404.         ps2_clk_i <= '1';
  405.         wait for clk_i_period*100;
  406.         ps2_clk_i <= '0';
  407.         ps2_data_i <= '0';                                              -- 0        dane
  408.         wait for clk_i_period*100;
  409.         ps2_clk_i <= '1';
  410.         wait for clk_i_period*100;
  411.         ps2_clk_i <= '0';
  412.         ps2_data_i <= '1';                                              -- 1        dane
  413.         wait for clk_i_period*100;
  414.         ps2_clk_i <= '1';
  415.         wait for clk_i_period*100;
  416.         ps2_clk_i <= '0';
  417.         ps2_data_i <= '0';                                              -- 0        dane
  418.         wait for clk_i_period*100;
  419.         ps2_clk_i <= '1';
  420.         wait for clk_i_period*100;
  421.         ps2_clk_i <= '0';
  422.         ps2_data_i <= '0';                                              -- 0        dane
  423.         wait for clk_i_period*100;
  424.         ps2_clk_i <= '1';
  425.         wait for clk_i_period*100;
  426.         ps2_clk_i <= '0';
  427.         ps2_data_i <= '1';                                              -- 1        dane
  428.         wait for clk_i_period*100;
  429.         ps2_clk_i <= '1';
  430.         wait for clk_i_period*100;
  431.         ps2_clk_i <= '0';
  432.         ps2_data_i <= '0';                                              -- 0        dane
  433.         wait for clk_i_period*100;
  434.         ps2_clk_i <= '1';
  435.         wait for clk_i_period*100;
  436.         ps2_clk_i <= '0';
  437.         ps2_data_i <= '0';                                              -- 0        dane
  438.         wait for clk_i_period*100;
  439.         ps2_clk_i <= '1';
  440.         wait for clk_i_period*100;
  441.         ps2_clk_i <= '0';
  442.         ps2_data_i <= '1';                                              -- 1        parity
  443.         wait for clk_i_period*100;
  444.         ps2_clk_i <= '1';
  445.         wait for clk_i_period*100;
  446.         ps2_clk_i <= '0';
  447.         ps2_data_i <= '1';                                              -- 1        stop
  448.         wait for 300 ns;                                                    -- Poczekajmy chwilę (nic nie jest wciśnięte)
  449.         ps2_clk_i <= '1';
  450.         wait for clk_i_period*100;
  451.         ps2_clk_i <= '0';
  452.         ps2_data_i <= '0';                                              -- 0        start                       3. litera
  453.         wait for clk_i_period*100;
  454.         ps2_clk_i <= '1';
  455.         wait for clk_i_period*100;
  456.         ps2_clk_i <= '0';
  457.         ps2_data_i <= '0';                                              -- 0        dane
  458.         wait for clk_i_period*100;
  459.         ps2_clk_i <= '1';
  460.         wait for clk_i_period*100;
  461.         ps2_clk_i <= '0';
  462.         ps2_data_i <= '0';                                              -- 0        dane
  463.         wait for clk_i_period*100;
  464.         ps2_clk_i <= '1';
  465.         wait for clk_i_period*100;
  466.         ps2_clk_i <= '0';
  467.         ps2_data_i <= '1';                                              -- 1        dane
  468.         wait for clk_i_period*100;
  469.         ps2_clk_i <= '1';
  470.         wait for clk_i_period*100;
  471.         ps2_clk_i <= '0';
  472.         ps2_data_i <= '1';                                              -- 1        dane
  473.         wait for clk_i_period*100;
  474.         ps2_clk_i <= '1';
  475.         wait for clk_i_period*100;
  476.         ps2_clk_i <= '0';
  477.         ps2_data_i <= '1';                                              -- 1        dane
  478.         wait for clk_i_period*100;
  479.         ps2_clk_i <= '1';
  480.         wait for clk_i_period*100;
  481.         ps2_clk_i <= '0';
  482.         ps2_data_i <= '0';                                              -- 0        dane
  483.         wait for clk_i_period*100;
  484.         ps2_clk_i <= '1';
  485.         wait for clk_i_period*100;
  486.         ps2_clk_i <= '0';
  487.         ps2_data_i <= '0';                                              -- 0        dane
  488.         wait for clk_i_period*100;
  489.         ps2_clk_i <= '1';
  490.         wait for clk_i_period*100;
  491.         ps2_clk_i <= '0';
  492.         ps2_data_i <= '0';                                              -- 0        dane
  493.         wait for clk_i_period*100;
  494.         ps2_clk_i <= '1';
  495.         wait for clk_i_period*100;
  496.         ps2_clk_i <= '0';
  497.         ps2_data_i <= '0';                                              -- 0        parity
  498.         wait for clk_i_period*100;
  499.         ps2_clk_i <= '1';
  500.         wait for clk_i_period*100;
  501.         ps2_clk_i <= '0';
  502.         ps2_data_i <= '1';                                              -- 1        stop       
  503.       wait;
  504.    end process;
  505.  
  506. END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement