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

Subversion Repositories wb_vga

[/] [wb_vga/] [trunk/] [TestBench/] [palette_TB.vhd] - Blame information for rev 4

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 4 tantos
library ieee,wb_tk,wb_vga;
2
use ieee.NUMERIC_STD.all;
3
use ieee.std_logic_1164.all;
4
use wb_tk.technology.all;
5
use wb_tk.wb_test.all;
6
use wb_tk.all;
7
use wb_vga.all;
8
 
9
entity wb_pal_ram_tb is
10
        generic(
11
                cpu_dat_width: positive := 32;
12
                cpu_adr_width: positive := 8;
13
                v_dat_width: positive := 16;
14
                v_adr_width: positive := 8
15
    );
16
end wb_pal_ram_tb;
17
 
18
architecture TB of wb_pal_ram_tb is
19
        component wb_pal_ram
20
        generic (
21
                cpu_dat_width: positive := cpu_dat_width;
22
                cpu_adr_width: positive := cpu_adr_width;
23
                v_dat_width: positive := v_dat_width;
24
                v_adr_width: positive := v_adr_width
25
        );
26
        port (
27
    -- Wishbone interface to CPU (write-only support)
28
                clk_i: in std_logic;
29
                rst_i: in std_logic := '0';
30
                adr_i: in std_logic_vector (cpu_adr_width-1 downto 0);
31
    --          sel_i: in std_logic_vector ((cpu_dat_width/8)-1 downto 0) := (others => '1');
32
                dat_i: in std_logic_vector (cpu_dat_width-1 downto 0);
33
                dat_oi: in std_logic_vector (cpu_dat_width-1 downto 0) := (others => '-');
34
                dat_o: out std_logic_vector (cpu_dat_width-1 downto 0);
35
                cyc_i: in std_logic;
36
                ack_o: out std_logic;
37
                ack_oi: in std_logic := '-';
38
                err_o: out std_logic;
39
                err_oi: in std_logic := '-';
40
    --          rty_o: out std_logic;
41
    --          rty_oi: in std_logic := '-';
42
                we_i: in std_logic;
43
                stb_i: in std_logic;
44
    -- Interface to the video output
45
            blank: in std_logic;
46
            v_dat_i: in std_logic_vector(v_adr_width-1 downto 0);
47
            v_dat_o: out std_logic_vector(v_dat_width-1 downto 0)
48
        );
49
        end component;
50
 
51
-- Wishbone interface to CPU (write-only support)
52
        signal clk_i: std_logic;
53
        signal rst_i: std_logic := '0';
54
        signal adr_i: std_logic_vector (cpu_adr_width-1 downto 0);
55
        signal dat_i: std_logic_vector (cpu_dat_width-1 downto 0);
56
        signal dat_oi: std_logic_vector (cpu_dat_width-1 downto 0) := (others => '-');
57
        signal dat_o: std_logic_vector (cpu_dat_width-1 downto 0);
58
        signal cyc_i: std_logic;
59
        signal ack_o: std_logic;
60
        signal ack_oi: std_logic := '-';
61
        signal err_o: std_logic;
62
        signal err_oi: std_logic := '-';
63
        signal we_i: std_logic;
64
        signal stb_i: std_logic;
65
-- Interface to the video output
66
    signal blank: std_logic;
67
    signal v_dat_i: std_logic_vector(v_adr_width-1 downto 0);
68
    signal v_dat_o: std_logic_vector(v_dat_width-1 downto 0);
69
begin
70
 
71
        -- Unit Under Test port map
72
        UUT : wb_pal_ram
73
                port map (
74
                clk_i => clk_i,
75
                rst_i => rst_i,
76
                adr_i => adr_i,
77
                dat_i => dat_i,
78
                dat_oi => dat_oi,
79
                dat_o => dat_o,
80
                cyc_i => cyc_i,
81
                ack_o => ack_o,
82
                ack_oi => ack_oi,
83
                err_o => err_o,
84
                err_oi => err_oi,
85
                we_i => we_i,
86
                stb_i => stb_i,
87
 
88
            blank => blank,
89
            v_dat_i => v_dat_i,
90
            v_dat_o => v_dat_o
91
        );
92
 
93
        clk: process is
94
        begin
95
                clk_i <= '0';
96
                wait for 25ns;
97
                clk_i <= '1';
98
                wait for 25ns;
99
        end process;
100
 
101
        reset: process is
102
        begin
103
                rst_i <= '1';
104
                wait for 150ns;
105
                rst_i <= '0';
106
                wait;
107
        end process;
108
 
109
        gen_v_output: process is
110
            variable addr: std_logic_vector(v_adr_width-1 downto 0) := (others => '0');
111
        begin
112
            blank <= '0';
113
            wait until clk_i'EVENT and clk_i = '1';
114
            v_dat_i <= addr;
115
--          if (addr = "1111") then
116
--              blank <= '1';
117
--                  wait until clk_i'EVENT and clk_i = '1';
118
--          addr := (v_adr_width'RANGE => '0');
119
--          else
120
                addr := add_one(addr);
121
--          end if;
122
    end process;
123
 
124
        dat_oi <= (others => 'U');
125
        ack_oi <= 'U';
126
        err_oi <= 'U';
127
 
128
        master: process is
129
                variable i: integer := 0;
130
            variable addr: std_logic_vector(cpu_adr_width-1 downto 0) := (others => '0');
131
            variable data: std_logic_vector(cpu_dat_width-1 downto 0) := (others => '0');
132
        begin
133
                we_i <= '0';
134
                cyc_i <= '0';
135
                stb_i <= '0';
136
                adr_i <= (others => '0');
137
                dat_i <= (others => '0');
138
                wait until clk_i'EVENT and clk_i = '1';
139
                wait until clk_i'EVENT and clk_i = '1';
140
                wait until clk_i'EVENT and clk_i = '1';
141
                wait until clk_i'EVENT and clk_i = '1';
142
                wait until clk_i'EVENT and clk_i = '1';
143
                wait until clk_i'EVENT and clk_i = '1';
144
                wait until clk_i'EVENT and clk_i = '1';
145
 
146
        for i in 0 to 511 loop
147
                    wr_val(clk_i, adr_i,dat_o,dat_i,we_i,cyc_i,stb_i,ack_o,addr,data);
148
                    addr := add_one(addr);
149
                    data := add_one(data);
150
                end loop;
151
                wait;
152
        end process;
153
 
154
end TB;
155
 
156
configuration TB_wb_pal_ram of wb_pal_ram_tb is
157
        for TB
158
                for UUT : wb_pal_ram
159
                        use entity wb_vga.wb_pal_ram(wb_pal_ram);
160
                end for;
161
        end for;
162
end TB_wb_pal_ram;
163
 

powered by: WebSVN 2.1.0

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