293 Environmental Mapping Processor

293 : Environmental Mapping Processor

Design render

Environmental + Spatial Edge Processor

How it works

The Environmental + Spatial Edge Processor is a small digital ASIC designed for low-power environmental monitoring and location-aware field data collection.

<img width="1536" height="1024" alt="Tricorder" src="https://github.com/user-attachments/assets/115af43a-db4c-475f-84a1-699c713daaa4" />

The design combines two hardware-processing functions:

  1. Environmental processing for temperature, humidity, and atmospheric pressure.
  2. Spatial processing for determining whether a device is within a configurable distance of a target location.

The ASIC is intended to operate as part of a portable environmental mapping device. External sensors and a GNSS receiver provide measurements and position information through a small low-power controller, while the ASIC performs the environmental and spatial edge-processing operations.


Environmental processing

The ASIC supports three independent environmental measurement channels:

  • Temperature
  • Relative humidity
  • Atmospheric pressure

An external environmental sensor, such as a BME280, provides digitized measurements to a small external controller. The controller converts the measurements into the unsigned 8-bit representation expected by the ASIC.

<img width="382" height="606" alt="Screenshot 2026-08-21 at 2 32 38 PM" src="https://github.com/user-attachments/assets/b4b6c5e3-8ae8-4173-8495-e13103d5c842" /> <img width="431" height="441" alt="Screenshot 2026-08-21 at 4 21 56 PM" src="https://github.com/user-attachments/assets/992cb916-2199-4820-addc-33574a0d1ac5" />

  • Latest measurement
  • Minimum measurement
  • Maximum measurement
  • Eight-sample average
  • Programmable low threshold
  • Programmable high threshold
  • High/low anomaly detection
ui_in[1:0] Data type
00 Temperature
01 Humidity
10 Pressure
11 Spatial data

When ui_in[2] (sample_valid) is asserted, the ASIC captures the value on uio_in[7:0].

Each environmental channel independently maintains:

  • Latest measurement
  • Eight-sample average
  • Programmable low threshold
  • Programmable high threshold
  • Low/high anomaly detection

The eight-sample average is calculated using an accumulator. Eight consecutive measurements of the same environmental type are summed and divided by eight using a three-bit right shift.

This avoids the area cost of implementing a general-purpose hardware divider.

Reading environmental results

ui_in[3] selects the environmental result:

ui_in[3] Result
0 Latest measurement
1 Eight-sample average

ui_in[4] is unused.

The selected 8-bit result is presented on uo_out[7:0].

ui_in[5] clears the accumulated averaging state.

Minimum and maximum measurements

Lifetime minimum and maximum measurements are intentionally not stored inside the ASIC.

In the complete portable system, the external low-power controller can maintain min/max values in its own memory and optionally store long-term observations on a microSD card.

Moving this historical bookkeeping outside the ASIC reduces silicon utilization while preserving the more specialized environmental and spatial processing in hardware.


Programmable environmental thresholds

Each environmental channel contains programmable low and high thresholds.

The operating mode is selected using ui_in[7:6]:

ui_in[7:6] Operation
00 Submit normal sample/current position
01 Program low threshold/spatial target
10 Program high threshold/spatial radius
11 Read combined status

For example, a temperature channel could be configured with:

LOW  = 50
HIGH = 100

A temperature measurement of 75 produces no anomaly.

A measurement of 110 produces a high-temperature anomaly.

A measurement of 40 produces a low-temperature anomaly.

The ASIC performs these comparisons directly in hardware.


Spatial processing

The ASIC also contains a compact spatial-processing engine.

It operates on an 8 × 8 local coordinate grid using 3-bit X and Y coordinates:

X = 0–7
Y = 0–7

The external controller is responsible for obtaining real-world position information, such as GNSS latitude and longitude, and translating that position into the local coordinate representation used by the ASIC.

The ASIC itself then performs the spatial calculations.

It stores:

  • Current X coordinate
  • Current Y coordinate
  • Target X coordinate
  • Target Y coordinate
  • Target radius

Manhattan distance engine

