Skip to content

Commit

Permalink
feat: update project tt_um_toivoh_retro_console from toivoh/ttihp-tt0…
Browse files Browse the repository at this point in the history
…6-retro-console

Commit: 1759e0a31f8cf3c269ab51e4129ec76beb1a6bad
Workflow: https://github.com/toivoh/ttihp-tt06-retro-console/actions/runs/11643642194
  • Loading branch information
TinyTapeoutBot authored and urish committed Nov 3, 2024
1 parent 5f0510c commit 4aaff33
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 10 deletions.
4 changes: 2 additions & 2 deletions projects/tt_um_toivoh_retro_console/commit_id.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"app": "Tiny Tapeout tt09 b176ed7c",
"repo": "https://github.com/toivoh/ttihp-tt06-retro-console",
"commit": "cbf5ddaceaf0bb9c97f026c13ef1cccc29e88985",
"workflow_url": "https://github.com/toivoh/ttihp-tt06-retro-console/actions/runs/11642122326",
"commit": "1759e0a31f8cf3c269ab51e4129ec76beb1a6bad",
"workflow_url": "https://github.com/toivoh/ttihp-tt06-retro-console/actions/runs/11643642194",
"sort_id": 1730546769885
}
15 changes: 8 additions & 7 deletions projects/tt_um_toivoh_retro_console/docs/info.md
Original file line number Diff line number Diff line change
Expand Up @@ -533,17 +533,18 @@ The `copper_ctrl` PPU registers have specific effects on the Copper:
Writing a value to `cmp_x` or `cmp_y` causes the Copper to delay the next write until the current raster x/y
position is >= the specified compare value.

The raster position for x intially goes from `24 + r_x0_fp` to `32 + r_xe_hsync` as the raster scan goes through the front porch and horizontal sync (counted as the first part of the scan line).
Due to a bug, during the back porch and active regions, it is then calculated as
For each scan line, the raster position for x goes through the following phases in order

x_raster = {x[X_BITS-1:7], x[6:5] - 2'd3, x[4:0]}
Phase x raster positions
front porch 24 + r_x0_fp to 31
horizontal sync 32 to 32 + r_xe_hsync
back porch 96 + r_x0_bp to 127
active 128 to xe_active

where `x` goes from `96 + r_x0_bp` to `xe_active`.
This makes `x_raster` non-monotonic, making it harder to wait for some x positions.
A partial workaround for waiting for an `x_raster` value that is lower than a previous value in the scan line is to start with a write to `cmp_x` of the highest value expected before reaching the given position, followed directly with a write to `cmp_x` of the actual value.
yielding increasing raster positions for x.

The raster position for y counts as zero until the active region starts in the y direction.
Then, the compare value is `512 + y - 2*screen_height` where `y` is the number of scan lines since the start of the active region in the y direction.
Then, the compare value is `512 - 2*screen_height + y` where `y` is the number of scan lines since the start of the active region in the y direction.

#### Jumps
Usually, the Copper loads instructions from consecutive addresses.
Expand Down
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
*SPEF "ieee 1481-1999"
*DESIGN "tt_um_toivoh_retro_console"
*DATE "11:14:37 Saturday November 02, 2024"
*DATE "15:21:09 Saturday November 02, 2024"
*VENDOR "The OpenROAD Project"
*PROGRAM "OpenROAD"
*VERSION "v2.0-16649-g40811f37f"
Expand Down

0 comments on commit 4aaff33

Please sign in to comment.