OpenCores
URL https://opencores.org/ocsvn/ax8/ax8/trunk

Subversion Repositories ax8

[/] [ax8/] [trunk/] [bench/] [vhdl/] [TestBench2313.vhd] - Blame information for rev 31

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 6 jesus
library IEEE;
2
use IEEE.std_logic_1164.all;
3
use IEEE.numeric_std.all;
4
use work.StimLog.all;
5
 
6
entity TestBench2313 is
7
end TestBench2313;
8
 
9
architecture behaviour of TestBench2313 is
10
 
11
        signal  Clk             : std_logic := '0';
12
        signal  Reset_n : std_logic := '0';
13
        signal  RXD             : std_logic;
14
        signal  TXD             : std_logic;
15
        signal  OC              : std_logic;
16
        signal  Port_B  : std_logic_vector(7 downto 0);
17
        signal  Port_D  : std_logic_vector(7 downto 0);
18
 
19
        signal  KeyboardClk             : std_logic;
20
        signal  KeyboardData    : unsigned(7 downto 0);
21
 
22
begin
23
 
24
        p1 : entity work.A90S2313 port map(Clk, Reset_n, KeyboardClk, '1', '1', '1', '1', RXD, TXD, OC, Port_B, Port_D);
25
 
26 17 jesus
        as : AsyncStim generic map(FileName => "../../../rtl/vhdl/AX8.vhd", InterCharDelay => 0 us, Baud => 57600, Bits => 8)
27 6 jesus
                                port map(RXD);
28
 
29
        al : AsyncLog generic map(FileName => "RX_Log.txt", Baud => 57600, Bits => 8)
30
                                port map(TXD);
31
 
32
        Clk <= not Clk after 50 ns;
33
        Reset_n <= '1' after 200 ns;
34
 
35
        -- Generate AT keyboard signals
36
        process
37
        begin
38
                Port_D(3) <= '1';
39
                KeyboardClk <= '1';
40
                KeyboardData <= "00000110";
41
                loop
42
                        wait for 400 us;
43
                        for i in 0 to 10 loop
44
                                if i = 0 then
45
                                        Port_D(3) <= '0';
46
                                elsif i = 9 then
47
                                        Port_D(3) <= not KeyboardData(0) xor
48
                                                                KeyboardData(1) xor
49
                                                                KeyboardData(2) xor
50
                                                                KeyboardData(3) xor
51
                                                                KeyboardData(4) xor
52
                                                                KeyboardData(5) xor
53
                                                                KeyboardData(6) xor
54
                                                                KeyboardData(7);
55
                                elsif i = 10 then
56
                                        Port_D(3) <= '1';
57
                                else
58
                                        Port_D(3) <= KeyboardData(i - 1);
59
                                end if;
60
                                wait for 20 us;
61
                                KeyboardClk <= '0';
62
                                wait for 20 us;
63
                                KeyboardClk <= '1';
64
                        end loop;
65
                        KeyboardData <= KeyboardData + 1;
66
                end loop;
67
        end process;
68
 
69
end;

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.