reharden #4
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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/* |