Building a Simulator using a Verilator Issue
Hello,
I was trying to build a gemmini simulator using a verilator, therefore following the instructions provided in the README.md
I am using the latest docker image for the chipyard. Once I run the the following commands, I got the following error messages. Is there any quick fix for this?
cd chipyard/generators/gemmini ./scripts/build-verilator.sh
...
[error] /root/chipyard/generators/gemmini/src/main/scala/gemmini/AccumulatorScale.scala:183:28: missing argument list for method fire in class Valid
[error] Unapplied methods are only converted to functions when a function type is expected.
[error] You can make this conversion explicit by writing fire _ or fire(_) instead of fire.
[error] when (pipe_out.fire && pipe_out.bits.id === j.U && pipe_out.bits.index === w.U) {
[error] ^
[error] /root/chipyard/generators/gemmini/src/main/scala/gemmini/DMA.scala:544:78: missing argument list for method fire in class Valid
[error] Unapplied methods are only converted to functions when a function type is expected.
[error] You can make this conversion explicit by writing fire _ or fire(_) instead of fire.
[error] tl.a.bits.address := RegEnableThru(io.tlb.resp.paddr, RegNext(io.tlb.req.fire))
[error] ^
[error] /root/chipyard/generators/gemmini/src/main/scala/gemmini/DMACommandTracker.scala:85:29: missing argument list for method fire in class Valid
[error] Unapplied methods are only converted to functions when a function type is expected.
[error] You can make this conversion explicit by writing fire _ or fire(_) instead of fire.
[error] when (io.request_returned.fire) {
[error] ^
[error] /root/chipyard/generators/gemmini/src/main/scala/gemmini/ExecuteController.scala:970:21: missing argument list for method fire in class Valid
[error] Unapplied methods are only converted to functions when a function type is expected.
[error] You can make this conversion explicit by writing fire _ or fire(_) instead of fire.
[error] when(mesh.io.resp.fire && mesh.io.resp.bits.tag.rob_id.valid) {
[error] ^
[error] /root/chipyard/generators/gemmini/src/main/scala/gemmini/FrontendTLB.scala:57:22: value hv is not a member of freechips.rocketchip.rocket.SFenceReq
[error] tlb.io.sfence.bits.hv := false.B
[error] ^
[error] /root/chipyard/generators/gemmini/src/main/scala/gemmini/FrontendTLB.scala:58:22: value hg is not a member of freechips.rocketchip.rocket.SFenceReq
[error] tlb.io.sfence.bits.hg := false.B
[error] ^
[error] /root/chipyard/generators/gemmini/src/main/scala/gemmini/FrontendTLB.scala:64:36: missing argument list for method fire in class Valid
[error] Unapplied methods are only converted to functions when a function type is expected.
[error] You can make this conversion explicit by writing fire _ or fire(_) instead of fire.
[error] when (interrupt && tlb.io.sfence.fire) {
[error] ^
[error] /root/chipyard/generators/gemmini/src/main/scala/gemmini/FrontendTLB.scala:71:70: missing argument list for method fire in class Valid
[error] Unapplied methods are only converted to functions when a function type is expected.
[error] You can make this conversion explicit by writing fire _ or fire(_) instead of fire.
[error] io.counter.connectEventSignal(CounterEvent.DMA_TLB_HIT_REQ, io.req.fire && !tlb.io.resp.miss)
[error] ^
[error] /root/chipyard/generators/gemmini/src/main/scala/gemmini/FrontendTLB.scala:72:72: missing argument list for method fire in class Valid
[error] Unapplied methods are only converted to functions when a function type is expected.
[error] You can make this conversion explicit by writing fire _ or fire(_) instead of fire.
[error] io.counter.connectEventSignal(CounterEvent.DMA_TLB_TOTAL_REQ, io.req.fire)
[error] ^
[error] /root/chipyard/generators/gemmini/src/main/scala/gemmini/FrontendTLB.scala:76:24: missing argument list for method fire in class Valid
[error] Unapplied methods are only converted to functions when a function type is expected.
[error] You can make this conversion explicit by writing fire _ or fire(_) instead of fire.
[error] PerfCounter(io.req.fire && !tlb.io.resp.miss, "tlb_hits", "total number of tlb hits")
[error] ^
[error] /root/chipyard/generators/gemmini/src/main/scala/gemmini/FrontendTLB.scala:77:24: missing argument list for method fire in class Valid
[error] Unapplied methods are only converted to functions when a function type is expected.
[error] You can make this conversion explicit by writing fire _ or fire(_) instead of fire.
[error] PerfCounter(io.req.fire, "tlb_reqs", "total number of tlb reqs")
[error] ^
[error] /root/chipyard/generators/gemmini/src/main/scala/gemmini/FrontendTLB.scala:128:86: missing argument list for method fire in class Valid
[error] Unapplied methods are only converted to functions when a function type is expected.
[error] You can make this conversion explicit by writing fire _ or fire(_) instead of fire.
[error] val tlbReqFire = if (use_shared_tlb) tlbArbOpt.get.io.in(i).fire else tlb.io.req.fire
[error] ^
[error] /root/chipyard/generators/gemmini/src/main/scala/gemmini/LoadController.scala:119:56: missing argument list for method fire in class Valid
[error] Unapplied methods are only converted to functions when a function type is expected.
[error] You can make this conversion explicit by writing fire _ or fire(_) instead of fire.
[error] cmd_tracker.io.request_returned.valid := io.dma.resp.fire // TODO use a bundle connect
[error] ^
[warn] there were 217 feature warnings; re-run with -feature for details
[warn] one warning found
[error] /root/chipyard/generators/gemmini/src/main/scala/gemmini/ReservationStation.scala:451:22: missing argument list for method fire in class Valid
[error] Unapplied methods are only converted to functions when a function type is expected.
[error] You can make this conversion explicit by writing fire _ or fire(_) instead of fire.
[error] when (io.completed.fire) {
[error] ^
[error] /root/chipyard/generators/gemmini/src/main/scala/gemmini/ReservationStation.scala:522:100: missing argument list for method fire in class Valid
[error] Unapplied methods are only converted to functions when a function type is expected.
[error] You can make this conversion explicit by writing fire _ or fire(_) instead of fire.
[error] when (io.issue.ld.fire() || io.issue.st.fire() || io.issue.ex.fire() || !io.busy || io.completed.fire) {
[error] ^
[error] /root/chipyard/generators/gemmini/src/main/scala/gemmini/StoreController.scala:159:56: missing argument list for method fire in class Valid
[error] Unapplied methods are only converted to functions when a function type is expected.
[error] You can make this conversion explicit by writing fire _ or fire(_) instead of fire.
[error] cmd_tracker.io.request_returned.valid := io.dma.resp.fire // TODO use a bundle connect
[error]
...
Thanks OzU-CAST
Most probably, your Chipyard commit does not match CHIPYARD.hash.
Try checking out an earlier release of Gemmini, which might be compatible with your version of Chipyard.