Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Feb 03 02:13

    umarcor on keep-compiling

    ci: use the built-in '--keep-co… (compare)

  • Feb 03 02:12

    umarcor on cosim

    cosim/dpi-ffi: add 'vhdpi_ghdl.… cosim/dpi-ffi: add VHDPI_Test (compare)

  • Feb 03 01:56

    umarcor on cosim

    WIP setenv (compare)

  • Feb 03 01:55

    umarcor on main

    cosim/dpi-ffi/ghdl-vffi/test: a… (compare)

  • Feb 03 01:54

    umarcor on cosim

    (compare)

  • Feb 03 01:52

    umarcor on main

    WIP envvars (compare)

  • Feb 03 01:50

    umarcor on cosim

    WIP envvars (compare)

  • Feb 02 23:13

    umarcor on master

    (compare)

  • Feb 02 23:13

    umarcor on main

    (compare)

  • Feb 02 23:13

    umarcor on cosim

    (compare)

  • Feb 02 23:10

    umarcor on master

    cosim/dpi-ffi: create subdir 'g… cosim/dpi-ffi: fix compilation … cosim/dpi-ffi/ghd-vffi: use VUn… and 2 more (compare)

  • Feb 02 22:58

    umarcor on cosim

    ci: add workflow CoSim cosim/dpi-ffi: add README (compare)

  • Feb 02 22:45

    umarcor on cosim

    ci: add workflow CoSim cosim/dpi-ffi: add README (compare)

  • Feb 02 22:43

    umarcor on cosim

    cosim/dpi-ffi: create subdir 'g… cosim/dpi-ffi: fix compilation … cosim/dpi-ffi/ghd-vffi: use VUn… and 2 more (compare)

  • Oct 05 2021 13:29

    umarcor on top-subtype

    (compare)

  • Oct 05 2021 13:28

    umarcor on master

    2008: ad tb_top_generic_subtype cosim: add ref to aguinet/drago… (compare)

  • Sep 24 2021 20:07

    umarcor on top-subtype

    2008: ad tb_top_generic_subtype (compare)

  • Sep 24 2021 19:59

    umarcor on top-subtype

    2008: ad tb_top_generic_subtype (compare)

  • Sep 24 2021 19:54

    umarcor on top-subtype

    2008: ad tb_top_generic_subtype (compare)

  • Sep 23 2021 01:45

    umarcor on style

    (compare)

sckoarn
@sckoarn
Thanks
Richard Head
@trickyhead_gitlab
@sckoarn you mean any overloaded functions as numeric_std is defined in the LRM
sckoarn
@sckoarn
Over loaded or not, if I create a package, LRM rules do not apply
As the LRM I was looking at were specific to implicit.
Richard Head
@trickyhead_gitlab
@sckoarn the part of the lrm you were refering to was for operators implicitly declared when you declare a type. you could declare a type in a package without overloading it and hence the visible operators would be the implicit ones. If you provide an overloaded version in the same package as the type, then you can no longer access the implicit function by any means.
sckoarn
@sckoarn
@trickyhead_gitlab Thanks for the details, it is nice to have some to go over this kind of stuff.
sckoarn
@sckoarn

