Questions tagged [chisel]

Chisel is an open-source hardware construction language developed at UC Berkeley that supports advanced hardware design using highly parameterized generators and layered domain-specific hardware languages.

Chisel is an open-source hardware construction language developed at UC Berkeley that supports advanced hardware design using highly parameterized generators and layered domain-specific hardware languages.

Features

  • Hardware construction language (not C to Gates)
  • Embedded in the Scala programming language
  • Algebraic construction and wiring
  • Abstract data types and interfaces
  • Bulk connections
  • Hierarchical + object oriented + functional construction
  • Highly parameterizable using meta-programming in Scala
  • Supports layering of domain specific languages
  • Sizable standard library including floating-point units
  • Multiple clock domains
  • Generates low-level Verilog designed to pass on to standard ASIC or FPGA tools
  • Open source on GitHub with modified BSD license
  • Complete set of docs
  • Growing community of adopters

Resources

680 questions
4
votes
1 answer

Inner product (Dot product .) between two signal 4 bits using Chisel3

I'm a fresher in using Chisel3 to build the hardware components. Now, I'm trying to make a small module in which there are 2 inputs (vector A and vector B) and 1 outputs (out with 1 bits Unsigned Integer). Out is a Dot Product of A and B. I declared…
nhvlong06
  • 41
  • 1
4
votes
2 answers

How to initialize a Reg of Bundle in Chisel?

I declared a Bundle for my specific data : class RValue (val cSize: Int = 16) extends Bundle { val rvalue = Output(UInt(cSize.W)) val er = Output(UInt((cSize/2).W)) val part = Output(Bool()) /* set if value is partial */ } And I want to…
FabienM
  • 3,421
  • 23
  • 45
4
votes
2 answers

How to understand this line of chisel code

I'm in the process of learning chisel and scala language and try to analyse some lines of rocket-chip code.Could anyone try to explain me this line?…
nemanja
  • 75
  • 6
4
votes
1 answer

Developer's guide for Chisel?

Basically I would like to start hacking on the internals of Chisel/FIRRTL. It would help if someone could point me to where I could start looking at. I have been reading through the source code. I so far understand that Chisel has been implemented…
Anmol Sahoo
  • 165
  • 5
4
votes
1 answer

Use FIRRTL Annotations to connect multi-bit wires and pins

I am writing down some firrtl transforms and I am using annotations to connect pins and wires, like : val named = ComponentName(inputWire.name, ModuleName(mod.name, CircuitName(top))) val anno = Traversable(SinkAnnotation(named, pinName)) The…
maku lulaj
  • 168
  • 9
4
votes
1 answer

Expression _GEN_7 is used as a FEMALE but can only be used as a MALE

I am trying to write a Scala transform for firrtl, and at some point , I have a bunch of wires which should be connected to the input port. Because the number of wires could be to high, I dont want to connect each wire with a port, but concatenate…
maku lulaj
  • 168
  • 9
4
votes
1 answer

How to extract a standalone FPU module from Rocket-Chip Chisel code?

I am working on Rocket Chip Generator, which is a SoC written in Chisel. My objective is to extract the Floating-Point Unit, in order to synthesize it and study its power consumption/area ...etc. separately from the rest of the SoC. So I cloned the…
noureddine-as
  • 453
  • 4
  • 12
4
votes
1 answer

Why does implicit type conversion from Int to UInt not work?

I'm trying to learn chisel3, and I also try to be able to use implicit type conversion from Int to UInt in specific case. Following is my code. package VecTest import chisel3._ import scala.language.implicitConversions object VecTestMain extends…
Mizunashi
  • 313
  • 1
  • 7
4
votes
1 answer

How to import getVerilog() function from the bootcamp examples?

I am not sure I understand how to use the getVerilog function from: https://github.com/freechipsproject/chisel-bootcamp/blob/master/2.1_first_module.ipynb [error] passthrough_test.scala:18:11: not found: value getVerilog [error] …
caylus
  • 470
  • 4
  • 11
4
votes
3 answers

What is the meaning of :*= and :=* operators?

I see some examples in the RocketChip, but could not find info in the API reference masterNode :=* tlOtherMastersNode DisableMonitors { implicit p => tlSlaveXbar.node :*= slaveNode }
Tampler
  • 385
  • 1
  • 9
4
votes
2 answers

How to add a sbus master to rocket-chip periphery

I'm trying to implement a DMA like periphery to the rocket chip. Meaning a module that is hooked to the pbus, and controlled by registers. it also has a master hooked to the sbus. I followed the sifive format to attach registers controlled…
user3567895
  • 618
  • 3
  • 14
4
votes
2 answers

What is the <> operator in Chisel?

The Chisel tutorials make use of what appears to be a <> operator, which is completely unfamiliar to me. What does it do? Also, where does it come from? Is there a conventional meaning for this operator in other Scala libraries or even other…
alcorn
  • 1,268
  • 1
  • 8
  • 17
4
votes
1 answer

How to perform gate level simulation in Chisel3?

I wrote a hardware design in Chisel3 and also wrote a testbench in Chisel3 to test the design. And then, I synthesized the Verilog code which is generated by Chisel with Design Compiler. I want to verify that the behavior of RTL and Gate-Level are…
lssinee
  • 49
  • 1
4
votes
2 answers

Can't printf with PeekPokeTester in Chisel3

I'm trying to print some value when testing my chisel3 design with this testbench code : package taptempo import chisel3._ import chisel3.iotesters import chisel3.iotesters.{ChiselFlatSpec, Driver, PeekPokeTester} import…
FabienM
  • 3,421
  • 23
  • 45
4
votes
4 answers

Formal verification with Chisel

Is it possible to do formal verification with Chisel3 HDL language? If yes, is there an open-source software to do that ? I know that we can do verilog formal verification with Yosys, but with chisel ?
FabienM
  • 3,421
  • 23
  • 45
1 2
3
45 46