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

Subversion Repositories light8080

[/] [light8080/] [trunk/] [vhdl/] [test/] [light8080_tb0.vhdl] - Blame information for rev 12

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

Line No. Rev Author Line
1 2 ja_rd
--------------------------------------------------------------------------------
2
-- Light8080 simulation test bench 0 : Kelly Smith test
3
--------------------------------------------------------------------------------
4
-- This test executes the 'Kelly Smith test' which tests most instructions
5 12 ja_rd
-- and flags. At the end of the test, A will contain 0x33 on success or 0x0aa
6 2 ja_rd
-- on failure, and the cpu will halt.
7
-- Interrupts and i/o instructions are not tested.
8
--------------------------------------------------------------------------------
9
 
10
LIBRARY ieee;
11
USE ieee.std_logic_1164.ALL;
12
USE ieee.std_logic_unsigned.all;
13
USE ieee.numeric_std.ALL;
14
 
15
ENTITY light8080_tb0 IS
16
END light8080_tb0;
17
 
18
ARCHITECTURE behavior OF light8080_tb0 IS
19
 
20
--------------------------------------------------------------------------------
21
-- Simulation parameters
22
 
23
-- sim_length: total simulation time
24
constant sim_length : time := 700000 ns;
25
 
26
-- T: simulation clock period
27
constant T : time := 100 ns;
28
 
29
--------------------------------------------------------------------------------
30
 
31
        -- Component Declaration for the Unit Under Test (UUT)
32
        COMPONENT light8080
33
    PORT (
34
            addr_out :  out std_logic_vector(15 downto 0);
35
 
36
            inta :      out std_logic;
37
            inte :      out std_logic;
38
            halt :      out std_logic;
39
            intr :      in std_logic;
40
 
41
            vma :       out std_logic;
42
            io :        out std_logic;
43
            rd :        out std_logic;
44
            wr :        out std_logic;
45
            data_in :   in std_logic_vector(7 downto 0);
46
            data_out :  out std_logic_vector(7 downto 0);
47
 
48
            clk :       in std_logic;
49
            reset :     in std_logic );
50
        END COMPONENT;
51
 
52
        --Inputs
53
        SIGNAL intr_o :  std_logic := '0';
54
        SIGNAL data_i :  std_logic_vector(7 downto 0) := (others=>'0');
55
 
56
        --Outputs
57
        SIGNAL vma_o  :  std_logic;
58
        SIGNAL rd_o  :  std_logic;
59
        SIGNAL wr_o  :  std_logic;
60
        SIGNAL io_o  :  std_logic;
61
  SIGNAL data_o :  std_logic_vector(7 downto 0);
62
        SIGNAL addr_o :  std_logic_vector(15 downto 0);
63
 
64
signal inta_o : std_logic;
65
signal inte_o : std_logic;
66
signal intr_i : std_logic := '0';
67
signal halt_o : std_logic;
68
 
69
signal reset    : std_logic := '0';
70
signal clk      : std_logic := '1';
71
signal done     : std_logic := '0';
72
 
73
type t_rom is array(0 to 2047) of std_logic_vector(7 downto 0);
74
 
