33 60 Hz Grid-Forming ASIC with Dump-Load Control

33 : 60 Hz Grid-Forming ASIC with Dump-Load Control

Design render
  • Author: Eric Pearson
  • Description: a CORDIC-locked grid-forming reference + linear dump-load controller ASIC for driving micro-inverters
  • GitHub repository
  • Open in 3D viewer
  • Clock: 48000000 Hz

60 Hz Grid‑Forming ASIC with DC‑Link Dump‑Load Control

A TinyTapeout ASIC for grid‑aware AC generation and power balancing

This ASIC implements a self‑contained, grid‑aware control loop capable of generating a clean 60 Hz reference waveform while simultaneously regulating real‑power flow using a DC‑link dump load. It is designed for small AC micro‑systems where PV inverters, a low‑power grid‑former, and a resistive dump load must coexist without external controllers.

The chip senses the AC and DC waveforms, compares DC to a Vref and AC to an internal CORDIC‑generated reference, and adjusts a DC‑side dump FET to maintain long‑term phase and amplitude stability. All control is performed on‑chip using add/shift arithmetic, a fast error accumulator, a slow IIR loop, and a minimum‑pulse‑width PWM engine.

Block Diagram

---

Core Features

  • CORDIC‑locked 60 Hz sine generator
    Produces a stable, phase‑accurate reference for a low‑power H‑bridge grid‑former.

  • AC/DC sensing (dual ADC input)
    Samples the AC and DC waveforms at 3 MHz and compares it to the internal reference.

  • AC/DC Dual Loop control
    Forms linear and stable control loops without multipliers.

  • DC‑link dump‑load PWM output
    Drives a single high‑voltage FET with enforced 4 µs minimum ON/OFF times.

  • Four real‑time tuning gates
    External PWM or logic‑level inputs adjust loop behavior on the fly:

    • dc_vref — DC Link Reference voltage input
    • gain_sine — trims generated sine amplitude
    • gain_out — Output gain trim
    • gain_ac — AC gain
    • gain_dc — DC gain
    • mode_ac — select 1/4 cycle AC operation
  • Safe, simple power topology
    Intended for use with a rectified 240 V AC DC‑link (VFD‑style front end) and a resistive dump load such as a water heater.

System Diagram

---

I/O Summary

Inputs (ui)
ui[0]  ac_sdata      # AC ADC serial data input (3 MHz sample stream)
ui[1]  dc_sdata      # DC ADC serial data input (3 MHz sample stream)
ui[2]  dc_vref       # DC Vref target voltage for DC Link
ui[3]  gain_sine     # Sine amplitude trim (generation gain)
ui[4]  gain_out      # Dump-PWM gain trim (max dump power)
ui[5]  gain_ac       # AC Gain trim
ui[6]  error_dc      # DC Gain trim
ui[7]  ac_mode       # Select 1/4 cycle ac mode

Outputs (uo)
uo[0]  adc_cs          # ADC chip-select / sample strobe
uo[1]  gen_pwm_p       # Grid-former PWM (positive leg)
uo[2]  gen_pwm_n       # Grid-former PWM (negative leg)
uo[3]  dump_pwm        # DC-link dump FET PWM (4 µs min pulse width)
uo[4]  ac_underflow    # phase error
uo[5]  ac_overflow     # ac gain too high
uo[6]  dc_underflow    # Insufficent power
uo[7]  dc_overflow     # Overpower, dc gain too high

---

Intended Use Case

This ASIC is designed for experimental AC micro‑systems where:

  • a low‑power grid‑former establishes the AC waveform
  • PV inverters inject unpredictable power
  • AC Appliances use less energy than available
  • a DC‑link dump load must absorb surplus energy
  • the system must remain stable without external controllers

The chip maintains long‑term phase and amplitude alignment by modulating the dump load based solely on AC‑side sensing.

---

Status

  • Preliminary Datasheet
  • RTL complete
  • Clean synthesis
  • Verified P&R on 1×2 tile
  • Ready for TinyTapeout submission
  • verification tests
  • Ported to Forge 1k fpga
  • Max10 Fpga Simulation Environment

The Experimental Board (XB) makes building practical systems easier

XB - Experiment Board

The Development Board (DB) is used to develop and bring up the GPC chip and XB module by giving full chip IO access, as well as an example system design suitable for benchtop experiments with provisions to scale up in power with detachable AC and DC power modules. Pmods mapped to the Tiny Tapeout pinout provide a direct plug in path for when tapeouts return.

DB - Delvelopment Board

Why is it?

