Skip to content

reharden

reharden #4

Workflow file for this run

name: reharden
on:
push:
workflow_dispatch:
inputs:
openlane_tag:
description: 'Openlane tag'
required: false
default: '2.0.8'
jobs:
reharden:
strategy:
fail-fast: false
matrix:
project:
#- tt_um_chip_rom # skip: chip ROM
- tt_um_factory_test
#- tt_um_oscillating_bones # skip: No config.json
#- tt_um_urish_charge_pump # skip: Analog project
#- tt_um_bgr_agolmanesh # skip: Analog project
#- tt_um_tnt_diff_rx # skip: Analog project
- tt_um_rejunity_vga_logo
- tt_um_tommythorn_maxbw
#- tt_um_mattvenn_r2r_dac_3v3 # skip: Analog project
- tt_um_urish_simon
- tt_um_rebeccargb_universal_decoder
- tt_um_mattvenn_rgb_mixer
- tt_um_rebeccargb_hardware_utf8
- tt_um_find_the_damn_issue
- tt_um_brandonramos_VGA_Pong_with_NES_Controllers
- tt_um_kb2ghz_xalu
- tt_um_rebeccargb_intercal_alu
- tt_um_a1k0n_demo
#- tt_um_rburt16_bias_generator # skip: Analog project
- tt_um_zec_square1
- tt_um_jmack2201
- tt_um_ran_DanielZhu
- tt_um_gfg_development_tinymandelbrot
- tt_um_LnL_SoC
#- tt_um_htfab_pi_snake # skip: Analog project
#- tt_um_tt08_aicd_playground # skip: Analog project
- tt_um_toivoh_demo
- tt_um_quarren42_demoscene_top
- tt_um_crispy_vga
- tt_um_MichaelBell_canon
- tt_um_shuangyu_top
- tt_um_wokwi_407306064811090945
#- tt_um_08_sws # skip: Analog project
- tt_um_favoritohjs_scroller
- tt_um_tt08_wirecube
- tt_um_vga_glyph_mode
- tt_um_a1k0n_vgadonut
- tt_um_roy1707018
#- tt_um_analog_factory_test # skip: Analog project
- tt_um_sign_addsub
- tt_um_tinytapeout_logo_screensaver
- tt_um_patater_demokit
#- tt_um_algofoogle_tt08_vga_fun # skip: Analog project
- tt_um_simon_cipher
- tt_um_thexeno_rgbw_controller
- tt_um_demosiine_sda
- tt_um_bytex64_munch
#- tt_um_alexjaeger_ringoscillator # skip: Analog project
- tt_um_cfib_demo
- tt_um_wokwi_407852791999030273
- tt_um_Richard28277
- tt_um_betz_morse_keyer
- tt_um_nvious_graphics
#- tt_um_tiny_pll # skip: No config.json
- tt_um_ezchips_calc
- tt_um_hack_cpu
#- tt_um_noritsuna_Vctrl_LC_oscillator # skip: Analog project
- tt_um_ring_divider
- tt_um_2048_vga_game
#- tt_um_morningjava_r2r_from_matt # skip: Analog project
- tt_um_ephrenm_tsal
- tt_um_kapilan_alarm
- tt_um_stochastic_addmultiply_CL123abc
- tt_um_wokwi_407760296956596225
- tt_um_dlfloatmac
#- tt_um_wakki_0123_Raw_Transistors # skip: Analog project
#- tt_um_faramire_rotary_ring_wrapper # skip: No config.json
#- tt_um_devstdin_LDO_OSC # skip: Analog project
- tt_um_frequency_counter
#- tt_um_rom_test # skip: No config.json
- tt_um_i2c_peripheral_stevej
- tt_um_yuri_panchul_schoolriscv_cpu_with_fibonacci_program
- tt_um_yuri_panchul_adder_with_flow_control
- tt_um_brailliance
- tt_um_nyan
- tt_um_MichaelBell_mandelbrot
#- tt_um_ssp_opamp # skip: Analog project
- tt_um_fountaincoder_top_ad
- tt_um_edwintorok
- tt_um_mac
- tt_um_dpmu
- tt_um_JAC_EE_segdecode
- tt_um_wokwi_408118380088342529
#- tt_um_shiftreg_test # skip: No config.json
- tt_um_yuri_panchul_sea_battle_vga_game
- tt_um_benpayne_ps2_decoder
- tt_um_meriac_play_tune
- tt_um_comm_ic_bhavuk
- tt_um_daosvik_aesinvsbox
- tt_um_wokwi_408216451206371329
- tt_um_micro_tiles_container
- tt_um_cattuto_sr_latch
- tt_um_rejunity_vga_test01
- tt_um_silice
- tt_um_wokwi_408231820749720577
- tt_um_jayjaywong12
- tt_um_emmyxu_obstacle_detection
- tt_um_neural_navigators
- tt_um_a1k0n_nyancat
- tt_um_rebeccargb_styler
- tt_um_resfuzzy
- tt_um_cejmu
- tt_um_16_mic_beamformer_arghunter
- tt_um_pdm_pitch_filter_arghunter
- tt_um_pdm_correlator_arghunter
- tt_um_ddc_arghunter
- tt_um_i2s_to_pwm_arghunter
#- tt_um_georgboecherer_vco # skip: Analog project
- tt_um_supermic_arghunter
- tt_um_dmtd_arghunter
- tt_um_htfab_bouncy_capsule
- tt_um_samuelm_pwm_generator
#- tt_um_mattvenn_analog_ring_osc # skip: Analog project
- tt_um_toivoh_demo_deluxe
- tt_um_vga_clock
- tt_um_z2a_rgb_mixer
- tt_um_faramire_stopwatch
- tt_um_micro_tiles_container_group2
- tt_um_johshoff_metaballs
- tt_um_top
- tt_um_NicklausThompson_SkyKing
- tt_um_Electom_cla_4bits
- tt_um_vga_cbtest
- tt_um_zoom_zoom
- tt_um_dpmunit
- tt_um_clock_divider_arghunter
- tt_um_dlmiles_poc_fskmodem_hdlctrx
- tt_um_emilian_muxpga
- tt_um_pyamnihc_dummy_counter
- tt_um_whynot
#- tt_um_sudana_ota5t_1 # skip: Analog project
- tt_um_dlmiles_tt08_poc_uart
- tt_um_dendraws_donut
- tt_um_wokwi_408237988946759681
- tt_um_tmkong_rgb_mixer
runs-on: ubuntu-latest
env:
OPENLANE_TAG: ${{ github.event.inputs.openlane_tag || '2.0.8' }}
PDK_ROOT: /home/runner/.volare
PDK: sky130A
# Tool versions:
MAGIC_VERSION: 8.3.473
KLAYOUT_VERSION: 0.29.0
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Checkout tt-support-tools repo
uses: actions/checkout@v4
with:
repository: tinytapeout/tt-support-tools
path: ${{ matrix.project }}/tt
ref: tt08
- name: Setup python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install dependencies
working-directory: ${{ matrix.project }}
run: |
pip install -r tt/requirements.txt
- name: Install OpenLane ${{ env.OPENLANE_TAG }}
run: |
pip install openlane==$OPENLANE_TAG
- name: Make GDS with OpenLane
working-directory: ${{ matrix.project }}
run: |
git init
# tt_tool requires a remote to be set, and some commit to be present
git remote add origin https://github.com/TinyTapeout/dummy
git config user.email "[email protected]"
git config user.name "Tiny Tapeout Bot"
git commit --allow-empty -m "Dummy commit"
python tt/tt_tool.py --create-user-config --harden --openlane2
# Fail if the final GDS file doesn't exist
if [ ! -f "runs/wokwi/final/gds/${{ matrix.project }}.gds" ]; then
exit 1
fi
# Fail is error.log isn't empty
if [ -s "runs/wokwi/error.log" ]; then
exit 1
fi
export PDK_VERSION=$(cat runs/wokwi/PDK_SOURCES | awk '{print $2}')
echo "PDK_VERSION=$PDK_VERSION" >> $GITHUB_ENV
- name: Set up PDK ${{ env.PDK_VERSION }}
working-directory: ${{ matrix.project }}
run: |
volare enable $PDK_VERSION
- name: Install magic-vlsi
run: |
sudo apt-get update && sudo apt-get install -y build-essential git csh libcairo2-dev tcl-dev tk-dev
git clone --branch ${MAGIC_VERSION} https://github.com/RTimothyEdwards/magic
cd magic && ./configure --with-cairo=no --disable-readline --without-x && make && sudo make install
- name: Install klayout
run: |
wget https://www.klayout.org/downloads/Ubuntu-22/klayout_${KLAYOUT_VERSION}-1_amd64.deb
sudo apt-get update
sudo apt-get install -y ./klayout_${KLAYOUT_VERSION}-1_amd64.deb
- name: Run tiny tapeout prechecks
working-directory: ${{ matrix.project }}/tt/precheck
run: |
set -o pipefail
pip install -r requirements.txt
python precheck.py --gds $GDS --lef $LEF
cp -R reports ${PROJECT_DIR}/precheck
cat reports/results.md | tee -a $GITHUB_STEP_SUMMARY
env:
PROJECT_DIR: ${{ github.workspace }}/${{ matrix.project }}
GDS: ${{ github.workspace }}/${{ matrix.project }}/runs/wokwi/final/gds/${{ matrix.project }}.gds
LEF: ${{ github.workspace }}/${{ matrix.project }}/runs/wokwi/final/lef/${{ matrix.project }}.lef
- name: Publish build logs
if: failure()
uses: actions/upload-artifact@v4
with:
name: GDS_${{ matrix.project }}
path: |
${{ matrix.project }}/runs/*
${{ matrix.project }}/precheck/*