Advertisement
Vedro

klawtest2

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