umarcor on keep-compiling
ci: use the built-in '--keep-co… (compare)
umarcor on cosim
cosim/dpi-ffi: add 'vhdpi_ghdl.… cosim/dpi-ffi: add VHDPI_Test (compare)
umarcor on cosim
WIP setenv (compare)
umarcor on main
cosim/dpi-ffi/ghdl-vffi/test: a… (compare)
umarcor on cosim
umarcor on main
WIP envvars (compare)
umarcor on cosim
WIP envvars (compare)
umarcor on master
umarcor on main
umarcor on cosim
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)
umarcor on cosim
ci: add workflow CoSim cosim/dpi-ffi: add README (compare)
umarcor on cosim
ci: add workflow CoSim cosim/dpi-ffi: add README (compare)
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)
umarcor on top-subtype
umarcor on master
2008: ad tb_top_generic_subtype cosim: add ref to aguinet/drago… (compare)
umarcor on top-subtype
2008: ad tb_top_generic_subtype (compare)
umarcor on top-subtype
2008: ad tb_top_generic_subtype (compare)
umarcor on top-subtype
2008: ad tb_top_generic_subtype (compare)
umarcor on style
from module import *
in Python.
numeric_std_unsigned
was only added, IMO, because people were continuing to use, and refused to migrate away from std_logic_unsigned. Again, this is basically the same reason that std_logic_textio was added to the standard
numeric_std_unsigned
in RTL code and would require it in a design team - not to intentionally use it, however, my concern is that it is easy for someone to mistakenly use >
with std_logic_vector. This can result in RTL and GATE implementation mismatches. This is a subtle bug that is hard to find - even with an experienced review team. However, if one were to include numeric_std_unsigned
then >
always has a consistent meaning in both RTL and GATE - and it is easy to review for - did they include the package or not. Hence, using numeric_std_unsigned
makes something that is a design bug into a methodology mistake.
@umarcor There is no longer a reason for a user to use multiple versions of the language. The reason VHDL-93 was used is that historically was the subset of the language used for RTL. Hence, it was a lint tool that made sure you did not introduce something the synthesis tool could not handle. However, you should be able to compile 93 RTL code in 2008 and have it work the same way.
A simulator that only supports one version would work fine. Even with the lint
check. First compile the RTL for 93 as a lint check. Then compile it for 2008 and simulate it with other 2008 code.
warning
was a little to subtle for people - maybe they should have used suppressed warning
What is the use model for this? If they want to use strict2008, then they should fix their code, right?
@JimLewis, unless the code was bought from a third-party and there is no budget for having it updated/fixed.
I keep saying "strict 2008" because I believe that the usage of shared variables of an ordinary type should be an error, not a warning. In order to allow it, the strictness needs to be relaxed. Some might argue that it is not an error in 2008 and 2019. That might be correct. However, as Lars is suggesting, at some point a deprecated and "illegal" feature should be removed. If deprecated features are not removed, the LRM needs to account for backwards compatibility exceptions.
Adding them in not a simple matter of moving them from the deprecated list to the supported list. It will take going though the current revision, clarifying every usage of shared variable in the LRM to indicate it refers to a shared variable of a protected type. Then going back to the VHDL-1993 revision and reviewing the text for shared variables and all the restrictions of their usage by VHDL-1993 and restoring that to the LRM with edits to clarify that they are for shared variables of an ordinary type.
Without compelling use models, I don't see the point.
@JimLewis, I'm not arguing that they were or were not removed. I'm showing a counterexample of:
A simulator that only supports one version would work fine. Even with the lint check. First compile the RTL for 93 as a lint check. Then compile it for 2008 and simulate it with other 2008 code.
A simulator which supports VHDL 2008 and only VHDL 2008 cannot handle RTL 00. RTL 00 cannot be "compiled for 2008", but it needs to be some 2008-compat mode.
Because it is not possible for a VHDL simulator to support the latest revision and only the latest revision, we should have an specific explanation/section in the LRM for that.