# Tiny Tapeout Template Project
TinyTapeout is an educational project that makes it easier and cheaper
than ever to get your digital designs manufactured on a real chip.
Wokwi provides an easy way to create digital designs for Tiny Tapeout.
You create a design out of individual logic gates, and simulate them
with Wokwi to observe the result.
When your design is ready, you can submit it for manufacturing on a
physical chip with Tiny Tapeout.
To learn more, follow the tutorial at https://tinytapeout.com/digital_design/
Note: when creating your own project, please replace this text with information
about your projects: what it does and how to use it.Loading
tt-block-input
tt-block-input
Loading
tt-block-output
tt-block-output
Controls: run/step clock, reset input block
TT output -> 7-segment display
IN: uo_out[0..7]
OUT: EXTOUT[0..7]
IN: A B C D E F G DP
v5: seeded replay Simon, score width 6
WIRE COLORS: blue clock | orange reset | green/cyan data | red score | purple/violet/yellow control
========== 1. INPUT ENCODER + KEY EDGE ==========
> ui_in[7:0] (green)
> CLK (blue)
key_valid (yellow) >
key_press (violet) >
key_code[2:0] (cyan) >
========== 2. FREE-RUNNING ENTROPY LFSR ==========
> CLK (blue)
entropy[7:0] (green) >
========== 3. GAME-SEED MEMORY ==========
> entropy[7:0] (green)
> capture/new_game (purple)
> CLK (blue)
game_seed[7:0] (cyan) >
========== 4. DETERMINISTIC REPLAY LFSR ==========
> game_seed[7:0] (cyan)
> load (purple)
> step (yellow)
> CLK (blue)
replay[7:0] (green) >
expected[2:0] (cyan) >
========== 5. SEQUENCE POSITION COUNTER ==========
> increment (violet)
> clear (purple)
> CLK (blue)
position[5:0] (yellow) >
========== 6. INPUT BUFFER + COMPARE ==========
> key_code[2:0] (cyan)
> key_press (violet)
> expected[2:0] (cyan)
> position (yellow)
> score (red)
> phase controls (purple)
> CLK (blue)
status to FSM (violet) >
position step (violet) >
replay step (yellow) >
========== 7. MAIN FSM ==========
> RESET_N (orange)
> key_valid (yellow)
> compare status (violet)
> CLK (blue)
states (purple) >
load (purple) >
step (purple) >
clear (purple) >
========== 8. BINARY SCORE MEMORY ==========
> round_success (purple)
> new_game (purple)
> reset control (purple)
> CLK (blue)
score[5:0] (red) >
========== 10. DISPLAY ENCODER + OUTPUT ==========
> replay (green)
> FSM (purple)
> decimal score (red)
segments a..g (green) >
decimal point (green) >
========== 9. DECIMAL SCORE MEMORY ==========
> score increment (red)
> score clear (red)
> CLK (blue)
tens[2:0] (red) >
units[3:0] (red) >
NOTE: no stored sequence array; replay_lfsr regenerates the sequence from game_seed
game_seed[0]
game_seed[1]
game_seed[2]
game_seed[3]
game_seed[4]
game_seed[5]
game_seed[6]
game_seed[7]
replay_lfsr[0]
replay_lfsr[1]
replay_lfsr[2]
replay_lfsr[3]
replay_lfsr[4]
replay_lfsr[5]
replay_lfsr[6]
replay_lfsr[7]
pending_key[0]
pending_key[1]
pending_key[2]
position[0]
position[1]
position[2]
position[3]
position[4]
position[5]
final_score[0]
final_score[1]
final_score[2]
final_score[3]
final_score[4]
final_score[5]
score_tens[0]
score_tens[1]
score_tens[2]
score_units[0]
score_units[1]
score_units[2]
score_units[3]
CAPTURE_SEED
NEW_ROUND
SHOW_NUMBER
SHOW_GAP
INPUT_LOAD
WAIT_INPUT
CHECK_INPUT
ROUND_SUCCESS
ROUND_RELEASE
FAIL_H
FAIL_GAP_1
FAIL_TENS
FAIL_GAP_2
FAIL_UNITS
FAIL_GAP_3
DISPLAY: sequence 1-8, wait dot, H, optional decimal score
BUS: CLK (blue)
BUS: RESET_N (orange)
BUS: KEY + PRESS [4:0] (cyan / violet / yellow)
BUS: ENTROPY [7:0] (green)
BUS: GAME SEED [7:0] (cyan)
BUS: REPLAY [7:0] (green / cyan)
BUS: POSITION [5:0] (yellow)
BUS: SCORE [5:0] (red)
BUS: DECIMAL DIGITS [6:0] (red)
BUS: COMPARE STATUS (violet / yellow)
BUS: FSM CONTROL (purple)