Git Product home page Git Product logo

midas-examples's Introduction

MIDAS/Strober Examples

This repository demonstrates an example use of MIDAS/Strober for simple RTL designs including:

  • Chisel tutorial
    • GCD, Parity, ShiftRegister, EnableShiftRegister, ResetShiftRegister, Stack, Risc
  • More simple examples:
    • RiscSRAM: Implementation of Risc with SeqMem
    • PointerChaser: Simple pointer chaser following a random list.
  • riscv-mini
    • Tile: the top module of riscv-mini
    • ISA: RISCV RV32I
    • 3 stage pipeline with caches
    • Passes all rv32ui tests except FENCE.I
    • Passes all rv32mi tests except timer
    • Runs RISC-V benchmarks: median, multiply, qsort, towers, vvadd

STEP 0: Get Started

To initiate the project, run the following commands:

$ git clone https://github.com/ucb-bar/midas-examples.git
$ cd midas-examples
# initialize the submodules
$ ./setup.sh
# publish chisel & firrtl to local maven
$ make publishLocal

With the following make commands, you can enable RTL state snapshotting with STROBER=1. Also, MACRO_LIB=1 is required for power modeling to transform technology-independent macro blocks to technology-dependent macro blocks.

Use HAMMER for the Strober Power Modeling

For power modeling, we need to use commercial CAD tools and we expect you have these tools installed in your machine. Instead of manually-written TCL scripts, the ASIC backend flow is driven by automatically-generated TCL scripts by HAMMER. To use HAMMER, we need to set proper environment variables.

First, edit sourceme-hammer.sh for your tool environment. Before executing make commands in the following steps, run:

$ source sourceme-hammer.sh

If you want to use the Strober power modeling but do not correctly set the variables in sourceme-hammer.sh, you will see error messages, and therefore, make sure all the variables are correct in your environment. When you run HAMMER at the first time, it will install prerequisite tools, which may take hours.

STEP 1: Run Verilator/VCS Tests

First of all, you need to write simulation drivers. Examples are given in src/main/cc. To increase code reuse for tests and FPGA simulation, write a header file with virtual base class simif_t(src/main/cc/<design>.h). Also, add your design in Makefile in the main directory. For Verilator/VCS tests, just write a wrapper and the main function with simif_emul_t(src/main/cc/<design>-emul.cc).

For Verilator tests, run:

 $ make <design>-verilator-test [STROBER=1] [MACRO_LIB=1] [LOADMEM=<hexfile>] [ARGS="<simulation specific arguments>"]

Chisel generated files and test binaries are in generated-src, while log files, waveform files, sample snapshot files are in output. VCD files are not dumped by default, but you can get VCD files with <design>-verilator-tests-debug as the make target.

For VCS tests, run:

 $ make <design>-vcs-test [STROBER=1] [MACRO_LIB=1] [LOADMEM=<hexfile>] [ARGS="<testbench specific arguments>"]

You can get VPD files with <design>-vcs-tests-debug as the make target.

We can also take advantage of sbt for tests. Test wrappers are written in src/test/scala. For individual tests, run sbt testOnly <test name>. For integration tests, run sbt test.

STEP 2: Run FPGA Simulation

First, write a wrapper and the main function with simif_zynq_t(src/main/cc/<design>-zynq.cc) by reusing the header file in Verilator/VCS tests.

To generate boot.bin for FPGA Simulation, run:

$ make <design>-fpga [STROBER=1] [BOARD=<zybo|zedboard|zc706>]

The default FPGA board is zedboard, but you can also select zybo or zc706.

To synthesize the design for FPGA, run:

$ make <design>-fpga

Finally, to compile the compile FPGA simulation driver, run:

$ make <design>-zynq

Copy /output/zynq/<design>/boot.bin to the SD card to program FPGA. Also, you should copy the following files in output/zynq/<design> to the board (refer to ucb-bar/fpga-zynq):

* <design>-zynq: driver executable
* <design>.chain: scan chain information (only for Strober)

To execute simulation in the FPGA board, run:

$ ./<design>-zynq [+loadmem=<hexfile>] [+sample=<sample file>]