The ASIC calculates Manhattan distance between the current position and the configured target:

distance =
    |current_x - target_x|
    +
    |current_y - target_y|

For example:

Target  = (3, 4)
Current = (4, 5)

The ASIC calculates:

|4 - 3| + |5 - 4|
    = 1 + 1
    = 2

The calculated distance can be read from the ASIC output when the spatial channel is selected.


Spatial radius / zone detection

A programmable radius defines a target zone.

The ASIC evaluates:

inside_target_zone =
    distance <= target_radius

For example:

Target  = (3, 4)
Radius  = 3
Current = (4, 5)

produces:

Distance = 2
2 <= 3

Therefore:

inside_target_zone = 1

If the device moves to:

Current = (7, 7)

the ASIC calculates:

|7 - 3| + |7 - 4|
    = 4 + 3
    = 7

Since:

7 > 3

the device is outside the configured target zone.

Spatial zone detection does not become active until a valid current location has been supplied.


Location-aware environmental events

The environmental and spatial engines can operate together.

The ASIC generates a location-aware environmental event when:

environmental anomaly
        AND
inside target spatial zone

are both true.

This allows the hardware to answer questions such as:

Is an abnormal environmental condition occurring within the geographic area I am monitoring?

For example:

Target location = (3, 3)
Radius          = 2
Current         = (4, 3)
Temperature     = 120
High threshold  = 100

The spatial engine determines that the current location is inside the target zone.

The environmental engine determines that the temperature exceeds its programmed threshold.

The ASIC therefore asserts the combined location-aware environmental event.

If the device moves outside the target zone, the environmental anomaly may remain active while the combined location-aware event becomes inactive.


Status output

When ui_in[7:6] = 11, uo_out[7:0] provides the combined status byte:

Bit Meaning
7 Location-aware environmental event
6 Any environmental anomaly
5 Inside target spatial zone
4 Temperature high
3 Temperature low
2 Humidity high
1 Humidity low
0 Pressure anomaly

This provides a compact hardware status interface for an external controller or display system.


How to test

Set ena high and reset the ASIC by driving rst_n low for at least two clock cycles, then drive rst_n high.

Submit an environmental measurement

  1. Select the environmental channel with ui_in[1:0].
  2. Place the unsigned 8-bit measurement on uio_in[7:0].
  3. Set ui_in[7:6] = 00.
  4. Assert ui_in[2] (sample_valid).
  5. Allow a rising edge of clk.
  6. Deassert sample_valid.

For example, submitting these eight temperature samples:

64, 66, 68, 70, 72, 74, 76, 78

produces:

Latest  = 78
Average = 71

Temperature, humidity, and pressure averaging state is maintained independently.


Configure a spatial target

Select the spatial channel:

ui_in[1:0] = 11

Set:

ui_in[7:6] = 01

Place the target coordinates on:

uio_in[5:3] = target X
uio_in[2:0] = target Y

Assert sample_valid for one clock cycle.


Configure the target radius

Select:

ui_in[1:0] = 11
ui_in[7:6] = 10

Place the radius on:

uio_in[3:0]

Assert sample_valid for one clock cycle.


Submit the current position

Select:

ui_in[1:0] = 11
ui_in[7:6] = 00

Place the current coordinates on:

uio_in[5:3] = current X
uio_in[2:0] = current Y

Assert sample_valid for one clock cycle.

The ASIC then calculates the Manhattan distance and determines whether the current location is inside the configured target radius.


Cocotb verification

The Cocotb test suite verifies:

  • Latest temperature, humidity, and pressure values
  • Eight-sample averaging
  • Independent environmental channels
  • Clearing accumulated averaging state
  • Programmable environmental thresholds
  • Environmental anomaly detection
  • Spatial target programming
  • Spatial radius programming
  • Current-position updates
  • Manhattan distance calculation
  • Inside/outside target-zone detection
  • Combined location-aware environmental events

The RTL tests can be run using:

cd test
make

GitHub Actions additionally runs the Tiny Tapeout automated test, documentation, synthesis, physical-design, and precheck workflows.


