Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Jun 27 21:13
    kleinai commented #788
  • Jun 27 11:09
    kleinai commented #788
  • Jun 27 09:30
    dnltz commented #769
  • Jun 27 09:19
    dnltz edited #788
  • Jun 27 09:18
    dnltz edited #788
  • Jun 27 09:18
    dnltz synchronize #788
  • Jun 27 09:16
    dnltz opened #788
  • Jun 27 07:32
    Dolu1990 commented #785
  • Jun 27 07:31
    Dolu1990 commented #785
  • Jun 27 07:31
    Dolu1990 closed #785
  • Jun 27 07:31

    Dolu1990 on dev

    Fix #785 : When setInlineVerilo… (compare)

  • Jun 25 09:14

    Dolu1990 on dev

    Fix BmbToWishbone burst and bac… (compare)

  • Jun 25 08:48

    Dolu1990 on dev

    Fix symplify cache ? (compare)

  • Jun 24 09:37
    Dolu1990 commented #763
  • Jun 23 20:09
    jonnykl commented #763
  • Jun 23 14:43
    Dolu1990 commented #786
  • Jun 23 13:58
    Dolu1990 commented #784
  • Jun 23 01:34
    kellenwang1017 opened #786
  • Jun 23 01:26
    liuwei9 opened #785
  • Jun 22 16:40
    Dolu1990 commented #783
Dolu1990
@Dolu1990
(in copy pastable code) ^^
You can use
```scala
your scala code here
```
Pu Wang
@pwang7

@pwang7 assert(False, L"miaou $False", FAILURE) is fine for me

I prepared a simple example to illustrate the compiler error of the L"" interpolate in assert:

https://github.com/pwang7/SpinalAssertDemo

after clone the repo, just run ./run.sh to compile and it shows the error:

