1
0
mirror of https://github.com/antonblanchard/chiselwatt.git synced 2026-01-11 23:53:33 +00:00

101 Commits

Author SHA1 Message Date
Anton Blanchard
61a07a9904
Merge pull request #47 from ekiwi/chisel-3.5
upgrade to Chisel 3.5.0 (new stable)
2023-02-13 14:48:20 +11:00
Kevin Läufer
10c40868bb switch to release version
Signed-off-by: Kevin Läufer <laeufer@cs.berkeley.edu>
2022-01-12 14:13:56 -08:00
Kevin Läufer
d8b89298c7 upgrade to Chisel 3.5.0 release candidate 2
Signed-off-by: Kevin Läufer <laeufer@cs.berkeley.edu>
2021-12-27 18:32:47 -08:00
Anton Blanchard
c833634112
Merge pull request #44 from carlosedp/readme-samples
Improve readme with Fusesoc info and update samples
2021-09-28 06:42:08 +10:00
Anton Blanchard
aebd90b5c9
Merge pull request #43 from carlosedp/polarfire-instructions
Add post-build instructions for Polarfire
2021-09-28 06:40:12 +10:00
Carlos de Paula
9eb5473a61 Improve readme with Fusesoc info and update samples
Improved build instructions by using Fusesoc as package manager and
multi-target toolchain.
Updated hello_world sample app to fetch clock from SYSCON registers.
Rebuilt all sample applications based on latest version and using SYSCON
Improve Makefile build process for samples.

Signed-off-by: Carlos de Paula <me@carlosedp.com>
2021-02-23 12:08:04 -03:00
Carlos de Paula
96fadc10d0 Add post-build instructions for Polarfire
Signed-off-by: Carlos de Paula <me@carlosedp.com>
2021-02-23 10:35:22 -03:00
Anton Blanchard
6d1d3e5670
Merge pull request #40 from shenki/syscon
Add syscon regsiters to the loadstore unit
2021-02-23 12:47:32 +11:00
Michael Neuling
21cdff7976 Make clock frequency settable at the top level of Core
Rather than hardwiring LoadStore.

Signed-off-by: Michael Neuling <mikey@neuling.org>
Signed-off-by: Joel Stanley <joel@jms.id.au>
2021-02-23 10:46:12 +10:30
Joel Stanley
2c44cd8bce Add syscon regsiters to the loadstore unit
This adds a really simple syscon so the potato uart in micropython can
operate.

Signed-off-by: Joel Stanley <joel@jms.id.au>
2021-02-23 10:44:43 +10:30
Anton Blanchard
23824ad377
Merge pull request #42 from antonblanchard/update-mill
Update mill
2021-02-22 20:34:19 +11:00
Anton Blanchard
fc93948850 Update mill
Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
2021-02-22 18:59:04 +11:00
Anton Blanchard
fe5ad7cd00
Merge pull request #38 from ekiwi/update-build-sbt
build.sbt: update to new structure
2021-02-22 18:40:58 +11:00
Anton Blanchard
c316067f33
Merge pull request #39 from carlosedp/polarfire
Add support for Microsemi Polarfire FPGA
2021-02-18 21:45:27 +11:00
Carlos de Paula
7f79b67019 Add support for Microsemi Polarfire FPGA
This PR adds support for Polarfire FPGA from Microchip/Microsemi.
The support has also been added to Fusesoc .core file to use the
soon-to-be merged Libero backend.

- Due to a tool incompatibility, Libero does not accept a module
named "pll". Due to this, I've renamed the PLLs to Chiselwatt_pll.
- Fixed formatting for chiselwatt.core file according to YAML lexer.
- Added micropython and helloworls filesets to .core so it's possible to
override the .hex to be used on core generation.

Demo of hello_world and Micropython:
https://twitter.com/carlosedp/status/1362119833324826626

Signed-off-by: Carlos de Paula <me@carlosedp.com>
2021-02-17 19:40:30 -03:00
Kevin Läufer
7fe87295e8 build.sbt: update to new structure
Mostly copied from the new chisel template:
https://github.com/freechipsproject/chisel-template/blob/main/build.sbt

