Skip to content

Commit 1ad7944

Browse files
Revert "Frame buffer vga rendering"
This reverts commit f29d8ef.
1 parent b3920b0 commit 1ad7944

1 file changed

Lines changed: 23 additions & 27 deletions

File tree

src/main/scala/RISCV/VGAController.scala

Lines changed: 23 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import chisel3._
44
import chisel3.util._
55
import _root_.circt.stage.ChiselStage
66

7-
// 320x240
87
class VGAController extends Module {
98
val H_VISIBLE = 640
109
val H_FRONT = 16
@@ -27,55 +26,52 @@ class VGAController extends Module {
2726
val vsync = Output(Bool())
2827
val rgb = Output(UInt(12.W))
2928
val blanking = Output(Bool())
29+
val hPos = Output(UInt(10.W))
30+
val vPos = Output(UInt(10.W))
3031
})
3132

32-
val memory = SyncReadMem(320 * 240, UInt(8.W))
33+
val memory = SyncReadMem(1024, UInt(32.W))
3334

35+
val hCount = RegInit(0.U(10.W))
36+
val vCount = RegInit(0.U(10.W))
37+
38+
val pixel = WireInit(0.U(12.W))
39+
pixel := memory.read(0.U, true.B)
40+
3441
when(io.write) {
3542
memory.write(io.address, io.write_value)
3643
}
3744

38-
val v_pos = RegInit(0.U(10.W))
39-
val h_pos = RegInit(0.U(10.W))
40-
41-
when(h_pos === (H_TOTAL - 1).U) {
42-
v_pos := 0.U
43-
44-
when(v_pos === (V_TOTAL - 1).U) {
45-
h_pos := 0.U
45+
when(hCount === (H_TOTAL - 1).U) {
46+
hCount := 0.U
47+
48+
when(vCount === (V_TOTAL - 1).U) {
49+
vCount := 0.U
4650
}.otherwise {
47-
v_pos := v_pos + 1.U
51+
vCount := vCount + 1.U
4852
}
4953
}.otherwise {
50-
h_pos := h_pos + 1.U
54+
hCount := hCount + 1.U
5155
}
5256

5357
val hSyncStart = (H_VISIBLE + H_FRONT).U
5458
val hSyncEnd = (H_VISIBLE + H_FRONT + H_SYNC).U
5559
val vSyncStart = (V_VISIBLE + V_FRONT).U
5660
val vSyncEnd = (V_VISIBLE + V_FRONT + V_SYNC).U
5761

58-
io.hsync := !(h_pos >= hSyncStart && h_pos < hSyncEnd)
59-
io.vsync := !(v_pos >= vSyncStart && v_pos < vSyncEnd)
62+
io.hsync := !(hCount >= hSyncStart && hCount < hSyncEnd)
63+
io.vsync := !(vCount >= vSyncStart && vCount < vSyncEnd)
6064

61-
val hActive = v_pos < H_VISIBLE.U
62-
val vActive = h_pos < V_VISIBLE.U
65+
val hActive = hCount < H_VISIBLE.U
66+
val vActive = vCount < V_VISIBLE.U
6367
val active = hActive && vActive
6468

6569
io.blanking := !active
66-
67-
val read_address = WireInit(0.U(32.W))
68-
69-
when(!active) {
70-
read_address := 0.U
71-
}.otherwise {
72-
read_address := h_pos * 320.U + v_pos
73-
}
74-
75-
val color = memory.read(read_address, true.B)
76-
val pixel := color(7, 5) ## color(5) ## color(4, 2) ## color(2) ## color(1, 0) ## color(0) ## color(0)
70+
io.hPos := hCount
71+
io.vPos := vCount
7772

7873
io.rgb := Mux(active, pixel, 0.U)
74+
// io.rgb := Mux(active, 0b111111111111.U, 0.U)
7975
}
8076

8177
object VGAMain extends App {

0 commit comments

Comments
 (0)