47 Mrudul and Wahhaj Demoscene F2025

47 : Mrudul and Wahhaj Demoscene F2025

Design render

298A Mrudul Suresh and Wahhaj Khan Documentation

Introduction ~ Mrudul and Wahhaj

Our names are Mrudul Suresh and Wahhaj Khan and we are 2B Computer Engineering students! We decided to partake in ECE 298A because we thought it to be a fun alternative to 298 and we definitely stand by our decision. We are complete beginners to anything Verilog and really don’t know a whole lot about hardware, so this course definitely helped us learn a lot!

What our project is

We decided to do a demoscene project because we found it very fascinating that you could have a self-contained computer program that produces a real-time audio-visual presentation. We initially thought about a bunch of ideas like abstract animations or games like flappy bird, but we ended up deciding on a visual of the Sans Bad Time Fight simulator. We chose this because there’s a lot of opportunity for scalability, and it's easy to start small and keep expanding based on time, chip space etc. (and because it's fun)! Check out this link for the free to play game on your browser: https://jcw87.github.io/c2-sans-fight/.

We’ve visualized the absolute first level of the game, which is the heart (the character that you play as) dodging rapid paced obstacles (pillars in this case). In order to put a UWaterloo twist on it, we decided to change Sans to be a goose (we all know how frightening the geese on campus are) and change the heart that we play as to “UW” (go Waterloo)!. There is input control to control the speed of the animation as well as direction of the animation using registers. Overall, a visually cool looking animation.

Steps taken to build the animation

