PUN PDN

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

PUN PDN
zum klären

falls ich eine Schaltfunktion habe, vereinfache ich erstmals, dass es nur einzeln negierte Terme gibt dann schaue ich welche Terme gibt es, falls negierten Termen gibt’s mehr dann nenne ich diese Schaltfunktion PUN. Danach negiere und vereinfache ich diese Funktion komplett und es ist PDN.
dann bilde ich CMOS netz indem invertiere ich das Signal mit Hilfe einem Inverter bei einem negierten Term in PDN und bei einem nicht negierten Term in PUN . ist das richtig?


Nein, also du fast ein Funktion f gegeben, um PMOS(f) zu erhalten negierst du alle Literale, um NMOS(f) zu erhalten negierst du die gesamte Funktion und dann bildest du die Schaltfunktion. Beim bilden der Schaltfunktion gilt +:Reihe und *:Parallel. Weiterhin merke ich mir folgendes pull-uP: PMOS, sowie pull-dowN: NMOS.


ja es ist immer nicht klar, im Vorlesung 20 st 9,11 negiere ich nichts beim PUN. ~(A+B) ist schon NOR und ~(A.B) ist schon NAND


zbm

f = ~(A.(B+C))+D

was weiter?


So wie ich es oben geschrieben habe, PUN(f) Literale negieren, PDN(f) die gesamte Funktion negieren. “Ist schon negiert” bedeutet natürlich nicht dass man nicht nochmal negieren kann not(not f) = f…


In den Folien zur neunten Übung ist das richtig gut erklärt…


Ich denke, es hilft, sich nicht das ganze mit „das musst du negieren, das aber nicht, dies jedoch schon“ zu merken, sondern eher mit der eigentlichen Begründung. Im PUN hast du nur PMOS-Transistoren, welche bei üblicher Verschaltung, sodass Source=nach oben hinweg (ggf. VDD), Bulk=VDD, Gate=dein Anschluss, Drain=Output, so funktionieren, dass wenn der Spannungsabfall U_GS hoch ist, I_Drain auch hoch wird. Sprich „bei PMOS musst du eine 0 anlegen, damit der Output high wird“ (nur bei üblicher Verschaltung!).

Wenn du in deinem aktuellen Term für deine Schaltfunktion f nur negierte Literale hast, dann ist das super, weil du es direkt in PMOS-Transistoren realisieren kannst. Bei nicht negierten Literalen kannst du eben keinen PMOS-Transistor direkt verschalten. Entweder den Term umschreiben/vereinfachen oder das Literal vorher negieren.
D.h. im Endeffekt kannst du jeden Term im PUN realisieren, die Frage ist nur, ob deine PMOS-Transistorzahl dann minimal ist!

Der Zwischenschritt zum PUN wäre hier De Morgan: ~(A.B) = (~A) + (~B), was direkt mit PMOS-Transistoren realisierbar ist. Analog für ~(A+B) fürs NOR.


Moment, nur zum Verständnis, sei eine Funktion f gegeben, gilt die Regel “PMOS: Literale negieren, NMOS: f negieren” dann?


Nein, aber vielleicht meinst du das richtige. Detailliert wäre „PMOS: Umformen, bis Kostenfunktion ‚Anzahl der nichtnegierten Literale‘ minimal ist, NMOS: f negieren und umformen, bis Kostenfunktion ‚Anzahl der negierten Literale‘ minimal ist“.


So steht’s nämlich in den “Folien zur Übung 9”, das ist schon irreführend…

Aber Danke, denke was du schreibst bringt es gut auf den Punkt


wie stelle ich dann die Funktion f() wieder, falls PUN gegeben ist ?

alle invertierte (mit Inverter) und negierte Eingänge hat, schreibe ich als Term und nicht invertierte (mit Inverter) und negierte Eingänge als ~Term ?


Ich bin mir nicht sicher, ob ich das genau verstehe. Aber auch wenn, was ist, wenn du etwas dreifach negiert hast? Obiger Algorithmus funktioniert auch dann.


So wie ich es verstanden habe wenn man beim CMOS die Funktion f (a,b,c,d) habe dann muss man im Falle wenn die literale bereits in der funktion negiert sind nicht mehr für PMOS negieren und dann nur noch in PDN umwandeln ?

Wenn ich PDN und PUN habe und man soll die Funktion einfach f(a,b,c,d) angeben muss man dann PMOS oder NMOS angeben oder komplett von PMOS nochmal literale negiert umformen ?

wenn ich nicht negierte eingänge habe dann muss man bei PUN die z.b keine Negierte Literale in der Funktion haben dann einen einfachen Inverter aus PMOS und NMOS schalten?

Müssen die Inverter in Reihe oder Parallel geschaltet und müssen die vor oder nach geschaltet sein ?


[quote=VPROF]
So wie ich es verstanden habe wenn man beim CMOS die Funktion f (a,b,c,d) habe dann muss man im Falle wenn die literale bereits in der funktion negiert sind nicht mehr für PMOS negieren und dann nur noch in PDN umwandeln ?[/quote]
Das habe ich oben schon beantwortet :wink:

Du sollst einen Term für f angeben, der logisch äquivalent zum CMOS-Schaltnetz ist. Das kannst du tun, indem du ihn aus dem PUN abliest (siehe Algorithmus im vorherigen Beitrag) oder dasselbe für PDN machst und dann den erhaltenen Term negierst.

Ich glaube die Aussagen mit „Literale negiert umformen“ verwirrt viel mehr als dass sie helfen.

Ja.

Bitte präzisiere die Frage.


Gibt es eine Richtlinie bei den Komplexen ob die Inverter in Reihe oder Parallel geschaltet werden müssen im Bild vor dem PDN bzw. PUN und wann müssen sie vor oder nach geschaltet werden ?

“Du sollst einen Term für f angeben, der logisch äquivalent zum CMOS-Schaltnetz ist. Das kannst du tun, indem du ihn aus dem PUN abliest (siehe Algorithmus im vorherigen Beitrag) oder dasselbe für PDN machst und dann den erhaltenen Term negierst.”

heißt es dann dass man aus PUN bzw. bei PDN die negierten Literale mit ausliest oder muss man die Literale einfach ohne die Negation angeben für f?


Leider verstehe ich deinen Satz nicht. Z. B. hast du nur einmal „bzw.“ benutzt, soll also der Rest des Satzes auf PUN und PDN zutreffen?
Ansonsten kann ich nur auf den Algorithmus oben verweisen oder bitten, dass jemand anderes, der vielleicht deinen Satz versteht, antwortet.