./run.sh 
+ export MILL_VERSION=0.10.3
+ [ ! -f mill ]
+ MILL=./mill --no-server
+ ./mill --no-server version
[1/1] version 
0.10.3
+ mkdir -p ./rtl
+ ./mill --no-server _.runMain AssertDemo
[31/42] demo.compile 
[info] compiling 1 Scala source to /home/pwang/Downloads/code/SpinalAssertDemo/out/demo/compile.dest/classes ...
[error] /home/pwang/Downloads/code/SpinalAssertDemo/demo/src/demo.scala:12:3: overloaded method assert with alternatives:
[error]   (assertion: spinal.core.Bool,message: Seq[Any])(implicit loc: spinal.idslplugin.Location): spinal.core.internals.AssertStatement <and>
[error]   (assertion: spinal.core.Bool,message: String)(implicit loc: spinal.idslplugin.Location): spinal.core.internals.AssertStatement <and>
[error]   (assertion: spinal.core.Bool,severity: spinal.core.AssertNodeSeverity)(implicit loc: spinal.idslplugin.Location): spinal.core.internals.AssertStatement <and>
[error]   (assertion: Boolean,message: => Any)(implicit loc: spinal.idslplugin.Location): Unit
[error]  cannot be applied to (spinal.core.Bool, spinal.core.LiteralBuilder#LList)
[error]   assert(False, L"${REPORT_TIME} time: ${io.input.payload}")
[error]   ^
[error] one error found
1 targets failed
demo.compile Compilation failed
Kellen Wang
@kellenwang1017
how to send stimulus to TriState type of io in doSim?
Dongwei939
@Dongwei939
hello, if anyone can tell me how can i joint two signals? such as { } in verilog
jijingg
@jijingg
e := (a,b,c,d)
Dongwei939
@Dongwei939
thank you!!
jijingg
@jijingg
(a,b,c,d) := e
Dongwei939
@Dongwei939
thank you!
Dongwei939
@Dongwei939
type mismatch;
[error] found : spinal.core.UInt
[error] required: (Any, Any)
[error] pam4_c_data := (io.sink_data,io.sink_data)
can you tell me why?Please~
A.M.
@allexoll
EstablishedHDLs-FCCM.pdf
Dolu1990
@Dolu1990
@Dongwei939 what are pam4_c_data and io.sink_data
@allexoll Thanks ^^
Dongwei939
@Dongwei939
class TopLevel extends Component {
val io = new Bundle {
val sink_data       = in UInt(1 bit)
val sink_data_valid = in Bool()

val source_pam4       = out UInt(2 bits)
// val source_pam4_valid = out Bool()
}
val sink_data_r   = Reg(UInt(2 bits))


sink_data_r := (io.sink_data , io.sink_data)
@Dolu1990 thanks ! this is my code.
type mismatch;
[error]  found   : spinal.core.UInt
[error]  required: (Any, Any)
[error] sink_data_r := (io.sink_data , io.sink_data)
[error]                    ^
Dolu1990
@Dolu1990
I moved the NaxRiscv pipeline tool into the spinal.lib.pipeline package (for all)
Should be considered as a experimental API
@Dongwei939 Ahhhh, sink_data_r := io.sink_data @@ io.sink_data
@@ is to concatenate 2 things and preserve the type (UInt/SInt)
## is for concatenate things in raw mode (always return Bits)
Côme
@come_744:tedomum.net
[m]
Without Markdown interpretation: and ## is for raw mode
Dongwei939
@Dongwei939
oh! thank you!!!
志哈
@zhiha
hello~Dolu, I want to know how to init a ram, without generating the initializing .bin file. My team is using the vivado to synthesis which does not support the "readmemb".
Dolu1990
@Dolu1990
@zhiha In the SpinalConfig, you can set inlineRom to true
@kervel wrong channel ^^ ?
志哈
@zhiha
@Dolu1990 thanks, I'll try ^^
Côme
@come_744:tedomum.net
[m]
Hello, a few days ago Scala started printing warnings with assignments in my test benches: reflective access of structural type member value start should be enabled
import dut.io

io.start #= true
It does not always print this message. What do you think about it?
Dolu1990
@Dolu1990
Hi, does it print it during the testbench runtime ? or before, during the elaboration of the hardware ?
Seems like at testbench runtime if i understand well
that's a weird one
Côme
@come_744:tedomum.net
[m]
It is printed at compile time
Dolu1990
@Dolu1990
I had it too just today
compile time ?
Côme
@come_744:tedomum.net
[m]
Yes, my IDE shows it
Dolu1990
@Dolu1990
can you show ?
Côme
@come_744:tedomum.net
[m]
sbt doc prints them too
sbt compile too
I mean, it is even before a run or a runMain
Dolu1990
@Dolu1990
hmmm
Côme
@come_744:tedomum.net
[m]
Workaround: in build.sbt, add scalacOptions ++= Seq("-language:reflectiveCalls") but I am not sure about what it does. And about the meaning of the warning, too ^^'
Côme
@come_744:tedomum.net
[m]
When this warning occurs, another one is printed, before the others: [warn] dropping dependency on node with no phase object: uncurry
No idea about what it is, maybe there is a link between the two?
Another workaround seems to be:
class AesInterface extends Bundle {
  val start = in Bool ()
  val text, key = in UInt(128 bits)
  val ready = out Bool ()
  val cipher = out UInt (128 bits)
}


class Aes extends Component {
/*  version with warnings
  val io = new Bundle {
    val start = in Bool ()
    val text, key = in UInt (128 bits)
    val ready = out Bool ()
    val cipher = out UInt (128 bits)
  }
  */
  val io = new AesInterface
Côme
@come_744:tedomum.net
[m]
(The idea of rewriting it this way comes from: https://stackoverflow.com/questions/39202927/how-not-to-require-the-import-of-scala-language-relectivecalls which states that "The reason why you are getting this warning is that you have structural type reference or new {...} call somewhere in your test method.")

Also, defining interfaces this way could be good to document them and then generate documentation using sbt doc.

It may seem strange, but it is kind of like defining entity then architecture ^^'

Dolu1990
@Dolu1990
Ahhhhh
i think i see
in scala, there is something realy weird, which is getting even worst in scala 3, the issue is that having
val yyy = new MyClass{
   val xxx = 42
}
println(yyy.xxx) //Scala actualy use runtime reflection to access xxx from yyy, if i'm not wrong.
2 replies
Dolu1990
@Dolu1990
For all, what's about having a https://opencollective.com/ SpinalHDL collective ? In order to collect and manage donations ?
Does somebody has opinion about it ?
3 replies