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
Makefileto accommodate Verilator.Performed a smoke test on
half_adderto 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_issuesand a basic version oflint_issues.
π Thursday, June 26 β Fixes & CI Planning
Identified issues in the
lint_issuesscript 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.ymlaligns 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.