STEP 3: Replay RTL Sample Snapshots (Optional for Strober)

If you enable state snapshotting in STEP 1 or STEP 2, you will get random RTL state snapshots at the end of simulation (<design>.sample by default). To replay RTL sample snapshots, run:

$ make <design>-replay-rtl SAMPLE=<sample file> [MACRO_LIB=1]

MACRO_LIB=1 is not necessary if it's not enabled in the previous steps.

For power modeling, MACRO_LIB=1 is required in this step as well as the previous steps. The following commands interact with HAMMER to run proper CAD tools. For power estimation with RTL simulation, run:

$ make <design>-replay-rtl-pwr SAMPLE=<sample file> MACRO_LIB=1

For power estimation with post-synthesis simulation, run:

$ make <design>-replay-syn SAMPLE=<sample file> MACRO_LIB=1

midas-examples's People

Contributors

davidbiancolin avatar donggyukim avatar edwardcwang avatar sagark avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

midas-examples's Issues

failed cloning into 'zc706_MIG/fpga-images-zc706'

Cloning into 'zc706_MIG/fpga-images-zc706'...
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
fatal: clone of '[email protected]:ucb-bar/fpga-images-zc706.git' into submodule path 'zc706_MIG/fpga-images-zc706' failed
Failed to recurse into submodule path 'platforms/zynq'

Compilation error

Hello,

I'm not experienced with CHISEL, just trying to experiment using the midas-examples to deploy basic apps written in CHISEL to FPGA.
So, first using the provided examples, it appears that something is going wrong in implicit param: config.Parameters .. Is there any clear workaround? or an alternative? (a local one, not Firesim)

Best regards,
Noureddine.