External hardware

The ASIC performs digital processing and does not directly contain environmental sensors, GNSS reception, a display, or long-term storage.

A future portable implementation is intended to combine the ASIC with:

  • Low-power GNSS receiver with integrated antenna
  • BME280 temperature/humidity/pressure sensor
  • Low-power microcontroller
  • Small Memory LCD
  • microSD storage
  • Rechargeable LiPo battery
  • Low-power voltage regulation and charging circuitry
  • Wake/power button

The BME280 is not a permanent requirement. Other digital environmental sensors could be used as long as the external controller translates their measurements into the input representation expected by the ASIC.

The controller would handle:

  • GNSS communication
  • Environmental sensor communication
  • Conversion of GNSS coordinates into the ASIC's local X/Y grid
  • Lifetime minimum/maximum tracking
  • Display control
  • microSD logging
  • Power-management coordination

The ASIC remains responsible for the dedicated edge-processing operations:

  • Environmental averaging
  • Threshold comparisons
  • Environmental anomaly detection
  • Manhattan spatial distance
  • Target-zone detection
  • Combined location-aware environmental event detection

This architecture allows the environmental and spatial calculations to remain implemented as dedicated digital hardware while leaving communication, storage, display, and long-term historical data management to the external low-power controller.

-- #Other Parts Needed: <img width="1203" height="581" alt="Screenshot 2026-08-21 at 3 50 59 PM" src="https://github.com/user-attachments/assets/56e370c9-2b0a-488f-895b-e05cb9a032b9" />

IO