Signed-off-by: Kevin Läufer <laeufer@cs.berkeley.edu>
2020-12-23 16:24:16 -08:00
Anton Blanchard
4d7bc5c03d
Merge pull request #37 from antonblanchard/update-mill
Update mill version
2020-12-04 21:17:03 +11:00
Anton Blanchard
49fa2221c0 Update mill version
Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
2020-12-04 21:08:16 +11:00
Anton Blanchard
253f77ff15
Merge pull request #36 from antonblanchard/update-chisel
Update chisel
2020-12-04 19:55:42 +11:00
Anton Blanchard
f21821b704 Sync build.sc with chisel-template-lite
Also remove chisel-iotesters since we are using chiseltest.

Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
2020-12-04 18:33:16 +11:00
Anton Blanchard
9a53bd6e69 Update to Chisel 3.4.0
Switch from the deprecated Driver.execute to (new ChiselStage).emitVerilog

Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
2020-12-04 18:33:10 +11:00
Anton Blanchard
e2c513555d
Merge pull request #34 from mithro/patch-1
Remove extra backtick
2020-05-01 19:54:23 +10:00
Anton Blanchard
256b146ce3
Merge pull request #33 from carlosedp/add_samples
Add hello_world sample sources and Makefile targets
2020-05-01 19:53:41 +10:00
Tim Ansell
c2c930e61e Remove extra backtick
Signed-off-by: Tim 'mithro' Ansell <me@mith.ro>
2020-04-28 17:36:37 -07:00
Carlos de Paula
4f1d3e5ae7 Add hello_world sample sources and Makefile targets
Added hello_world sources and new Makefile targets for building
hello_world and Micropython inside containers.

Updated documentation reflecting these changes and moved binaries
to ./samples/binaries/.

Signed-off-by: Carlos de Paula <me@carlosedp.com>
2020-04-28 13:50:50 -03:00
Anton Blanchard
55a5fc215b
Merge pull request #32 from antonblanchard/fix-make-check
Fix make check issue
2020-04-23 22:34:57 +10:00
Anton Blanchard
3354fcf0ea Fix make check issue
make check has stopped working recently:

  java.lang.ClassCastException: java.lang.Class cannot be cast to firrtl.options.Dependency
  at scala.collection.LinearSeqOptimized.foldLeft(LinearSeqOptimized.scala:126)
  at scala.collection.LinearSeqOptimized.foldLeft$(LinearSeqOptimized.scala:122)
  at scala.collection.immutable.List.foldLeft(List.scala:89)
  at firrtl.options.DependencyManager.firrtl$options$DependencyManager$$_targets(DependencyManager.scala:34)
  at firrtl.options.DependencyManager.firrtl$options$DependencyManager$$_targets$(DependencyManager.scala:33)
  at firrtl.options.PhaseManager.firrtl$options$DependencyManager$$_targets$lzycompute(DependencyManager.scala:414)
  at firrtl.options.PhaseManager.firrtl$options$DependencyManager$$_targets(DependencyManager.scala:414)
  at firrtl.options.DependencyManager.firrtl$options$DependencyManager$$prerequisiteGraph(DependencyManager.scala:115)
  at firrtl.options.DependencyManager.firrtl$options$DependencyManager$$prerequisiteGraph$(DependencyManager.scala:113)
  at firrtl.options.PhaseManager.firrtl$options$DependencyManager$$prerequisiteGraph$lzycompute(DependencyManager.scala:414)

I need to investigate, but setting chisel3 to 3.2.5 fixes it for now.

Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
2020-04-23 22:23:13 +10:00
Anton Blanchard
344e04836d
Merge pull request #27 from carlosedp/ulx3s
Add Radiona ULX3S ECP5-85F Board
2020-04-23 21:03:22 +10:00
Carlos de Paula
2d5d429708 Adjust pins and Makefile for OpenOCD
Signed-off-by: Carlos de Paula <me@carlosedp.com>
2020-04-08 10:26:02 -03:00
Carlos de Paula
21e9d9f0df Add Radiona ULX3S ECP5-85F Board
Signed-off-by: Carlos de Paula <me@carlosedp.com>
2020-04-07 22:31:08 -03:00
Anton Blanchard
4c9d475f5b
Merge pull request #26 from carlosedp/makefile
Restructured Makefile and Readme for multi-boards
2020-04-08 09:35:23 +10:00
Carlos de Paula
c06e4697dc Restructured Makefile and Readme for multi-boards
Added a couple of improvements to the Makefile and Readme:

