även i pdf-format

9 - Speciella sekvensnät
TSEA51 - Digitalteknik
Detta dokument är klart för kursen - 2012-09-28 - Första versionen
Ola Dahl
Föreläsning - 9 - Speciella sekvensnät
Speciella sekvensnät
Enpulsare
Ett sekvensnät för att generera en puls med ett klockintervalls varaktighet beskrivs på sidan 208 i läroboken. Ett sådant nät kallas för
enpulsare. En tillståndsgraf för en enpulsare visas i Föreläsning 7 Konstruktionsmetodik för sekvensnät, samt återges här i Figur 1.
Figur 1: En tillståndsgraf för ett nät som
genererar en puls med ett klockintervalls varaktighet när insignalen går från
noll till ett.
En tillståndstabell för enpulsaren, med tillståndsgraf enligt Figur 1,
visas i Tabell 1.
S_n
S_0
S_0
S_1
S_1
q
0
0
1
1
x
0
1
0
1
q+
0
1
0
1
u
0
1
0
0
Tabell 1: Tillståndsövergångar för en
enpulsare.
Uttryck kan tas fram från Tabell 1, enligt
q+ = x,
u = q0 x
(1)
vilka kan realiseras med en D-vippa och en och-grind. För att synkronisera insignalen kan en ytterligare D-vippa användas.
Ett digitalt system för att övervaka en lejonbur presenterades i
Föreläsning 1 - Introduktion, kombinatoriska nät. Problemet kan lösas
med användning av ett sekvensnät, med utformning enligt de beskrivningar som ges i Föreläsningarna 4 - Sekvensnät, 6 - Sekvensnät
och vippor samt 7 - Konstruktionsmetodik för sekvensnät.
En enpulsare kan användas för att generera insignaler till ett sekvensnät för lejonburen. En tillståndsgraf för ett sådant sekvensnät
visas i Figur 2.
9 - speciella sekvensnät
2
Figur 2: En tillståndsgraf för en lejonbur
där insignalerna ges i form av pulser
med ett klockintervalls varaktighet.
Räknare
En räknare kan användas som komponent vid konstruktion av digitala system. Egenskaper hos räknare beskrivs t.ex. på sidan 219 i
läroboken. En symbol för en räknare visas i Figur 3.
Figur 3: En räknare med ingångar
för nollställning, laddning, upp-nerräkning, samt räknevillkor.
Register
Ett register är en komponent som kan lagra ett digitalt värde, och
som kan läsas och skrivas. Ett 1-bits register med en signal för att
skriva in ett värde kan konstrueras med användning av en D-vippa
och grindar.
En insignal, kallad load används. När load har värdet noll skall
registret behålla sitt värde, och när load har värdet ett skall ett nytt
värde, angivet av en insignal kallad x, skrivas in i registret.
Detta kan åstadkommas genom att låta D-vippans insignal, här
betecknad q+, ges av
q+ = q · load0 + x · load
En alternativ konstruktion kan göras, med användning av en 2/1multiplexer. Signalerna q och x kopplas till multiplexerns ingångar,
och signalen load används som styrsignal till multiplexern.
(2)
9 - speciella sekvensnät
3
Skiftregister
Ett skiftregister kan konstrueras genom att koppla samman D-vippor
på ett sådant sätt att utsignalen från en D-vippa blir insignal till
nästkommande D-vippa.
Skiftregister i olika varianter beskrivs i läroboken på på sidorna
223-224.
Återkopplade skiftegister
Ett skiftregister kan återkopplas. Detta innebär att utsignaler från en
eller flera D-vippor, här kallade återkopplingsvippor, kopplas, via
kombinatoriska nät, till insignaler för vippor vars utsignaler påverkar
återkopplingsvippornas insignaler.
De kombinatoriska nät som används i återkopplade skiftregister
utgörs ofta av xor-grindar. Detta ger ett nät med modulo-2 operationer. Ett sådant nät kallas ett linjärt återkopplat skiftregister.
Ett linjärt återkopplat skiftregister kan användas för att generera
pseudo-slumptal. Linjära återkopplade skiftregister kan t.ex. användas för kryptering.
Återkopplade skiftregister beskrivs i läroboken, på sidorna 226230.
Konstruktion med speciella sekvensnät
Digitala komponenter, t.ex. räknare, skiftregister, och minnen (PROM)
kan användas, tillsammans med vippor och grindar, vid konstruktion
av digitala system.
A/D-omvandlare
En A/D-omvandlare är en komponent med en analog insignal, och
som ger ett digitalt värde motsvarande den analoga signalens nivå
som utsignal. I övning 11.14 behandlas en A/D-omvandlare kallad
SMT160-301 med pulsbreddsmodulerad frekvensutgång. Den pulsbreddsmodulerade utgången kan anslutas till en dator. Här finns
ett beskrivning som visar hur plattformen Arduino kan användas
tillsammans med en SMT160-302 .
Konstruktionsexempel
Detektering av pulser med bestämd längd
Ett digitalt system som detekterar pulser av en bestämd längd skall
konstrueras. Pulserna är synkroniserade, vilket innebär att de ändrar
1
http://smartec.nl/pdf/DSSMT16030.
PDF
2
http://arduino.cc/playground/Code/
SMT16030
9 - speciella sekvensnät
nivå i takt med klocksignalen. Pulsernas längd är minst ett och högst
15 klockintervall.
Det digitala systemet skall generera en puls av längden ett klockintervall vid varje detektion av en puls med angiven längd.
En 4-bitars binärräknare med nollställningsingång och räknevillkor skall användas, tillsammans med valfria grindar och vippor.
Pulsens angivna längd betecknas L. Räknaren kan användas för
att räkna så länge pulsen är ett. Genom att jämföra räknarens värde
med värdet L kan en puls av angiven längd detekteras. I samband
med detta kan nätets utsignal sättas till ett för att markera detektion
av puls, samt kan räknaren nollställas så att en ny detektion kan
påbörjas.
Låt insignalen, som genererar pulserna, betecknas med x. Med
referens till räknaren i Figur 3 erhålls uttryck enligt
CLR = x 0 ,
LOAD = 0,
¯
U/D
= 0,
CE = x
(3)
Räknarens värde, som anges av utgångarna qi i Figur 3, kopplas till
en komparator, som jämför räknarens värde med L. Utsignalen från
komparatorn betecknas uc . Signalen uc kopplas till en och-grind
tillsammans med det inverterade värdet av insignalen, enligt
u = uc · x 0
(4)
Det föreslagna nätet kan verifieras genom att undersöka nätets
beteende för olika insignalvärden. En sekvens av insignalvärden, för
fallet L = 3 samt resulterande räknevärden q, komparatorutsignaler
uc och utsignaler u, visas i Tabell 2.
x
0
1
1
1
0
0
q
0000
0000
0001
0010
0011
0000
u_c
0
0
0
0
1
0
u
0
0
0
0
1
0
Det föreslagna nätet innehåller en komparator. En sådan kan konstrueras med xor-grindar och en nor-grind, enligt beskrivningen på
sidan 83 i läroboken.
Genomsläppning av utvalda pulser
Ett digitalt system som släpper genom utvalda pulser beskrivs i
lärobokens Exempel 11.4 på sidan 221.
Systemet skall realiseras som ett sekvensnät som släpper igenom
var n:te puls.
Tabell 2: Tillståndsövergångar i ett nät
för detektion av pulser av en bestämd
längd.
4
9 - speciella sekvensnät
Systemet kan konstrueras genom att använda en räknare, samt
vippor och grindar.
Antag att räknaren har laddats med värdet n. Genom att räkna
ner räknaren för varje puls som anländer, och sedan detektera när
räknarens värde är ett, kan den n:te pulsen detekteras, samt släppas
igenom.
Nedräkning kan ske i samband med att en puls avslutas. Avslutning av en puls kan detekteras genom att göra en enpulsare som
genererar en puls med ett klockintervalls varaktighet då systemets
insignal går från ett till noll.
När den genomsläppta pulsen avslutas skall räknaren laddas på
nytt.
Sekvensdetektor
Ett nät för att detektera en angiven sekvens kan konstrueras genom
att använda ett skiftregister samt grindar. Givet en sekvens av längden n som skall detekteras. Ett skiftregister med längden n − 1 kan
då användas. Ett kombinatoriskt nät kopplas till utgångarna på skiftregistrets D-vippor. Detta kombinatoriska nät skall ge utsignalen
ett för den sekvens som skall detekteras, samt noll för alla övriga
sekvenser.
Laboration 3
Laboration 3 innehåller uppgifter som i ett flertal fall tillåter användning av valfria komponenter från laborationsutrustningen. Dessa
uppgifter kan därmed tänkas ha fler valmöjligheter i konstruktionen
än vad som var fallet i tidigare laborationer.
5