!jSbgpvvpsPbLpsLZOC:matrix.org

Chisel Lang

624 Members
Discussion about the Chisel Hardware Description Language. Use the following Scastie Template for testing and questions: https://scastie.scala-lang.org/xrdIdl36SmqFancoEFErAw.4 Servers

Load older messages


SenderMessageTime
29 Mar 2024
@me:mumblingdrunkard.commumblingdrunkardOh that makes total sense. I'm probably coming from the wrong end of the spectrum and thinking about things in terms of component count. Wires are ideal heheh.22:09:01
@jackkoenig-57e1805540f3a6eec0665030:gitter.imjackkoenig (Jack Koenig)Put another way, the length (and thus capacitance) of wires gets a lot more problematic the smaller your technology. Yeah Wires are not at all ideal these days22:09:20
@jackkoenig-57e1805540f3a6eec0665030:gitter.imjackkoenig (Jack Koenig)But, your intuition about lots of ports being a problem is right on. Area is less of a concern than routing the wires. It's a HUGE problem with no silver bullet. You just work hard and try to be clever in the microarchitecture to reduce how many ports you need22:10:34
@me:mumblingdrunkard.commumblingdrunkardYeah, I still think the optimisation helps a lot, whatever the muxing synthesises to. It was a lot of fun when I finally found a scheme that clicked, and it's so simple. I'm not enough of a maths wizz to prove that it always holds though hahah.22:12:33
@me:mumblingdrunkard.commumblingdrunkardThanks a lot for your thoughts. I might try to write about that and correct my assumptions about what efficient synthesis means.22:13:10
@me:mumblingdrunkard.commumblingdrunkardFor more context, I'm working inside the BOOM project, adding load-address prediction on top of some stuff my advisor has worked on. I've been browsing through the code, and I think the scheme I came up with could help with complexity in other predictors too. Maybe I'll get my advisor to push it onto some poor student after I'm gone.22:14:59
30 Mar 2024
@longfangsong-5b874dfad73408ce4fa64936:gitter.imlongfangsong (龙方淞) joined the room.15:32:52
2 Apr 2024
@kavskavs:gitter.imkavskavs joined the room.19:41:06
@kavskavs:gitter.imkavskavsRedacted or Malformed Event19:42:02
@kavskavs:gitter.imkavskavs * Hi, where can i ask beginner level doubts ( currently going through the https://github.com/schoeberl/chisel-lab/ excercises)19:42:47
@kavskavs:gitter.imkavskavsRedacted or Malformed Event19:46:41
4 Apr 2024
@hutch31-5759afc9c2f0db084a1d0ab0:gitter.imhutch31 (Guy Hutchison)
In reply to @jackkoenig-57e1805540f3a6eec0665030:gitter.im
Let me preface by saying that I am not an expert here and might be wrong, but I do support designers building high-performance stuff in modern technologies and I'm pretty sure they don't use tri-state at all.
You are right that the mux trees would be massive (this can be mitigated a bit as most ASIC technologies provide Mux4 primitives which help a little, although that's more with routing than with area), and the tri-state logic would certainly have fewer wires which helps with routing, but I think you run into drive strength issues with the length of the wire (those tri-state gates have to get pretty big), and the length of time it takes to drive the wire may be just too limiting on your clock speed to make the benefits worth it
Also causes problems with the black arts of DFT, hard to find stuck-ats on a multi-driven bus.
19:03:25
6 Apr 2024
@me:mumblingdrunkard.commumblingdrunkardQuick question. Does MuxCase prioritize the first match?11:59:17
7 Apr 2024
@unlsycn:gitter.imunlsycn joined the room.02:14:39
8 Apr 2024
@jooyeon111-60d94deb6da03739847fd235:gitter.imjooyeon111 (jooyeon111)Redacted or Malformed Event04:43:03
@jooyeon111-60d94deb6da03739847fd235:gitter.imjooyeon111 (jooyeon111)

I'm trying to generate vcd file in recent version of Chisel. I used to use

test(new MyModule).withAnnotations(Seq(WriteVcdAnnotation))

to generate vcd file. However, recent version of chisel test use "svsim" so i tried

simulate(new MyModule).withAnnotations(Seq(WriteVcdAnnotation))

to generate vcd file. It dose not work well. Which keywords should i use to generate vcd files? Thanks.

04:53:40
@rameloni:gitter.imRaffaele Meloni
In reply to @jooyeon111-60d94deb6da03739847fd235:gitter.im

I'm trying to generate vcd file in recent version of Chisel. I used to use

test(new MyModule).withAnnotations(Seq(WriteVcdAnnotation))

to generate vcd file. However, recent version of chisel test use "svsim" so i tried

simulate(new MyModule).withAnnotations(Seq(WriteVcdAnnotation))

to generate vcd file. It dose not work well. Which keywords should i use to generate vcd files? Thanks.

Hi Ephemeral simulator doesn't generate Vcd traces at the moment
05:51:36
@jooyeon111-60d94deb6da03739847fd235:gitter.imjooyeon111 (jooyeon111)Thank you for the answering my question!!. So,currently is there any method to verify my own chisel design with digital timing diagram right now?05:55:53
@rameloni:gitter.imRaffaele Meloni

I've been working on a simulator that will generate not only Vcd files for chiselsim like chiseltest but also a waveform viewer suited for chisel. However it's currently under development.

I realized a demo which contains 2 simulators ParametricSimulator and another one to generate waves for chisel types: https://github.com/rameloni/tywaves-chisel-demo

The parametric simulator is fully working and you can use it to generate Vcd. But it relies on the development branch of chisel. In my readme it should be clear enough how to use it.

05:56:27
@rameloni:gitter.imRaffaele Meloni

I was going to create a post later today about my project. I've already talked with the CIRCT group (especially Fabian) about that but I haven't published the demo yet.

It's a demo and it has limited support for specific chisel waveforms but as I said ParametricSimulator should be enough for you at the moment

05:58:48
@jooyeon111-60d94deb6da03739847fd235:gitter.imjooyeon111 (jooyeon111) Wow, thank you!! i will try it right now!!!06:00:32
@rameloni:gitter.imRaffaele MeloniYou're welcome! And please, let me know!06:01:21
@rameloni:gitter.imRaffaele MeloniThe makefile in the repo should have rules to install everything properly 06:01:46
@jooyeon111-60d94deb6da03739847fd235:gitter.imjooyeon111 (jooyeon111)Okay!!06:02:20
@rameloni:gitter.imRaffaele Meloni If you run make all it should publish locally the library with all the dependencies and to use it in your project you can add:
libraryDependencies += "com.github.rameloni" %% "tywaves-demo-backend" % "0.1.0-SNAPSHOT"
I need to update the readme
06:08:36
@rameloni:gitter.imRaffaele Meloni jooyeon111 (jooyeon111): I've just updated the branch with the new readme, you can follow the instructions there. There's also an update in the source code after I merged the branch, you should pull and install it again if you have already done it 06:41:36
9 Apr 2024
@jackkoenig-57e1805540f3a6eec0665030:gitter.imjackkoenig (Jack Koenig) This looks super cool Raffaele Meloni! 16:18:23
@karljoad:matrix.orgkarljoad

I am getting some confusing results in a family of operations. I have a Vec(batchSize, UInt(64.W)) and want to perform element operations on two of these vecs.
The following code produces incorrect results:

workingSpace := (io.in1, io.in2).zipped.map(_ <= _)
// workingSpace result is (0x1, 0x31, 0x0)

Am I missing something about the way a mapped binary operator over a vector works?

17:03:03
@karljoad:matrix.orgkarljoad *

I am getting some confusing results in a family of operations. I have a Vec(batchSize, UInt(64.W)) and want to perform element operations on two of these vecs.
The following code produces incorrect results:

workingSpace := (io.in1, io.in2).zipped.map(_ <= _)
// workingSpace result is (0x1, 0x31, 0x0)
// Result should be (true, false, true)

Am I missing something about the way a mapped binary operator over a vector works?

17:17:26
@jackkoenig-57e1805540f3a6eec0665030:gitter.imjackkoenig (Jack Koenig)From the code you've shared, I agree that is a surprising result. Can you share a little bit more context, perhaps a reproducible example built from the Chisel Scala CLI example? https://www.chisel-lang.org/docs/installation#quickstart-with-scala-cli18:15:40

Show newer messages


Back to Room ListRoom Version: 5