Skip to content
This repository has been archived by the owner on Jun 16, 2024. It is now read-only.

Commit

Permalink
manage TODOs.
Browse files Browse the repository at this point in the history
  • Loading branch information
kivikakk committed May 21, 2024
1 parent 3e8218c commit 3982f9f
Show file tree
Hide file tree
Showing 6 changed files with 31 additions and 6 deletions.
25 changes: 22 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,26 @@ its own HDL depending on how much I love Scala. :)

<https://github.com/kivikakk/sevsegsim>.

## TODO
## Quick feature overview

* Generate PCFs on demand via board descriptions.
* Parameterise correctly for ECP5.
* Provides an App that facilitates synthesis for multiple target platforms.
* Boards provide resources — refer to them in your design, and Chryse adds them
to the PCF (or equivalent) used during build.
* [CXXRTL] support: it's just another platform. Chisel blackboxes are
automatically lowered into CXXRTL, and a Chryse's build system takes care of
the details. You write the main loop and blackbox implementation.

[CXXRTL]: https://yosyshq.readthedocs.io/projects/yosys/en/latest/cmd/write_cxxrtl.html

## Platform/board support

### WIP

* iCE40: [iCEBreaker]

### Planned

* ECP5: [OrangeCrab]

[iCEBreaker]: https://yosyshq.readthedocs.io/projects/yosys/en/latest/cmd/write_cxxrtl.html
[OrangeCrab]: https://1bitsquared.com/products/orangecrab
3 changes: 0 additions & 3 deletions TODO

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ import circt.stage.ChiselStage
import java.io.Writer

class BlackBoxGenerator(private val wr: Writer) {
// TODO: Can we just add attributes somehow and output Verilog instead?

def runOn(bb: Class[_ <: BlackBox]): Unit = {
wr.write("attribute \\cxxrtl_blackbox 1\n")
wr.write("attribute \\blackbox 1\n")
Expand Down
4 changes: 4 additions & 0 deletions src/main/scala/ee/hrzn/chryse/platform/ice40/ICE40Top.scala
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,10 @@ class ICE40Top[Top <: Module](platform: Platform, genTop: => Top)
private val top =
withClockAndReset(clk, finalReset)(Module(genTop))

// TODO: get clock from "defaultClock", hook that up to the SB_GB.
// TODO: allow clock override.
// TODO: refactor this out to a non-ICE40Top level.
// TODO: unit tests for PCF generation.
platform match {
case plat: BoardPlatform[_] =>
val sb = new StringBuilder
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ trait BaseResource[HW <: Data, T <: BaseResource[HW, T]] {

private[chryse] var inst: Option[HW] = None

// TODO: remove F-bounded polymorphism now that we have this.type.
def onPin(number: Int): this.type = {
pinNumber = Some(number)
this
Expand Down
2 changes: 2 additions & 0 deletions src/main/scala/ee/hrzn/chryse/tasks/BuildTask.scala
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ import java.nio.file.Files
import java.nio.file.Paths

object BuildTask extends BaseTask {
// TODO: refactor for ECP5 — different steps and build products are involved
// after synthesis.
def apply[Top <: Module](
name: String,
platform: BoardPlatform[_],
Expand Down

0 comments on commit 3982f9f

Please sign in to comment.