Skip to content

Commit f81ca2d

Browse files
committed
[mill] migrate T1 to mill 0.12
Signed-off-by: Avimitin <[email protected]>
1 parent c646004 commit f81ca2d

File tree

8 files changed

+516
-383
lines changed

8 files changed

+516
-383
lines changed

build.mill

+190
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,190 @@
1+
// SPDX-License-Identifier: Apache-2.0
2+
// SPDX-FileCopyrightText: 2022 Jiuyang Liu <[email protected]>
3+
4+
package build
5+
6+
import mill._
7+
import mill.scalalib._
8+
import mill.define.{Command, TaskModule}
9+
import mill.scalalib.publish._
10+
import mill.scalalib.scalafmt._
11+
import mill.scalalib.TestModule.Utest
12+
import mill.util.Jvm
13+
import coursier.maven.MavenRepository
14+
15+
object v {
16+
val scala = "2.13.15"
17+
val mainargs = ivy"com.lihaoyi::mainargs:0.5.0"
18+
val oslib = ivy"com.lihaoyi::os-lib:0.9.1"
19+
val upickle = ivy"com.lihaoyi::upickle:3.3.1"
20+
val spire = ivy"org.typelevel::spire:latest.integration"
21+
val evilplot = ivy"io.github.cibotech::evilplot:latest.integration"
22+
val chisel = ivy"org.chipsalliance::chisel:0.0.0+0-no-vcs-SNAPSHOT"
23+
val panamaconverter = ivy"org.chipsalliance::panamaconverter-cross:0.0.0+0-no-vcs-SNAPSHOT"
24+
val chiselPlugin = ivy"org.chipsalliance:::chisel-plugin:0.0.0+0-no-vcs-SNAPSHOT"
25+
val axi4 = ivy"org.chipsalliance::axi4-snapshot:0.0.0+0-no-vcs-SNAPSHOT"
26+
val dwbb = ivy"org.chipsalliance::dwbb-snapshot:0.0.0+0-no-vcs-SNAPSHOT"
27+
val jtag = ivy"org.chipsalliance::jtag-snapshot:0.0.0+0-no-vcs-SNAPSHOT"
28+
val arithmetic = ivy"me.jiuyang::arithmetic-snapshot:0.0.0+0-no-vcs-SNAPSHOT"
29+
val rvdecoderdb = ivy"me.jiuyang::rvdecoderdb-jvm:0.0.0+0-no-vcs-SNAPSHOT"
30+
val hardfloat = ivy"edu.berkeley.cs::hardfloat-snapshot:0.0.0-SNAPSHOT"
31+
}
32+
33+
object stdlib extends Stdlib
34+
35+
trait Stdlib extends common.StdlibModule with ScalafmtModule {
36+
def scalaVersion = v.scala
37+
38+
def mainargsIvy = v.mainargs
39+
40+
def dwbbIvy: Dep = v.dwbb
41+
42+
def chiselModule = None
43+
def chiselPluginJar = None
44+
def chiselIvy = Some(v.chisel)
45+
def chiselPluginIvy = Some(v.chiselPlugin)
46+
}
47+
48+
object t1 extends T1
49+
50+
trait T1 extends common.T1Module with ScalafmtModule {
51+
def scalaVersion = T(v.scala)
52+
53+
def arithmeticIvy = v.arithmetic
54+
def axi4Ivy = v.axi4
55+
def hardfloatIvy = v.hardfloat
56+
def rvdecoderdbIvy = v.rvdecoderdb
57+
def stdlibModule = stdlib
58+
def riscvOpcodesPath = T.input(PathRef(millSourcePath / os.up / "dependencies" / "riscv-opcodes"))
59+
60+
def chiselModule = None
61+
def chiselPluginJar = None
62+
def chiselIvy = Some(v.chisel)
63+
def chiselPluginIvy = Some(v.chiselPlugin)
64+
}
65+
66+
object configgen extends ConfigGen
67+
68+
trait ConfigGen extends common.ConfigGenModule with ScalafmtModule {
69+
def scalaVersion = T(v.scala)
70+
71+
def t1Module = t1
72+
73+
def mainargsIvy = v.mainargs
74+
}
75+
76+
object rocketv extends RocketV
77+
78+
trait RocketV extends common.RocketVModule with ScalafmtModule {
79+
def scalaVersion = T(v.scala)
80+
def rvdecoderdbIvy = v.rvdecoderdb
81+
def riscvOpcodesPath = T.input(PathRef(millSourcePath / os.up / "dependencies" / "riscv-opcodes"))
82+
def hardfloatIvy = v.hardfloat
83+
def axi4Ivy = v.axi4
84+
def stdlibModule = stdlib
85+
86+
def chiselModule = None
87+
def chiselPluginJar = None
88+
def chiselIvy = Some(v.chisel)
89+
def chiselPluginIvy = Some(v.chiselPlugin)
90+
}
91+
92+
object t1rocket extends T1Rocket
93+
94+
trait T1Rocket extends common.T1RocketModule with ScalafmtModule {
95+
def scalaVersion = T(v.scala)
96+
def rocketModule = rocketv
97+
def t1Module = t1
98+
99+
def chiselModule = None
100+
def chiselPluginJar = None
101+
def chiselIvy = Some(v.chisel)
102+
def chiselPluginIvy = Some(v.chiselPlugin)
103+
}
104+
105+
object t1emu extends T1Emulator
106+
107+
trait T1Emulator extends common.T1EmulatorModule with ScalafmtModule {
108+
def scalaVersion = T(v.scala)
109+
110+
def t1Module = t1
111+
112+
def chiselModule = None
113+
def chiselPluginJar = None
114+
def chiselIvy = Some(v.chisel)
115+
def chiselPluginIvy = Some(v.chiselPlugin)
116+
}
117+
118+
object t1rocketemu extends T1RocketEmulator
119+
120+
trait T1RocketEmulator extends common.T1RocketEmulatorModule with ScalafmtModule {
121+
def scalaVersion = T(v.scala)
122+
123+
def t1rocketModule = t1rocket
124+
125+
def chiselModule = None
126+
def chiselPluginJar = None
127+
def chiselIvy = Some(v.chisel)
128+
def chiselPluginIvy = Some(v.chiselPlugin)
129+
}
130+
131+
// Module to generate RTL from json config
132+
object elaborator extends Elaborator
133+
134+
trait Elaborator extends common.ElaboratorModule with ScalafmtModule {
135+
def scalaVersion = T(v.scala)
136+
137+
def panamaconverterIvy = v.panamaconverter
138+
139+
def circtInstallPath = T.input(PathRef(os.Path(T.ctx().env("CIRCT_INSTALL_PATH"))))
140+
141+
def generators = Seq(
142+
t1,
143+
t1emu,
144+
rocketv,
145+
t1rocket,
146+
t1rocketemu
147+
)
148+
149+
def mainargsIvy = v.mainargs
150+
151+
def chiselModule = None
152+
def chiselPluginJar = None
153+
def chiselIvy = Some(v.chisel)
154+
def chiselPluginIvy = Some(v.chiselPlugin)
155+
}
156+
157+
object omreaderlib extends OMReaderLib
158+
159+
trait OMReaderLib extends common.OMReaderLibModule with ScalafmtModule {
160+
def scalaVersion = T(v.scala)
161+
162+
def panamaconverterIvy = v.panamaconverter
163+
164+
def circtInstallPath = T.input(PathRef(os.Path(T.ctx().env("CIRCT_INSTALL_PATH"))))
165+
166+
def mainargsIvy = v.mainargs
167+
168+
def chiselModule = None
169+
def chiselPluginJar = None
170+
def chiselIvy = Some(v.chisel)
171+
def chiselPluginIvy = Some(v.chiselPlugin)
172+
}
173+
174+
object omreader extends OMReader
175+
176+
trait OMReader extends common.OMReaderModule with ScalafmtModule {
177+
def scalaVersion = T(v.scala)
178+
179+
def panamaconverterIvy = v.panamaconverter
180+
def omreaderlibModule = omreaderlib
181+
182+
def circtInstallPath = T.input(PathRef(os.Path(T.ctx().env("CIRCT_INSTALL_PATH"))))
183+
184+
def mainargsIvy = v.mainargs
185+
186+
def chiselModule = None
187+
def chiselPluginJar = None
188+
def chiselIvy = Some(v.chisel)
189+
def chiselPluginIvy = Some(v.chiselPlugin)
190+
}

0 commit comments

Comments
 (0)