You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
While PCB signals in an I²C interface need resolution capabilities, type std_logic is fixed. But what about fabric internal signals. Here is no multiple-source behavior / driving value resolution needed. Moreover, std_ulogic could prevent lots of coding errors.
Earlier revisions of the VHDL language had problem, because std_logic_vector and std_ulogic_vector where not compatible. This was changed in VHDL-2008.
I propose to skip the std_logic only rule and propose:
Use std_ulogic and std_ulogic_vector for fabric internal interfaces
Limit usage of std_logic and std_logic_vector to external interfaces (PCB level) where multiple driven wires are needed.
Use unresolved_unsigned for address buses. Note: unsigned has also an unresolved variant.
The compatibility issues I've run into are with brand X synthesis tools,
and largely revolve around the redefinition of the vectors in 2008. Given
that all this is only even a discussion if 2019 is well supported,
compatibility shouldn't be an issue.
While PCB signals in an I²C interface need resolution capabilities, type
std_logic
is fixed. But what about fabric internal signals. Here is no multiple-source behavior / driving value resolution needed. Moreover,std_ulogic
could prevent lots of coding errors.Earlier revisions of the VHDL language had problem, because
std_logic_vector
andstd_ulogic_vector
where not compatible. This was changed in VHDL-2008.I propose to skip the
std_logic
only rule and propose:std_ulogic
andstd_ulogic_vector
for fabric internal interfacesstd_logic
andstd_logic_vector
to external interfaces (PCB level) where multiple driven wires are needed.unresolved_unsigned
for address buses.Note:
unsigned
has also an unresolved variant./cc @JimLewis, @LarsAsplund
The text was updated successfully, but these errors were encountered: