AgentIC / Makefile
vxkyyy's picture
feat: AgentIC v2.0 - Added strict Verilog syntax rules, auto-fixers, and Groq support. Added INSTALL.md for portability.
92978e6
# AgentIC Makefile - Structured Verification & Hardening Workflow
# Usage: make <target> [DESIGN=name]
DESIGN ?= simple_counter
OPENLANE_ROOT ?= $(HOME)/OpenLane
DESIGN_SRC = designs/$(DESIGN)/src
RTL = $(DESIGN_SRC)/$(DESIGN).v
TB = $(DESIGN_SRC)/$(DESIGN)_tb.v
PDK_ROOT ?= $(HOME)/.ciel
OPENLANE_IMAGE ?= ghcr.io/the-openroad-project/openlane:ff5509f65b17bfa4068d5336495ab1718987ff69-amd64
.PHONY: all lint sim verify harden clean help
# Complete flow
all: lint sim harden verify
@echo "=========================================="
@echo " COMPLETE WORKFLOW FINISHED FOR $(DESIGN)"
@echo "=========================================="
# Step 1: Lint (syntax check)
lint:
@echo "━━━ [1/4] LINTING $(DESIGN) ━━━"
iverilog -t null $(RTL)
@echo "βœ“ Syntax OK"
# Step 2: Simulate (functional verification)
sim: lint
@echo "━━━ [2/4] SIMULATING $(DESIGN) ━━━"
iverilog -o $(DESIGN_SRC)/sim $(RTL) $(TB)
cd $(DESIGN_SRC) && vvp sim | tee sim.log
@grep -q "TEST PASSED" $(DESIGN_SRC)/sim.log && echo "βœ“ Simulation PASSED" || (echo "βœ— Simulation FAILED" && exit 1)
# Step 3: Harden (RTL β†’ GDSII via OpenLane Docker)
harden:
@echo "━━━ [3/4] HARDENING $(DESIGN) β†’ GDSII ━━━"
@echo "Copying design to OpenLane..."
cp -r designs/$(DESIGN) $(OPENLANE_ROOT)/designs/
@echo "Running OpenLane flow (may take 5-15 min)..."
docker run --rm \
-v $(OPENLANE_ROOT):/openlane \
-v $(PDK_ROOT):$(PDK_ROOT) \
-e PDK_ROOT=$(PDK_ROOT) \
-e PDK=sky130A \
-e PWD=/openlane \
$(OPENLANE_IMAGE) \
./flow.tcl -design $(DESIGN) -tag agent_run_$(shell date +%Y%m%d_%H%M%S) -ignore_mismatches
@echo "βœ“ Hardening complete. Check $(OPENLANE_ROOT)/designs/$(DESIGN)/runs/"
# Step 4: Verify (DRC/LVS)
verify:
@echo "━━━ [4/4] VERIFYING $(DESIGN) (DRC/LVS) ━━━"
bash scripts/verify_design.sh $(DESIGN)
# Utilities
clean:
rm -f $(DESIGN_SRC)/sim $(DESIGN_SRC)/sim.log $(DESIGN_SRC)/*.vcd
@echo "Cleaned simulation artifacts."
help:
@echo "AgentIC Makefile Targets:"
@echo " make lint - Check Verilog syntax"
@echo " make sim - Run RTL simulation"
@echo " make harden - Run OpenLane (RTL→GDSII)"
@echo " make verify - Run DRC/LVS checks"
@echo " make all - Run complete flow"
@echo " make clean - Remove temp files"
@echo ""
@echo "Override design: make DESIGN=my_counter sim"