We didn’t have the UW-ASIC simulator for a majority of the course and so we used an online browser resource called VGA-Playground (link here: https://vga-playground.com/) which allows you to visualize your animations written in Verilog instantly and smoothly. This is the environment in which all of our development occurred.

Verilog is a standard HDL (Hardware Description Language) that is used to model, design, and simulate electronic systems, especially digital circuits. So in this case, we’re not writing software, but rather describing digital circuits. Our clock speed is set to 25mHz and this is because the standard vga clock speed is 25.175 MHz. So this means that the system processes 25 million different pixel positions every second.

How it was built

If you’re looking to be technical, please take a look at the code. It is very well commented and described. If you’d like a more wordy summary of how our project is built, take a look at the following:

At the top level, the module tt_um_immrudul_w7khan ties the entire VGA animation system together. It handles Tiny Tapeout I/O, drives the VGA PMOD pins, and instantiates the hvsync_generator, which produces the horizontal and vertical sync pulses required by VGA along with pixel coordinates (pix_x, pix_y) for all 640×480 visible pixels. Internally, this module uses counters that sweep through all 800×525 timing cycles per frame and indicates when the monitor is in the visible drawing region.

Animation logic runs once per frame on each rising edge of vsync. User inputs control scrolling speed and direction, and the design computes an x_offset used to shift the waveform horizontally. This offset wraps around using modulo arithmetic so the wave scrolls infinitely in a loop.

The actual sine wave rendering is split across two modules. create_game_scene defines the rectangular area in which the waves should appear, while double_sin determines whether each pixel should be part of the top or bottom sine wave. It selects one of ten precomputed sine samples from a small lookup table and builds the wave by drawing only a thin portion of each bar to create a dotted “sparkline” effect. The result is clipped to the wave’s bounding region so only the intended area is drawn.

The “UW” character is generated procedurally using geometric comparisons—no sprite memory is needed. The player module instantiates three copies of U_shape and positions them so that two form a stylized “W.” The vertical position of the entire UW sprite is driven by the sine wave’s height at a fixed x-coordinate, making the letters appear to “ride” the wave. Each U is defined by a set of simple coordinate ranges forming its legs and curved bottom.

A static goose-themed design appears at the top of the screen using the static_top_line module. To save area, only half of the 14-column pattern is stored, and the other half is mirrored. Each bit expands into an 8×8 pixel block. The module translates global pixel coordinates into local row/column indices and outputs 1 when that position corresponds to a white goose pixel.

The top-level module then blends together all drawing signals during the visible portion of the VGA frame. The sine waves and goose banner are displayed in white, while the UW sprite is highlighted in red. Everything else remains black.

How we tested (what tests + results)

As this is a demoscene, most of the testing was done visually. However, we also ran unit tests on five of our submodules:

The first test, test_static_top_line, targets the static_top_line module responsible for mirroring the goose image and displaying it (we only store half of the image on the chip to save space). The unit test iterates through all the pixels output by the module and compares them against a full bitmap of the goose. This ensures that every pixel is mirrored and displayed correctly.

The second test, test_player, checks whether the “UW” is displayed correctly by the player module. The logo consists of three U-shaped characters: U UU. The unit test, similar to the previous one, loops through all the pixels and ensures each U is spaced and rendered correctly by comparing the output to a full bitmap of the U.

The third test, test_U_shape, simply checks whether the U_shape module that displays the U does so correctly by comparing its output to a reference bitmap, much like the previous test.

The fourth test, test_double_sin, checks the double_sin module which handles the main double wave in the middle of the demo scene. It runs pixel-by-pixel, performing a similar calculation to the module under test. The goal here is mainly to catch overflows or other errors in the Verilog code, not to verify the wave-rendering logic itself. For speed, the waveform is moved 20 pixels per frame during the test (increasing by just 1 pixel per frame was too slow).

The last test, test_sine_lut, runs through the sin_lut, simply verifying that all output values match the predefined table.

Each of these test cases pass successfully.

Another important part of the testing was using UW-ASIC’s emulator. Towards the end of the course, we were given the repo of where the UW-ASIC VGA emulator lives and we were able to replace the dino game with our vga animation and it works. There are no errors and everything runs very smoothly! We added our project.v and renamed the .v file, modified top_dino.v, and commented out the hvsync_generator.v file to ensure we don’t define it twice (since we already have it in our project.v).

How to use our project

Using our project is very simple. Since right now our project is in our Tiny Tapeout repository, you can’t exactly run it directly and see the animation, so there are 2 options:

Option 1 (easiest, recommended):

Head into our repository, navigate to src, and then project.v. Or here is the link to that file directly: https://github.com/Immrudul/298a-mrudul-wahhaj/blob/main/src/project.v)

Copy the entire file and head to https://vga-playground.com/. Paste in the entire copied project.v file and replace the top module name. Change the name from tt_um_immrudul_w7khan to tt_um_vga_example. That’s it! You should now see our animation working.

You can control the speed of the animation using the first 4 input registers (0 : 3). The binary combination of those 4 registers indicates the speed with decimal 0 being the minimum and decimal 15 being the fastest

You can control the direction of the animation using the fifth register (reg 4). 0 means the uw goes from left to right and 1 means the UW goes from right to left.

Option 2 (if you have the UW-ASIC emulator)

  • Open the UW-ASIC emulator
  • navigate to /src
    • comment out the hvsync_generator.v file
    • add a new file called “tt_um_immrudul_w7khan.v” in src
    • Paste in the project.v from our github
    • Add /* verilator lint_off WIDTH */ to the top of the page and /* verilator lint_on WIDTH */ to the bottom
  • navigate to /vga_sim
    • Modify top_dino.v to change the top instance from tt_um_uwasic_dinogame to be tt_um_immrudul_w7khan
  • Enter your Linux environment
  • Run:
    • make
    • ./obj_dir/dino Enjoy!

Future Improvements

  • Memory Optimization:

One major problem that we faced was memory optimization. Initially, we implemented too many things at once and when it came time to create the gds, we didn’t have enough space on the chip. Some changes we had to make

  • Remove an initial bounding box animation
  • Modifying the Goose Sans
  • Smaller changes

There are a lot of memory optimizations that can be made and this would mean that we’d be able to fit more features in, such as ones that we’ll discuss now

  • Music

    • There is a very identifiable and signature audio that goes with the sans undertale song and implementing that would be a very fun next steps
  • Turning this into a playable game

  • Adding hand animations for Goose Sans like in the actual game

  • Using the available inputs to implement more features such as, volume, colour palettes etc -Doing smarter arithmetic so that we have no warnings

Our Pinout

Used: Inputs [4:0] ui[0]: SPEED_BIT0 ui[1]: SPEED_BIT1 ui[2]: SPEED_BIT2 ui[3]: SPEED_BIT3 ui[4]: DIRECTION

Outputs [7:0] uo[7]: HSYNC uo[6]: B0 uo[5]: G0 uo[4]: R0 uo[3]: VSYNC uo[2]: B1 uo[1]: G1 uo[0]: R1

Clock frequency: 25mHz

Our timeline

Below is a week by week breakdown of what we achieved and what we worked on.

  • Oct 12 - 19: Reading week
  • Oct 19 - 26: Creating the sine waves for the pillars
  • Oct 26 - Nov 2: Animating the movement, looping the sine waves smoothly
  • Nov 2 - Nov 9: Implementing the UW character and Sans Goose, making things look better
  • Nov 9 - Nov 16: Creating gds, memory optimization
  • Nov 16 - 23: Testing using CocoTB, testing on UW-ASIC emulator
  • Nov 23 - Nov 30: Code cleanup, code commenting, documentation
  • Nov 30 - Dec 7: Done and present!

Conclusion

Overall, this was a very enjoyable course and project, it was a great learning experience, and we’d love to iterate and implement more features in the future. Super excited for the tapeout!

IO

#InputOutputBidirectional
0SPEED_BIT0R1
1SPEED_BIT1G1
2SPEED_BIT2B1
3SPEED_BIT3VSYNC
4DIRECTIONR0
5G0
6B0
7HSYNC

Chip location

Controller Mux Mux Mux Mux Mux Mux Mux Mux Mux Mux Analog Mux Mux Mux Mux Mux Mux Mux Mux Mux Mux Analog Mux Mux Mux Mux Analog Mux Mux Mux Mux Mux Mux tt_um_chip_rom (Chip ROM) tt_um_factory_test (Tiny Tapeout Factory Test) tt_um_oscillating_bones (Oscillating Bones) tt_um_wokwi_457142813149930497 (TinyTapeOut workshop) tt_um_wokwi_457311688017142785 (tiny tapeout test gates) tt_um_bfcpu (bfCPU) tt_um_rebeccargb_universal_decoder (Universal Binary to Segment Decoder) tt_um_rebeccargb_hardware_utf8 (Hardware UTF Encoder/Decoder) tt_um_rebeccargb_intercal_alu (INTERCAL ALU) tt_um_rebeccargb_vga_pride (VGA Pride) tt_um_wokwi_457215959798165505 (4-bit N frequency divider) tt_um_ppu_aebarthyi (simple_ppu) tt_um_riscyv02 (RISCY-V02) tt_um_pong (Pong) tt_um_LH_TapeoutMultiplier (tt_um_LH_TapeoutMultiplier) tt_um_wokwi_457571222315471873 (7 Seg C) tt_um_wokwi_457571216758012929 (Mikes Second) tt_um_wokwi_457569452934172673 (FirstTinyTapeoutWokwiProject) tt_um_wokwi_457571159626309633 (Tiny Tapeout V1) tt_um_wokwi_457577038845586433 (TinyTapeOut) tt_um_wokwi_457571280506256385 (Tiny tapeouts test gates) tt_um_wokwi_457576742418338817 (calculator) tt_um_wokwi_457571219715001345 (Ami's TT Logic Gates) tt_um_wokwi_457571067547656193 (Mikes First Wokwi design) tt_um_wokwi_457571453314827265 (Tiny tapeout one hot to seven segment display 1-8) tt_um_wokwi_457572218833202177 (4bit adder and hex converter) tt_um_wokwi_463741407580251137 (Lady's First Tapeout) tt_um_wokwi_457571138696714241 (jdisplayer) tt_um_wokwi_457570687900145665 (Tiny Tapeout Test Gates) tt_um_wokwi_457577511431565313 (Tiny Tapeout Test Gates) tt_um_wokwi_457571262875481089 (Tiny Tapeout) tt_um_wokwi_457571417674762241 (TamTries Tiny Tapeout) tt_um_wokwi_457571366985520129 (georgies wokwi design) tt_um_wokwi_457571701752981505 (WilfTT) tt_um_wokwi_457572875733692417 (First WOKWI Design) tt_um_wokwi_457571571887847425 (tiny tapeout gate test) tt_um_wokwi_457571352249873409 (First Wokwi design) tt_um_wokwi_457571405919170561 (Namo's first tapeout) tt_um_wokwi_457571339952163841 (OR Gate with NAND) tt_um_wokwi_457571188658258945 (Abishag's first Wokwi Design) tt_um_wokwi_457571426719781889 (Tiny) tt_um_wokwi_457571268900604929 (tiny tape GDS) tt_um_wokwi_457571949070179329 (Tom Haley Tiny Tape Out Design ) tt_um_alex_ha_192 (alex_ha_192) tt_um_wokwi_457577241913913345 (tiny tapeout test gates ) tt_um_wokwi_457571297367365633 (First Wokwi Attempt) tt_um_wokwi_457571363309211649 (idk yet) tt_um_wokwi_457571305740256257 (Work In progress title) tt_um_wokwi_457579594627462145 (TinyTapeoutProjectDefne) tt_um_wokwi_457571274041781249 (Tiny Tapeout Workshop by Kirsty Tan) tt_um_wokwi_457571233499594753 (Tiny Tapeout Workshop) tt_um_wokwi_457570205537212417 (Tiny Tapeout Test Project) tt_um_ojas_sharma_imperial_ttcpu (ttcpu 4-bit RISC microprocessor) tt_um_wokwi_457571271419289601 (chip one) tt_um_wokwi_457573490746716161 (Name Serial Printer) tt_um_wokwi_457569507958215681 (Tiny tapeout proj) tt_um_wokwi_457577929607958529 (Random 1st Attempt) tt_um_wokwi_457571438667259905 (PD+PFD+FreqDiv) tt_um_wokwi_457571602706552833 (Joe's first Wokwi design) tt_um_wokwi_457571471659666433 (Nicolas' first Wokwi design) tt_um_wokwi_457571148733696001 (Tiny Tapeout Workshop 1) tt_um_wokwi_457572520479222785 (Tiny Tapeout: Buenos días Mundo! ) tt_um_wokwi_457571494688497665 (First Chip) tt_um_wokwi_457571341266031617 (D-Type Flip Flop) tt_um_wokwi_457581344351934465 (WOKWI) tt_um_wokwi_457571462196267009 (Tiny Tapeout) tt_um_wokwi_457571359410603009 (TinyTapeout) tt_um_Terdoo_Osu (Spiking Pattern Recognition Core) tt_um_wokwi_457571319408448513 (Mani TinyTapeout) tt_um_wokwi_457571298662360065 (Tiny Tapeout Test Gates) tt_um_wokwi_457573015156590593 (Lil tapeout) tt_um_wokwi_457576363047649281 (Inverter) tt_um_wokwi_457571216488527873 (Tiny Tapeout Template Copy Paul 1) tt_um_wokwi_457571472208072705 (Tiny Tapeout Test design) tt_um_wokwi_457571381968631809 (Tiny tapeout test) tt_um_wokwi_457571314694049793 (Tiny Tapeout Test) tt_um_wokwi_457571368009979905 (Tiny Tapeout Test Gates) tt_um_wokwi_457571389542502401 (First thing) tt_um_wokwi_457570267471381505 (Tiny Tapeout) tt_um_wokwi_457571563051492353 (CS First Wokwi design) tt_um_wokwi_457577392775721985 ( tiny Tapeout Test Gate) tt_um_wokwi_457570279596067841 (Tiny Tapeout Workshop - AJJ) tt_um_wokwi_457571180646081537 (Alins Password) tt_um_wokwi_457572360568198145 (Tiny Tapeout) tt_um_wokwi_457571270578328577 (Tiny tapeout workshop) tt_um_wokwi_457581625098771457 (Tiny Tapeout First Test Run) tt_um_wokwi_442342513281875969 (First Design) tt_um_wokwi_457581848269362177 (Tiny Tapeout Brainf*ck?) tt_um_sap_alexanderholden (sap1) tt_um_wokwi_457571752214675457 (3bit_ALU) tt_um_wokwi_457571542558115841 (Tiny Tapeout") tt_um_wokwi_457573095390500865 (Tiny Tapeout Workshop Counter) tt_um_wokwi_457571511812802561 (Akash's first Wokwi design) tt_um_wokwi_457577563633889281 (Tiny Tapeouts gate tests) tt_um_wokwi_457576950671858689 (Hymns_GDS) tt_um_wokwi_457571371384299521 (Digital digit display circuit - TINYTAPEOUT) tt_um_rowantylerr_RC_TDC (Resistor Capacitor TDC) tt_um_wokwi_463662181299058689 (2 bit ALU) tt_um_chinghey (Hey FlexCompute-130) tt_um_8b10 (serdes8b10) tt_um_rom_vga_screensaver (VGA Screensaver with embedded bitmap ROM) tt_um_mayamelon_top (Tiny PI Controller) tt_um_JAIMEPRYOR0_VGA_YAY (VGA_YAY) tt_um_2048_vga_game (2048 sliding tile puzzle game (VGA)) tt_um_mng2_2ncos (A Tale of Two NCOs) tt_um_shimmydee_checkers (One-tile ADC) tt_um_urish_simon (Simon Says memory game) tt_um_dheeeraaj_sine_chirp_beacon (DDS Sine Chirp Beacon) tt_um_nicholas_ls194a (Universal Shift Register (SN74LS194A compatible)) tt_um_BellaB05_Hearts (Pink Hearts) tt_um_scottshuynh_ad_astra (ASIC Ad Astra) tt_um_liamolucko_vga (VGA demo) tt_um_lledoux_s3fdp_seqcomb (S3FDP Seq+Comb Stream Core) tt_um_5482582_cat_vga (Cat VGA) tt_um_vga_example_directional_toggle (Directional toggle of VGA playground example) tt_um_jimbok_ro_puf (Ring Oscillator PUF) tt_um_xxsahanaxx_hwsec_glitch (Hardware Security Glitching Attack) tt_um_NguyenHuuHenry_vga_project (VGA_Project) tt_um_irfantekin_analog (tt_um_irfantekin_analog) tt_um_chicagojones_sky26a_trng (Sky26a Advanced TRNG) tt_um_yen (YEN) tt_um_pedometer (Ultra Low Power Pedometer ASIC) tt_um_analog_atenfyr1 (Configurable Self-biasing Miller-compensated OTA) tt_um_aes_sbox (Formally-Verified Constant-Time AES S-Box) tt_um_tcpu_alienflip (tcpu) tt_um_nebula (Sierpinski Fractal Starfield) tt_um_zenith_tx26 (Zenith TX26) tt_um_odgrip_demoscene_ttsky26a (My first demoscene) tt_um_vighnesh_sawant_plane (Plane with a banner) tt_um_glyph_mode_hd (Glyph Mode HD) tt_um_TSARKA_TinyQV (TinyQV Wishbone SoC) tt_um_SimpleCounter (Simple Counter) tt_um_cfar_nobuzzer (CFAR Detector without Buzzer) tt_um_present (Present) tt_um_top (Approximate Logic Unit) tt_um_goose (OIIA-goose) tt_um_riscv_core (Tiny RISC-V) tt_um_dac_test3v3 (Design and Implementation of R-2R Ladder DAC for GPR Application) tt_um_tadc_its (Time Domain ADC) tt_um_algofoogle_vga_matrix_dac (Analog VGA CSDAC experiments) tt_um_jyblue1001_pll (Analog-PLL) tt_um_axi4lite2x2_top (AXI4-Lite 2M-2S Interconnect) tt_um_systolic_top (4x4 Systolic Matrix MAC Accelerator) tt_um_goose_game (Goose Game) tt_um_rongbin99_happyredmapleleaf_audio_chip (Audio Wave Generator Chip) tt_um_fp_id (FinSec-1: AS-68M Fingerprint Verification ASIC) tt_um_game_of_life (Demoscene: Game of Life) tt_um_ds_missile_command (Missile Command) tt_um_cmos_inverter (Reactive Plasma: CMOS Inverter) tt_um_nightplumeaki_tinypipcore (tinypipcore) tt_um_immrudul_w7khan (Mrudul and Wahhaj Demoscene F2025) tt_um_sohamgovande_transformer (Transformer) tt_um_isa084_uart_servo (UART Positioning PWM Interface) tt_um_wokwi_461265571826974721 (Bias Correction Filter) tt_um_8_bit_cpu (8-bit CPU) tt_um_richad (ADPPLS) tt_um_algofoogle_dottee (DOTTEE VGA demo) tt_um_sar_fms (SAR FSM) tt_um_kolontsov_journey (Journey) tt_um_fft_adityaamehra (64 Sample FFT ASIC) tt_um_lambda_clock (Lambda Clock) tt_um_ece298A_analog (ECE298A analog tile) tt_um_toivoh_demo (Orion Iron Ion [TTSKY26a demo competition]) tt_um_kilian_interference (Wave Lattice) tt_um_fabulous_sky_26a (Tiny FABulous FPGA) tt_um_Rats2012_WobblyBits (WobblyBits - A probabilistic computing chip) tt_um_rebelmike_asic_odyssey (2026: An ASIC Odyssey) tt_um_huyatieo_tinyqv_speck (Speck-V SoC) tt_um_mosbius (mini mosbius) tt_um_remedy_cpu (FFD16 cpu 16-bit) tt_um_vga_ocarina (Ocarina on VGA) tt_um_TinyGPU_v3 (Tiniest GPU V3) tt_um_santhosh_ring_osc (Ring Oscillator PVT Sensor & TRNG) tt_um_santhosh_xbar_ctrl (Memristive Crossbar Peripheral Controller) tt_um_santhosh_stdp_ctrl (Digital STDP Learning Controller) tt_um_santhosh_stoch_neuron (LFSR-Based Stochastic Neuron) tt_um_anweiteck_ldo (1V-LDO) tt_um_sriaxi4lite_top (Axi4_Lite) tt_um_bch_code_15_7_2 (Bose-Chaudhuri-Hocquenghem Code) tt_um_mastensg_ttsky26a_demo (Luz) tt_um_pakesson_vga_rocket (VGA Rocket) tt_um_adpll (ADPLL - All-Digital Phase-Locked Loop) tt_um_Bingyao_FCOTA (Self biased Single Ended Folded Cascoded OTA) tt_um_spacewar_top (Spacewar) tt_um_microlane_demo (microlane demo project) tt_um_NE567Mixer28 (ECG Front End) tt_um_wakita_mux8onehot_cap (Mux8onehot Pulldown Mosfet) tt_um_johshoff_metaballs (Metaballs v2) tt_um_tomvdsch_cyclonerunner (CycloneRunner) tt_um_lowprocess_wildcamping (PicoMIPS CPU) tt_um_canvas (Tiny Canvas) tt_um_snrlxd1068_MACs (Linear and Logarithmic MACs) tt_um_pakesson_simon64_128 (SIMON64/128) tt_um_AmitChen1415 (Tiny Blackjack) tt_um_ole_moller_double_dabble_SV (double_dabble_SV) tt_um_toivoh_demo_1tile (Single tile demo [TTSKY26a demo competition]) tt_um_shiho_space_invaders (Tiny Space Invaders) tt_um_analog_RO (Analog RO) tt_um_electron65_vga (VGA Clock Demo) tt_um_wokwi_457571266840151041 (3-Bit ALU) tt_um_katomata (Katomata - 1D Cellular Automata) tt_um_shimomi_analog (analog circuit) tt_um_toivoh_demo_4tile (Four tile demo [TTSKY26a demo competition]) tt_um_IEEE_open_silicon_FOSSEE (Ring oscillator VCO and Differential Amplifier) tt_um_lm_chip_top (Project Long Man: A Delay-Insensitive Interconnect) tt_um_AlephNaNsea_space_time_waves_and_filaments (Space-Time Waves and Filaments) tt_um_spacelizard_apu (Spacelizard APU) tt_um_wokwi_457569490272926721 (Letter S) tt_um_mau_top_4b (SIMD2 Math Accelerator Unit) tt_um_maze (Maze) tt_um_demoscenettsky (Algorithmic Pattern Generator) tt_um_wokwi_457572141968369665 (Arran's tinytapeout project) tt_um_maxluppe_ttsky26a_analog (Standard Digital Logic Cells Analog Comparator) tt_um_grammartile (GrammarTile) tt_um_bubble_sort (IEEE Bubble Sort Engine) tt_um_ahmed_nematallah_12_bit_adc (12-bit ADC) tt_um_bad_ode_plotter_vga (Bad VGA ODE Plotter) tt_um_wokwi_463706339714973697 (Demo 4-bit ALU 74181 variant) tt_um_wokwi_457569853853115393 (Jasper Tiny Tape Out Workshop) tt_um_wokwi_457560507752701953 (Osian Tiny Tapeout) tt_um_wokwi_457571501325987841 (Rola_Tiny Tapeout Template Workshop4Mar26) tt_um_wokwi_457571903121572865 (TT-wokwi-template) tt_um_wokwi_463380823859050497 (My_Name_on_7_Seg_display) tt_um_wokwi_457569584731832321 (Tiny Tapeout 9 Template Copy) tt_um_wokwi_457571826952995841 (Tiny Tapeout Novomorphic Design 1) tt_um_wokwi_457571349142937601 (Tiny Tapeout Secret First Letter Code) tt_um_wokwi_457571261877235713 (Tiny Tapeout Test) tt_um_wokwi_457582867322921985 (Tiny Tapeout Test GDS) tt_um_wokwi_457571135132600321 (Tiny Tapeout Test Gates) tt_um_wokwi_457571331577181185 (Tinytapeout_IA) tt_um_wokwi_457576779101727745 (tiny tapeout test gates) tt_um_wokwi_457571577702202369 (tj wowki) tt_um_wokwi_457572953060951041 (wokwi) tt_um_pettit_galton (Tiny Galton) tt_um_fountaincoder_top_abc (ABC Temporal Coincidence Detector) tt_um_prime_quine (Prime Quine) tt_um_ghtag_trinity_gf16 (Trinity GF16 Dot Product Accelerator) tt_um_LFSR (Configurable Galois LFSR) tt_um_Acrazt05_titan_proccesing_unit (Titan Proccesing Unit (TPU)) tt_um_essen (Digital) tt_um_alu_bns (6-bit Multi-Functional ALU) tt_um_gerardvt_spade_poc (Interactive XOR Plasma (Spade HDL)) tt_um_gerardvt_clash_poc (Interactive Triangle-Wave Plasma (Clash HDL)) tt_um_jackthoene_frogger (Frogger) tt_um_wokwi_463698873100105729 (IEEE Open Silicon 2026: UTB Logic Trivia Challenge: 8-bit Digital Lock) tt_um_wokwi_463666635153364993 (IEEE - Hex Counter and Logic Gate Validator) tt_um_ChristmasTree_MaligayangPasko (ChristmasTree_MaligayangPasko) tt_um_wokwi_463711763041599489 (IEEE Open Silicon 2026: UTB UART Transmitter basic) tt_um_tinytensorcore (TinyTensorCore) tt_um_uwasic_crypto (UWASIC Crypto) tt_um_topadi (time) tt_um_siliconimist (Siliconimist Demoscene) tt_um_neutern_0 (tt_um_neutern_0) tt_um_htfab_hsxo (HSXO) tt_um_madech_8bit_processor_vga (8-Bit Processor with VGA) tt_um_vga_clock (VGA clock) tt_um_usu_AXIS_MVMul (AXI-Stream Matrix Vector Multiplier) tt_um_weird_numbers (Weird Numbers) tt_um_bovi_cable_tester (Cable Tester) tt_um_libokuohai_asap_cpu_v2 (ASAP CPU v2) tt_um_LinusSkucas_pio (Tiny PIO) tt_um_thomas_ep_sensor (EP Sensor v7 (symmetric in-place thicken, Zhao-compliant)) tt_um_rakhanaufm_truerandom (Current-Starved Ring Oscillator Based True Random Number Generator) tt_um_parakeet (parakeet) tt_um_mcml_vco (MCML experiments) tt_um_tpu ( Tensor Processing Unit) tt_um_strasti (8-Bit ALU) tt_um_zed_analog (Analog design) tt_um_axi4lite_top (Axi4_Lite) tt_um_c4m_spsram_direct (TTSKY-SPSRAM-direct) tt_um_Onchip_Folded_Cascode_N_with_Bias (Folded Cascode N Type with Bias from Onchip Research Group) tt_um_htfab_hybrid (Telephone hybrid) tt_um_ilamparuthi_cfar (CFAR Radar Detector) tt_um_pakesson_glitcher (Glitcher) tt_um_advaittej_stopwatch (V-SPACE Demo: Command & Control Chronograph) tt_um_william_pll (Smartcard PLL Clock Generator) tt_um_Melody_Generator_JLANordhal (Melody Generator based on Markov Chains) tt_um_d_monteiro (Neuromorphic Processor (SNN)) tt_um_jacob_kebaso_4bit_cpu (Nibble - 4-bit CPU) tt_um_signal_detector (Signal_Detection_Processor) tt_um_catalinlazar_tinycore8 (TinyCore8) tt_um_chidam_secengine (Tiny Secure Telemetry Engine) tt_um_urish_usb_cdc (USB CDC (Serial) Device) tt_um_josenbm (9-Channel Frequency Counter with I2C + SPI DAC & ADC) tt_um_shalindra_vga_rings (Variable Speed and Colour Select VGA Rings) tt_um_dinukuk_MYVGA_GLIDER (DKTT01 - VGA Glider) tt_um_fibonacci_JoaoBortolace (Fibonacci Counter) tt_um_wokwi_461639934990157825 (4 bit unlock (IEEE)) tt_um_ctw_ldo (LDO Regulator Skywater 130nm)