Week 6

Week 6 Learning Log

June 23 – June 27, 2025


1. Objectives

CI Migration & Simulation Infrastructure

  • Replace Icarus with Verilator for RTL simulation and CI integration.

  • Validate simulation with basic functional modules and update the Makefile accordingly.

Automation & Scripting

  • Develop scripts to automate GitHub issue creation, milestone syncing, and project board updates based on weekly plans.

TA Responsibilities

  • Participate in training sessions in preparation for upcoming academic support duties.

2. Daily Activities

πŸ—“ Monday, June 23 β€” Verilator Integration

  • Rewrote simulation entry points (sim_main.cpp, sim_main_minimal.cpp) to support Verilator for both sequential and combinational modules.

  • Updated the Makefile to accommodate Verilator.

  • Performed a smoke test on half_adder to validate linting and simulation.

πŸ—“ Tuesday, June 24 β€” GitHub Automation Kickoff

  • Began building a CLI pipeline to automate weekly planning workflows:

    • Designed a shell script to convert YAML task files into individual GitHub issues.

    • Automated the creation of missing labels and milestones.

    • Integrated updates to the GitHub project board.

πŸ—“ Wednesday, June 25 β€” TA Training & CLI Progress

  • Attended TA training (academic responsibility).

  • Completed the issue automation script.

  • Drafted two support scripts: scaffold_issues and a basic version of lint_issues.

πŸ—“ Thursday, June 26 β€” Fixes & CI Planning

  • Identified issues in the lint_issues script and began planning revisions.

  • Outlined the steps to update GitHub Actions with Verilator-based CI.

πŸ—“ Friday, June 27 β€” Wrap-Up & Planning

  • No major tasks logged.

  • Used the time for review and planning ahead.


3. Key Learnings

Simulation Portability

  • Transitioning from Icarus to Verilator revealed nuanced differences between combinational and sequential simulation models.

  • Writing tailored simulation entry points clarified reuse boundaries and boosted modularity.

Tooling Impact

  • Even lightweight CLI toolsβ€”like converting YAML to GitHub issuesβ€”significantly reduced planning friction and boosted weekly consistency.

CI Consistency

  • Moving toward verilator.yml aligns well with RVSvKit’s CI philosophy: linting, code coverage, synthesis thresholds, and functional correctness.

Reflection on Process

  • Investing in automation paid off in reduced context switching across engineering and project management.

  • Balancing TA preparation with dev tasks became easier with streamlined workflows.