* Restructured the Makefile to support multiple boards based on variable
* Verilator build is also done in Docker container with local option
* Restructured Readme to reflect changes in the Makefile
* Support for running the verilator chiselwatt binary in a Docker
container in case the OS is not Linux.

Signed-off-by: Carlos de Paula <me@carlosedp.com>
2020-03-25 11:29:51 -03:00
Anton Blanchard
cbc583de13
Merge pull request #25 from antonblanchard/mcrf
Add mcrf instruction
2020-03-06 21:43:26 +11:00
Anton Blanchard
f3c510ece8 Add mcrf instruction
The previous commit forgot to add the instruction to the decode table.

Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
2020-03-06 16:07:35 +11:00
Anton Blanchard
57f16c0cd6
Merge pull request #24 from antonblanchard/mcrf
Add mcrf
2020-03-02 22:24:19 +11:00
Anton Blanchard
06563749f9 Add mcrf
Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
2020-03-02 22:11:27 +11:00
Anton Blanchard
6f6141249b
Merge pull request #23 from antonblanchard/rework-core-2
Rework core
2020-02-26 22:00:28 +11:00
Anton Blanchard
904d4b8695 Reduce duration of test_micropython_long.py
This is taking quite a while to execute, reduce it a bit.

Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
2020-02-26 21:43:29 +11:00
Anton Blanchard
bb295a6406 Rework core pipeline
For simplicity we originally made loads and stores slow instructions. We
now want to integrate them into the fast pipeline, so add a new cycle to
the pipeline (called memory).

Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
2020-02-26 21:43:24 +11:00
Anton Blanchard
121d967375
Merge pull request #22 from antonblanchard/fix-divide
Complete divide support
2020-02-24 09:47:03 +11:00
Anton Blanchard
5fec805f65 Complete divide support
This adds support for the rest of the divide instructions.

Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
2020-02-24 09:35:42 +11:00
Anton Blanchard
936679ee06
Merge pull request #21 from antonblanchard/mill
Use mill by default
2020-02-23 08:50:42 +11:00
Anton Blanchard
95029de163 Use mill by default
Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
2020-02-22 13:23:39 +11:00
Anton Blanchard
bd1ec9c7ce
Merge pull request #19 from edwardcwang/mill
Add support for mill
2020-02-22 11:58:23 +11:00
Anton Blanchard
473f1b2008
Merge pull request #20 from antonblanchard/colorlight
Add Colorlight 5A-75B support
2020-02-20 14:20:58 +11:00
Anton Blanchard
5a7fcbc814 Add Colorlight 5A-75B support
This adds support for the cheap Colorlight 5A-75B ECP5 based board.

UART RX is on J19, labelled key+ on the silk screen on the back
UART TX is on J1, pin 1.

All the I/Os on this board go through bidirectional level shifters that
appear to be hardwired as outputs. To get an input pin for UART RX, we
use the button I/O which is also routed to connector J19. The downside is
we can't use the button for reset.

One potential issue is that UART TX is 5V but UART RX is 3.3V. To keep
the FPGA happy any attached UART chip needs to output 3.3V, but it also
needs to be 5V tolerant to handle the level shifted input.

Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
2020-02-20 11:48:08 +11:00
Edward Wang
db7736a92b Add test_run_dir to gitignore
Signed-off-by: Edward Wang <edward.c.wang@compdigitec.com>
2020-02-10 23:45:26 -05:00
Edward Wang
d4a55ffdfe Add support for mill
Signed-off-by: Edward Wang <edward.c.wang@compdigitec.com>
2020-02-10 23:45:26 -05:00
Anton Blanchard
8ddfc34a48
Merge pull request #18 from antonblanchard/fix-travis
Fix make check and Travis CI
2020-02-08 23:29:26 +11:00
Anton Blanchard
35b7c9a054 Fix make check and Travis CI
We weren't propagating all errors back to Travis CI, so make check wasn't
actually being tested.

Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
2020-02-08 23:14:13 +11:00