2017-05-21 3 views
0

ich folgenden Grunde Skript bin mit Design einfacher AdditionsConstraints (Time/Gebiet ..) in Yosys und/oder ABC

# read design 
read_verilog fulladder1.v 
hierarchy -check 

# high-level synthesis 
proc; opt; fsm; opt; memory; opt 

# low-level synthesis 
techmap; opt 

# map to target architecture 
abc -g AND,XOR 

# split larger signals 
splitnets -ports; opt 

show 

Mit Verwendung

abc -g AND,XOR  

Befehls zu synthetisieren, ABC syhthesis die Design nur mit AND, XOR und NOT (NOT ist automatisch hinzugefügt) Tore.

Meine Fragen zu diesem Problem sind;

1) Gibt es eine Möglichkeit, YOSYS und/oder ABC-Tools zu zwingen, nur ein Universal-Gate (z. B. NAND) für das gesamte Design zu verwenden?

&

Nach

abc -g AND,XOR  

wie Befehl.

2) Gibt es eine Möglichkeit, die Anzahl der angegebenen Gatter (egXOR) zu reduzieren oder zu maximieren, indem das Hinzufügen Bedingungen (Zeit/Bereich/Priorität? ...), um Bibliotheken

oder

besondere Verwendung YOSYS und/oder ABC Befehle?

Vielen Dank im Voraus ...

Antwort

0

Die "Kosten" der Einbau-Zelltypen in kernel/cost.h fest einprogrammiert ist.

Bei der Zuordnung zu einer benutzerdefinierten Zellbibliothek können Sie die Kosten (Fläche) in Ihrer Liberty-Datei angeben. Ein Beispiel finden Sie in examples/cmos/cmos_cells.lib.

ABC benötigt ein NOT-Gatter in der Zellbibliothek. Sie können jedoch immer eine Zellbibliothek von z.B. NAND und NOT und dann den Befehl techmap, um alle Instanzen von NOT durch ein NAND zu ersetzen, wobei beide Eingänge vom selben Signal angesteuert werden (oder ein Eingang von der Konstanten 1 angesteuert wird, was auch immer Sie bevorzugen).


Edit: Zuordnung nicht mit techmap NAND ist einfach. Erstellen Sie einfach eine Datei not2nand.v mit folgendem Inhalt genannt:

module \$_NOT_ (input A, output Y); 
    \$_NAND_ _TECHMAP_REPLACE_ (.A(A), .B(A), .Y(Y)); 
endmodule 

Dann können Sie NOT-Gatter zu NANDs Karte techmap -map not2nand.v verwenden.

+0

Hallo @Clifford, dank Ihrer Antwort kann ich Gebietseinschränkungen hinzufügen und die Anzahl der angegebenen Zellen im Design ändern. Aber ich kann es nicht schaffen, "NOT-Zellen" durch die "NAND-Zellen" zu ersetzen. Ich bin sehr neue Benutzer für yosys und ich habe versucht "techmap" und auch "setparam" -Befehle, aber ich kann nicht finden, einfaches Beispiel über was Schritt für Schritt zu tun und wo diese Befehle in meine Skript-Datei einfügen .. Könnten Sie bitte führen Sie mich und/oder teilen Sie einige einfache Beispiele? Danke –

+0

@EminAytacDerelioglu siehe bearbeiten. – CliffordVienna