Skip to content

Commit 7b34390

Browse files
committed
Updated graphics testbench
1 parent 00a7e4b commit 7b34390

File tree

2 files changed

+89
-45
lines changed

2 files changed

+89
-45
lines changed

source/fpga/modules/graphics/testbenches/graphics_tb.gtkw

Lines changed: 70 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
[*]
22
[*] GTKWave Analyzer v3.4.0 (w)1999-2022 BSI
3-
[*] Thu Jan 11 15:57:18 2024
3+
[*] Tue May 28 13:58:05 2024
44
[*]
55
[dumpfile] "simulation/graphics_tb.fst"
6-
[dumpfile_mtime] "Thu Jan 11 15:56:46 2024"
7-
[dumpfile_size] 3732059
6+
[dumpfile_mtime] "Tue May 28 13:57:44 2024"
7+
[dumpfile_size] 5006722
88
[savefile] "graphics_tb.gtkw"
9-
[timestart] 12306207
10-
[size] 2032 1104
11-
[pos] 10 38
12-
*-8.185387 12307205 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
9+
[timestart] 0
10+
[size] 2040 1110
11+
[pos] 7 36
12+
*-23.109203 17100000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1313
[markername] AA
1414
[markername] BB
1515
[markername] CC
@@ -41,12 +41,15 @@
4141
[sst_width] 253
4242
[signals_width] 383
4343
[sst_expanded] 1
44-
[sst_vpaned_height] 335
44+
[sst_vpaned_height] 443
4545
@28
46-
graphics_tb.clock
47-
graphics_tb.reset_n
46+
graphics_tb.graphics.spi_clock_in
47+
graphics_tb.graphics.spi_reset_n_in
48+
graphics_tb.graphics.display_clock_in
49+
graphics_tb.graphics.display_reset_n_in
4850
@200
4951
-
52+
-SPI registers
5053
@22
5154
graphics_tb.graphics.op_code_in[7:0]
5255
@28
@@ -59,50 +62,74 @@ graphics_tb.operand_valid
5962
graphics_tb.operand_count
6063
@200
6164
-
62-
-Operation registers
6365
@28
64-
graphics_tb.graphics.assign_color_enable_flag
65-
@24
66-
graphics_tb.graphics.assign_color_index_reg[3:0]
66+
graphics_tb.graphics.spi_op_code_edge_monitor[1:0]
67+
graphics_tb.graphics.spi_operand_edge_monitor[1:0]
68+
@200
69+
-
70+
@22
71+
graphics_tb.graphics.assign_color_index_spi_domain[3:0]
72+
graphics_tb.graphics.assign_color_index[3:0]
73+
graphics_tb.graphics.assign_color_value_spi_domain[9:0]
74+
graphics_tb.graphics.assign_color_value[9:0]
75+
@28
76+
graphics_tb.graphics.assign_color_enable_spi_domain
77+
graphics_tb.graphics.assign_color_enable
78+
@200
79+
-
6780
@22
68-
graphics_tb.graphics.assign_color_value_reg[9:0]
81+
graphics_tb.graphics.sprite_x_position_spi_domain[9:0]
82+
graphics_tb.graphics.sprite_x_position[9:0]
83+
graphics_tb.graphics.sprite_y_position_spi_domain[9:0]
84+
graphics_tb.graphics.sprite_y_position[9:0]
85+
graphics_tb.graphics.sprite_width_spi_domain[9:0]
86+
graphics_tb.graphics.sprite_width[9:0]
87+
graphics_tb.graphics.sprite_color_count_spi_domain[4:0]
88+
graphics_tb.graphics.sprite_color_count[4:0]
89+
graphics_tb.graphics.sprite_palette_offset_spi_domain[3:0]
90+
graphics_tb.graphics.sprite_palette_offset[3:0]
6991
@200
7092
-
93+
@22
94+
graphics_tb.graphics.sprite_data_spi_domain[7:0]
95+
graphics_tb.graphics.sprite_data[7:0]
7196
@28
72-
graphics_tb.graphics.show_buffer_flag
97+
graphics_tb.graphics.sprite_data_valid_spi_domain
98+
graphics_tb.graphics.sprite_data_valid
99+
graphics_tb.graphics.sprite_enable_spi_domain
100+
graphics_tb.graphics.sprite_enable
73101
@200
74102
-
75-
-Screen clearing
76103
@28
77-
graphics_tb.graphics.clear_buffer_flag
78-
graphics_tb.graphics.clear_buffer_in_progress_flag
79-
graphics_tb.graphics.pixel_pulse_counter[1:0]
80-
@22
81-
graphics_tb.graphics.clear_buffer_address_reg[17:0]
104+
graphics_tb.graphics.switch_buffer_spi_domain
105+
graphics_tb.graphics.switch_buffer
82106
@200
83107
-
84108
-Sprite engine
85109
@28
110+
graphics_tb.graphics.sprite_engine.clock_in
111+
graphics_tb.graphics.sprite_engine.reset_n_in
86112
graphics_tb.graphics.sprite_engine.enable_in
87-
@24
113+
@200
114+
-
115+
@22
88116
graphics_tb.graphics.sprite_engine.x_position_in[9:0]
89117
graphics_tb.graphics.sprite_engine.y_position_in[9:0]
90118
graphics_tb.graphics.sprite_engine.width_in[9:0]
91119
graphics_tb.graphics.sprite_engine.total_colors_in[4:0]
92120
graphics_tb.graphics.sprite_engine.color_palette_offset_in[3:0]
93121
@200
94122
-
95-
@28
96-
graphics_tb.graphics.sprite_engine.data_valid_in
97123
@22
98124
graphics_tb.graphics.sprite_engine.data_in[7:0]
125+
@28
126+
graphics_tb.graphics.sprite_engine.data_valid_in
99127
@200
100128
-
101129
@28
102130
graphics_tb.graphics.sprite_engine.pixel_write_enable_out
103-
@24
104-
graphics_tb.graphics.sprite_engine.pixel_write_address_out[17:0]
105131
@22
132+
graphics_tb.graphics.sprite_engine.pixel_write_address_out[17:0]
106133
graphics_tb.graphics.sprite_engine.pixel_write_data_out[3:0]
107134
@200
108135
-
@@ -117,24 +144,33 @@ graphics_tb.graphics.sprite_engine.pixels_remaining[4:0]
117144
-
118145
-Display buffer
119146
@28
147+
graphics_tb.graphics.display_buffers.clock_in
148+
graphics_tb.graphics.display_buffers.reset_n_in
149+
@200
150+
-
151+
@28
120152
graphics_tb.graphics.display_buffers.pixel_write_enable_in
121-
@25
153+
@24
122154
graphics_tb.graphics.display_buffers.pixel_write_address_in[17:0]
123155
@22
124156
graphics_tb.graphics.display_buffers.pixel_write_data_in[3:0]
125157
@200
126158
-
159+
@25
160+
graphics_tb.graphics.display_buffers.pixel_read_address_in[17:0]
161+
@22
162+
graphics_tb.graphics.display_buffers.pixel_read_data_out[3:0]
163+
@200
164+
-
127165
@28
128166
graphics_tb.graphics.display_buffers.switch_write_buffer_in
129167
@200
130168
-
169+
-Display buffer internals
131170
@24
132171
graphics_tb.graphics.display_buffers.displayed_buffer
133-
@200
134-
-
135-
@22
136-
graphics_tb.graphics.display_buffers.pixel_read_address_in[17:0]
137-
@200
138-
-
172+
@28
173+
graphics_tb.graphics.display_buffers.buffer_switch_pending
174+
graphics_tb.graphics.display_buffers.clear_flag
139175
[pattern_trace] 1
140176
[pattern_trace] 0

