forked from chipsalliance/rocket-chip
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add support for wake and wit (chipsalliance#2010)
- Loading branch information
1 parent
6509fe2
commit 50de8a3
Showing
3 changed files
with
183 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,138 @@ | ||
|
||
global def hardfloatScalaModule = | ||
makeScalaModuleFromJSON here "hardfloat" | ||
| setScalaModuleRootDir "berkeley-hardfloat" | ||
| setScalaModuleDeps (chisel3ScalaModule, Nil) | ||
| setScalaModuleScalacOptions ("-Xsource:2.11", Nil) | ||
|
||
global def rocketchipMacros = | ||
makeScalaModuleFromJSON here "rocketchipMacros" | ||
| setScalaModuleRootDir "rocket-chip/macros" | ||
| addMacrosParadiseCompilerPlugin | ||
|
||
global def rocketchipScalaModule = | ||
makeScalaModuleFromJSON here "rocketchip" | ||
| setScalaModuleRootDir "rocket-chip" | ||
| setScalaModuleDeps (rocketchipMacros, hardfloatScalaModule, Nil) | ||
| setScalaModuleScalacOptions ("-Xsource:2.11", Nil) | ||
| addMacrosParadiseCompilerPlugin | ||
|
||
def vlsi_mem_gen = source "rocket-chip/scripts/vlsi_mem_gen" | ||
def vlsi_rom_gen = source "rocket-chip/scripts/vlsi_rom_gen" | ||
|
||
tuple VLSIRomGenOptions = | ||
global ConfFile: Path | ||
global HexFile: String | ||
global OutputFile: String | ||
|
||
global def makeVLSIRomGenOptions confFile hexFile outputFile = VLSIRomGenOptions confFile hexFile outputFile | ||
|
||
global def rocket_vlsi_rom_gen options = | ||
def cmdline = | ||
def confFile = options.getVLSIRomGenOptionsConfFile.getPathName | ||
def hexFile = options.getVLSIRomGenOptionsHexFile | ||
vlsi_rom_gen.getPathName, confFile, hexFile, Nil | ||
|
||
def inputs = | ||
def confFile = options.getVLSIRomGenOptionsConfFile | ||
def outputFile = options.getVLSIRomGenOptionsOutputFile | ||
def outputDir = simplify "{outputFile}/.." | mkdir | ||
vlsi_rom_gen, confFile, outputDir, Nil | ||
|
||
def outputFile = options.getVLSIRomGenOptionsOutputFile | ||
match (job cmdline inputs | getJobStdout) | ||
Pass content = write outputFile content | ||
Fail error = makeBadPath error | ||
|
||
tuple VLSIMemGenOptions = | ||
global BlackBox: Boolean | ||
global ConfFile: Path | ||
global OutputFile: String | ||
|
||
global def makeVLSIMemGenOptions confFile outputFile = VLSIMemGenOptions False confFile outputFile | ||
|
||
global def rocket_vlsi_mem_gen options = | ||
def cmdline = | ||
def blackBox = if options.getVLSIMemGenOptionsBlackBox then "-b", Nil else Nil | ||
def outputFile = "-o", options.getVLSIMemGenOptionsOutputFile, Nil | ||
def confFile = options.getVLSIMemGenOptionsConfFile.getPathName, Nil | ||
vlsi_mem_gen.getPathName, (blackBox ++ outputFile ++ confFile) | ||
|
||
def inputs = | ||
def confFile = options.getVLSIMemGenOptionsConfFile | ||
def outputFile = options.getVLSIMemGenOptionsOutputFile | ||
def outputDir = simplify "{outputFile}/.." | mkdir | ||
vlsi_mem_gen, confFile, outputDir, Nil | ||
|
||
job cmdline inputs | getJobOutput | ||
|
||
tuple RocketChipGeneratorOptions = | ||
global Jars: List Path | ||
global TargetDir: Path | ||
global TopModuleName: String | ||
global ConfigNames: List String | ||
global ExtraSources: List Path | ||
|
||
global def makeRocketChipGeneratorOptions jars targetDir topModule configs = | ||
RocketChipGeneratorOptions jars targetDir topModule configs Nil | ||
|
||
tuple RocketChipGeneratorOutputs = | ||
DTS_: Path | ||
FirrtlFile_: Path | ||
FirrtlAnnoFile_: Path | ||
RomConf_: Path | ||
AllOutputs_: List Path | ||
InputOptions_: RocketChipGeneratorOptions | ||
OMFile_: Option Path | ||
|
||
global def getRocketChipGeneratorOutputsDTS = getRocketChipGeneratorOutputsDTS_ | ||
global def getRocketChipGeneratorOutputsFirrtlFile = getRocketChipGeneratorOutputsFirrtlFile_ | ||
global def getRocketChipGeneratorOutputsFirrtlAnnoFile = getRocketChipGeneratorOutputsFirrtlAnnoFile_ | ||
global def getRocketChipGeneratorOutputsRomConf = getRocketChipGeneratorOutputsRomConf_ | ||
global def getRocketChipGeneratorOutputsAllOutputs = getRocketChipGeneratorOutputsAllOutputs_ | ||
global def getRocketChipGeneratorOutputsInputOptions = getRocketChipGeneratorOutputsInputOptions_ | ||
global def getRocketChipGeneratorOutputsObjectModelFile = getRocketChipGeneratorOutputsOMFile_ | ||
|
||
global def runRocketChipGenerator options = | ||
def jars = options.getRocketChipGeneratorOptionsJars | ||
def runDir = "rocket-chip" | ||
def targetDir = options.getRocketChipGeneratorOptionsTargetDir | ||
|
||
def cmdline = | ||
def rootPackage = "_root_" | ||
def main = "freechips.rocketchip.system.Generator" | ||
def configs = catWith "_" options.getRocketChipGeneratorOptionsConfigNames | ||
def topModule = options.getRocketChipGeneratorOptionsTopModuleName | ||
def relJars = jars | map getPathName | map (relative runDir) | ||
def classpath = catWith ":" relJars | ||
def relTargetDir = relative runDir targetDir.getPathName | ||
which "java", "-cp", classpath, main, | ||
relTargetDir, | ||
rootPackage, topModule, | ||
rootPackage, configs, | ||
Nil | ||
|
||
def inputs = | ||
def bootrom = source 'rocket-chip/bootrom/bootrom.img' | ||
def extras = options.getRocketChipGeneratorOptionsExtraSources | ||
(bootrom, targetDir, extras) ++ jars | ||
|
||
def generatorJob = | ||
makePlan cmdline inputs | ||
| setPlanDirectory runDir | ||
| runJob | ||
|
||
def filterFiles regex = filter (matches regex _.getPathName) allOutputs | ||
def getFile regex = filterFiles regex | head | getOrElse (makeBadPath (makeError "File not found")) | ||
def getFileOpt regex = match (filterFiles regex) | ||
Nil = None | ||
head, tail = Some head | ||
|
||
def allOutputs = generatorJob.getJobOutputs | ||
def annoFile = getFile `.*\.anno\.json` | ||
def firrtlFile = getFile `.*\.fir` | ||
def romConfFile = getFile `.*\.rom\.conf` | ||
def dtsFile = getFile `.*\.dts` | ||
def omFile = getFileOpt `.*\.objectModel\.json` | ||
|
||
RocketChipGeneratorOutputs dtsFile firrtlFile annoFile romConfFile allOutputs options omFile |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
{ | ||
"hardfloat": { | ||
"scalaVersion": "2.12.8" | ||
}, | ||
"rocketchipMacros": { | ||
"scalaVersion": "2.12.8", | ||
"dependencies": [ | ||
"org.scala-lang:scala-reflect:2.12.8" | ||
] | ||
}, | ||
"rocketchip": { | ||
"scalaVersion": "2.12.8", | ||
"dependencies": [ | ||
"org.json4s::json4s-jackson:3.5.3" | ||
] | ||
}, | ||
"macrosParadise": { | ||
"scalaVersion": "2.12.8", | ||
"dependencies": [ | ||
"org.scalamacros:::paradise:2.1.0" | ||
] | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
[ | ||
{ | ||
"commit": "70c1e1dd0954bb8e9d62563b8c9730bbc39d2bf0", | ||
"name": "berkeley-hardfloat", | ||
"source": "git@github.com:ucb-bar/berkeley-hardfloat.git" | ||
}, | ||
{ | ||
"commit": "258e0bd41ddc8811725d51192a8fffb133b6f1c8", | ||
"name": "api-chisel3-sifive", | ||
"source": "git@github.com:sifive/api-chisel3-sifive.git" | ||
}, | ||
{ | ||
"commit": "e1aa5f3f5c0cdeb204047c3ca50801d9f7ea25f1", | ||
"name": "chisel3", | ||
"source": "git@github.com:freechipsproject/chisel3.git" | ||
}, | ||
{ | ||
"commit": "228c9a4b7432ac52178d63b8f27fe064aec71e9c", | ||
"name": "firrtl", | ||
"source": "git@github.com:freechipsproject/firrtl.git" | ||
} | ||
] |