This repository was archived by the owner on Mar 13, 2024. It is now read-only.
File tree Expand file tree Collapse file tree 5 files changed +333
-34
lines changed
peripherals/jml-8-mini-vga/src Expand file tree Collapse file tree 5 files changed +333
-34
lines changed Original file line number Diff line number Diff line change 1+ module chargen (
2+ input clk,
3+ input [7 :0 ] character,
4+ input [2 :0 ] vertcount,
5+ output pixel
6+ );
7+
8+ reg [2 :0 ] index = 0 ;
9+ wire [7 :0 ] pixels;
10+
11+ assign pixel = pixels[index];
12+
13+ always @(posedge clk) index <= index + 1 ;
14+
15+ charmem #() character_rom (
16+ .clk(clk),
17+ .addr(character),
18+ .row(vertcount[2 :0 ]),
19+ .pixels(pixels)
20+ );
21+
22+ endmodule
Original file line number Diff line number Diff line change 1+ 00 00 00 00 00 00 00 00
2+ 00 00 00 00 00 00 00 00
3+ 00 00 00 00 00 00 00 00
4+ 00 00 00 00 00 00 00 00
5+ 00 00 00 00 00 00 00 00
6+ 00 00 00 00 00 00 00 00
7+ 00 00 00 00 00 00 00 00
8+ 00 00 00 00 00 00 00 00
9+ 00 00 00 00 00 00 00 00
10+ 00 00 00 00 00 00 00 00
11+ 00 00 00 00 00 00 00 00
12+ 00 00 00 00 00 00 00 00
13+ 00 00 00 00 00 00 00 00
14+ 00 00 00 00 00 00 00 00
15+ 00 00 00 00 00 00 00 00
16+ 00 00 00 00 00 00 00 00
17+ 00 00 00 00 00 00 00 00
18+ 00 00 00 00 00 00 00 00
19+ 00 00 00 00 00 00 00 00
20+ 00 00 00 00 00 00 00 00
21+ 00 00 00 00 00 00 00 00
22+ 00 00 00 00 00 00 00 00
23+ 00 00 00 00 00 00 00 00
24+ 00 00 00 00 00 00 00 00
25+ 00 00 00 00 00 00 00 00
26+ 00 00 00 00 00 00 00 00
27+ 00 00 00 00 00 00 00 00
28+ 00 00 00 00 00 00 00 00
29+ 00 00 00 00 00 00 00 00
30+ 00 00 00 00 00 00 00 00
31+ 00 00 00 00 00 00 00 00
32+ 00 00 00 00 00 00 00 00
33+ 00 00 00 00 00 00 00 00
34+ 18 3C 3C 18 18 00 18 00
35+ 36 36 00 00 00 00 00 00
36+ 36 36 7F 36 7F 36 36 00
37+ 0C 3E 03 1E 30 1F 0C 00
38+ 00 63 33 18 0C 66 63 00
39+ 1C 36 1C 6E 3B 33 6E 00
40+ 06 06 03 00 00 00 00 00
41+ 18 0C 06 06 06 0C 18 00
42+ 06 0C 18 18 18 0C 06 00
43+ 00 66 3C FF 3C 66 00 00
44+ 00 0C 0C 3F 0C 0C 00 00
45+ 00 00 00 00 00 0C 0C 06
46+ 00 00 00 3F 00 00 00 00
47+ 00 00 00 00 00 0C 0C 00
48+ 60 30 18 0C 06 03 01 00
49+ 3E 63 73 7B 6F 67 3E 00
50+ 0C 0E 0C 0C 0C 0C 3F 00
51+ 1E 33 30 1C 06 33 3F 00
52+ 1E 33 30 1C 30 33 1E 00
53+ 38 3C 36 33 7F 30 78 00
54+ 3F 03 1F 30 30 33 1E 00
55+ 1C 06 03 1F 33 33 1E 00
56+ 3F 33 30 18 0C 0C 0C 00
57+ 1E 33 33 1E 33 33 1E 00
58+ 1E 33 33 3E 30 18 0E 00
59+ 00 0C 0C 00 00 0C 0C 00
60+ 00 0C 0C 00 00 0C 0C 06
61+ 18 0C 06 03 06 0C 18 00
62+ 00 00 3F 00 00 3F 00 00
63+ 06 0C 18 30 18 0C 06 00
64+ 1E 33 30 18 0C 00 0C 00
65+ 3E 63 7B 7B 7B 03 1E 00
66+ 0C 1E 33 33 3F 33 33 00
67+ 3F 66 66 3E 66 66 3F 00
68+ 3C 66 03 03 03 66 3C 00
69+ 1F 36 66 66 66 36 1F 00
70+ 7F 46 16 1E 16 46 7F 00
71+ 7F 46 16 1E 16 06 0F 00
72+ 3C 66 03 03 73 66 7C 00
73+ 33 33 33 3F 33 33 33 00
74+ 1E 0C 0C 0C 0C 0C 1E 00
75+ 78 30 30 30 33 33 1E 00
76+ 67 66 36 1E 36 66 67 00
77+ 0F 06 06 06 46 66 7F 00
78+ 63 77 7F 7F 6B 63 63 00
79+ 63 67 6F 7B 73 63 63 00
80+ 1C 36 63 63 63 36 1C 00
81+ 3F 66 66 3E 06 06 0F 00
82+ 1E 33 33 33 3B 1E 38 00
83+ 3F 66 66 3E 36 66 67 00
84+ 1E 33 07 0E 38 33 1E 00
85+ 3F 2D 0C 0C 0C 0C 1E 00
86+ 33 33 33 33 33 33 3F 00
87+ 33 33 33 33 33 1E 0C 00
88+ 63 63 63 6B 7F 77 63 00
89+ 63 63 36 1C 1C 36 63 00
90+ 33 33 33 1E 0C 0C 1E 00
91+ 7F 63 31 18 4C 66 7F 00
92+ 1E 06 06 06 06 06 1E 00
93+ 03 06 0C 18 30 60 40 00
94+ 1E 18 18 18 18 18 1E 00
95+ 08 1C 36 63 00 00 00 00
96+ 00 00 00 00 00 00 00 FF
97+ 0C 0C 18 00 00 00 00 00
98+ 00 00 1E 30 3E 33 6E 00
99+ 07 06 06 3E 66 66 3B 00
100+ 00 00 1E 33 03 33 1E 00
101+ 38 30 30 3e 33 33 6E 00
102+ 00 00 1E 33 3f 03 1E 00
103+ 1C 36 06 0f 06 06 0F 00
104+ 00 00 6E 33 33 3E 30 1F
105+ 07 06 36 6E 66 66 67 00
106+ 0C 00 0E 0C 0C 0C 1E 00
107+ 30 00 30 30 30 33 33 1E
108+ 07 06 66 36 1E 36 67 00
109+ 0E 0C 0C 0C 0C 0C 1E 00
110+ 00 00 33 7F 7F 6B 63 00
111+ 00 00 1F 33 33 33 33 00
112+ 00 00 1E 33 33 33 1E 00
113+ 00 00 3B 66 66 3E 06 0F
114+ 00 00 6E 33 33 3E 30 78
115+ 00 00 3B 6E 66 06 0F 00
116+ 00 00 3E 03 1E 30 1F 00
117+ 08 0C 3E 0C 0C 2C 18 00
118+ 00 00 33 33 33 33 6E 00
119+ 00 00 33 33 33 1E 0C 00
120+ 00 00 63 6B 7F 7F 36 00
121+ 00 00 63 36 1C 36 63 00
122+ 00 00 33 33 33 3E 30 1F
123+ 00 00 3F 19 0C 26 3F 00
124+ 38 0C 0C 07 0C 0C 38 00
125+ 18 18 18 00 18 18 18 00
126+ 07 0C 0C 38 0C 0C 07 00
127+ 6E 3B 00 00 00 00 00 00
128+ 00 00 00 00 00 00 00 00
129+ 00 00 00 00 00 00 00 00
130+ 00 00 00 00 00 00 00 00
131+ 00 00 00 00 00 00 00 00
132+ 00 00 00 00 00 00 00 00
133+ 00 00 00 00 00 00 00 00
134+ 00 00 00 00 00 00 00 00
135+ 00 00 00 00 00 00 00 00
136+ 00 00 00 00 00 00 00 00
137+ 00 00 00 00 00 00 00 00
138+ 00 00 00 00 00 00 00 00
139+ 00 00 00 00 00 00 00 00
140+ 00 00 00 00 00 00 00 00
141+ 00 00 00 00 00 00 00 00
142+ 00 00 00 00 00 00 00 00
143+ 00 00 00 00 00 00 00 00
144+ 00 00 00 00 00 00 00 00
145+ 00 00 00 00 00 00 00 00
146+ 00 00 00 00 00 00 00 00
147+ 00 00 00 00 00 00 00 00
148+ 00 00 00 00 00 00 00 00
149+ 00 00 00 00 00 00 00 00
150+ 00 00 00 00 00 00 00 00
151+ 00 00 00 00 00 00 00 00
152+ 00 00 00 00 00 00 00 00
153+ 00 00 00 00 00 00 00 00
154+ 00 00 00 00 00 00 00 00
155+ 00 00 00 00 00 00 00 00
156+ 00 00 00 00 00 00 00 00
157+ 00 00 00 00 00 00 00 00
158+ 00 00 00 00 00 00 00 00
159+ 00 00 00 00 00 00 00 00
160+ 00 00 00 00 00 00 00 00
161+ 00 00 00 00 00 00 00 00
162+ 00 00 00 00 00 00 00 00
163+ 00 00 00 00 00 00 00 00
164+ 00 00 00 00 00 00 00 00
165+ 00 00 00 00 00 00 00 00
166+ 00 00 00 00 00 00 00 00
167+ 00 00 00 00 00 00 00 00
168+ 00 00 00 00 00 00 00 00
169+ 00 00 00 00 00 00 00 00
170+ 00 00 00 00 00 00 00 00
171+ 00 00 00 00 00 00 00 00
172+ 00 00 00 00 00 00 00 00
173+ 00 00 00 00 00 00 00 00
174+ 00 00 00 00 00 00 00 00
175+ 00 00 00 00 00 00 00 00
176+ 00 00 00 00 00 00 00 00
177+ 00 00 00 00 00 00 00 00
178+ 00 00 00 00 00 00 00 00
179+ 00 00 00 00 00 00 00 00
180+ 00 00 00 00 00 00 00 00
181+ 00 00 00 00 00 00 00 00
182+ 00 00 00 00 00 00 00 00
183+ 00 00 00 00 00 00 00 00
184+ 00 00 00 00 00 00 00 00
185+ 00 00 00 00 00 00 00 00
186+ 00 00 00 00 00 00 00 00
187+ 00 00 00 00 00 00 00 00
188+ 00 00 00 00 00 00 00 00
189+ 00 00 00 00 00 00 00 00
190+ 00 00 00 00 00 00 00 00
191+ 00 00 00 00 00 00 00 00
192+ 00 00 00 00 00 00 00 00
193+ 00 00 00 00 00 00 00 00
194+ 00 00 00 00 00 00 00 00
195+ 00 00 00 00 00 00 00 00
196+ 00 00 00 00 00 00 00 00
197+ 00 00 00 00 00 00 00 00
198+ 00 00 00 00 00 00 00 00
199+ 00 00 00 00 00 00 00 00
200+ 00 00 00 00 00 00 00 00
201+ 00 00 00 00 00 00 00 00
202+ 00 00 00 00 00 00 00 00
203+ 00 00 00 00 00 00 00 00
204+ 00 00 00 00 00 00 00 00
205+ 00 00 00 00 00 00 00 00
206+ 00 00 00 00 00 00 00 00
207+ 00 00 00 00 00 00 00 00
208+ 00 00 00 00 00 00 00 00
209+ 00 00 00 00 00 00 00 00
210+ 00 00 00 00 00 00 00 00
211+ 00 00 00 00 00 00 00 00
212+ 00 00 00 00 00 00 00 00
213+ 00 00 00 00 00 00 00 00
214+ 00 00 00 00 00 00 00 00
215+ 00 00 00 00 00 00 00 00
216+ 00 00 00 00 00 00 00 00
217+ 00 00 00 00 00 00 00 00
218+ 00 00 00 00 00 00 00 00
219+ 00 00 00 00 00 00 00 00
220+ 00 00 00 00 00 00 00 00
221+ 00 00 00 00 00 00 00 00
222+ 00 00 00 00 00 00 00 00
223+ 00 00 00 00 00 00 00 00
224+ 00 00 00 00 00 00 00 00
225+ 00 00 00 00 00 00 00 00
226+ 00 00 00 00 00 00 00 00
227+ 00 00 00 00 00 00 00 00
228+ 00 00 00 00 00 00 00 00
229+ 00 00 00 00 00 00 00 00
230+ 00 00 00 00 00 00 00 00
231+ 00 00 00 00 00 00 00 00
232+ 00 00 00 00 00 00 00 00
233+ 00 00 00 00 00 00 00 00
234+ 00 00 00 00 00 00 00 00
235+ 00 00 00 00 00 00 00 00
236+ 00 00 00 00 00 00 00 00
237+ 00 00 00 00 00 00 00 00
238+ 00 00 00 00 00 00 00 00
239+ 00 00 00 00 00 00 00 00
240+ 00 00 00 00 00 00 00 00
241+ 00 00 00 00 00 00 00 00
242+ 00 00 00 00 00 00 00 00
243+ 00 00 00 00 00 00 00 00
244+ 00 00 00 00 00 00 00 00
245+ 00 00 00 00 00 00 00 00
246+ 00 00 00 00 00 00 00 00
247+ 00 00 00 00 00 00 00 00
248+ 00 00 00 00 00 00 00 00
249+ 00 00 00 00 00 00 00 00
250+ 00 00 00 00 00 00 00 00
251+ 00 00 00 00 00 00 00 00
252+ 00 00 00 00 00 00 00 00
253+ 00 00 00 00 00 00 00 00
254+ 00 00 00 00 00 00 00 00
255+ 00 00 00 00 00 00 00 00
256+ 00 00 00 00 00 00 00 00
Original file line number Diff line number Diff line change 1+ module charmem (
2+ input clk,
3+ input [7 :0 ] addr,
4+ input [2 :0 ] row,
5+ output reg [7 :0 ] pixels
6+ );
7+
8+ reg [7 :0 ] chars[255 :0 ][7 :0 ];
9+
10+ initial $readmemh ("charmem.txt" , chars, 0 );
11+
12+ always @(posedge clk) begin
13+ pixels <= chars[addr][row];
14+ end
15+
16+ endmodule
Original file line number Diff line number Diff line change 44module signalgen (
55 input clk,
66
7- output vsync,
8- output hsync
9- );
7+ output vsync,
8+ output hsync,
9+ output visible,
10+ output reg [9 :0 ] vertcount = 0 ,
11+ output reg [9 :0 ] horicount = 0
1012
11- reg [9 :0 ] vertical_count = 0 ;
12- reg [9 :0 ] horizontal_count = 0 ;
13+ );
1314
14- assign hsync = (horizontal_count < 656 || horizontal_count >= 752 );
15- assign vsync = (vertical_count < 490 || vertical_count >= 492 );
15+ assign hsync = (horicount < 656 || horicount >= 752 );
16+ assign vsync = (vertcount < 490 || vertcount >= 492 );
17+ assign visible = (horicount < 640 && vertcount < 480 );
1618
1719 always @(posedge clk) begin
18- if (horizontal_count == 799 ) begin
19- horizontal_count <= 0 ;
20- if (vertical_count == 524 ) vertical_count <= 0 ;
21- else vertical_count <= vertical_count + 1 ;
22- end else horizontal_count <= horizontal_count + 1 ;
20+ if (horicount == 799 ) begin
21+ horicount <= 0 ;
22+ if (vertcount == 524 ) vertcount <= 0 ;
23+ else vertcount <= vertcount + 1 ;
24+ end else horicount <= horicount + 1 ;
2325 end
2426
2527endmodule
Original file line number Diff line number Diff line change @@ -9,33 +9,36 @@ module toplevel (
99 output lum
1010);
1111
12- reg [9 :0 ] hori_counter = 0 ;
13- reg [5 :0 ] quart_counter = 0 ;
14- reg [3 :0 ] counter = 0 ;
12+ wire pixel;
13+ wire visible;
14+ reg [7 :0 ] character = 65 ;
15+ wire [9 :0 ] vertcount;
16+ wire [9 :0 ] horicount;
1517
16- always @(posedge clk) begin
17- if (hori_counter == 799 ) begin
18- hori_counter <= 0 ;
19- quart_counter <= 0 ;
20- counter <= 0 ;
21- end else begin
22- hori_counter <= hori_counter + 1 ;
23- if (quart_counter == 39 ) begin
24- quart_counter <= 0 ;
25- counter <= counter + 1 ;
26- end else quart_counter <= quart_counter + 1 ;
27- end
28- end
18+ assign red = pixel;
19+ assign green = pixel;
20+ assign blue = pixel;
21+ assign lum = pixel;
2922
30- assign red = counter[ 0 ] ? counter[ 0 ] : 1'bZ ;
31- assign green = counter[ 1 ] ? counter[ 1 ] : 1'bZ ;
32- assign blue = counter[ 2 ] ? counter[ 2 ] : 1'bZ ;
33- assign lum = counter[ 3 ] ? counter[ 3 ] : 1'bZ ;
23+ always @( posedge horicount[ 2 ]) begin
24+ if (character == 65 ) character <= 32 ;
25+ if (character == 32 ) character <= 65 ;
26+ end
3427
3528 signalgen #() signal_generator (
36- .clk (clk),
29+ .clk(clk),
3730 .vsync(vsync),
38- .hsync(hsync)
31+ .hsync(hsync),
32+ .visible(visible),
33+ .vertcount(vertcount),
34+ .horicount(horicount)
35+ );
36+
37+ chargen #() character_generator (
38+ .clk(clk),
39+ .character(character),
40+ .vertcount(vertcount[2 :0 ]),
41+ .pixel(pixel)
3942 );
4043
4144endmodule
You can’t perform that action at this time.
0 commit comments