user@user:/media/sf_playground/midas-examples$ make Tile-verilator
make -C /media/sf_playground/midas-examples -f test.mk verilator DESIGN=Tile
make[1]: Entering directory '/media/sf_playground/midas-examples'
find: ‘/media/sf_playground/midas-examples/riscv-mini/src/main/scala’: No such file or directory
find: ‘/media/sf_playground/midas-examples/rocket-chip/src/main/scala’: No such file or directory
cd /media/sf_playground/midas-examples && sbt  \
"run midas Tile generated-src/zynq/Tile/ zynq "
[info] Loading project definition from /media/sf_playground/midas-examples/project
[info] Set current project to root (in build file:/media/sf_playground/midas-examples/)
[info] Compiling 1 Scala source to /media/sf_playground/midas-examples/chisel/target/scala-2.11/classes...
[info] Packaging /media/sf_playground/midas-examples/chisel/target/scala-2.11/chisel3_2.11-3.1-SNAPSHOT.jar ...
[info] Done packaging.
[info] Compiling 31 Scala sources to /media/sf_playground/midas-examples/midas/target/scala-2.11/classes...
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/Compiler.scala:13: not found: value config
[error] private class MidasCompiler(dir: File, io: Data)(implicit param: config.Parameters) extends firrtl.Compiler {
[error]                                                                  ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/passes/MidasTransforms.scala:36: not found: value config
[error]    (implicit param: config.Parameters) extends Transform {
[error]                     ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/Compiler.scala:36: not found: value config
[error]      (implicit p: config.Parameters): Circuit = {
[error]                   ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/Compiler.scala:62: not found: value config
[error]      (implicit p: config.Parameters): Circuit = {
[error]                   ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/Config.scala:9: not found: object config
[error] import config.{Parameters, Config, Field}
[error]        ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/Config.scala:10: not found: object junctions
[error] import junctions.{NastiKey, NastiParameters}
[error]        ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/Config.scala:14: not found: type Field
[error] case object Platform extends Field[PlatformType]
[error]                              ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/Config.scala:15: not found: type Field
[error] case object EnableSnapshot extends Field[Boolean]
[error]                                    ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/Config.scala:16: not found: type Field
[error] case object KeepSamplesInMem extends Field[Boolean]
[error]                                      ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/Config.scala:17: not found: type Field
[error] case object MemModelKey extends Field[Option[Parameters => MemModel]]
[error]                                 ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/Config.scala:18: not found: type Field
[error] case object EndpointKey extends Field[EndpointMap]
[error]                                 ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/Config.scala:20: not found: type Config
[error] class SimConfig extends Config((site, here, up) => {
[error]                         ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/Config.scala:36: not found: type Config
[error] class ZynqConfig extends Config(new Config((site, here, up) => {
[error]                          ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/Config.scala:42: not found: type Config
[error] class ZynqConfigWithSnapshot extends Config(new Config((site, here, up) => {
[error]                                      ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/Channel.scala:7: not found: object config
[error] import config.Parameters
[error]        ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/Channel.scala:8: object ParameterizedBundle is not a member of package util
[error] import util.ParameterizedBundle
[error]        ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/Channel.scala:13: not found: type Parameters
[error] class WireChannelIO(w: Int)(implicit p: Parameters) extends Bundle {
[error]                                         ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/Channel.scala:21: not found: type Parameters
[error] class WireChannel(val w: Int)(implicit p: Parameters) extends Module {
[error]                                           ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/Channel.scala:54: not found: type Parameters
[error] class ReadyValidChannelIO[T <: Data](gen: T)(implicit p: Parameters) extends Bundle {
[error]                                                          ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/Channel.scala:63: not found: type Parameters
[error] class ReadyValidChannel[T <: Data](gen: T, flipped: Boolean, n: Int = 2)(implicit p: Parameters) extends Module {
[error]                                                                                      ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/Endpoints.scala:7: not found: object junctions
[error] import junctions.{NastiIO, NastiKey}
[error]        ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/Endpoints.scala:8: not found: object uncore
[error] import uncore.axi4.AXI4Bundle
[error]        ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/Endpoints.scala:9: not found: object config
[error] import config.Parameters
[error]        ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/Endpoints.scala:20: not found: type Parameters
[error]   def widget(p: Parameters): EndpointWidget
[error]                 ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/widgets/Widget.scala:9: not found: object junctions
[error] import junctions._
[error]        ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/SimWrapper.scala:9: not found: object config
[error] import config.{Parameters, Field}
[error]        ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/SimWrapper.scala:8: not found: object uncore
[error] import uncore.axi4.AXI4Bundle
[error]        ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/SimWrapper.scala:7: not found: object junctions
[error] import junctions.NastiIO
[error]        ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/Endpoints.scala:33: not found: type Parameters
[error]   def widget(p: Parameters) = { 
[error]                 ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/Endpoints.scala:36: Any does not take parameters
[error]       case Some(modelGen) => modelGen(param)
[error]                                      ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/widgets/NastiIO.scala:8: not found: object junctions
[error] import junctions._
[error]        ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/widgets/NastiIO.scala:12: not found: object config
[error] import config.Parameters
[error]        ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/widgets/NastiIO.scala:108: not found: type Parameters
[error] class NastiWidget(implicit val p: Parameters) extends NastiWidgetBase {
[error]                                   ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/Endpoints.scala:44: not found: type NastiIO
[error]     case channel: NastiIO => channel.w.valid.dir == OUTPUT
[error]                   ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/Endpoints.scala:44: value w is not a member of chisel3.core.Data
[error]     case channel: NastiIO => channel.w.valid.dir == OUTPUT
[error]                                      ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/Endpoints.scala:51: not found: type AXI4Bundle
[error]     case channel: AXI4Bundle => channel.w.valid.dir == OUTPUT
[error]                   ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/Endpoints.scala:51: value w is not a member of chisel3.core.Data
[error]     case channel: AXI4Bundle => channel.w.valid.dir == OUTPUT
[error]                                         ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/FPGATop.scala:6: not found: object junctions
[error] import junctions._
[error]        ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/FPGATop.scala:10: not found: object config
[error] import config.{Parameters, Field}
[error]        ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/FPGATop.scala:13: not found: type Field
[error] case object MemNastiKey extends Field[NastiParameters]
[error]                                 ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/FPGATop.scala:14: not found: type Field
[error] case object FpgaMMIOSize extends Field[BigInt]
[error]                                  ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/FPGATop.scala:16: object util is not a member of package <root>
[error] class FPGATopIO(implicit p: Parameters) extends _root_.util.ParameterizedBundle()(p) {
[error]                                                        ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/FPGATop.scala:16: not found: type Parameters
[error] class FPGATopIO(implicit p: Parameters) extends _root_.util.ParameterizedBundle()(p) {
[error]                             ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/FPGATop.scala:16: Object does not take parameters
[error] class FPGATopIO(implicit p: Parameters) extends _root_.util.ParameterizedBundle()(p) {
[error]                                                             ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/widgets/Widget.scala:17: not found: type NastiIO
[error] class WidgetMMIO(implicit p: Parameters) extends NastiIO()(p)
[error]                                                  ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/widgets/Widget.scala:18: not found: type HasNastiParameters
[error]   with HasNastiParameters
[error]        ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/widgets/Widget.scala:10: not found: object config
[error] import config.{Parameters, Field}
[error]        ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/widgets/Widget.scala:17: not found: type Parameters
[error] class WidgetMMIO(implicit p: Parameters) extends NastiIO()(p)
[error]                              ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/FPGATop.scala:17: inferred type arguments [midas.widgets.WidgetMMIO] do not conform to method apply's type parameter bounds [T <: chisel3.core.Data]
[error]   val ctrl = Flipped(new WidgetMMIO()(p alterPartial ({ case NastiKey => p(CtrlNastiKey) })))
[error]              ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/FPGATop.scala:17: type mismatch;
[error]  found   : midas.widgets.WidgetMMIO
[error]  required: T
[error]   val ctrl = Flipped(new WidgetMMIO()(p alterPartial ({ case NastiKey => p(CtrlNastiKey) })))
[error]                      ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/FPGATop.scala:18: not found: type NastiIO
[error]   val mem  = new NastiIO()(p alterPartial ({ case NastiKey => p(MemNastiKey) }))
[error]                  ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/FPGATop.scala:23: not found: type Parameters
[error] class FPGATop(simIoType: SimWrapperIO)(implicit p: Parameters) extends Module with HasWidgets {
[error]                                                    ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/SimWrapper.scala:176: not found: type Parameters
[error]             (implicit val p: Parameters)
[error]                              ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/widgets/Master.scala:7: not found: object junctions
[error] import junctions._
[error]        ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/widgets/Master.scala:11: not found: object config
[error] import config.Parameters
[error]        ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/widgets/Master.scala:35: not found: type Parameters
[error] class EmulationMaster(implicit p: Parameters) extends Widget()(p) {
[error]                                   ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/widgets/PeekPokeIO.scala:7: not found: object config
[error] import config.Parameters
[error]        ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/widgets/PeekPokeIO.scala:44: not found: type Parameters
[error]     (implicit p: Parameters) extends Widget()(p) with HasChannels {
[error]                  ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/strober/widgets/DaisyController.scala:8: not found: object config
[error] import config.Parameters
[error]        ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/strober/widgets/DaisyController.scala:16: not found: type Parameters
[error] class DaisyController(daisyIF: DaisyBundle)(implicit p: Parameters) extends Widget()(p) {
[error]                                                         ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/strober/widgets/IOTrace.scala:10: not found: object config
[error] import config.Parameters
[error]        ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/strober/widgets/IOTrace.scala:30: not found: type Parameters
[error]     (implicit p: Parameters) extends Widget()(p) with HasChannels {
[error]                  ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/FPGATop.scala:80: value host is not a member of Any
[error]         (channel.host.hValid.dir: @unchecked) match {
[error]                  ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/FPGATop.scala:83: value target is not a member of Any
[error]             channel.target <> target
[error]                     ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/FPGATop.scala:84: value host is not a member of Any
[error]             channel.host.hValid := port.fromHost.hValid || simResetNext
[error]                     ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/FPGATop.scala:85: value host is not a member of Any
[error]             ready += channel.host.hReady
[error]                              ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/FPGATop.scala:88: value target is not a member of Any
[error]             target <> channel.target
[error]                               ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/FPGATop.scala:89: value host is not a member of Any
[error]             channel.host.hReady := port.toHost.hReady
[error]                     ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/FPGATop.scala:90: value host is not a member of Any
[error]             valid += channel.host.hValid
[error]                              ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/FPGATop.scala:120: not found: type NastiArbiter
[error]   val arb = Module(new NastiArbiter(memIoSize+1)(p alterPartial ({ case NastiKey => p(MemNastiKey) })))
[error]                        ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/widgets/LoadMem.scala:7: not found: object junctions
[error] import junctions._
[error]        ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/widgets/LoadMem.scala:8: not found: object config
[error] import config.{Parameters, Field}
[error]        ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/widgets/LoadMem.scala:20: not found: type Field
[error] class LoadMemWidget(hKey: Field[NastiParameters])(implicit p: Parameters) extends Widget()(p) {
[error]                           ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/widgets/LoadMem.scala:20: not found: type Parameters
[error] class LoadMemWidget(hKey: Field[NastiParameters])(implicit p: Parameters) extends Widget()(p) {
[error]                                                               ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/widgets/Widget.scala:188: not found: type Parameters
[error]   def genCtrlIO(master: WidgetMMIO, addrSize: BigInt)(implicit p: Parameters) {
[error]                                                                   ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/SimWrapper.scala:51: not found: type Field
[error] case object ChannelLen extends Field[Int]
[error]                                ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/SimWrapper.scala:52: not found: type Field
[error] case object ChannelWidth extends Field[Int]
[error]                                  ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/SimWrapper.scala:55: not found: type Parameters
[error]   implicit val p: Parameters
[error]                   ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/SimWrapper.scala:80: not found: type Parameters
[error]    (implicit val p: Parameters) extends Bundle with HasSimWrapperParams {
[error]                     ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/SimWrapper.scala:87: value add is not a member of Any
[error]         endpoint add (name, data)
[error]                  ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/SimWrapper.scala:119: could not find implicit value for parameter channelWidth: Int
[error]   val inWireChannelNum = getChunks(wireInputs.unzip._1)
[error]                                   ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/SimWrapper.scala:120: could not find implicit value for parameter channelWidth: Int
[error]   val outWireChannelNum = getChunks(wireOutputs.unzip._1)
[error]                                    ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/SimWrapper.scala:123: could not find implicit value for parameter channelWidth: Int
[error]   val wireInMap = genIoMap(wireInputs)
[error]                           ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/SimWrapper.scala:124: could not find implicit value for parameter channelWidth: Int
[error]   val wireOutMap = genIoMap(wireOutputs)
[error]                            ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/SimWrapper.scala:126: could not find implicit value for parameter channelWidth: Int
[error]     case (wire, id) => (0 until getChunks(wire)) map (off => wireIns(id+off))
[error]                                          ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/SimWrapper.scala:129: could not find implicit value for parameter channelWidth: Int
[error]     case (wire, id) => (0 until getChunks(wire)) map (off => wireOuts(id+off))
[error]                                          ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/SimWrapper.scala:186: not found: type Parameters
[error]                 (implicit val p: Parameters) extends Module with HasSimWrapperParams {
[error]                                  ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/SimWrapper.scala:210: could not find implicit value for parameter channelWidth: Int
[error]       (0 until getChunks(port)) map { off =>
[error]                         ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/SimWrapper.scala:220: could not find implicit value for parameter channelWidth: Int
[error]       val channels = inChannels slice (off, off + getChunks(wire))
[error]                                                            ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/SimWrapper.scala:222: could not find implicit value for parameter channelWidth: Int
[error]       off + getChunks(wire)
[error]                      ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/SimWrapper.scala:227: could not find implicit value for parameter channelWidth: Int
[error]       val channels = outChannels slice (off, off + getChunks(wire))
[error]                                                             ^
[error] /media/sf_playground/midas-examples/midas/src/main/scala/midas/core/SimWrapper.scala:231: could not find implicit value for parameter channelWidth: Int
[error]       off + getChunks(wire)
[error]                      ^
^C[error] /media/sf_playground/midas-examples/midas/src/main/scala/strober/passes/StroberTransforms.scala:98: not found: value config
[error]    (implicit param: config.Parameters) extends Transform {
[error]                     ^
test.mk:29: recipe for target '/media/sf_playground/midas-examples/generated-src/zynq/Tile/FPGATop.v' failed
make[1]: *** [/media/sf_playground/midas-examples/generated-src/zynq/Tile/FPGATop.v] Interrupt
Makefile:20: recipe for target 'Tile-verilator' failed
make: *** [Tile-verilator] Interrupt

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.