Use my 10kw grid-tied solar system to power my home on the second day of a power outage.

A grid tied solar system becomes useless without the grid. Hybrid systems involve using batteries fix this, but are a big expense. If a grid tied solar system is disconnected from the grid and provided with a simulated grid the solar system will generate hydro AC. The issue is that grid tied inverters work by maximizing the energy delivery without restriction knowing that the grid can accept it, and it will vary with available sunlight. If the energy is not dissipated the voltage and frequiency of the simulated grid will be driven out of spec and the grid tied inverters will shutdown (usually for at least 5 min).

The energy from the sun needs to be always and exactly dissipated. This dissipation can be partially done by any electrical devices in the home, but something else needs dissipate the remainder. Heating water is a good way of dumping energy.

A semiconductor chip is proposed which will generate a reference 60Hz AC, and control dumping extra energy into a resistive load without needed a battery system (ref Datasheet ). I design up a minimum usable Schematic and PCB board (kicad files in /pcb).

Its a good fit for a tiny tapeout chip with low I/O count PWM and serial data, and 20ns PWM edge resolution gives fine control, while maintaiing minimum pulse widths. It also fits a forge 1k otp part.

Fitting this device into a tiny cost would remove all cost from the control part of the problem. Mounted on a little experimental PCB board it would be a $30 control solution.

How it works

A free running angle counter is input into a cordic rotational block and polarity corrected to calculate a 60Hz sine wave. The sine wave is gated and then accumulated in PWM modulator produce bi-polar PWM signals which can be used to drive an H Bridge and the low side of a transformer, with the high side providing the grid reference. The 'grid' is rectified into a DC Link, with PWM switching into a resistive load. The DC and AC 'grid' voltages are sampled by ADC. AC is compared to the sine wave while DC is compared to a PWM provided DC Vref. AC and DC Loops accumulate the pseudo-energy (dv*dt) error, compared against a positive thresholds and used to gate |sin| to drive a dump FET while guaranteeing minimum PWM pulse widths (4us).

How to test

make -B FST=

External hardware

It will need a real or model system to test:

  • Grid-tied solar system, sunlight
  • Hbridge and drivers
  • Step up transformer
  • Bridge Rectifier, DCLink Capactors
  • Dump FET and driver
  • Resistive Water Heater, water
  • ADC with isolated instrumentation.
  • external control panel (pwm base loop controls))
disclaimer

This ASIC is an experimental research design and is not intended for direct connection to mains power or use in certified grid‑tie systems.

IO

#InputOutputBidirectional
0adc_sdata0adc_cs
1adc_sdata1grid_pwm_p
2gain_sinegrid_pwm_n
3gain_outdump_pwm
4gain_acac_underflow
5gain_dcac_overflow
6gain_vdcdc_underflow
7mode_acdc_overflow

Chip location

