chisel-bootcamp icon indicating copy to clipboard operation
chisel-bootcamp copied to clipboard

Lot's of TODO's

Open azidar opened this issue 6 years ago • 3 comments

  • [ ] 3.3: Add better description of an Arbiter, and the arguments to the Arbiter constructor
  • [ ] 3.4: Never define scan, or what the Left or Right means
  • [ ] 3.6: No description about the @ sign in a match/case statement.
  • [ ] 3.6: () => new MyModule passed to getVerilog is broken everywhere
  • [ ] 3.6: SomeGeneratorParameters is from 3.5, need to move it over
  • [ ] 3.6: Type generic shift register example has a clonetype warning
  • [ ] 3.6: Type generics with typeclasses, add link to dsptools readme/documentation
  • [ ] Link to ScalaDoc, Wiki, Cheatsheet, and Github in every module
  • [ ] 3.6: Fix ShiftRegister[UInt](..) text, thinks its a link, need \'s
  • [ ] 4.4: Remove extra comments in imports
  • [ ] 4.4: Remove firrtl.ir import in loadivy2.sc, fixup stringing type declaration

azidar avatar May 08 '18 23:05 azidar

3.6: "Exercise: Mac as Object": solution suggests "you could also instantiate the Mac from above and connect the IOs to arguments". It'd be nice to actually provide a working example of that, since I can't figure out how one would clone the type of the apply method's return type:

object Mac {
    def apply[T <: Data : Ring](a: T, b: T, c: T): T = {
        val m = new Mac(a.cloneType, ???) // <--- assuming m.io.out is wider than a, b, and c
        m.io.a := a
        m.io.b := b
        m.io.c := c
        m.io.out
    }
}

gsomlo avatar Nov 26 '18 14:11 gsomlo

  1. In most cases one should call chiselTypeOf(...) instead of .cloneType()

  2. If you don't care about the output's width explicitly one option could just be new Mac(chiselTypeOf(a), UInt())?

edwardcwang avatar Nov 26 '18 19:11 edwardcwang

~~Lot's of TODO's~~ Lots of TODOs: I think this issue should be pinned on top and be tagged with help-wanted.

Just now I went through 3.6. The good point is that I have some knowledge on functional programming languages, and many of the features in Scala seem natural to me; however for newbies they are hard to understand (so they need to be completed). Many places are not refined, and I even find that the "Exercise: Integrator" has been filled with the provided solution, which cannot pass compilation. Solution for 3.6 "Exercise: Mac as Object" (as mentioned by @gsomlo) is also broken.

I'm also new to Chisel and so far I don't have the ability to fix them though...

jyhi avatar Feb 10 '20 07:02 jyhi