Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Jul 30 14:51

    Dolu1990 on dev

    Fix ClockDomainResetGenerator.p… (compare)

  • Jul 29 10:20
    jonnykl synchronize #477
  • Jul 29 08:54

    Dolu1990 on dev

    Add support to give name to Opt… (compare)

  • Jul 29 07:32

    Dolu1990 on dev

    merge Data.keep and data.noSpin… (compare)

  • Jul 29 07:15

    Dolu1990 on dev

    Add Data.noSpinalPrune (compare)

  • Jul 29 06:57
    jijingg closed #482
  • Jul 29 03:57
    jijingg commented #482
  • Jul 29 02:04
    nbstrike commented #480
  • Jul 28 14:52
    jijingg commented #482
  • Jul 28 14:48
    jijingg commented #482
  • Jul 28 13:36

    Dolu1990 on dev

    enumdefine.v issue fix dont g… Merge pull request #484 from ji… (compare)

  • Jul 28 13:36
    Dolu1990 closed #484
  • Jul 28 13:36
    Dolu1990 commented #484
  • Jul 28 13:33
    Dolu1990 commented #482
  • Jul 28 13:31

    Dolu1990 on dev

    Add SpinalReport.printRtl (compare)

  • Jul 28 13:24
    Dolu1990 commented #480
  • Jul 28 11:43

    Dolu1990 on dev

    Bmb inv/sync param rework wip BmbSyncRemover now support mult… SpinalSimUsnHost remove fastWave and 1 more (compare)

  • Jul 28 09:07

    Dolu1990 on dev

    coscup sync (compare)

  • Jul 28 07:07
    jijingg opened #484
  • Jul 28 06:57
    jijingg closed #483
Dolu1990
@Dolu1990
yes
Haozhe Zhu
@zhutmost

@jijingg you can do

addr.removeAssignments()
addr := new_addr

good , I've been looking for this method in the tag, but I didn't expect it to exist in this way , XD

The doc maybe needs to be updated. Lots of APIs cannot found in doc.

Though it is a tough work. :D
Dolu1990
@Dolu1990
@jijingg I pushed a second fix, noSpinalPrune is no more, Data.keep take it all, what's a short life <3
XD
yes the doc miss many of the specific api
jijingg
@jijingg

@jijingg you can do

addr.removeAssignments()
addr := new_addr

good , I've been looking for this method in the tag, but I didn't expect it to exist in this way , XD

The doc maybe needs to be updated. Lots of APIs cannot found in doc.

If not now, when?If not me, who? 少年 就是你 整起来吧 😄

Haozhe Zhu
@zhutmost

@jijingg you can do

addr.removeAssignments()
addr := new_addr

good , I've been looking for this method in the tag, but I didn't expect it to exist in this way , XD

The doc maybe needs to be updated. Lots of APIs cannot found in doc.

If not now, when?If not me, who? 少年 就是你 整起来吧 😄

I have tried, but it is indeed a tough job. finally I abandoned.

:D
Dolu1990
@Dolu1990
XD
jijingg
@jijingg
@jijingg I pushed a second fix, noSpinalPrune is no more, Data.keep take it all, what's a short life <3
the Api with shortest life in the world hah
Michael Meier
@distributed

@Dolu1990 Thanks for answer :)

i tried to hide it as much as possible XD

:D So maybe I have a third question, about that. The .clockDomain, which is now a Handle, can mostly be used just like it was a ClockDomain, e.g. dut.clockDomain.forkStimulus(...). How does that work? Is there an implicit that gets the contained value?

Dolu1990
@Dolu1990

@distributed

Is there an implicit that gets the contained value?

exactly

Haozhe Zhu
@zhutmost
Hi. another question. Does SpinalHDL also supports optional IO port like this? ``scalaval io = new Bundle {val mask = if (multiWays > 0) Some(Bits(multiWays bits)) else None
Dolu1990
@Dolu1990
So, personnaly i never used option much for hardware
Instead what i used so far, is
val mask = (multyWays > 0) generate Bits(multiWays bits)
which will return null if false
My guess so far about option, is that if you tried to use them, the signal will not be named
let's me try
easy fix
Haozhe Zhu
@zhutmost
oh. I have tried Option, but it doesnt work well (always NO DRIVER ON).
Maybe it is a bug?
Dolu1990
@Dolu1990

@zhutmost

oh. I have tried Option, but it doesnt work well (always NO DRIVER ON).

???

Ahhh
i guess that was related
I just pushed a fix to identify Some(x) as a element of the Area/Bundle/Component
I guess it should be fine now
guess your issue appear when using them into Bundle and them not behing included as part of the Bundle
Haozhe Zhu
@zhutmost

@zhutmost

oh. I have tried Option, but it doesnt work well (always NO DRIVER ON).

???

I write some code to reproduce the bug.

class TestIO(a: Boolean = false) extends Bundle {
  val z = Bool
  val more = if (a) Some(Bool) else None
}

class Test extends Component {
  val io = new Bundle {
    val b = out Bool()
    val t = in(new TestIO(true))
  }
  val ret = io.t.more match {
    case Some(v: Bool) => v && io.t.z
    case None => io.t.z
  }
  io.b := ret
}
It will throw an error pointing to line 3. NO DRIVER ON (toplevel/??? : Bool), defined at
Dolu1990
@Dolu1990
Right
So, with that commit it work for me
Haozhe Zhu
@zhutmost
OK. great job.
Haozhe Zhu
@zhutmost
val a = Boolean.generate(Signal) is cool. It avoids inconvenient pattern matching to extract signal from Some(signal)
Dolu1990
@Dolu1990
right, so, maybe the Option / Some stuff could make sense in some cases, but most of the time, there is a parent configuration value which specify for multiple things if they need to be implemented or not
Making things kind of redondant
I don't know, seems that for my usecases, Option/Some isn't adding value
one value that i could see about Option, is that it signal to the coder that the given thing can be "null" by design
jijingg
@jijingg

Hi. another question. Does SpinalHDL also supports optional IO port like this? ``scalaval io = new Bundle {val mask = if (multiWays > 0) Some(Bits(multiWays bits)) else None

why not directly Bits(multiWays bit), the Bits(0 bit) is common in spinal and it won't do any bad things ,I even regard Bits(0 bit) as one of the major inventions of SpinalHDL

Dolu1990
@Dolu1990
I guess the zero bits was already a thing in chisel 2 ?
jijingg
@jijingg
Maybe, I haven't used it for a long time. Compared with languages such as SV, I think Bit (0 bit) is too creative. It really makes many things simple
pointcheck
@pointcheck
Please, how to fluh StreamFifoCC ? There's no flush signal same as it is in StreamFifo.
Dolu1990
@Dolu1990
@pointcheck You need to hold reset on both side of the fifo
Haozhe Zhu
@zhutmost

Maybe, I haven't used it for a long time. Compared with languages such as SV, I think Bit (0 bit) is too creative. It really makes many things simple

Wow. let me have a try.

Haozhe Zhu
@zhutmost
So the 0-bit signals will be auto pruned?
Haozhe Zhu
@zhutmost
Another question. what is the difference between mux & Select? They are both list(x, mappings)?
Dolu1990
@Dolu1990

So the 0-bit signals will be auto pruned?

Yes

Dolu1990
@Dolu1990

Another question. what is the difference between mux & Select? They are both list(x, mappings)?

I guess they are a bit redundant XD

Haozhe Zhu
@zhutmost

Another question. what is the difference between mux & Select? They are both list(x, mappings)?

I guess they are a bit redundant XD

XD