Verilog és un llenguatge de descripció de hardware estandaritzat per l’IEEE que s’utilitza per modelar circuits digitals. Feu un programa que, donada la descripció d’un circuit digital en una versió simplificada de Verilog i una seqüència d’assignacions de valors de veritat per les entrades del circuit, calculi el resultat d’avaluar el circuit amb aquestes assignacions.
Entrada
L’entrada comença amb una seqüència d’identificadors de cables de sortida, seguida d’una seqüència d’identificadors de cables d’entrada, seguida d’una seqüència d’especificacions de portes AND, OR o NOT, i finalment una seqüència de casos. Cada cas és una assignació de valors de veritat per als cables d’entrada del circuit. Cada cable del circuit està identificat per una única cadena de caràcters utilizant lletres minúscules i dígits. Els valors de veritat són T i F per TRUE i FALSE, respectivament.
Seguiu el format dels examples. Podeu assumir que l’entrada descriu un circuit correcte; és a dir, els cables d’entrada i sortida són disjunts, tots els cables són accessibles des dels cables d’entrada, i el circuit no conté cicles (en particular, cap cable d’entrada és la sortida d’una porta).
Sortida
La sortida serà la seqüència de valors de veritat que genera el circuit als cables de sortida amb cada assignació, una per línia.
Input
OUTPUT o1 o2 END INPUT a1 a2 END AND o1 a1 a2 NOT c1 a1 NOT c2 a2 AND c3 c1 c2 OR o2 o1 c3 END F F F T T T
Output
F T F F T T
Input
OUTPUT o END INPUT a b END AND c a b NOT o c END F F F T T F T T T T
Output
T T T F F