Angenommen, ich habe eine VHDL-Datei mit einer ganzen Menge
von (kürzeren und längeren) Booleschen Formeln, die aber
nicht optimal geschrieben sind und ich möchte lernen,
wie ich es besser machen kann:
Kann ich den Output nach der Optimierung irgendwo einsehen?
Hersteller/FPGA wäre eigentlich erst einmal egal,
Lattice Diamond hätte ich da, wenn es da so etwas gibt?
Wenn es irgendwas auf Open Source Basis gibt, wäre mir das auch recht.
Oder gibt es da eine andere Möglichkeit, so etwas automatisch
herauszufinden?
(schneller und einfacher als z.B. per Hand eine Werte-Tabelle
aufzustellen oder per Programm durch zu probieren
oder Gesetze der booleschen Algebra anzuwenden?
Ich will aber nicht jede Formel einzeln optimieren,
sondern den Satz an Formeln als Gesamtes.)
Kleines Beispiel (in Realität habe ich mehr und längere Formeln):
1 | A1 <= (E1 AND E2) OR (E1 AND NOT(E2));
|
2 | A2 <= NOT A1;
|
lässt sich auf
1 | A1 <= E2;
|
2 | A2 <= NOT(E2);
|
optimieren. E1 fällt raus, müsste ich also gar nicht mehr
näher betrachten, wenn es sonst nirgendwo vorkommt.
Das gleiche als C-Source (zum Nachweis):
1 | main()
|
2 | {
|
3 | int a, e1, e2;
|
4 |
|
5 | for(e1 = 0; e1 <= 1; e1++)
|
6 | {
|
7 | for(e2 = 0; e2 <= 1; e2++)
|
8 | {
|
9 | printf("A=%d E1=%d E2=%d\n", (e1 & e2) | (e1 & (1-e2)), e1, e2);
|
10 | }
|
11 | }
|
12 | }
|
und dessen Output:
A=0 E1=0 E2=0
A=0 E1=0 E2=1
A=1 E1=1 E2=0
A=1 E1=1 E2=1