-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMain.lean
More file actions
50 lines (45 loc) · 1.98 KB
/
Main.lean
File metadata and controls
50 lines (45 loc) · 1.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/-
Main.lean - Code Generation Entry Point
This is the main entry point for the codegen executable.
It calls the code generation functions from Examples and Circuits.
-/
import Shoumei.Examples.Adder
import Shoumei.Examples.QueueExample
import Shoumei.Circuits.Combinational.RippleCarryAdderCodegen
import Shoumei.Circuits.Combinational.SubtractorCodegen
import Shoumei.Circuits.Combinational.ComparatorCodegen
import Shoumei.Circuits.Combinational.LogicUnitCodegen
import Shoumei.Circuits.Combinational.ShifterCodegen
import Shoumei.Circuits.Combinational.ALUCodegen
-- Main code generation entry point
-- Generates FullAdder, DFlipFlop, Queue, and RippleCarryAdder modules
def main : IO Unit := do
IO.println "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
IO.println " 証明 Shoumei RTL - Code Generation"
IO.println "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
IO.println ""
-- Phase 0: Basic circuits
IO.println "==> Phase 0: Foundation Circuits"
IO.println ""
Shoumei.Examples.main
IO.println ""
IO.println "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
IO.println ""
Shoumei.Examples.queueMain
-- Phase 1: Arithmetic circuits
IO.println ""
IO.println "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
IO.println ""
IO.println "==> Phase 1: Arithmetic Building Blocks"
IO.println ""
Shoumei.Circuits.Combinational.generateRippleCarryAdders
IO.println ""
Shoumei.Circuits.Combinational.generateSubtractors
IO.println ""
Shoumei.Circuits.Combinational.generateComparators
IO.println ""
Shoumei.Circuits.Combinational.generateLogicUnits
IO.println ""
Shoumei.Circuits.Combinational.generateShifters
IO.println ""
Shoumei.Circuits.Combinational.generateALUs