75
signal rom : t_rom := (
76 12 ja_rd
X"31",X"ef",X"05",X"3e",X"77",X"e6",X"00",X"ca",
77 2 ja_rd
X"0d",X"00",X"cd",X"e0",X"04",X"d2",X"13",X"00",
78
X"cd",X"e0",X"04",X"ea",X"19",X"00",X"cd",X"e0",
79
X"04",X"f2",X"1f",X"00",X"cd",X"e0",X"04",X"c2",
80
X"2e",X"00",X"da",X"2e",X"00",X"e2",X"2e",X"00",
81
X"fa",X"2e",X"00",X"c3",X"31",X"00",X"cd",X"e0",
82
X"04",X"c6",X"06",X"c2",X"39",X"00",X"cd",X"e0",
83
X"04",X"da",X"42",X"00",X"e2",X"42",X"00",X"f2",
84
X"45",X"00",X"cd",X"e0",X"04",X"c6",X"70",X"e2",
85
X"4d",X"00",X"cd",X"e0",X"04",X"fa",X"56",X"00",
86
X"ca",X"56",X"00",X"d2",X"59",X"00",X"cd",X"e0",
87
X"04",X"c6",X"81",X"fa",X"61",X"00",X"cd",X"e0",
88
X"04",X"ca",X"6a",X"00",X"da",X"6a",X"00",X"e2",
89
X"6d",X"00",X"cd",X"e0",X"04",X"c6",X"fe",X"da",
90
X"75",X"00",X"cd",X"e0",X"04",X"ca",X"7e",X"00",
91
X"e2",X"7e",X"00",X"fa",X"81",X"00",X"cd",X"e0",
92
X"04",X"fe",X"00",X"da",X"99",X"00",X"ca",X"99",
93
X"00",X"fe",X"f5",X"da",X"99",X"00",X"c2",X"99",
94
X"00",X"fe",X"ff",X"ca",X"99",X"00",X"da",X"9c",
95
X"00",X"cd",X"e0",X"04",X"ce",X"0a",X"ce",X"0a",
96
X"fe",X"0b",X"ca",X"a8",X"00",X"cd",X"e0",X"04",
97
X"d6",X"0c",X"d6",X"0f",X"fe",X"f0",X"ca",X"b4",
98
X"00",X"cd",X"e0",X"04",X"de",X"f1",X"de",X"0e",
99
X"fe",X"f0",X"ca",X"c0",X"00",X"cd",X"e0",X"04",
100
X"e6",X"55",X"fe",X"50",X"ca",X"ca",X"00",X"cd",
101
X"e0",X"04",X"f6",X"3a",X"fe",X"7a",X"ca",X"d4",
102
X"00",X"cd",X"e0",X"04",X"ee",X"0f",X"fe",X"75",
103
X"ca",X"de",X"00",X"cd",X"e0",X"04",X"e6",X"00",
104
X"dc",X"e0",X"04",X"e4",X"e0",X"04",X"fc",X"e0",
105
X"04",X"c4",X"e0",X"04",X"fe",X"00",X"ca",X"f4",
106
X"00",X"cd",X"e0",X"04",X"d6",X"77",X"d4",X"e0",
107
X"04",X"ec",X"e0",X"04",X"f4",X"e0",X"04",X"cc",
108
X"e0",X"04",X"fe",X"89",X"ca",X"0a",X"01",X"cd",
109
X"e0",X"04",X"e6",X"ff",X"e4",X"17",X"01",X"fe",
110
X"d9",X"ca",X"74",X"01",X"cd",X"e0",X"04",X"e8",
111
X"c6",X"10",X"ec",X"23",X"01",X"c6",X"02",X"e0",
112
X"cd",X"e0",X"04",X"e0",X"c6",X"20",X"fc",X"2f",
113
X"01",X"c6",X"04",X"e8",X"cd",X"e0",X"04",X"f0",
114
X"c6",X"80",X"f4",X"3b",X"01",X"c6",X"80",X"f8",
115
X"cd",X"e0",X"04",X"f8",X"c6",X"40",X"d4",X"47",
116
X"01",X"c6",X"40",X"f0",X"cd",X"e0",X"04",X"d8",
117
X"c6",X"8f",X"dc",X"53",X"01",X"d6",X"02",X"d0",
118
X"cd",X"e0",X"04",X"d0",X"c6",X"f7",X"c4",X"5f",
119
X"01",X"c6",X"fe",X"d8",X"cd",X"e0",X"04",X"c8",
120
X"c6",X"01",X"cc",X"6b",X"01",X"c6",X"d0",X"c0",
121
X"cd",X"e0",X"04",X"c0",X"c6",X"47",X"fe",X"47",
122
X"c8",X"cd",X"e0",X"04",X"3e",X"77",X"3c",X"47",
123
X"04",X"48",X"0d",X"51",X"5a",X"63",X"6c",X"7d",
124
X"3d",X"4f",X"59",X"6b",X"45",X"50",X"62",X"7c",
125
X"57",X"14",X"6a",X"4d",X"0c",X"61",X"44",X"05",
126
X"58",X"7b",X"5f",X"1c",X"43",X"60",X"24",X"4c",
127
X"69",X"55",X"15",X"7a",X"67",X"25",X"54",X"42",
128
X"68",X"2c",X"5d",X"1d",X"4b",X"79",X"6f",X"2d",
129
X"65",X"5c",X"53",X"4a",X"41",X"78",X"fe",X"77",
130
X"c4",X"e0",X"04",X"af",X"06",X"01",X"0e",X"03",
131
X"16",X"07",X"1e",X"0f",X"26",X"1f",X"2e",X"3f",
132
X"80",X"81",X"82",X"83",X"84",X"85",X"87",X"fe",
133
X"f0",X"c4",X"e0",X"04",X"90",X"91",X"92",X"93",
134
X"94",X"95",X"fe",X"78",X"c4",X"e0",X"04",X"97",
135
X"c4",X"e0",X"04",X"3e",X"80",X"87",X"06",X"01",
136
X"0e",X"02",X"16",X"03",X"1e",X"04",X"26",X"05",
137
X"2e",X"06",X"88",X"06",X"80",X"80",X"80",X"89",
138
X"80",X"80",X"8a",X"80",X"80",X"8b",X"80",X"80",
139
X"8c",X"80",X"80",X"8d",X"80",X"80",X"8f",X"fe",
140
X"37",X"c4",X"e0",X"04",X"3e",X"80",X"87",X"06",
141
X"01",X"98",X"06",X"ff",X"80",X"99",X"80",X"9a",
142
X"80",X"9b",X"80",X"9c",X"80",X"9d",X"fe",X"e0",
143
X"c4",X"e0",X"04",X"3e",X"80",X"87",X"9f",X"fe",
144
X"ff",X"c4",X"e0",X"04",X"3e",X"ff",X"06",X"fe",
145
X"0e",X"fc",X"16",X"ef",X"1e",X"7f",X"26",X"f4",
146
X"2e",X"bf",X"a7",X"a1",X"a2",X"a3",X"a4",X"a5",
147
X"a7",X"fe",X"24",X"c4",X"e0",X"04",X"af",X"06",
148
X"01",X"0e",X"02",X"16",X"04",X"1e",X"08",X"26",
149
X"10",X"2e",X"20",X"b0",X"b1",X"b2",X"b3",X"b4",
150
X"b5",X"b7",X"fe",X"3f",X"c4",X"e0",X"04",X"3e",
151
X"00",X"26",X"8f",X"2e",X"4f",X"a8",X"a9",X"aa",
152
X"ab",X"ac",X"ad",X"fe",X"cf",X"c4",X"e0",X"04",
153
X"af",X"c4",X"e0",X"04",X"06",X"44",X"0e",X"45",
154 12 ja_rd
X"16",X"46",X"1e",X"47",X"26",X"04",X"2e",X"e8",
155 2 ja_rd
X"70",X"06",X"00",X"46",X"3e",X"44",X"b8",X"c4",
156
X"e0",X"04",X"72",X"16",X"00",X"56",X"3e",X"46",
157
X"ba",X"c4",X"e0",X"04",X"73",X"1e",X"00",X"5e",
158
X"3e",X"47",X"bb",X"c4",X"e0",X"04",X"74",X"26",
159 12 ja_rd
X"04",X"2e",X"e8",X"66",X"3e",X"04",X"bc",X"c4",
160
X"e0",X"04",X"75",X"26",X"04",X"2e",X"e8",X"6e",
161
X"3e",X"e8",X"bd",X"c4",X"e0",X"04",X"26",X"04",
162
X"2e",X"e8",X"3e",X"32",X"77",X"be",X"c4",X"e0",
163 2 ja_rd
X"04",X"86",X"fe",X"64",X"c4",X"e0",X"04",X"af",
164
X"7e",X"fe",X"32",X"c4",X"e0",X"04",X"26",X"04",
165 12 ja_rd
X"2e",X"e8",X"7e",X"96",X"c4",X"e0",X"04",X"3e",
166 2 ja_rd
X"80",X"87",X"8e",X"fe",X"33",X"c4",X"e0",X"04",
167
X"3e",X"80",X"87",X"9e",X"fe",X"cd",X"c4",X"e0",
168
X"04",X"a6",X"c4",X"e0",X"04",X"3e",X"25",X"b6",
169
X"fe",X"37",X"c4",X"e0",X"04",X"ae",X"fe",X"05",
170
X"c4",X"e0",X"04",X"36",X"55",X"34",X"35",X"86",
171
X"fe",X"5a",X"c4",X"e0",X"04",X"01",X"ff",X"12",
172
X"11",X"ff",X"12",X"21",X"ff",X"12",X"03",X"13",
173
X"23",X"3e",X"13",X"b8",X"c4",X"e0",X"04",X"ba",
174
X"c4",X"e0",X"04",X"bc",X"c4",X"e0",X"04",X"3e",
175
X"00",X"b9",X"c4",X"e0",X"04",X"bb",X"c4",X"e0",
176
X"04",X"bd",X"c4",X"e0",X"04",X"0b",X"1b",X"2b",
177
X"3e",X"12",X"b8",X"c4",X"e0",X"04",X"ba",X"c4",
178
X"e0",X"04",X"bc",X"c4",X"e0",X"04",X"3e",X"ff",
179
X"b9",X"c4",X"e0",X"04",X"bb",X"c4",X"e0",X"04",
180 12 ja_rd
X"bd",X"c4",X"e0",X"04",X"32",X"e8",X"04",X"af",
181
X"3a",X"e8",X"04",X"fe",X"ff",X"c4",X"e0",X"04",
182
X"2a",X"e6",X"04",X"22",X"e8",X"04",X"3a",X"e6",
183
X"04",X"47",X"3a",X"e8",X"04",X"b8",X"c4",X"e0",
184
X"04",X"3a",X"e7",X"04",X"47",X"3a",X"e9",X"04",
185
X"b8",X"c4",X"e0",X"04",X"3e",X"aa",X"32",X"e8",
186 2 ja_rd
X"04",X"44",X"4d",X"af",X"0a",X"fe",X"aa",X"c4",
187 12 ja_rd
X"e0",X"04",X"3c",X"02",X"3a",X"e8",X"04",X"fe",
188
X"ab",X"c4",X"e0",X"04",X"3e",X"77",X"32",X"e8",
189
X"04",X"2a",X"e6",X"04",X"11",X"00",X"00",X"eb",
190 2 ja_rd
X"af",X"1a",X"fe",X"77",X"c4",X"e0",X"04",X"af",
191
X"84",X"85",X"c4",X"e0",X"04",X"3e",X"cc",X"12",
192 12 ja_rd
X"3a",X"e8",X"04",X"fe",X"cc",X"12",X"3a",X"e8",
193 2 ja_rd
X"04",X"fe",X"cc",X"c4",X"e0",X"04",X"21",X"77",
194
X"77",X"29",X"3e",X"ee",X"bc",X"c4",X"e0",X"04",
195
X"bd",X"c4",X"e0",X"04",X"21",X"55",X"55",X"01",
196
X"ff",X"ff",X"09",X"3e",X"55",X"d4",X"e0",X"04",
197
X"bc",X"c4",X"e0",X"04",X"3e",X"54",X"bd",X"c4",
198
X"e0",X"04",X"21",X"aa",X"aa",X"11",X"33",X"33",
199
X"19",X"3e",X"dd",X"bc",X"c4",X"e0",X"04",X"bd",
200
X"c4",X"e0",X"04",X"37",X"d4",X"e0",X"04",X"3f",
201
X"dc",X"e0",X"04",X"3e",X"aa",X"2f",X"fe",X"55",
202
X"c4",X"e0",X"04",X"b7",X"27",X"fe",X"55",X"c4",
203
X"e0",X"04",X"3e",X"88",X"87",X"27",X"fe",X"76",
204
X"c4",X"e0",X"04",X"af",X"3e",X"aa",X"27",X"d4",
205
X"e0",X"04",X"fe",X"10",X"c4",X"e0",X"04",X"af",
206
X"3e",X"9a",X"27",X"d4",X"e0",X"04",X"c4",X"e0",
207
X"04",X"37",X"3e",X"42",X"07",X"dc",X"e0",X"04",
208
X"07",X"d4",X"e0",X"04",X"fe",X"09",X"c4",X"e0",
209
X"04",X"0f",X"d4",X"e0",X"04",X"0f",X"fe",X"42",
210
X"c4",X"e0",X"04",X"17",X"17",X"d4",X"e0",X"04",
211
X"fe",X"08",X"c4",X"e0",X"04",X"1f",X"1f",X"dc",
212
X"e0",X"04",X"fe",X"02",X"c4",X"e0",X"04",X"01",
213
X"34",X"12",X"11",X"aa",X"aa",X"21",X"55",X"55",
214
X"af",X"c5",X"d5",X"e5",X"f5",X"01",X"00",X"00",
215
X"11",X"00",X"00",X"21",X"00",X"00",X"3e",X"c0",
216
X"c6",X"f0",X"f1",X"e1",X"d1",X"c1",X"dc",X"e0",
217
X"04",X"c4",X"e0",X"04",X"e4",X"e0",X"04",X"fc",
218
X"e0",X"04",X"3e",X"12",X"b8",X"c4",X"e0",X"04",
219
X"3e",X"34",X"b9",X"c4",X"e0",X"04",X"3e",X"aa",
220
X"ba",X"c4",X"e0",X"04",X"bb",X"c4",X"e0",X"04",
221
X"3e",X"55",X"bc",X"c4",X"e0",X"04",X"bd",X"c4",
222 12 ja_rd
X"e0",X"04",X"21",X"00",X"00",X"39",X"22",X"ed",
223
X"04",X"31",X"ec",X"04",X"3b",X"3b",X"33",X"3b",
224
X"3e",X"55",X"32",X"ea",X"04",X"2f",X"32",X"eb",
225 2 ja_rd
X"04",X"c1",X"b8",X"c4",X"e0",X"04",X"2f",X"b9",
226 12 ja_rd
X"c4",X"e0",X"04",X"21",X"ec",X"04",X"f9",X"21",
227
X"33",X"77",X"3b",X"3b",X"e3",X"3a",X"eb",X"04",
228
X"fe",X"77",X"c4",X"e0",X"04",X"3a",X"ea",X"04",
229 2 ja_rd
X"fe",X"33",X"c4",X"e0",X"04",X"3e",X"55",X"bd",
230
X"c4",X"e0",X"04",X"2f",X"bc",X"c4",X"e0",X"04",
231 12 ja_rd
X"2a",X"ed",X"04",X"f9",X"21",X"e3",X"04",X"e9",
232
X"3e",X"aa",X"76",X"3e",X"33",X"76",X"e8",X"04",
233 2 ja_rd
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
234
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
235
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
236
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
237
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
238
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
239
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
240
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
241
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
242
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
243
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
244
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
245
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
246
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
247
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
248
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
249
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
250
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
251
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
252
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
253
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
254
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
255
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
256
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
257
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
258
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
259
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
260
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
261
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
262
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
263
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
264
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
265
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
266
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
267
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
268
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
269
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
270
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
271
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
272
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
273
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
274
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
275
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
276
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
277
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
278
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
279
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
280
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
281
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
282
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
283 12 ja_rd
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
284 2 ja_rd
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
285
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
286
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
287
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
288
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
289
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
290
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
291
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
292
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
293
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
294
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
295
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
296
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
297
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
298
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
299
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
300
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
301
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
302
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
303
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
304
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
305
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
306
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
307
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
308
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
309
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
310
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
311
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
312
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
313
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
314
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
315
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
316
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
317
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
318
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
319
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
320
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
321
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
322
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
323
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
324
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
325
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
326
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
327
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
328
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
329
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
330
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
331
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00"
332
 
333
);
334
 
