Not an unreasonable request.
Consider the following concurrent statement. The
sensitivity list is automatically inferred to be
all signals read in the statement.
Y <= A when Sel = '1' else B ;
This is very similar to:
process(A, B, Sel)
begin
if Sel = '1' then
Y <= A ;
else
Y <= B ;
end if ;
end process ;
Currently for registers and non-RTL applications, an
incomplete senstivity list is useful.
In SystemVerilog they are introducing a modifier in
their processes (always blocks) that indicates that it
is combinational logic. A similar feature will be
proposed for VHDL. Translating the SV feature it will
make the above process look something like the following:
process_comb
begin
if Sel = '1' then
Y <= A ;
else
Y <= B ;
end if ;
end process ;
This is actually a cool feature as first it does not
require any maintence of the sensitivity list. Second
it increases safety as if you were to inadvertently
create a latch, it would result in an error in a synthesis
tool (very useful when you consider the combinational
logic portion of a statemachine).
The following code would create an error during synthesis:
process_comb
begin
if Sel = '1' then
ALat <= A ;
end if ;
end process ;
Please note that when we announce that VHDL-200X release
one has been made, make sure to tell your simulator and
synthesis tool vendor that you want it. All tool
improvements are market driven. If you don't ask they
don't consider it a good investment.
Best Regards,
Jim Lewis
VHDL-200X Fast-Track Co-Team Leader
VHDL-200X Modeling and Productivity Team Leader
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jim Lewis
Director of Training mailto:
[email protected]
SynthWorks Design Inc.
http://www.SynthWorks.com
1-503-590-4787
Expert VHDL Training for Hardware Design and Verification
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~