Ingenjör inom elektronik och datorteknik

3-ingångars XOR grind

3-ingångars XOR grind

Jag designade en 3-ingångars XOR-grind som en del av standardcellbiblioteket för KTH:s 1 µm-teknologi. Implementeringen gjordes i Cadence, och symbolen för grinden visas nedan.​

Kopplingsschema

En 3-ingångars grind har 2^3=8 olika kombinationer, vilket visas i sanningstabellen nedan. För att bygga grinden kaskadkopplade jag två 2-ingångars XOR-grindar, vilket ger samma logiska funktion som en enda 3-ingångars XOR-grind. Jag gjorde ett kopplingsschema som motsvarade detta.

Innan jag gick vidare till layouten testade jag logiken i programmet LogiSim. Jag ville försäkra mig om att mitt kopplingsschema implementerade rätt sanningstabell, så jag simulerade en 3-ingångars XOR-grind, två kaskadkopplade 2-ingångars XOR-grindar och transistorimplementeringen. Genom att jämföra utsignalen för de olika implementeringarna kunde jag bekräfta att kretsen fungerade som väntat.

Layout

När kopplingsschemat var färdigt gick jag vidare till layouten. Jag började med att skissa upp kopplingarna för en enda 2-ingångars XOR-grind för hand. Det hjälpte mig att få en bra förståelse för anslutningarna innan jag gjorde den faktiska layouten i Cadence.

Jag designade layouten för att vara skalbar, och därför speglade jag layouten mellan de två 2-ingångars XOR-grindarna. Detta gör det enkelt att senare utöka designen till en 4- eller 5-ingångars XOR-grind. Den slutliga cellbredden blev 96 µm.

Simulering

Efter att layouten var klar skapade jag en testbänk för grinden. Testet ändrar ingångarna A, B, och C enligt den sanningstabell som visades tidigare.

Grafen nedan visar resultatet från testet, vilket bekräftar att sannolikhetstabellen implementerades korrekt. Det är värt att notera att följande transientsimulering endast inkluderar transistorernas interna parasiter och inte tar hänsyn till layoutrelaterade effekter.

Eftersom grinden är kombinatorisk finns det en kort period innan utsignalen stabiliseras till sitt slutliga värde. I grafen kan man se att det uppstår en liten glitch vid vissa klockflanker. Detta är inte ett problem ifall grinden används i en sekventiell krets, men det begränsar den maximala klockfrekvensen. För just denna glitch låg fördröjningen på cirka 900 ps.

© 2025 Emil Berg. Alla rättigheter förbehållna.
Ingen användning eller kopiering utan tillstånd.