#InputOutputBidirectional
0sensor_type[0]result[0]sensor_data[0]
1sensor_type[1]result[1]sensor_data[1]
2sample_validresult[2]sensor_data[2]
3output_select[0]result[3]sensor_data[3]
4output_select[1]result[4]sensor_data[4]
5clear_statsresult[5]sensor_data[5]
6mode[0]result[6]sensor_data[6]
7mode[1]result[7]sensor_data[7]

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 Mux Mux Mux Mux Mux Mux tt_um_chip_rom (Chip ROM) tt_um_factory_test (Tiny Tapeout Factory Test) tt_um_teuscher_eml_fabric (EML Fabric — analog exp/ln compute cells) tt_um_wokwi_465656663515438081 (Convert binary to hex on 7 segments) tt_um_nikita_face_detect (FPGA Face Detection) tt_um_obstacle_avoider (Obstacle Avoider State Machine) tt_um_poket_animal (Poket Animal) tt_um_drewbabel_uart (Configurable FIFO-buffered UART with APB CSR) tt_um_wokwi_469163916296039425 (TT Workshop Test) tt_um_jonahsaunders_slsvga (tt_um_jonahsaunders_slsvga) tt_um_fatigue_monitor (Fatigue Monitor (PPG Pulse-Interval Variability)) tt_um_vedam_dual_port_ram (Dual Port RAM) tt_um_wokwi_469739097665887233 (Tiny Tapeout Template Copy) tt_um_spdif_to_i2s_kilpelaj (S/PDIF to I2S receiver) tt_um_morse_converter (ASCII to Morse Code Converter) tt_um_wokwi_469806914724000769 (Spin, Text and VGA) tt_um_wokwi_469701770572338177 (TinyTapeout) tt_um_garnetkoebel_communotron (Communotron) tt_um_wokwi_469449970323169281 (full adder) tt_um_duzabf_2026_ow (A WIP Online Workshop 2026 project) tt_um_wokwi_469807513638180865 (Tiny Tapeout NAK) tt_um_ttsky26c_oguz (ttsky26c-202607-mehmetoguzderin by Oguz) tt_um_kashif_fp4_sparse_tpu (FP4 Sparse Mini-TPU) tt_um_moein_maleki_arm16 (arm16) tt_um_wokwi_469453454643027969 (ON Check System) tt_um_felixcheng_neural_core (Neural Compute Core (V0.15)) tt_um_wokwi_469788774011248641 (Spin Display - select-reset-reverse) tt_um_wokwi_469449443070765057 (Samuel's first chip) tt_um_wokwi_469449007236383745 (testinttrsv01) tt_um_vga_ca (VGA cellular Automaton) tt_um_dosci_500hz (Digital Oscillator 500 Hz) tt_um_wokwi_469747443569078273 (XOR test project - Tiny Tapeout workshop) tt_um_wokwi_469585758593419265 (spinner) tt_um_fp16_mac (FP32 Math Unit) tt_um_1DC_vga_dyoa (VGA Design Your Own ASIC) tt_um_haydenevans_top (Systolic Processing Element) tt_um_wokwi_469806252715961345 (TT_Proj_SA) tt_um_wokwi_469448996577604609 (Tiny Tapeout - Reto) tt_um_ehofmannbr_pmodvga_06 (VGA Color Tiles) tt_um_lfglabs_lsc1u (leanSilicon LSC-1 Micro arithmetic kernel) tt_um_wokwi_469804280240495617 (Zetterling SRAM) tt_um_wokwi_469806066852696065 (TileTestchase) tt_um_wokwi_469449118072978433 (binary_add_v1) tt_um_voltage_amplifier_neuron (Voltage Amplfier Neuron) tt_um_wokwi_469449686545956865 (Tiny Tapeout Template Copy_JinoShiono) tt_um_wokwi_469448887171240961 (Tiny Tapeout - Mini CORDIC) tt_um_wokwi_469809033878555649 (Tiny Tapeout Yummy Chip - bgianfo) tt_um_sirajmuhammad_bpsk_mod (BPSK Baseband Modulator) tt_um_K_coder_9 (TENs device frequency controller) tt_um_wokwi_469758119198926849 (LL_6BitShiftRegister_ToggleEnabledFeedback) tt_um_Asaadkhex_6x6u (6x6 UART Bussbar Switch) tt_um_wokwi_469809198944364545 (tt8-8bit-cpu Copy) tt_um_wokwi_469710279607305217 (Tiny Tapeout Submission KL - SiliDize) tt_um_wokwi_469629799092815873 (2:1 Mux with differential outputs) tt_um_poundbrad_reciprocal_counter (Two-Channel Reciprocal Counter) tt_um_joonatanalanampa_cordic (CORDIC-1) tt_um_x4ntha_nova (Data General Nova 1200 CPU) tt_um_quick_bus (quick_bus) tt_um_wokwi_470058539448408065 (Nigel's Tiny Tapeout Project) tt_um_wokwi_470058244557293569 (Tiny Tapeout Kabisan) tt_um_wokwi_470058241869790209 (Abdi's desgin) tt_um_wokwi_470060107756808193 (Sukhraj Deol's Chip) tt_um_wokwi_470058578588614657 (The Chip of Master George Stead) tt_um_wokwi_470069286344622081 (Tiny Tapeout ISHA) tt_um_ucl_display (Flashing... lights) tt_um_wokwi_470058746279043073 (Arihant's first Wokwi design) tt_um_wokwi_470060103260512257 (Tiny Tapeout Jabriel Copy) tt_um_wokwi_470069460157662209 (haadi's tiny tapeout) tt_um_wokwi_470058418706939905 (Kitty) tt_um_wokwi_470058490118136833 (Iris) tt_um_wokwi_470060098828179457 (Temz_ tiny tapeout) tt_um_wokwi_470058023187099649 (Osman WOKWI project 1) tt_um_wokwi_470057988621827073 (Viraj Tiny Template Full Adder TEST) tt_um_wokwi_470069802034377729 (Tiny Tapeout Template Copy) tt_um_wokwi_470070136685362177 (full adder) tt_um_wokwi_470070449402211329 (Anastasia Copy (2)) tt_um_wokwi_470059864883484673 (Keyaan’s first Wokwi design) tt_um_wokwi_470071200164912129 (full adder tiny tapeout Copy) tt_um_wokwi_470060671178857473 (SBUSixth First Chip Design Mentored by Tiny Tapeout) tt_um_wokwi_470099562753182721 (Isaac Tiny Tapeout) tt_um_wokwi_470120538476737537 (efwz8voices) tt_um_lelo_gr01_analogicus (LELO-GR01) tt_um_lelo_gr04_analogicus (LELO-GR04) tt_um_lelo_gr02_analogicus (LELO-GR02) tt_um_pump_out (60 Hz RMS Pump-Out Controller) tt_um_urish_simon (Simon Says memory game) tt_um_lelo_gr03_analogicus (LELO-GR03) tt_um_wokwi_470299374901578753 (Shrimp) tt_um_vga_clock (VGA clock) tt_um_frequency_counter (Frequency counter) tt_um_z2a_rgb_mixer (RGB Mixer demo) tt_um_mattvenn_r2r_dac_3v3 (Analog 8 bit 3.3v R2R DAC) 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_ogggggish_ota_ldo (SSF Capless LDO) tt_um_hariri4534_audioplayback (audioplayback) tt_um_wokwi_470637150792846337 (Joni - Tiny Tapeout Teardown2026 Workshop) tt_um_wokwi_470635013242210305 (Tom's first Wokwi design) tt_um_wokwi_470635780983408641 (Tiny Tapeout-AyeshaTeardown26) tt_um_wokwi_470639152626282497 (KeKoaM Tiny Tapeout) tt_um_wokwi_470637073520124929 (Tiny Tapeout workshop) tt_um_toby43479_iox (IO Expander with PWM) tt_um_wokwi_470635764113915905 (Divider Demo) tt_um_wokwi_470635580461052929 (Mann-teardown-project) tt_um_wokwi_470639672984256513 (KCs 001 TinyTapeout Design) tt_um_wokwi_470635507665754113 (Tiny Tapeout Template Copy) tt_um_wokwi_470637047364443137 (Pixel-Curio-Chip) tt_um_terihear_tinytearout (TinyTearout) tt_um_wokwi_470643025042834433 (TT 2026) tt_um_wokwi_470637360757626881 (Tiny Tapeout Template Copy) tt_um_wokwi_470635627278929921 (Tiny Tapeout Workshop) tt_um_wokwi_474471160110403585 (Cylon-Scanner) tt_um_wokwi_470646659230201857 (bloopbloop) tt_um_pthomas_sigma_delta (Continuous-Time Sigma-Delta ADC (1st order)) tt_um_sky_tpu_3x3 (Sky TPU 3x3) tt_um_tpcannon7_fir (tinyfir) tt_um_bruniliomuy_top (Fir_Filter) tt_um_semiqa_diff_opamp (Diff-In-Diff-Out-OpAmp) tt_um_TinyProcessor_naiyar_ (TinyProcessor) tt_um_CCDmos3D (ADC for CCDmos3D pixel) tt_um_snn_lif_neuron (snn_lif_neurons) tt_um_galaguna_NanoSys_fit (Nano-120_CPU@ler.uam.mx) tt_um_rowles_regime (Single-Bit Macro Regime Classifier) tt_um_rowles_fedmodel (The Fed Model (F1/F2)) tt_um_sky26c (tt_sky26c) tt_um_aka_regfile_ecc (regfile_ecc) tt_um_fwilson12_mac (int8 MAC) tt_um_davidbroughsmyth_ecg_sar12 (heart_monitor_adc_art) tt_um_foxworks_picorv32 (TCD Foxworks PicoRV32) tt_um_saltworks_ndf_c32 (Neural dataflow fabric — bit-serial MAC cells on a self-routing switch) tt_um_yjeum11 (DTMF (Touch-Tone) decoder) tt_um_vedic_mult (4-bit Vedic Multiplier) tt_um_atx_phased_interferometer (Acoustic Interferometer) tt_um_tilesos_dual_adc (Dual-Path Noise-Shaping ADC) tt_um_darga_cirom (Darga CiROM digital read + ternary MAC) tt_um_azara_cirom (Azara CiROM ternary read) tt_um_spi_reg_bank (8-bit Modified RISC-V) tt_um_aialaqili_updown_counter (4-bit Up/Down Counter) tt_um_noahzperez29_riscv_core (Noah RISC-V Core) tt_um_fp8_fpu (FP8 (E4M3) Floating-Point Unit) tt_um_costinemanuelv_gps_daily_trigger (GPS Daily Trigger) tt_um_ja_achtung_1x1 (JA Achtung Compact) tt_um_ja_achtung_1x2 (JA Achtung Full) tt_um_pwm_spice (spice-pwm-tapeout) tt_um_wecallemjazzyfact_bgr_ldo (BGR + LDO 3.3V/1.8V Integrated IP) tt_um_lelo_temp_wulffern (LELO-TEMP) tt_um_wokwi_472389622799861761 (3-Bit 101 Pattern Detector) tt_um_LnL_SoC (Lab and Lectures SoC) tt_um_dash_lucas_risc (risc_processor) tt_um_serdes_ephotonics (UCIe-style SERDES with analog TX driver & RX slicer) tt_um_joram200 (Kalman Filter Hardware Accelerator) tt_um_colbywonn_poly_synth (Poly Synth v1.0) tt_um_nobleg30_uart_vga_scroller (UART VGA Text Scroller) tt_um_multi_precision_mult (Multi-Precision Multiplier) tt_um_pratibha_munnangi_qkt_mac (QKT MAC Accelerator) tt_um_akankaan_bf16_fma (BF16 Fused Multiply-Add (FMA)) tt_um_rtfce (RTFCE - Reconfigurable Temporal Fault/Constraint Engine) tt_um_hdc_classifier (HDC Classifier) tt_um_preethi8a_adaptive_lfsr_prng (Self-Seeding Adaptive 16-bit Galois LFSR PRNG) tt_um_dilip951_cpu_systolic_array (Reconfigurable mixed-precision 2x2 systolic MAC array) tt_um_pqc_ntt_bfly (Crypto-Agile NTT Butterfly (ML-KEM / ML-DSA / FN-DSA)) tt_um_mlkem_coefficient_integrity (Fault-Aware Constant-Time FO Backend for ML-KEM) tt_um_vital_ap (VITAL-AP: Adaptive Pixel Register) tt_um_olaf8 (OLAF-8: Bounded-Memory Online Adaptive Fuzzy Inference) tt_um_Median_MAD (Streaming Median-MAD Estimator) tt_um_tnt_mosbius (tnt's variant of SKY130 mini-MOSbius) tt_um_undip_ann_q610 (UNDIP ANN Accelerator (SPI + bring-up self-test)) tt_um_cpu8 (CPU8) tt_um_vaishnavipatil5_configurable_cam (Configurable CAM with Masked Pattern Matching and Priority Resolution) tt_um_gina_env_monitor (Environmental Mapping Processor) tt_um_manasvibhat_bloom_filter (Bloom Filter Membership Tester) tt_um_amazing_sage_snn (LIF Neuron SNN) tt_um_nkanderson_lut_snn (LUT Spiking Network Classifier) tt_um_bigmanraffa_clm (Clementine: 4-lane int8 SIMT GPU) tt_um_adityarprasad_fft (Adaptive-Precision FFT) tt_um_oscillating_bones (Oscillating Bones) tt_um_silicon_edge_ns_sar_adc (NS SAR ADC) tt_um_sishi888_tinymind (TinyMind SoC) tt_um_afra_123_ecc_memory (Runtime-Reconfigurable ECC Memory) tt_um_kenchangh_mnist (MNIST Digit Recognition) tt_um_ece298a_8_bit_cpu_top (8-Bit CPU) tt_um_libormiller_SIMON_V2 (SIMON V2) tt_um_WaiMingLee888_nanov_1tile (NanoV RV32E one-tile RISC-V processor) tt_um_four_bit_nn_accel (4-bit Neural Network Accelerator) tt_um_rsa_simple (RSA Simple Encryptor) tt_um_synapticrw_lif_neuron (LIF Neuron (SynapticRW Teardown 2026)) tt_um_smunigan_ipv4_filter (IPv4 Header Filter) tt_um_jjy_spi_watchdog (SPI-Configurable Watchdog Timer) tt_um_osian_beam_controller (Programmable Metasurface Beam Controller) tt_um_namramazhar_popcnt_shiftreg (17-bit Wallace-tree POPCNT with shift-register input) tt_um_obookstay_puf (An arbiter PUF) tt_um_arminkardovic_montenegro_securekey (Montenegro SecureKey) tt_um_rcyaon_droop (All-Digital Supply Droop Detector) tt_um_ctw_spms (CTW-SPMS — Programmable Smart Power Management & Supervisor) tt_um_taiwoopesade_tempo_detector_sky26c (Hardware Audio Tempo Detector) tt_um_wokwi_470059878406973441 (Ehan's first TinyTapeout Project) tt_um_wokwi_470637170309995521 (My First Wokwi Thing!) tt_um_wokwi_470637401137246209 (Teardown Tiny Tapeout) tt_um_wokwi_469443433165025281 (Tiny Tapeout First Design Beth Plummer) tt_um_wokwi_472423526521678849 (4-bit to 5x7 Matrix Decoder for Tiny Tapeout) tt_um_wokwi_470057961258181633 (Tiny Tapeout Template Kavana) tt_um_wokwi_470057993933917185 (ivane- Tiny Tapeout (full adder)) tt_um_wokwi_470088776251343873 (training_project_kaylem) tt_um_neuropong (NeuroPong) tt_um_tamagotchi (TamaGotThis) tt_um_group02_seethebeat (SeeTheBeat) tt_um_kul_chromechain (Chrome Chain) tt_um_baked_weights (Baked-Weights Shakespeare GPT) tt_um_gilangfajrul_sar_adc (sar-adc) tt_um_Logy_FMAC (FMAC) tt_um_porkfreezer_rrio_opamp (RRIO Op-amp) tt_um_diff_engine (DSLX finite_difference) tt_um_dragonochi (WISH) tt_um_siliconsonics (ultrasonic sonar: range and bearing) tt_um_kul_conway (Interactive Conway's Game of Life) tt_um_algofoogle_ttsky26c_analog (Assorted analog in 1 tile) tt_um_mariavictoriaalm_qubit_sim ( tt-2qubit-sim) tt_um_andre_dpe (Dot product engine) tt_um_rmranjitkarNULL_pong_top (last_minute_Pong) tt_um_SAR_ADC (CTW LDO and Dynamic Comparator) tt_um_fabulous_sky_26c (Tiny FABulous FPGA) tt_um_tomvdsch_tiny32_soc (Tiny32 RV32IMA Zephyr-target SoC) tt_um_np523_pong (Pong) tt_um_usfq_adc_procmon (USFQ 8-bit Tracking ADC and Process Variation Monitor) tt_um_rangfuu_alu (Tiny ALU PD) tt_um_wokwi_473800139156677633 (Tiny Snake with PRISM 8) tt_um_mini_nn (Four-MAC Core Neural Network Inference Engine) tt_um_kianv_rv32_regfile (KianV uLinux RISC-V regfile edition) tt_um_2048_vga_game (2048 sliding tile puzzle game (VGA)) tt_um_urish_rings (VGA Rings) tt_um_silicon_art_vga_screensaver (VGA Screensaver with Silicon Art ROM) tt_um_rom_vga_screensaver (VGA Screensaver with embedded bitmap ROM) tt_um_krisjdev_manchester_baby (Manchester Baby) tt_um_urish_sic1 (SIC-1 8-bit SUBLEQ Single Instruction Computer) tt_um_ThomasCowieEngineering_LMC (Little Man Computer CPU) tt_um_pranavUl_ascon_aead128 (Ascon bit-serial permutation engine) tt_um_orca (ORCA — Online Reconfigurable Circuit with Adaptation) tt_um_krisjdev_artwork (Silicon Artwork) tt_um_htfab_caterpillar (Simon's Caterpillar) tt_um_htfab_vga_tester (Video mode tester) Available Available Available Available Available Available Available Available Available Available