335
 
336
BEGIN
337
 
338
        -- Instantiate the Unit Under Test (UUT)
339
        uut: light8080 PORT MAP(
340
                clk => clk,
341
                reset => reset,
342
                vma => vma_o,
343
                rd => rd_o,
344
                wr => wr_o,
345
                io => io_o,
346
                addr_out => addr_o,
347
                data_in => data_i,
348
                data_out => data_o,
349
 
350
                intr => intr_i,
351
                inte => inte_o,
352
                inta => inta_o,
353
                halt => halt_o
354
        );
355
 
356
 
357
  ---------------------------------------------------------------------------
358
        -- clock: Clocking process.
359
        clock:
360
        process(done, clk)
361
        begin
362
                if done = '0' then
363
                        clk <= not clk after T/2;
364
                end if;
365
        end process clock;
366
 
367
 
368
  main_test:
369
        process
370
        begin
371
                -- Assert reset for at least one full clk period
372
                reset <= '1';
373
                wait until clk = '1';
374
                wait for T/2;
375
                reset <= '0';
376
 
377
                -- Remember to 'cut away' the preceding 3 clk semiperiods from 
378
                -- the wait statement...
379
                wait for (sim_length - T*1.5);
380
 
381
                -- Stop the clk process asserting 'done'
382
                done <= '1';
383
                wait;
384
        end process main_test;
385
 
386
 
387
  process(clk)
388
  begin
389
    if (clk'event and clk='1') then
390
      data_i <= rom(conv_integer(addr_o(10 downto 0)));
391
      if wr_o = '1' then
392
        rom(conv_integer(addr_o(10 downto 0))) <= data_o;
393
      end if;
394
    end if;
395
  end process;
396
 
397
 
398
END;

powered by: WebSVN 2.1.0

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