1 |
21 |
qaztronic |
// --------------------------------------------------------------------
|
2 |
|
|
//
|
3 |
|
|
// --------------------------------------------------------------------
|
4 |
|
|
|
5 |
|
|
|
6 |
|
|
`include "timescale.v"
|
7 |
|
|
|
8 |
|
|
|
9 |
|
|
module tb_dut(
|
10 |
|
|
input tb_clk,
|
11 |
|
|
input tb_rst
|
12 |
|
|
);
|
13 |
|
|
|
14 |
|
|
wire [3:0] boot_strap = 4'b0010;
|
15 |
|
|
|
16 |
|
|
|
17 |
|
|
// --------------------------------------------------------------------
|
18 |
|
|
// de1 wires
|
19 |
|
|
wire [1:0] clock_24;
|
20 |
|
|
wire [1:0] clock_27;
|
21 |
|
|
wire clock_50;
|
22 |
|
|
wire ext_clock;
|
23 |
|
|
wire [3:0] key;
|
24 |
|
|
wire [9:0] sw;
|
25 |
|
|
wire [6:0] hex0;
|
26 |
|
|
wire [6:0] hex1;
|
27 |
|
|
wire [6:0] hex2;
|
28 |
|
|
wire [6:0] hex3;
|
29 |
|
|
wire [7:0] ledg;
|
30 |
|
|
wire [9:0] ledr;
|
31 |
|
|
wire uart_txd;
|
32 |
|
|
wire uart_rxd;
|
33 |
|
|
wire [15:0] dram_dq;
|
34 |
|
|
wire [11:0] dram_addr;
|
35 |
|
|
wire dram_ldqm;
|
36 |
|
|
wire dram_udqm;
|
37 |
|
|
wire dram_we_n;
|
38 |
|
|
wire dram_cas_n;
|
39 |
|
|
wire dram_ras_n;
|
40 |
|
|
wire dram_cs_n;
|
41 |
|
|
wire dram_ba_0;
|
42 |
|
|
wire dram_ba_1;
|
43 |
|
|
wire dram_clk;
|
44 |
|
|
wire dram_cke;
|
45 |
|
|
wire [7:0] fl_dq;
|
46 |
|
|
wire [21:0] fl_addr;
|
47 |
|
|
wire fl_we_n;
|
48 |
|
|
wire fl_rst_n;
|
49 |
|
|
wire fl_oe_n;
|
50 |
|
|
wire fl_ce_n;
|
51 |
|
|
wire [15:0] sram_dq;
|
52 |
|
|
wire [17:0] sram_addr;
|
53 |
|
|
wire sram_ub_n;
|
54 |
|
|
wire sram_lb_n;
|
55 |
|
|
wire sram_we_n;
|
56 |
|
|
wire sram_ce_n;
|
57 |
|
|
wire sram_oe_n;
|
58 |
|
|
wire sd_dat;
|
59 |
|
|
wire sd_dat3;
|
60 |
|
|
wire sd_cmd;
|
61 |
|
|
wire sd_clk;
|
62 |
|
|
wire i2c_sdat;
|
63 |
|
|
wire i2c_sclk;
|
64 |
|
|
wire ps2_dat;
|
65 |
|
|
wire ps2_clk;
|
66 |
|
|
wire tdi;
|
67 |
|
|
wire tck;
|
68 |
|
|
wire tcs;
|
69 |
|
|
wire tdo;
|
70 |
|
|
wire vga_hs;
|
71 |
|
|
wire vga_vs;
|
72 |
|
|
wire [3:0] vga_r;
|
73 |
|
|
wire [3:0] vga_g;
|
74 |
|
|
wire [3:0] vga_b;
|
75 |
|
|
wire aud_adclrck;
|
76 |
|
|
wire aud_adcdat;
|
77 |
|
|
wire aud_daclrck;
|
78 |
|
|
wire aud_dacdat;
|
79 |
|
|
wire aud_bclk;
|
80 |
|
|
wire aud_xck;
|
81 |
|
|
wire [35:0] gpio_0;
|
82 |
|
|
wire [35:0] gpio_1;
|
83 |
|
|
|
84 |
|
|
|
85 |
|
|
// --------------------------------------------------------------------
|
86 |
|
|
// fpga top
|
87 |
|
|
assign clock_24 = {1'b0, tb_clk};
|
88 |
|
|
assign sw = {6'b000000, boot_strap};
|
89 |
|
|
assign key = {3'b000, ~tb_rst};
|
90 |
|
|
|
91 |
|
|
top
|
92 |
|
|
i_top(
|
93 |
|
|
//////////////////////// Clock Input ////////////////////////
|
94 |
|
|
.clock_24( clock_24 ), // 24 MHz
|
95 |
|
|
.clock_27(clock_27), // 27 MHz
|
96 |
|
|
.clock_50(clock_50), // 50 MHz
|
97 |
|
|
.ext_clock(ext_clock), // External Clock
|
98 |
|
|
//////////////////////// Push Button ////////////////////////
|
99 |
|
|
.key( key ), // Pushbutton[3:0]
|
100 |
|
|
//////////////////////// DPDT Switch ////////////////////////
|
101 |
|
|
.sw( sw ), // Toggle Switch[9:0]
|
102 |
|
|
//////////////////////// 7-SEG Dispaly ////////////////////////
|
103 |
|
|
.hex0(hex0), // Seven Segment Digit 0
|
104 |
|
|
.hex1(hex1), // Seven Segment Digit 1
|
105 |
|
|
.hex2(hex2), // Seven Segment Digit 2
|
106 |
|
|
.hex3(hex3), // Seven Segment Digit 3
|
107 |
|
|
//////////////////////////// LED ////////////////////////////
|
108 |
|
|
.ledg(ledg), // LED Green[7:0]
|
109 |
|
|
.ledr(ledr), // LED Red[9:0]
|
110 |
|
|
//////////////////////////// UART ////////////////////////////
|
111 |
|
|
.uart_txd(uart_txd), // UART Transmitter
|
112 |
|
|
.uart_rxd(uart_rxd), // UART Receiver
|
113 |
|
|
/////////////////////// SDRAM Interface ////////////////////////
|
114 |
|
|
.dram_dq(dram_dq), // SDRAM Data bus 16 Bits
|
115 |
|
|
.dram_addr(dram_addr), // SDRAM Address bus 12 Bits
|
116 |
|
|
.dram_ldqm(dram_ldqm), // SDRAM Low-byte Data Mask
|
117 |
|
|
.dram_udqm(dram_udqm), // SDRAM High-byte Data Mask
|
118 |
|
|
.dram_we_n(dram_we_n), // SDRAM Write Enable
|
119 |
|
|
.dram_cas_n(dram_cas_n), // SDRAM Column Address Strobe
|
120 |
|
|
.dram_ras_n(dram_ras_n), // SDRAM Row Address Strobe
|
121 |
|
|
.dram_cs_n(dram_cs_n), // SDRAM Chip Select
|
122 |
|
|
.dram_ba_0(dram_ba_0), // SDRAM Bank Address 0
|
123 |
|
|
.dram_ba_1(dram_ba_1), // SDRAM Bank Address 0
|
124 |
|
|
.dram_clk(dram_clk), // SDRAM Clock
|
125 |
|
|
.dram_cke(dram_cke), // SDRAM Clock Enable
|
126 |
|
|
//////////////////////// Flash Interface ////////////////////////
|
127 |
|
|
.fl_dq(fl_dq), // FLASH Data bus 8 Bits
|
128 |
|
|
.fl_addr(fl_addr), // FLASH Address bus 22 Bits
|
129 |
|
|
.fl_we_n(fl_we_n), // FLASH Write Enable
|
130 |
|
|
.fl_rst_n(fl_rst_n), // FLASH Reset
|
131 |
|
|
.fl_oe_n(fl_oe_n), // FLASH Output Enable
|
132 |
|
|
.fl_ce_n(fl_ce_n), // FLASH Chip Enable
|
133 |
|
|
//////////////////////// SRAM Interface ////////////////////////
|
134 |
|
|
.sram_dq(sram_dq), // SRAM Data bus 16 Bits
|
135 |
|
|
.sram_addr(sram_addr), // SRAM Address bus 18 Bits
|
136 |
|
|
.sram_ub_n(sram_ub_n), // SRAM High-byte Data Mask
|
137 |
|
|
.sram_lb_n(sram_lb_n), // SRAM Low-byte Data Mask
|
138 |
|
|
.sram_we_n(sram_we_n), // SRAM Write Enable
|
139 |
|
|
.sram_ce_n(sram_ce_n), // SRAM Chip Enable
|
140 |
|
|
.sram_oe_n(sram_oe_n), // SRAM Output Enable
|
141 |
|
|
//////////////////// SD Card Interface ////////////////////////
|
142 |
|
|
.sd_dat(sd_dat), // SD Card Data
|
143 |
|
|
.sd_dat3(sd_dat3), // SD Card Data 3
|
144 |
|
|
.sd_cmd(sd_cmd), // SD Card Command Signal
|
145 |
|
|
.sd_clk(sd_clk), // SD Card Clock
|
146 |
|
|
//////////////////////// I2C ////////////////////////////////
|
147 |
|
|
.i2c_sdat(i2c_sdat), // I2C Data
|
148 |
|
|
.i2c_sclk(i2c_sclk), // I2C Clock
|
149 |
|
|
//////////////////////// PS2 ////////////////////////////////
|
150 |
|
|
.ps2_dat(ps2_dat), // PS2 Data
|
151 |
|
|
.ps2_clk(ps2_clk), // PS2 Clock
|
152 |
|
|
//////////////////// USB JTAG link ////////////////////////////
|
153 |
|
|
.tdi(tdi), // CPLD -> FPGA (data in)
|
154 |
|
|
.tck(tck), // CPLD -> FPGA (clk)
|
155 |
|
|
.tcs(tcs), // CPLD -> FPGA (CS)
|
156 |
|
|
.tdo(tdo), // FPGA -> CPLD (data out)
|
157 |
|
|
//////////////////////// VGA ////////////////////////////
|
158 |
|
|
.vga_hs(vga_hs), // VGA H_SYNC
|
159 |
|
|
.vga_vs(vga_vs), // VGA V_SYNC
|
160 |
|
|
.vga_r(vga_r), // VGA Red[3:0]
|
161 |
|
|
.vga_g(vga_g), // VGA Green[3:0]
|
162 |
|
|
.vga_b(vga_b), // VGA Blue[3:0]
|
163 |
|
|
//////////////////// Audio CODEC ////////////////////////////
|
164 |
|
|
.aud_adclrck(aud_adclrck), // Audio CODEC ADC LR Clock
|
165 |
|
|
.aud_adcdat(aud_adcdat), // Audio CODEC ADC Data
|
166 |
|
|
.aud_daclrck(aud_daclrck), // Audio CODEC DAC LR Clock
|
167 |
|
|
.aud_dacdat(aud_dacdat), // Audio CODEC DAC Data
|
168 |
|
|
.aud_bclk(aud_bclk), // Audio CODEC Bit-Stream Clock
|
169 |
|
|
.aud_xck(aud_xck), // Audio CODEC Chip Clock
|
170 |
|
|
//////////////////////// GPIO ////////////////////////////////
|
171 |
|
|
.gpio_0(gpio_0), // GPIO Connection 0
|
172 |
|
|
.gpio_1(gpio_1) // GPIO Connection 1
|
173 |
|
|
);
|
174 |
|
|
|
175 |
|
|
|
176 |
|
|
// --------------------------------------------------------------------
|
177 |
|
|
// IS61LV25616
|
178 |
|
|
IS61LV25616 i_IS61LV25616 (
|
179 |
|
|
.A(sram_addr),
|
180 |
|
|
.IO(sram_dq),
|
181 |
|
|
.CE_(sram_ce_n),
|
182 |
|
|
.OE_(sram_oe_n),
|
183 |
|
|
.WE_(sram_we_n),
|
184 |
|
|
.LB_(sram_lb_n),
|
185 |
|
|
.UB_(sram_ub_n)
|
186 |
|
|
);
|
187 |
|
|
|
188 |
|
|
|
189 |
|
|
// --------------------------------------------------------------------
|
190 |
|
|
// s29al032d_00
|
191 |
|
|
s29al032d_00 #( .UserPreload(1'b1), .mem_file_name( "../../../sw/load_this_to_ram/boot_rom_2.txt" ) )
|
192 |
|
|
i_s29al032d_00(
|
193 |
|
|
.A21(fl_addr[21]),
|
194 |
|
|
.A20(fl_addr[20]),
|
195 |
|
|
.A19(fl_addr[19]),
|
196 |
|
|
.A18(fl_addr[18]),
|
197 |
|
|
.A17(fl_addr[17]),
|
198 |
|
|
.A16(fl_addr[16]),
|
199 |
|
|
.A15(fl_addr[15]),
|
200 |
|
|
.A14(fl_addr[14]),
|
201 |
|
|
.A13(fl_addr[13]),
|
202 |
|
|
.A12(fl_addr[12]),
|
203 |
|
|
.A11(fl_addr[11]),
|
204 |
|
|
.A10(fl_addr[10]),
|
205 |
|
|
.A9(fl_addr[9]),
|
206 |
|
|
.A8(fl_addr[8]),
|
207 |
|
|
.A7(fl_addr[7]),
|
208 |
|
|
.A6(fl_addr[6]),
|
209 |
|
|
.A5(fl_addr[5]),
|
210 |
|
|
.A4(fl_addr[4]),
|
211 |
|
|
.A3(fl_addr[3]),
|
212 |
|
|
.A2(fl_addr[2]),
|
213 |
|
|
.A1(fl_addr[1]),
|
214 |
|
|
.A0(fl_addr[0]),
|
215 |
|
|
|
216 |
|
|
.DQ7(fl_dq[7]),
|
217 |
|
|
.DQ6(fl_dq[6]),
|
218 |
|
|
.DQ5(fl_dq[5]),
|
219 |
|
|
.DQ4(fl_dq[4]),
|
220 |
|
|
.DQ3(fl_dq[3]),
|
221 |
|
|
.DQ2(fl_dq[2]),
|
222 |
|
|
.DQ1(fl_dq[1]),
|
223 |
|
|
.DQ0(fl_dq[0]),
|
224 |
|
|
|
225 |
|
|
.CENeg(fl_ce_n),
|
226 |
|
|
.OENeg(fl_oe_n),
|
227 |
|
|
.WENeg(fl_we_n),
|
228 |
|
|
.RESETNeg(fl_rst_n),
|
229 |
|
|
.ACC(),
|
230 |
|
|
.RY()
|
231 |
|
|
);
|
232 |
|
|
endmodule
|
233 |
|
|
|