source/fpga/modules/graphics/testbenches/graphics_tb.sv

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,10 @@
1515

1616
module graphics_tb;
1717

18-
logic clock = 0;
19-
logic reset_n = 0;
18+
logic spi_clock = 0;
19+
logic spi_reset_n = 0;
20+
logic display_clock = 0;
21+
logic display_reset_n = 0;
2022

2123
logic [7:0] opcode;
2224
logic opcode_valid = 0;
@@ -26,11 +28,12 @@ integer operand_count = 0;
2628

2729
initial begin
2830
#20000
29-
reset_n <= 1;
31+
spi_reset_n <= 1;
32+
display_reset_n <= 1;
3033
#10000
3134

32-
// Clear command
33-
send_opcode('h10);
35+
// Switch/clear command
36+
send_opcode('h14);
3437
done();
3538
#1200000
3639

@@ -58,16 +61,17 @@ initial begin
5861
// Show command
5962
send_opcode('h14);
6063
done();
61-
#2000000
64+
#5000000
6265

63-
reset_n <= 0;
64-
#20000
6566
$finish;
6667
end
6768

6869
graphics graphics (
69-
.clock_in(clock),
70-
.reset_n_in(reset_n),
70+
.spi_clock_in(spi_clock),
71+
.spi_reset_n_in(spi_reset_n),
72+
73+
.display_clock_in(display_clock),
74+
.display_reset_n_in(display_reset_n),
7175

7276
.op_code_in(opcode),
7377
.op_code_valid_in(opcode_valid),
@@ -84,7 +88,11 @@ graphics graphics (
8488
);
8589

8690
initial begin
87-
forever #1 clock <= ~clock;
91+
forever #1 spi_clock <= ~spi_clock;
92+
end
93+
94+
initial begin
95+
forever #2 display_clock <= ~display_clock;
8896
end
8997

9098
task send_opcode(

0 commit comments

Comments
 (0)