Siin on toodud mõned näpunäited, kuidas kirjutada lihtsat kuid efektiivset VHDL-koodi, kui on teada implikant-kate.
Olgu näiteks espresso tulemuseks:
.i 5 .o 3 .phase 100 00--- 110 01-1- 001 111-- 100 11--1 010 10--1 001 .e
Sisenditeks on 5-bitine std_logic_vector tüüpi signaal x ja väljunditeks kolm 3-bitist sama tüüpi signaali y1, y2 ja y3 (vastavalt andmevoo, pseudo-struktuuri ja käitumusliku stiili jaoks).
Andmevoo-stiilis võiks kood olla näiteks selline:
y1(1) <= ((not x(1)) and (not x(2))) or (x(1) and x(2) and x(3));
y1(2) <= not (((not x(1)) and (not x(2))) or (x(1) and x(2) and x(5)));
y1(3) <= not (((not x(1)) and x(2) and x(4)) or
(x(1) and (not x(2)) and x(5)));
Teistsugune andmevoog (täiendavad signaalid t1...t5 vastavad implikantidele). Võib vaadata ka kui pseudo-struktuuri:
t1 <= (not x(1)) and (not x(2)); t2 <= (not x(1)) and x(2) and x(4); t3 <= x(1) and x(2) and x(3); t4 <= x(1) and x(2) and x(5); t5 <= x(1) and (not x(2)) and x(5); y2(1) <= t1 or t3; y2(2) <= not (t1 or t4); y2(3) <= not (t2 or t5);
Käitumusliku koodi kirjutamisel tuleks arvestada seda, et korraga võib aktiveeruda suvaline arv implikante. Seega peaks protsessis karvestama ka olukorraga, et mitte ükski implikant ei aktiveeru - vajalikud on vaikeväärtused. Alljärgnev kood on üks võimalik lähenemine. Muuseas, iga if-käsu ees on märgend (mis peidab ära arhitektuuris oleva samanimelise signaali).
process (x) begin y3 <= "011"; -- Default value, see ".phase 100" !!! t1: if x(1)='0' and x(2)='0' then y3(1)<='1'; y3(2)<='0'; end if; t2: if x(1)='0' and x(2)='1' and x(4)='1' then y3(3)<='0'; end if; t3: if x(1)='1' and x(2)='1' and x(3)='1' then y3(1)<='1'; end if; t4: if x(1)='1' and x(2)='1' and x(5)='1' then y3(2)<='0'; end if; t5: if x(1)='1' and x(2)='0' and x(5)='1' then y3(3)<='0'; end if; end process;
Hea lihtsa generaatori sisendsignaalide kombinatsioonide jaoks saab tsükli abil (x_u on unsigned tüüpi).
process begin
for i in 0 to 31 loop
x_u <= conv_unsigned(i,5);
wait for 10 ns; -- After every 10 ns
end loop;
wait;
end process;
x <= std_logic_vector(x_u);
Simulatsiooni tulemus.
Terviklik VHDL-kood.