11.3.1.1 Example 1
In the following VHDL example, the signal “critical” goes through three logic levels.
if ((( Crtical='0' and Obi='1' and Sar='1')
or CpuG='0') and CpuR='0') then
Des <= Adr;
elsif (((Crtical='0' and Obi='1' and Sar='1')
or CpuG='0') and CpuR='1') then
Des <= Bdr;
elsif (Sar='0' and ..........
The signal “critical” is a late arriving signal. To reduce the logic level usage on “critical”, imply priority by using an if-then-else statement. As a result, the signal “critical” goes through one logic level, as shown below.
if (Critical='0') then
if (((Obi='1' and Sar='1')
or CpuG='0') and CpuR='0') then
Des <= Adr;
elsif (((Obi='1' and Sar='1')
or CpuG='0' and CpuR='1') then
Des <= Bdr;
end if;
end if;