Controller Mux Mux Mux Mux Mux 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_Vincent2405_adder_tree (BSD Convolution Adder Tree) tt_um_BastiBudde_i2c_slave_sensor (I2C Slave Template with Emulated Sensor) tt_um_60hz_load (60 Hz Grid-Forming ASIC with Dump-Load Control) tt_um_spi_config_reg (Simple SPI configuration for analog designs) tt_um_ex_drosen766 (Project) tt_um_spi_cpu_top (SPI-CPU) tt_um_d5smith_mfa (Music for ASICs) tt_um_i2c_master (I2C Master Controller) tt_um_aswarby_mac (Aswarby INT8 MAC) tt_um_arrakeen_spsram_direct (TT-Arrakeen-SPSRAM-direct) tt_um_alu (8-bit Interactive ALU) tt_um_JCT_PoC (ttgf jct PoC) tt_um_jct_lea (LEA-128) tt_um_cwru_cpu (CWRU CPU) tt_um_teapot (100Mbps Ethernet Accelerator Wrapper) tt_um_jte_cordic (CORDIC sin/cos generator) tt_um_aidenkoch4 (Three Channel RGB PWM Controller) tt_um_pschuetz_tremolo (Tremolo guitar pedal ASIC) tt_um_jsabree11_fibonacci_checker (fibbonaci_tt) tt_um_connerdaehler_boop (Procedural ASIC) tt_um_Kieckenwama_Traffic_LIGHT_FSM (Traffic Light FSM) tt_um_KimLuu02_WashingMachine_FSM (WashingMachine_FSM) tt_um_PaulineKreis_PWM_Analyser (PWM-Analyser) tt_um_PWM (PWM Generator) tt_um_wokwi_466666882406199297 (Simple Sprinkler) tt_um_rebeccargb_universal_decoder (Universal Binary to Segment Decoder) tt_um_rebeccargb_hardware_utf8 (Hardware UTF Encoder/Decoder) tt_um_spi_master (SPI Master Slave Communication) tt_um_likitha_trng (Secure TRNG Entropy Generator) tt_um_wnn (8-bit WNN Pattern Recognizer) tt_um_raksha (Raksha) tt_um_uart_soc (UART_SOC) tt_um_ecdsa_verify (ECDSA Verification) tt_um_ecc_processor (ECC Processor) tt_um_fast_auth (Fast Authentication Accelerator) tt_um_karthik_trng (TRNG using Ring Oscillator) tt_um_push (Secure V2X Mini Demonstrator) tt_um_santosh_aes_sbox (AES S-Box Accelerator) tt_um_hardware_anomaly_detection (Hardware Anomaly Detection) tt_um_multi_protocol (Multi-Protocol Communication Controller) tt_um_pqc_ntt_butterfly (PQC NTT Butterfly Core) tt_um_cambridge_nlfsr (Programmable Chaotic NLFSR) tt_um_4b_accumulator_cpu (4 bit Accumulator CPU) tt_um_spi_slave (SPI Slave with 8-Register File) tt_um_geeta_doddamani_lfsr (4-bit Maximum-Length LFSR) tt_um_ecc_accelerator (ECC Scalar Accelerator) tt_um_egurapha_chacha20 (ChaCha20) tt_um_configurable_pwm (Configurable PWM Generator) tt_um_Arctic0 (Arctic0 16-bit CPU) tt_um_comp8 (8-bit Comparator) tt_um_pwm_cit (Configurable 8-bit PWM Generator) tt_um_rameshwar_door_lock (Digital Door Lock) tt_um_sandy_venky (8-bit LFSR Circuit) tt_um_ljhahne_pong (Pong) tt_um_v2x_warning (V2X Collision Warning) tt_um_ecc_scalar_mult (ECC Scalar Multiplication) tt_um_fhw_appel_spiPWMio (spiPWMio) tt_um_arrakeen_spsram_direct_sramrules (TT-Arrakeen-SPSRAM-direct-sramrules) tt_um_arrakeen_spsram_direct_5v (TT-Arrakeen-SPSRAM-direct-5V) tt_um_LukeSilva_cartrip (Car Trip) tt_um_coffeepot (100Mpbs 3 port Ethernet switch) tt_um_emiliopeju_lightscan (Lightscan) tt_um_Alanduan21_triad01_top (triad01) tt_um_lif_snn (4-Neuron LIF Spiking Neural Network) tt_um_smerity_mandelbrot (Smerity-Mandelbrot) tt_um_elvtide01_7SegmentDice (7SegmentDice) tt_um_elemental_harmony (Elemental Harmony Game) tt_um_pattern_gen (Programmable Waveform and PWM Generator) tt_um_antimatter15_pdm_vad (PDM Voice Activity Detector) tt_um_layla_spike_detector (Neural Spike Detector) tt_um_detronyx_arith_lab (Detronyx Arithmetic Lab Tile) tt_um_hasheddan_nni (Nearest Neighbor Interpolation) tt_um_brisq (BRISQ) tt_um_santhosh_spike_codec_gf (Neuromorphic Spike Codec (GF180)) tt_um_santhosh_aer_router_gf (Asynchronous-AER Spike Router (4-phase REQ/ACK, 16-entry routing table, GF180)) tt_um_santhosh_snn_wta_gf (Spiking Neural Network WTA Inference Engine (GF180)) tt_um_santhosh_cim_bist_gf (CIM Controller with BIST and Fault Map (GF180)) tt_um_santhosh_neuro_puf_gf (Neuromorphic PUF (distinct-tap LFSR arbiter + memristor XOR, GF180)) tt_um_detronyx_uart_trace_exerciser (Detronyx UART Trace Exerciser) tt_um_ro_puf (Tiny RIng Oscillator PUF) tt_um_franretfie_top (Quadrature sine generator) tt_um_cherny_xor_8bi (XORing given bits) tt_um_mealycpp_ascon_sdmc_uart (ASCON Integrated Crypto Processor) tt_um_reflex_s4 (AER Reflex Chip - MCP2515 CAN gateway) tt_um_polytrig_core (PolyTrig Digital Waveform Synthesis Core) tt_um_waferspace_vga_screensaver (Wafer.space Logo VGA Screensaver) tt_um_2048_vga_game (2048 sliding tile puzzle game (VGA)) tt_um_urish_simon (Simon Says memory game) Available