A numeric_bit package function:

  -- Id: A.29
  function "rem" (L : UNSIGNED; R : NATURAL) return UNSIGNED is
    constant R_LENGTH : NATURAL := MAXIMUM(L'length, UNSIGNED_NUM_BITS(R));
    variable XR, XREM : UNSIGNED(R_LENGTH-1 downto 0);
  begin
    if (L'length < 1) then return NAU;
    end if;
    XR   := TO_UNSIGNED(R, R_LENGTH);
    XREM := RESIZE((L rem XR), XREM'length);
    if R_LENGTH > L'length and XREM(R_LENGTH-1 downto L'length)
      /= (R_LENGTH-1 downto L'length => '0')
    then
      assert NO_WARNING report "NUMERIC_BIT.""rem"": Remainder Truncated"        ---<<<<  How to get here?
        severity warning;
    end if;
    return RESIZE(XREM, L'length);
  end function "rem";

Can anyone tell me how I can get that assert to fire?

We believe this is dead code.
Unai Martinez-Corral
@umarcor
@sckoarn did you report similar possibly dead snippets before? If it wasn't you, done other user did it in the last months. There should be some issue about it in Gitlab.
sckoarn
@sckoarn
yes I have.
Unai Martinez-Corral
@umarcor
*some other
sckoarn
@sckoarn
I lost track of the link, it got moved from my original posting location.
Unai Martinez-Corral
@umarcor
That's the MR I created. This is the issue: IEEE-P1076/VHDL-Issues#267
sckoarn
@sckoarn
Perfect Thanks.
Unai Martinez-Corral
@umarcor
I had some errors in CI but I did not have time to check.
sckoarn
@sckoarn
Should I add to that one, or create a new one? looks like it is going to be merged?
Unai Martinez-Corral
@umarcor
So, the MR is a placeholder. Feel free to pick it and do further tests
sckoarn
@sckoarn
sorry, MR?
merge request ...
Unai Martinez-Corral
@umarcor
It's normative, so it won't be merged until it's discussed in a meeting
MR: Merge Request. Gitlab's equivalent to Github' PR (pull request)
sckoarn
@sckoarn
Yes, ok I had full details of every line from before. I am not at that state yet. Should I wait till I can provide full details?
Mid next week I expect to be done with numeric_bit.
Kaleb Barrett
@ktbarrett
Why is case not a concurrent statement?
when statement chains are super readable.
Brian Padalino
@bpadalino
aren't you able to use when statements outside of a process ?
Kaleb Barrett
@ktbarrett
That's what I'm complaining about. I don't enjoy making when statement chains compared to just writing a case statement
Brian Padalino
@bpadalino
then wrap your case in a process(all) statement
doesn't that solve the issue?
Kaleb Barrett
@ktbarrett

just add more code

Awesome

Brian Padalino
@bpadalino
process(all) case ... end case ; end process; is too much?
the with/select statement is the same as the case except with a slightly different syntax, the same readibility of the case/when, and is concurrent
why is with/select not the solution you want ?
Brian Padalino
@bpadalino
i think the crux of it, from a language standpoint, is that case statements can assign to all sorts of signals .. not just a single one .. so with/select assigns to a single signal .. adding case in a concurrent manner would really screw with that
so if you just prefer reading the case statement, and are only assigning to a single signal, then living with having to write 3 extra lines of code for a style preference doesn't seem like too bad of a compromise
Brian Padalino
@bpadalino
i guess it's just 2 lines since you're wrapping it in a simple process
Richard Head
@trickyhead_gitlab

Why is case not a concurrent statement?

likely for the same reason an if statement is not concurrent

Brian Padalino
@bpadalino
i don't have access to the LRM, but does it say anything about how boolean values are represented when using read or write? can they be uppercase or lowercase and it doesn't matter ?
Richard Head
@trickyhead_gitlab
@bpadalino for implementation details, I look at the GHDL github repo as the LRM doesnt define the implementation on the functions (I think IEEE provides a reference implementation that tools use). GHDL version here will read upper or lower case or any combination of. https://github.com/ghdl/ghdl/blob/dabf31c2b12633033cea5a177f0deefe28c05c9b/libraries/std/textio-body.vhdl#L653
Brian Padalino
@bpadalino
@trickyhead_gitlab thanks .. it seems to write uppercase .. and nvc uses lowercase .. i didn't know if there was a definitive answer .. but it sounds like either
6 replies
@trickyhead_gitlab i was told by @nickg that the LRM appears to say that write for reals in VHDL say to use the exponential if the precision is set to 0 .. but ghdl doesn't seem to do that ?
i wonder if thats an inconsistency .. where real'image() says to not use exponents .. but the write does ..?
Brian Padalino
@bpadalino
i had a little conversation with @johonkanen yesterday, and it was mentioned that he has a repository of some high level synthesizable VHDL modules (https://github.com/hVHDL) that tries to maximize reuse .. and it got me wondering about modern VHDL techniques for (1) verification and validation, (2) synthesis, and (3) maximum reuse
the thought reminds me of what happened with javascript back in the mid 2000's .. where the frameworks got a bit more structured and helpful - improving reuse and giving way to a modern approach to writing javascript code
other than @johonkanen's repo .. has anyone else been writing about this? or have good examples? are there good community guidelines?
Patrick Lehmann
@Paebbels
something like PoC?