Documentos de Académico
Documentos de Profesional
Documentos de Cultura
TEMA 5
EXÁMENES RESUELTOS
Este doc umento contiene una col ección de ex ámenes pa rciales y finales
correspondientes al t ema 5 de l a as ignatura D SBM. Todos l os ej ercicios t ienen el
desarrollo de la solución o su valor final numérico.
Problema 3 (4 punts)
Volem dissenyar un sistema basat en un microprocessador de 16 bits que treballa a 20 MHz. Els
senyals del microprocessador son:
A1...A25 : Bus d’adreces
D0...D15 : Bus de dades
BLE* : Strobe de carrer baix, actiu a nivell baix en accessos a D0..D7
BHE* : Strobe de carrer alt, actiu a nivell baix en accessos a D8..D15
R/W* : Senyal a nivell alt per a cicles de lectura i a nivell baix per a escriptura
AS* :Strobe d’adreces, actiu a nivell baix, en tots els cicles de bus
Amb els xips de la figura, es desitja construir un banc de memòria ROM de 1 Mbytes i un banc
de memòria RAM de 4 Mbytes.
a) (0,3 punts) Determineu l’última adreça del mapa de memòria de la CPU i quina és la seva
mida.
b) (0,3 punts) Determineu el nombre de línies d’adreces (m i n) dels xips de memòria ROM i
RAM, respectivament.
c) (0,7 punts) Genereu els senyals CS* dels xips de la memòria ROM. Les posicions dels 4
xips han de ser contigües i contenir l’adreça 3FB 0000h. No hi ha d’haver més zones
imatge. Acabeu de dibuixar les connexions entre la CPU i els xips de la memòria ROM.
d) (1,3 punts) La memòria RAM ha de començar a partir de l’adreça 040 0000h i no pot
ocupar cap adreça de la part alta del mapa de memòria ni per sota de 040 0000h.
1. Genereu els senyals CS* dels xips de RAM fent la descodificació més senzilla
possible i emprant portes NOT, OR, NOR, AND i/o NAND.
2. Determineu el nombre de zones imatge i acabeu de dibuixar les connexions entre la
CPU i els xips de la memòria RAM.
e) (0,4 punts) Dibuixeu el mapa de memòria resultant tot indicant les adreces de començament
i final de cadascuna de les imatges del bloc de memòria RAM i del bloc de memòria ROM.
4
Es vol determinar quines especificacions temporals han de complir els xips de memòria RAM.
Suposeu uns retards de propagació de 10 ns per a cada porta lògica utilitzada en la
descodificació de l’apartat d). Al final del problema teniu el cronograma de microprocessador
en un cicle de lectura i la taula amb la descripció de temps.
f) (1 punt) Quines restriccions han de tenir els valors tAA, tACE, tDOE i tBE de les memòries
RAM?
5
Descripció dels temps del cronograma de lectura del microprocessador
6
Problema 3 (4 punts)
Volem dissenyar un sistema basat en un microprocessador de 16 bits que treballa a 20 MHz. Els
senyals del microprocessador son:
A1...A25 : Bus d’adreces
D0...D15 : Bus de dades
BLE* : Strobe de carrer baix, actiu a nivell baix en accessos a D0..D7
BHE* : Strobe de carrer alt, actiu a nivell baix en accessos a D8..D15
R/W* : Senyal a nivell alt per a cicles de lectura i a nivell baix per a escriptura
AS* :Strobe d’adreces, actiu a nivell baix, en tots els cicles de bus
Amb els xips de la figura, es desitja construir un banc de memòria ROM de 1 Mbytes i un banc
de memòria RAM de 4 Mbytes.
g) (0,3 punts) Determineu l’última adreça del mapa de memòria de la CPU i quina és la seva
mida.
Última posició del mapa: 3FF FFFFh
Mida del mapa: 64Mbytes
h) (0,3 punts) Determineu el nombre de línies d’adreces (m i n) dels xips de memòria ROM i
RAM, respectivament.
1 Mbyte de ROM en 4 xips (8 bits)-> cada xip és de 256Kbytes (=256Kposicions) -> 28 210 (18
línies) -> m=18
4 Mbytes de RAM en 2 xips (16 bits)-> cada xip és de 2Mbyte (=1Mposicions) -> 220 (20 línies) -
> m=20
i) (0,7 punts) Genereu els senyals CS* dels xips de la memòria ROM. Les posicions dels 4
xips han de ser contigües i contenir l’adreça 3FB 0000h. No hi ha d’haver més zones
imatge. Acabeu de dibuixar les connexions entre la CPU i els xips de la memòria ROM.
Per a que el contingut de l’adreça 3FB 0000h es guardi dins dels xips de memòria ROM,
aquesta ha de finalitzar en l’adreça 3FF FFFFh.
13
Per tant,
A25 A24 A23 A22 A21 A20 A19 A18 … … … A1 A0 Strobe CPU
1 1 1 1 1 1 0 A17 … … … A0 0 BLE* (AS*) ROM1
1 1 1 1 1 1 0 A17 … … … A0 1 BHE* (AS*) ROM2
1 1 1 1 1 1 1 A17 … … … A0 0 BLE* (AS*) ROM3
1 1 1 1 1 1 1 A17 … … … A0 1 BHE* (AS*) ROM4
CS*_ROM1=(A25·A24·A23·A22·A21·A20·A19*·BLE*)*
CS*_ROM2=(A25·A24·A23·A22·A21·A20·A19*·BHE*)*
CS*_ROM3=(A25·A24·A23·A22·A21·A20·A19·BLE*)*
CS*_ROM4=(A25·A24·A23·A22·A21·A20·A19·BHE*)*
j) (1,3 punts) La memòria RAM ha de començar a partir de l’adreça 040 0000h i no pot
ocupar cap adreça de la part alta del mapa de memòria ni per sota de 040 0000h.
3. Genereu els senyals CS* dels xips de RAM fent la descodificació més senzilla
possible i emprant portes NOT, OR, NOR, AND i/o NAND.
4. Determineu el nombre de zones imatge i acabeu de dibuixar les connexions entre la
CPU i els xips de la memòria RAM.
Per tant,
A25 A24 A23 A22 A21 A20 … … … … A1 A0 Strobe CPU
0 X X 1 0 A19 … … … … A0 0/1 BLE*/BHE* RAM1
0 X X 1 1 A19 … … … … A0 0/1 BLE*/BHE* RAM2
CS*_ROM1=A25+A22*+A21
CS*_ROM2=A25+A22*+A21*
z.i. = 2nombre de línies adreces no utilitzades= 22=4
14
k) (0,4 punts) Dibuixeu el mapa de memòria resultant tot indicant les adreces de començament
i final de cadascuna de les imatges del bloc de memòria RAM i del bloc de memòria ROM.
ROM1&ROM2 -> 3F0 0000h-3F7 FFFFh
ROM3&ROM4 -> 3F8 0000h-3FF FFFFh
RAM1 -> 040 0000h-05F FFFFh
-> 0C0 0000h-0DF FFFFh
-> 140 0000h-15F FFFFh
-> 1C0 0000h-1DF FFFFh
RAM2 -> 060 0000h-07F FFFFh
-> 0E0 0000h-0FF FFFFh
-> 160 0000h-17F FFFFh
-> 1E0 0000h-1FF FFFFh
Es vol determinar quines especificacions temporals han de complir els xips de memòria RAM.
Suposeu uns retards de propagació de 10 ns per a cada porta lògica utilitzada en la
descodificació de l’apartat d). Al final del problema teniu el cronograma de microprocessador
en un cicle de lectura i la taula amb la descripció de temps.
l) (1 punt) Quines restriccions han de tenir els valors tAA, tACE, tDOE i tBE de les memòries
RAM?
tcapture - tDATA_IN ≥ tsetup
Del cronograma, veiem que tcapture = 3,5 T, on T=1/f=50ns i que tsetup=t27=5ns
Càlcul tAA_max
3,5T-T/2-t6-tAA_max>= tsetup -> 175ns-25ns-25ns-5ns >=tAA_max -> tAA_max<= 120ns
Càlcul tACE_max
3,5T-T/2-t6-tOR-tACE_max>= tsetup -> 175ns-25ns-25ns-10ns-5ns>=tACE_max -> tACE_max<= 110ns
Càlcul tDOE_max
3,5T-t18-tINV-tDOE_max>= tsetup -> 175ns-25ns-10ns-5ns>=tDOE_max -> tDOE_max<= 135ns
Càlcul tBE_max
3,5T-T-t9-tBE_max>= tsetup -> 175ns-50ns-25ns-5ns>=tDOE_max -> tBE_max<= 95ns
En aquesta solució s’ha considerat només una porta OR (tOR = 10 ns) per la generació de CS*. En
rigor, si només fem servir portes NOT, OR, NOR, AND i/o NAND, quan una porta NOR te una
entrada negada, hauria de comptar com dues portes (tOR = 20 ns).
15
DSBM Final 9/6/2022
Problema 3 (4 punts)
Les quatre àrees de memòria externa associades als senyals NE1..NE4 estan associades a
les següents posicions del mapa de memòria:
4
a) Determineu, en bytes, la quantitat màxima de memòria externa que admet el
microcontrolador i la mida de cada àrea. (0,25 punts)
b) Determineu els valors de n i de m dels xips de memòria RAM i ROM. (0,25 punts)
c) Feu la descodificació de les memòries RAM sense que hi hagin zones imatge i
connecteu adientment els xips de memòria al microcontrolador. (1,5 punts)
d) Segons les connexions de la figura, determineu el rang d’adreces que ocupa el xip
de memòria ROM. Acabeu de fer les connexions que falten entre la memòria ROM i
el microcontrolador. (0,75 punts)
Anem ara a considerar qüestions de timing. Per això cal saber que el microcontrolador
està configurat amb bus extern no multiplexat de 16 bits i que els senyals que farem servir
del FSMC s’indiquen a la següent figura:
5
La descripció dels senyals del cronograma anterior així com el seu valor els podeu
trobar en la taula següent:
En aquesta taula THCLK és el període de la freqüència del rellotge amb el que treballa el
FSMC, que en el nostre cas és de 50 MHz.
Pel que fa a les memòries, aquestes es caracteritzen per tres temps:
tAA: temps des de que la memòria rep les adreces fins que s’entrega la dada
tACE: temps des de que s’activa CE* de la memòria fins que s’entrega la dada
tDOE: temps des de que s’activa OE* de la memòria fins que s’entrega la dada
Volem saber:
6
Problema 3 (4 punts)
Les quatre àrees de memòria externa associades als senyals NE1..NE4 estan associades a
les següents posicions del mapa de memòria:
14
g) Determineu, en bytes, la quantitat màxima de memòria externa que admet el
microcontrolador i la mida de cada àrea. (0,25 punts)
Cada àrea (A0..A25), 26 línies -> 226 bytes = 64 Mbytes
La quantitat total de memòria externa (4 àrees) -> 4*64Mbytes= 256Mbytes
h) Determineu els valors de n i de m dels xips de memòria RAM i ROM. (0,25 punts)
RAM (2 xips de 8 bits) -> xips de 8 bits de 4M posicions (1 byte per posició) -> 22 220
posicions -> 22 línies (A0..A21) -> n=22
ROM (1 xip de 16 bits) -> 1 xip de 16 bits de 1M posicions (2 bytes per posicions) ->
220 posicions -> 20 línies (A0..A19) -> m=20
i) Feu la descodificació de les memòries RAM sense que hi hagin zones imatge i
connecteu adientment els xips de memòria al microcontrolador. (1,5 punts)
A25 A24 A23 A22 .. .. .. A1 A0 Strobe CPU
0 1 0 A21 .. .. .. A0 0 NBL0 M1
0 1 0 A21 .. .. .. A0 1 NBL1 M2
j) Segons les connexions de la figura, determineu el rang d’adreces que ocupa el xip
de memòria ROM. Acabeu de fer les connexions que falten entre la memòria ROM i
el microcontrolador. (0,75 punts)
15
A25 A24 A23 A22 A21 A20 .. A1 A0 CPU
1 X 0 0 0 A19 .. A0 0/1 M3
1 línia no connectada (A24) -> 2 =2 imatges:
1
Anem ara a considerar qüestions de timing. Per això cal saber que el microcontrolador
està configurat amb bus extern no multiplexat de 16 bits i que els senyals que farem servir
del FSMC s’indiquen a la següent figura:
16
La descripció dels senyals del cronograma anterior així com el seu valor els podeu
trobar en la taula següent:
17
En aquesta taula THCLK és el període de la freqüència del rellotge amb el que treballa el
FSMC, que en el nostre cas és de 50 MHz.
Pel que fa a les memòries, aquestes es caracteritzen per tres temps:
tAA: temps des de que la memòria rep les adreces fins que s’entrega la dada
tACE: temps des de que s’activa CE* de la memòria fins que s’entrega la dada
tDOE: temps des de que s’activa OE* de la memòria fins que s’entrega la dada
Volem saber:
Requisit tAA
tW(NE) – tV(A_NE) – tSU(Data_NE) ≥ tAA
2T-0,5ns-4,5ns-T-4ns ≥ tAA
tAA ≤ 11 ns
Requisit tACE
tW(NE) – tV(A_NE) – tOR - tSU(Data_NE) ≥ tACE
2T-0,5ns-4,5ns-2ns-T-4ns ≥ tACE
tACE ≤ 9 ns
Requisit tDOE
tW(NOE) – tSU(Data_NOE) ≥ tDOE
2T-2ns-T-4ns ≥ tDOE
tDOE ≤ 14 ns
18
DSBM Examen Final 11/1/2022
COGNOMS: NOM: GRUP:
PROBLEMA 2: (5 punts)
Es vol dissenyar un sistema basat en el microcontrolador STM32H753XI, fent servir una memòria
256Kx16 CMOS static RAM IS61WV25616MEBLL-10 que permet que el microcontrolador pugui
treballar multiplexant adreces i dades, sense haver d’afegir un latch extern.
FSMC_AD[15:0]
FSMC_AD[17:16]
FSMC_NADV#
FSMC_NOE
FSMC_NWE
FSMC_NBL[0]
FSMC_NBL[1]
FSMC_NE[2]
FSMC_NE[1:4] Output Senyals de chip enable, actius a nivell baix, generats pel C cada vegada que
s’accedeix als bancs de memòria reservats FSMC bank1 NOR/PSRAM 1 (fins
a 4).
FSMC_NOE Output Senyal Output Enable, actiu a nivell baix.
FSMC_NWE Output Senyal Write Enable, actiu a nivell baix.
FSMC_NBL[1:0] Output Senyals de validació, actius a nivell baix, de transaccions per la part alta
(D8:15) and baixa (D0:7) del bus de dades, respectivament.
FSMC_A[25:16] Ouptut Bits d’adreces A25:16.
FSMC_AD[15:0] Input/Output Bus d’adreces i dades multiplexat (A15:0 i D15:0).
FSMC_NADV Output Senyal que indica Adreça Vàlida al bus multiplexat de dades i adreces (tipus
Adress Latch Enable).
5
COGNOMS: NOM: GRUP:
6
COGNOMS: NOM: GRUP:
La memòria RAM es descriu a continuació. Disposa de lògica per a detectar i corregir errors (Error
correcting Code) en els valors enmagatzemats (ERR1 i ERR2). En el nostre disseny no tindrem en compte
aquests senyals. Hem connectat el senyal ZZ# a Vcc per a desactivar permanentment el Power Sleep
Mode.
La temporització de la RAM en lectura indicada en el seu datasheet es descriu en els dos cronogrames
següents:
7
COGNOMS: NOM: GRUP:
Es demana:
a) (0.5 punt) Es correspon l’amplada del banc de memòria reservat per a cada senyal de chip select
FSMC_NE[1:4] amb el nombre de bits del bus d’adreces extern? Justifiqueu breument la resposta.
Si. Per exemple: rang adreces del banc 2: 0x6400 0000 – 0x67FF FFFF (un total de 2^26 adreces) Si que
coincideix per tant amb l’amplada del bus d’adreces extern (26 bits: A0:25).
8
COGNOMS: NOM: GRUP:
d) (0.5 punts) Ens garanteix el microcontrolador de manera explícita que ha posat el bus multiplexat
d’adreces i dades en alta impedància abans d’activar el senyal FSMC_NOE? Justifiqueu breument
la resposta.
No. No hi ha cap referència temporal en el cronograma del microcontrolador respecte el pas a alta
impedància de les adreces en el bus multiplexat.
e) (0.5 punts) Ens garanteix la memòria RAM que el pas a baixa impedància (low-Z) del bus
multiplexat (per tal de posar la dada) no el fa fins que tant el OE# com LB# (UB#) estan actius?
Justifiqueu breument la resposta.
Si, pq tLZOE(min)=tLZB(min)=0.
El rellotge que el microcontrolador fa servir en els accessos externs té una freqüència de 50MHz
(1/THCLK=50MHz).
f) (1 punt) Volem saber si microcontrolador respecta la temporització requerida pel latch intern
d’adreces de la RAM. Compleix el microcontrolador amb els requisits especificats pels temps
següents de la RAM? Justifiqueu breument la resposta.
Si, pq:
tASADVH:
tAHADVH:
g) (1 punt) Es faran correctament els accessos en lectura a la RAM tenint en compte els seus temps
d’accés de OE# i LB# (o UB#)? Justifiqueu la resposta.
(LB# i UB#)
tBA:
(OE#)
tDOE:
9
DSBM Examen Final 4/6/2021
Problema 3 (4 punts)
Es vol dissenyar el mapa de memòria d’una CPU de 16 bits fent servir els xips de RAM
i ROM de la figura. Es desitja situar la RAM a partir de l’adreça 000000h i que la ROM
acabi a l’adreça FFFFFFh.
(0,15 punts)
1) Digueu quina és la quantitat total de memòria que es pot instal·lar en el mapa de
memòria del microprocessador.
A1-A23 + (A0) -> 23 +(1) línies d’adreces -> 224=16 MBytes
(0,3 punts)
2) Quantitat total de memòria RAM i ROM que es vol instal.lar.
Cada xip de RAM:
A0-A16 -> 17 línies d’adreces -> 217 posicions x 1 byte/posició = 27 210 bytes = 128
Kbytes
Total: 512 Kbytes de RAM
Cada xip de ROM
A0-A18 -> 19 línies d’adreces -> 219 posicions x 2 byte/posició = 220 bytes = 1
Mbytes
Total: 2 Mbytes de ROM
9
(1,25 punts)
3) Feu la descodificació més senzilla possible tenint en compte que es desitja deixar
lliure el rang d’adreces que va de la 200000h a la 7FFFFFh. Genereu els CS* dels
xips de RAM i ROM. Indiqueu el nombre de zones imatge.
A2 A2 A2 A2 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A A A A A A A A A A0 Strob CP
3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 e U
0 0 0 X X 0 A1 A1 A1 A1 A1 A1 A1 A9 A A A A A A A A A 0 LDS* M1
6 5 4 3 2 1 0 8 7 6 5 4 3 2 1 0
0 0 0 X X 0 A1 A1 A1 A1 A1 A1 A1 A9 A A A A A A A A A 1 UDS* M2
6 5 4 3 2 1 0 8 7 6 5 4 3 2 1 0
0 0 0 X X 1 A1 A1 A1 A1 A1 A1 A1 A9 A A A A A A A A A 0 LDS* M3
6 5 4 3 2 1 0 8 7 6 5 4 3 2 1 0
0 0 0 X X 1 A1 A1 A1 A1 A1 A1 A1 A9 A A A A A A A A A 1 UDS* M4
6 5 4 3 2 1 0 8 7 6 5 4 3 2 1 0
1 X X 0 A1 A1 A1 A1 A1 A1 A1 A1 A1 A9 A A A A A A A A A 0/ AS* M5
8 7 6 5 4 3 2 1 0 8 7 6 5 4 3 2 1 0 1
1 X X 1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A9 A A A A A A A A A 0/ AS* M6
8 7 6 5 4 3 2 1 0 8 7 6 5 4 3 2 1 0 1
CS*_M1=A23+A22+A21+A18+LDS*
CS*_M3=A23+A22+A21+A18*+LDS*
CS*_M2=A23+A22+A21+A18+UDS*
CS*_M4=A23+A22+A21+A18*+UDS*
CS*_M5=A23*+A20+AS* CS*_M6=A23*+A20*+AS*
z.i. RAM = 22=4 (2 línies sense connectar)
z.i. ROM = 22=4 (2 línia sense connectar)
(0,75 punts)
4) Genereu els senyals OE* i WE* dels xips de RAM i el senyal OE* del xip de ROM
i acabeu de connectar els xips de RAM i ROM a les línies dels busos de la CPU.
10
(0,4 punts)
5) Dibuixeu el mapa de memòria resultant tot indicant les adreces inicials i finals del
bloc de memòria RAM i del bloc de memòria ROM.
En els següents apartats volem estudiar la compatibilitat temporal entre la CPU i les
memòries RAM. Suposeu que la freqüència d’operació de la CPU és de 8 MHz.
Suposeu també un retard màxim de propagació de 10 ns la lògica de descodificació que
genera CS* o qualsevol altre lògica que hi hagi entre la CPU i la memòria. Les
especificacions temporals de les memòries són:
• Temps d’accés màxim des de les adreces: tAA=150ns
• Temps d’accés màxim des de l’activació de CS*: tACE=150ns
• Temps d’accés màxim des de l’activació de OE*: tOE=75ns
El cronograma simplificat de un cicle de lectura de la CPU és el que es mostra en la
següent figura.
11
(0,8 punts)
6) Determineu si es compleix el requeriment de temps de setup en una operació de
lectura i amb quin marge de temps.
tcapture - tDATA_IN ≥ tsetup
Del cronograma, veiem que tcapture = 3,5 T+t12, on T=1/f=125ns i que tsetup=t27=10ns
L’instant d’aparició de la dada (tDATA_IN) vindrà donat pel màxim dels 3 possibles
camins: camí de l’OE*, camí de les adreces, i el camí del CS* de la memòria. D’aquests
3 temps ens haurem de quedar amb el màxim (camí més lent – pitjor cas):
El pitjor cas, camí més lent, és el que passa per CS*. Per tant:
(tcapture - tDATA_IN)min≥ tsetup tcapture_min - tDATA_IN_max≥ tsetup
437,5ns-335ns≥10ns -> per tant sí compleix amb el temps de setup i amb un marge de
92,5 ns.
(0,35 punts)
7) Determineu quines restriccions han de complir els temps tAA, tACE i tDOE de la
memòria per a que la temporització a 20 MHz (setup) sigui correcta.
@20MHz -> T=50ns
Càlcul tAA_max
3,5T-T/2-t6-tAA_max>= tsetup -> 150-50-10 >=tAA_max -> tAA_max<= 90ns
Càlcul tACE_max
3,5T-T-t9-tOR-tACE_max>= tsetup -> 125-50-10-10>=tACE_max ->
tACE_max<= 55ns
Càlcul tDOE_max
3,5T-t18-tINV-tDOE_max>= tsetup -> 175-45-10-10>=tDOE_max ->
tDOE_max<= 110ns
12
DSBM Final 8/1/2021
Problema 3 (5 punts)
Aquest problema s'ha de respondre en els mateixos fulls de l‘examen
Es vol dissenyar un sistema basat en un microprocessador de la família XC2000 d’Infineon. El bus extern
d’aquest microprocessador, anomenat External Bus (EB), té els següents pins:
Considerarem al llarg d’aquest problema que hem configurat el pin 𝑾𝑾𝑾𝑾 �����, 𝑾𝑾𝑾𝑾𝑾𝑾
������� en �������
𝑾𝑾𝑾𝑾𝑾𝑾 mode i el pin
�������
𝑩𝑩𝑩𝑩𝑩𝑩, ��������
𝑾𝑾𝑾𝑾𝑾𝑾 en ��������
𝑾𝑾𝑾𝑾𝑾𝑾-mode (hem configurat tots dos pins per tal que la seva funcionalitat sigui senyal
�������) i D8-15 (𝑾𝑾𝑾𝑾𝑾𝑾
de validació d’escriptura de D0-D7 (𝑾𝑾𝑾𝑾𝑾𝑾 ��������).
Aquests registres (un per a cada chip select) tenen dos camps: RGSAD (on s’especifiquen els bits 23-12 de
l’adreça inicial del banc d’adreces del CS), i RGSZ:
6
El segon camp, RGSZ, permet modular la mida del banc d’adreces, segons indica la següent taula:
On ‘R’ indica que el microcontrolador té en compte el valor programat en el bit corresponent del camp
RGSAD, i ‘x’ que no.
7
Taula: Temps associats al microcontrolador.
a) (1 punt) Si el valor del registre ADDRSEL1 que hem programat al microcontrolador és 0xFF08,
quina serà l’adreça inicial del banc associat al �����
𝐶𝐶𝐶𝐶0 corresponent ? Quina serà la seva mida total?
Volem connectar dues SRAM al microcontrolador, fent servir uns latchs perquè configurarem el
microcontrolador per a treballar amb bus adreces/dades multiplexat:
8
La descripció del pin-out de la SRAM R1LP0108E de Renesas és:
9
La funcionalitat del latch és guardar les adreces del bus multiplexat per tal de que no es perdin un cop el
microcontrolador posa el bus AD15-AD0 en alta impedància. El latch:
Quan LE=1, el latch fa que Q0:7 = D0:7. Quan LE=0, manté els valors de Q0:7 anteriors. El latch,
74AHC573, té les següents característiques:
b) (2 punts) Feu la descodificació més simple possible del sistema complet al dibuix de la Figura 2,
����� , configurat com hem a l’apartat a). Indiqueu
de manera que les SRAM s’activin amb el senyal 𝐶𝐶𝐶𝐶0
el nombre de zones imatge de la descodificació de l’apartat anterior.
Nombre z.i.:
c) (1 punt) Calculeu la freqüència màxima d’operació del microcontrolador per tal de respectar el
temps de setup i hold del latch.
d) (1 punt) Calculeu la freqüència màxima d’operació del microcontrolador per tal de que el cicle de
lectura es faci correctament, sense afegir cap cicle d’espera.
10
DSBM Ravaluació 8//2020
Problema3 (5 punts)
Es demana:
(1 punt)
b) Volem que la memòria RAM comenci a partir de l’adreça 200000H del mapa de
memòria i que la memòria ROM acabi a l’adreça C3FFFFH. A partir de la taula de
descodificació de les memòries, dissenyeu la lògica de descodificació per tal de tenir
una descodificació completa dels xips de les memòries.
A respondre en la tasca Entrega de Resultadosd’Atenea:
b1) CS_M1 = ....
b2) CS_M2 = ....
b3) CS_M3 = ....
b4) CS_M4 = ....
b5) CS_M5 = ....
b6) CS_M6 = ....
4
(0,5 punts)
c) Acabeu de fer les connexions entre el microprocessador i la memòria indicant
clarament quines línies del microprocessador es fan servir i com es connecten a cada
xip de memòria.
A respondre en la tasca Entrega de Resultadosd’Atenea:
c1) M1 D0..D7 =
c2) M2 D0..D7 =
c3) M3 D0..D7 =
c4) M4 D0..D7 =
c5) M5,6 D0..D15 =
c6) M1..4 A0..An-1 =
c7) M5,M6 A0..Am-1 =
c8) M1...M4 OE* =
c9) M1...M4 WE* =
c10) M5,6 OE* =
(0,75 punts)
d) Dibuixeu el mapa de memòria resultant tot indicant les adreces inicial i final de cada
xip.
A respondre en la tasca Entrega de Resultadosd’Atenea:
d) Per cada memòria: XXXXXXH - XXXXXXH
(0,75 punts)
e) Feu la descodificació més senzilla possible que compleixi amb les condicions
demanades i s’eviti el solapament entre RAM i ROM. Determineu el nombre de zones
imatge dels xips de RAM i ROM.
A respondre en la tasca Entrega de Resultadosd’Atenea:
e1) CS_M1 = ....
e2) CS_M2 = ....
e3) CS_M3 = ....
e4) CS_M4 = ....
e5) CS_M5 = ....
e6) CS_M6 = ....
e7) NZI RAM =
e8) NZI ROM =
5
(1 punt)
f) Determineu si es compleix el requisit de temps de setup del microprocessador en una
operació de lectura? Amb quin marge de temps?
A respondre en la tasca Entrega de Resultadosd’Atenea:
f1) Compleix (Si/No)
f2) Marge [ns] =
(0,75 punts)
g) Determineu en una operació d’escriptura la restricció que ha de tenir el temps de
setup de les memòries respecte a l’instant de End of Write (EOW)?
A respondre en la tasca Entrega de Resultadosd’Atenea:
g) Requisit tSetup
6
Cronograma del microprocessador en un cicle de lectura
7
Cronograma del microprocessador en un cicle d’escriptura
8
Descripció dels temps dels cronogrames de lectura i escriptura del microprocessador
9
Problema3 (5 punts)
1 Mbyte en 4 xips -> 256Kbytes per xip (M1, M2, M3, M4) -> 256K posicions de 1 byte -> 2^18
=>n=18
256 Kbytes de ROM -> 128 Kbytes per xip de ROM (M5, M6) -> 64K posicions de 2 bytes ->
2^16 =>m=16
(1 punt)
b) Volem que la memòria RAM comenci a partir de l’adreça 200000H del mapa de
memòria i que la memòria ROM acabi a l’adreça C3FFFFH. A partir de la taula de
descodificació de les memòries, dissenyeu la lògica de descodificació per tal de tenir
una descodificació completa dels xips de les memòries.
A23 A22 A21 A20 A19 A18 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 Strobe CPU
0 0 1 0 0 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 LDS* RAM1
0 0 1 0 0 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 UDS* RAM2
0 0 1 0 1 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 LDS* RAM3
0 0 1 0 1 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 UDS* RAM4
1 1 0 0 0 0 0 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 LDS*/UDS* ROM5
1 1 0 0 0 0 1 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 LDS*/UDS* ROM6
CS*_M1=A23+A22+A21*+A20+A19+LDS*
CS*_M2=A23+A22+A21*+A20+A19+UDS*
CS*_M3=A23+A22+A21*+A20+A19*+LDS*
CS*_M4=A23+A22+A21*+A20+A19*+UDS*
CS*_M5=A23*+A22*+A21+A20+A19+A18+A17+AS*
CS*_M5=A23*+A22*+A21+A20+A19+A18+A17*+AS*
15
(0,5 punts)
c) Acabeu de fer les connexions entre el microprocessador i la memòria indicant
clarament quines línies del microprocessador es fan servir i com es connecten a cada
xip de memòria.
S’ha inclòs en la figura de l’apartat b)
(0,75 punts)
d) Dibuixeu el mapa de memòria resultant tot indicant les adreces inicial i final de cada
xip.
(0,75 punts)
e) Feu la descodificació més senzilla possible que compleixi amb les condicions
demanades i s’eviti el solapament entre RAM i ROM. Determineu el nombre de zones
imatge dels xips de RAM i ROM.
A23 A22 A21 A20 A19 A18 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 Strobe CPU
0 X X X 0 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 LDS* RAM1
0 X X X 0 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 UDS* RAM2
0 X X X 1 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 LDS* RAM3
0 X X X 1 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 UDS* RAM4
1 X X X X X 0 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 LDS*/UDS* ROM5
1 X X X X X 1 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 LDS*/UDS* ROM6
CS*_M1=A23+ A19+LDS*
CS*_M2=A23+ A19+UDS*
CS*_M3=A23+ A19*+LDS*
CS*_M4=A23+ A19*+UDS*
CS*_M5=A23*+ A17+AS*
CS*_M6=A23*+ A17*+AS*
(1 punt)
f) Determineu si es compleix el requisit de temps de setup del microprocessador en una
operació de lectura? Amb quin marge de temps?
16
El pitjor cas, camí més lent, és el que passa per CS. Per tant:
tcapture - tDATA_IN ≥ tsetup
350ns-245ns =105 ns≥5ns -> per tant sí compleix amb el temps de setup.
(0,75 punts)
g) Determineu en una operació d’escriptura la restricció que ha de tenir el temps de
setup de les memòries respecte a l’instant de End of Write (EOW)?
17
DSBM Final 15/6/2020
Problema 3 (5 punts)
Es demana:
(0,5 punts)
a) Quantitat total de memòria RAM que es vol afegir al sistema
A respondre en la tasca Entrega deResultadosd’Atenea:
a) Mida total RAM (bytes)=
4
Volem que la RAM deixi lliure (sense ocupar) les adreces per sota de 008000H i per
sobre de 7FFFFFH. Dins del espai permès, volem que imatge continua de tota la
RAM comenci en la posició més baixa possible del mapa que permeti la
descodificació senzilla.
(3 punts)
b) Feu la descodificació més senzilla possible que compleixi el requisit indicat
utilitzant una descodificació senzilla. Acabeu de fer la resta de connexions
dels xips de memòria RAM M1-M4 al microcontrolador
A respondre en la tasca Entrega de Resultados d’Atenea:
b1) CS*_M1 = ; CS*_M2 = ; CS*_M3 = ; CS*_M4 =
b2) (Xip M1): D0-D7= ; A0-A17 =....; OE* = ; WE* =
b3) (Xip M2): D0-D7= ; A0-A17 =....; OE* = ; WE* =
b4) (Xip M3): D0-D7= ; A0-A17 =....; OE* = ; WE* =
b5) (Xip M4): D0-D7= ; A0-A17 =....; OE* = ; WE* =
A la entrega manuscrita cal dibuixar les connexions de tots els xips de RAM
(0,5 punts)
c) Determineu la quantitat total de memòria ROM que té sistema
A respondre en la tasca Entrega de Resultados d’Atenea:
c) Mida total ROM (bytes)=
(2,5 punts)
d) Dibuixeu el mapa de memòria resultant per tot el sistema, indicant el
nombre de zones imatge que hi ha dels xips de RAM i de ROM.
Especifiqueu les adreces inicial i final de cadascuna de les zones imatges de
RAM i ROM.
A respondre en la tasca Entrega de Resultados d’Atenea:
d1) Nombre de zones imatge RAM = ; Nombre de zones imatge ROM =
d2) Adreça inicial - Adreça final (per a cada imatge del bloc de RAM i de la
ROM)
5
(2,5 punts)
e) Determineu els requisits que han de complir els temps de la memòria en lectura:
tAA, tACE i tDOE per complir amb el requisit de setup del microcontrolador.
Compleix la memòria amb aquests requisits?, amb quin marge?
A respondre en la tasca Entrega de Resultados d’Atenea:
e1) Marge de temps per tAA
e2) Marge de temps per tACE
e3) Marge de temps per tDOE
e4) Es compleixen els requisits = SI/NO
(1 punts)
f) Determineu la màxima freqüència de rellotge que podem fer servir si volem
garantir el compliment dels temps de Setup de la CPU amb la memòria
ROM.
A respondre en la tasca Entrega deResultadosd’Atenea:
f) f_màxima=
6
Problema 3 (5 punts)
Es demana:
(0,5 punts)
a) Quantitat total de memòria RAM que es vol afegir al sistema?
Volem que la RAM deixi lliure les adreces per sota de 008000H i per sobre de 7FFFFFH.
Dins del espai permès, una imatge continua de tota la RAMha de començar en la posició
més baixa possible del mapa.
(3 punts)
b) Feu la descodificació més senzilla possible que compleixi el requisit
indicatutilitzant una descodificació senzilla. Acabeu de fer la resta de
connexions dels xips de memòria RAM M1-M4 al microcontrolador
Fent una descodificació senzilla, haurem de posar el bloc M1/M2 (=512 Kbytes) a partir
del primer marc de 512Kbytes que estigui lliure. L’adreça 008000H pertany al marc 0
del mapa de memòria. Llavors, posarem M1/M2 en el marc 1 i M3/M4 a continuació,
en el marc 2, fent així que tota la RAM es vegi com una memòria continua.
Si la RAM no pot ocupar adreces per sobre de 7FFFFFH caldrà fixar A23=0. La resta de
línies poden quedar indeterminades (X) per fer la descodificació el més senzilla
possible. Per tant,
A23 A22 A21 A20 A19 A18 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 Strob CPU
0 X X 0 1 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 WRL RAM1
0 X X 0 1 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 WRH RAM2
0 X X 1 0 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 WRL RAM3
0 X X 1 0 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 WRH RAM4
Aquesta descodificació es pot fer mes senzilla encara afegint indeterminacions adicionals.
12
(0,5 punts)
c) Determineu la quantitat total de memòria ROM que té sistema?
Mida total ROM (bytes)= 2^19 posicions de 2 bytes = 2^20 bytes = 1MB 0,5ptos
(2,5 punts)
d) Dibuixeu el mapa de memòria resultant, indicant el nombre de zones imatge
que hi ha dels blocs de RAM i de ROM. Especifiqueu les adreces inicial i final
de cadascuna de les zones imatges de RAM i ROM.
En les memòries RAM no estan connectades les línies A21 i A22, dos línies, per tant
2^2=4 zones imatge 0,1 ptos.
Pel que fa a les memòries ROM, A21 i A22 tampoc estan connectades: 2^2=4 zones
imatge 0,1 ptos.
A23 A22 A21 A20 A19 A18 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 Strobe CPU
1 X X 0 A18 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 WRL/H RO
0,3 ptos
El mapa de memòria resultant és:
800000
7FFFFF FFFFFF
M3/M4 700000 – 77FFFF
0,25 ptos F00000
M1/M2 680000 – 6FFFFF
M5 E00000 – EFFFFF 0,25 ptos
E00000
13
(2,5 punts)
e) Determineu els requisits que han de complir els temps de la memòria en lectura: tAA,
tACE i tDOE per complir amb el requisit de setup del microcontrolador. Compleix la
memòria amb aquests requisits?, amb quin marge?
Vist el resultat de l’apartat anterior, el marge més petit el proporciona el camí de l’OE*.
Per tant:
𝑇𝑇
45𝑛𝑛𝑛𝑛 ≤ 3 − 55𝑛𝑛𝑛𝑛 0,5 ptos
2
Això fa que,
𝑇𝑇 ≥ 66.66𝑛𝑛𝑛𝑛 => 𝑓𝑓𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 15𝑀𝑀𝑀𝑀𝑀𝑀 0,5 ptos
14
DSBM Exàmen Final 9 de Gener de 2020
Problema 3 (5 punts)
Aquest problema s'ha de respondre en els mateixos fulls de l‘examen
El rang d’adreces dedicat al Bank 1 és:0x6000 0000 – 0x6FFF FFFF. Aquest rang està dividit en 4 sub-
blocs associats cadascun amb un dels 4 senyals de chip select del microprocessador: FMC_NE[1:4]:
5
Es a dir, quan l’amplada de la memòria és de 16 bits (el nostre cas), els bits d’adreces
A[25:1] interns surten pels bits A[24:0] del microcontrolador realment.
Volem connectar al chip select FMC_NE1 una memòria Winbond W956K6HB que és una memòria
DRAM que té incorporat en el xip lògica addicional per tal que sigui molt fàcil llegir i escriure. Es per
això que aquest tipus de memòries es diuen PSRAM: Pseudo SRAM. La interfície externa és molt similar
a una memòria SRAM, tot i que com hem dit sigui una DRAM:
6
Figura 4: Esquema de connexions
7
Figura 6: Taula de temps associat al cronograma Figura 5.
NOTA: Tingueu present la taula 149 a la primera pàgina d’aquest problema, que explica com el
microcontrolador treu les adreces internes pel bus d’adreces extern en funció de l’ample del bus de
dades (8, 16 o 32 bits). En el nostre cas, l’amplada del bus de dades és de 16 bits.
Es demana:
a) (0.5 punts) Quantitat total de memòria adreçable pel senyal de chip select generat pel
microcontrolador FMC_NE1.
PSRAM (Mbytes):
c) (1 punt) Completeu l’esquema de connexions de la figura 4 per tal de que la PSRAM s’activi
quan el microcontrolador genera un accés amb el senyal FMC_NE1.
d) (1 punt) Dibuixeu el mapa resultant de memòria. Indiqueu nombre de zones imatge per a cada
tipus de memòria, i els bits d’adreces del microcontrolador que les generen.
0x6000 0000
N. z.i. (PS-RAM):
Bits adreces que generen z.i: 0x63FF FFFF
8
Figura 7: Cronograma memòria PSRAM en lectura. Taula de temps associada.
9
Problema 3 (5 punts)
Aquest problema s'ha de respondre en els mateixos fulls de l‘examen
a) (0.5 punts) Quantitat total de memòria adreçable pel senyal de chip select generat pel
microcontrolador FMC_NE1.
c) (1 punt) Completeu l’esquema de connexions de la figura 4 per tal de que la PSRAM s’activi
quan el microcontrolador genera un accés amb el senyal FMC_NE1.
d) (1 punt) Dibuixeu el mapa resultant de memòria. Indiqueu nombre de zones imatge per a cada
tipus de memòria, i els bits d’adreces del microcontrolador que les generen.
0x6000 0000
16 còpies de la memòria
NOTA: Els bits FMC_A[20:16] i FMC_AD[15:0] porten
0x6000 0000
realment els bits interns d’adreces A[21:1]. A[0] està implícit al
bus de dades. Per tant només generem zones imatge amb A[25-22]
19
e) (0.5 punts) En el mode asíncron i multiplexat, la memòria PSRAM té un latch intern que guarda
les adreces en el flanc de baixada del seu senyal ADV#. Indiqueu el nom i els valors dels
corresponents temps de setup i hold que especifica el latch intern de la memòria PSRAM:
Setup (nom i valor): tAVS (5ns) Hold (nom i valor): tAVH (2ns)
f) (0.5 punts) Tenint en compte només els requisits de l’apartat e), indiqueu el valor màxim o
mínim (indiqueu si és MAXIM o MINIM) de la freqüència del microcontrolador per tal de que
el latch pugui guardar correctament les adreces.
T>6ns
g) (1 punt) Tenint en compte tots els requisits necessaris, indiqueu el valor màxim o mínim
(indiqueu si és MAXIM o MINIM) de la freqüència del microcontrolador per tal de que les
lectures es facin correctament.
20
DSBM Reavaluacio 9/7/2019
Problema3 (4 punts)
Es demana:
(0,2 punts)
a) Determineu quina és la mida del mapa de memòria del microprocessador, en bytes,
tot indicant les adreces inicial i final del mapa.
(0,3 punts)
b) A p artir de l a i nformació di sponible, determineu l a organització i nterna del x ip de
SRAM i el valor de m.
Al final del problema trobareu informació sobre els cronogrames del microprocessador
en un cicle de lectura i d’escriptura a més de la descripció dels temps dels cronogrames
del microprocessador.
(1 punt)
c) Tenint en co mpte el s s enyals d el m icrocontrolador q ue i ntervenen en el s
cronogrames d e l ectura i es criptura i l a s eva d escripció d e t emps, d issenyeu l es
connexions n ecessàries entre el m icrocontrolador i l a m emòria p er a que el x ip
estigui situat a partir de l’adreça 40000H del mapa de memòria del microcontrolador.
Per a la descodificació podeu fer servir portes lògiques de fins a tres entrades com
a màxim. La descodificació NO ha de tenir zones imatge i ha de ser la més ràpida
possible.
5
(1 punt)
d) Cas de que volguéssim tenir el xip de SRAM a partir de la posició 60000H del mapa
de memòria, trobeu el nou resultat que hauria de tenir el apartat c) anterior.
Dibuixeu un m apa de memòria que i ndiqui c om e s ve urien l es pos icions de l a
SRAM dins del mapa de la CPU.
Pel que fa a la memòria SRAM IS62WV2568, les seves especificacions temporals són:
6
Per a ls següents apartats, preneu co m a r eferència la d escodificació f eta al ap artat c) ,
suposeu un retard d e p ropagació m àxim de 10 ns tota la lògica externa de
descodificació utilitzada, i ndependentment de l nombre de por tes que feu s ervir, i
considereu el model de memòria amb temps d’accés igual a 70 ns.
Avaluació en lectura
(0,75 punts)
e) Determineu el n ombre d’estats d ’espera n ecessaris en l ectura p er co mplir els
requisits de temps de setup i de hold de dades del microprocessador. Podem garantir
que es poden complir aquests requisits?
Avaluació en escriptura
(0,75 punts)
f) Determineu el n ombre d ’estats d ’espera n ecessaris en es criptura p er c omplir els
requisits de temps de setup i de hold de dades de la memòria. Podem garantir que es
poden complir aquests requisits?
7
Cronograma del microcontrolador en un cicle de lectura
8
Descripció dels temps dels cronogrames de lectura i escriptura del microprocessador
9
Problema3 (4 punts)
(0,2 punts)
a) Determineu quina és la mida del mapa de memòria del microprocessador, en bytes,
tot indicant les adreces inicial i final del mapa.
A0-A19 -> 20 línies d’adreces -> 220 = 1 Mposicions de memòria
1M posicions de memòria x 1byte/posició de memòria -> 1 Mbytes de memòria
Les adreces inicial i final del mapa de memòria són: 00000H-FFFFFH
(0,3 punts)
b) A p artir d e l a i nformació di sponible, de termineu la o rganització i nterna d el x ip d e
SRAM i el valor de m.
La capacitat de la memòria és de 2Mbits. Com el seu bus de dades és de 8 bits (D0-
D7), aquests 2Mbits s’organitzen en:
2Mbit x 1 posició/ 8 bits = 256K posicions de 8 bits -> 256K x 8
256K -> 28 210 -> 218 -> 18 línies d’adreces (A0-A17) -> m=17
(1 punt)
c) Tenint en compte els senyals del microcontrolador que intervenen en els cronogrames
de l ectura i escriptura i l a s eva d escripció d e t emps, d issenyeu l es c onnexions
necessàries entre el m icrocontrolador i l a m emòria p er a q ue el x ip es tigui s ituat a
partir de l ’adreça 4 0000H del m apa d e m emòria d el m icrocontrolador. P er a l a
descodificació podeu fer servir portes lògiques de fins a tres entrades com a màxim.
La descodificació NO ha de tenir zones imatge i ha de ser la més ràpida possible.
A19 A18 A17...........A0 Strobe CPU
0 1 A17...........A0 MREQ* MEM
18
(1 punt)
d) Cas de que volguéssim tenir el xip de SRAM a partir de la posició 60000H del mapa
de memòria, trobeu el nou resultat que hauria de tenir el apartat c) anterior.
Dibuixeu un m apa de memòria que i ndiqui c om e s ve urien l es pos icions de l a
SRAM dins del mapa de la CPU.
19
Avaluació en lectura
(0,75 punts)
e) Determineu e l nom bre d’estats d ’espera n ecessaris en l ectura p er co mplir el s
requisits de t emps de setup i d e hold de da des de l m icroprocessador. P odem
garantir que es poden complir aquests requisits?
Setup
Com que nos altres ut ilitzem e l s enyal M REQ* i no M STB*, e ls dos t emps que
haurem de complir són tDADR i tDMRD:
1) Adreces
Tenim d os cam ins, u n d irecte a l a m emòria i l ’altre q ue p assa p er u na p orta
AND que va connectada a CS2, Així, per un costat tenim:
tdada_in – tADDR ≤ tDADR
tAA ≤ (n+1,5)T-90ns -> 70 ≤ (n+1,5)100ns-90ns -> n≥ 0,1 -> n=1
i per l’altre:
tdada_in – tADDR ≤ tDADR
tAND+tACS2 ≤ (n+1,5)T-90ns -> 10+70 ≤ (n+1,5)100ns-90ns -> n≥ 0,2 -> n=1
2) R/W*
tdada_in – tR/W* ≤ tDADR
tINV+tDOE ≤ tDADR -> 10ns+35ns ≤ (n+1,5)100ns-90ns -> n≥ -0,25 -> n=0
3) MREQ*
tdada_in – tMREQ* ≤ tDMRD
tACS1 ≤ (n+1)T-75ns -> 70 ≤ (n+1)100ns-75ns -> n≥ 0,45 -> n=1
20
Hold
Avaluació en escriptura
(0,75 punts)
f) Determineu el nombre d’estats d’espera necessaris en escriptura per complir els
requisits de t emps de setup i d e hold de d ades d e l a m emòria. P odem garantir
que es poden complir aquests requisits?
Setup
Hold
21
DSBM Examen Final 12/6/2019
Problema 3 (4 punts)
Descodificació
(0,2 punts)
a) Determineu quina és la mida del mapa de memòria del microprocessador, en bytes, i
indiqueu quines són les adreces inicial i final del mapa.
(0,4 punts)
b) Per a cada xip de memòria (M1, M2, M3 i M4), determineu si es tracta d’un xip de
RAM o ROM i doneu la seva mida en bytes. Quina és la quantitat total de memòria
RAM i ROM que té el sistema?
(0,5 punts)
c) Estudieu la descodificació feta i determineu les adreces inicial i final de la primera
imatge del banc de RAM i també del banc de ROM. Quantes imatge hi ha en total de
la RAM i quantes de la ROM?
(0,3 punts)
d) Determineu la quantitat més gran de memòria contigua que es pot afegir al sistema
sense que hi hagi solapament amb cap imatge actual.
(0,1 punts)
e) Acabeu de fer les connexions entre el microprocessador i la memòria indicant
clarament quines línies del microprocessador es fan servir i com es connecten a cada
xip de memòria.
5
(1 punt)
f) Determineu el nombre de línies d’adreces que tindrà cada xip. Feu la taula de
descodificació i genereu els senyals de chip select de cadascun per a una descodificació
sense zones imatge. Connecteu també la resta de línies del microprocessador als xips
de memòria.
Temporització
Finalment es vol analitzar si els xips M1 i M2 compleixen amb les especificacions temporals del
microprocessador segons la d escodificació f eta en la f igura. E n els següents apartats, suposeu
uns r etards d e p ropagació màxims d e 1 0 n s p er a cad a porta lògica. A l final d el p roblema
trobareu i nformació so bre el s cr onogrames d el m icroprocessador en u n cicle d e l ectura i
d’escriptura a més de la descripció dels temps dels cronogrames del microprocessador.
Pel que fa a les memòries M1 i M2, les seves especificacions temporals són:
• Temps d’accés màxim des de les adreces: 70 ns
• Temps d’accés màxim des de l’activació de CS*: 70 ns
• Temps d’accés màxim des de l’activació de OE*: 35 ns
Avaluació en lectura
(0,75 punts)
g) Determineu si es compleix el requisit de temps de setup del microprocessador.
Avaluació en escriptura
(0,75 punts)
h) Determineu la restricció que ha de tenir el temps de setup de les memòries respecte a
l’instant de End of Write (EOW).
6
Cronograma del microprocessador en un cicle de lectura
7
Cronograma del microprocessador en un cicle d’escriptura
8
Descripció dels temps dels cronogrames de lectura i escriptura del microprocessador
9
Problema 3 (4 punts)
(0,2 punts)
a) Determineu quina és la mida del mapa de memòria del microprocessador, en bytes, i
indiqueu quines són les adreces inicial i final del mapa.
A1-A23 -> 23 línies d’adreces -> 223 = 8 Mposicions de memòria
8M posicions de memòria x 2bytes/posició de memòria -> 16 Mbytes de memòria
Les adreces inicial i final del mapa de memòria: 000000H-FFFFFFH
(0,4 punts)
b) Per a cada xip de memòria (M1, M2, M3 i M4), determineu si es tracta d’un xip de
RAM o ROM i doneu la seva mida en bytes. Quina és la quantitat total de memòria
RAM i ROM que té el sistema?
M1 i M2 són xips de memòria RAM i tenen el mateix tamany: 218->28·210 -> 256 KB
M3 i M4 són xips de memòria ROM i tenen el mateix tamany: 216->26·210 -> 64 KB
Total memòria RAM: 512 KB. Total memòria ROM: 128 KB
(0,5 punts)
c) Estudieu la descodificació feta i determineu les adreces inicial i final de la primera
imatge del banc de RAM i també del banc de ROM. Quantes imatge hi ha en total de
la RAM i quantes de la ROM?
A23 A22 A21 A20 A19 A18 A17 A16...........A1 A0 Strobe CPU
0 1 X 0 X A17....................................A0 0 LDS* M1
0 1 X 0 X A17....................................A0 1 UDS* M2
1 0 X X X X X A15..........A0 0 LDS* M3
1 0 X X X X X A15..........A0 1 UDS* M4
(0,3 punts)
d) Determineu la quantitat més gran de memòria contigua que es pot afegir al sistema
sense que hi hagi solapament amb cap imatge actual.
4 MBytes
16
(0,1 punts)
e) Acabeu de fer les connexions entre el microprocessador i la memòria indicant
clarament quines línies del microprocessador es fan servir i com es connecten a cada
xip de memòria.
(1 punt)
f) Determineu el nombre de línies d’adreces que tindrà cada xip. Feu la taula de
descodificació i genereu els senyals de chip select de cadascun per a una descodificació
sense zones imatge. Connecteu també la resta de línies del microprocessador als xips
de memòria.
128Kbytes de memòria -> 27·210 -> 217 -> 17 línies d’adreces -> A0 – A16
Descodificació sense zones imatge -> S’han d’utilitzar totes les línies del bus d’adreces del
microprocessador.
17
Temporització
Avaluació en lectura
(0,75 punts)
g) Determineu si es compleix el requisit de temps de setup del microprocessador.
L’instant d’aparició de la dada (tDATA_IN) vindrà donat pel màxim dels 3 possibles camins: camí
de l’OE*, camí de les adreces, i el camí del CS de la memòria. D’aquests 3 temps ens haurem de
quedar amb el màxim (camí més lent – pitjor cas):
El pitjor cas, camí més lent, és el que passa per CS. Per tant:
tcapture - tDATA_IN ≥ tsetup
175ns-155ns =20 ns≥5ns -> per tant sí compleix amb el temps de setup.
18
Avaluació en escriptura
(0,75 punts)
h) Determineu la restricció que ha de tenir el temps de setup de les memòries respecte a
l’instant de End of Write (EOW).
19
DSBM - Exàmen Final 11/1/2019
Problema 3 (5 punts)
Aquest problema s'ha de respondre en els mateixos fulls del exàmen
4
Les amplades dels accessos per a cada CSXn poden ser configurades per separat.
Es demana:
a) (1.5 punts) Configureu els valors corresponents al CSX0 de tal manera que les memòries estiguin
situades a partir de l’adreça 0x0020 0000 i NO tinguin cap zona imatge:
bits ASZ3-0:
bits DBW1-DBW0:
NOTA: Feu servir com a criteri d’optimització que no calgui fer servir portes a la descodificació i que es
maximitzi la velocitat de transferència de dades entre el microcontrolador i les memòries.
5
b) (1 punt) Completeu l ’esquema de la primera pàgina d’aquest problema a mb les connexions entre les
memòries i el microcontrolador.
c) (1.5 punts) Calculeu el temps màxim d’accés d’adreces (tAA), CS* ( tCS) i OE* (tOE) de les memòries.
Justifiqueu breument la resposta.
6
El cronograma en ESCRIPTURA és el següent:
d) (0.5 punts) Calculeu el màxim valor que podem tenir de temps requerit de CS* de les memòries (tCW ).
Justifiqueu breument la resposta.
tCW =
NOTA: tCW és el mínim temps requerit de CS* abans d’EOW per a una escriptura correcta.
e) (0.5 punts) Calculeu el màxim valor que podem tenir de temps requerit de HOLD de dades de les
memòries (tHD). Justifiqueu breument la resposta.
tHD =
7
DSBM Reavaluació (10-7-2018)
Problema 3 (4 punts)
Aquest problema s'ha de respondre en els mateixos fulls del exàmen
5
NOTA: Justifiqueu breument totes les respostes.
Es demana:
a) (0.5 p unts) Q uin c onjunt d ’adreces o cupa a l m apa de m emòria de l m icrocontrolador l ’espai
adreçat pel senyal NCS1 ? Coincideix la mida d’aquest bloc amb la mida que pot escombrar el
bus extern d’adreces ?
b) (0.5 punts) Feu la descodificació més simple possible de la memòria. Feu servir NCS1.
c) (0.5 punts) Indiqueu el nombre de zones imatge de la descodificació resultant.
6
D’altra banda la memòria que hem connectat té la següent taula de la veritat.
7
La freqüència d el microcontrolador és 100MHz ( tCPMCK=10ns) i l a memòria qu e hem pos at é s l a
AT68166FT-17. L’alimentació del microcontrolador és 3.3V. Com a criteri d’optimització volem que les
transaccions amb la memòria siguin el més ràpides possible.
Es demana:
8
Final DSBM (8-6-2018)
Problema 3 (4 punts)
Aquest problema s'ha de respondre en els mateixos fulls del exàmen
Es vol dissenyar un sistema basat en el µC EFM32 fent servir el seu External Bus Interface (EBI) de tal
manera que estigui connectat a una memòria magnetoresistiva.
El bus extern d’aquest microcontrolador es pot programar per fer transferències de 8 o 16 bits de dades, i
té els següents pins:
- CS[3:0]#: Chip Enable outputs (activelow) for external bus accesses.
- A[27:0]: Adress bus
- D[15:0]: Data bus
- RE#: ReadEnable (activelow)
- WE# : WriteEnabel (activelow).
- BL#[1:0]: Byte lanesstrobes (activelow). BL1# for D15:8 and BL0# for D7:0.
5
a) (0.5 punts) Feu la descodificació més simple possible de la memòria magnetoresistiva al dibuix
de la pàgina anterior. Indiqueu el nombre de zones imatge si n’hi ha. Feu servir CS0#.
Nombre z.i. =
tHFCORECLK és la meitat del període de rellotge. Els paràmetres RDHOLD i RDSETUP poden prendre els
valor 0,1,2,3... i el paràmetre RDSTRB els valors 1,2,3,4...
6
El cronograma de la memòria magnetoresistiva en lectura és:
7
El mapa de memòria d’aquest microcontrolador és de 32 bits (4Gbytes). L’espai reservat per l’EBI és:
c) (0.5 punts) En funció de la informació que ens dóna el fabricant, és possible accedir a la mateixa
adreça física (EBI) mitjançant dues adreces diferents del mapa de memòria del microcontrolador
? En cas afirmatiu poseu un exemple.
8
DSBM Exàmen final 16 de Gener de 2018
Problema 2 (4 punts)
Aquest problema s'ha de respondre en els mateixos fulls del exàmen
En funció del mode d’operació escollit, i de la versió del microcontrolador, el mapa de de memòria varia
de la següent manera:
3
NOTA: Justifiqueu breument totes les respostes.
Com hem dit abans, el nostre microcontrolador és un PIC18F8620. La quantitat de memòria flash interna
que té és 64Kbytes.
b) (0.5 p unts) Q uina s erà la quantitat màxima d e memòria ex terna q ue p odrem acc edir s i
programem el microprocessador en mode “BootBlock Mode” ?
- CE*: Chip Enable output (actiu a nivell baix). It is only activated on external
bus access.
- A20-A17: Adress bus (bits A20-A17))
- AD15-AD8: Multiplexed Upper Address A16-A9 .- Data bus D15-D8
- AD7-AD0: Multiplexed Upper Address A8-A1 - Data bus D7-D0
- OE*: External Memory Read Strobe. OE* is active low for every external
instruction or data read access.
- WRL* : External Memory Low Byte Write Strobe.
- WRH*: External Memory High Byte Write Strobe (only valid if data bus is
programmed for 16-bit data transfers)
Els senyals WRL* i WRH* són senyals de validació d’escriptura. No són senyals de validació de carrer
(byte lane).
4
Com que el microprocessador fa servir un bus multiplexat cal fer servir latchs per mantenir el valor del
bus d’adreces.
Els temps associats al latch de retard (tPLH, tPHL), setup (tsu) i hold (th) estan definits amb els següents
gràfics:
5
El cronograma en lectura del microcontrolador és:
d) (1 punt) Calculeu els màxims valors que poden prendre els temps de setup i hold dels latchs.
e) (1 punt) Calculeu el màxim temps d’accés de CS* i OE* que poden tenir les memòries:
tCS tOE
6
DSBM
4 de Juliol de 2017
Data notes provisionals: 10 de Juliol
Període al·legacions fins: 13 de Juliol
DEPARTAMENT D’ENGINYERIA ELECTRÒNICA
Data notes revisades: 17 de Juliol
Informacionsaddicionals:
• Duració de l’examen: 2h 30m.
• L'examen corregit es podrà veure el dia 11 de Juliol al despatx dels professors
Problema 2 (5 punts)
Es demana:
(0,2 punts)
a) La quantitat total de memòria en bytes que pot adreçar aquest
microprocessador?
1
(1 punts)
c) Determineu el mapa de memòria tot indicant clarament les posicions inicial i
final que ocuparan els xips de memòria M1 i M2. Indiqui el nombre de zones
imatge, si n’hi ha, de les memòries M1 i M2.
580000H - 5BFFFFH
5C0000H-5FFFFFH
780000H- 7BFFFFH
7C0000H- 7FFFFFH
(0,2 punts)
d) Determineu el tamany més gran de memòria continua que es pot afegir en el
nostre sistema.
(1,2 punts)
e) En el sistema anterior es vol afegir més memòria, concretament 4 xips més de
memòria SRAM KM681000B (M3, M4, M5 i M6) del mateix tipus que M1 i M2.
Connecti aquestes memòries al sistema fent la descodificació més senzilla possible,
de manera que M3 i M4 es trobi a continuació de l’última imatge de M1 i M2 i que
M4 i M5 se situïn al final del mapa.Determini també el nombre de zones imatge de
cada xip.
2
Com hi ha quatre línies que no s’utilitzen en la descodificació (A21, A20, A19 i A18)
resulten en un total de 24=16 zones imatge.
(0,2 punts)
f) Quines adreces ocupa la imatge més altadels blocs M3 i M4?
BC0000H - BFFFFFH
(1,6 punts)
g) Calculeu si es compleixen els requisits dels temps de setup i hold en una operació
de lectura.
Temps de setup
L’instant d’aparició de la dada (tDATA_IN) vindrà donat pel màxim del 4 possibles camins:
camí de l’OE*, camí de les adreces, i els dos camins dels CS de la memòria (CS1* i
CS2). D’aquest 4 temps ens haurem de quedar amb el màxim ( camí més lent – pitjor
cas):
El pitjor cas, camí més lent, és el que passa per CS1*. Per tant:
tcapture - tDATA_IN ≥ tsetup
218,75ns-162,5ns≥5ns -> per tant sí compleix amb el temps de setup.
Temps de hold
(0,4 punts)
h) Dels tres models de memòria que ens dóna el fabricant (55 ns, 70 ns i 100 ns),
quin seria el model de memòria més lent que compliria amb el requisit del temps
de setup i amb quin marge de seguretat?
3
Agafant el pitjor cas (temps CS1*) de l’apartat anterior i substituint tCO1 per 100ns,
encara ens quedaria un marge de seguretat de 6,25ns en l’eqüació que s’ha de
complir per al temps de setup.
4
Descripció dels temps del cronograma de lectura del microprocessador
5
Cronograma de la memòria en una operació de lectura
6
DSBM
31 de Maig de 2017
Data notes provisionals: 9 de Juny
Període al·legacions fins: 16 de Juny
DEPARTAMENT D’ENGINYERIA ELECTRÒNICA
Data notes revisades: 20 de Juny
Informacions addicionals:
• Duració de l’examen: 2h 30m.
• L'examen corregit es podrà veure el dia 14 de Juny al despatx dels professors
Problema 2 (4 punts)
Aquest problema s'ha de respondre en els mateixos fulls del exàmen
Volem programar el senyal CS0* microcontrolador per tal que s’activi en un cert rang
d’adreces. A ixò s ’aconsegueix p rogramant el registre A DDRSEL1 q ue conté el c amp
RGSAD, que té 12 bits. Quan el microcontrolador accedeixi a una adreça que tingui els
bits A23...A12 amb el mateix valor que RGSAD el microcontrolador activarà el senyal
CS0.
a) (0,5 punt s) T enint e n c ompte nom és e l c amp R GSAD, i ndiqueu el nom bre d e
bytes del mapa de memòria del microcontrolador per als que s’activarà el senyal
CS0*.
D’altra banda, per tal de tenir més versatilitat, el microcontrolador té un altre camp en el
registre, RGSZ:
1
que permet que el rang d’adreces per als que s’activi el senyal de CS0* sigui més gran.
Depenent del seu valor només es comparan els bits:
- A23-A12:
- A23-A13:
- ...
- A23
I per tant les mides direccionades seran diferents, tal com indica la taula següent:
b) (1 punt) Indiqueu com s’han de programar els camps RGSAD i RGSZ per tal
que el senyal CS0* s’activi per al rang d’adreces 0x000000 – 0x1FFFFF:
c) (1,5 punts) Feu la descodificació més simple possible per tal que els dos xips de
SRAM pe r t al d’ omplir l ’espai de m emòria di reccionat pe l C S0* que he m
dissenyat a l’apartat anterior.Escolliu si programeu les transferències pel bus de
dades de 8 o 16 bits. Calculeu el nombre de zones imatge, si n’hi ha.
2
La temporització del microcontrolador en lectura és la següent (el senyal ALE no el fem
servir en el nostre disseny).
3
NOTA: 1/(2TCL) = Frequency of CPU clock
4
d) (0,5 punts) Calculeu el temps màxim d’accés de OE* de la memòria si la
freqüència del microcontrolador és 20MHz i els temps d’espera tA, tC i tF són
zero.
5
SOLUCIÓ
Problema 2 (4 punts)
a) (0.5 punt s) T enint e n c ompte nom és e l c amp R GSAD, i ndiqueu e l nom bre de
bytes del mapa de memòria del microcontrolador per als que s’activarà el senyal
CS0*.
b) (1 punt) Indiqueu com s’han de programar els camps RGSAD i RGSZ per tal
que el senyal CS0* s’activi per al rang d’adreces 0x000000 – 0x1FFFFF:
c) (1.5 punts) Feu la descodificació més simple possible per tal que els dos xips de
SRAM p er tal d ’omplir l’ espai d e me mòria d ireccionat p el C S0* q ue h em
dissenyat a l’apartat anterior.Escolliu si programeu les transferències pel bus de
dades de 8 o 16 bits. Calculeu el nombre de zones imatge, si n’hi ha.
Escollim 16bits. No hi ha zones imatge pq A23..A21 estan fixats per RGSAD i RGSZ
6
d) (0.5 punts) Calculeu el temps màxim d’accés de OE* de la memòria si la
freqüència del microcontrolador és 20MHz i els temps d’espera tA, tC i tF són
zero.
7
DSBM Exàmen Final 19 de Gener de 2017
Problema 2 (5 punts)
Aquest problema s'ha de respondre dins dels fulls del enunciat
a) (0.5 punts) Indiqueu l’amplada màxima que tindrà cada bloc de memòria
direccionat per un senyal de Chip Select.
d) (0.5 punts) Indiqueu quins dels paràmetres (TA, RS, RST, RH, WS, WST,
WH i MEWC) hem d’especificar en el nostre cas per tal de definit tots els
temps de la Figura 6-11 anterior. Considereu l’opció EW=0.
NOTA 1: C onsidereu que e l r etard que a fegeixen l es por tes e n una c onnexió, e n c as
d’haver-hi, é s s empre de 5ns , i ndependentment de l nom bre de por tes presents e n e l
camí.
f) (0.5 punts) Es pot garantir que es podran fer correctament les lectures ?
Justifiqueu la resposta.
SEBM
12 de Gener de 2017
Data notes provisionals: 19 Gener
Període al·legacions fins: 23 Gener
DEPARTAMENT D’ENGINYERIA ELECTRÒNICA
Data notes revisades: 25 Gener
Informacions addicionals:
• Duració de l’examen: 2h 30m.
• L'examen corregit es podrà veure el dia 20 de Gener al despatx C4-006 de 11h a 13h
Volem determinar les especificacions temporals requerides pels temps de setup i hold de la
memòria M3 del problema anterior. El cronograma del bus FMC en escriptura es el que s'indica
a la figura següent.
On THCLK es el període del bus extern que en el nostre cas està associat a un freqüència de
20MHz.
Si us cal considerar retard de les portes del circuit de descodificació podeu assumir que el senyal
CS* de M3 s'activarà, com a molt tard, 3ns després de l'activació de les adreces.
1
a) Determineu els requisits que han de complir els temps de setup i hold de la memòria
M3.
b) Determineu ara el mínim temps que el senyal CS* de la memòria M3 estarà actiu
abans de l'instant End Of Write.
2
Problema 2 Solució (2,5 punts)
Volem determinar les especificacions temporals requerides pels temps de setup i hold de la
memòria M3 del problema anterior. El cronograma del bus FMC en escriptura es el que s'indica
a la figura següent.
On THCLK es el període del bus extern que en el nostre cas està associat a un freqüència de
20MHz.
Si us cal considerar retard de les portes del circuit de descodificació podeu assumir que el senyal
CS* de M3 s'activarà, com a molt tard, 3ns després de l'activació de les adreces.
3
a) Determineu els requisits que han de complir els temps de setup i hold de la memòria
M3.
_ ≤ − _
Mirant el cronograma:
_ ≤ ( _ ) + ( ) − ( _ )
_ ≤ ( _ ) + ( ) − ( _ )
_ ≤ − 0.5 + − −2
_ ≤ − 2,5
_ ≤ 50 − 2,5
_ ≤ 47,5
_ ≤ _ −
Mirant el cronograma:
_ ≤ ( _ )
_ ≤ ( _ )
_ ≤ + 0.5
_ ≤ 50 + 0.5
_ ≤ 50,5
4
b) Determineu ara el mínim temps que el senyal CS* de la memòria M3 estarà actiu
abans de l'instant End Of Write.
En el nostre cas EOW es l'instant de la desactivació de NWE, per tant, ens demanen:
= ( ↑ − ↓)
On:
↑ = ( _ ) + ( )
↓ = _ + = ( _ ) +
Per tant:
= ( _ ) + ( ) − ( _ ) −
= ( _ ) + ( ) − ( _ ) −
Posant valors:
= 2 ∙ 50 − 3,5 = 96,5
5
SBM Exàmen Final 20 de Gener de 2017
PROBLEMA 2 (6 punts)
S’ha d issenyat u n s istema b asat en el µC 88C O196EC d’ Intel. A quest m icrocontrolador di sposa de ls
següents senyals:
Els senyals CS2:0* permeten fer la descodificació de memòries sense haver d’afegir cap porta externa i
s’activen quan el microcontrolador fa accessos a determinats rangs de memòria que són configurables per
l’usuari. D’altra banda els senyals BHE* i A0 determinen si la transferència en un cicle de bus és de 8
bits (ja sigui la part alta AD15:8 o baixa del bus AD7:0) o de 16 bits (AD15:0), segons la següent taula:
BHE* A0
0 0 AD15:0 (2 bytes)
0 1 AD15:8 (1 byte)
1 0 AD7:0 (1 byte)
1 1 No possible
Per tal de configurar el rang d’adreces de memòria que generen l’activació d’un senyal CSx* específic, el
microcontrolador fa servir aquest esquema internament:
Per ge nerar cadascun d els s enyals C Sx* ( CS2*, C S1*, C S0*) e s f an s ervir 2 r egistres i nterns de l
microcontrolador: ADDRCOMx i ADDRMSKx, t ots 2 de 16 bi ts, i l ’adreça a l a que el programa vol
accedir (ADDRESS, de 21 bits). Tal i com ho indica la figura anterior, cada senyal CSx* es genera de la
següent manera:
3
COGNOMS: NOM: GRUP:
on ⊕ és l’operació XOR (dóna ‘0’ només quan els bits són iguals), + és l’operació OR, i • és l’operació
AND. Es demana:
a) (0.5 punt s) Si e l r egistre A DDRCOM0= 0x1234 i A DDMSK0= 0xFF00 per qui n r ang d’ adreces
s’activarà CS0* ?
b) (1 punt) Calculeu el nombre de blocs continus de memòria pels que s’activarà el senyal CS0* en
cas que ADDRCOM0=0x1234 i ADDMSK0=0x00FF. Quina mida tindrà cada bloc ?
Es vol di ssenyar un s istema ba sat e n a quest m icrocontrolador que t ingui 256K bytes de R AM e n t otal,
situats a pa rtir de l ’adreça 0x 000000. A t al e fecte, e s di sposa de 2 x ips de 128K x8. Volem fer la
descodificació dels xips amb el senyal CS0*.
d) (2 punts) Completeu la descodificació més senzilla possible de les memòries, fent servir el senyal
CS0*, suposant que ha estat correctament configurat. (2 punts)
4
COGNOMS: NOM: GRUP:
D0-D7 D0-D7
A20:0
A0-A16 A0-A16
AD15:0 OE*
WE*
BHE*
RD*
WR*
80CO196
Nota: Per habilitar els xips de memòria és necessari activar els dos senyals CS1* i CS2* (a nivell baix).
A partir del cronograma de lectura/escriptura del µC 88CO196EC, i de les descripcions dels temps crítics
del microprocessador que hi ha a les taules, es demana:
5
COGNOMS: NOM: GRUP:
e) (0.5 punts) Feu una estimació del temps de setup del bus de dades en lectura del microcontrolador.
6
COGNOMS: NOM: GRUP:
f) (1.5 punts) El temps d’accés de les memòries des d’adredeces, CS1* o CS2* és tAA=tCO=80ns i des
de OE* és de t OE=60ns. Determineu la freqüència màxima de funcionament del microcontrolador
per tal que les lectures a memòria siguin correctes (f=1/t=2/TCLCL). (2 punts)
Indiqueu el nom bre de bi ts d’ adreces de l bus e xtern que s erà ne cessari pe r t al de direccionar el r ang
d’adreces corresponent a cad a ch ip s elect que genera el m icrocontrolador. Suposeu q ue e l
microcontrolador pot ser configurat per fer accessos de 8 o 16 bits de dades. Justifiqueu la resposta.
7
Nom i Cognoms: Grup:
SBM
6 de Juny 2016
Data notes provisionals: 13 Juny
Període d’al·legacions: 14 Juny
DEPARTAMENT D’ENGINYERIA ELECTRÒNICA
Data notes revisades: 15 Juny
Informacions addicionals:
• Duració de l’examen: 2h 30 min.
• Justifiqueu TOTES les respostes
PROBLEMA 1: (6 punts)
La descripció del funcionament del latch que trobem al seu datasheet és:
El símbol:
Quan A=1, els punts X i Y estan connectats. Quan A=0, els punts X i Y estan en circuit obert.
b) (2 punts) Feu la descodificació més senzilla possible de les memòries RAM. Calculeu
el nombre de zones imatge.
e) (1 punt) Calculeu el temps màxim d’accés de CS* de la memòria RAM (tCS), en les
mateixes condicions que l’apartat anterior.
SEBM
6 de Juny de 2016
Data notes provisionals: 13 de Juny
Període al·legacions fins: 16 de Juny
DEPARTAMENT D’ENGINYERIA ELECTRÒNICA
Data notes revisades: 20 de Juny
Informacions addicionals:
• Duració de l’examen: 2h 30m.
• L'examen corregit es podrà veure el dia 14 de Juny de 11h a 13h al despatx C4-006
Problema 1 (5 punts)
PMA 22:16 : Part alta A22:16 del bus d'adreces durant tot el cicle
PMD 7:0 : Bus multiplexat entre dades i adreces
Pot contenir: Part baixa del bus d'adreces A7..A0
Part mitja del bus d'adreces A15..A8
Bus de dades A7..A0
PMALL : Address Latch Strobe dels bits 7..0 del bus d'adreces a PMD
PMALH : Address Latch Strobe dels bits 15..8 del bus d'adreces a PMD
PMRD : Strobe de lectura, actiu a nivell alt
PMWR : Strobe d'escriptura, actiu a nivell alt
1
Observeu que les línies PMA22:16 mostren la part alta del bus d'adreces A22:16 durant tot el
cicle, mentre que les línies PMD7:0 contenen A7:0, després A15:8 i, finalment, actuen com bus
de dades en lectura.
Per poder fer servir memòries externes amb el sistema, proposem un c ircuit basat en dos latch
de t ipus 3 73 que capturen, o de multiplexen, les a dreces A 7:0 i A 15:8 fent se rvir el s senyals
strobe PMALL i PMALH. Els latch treuen per Out0..7 el contingut de l'entrada In0..7 quan LE
es alt i mantenen el últim valor present a la sortida quan LE es baix.
PIC32F
A22..A16
PMA 22..16 Latch 373
PMALL LE
PMALH OE
Latch 373
PMWR LE
PMRD OE
D7..D0
A partir d'aquest moment pode m f er servir els noms A22..A0 i D7..D0 com el s associats a l a
part dreta de la figura anterior.
La següent figura mostra el comportament temporal del latch. En el nostre cas concret tenim un
temps de setup mínim tS de 4ns, un temps de hold mínim tH de 1ns i un retard de propagació td
acotat entre 2ns (mínim) i 9ns (màxim).
ts
th
In0..7 NV Valid NV
LE
Out0..7 NV Valid
td
Figura 3 - Cronograma del Latch
2
El bus extern es v isible al m apa de m emòria al Extended Data Space (EDS). La m anera
d'accedir a aquesta memòria es complicada per tant, a efectes d'aquest problema, considerarem
que el E DS es un mapa i ndependent de l de la C PU que pot enc abir totes l es posicions
associades a les 23 línies d'adreces A22..A0.
(0,25 punts)
a) Determineu la mida del mapa associat al EDS en Bytes.
Al sistema volem afegir 128kB de memòria en forma de dos chips de RAM de 64kB.
D0...D7 D0...D7
A0... A0...
RAM1 RAM2
OE OE
64kB 64kB
WE WE
CS CS
Volem que aquestes memòries siguin visibles des de la posició 20000h del mapa EDS i que no
s'ocupi cap espai per sota d'aquesta adreça. També volem que, complint la restricció anterior, el
sistema f aci se rvir el mínim de l ínies de di reccions en la de scodificació. Per i mplementar l a
descodificació farem servir només portes OR, de qualsevol nombre de entrades, i inversors. A
més, els senyals que es mouen entre el MCU o els latch, i la memòria RAM, han de travessar,
com a màxim, un inversor i una porta OR.
(0,5 punts)
b) Determineu el nombre de línies de direccions de cada xip de memòria. Determineu
també la última posició associada a la primera imatge dels xips de RAM.
1B
64kB = 216 B = 2n pos n = 16 A0 … A15
pos
(1,25 punts)
c) Feu una proposta de descodificació pels xips de RAM e implementeu-la. Podeu fer el
dibuix a sobre de la figura 4.
3
Taula de descodificació completa:
Volem simplificar la descodificació però no volem que hi hagi cap imatge per sota de 2000h
Per tant:
RAM1 RAM2
PMRD OE OE PMRD
64kB 64kB
WE WE
PMWR PMWR
CS CS
A16 A16
A17
A17
(1 punt)
d) Dibuixeu el mapa de memòria del EDS des de la primera posició fins a mostrar dues
imatges dels xips de RAM. Quantes imatges tindrem en total per cada xip de RAM?
El espai EDS te 8MB = 223B per tant calen sis dígits hexadecimals
4
0x07 FFFF
RAM2
0x07 0000
RAM1
0x06 0000
0x03 FFFF
RAM2
0x03 0000
RAM1
0x02 0000
0x00 0000
(1,5 punts)
e) Obteniu els requisits que han de complir els tres temps anteriors: tAA, tACE i tDOE.
En aquest cas, els temps que tenim son deterministes ja que la freqüència de rellotge te un valor
únic possible, per tant:
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑉𝑉 ≤ 𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 − 𝑡𝑡𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 𝑀𝑀𝑀𝑀𝑀𝑀
5
Mirem el camí necessari per tenir una dada vàlida:
La dada no pot ser vàlida fins que surti de l'últim latch que es carrega. Aquest correspon a
A15:8 i te també associat el retard de propagació del latch.
7 ∙ 𝑇𝑇𝐶𝐶𝐶𝐶
𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 _𝑉𝑉 = + 𝑡𝑡𝑑𝑑 𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 ℎ
4
El f lanc de baixada de C S* depèn també de l es da des. No ens cal, però, tenir totes les dades
vàlides per validar CS*. A tots dos xips es fa servir A16 i A17 que son vàlides des de temps 0.
Finalment sabem que, a tots dos xips, hi ha un inversor al menys en una de les entrades A16 o
A17. Per tant:
𝑡𝑡����
𝐶𝐶𝐶𝐶 ↓ = 𝑡𝑡𝐼𝐼𝐼𝐼𝐼𝐼 + 𝑡𝑡𝑂𝑂𝑂𝑂
10 ∙ 𝑇𝑇𝐶𝐶𝐶𝐶
𝑡𝑡𝑂𝑂𝑂𝑂
���� ↓ = 𝑡𝑡𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃↑ + 𝑡𝑡𝐼𝐼𝐼𝐼𝐼𝐼 = + 𝑡𝑡𝐼𝐼𝐼𝐼𝐼𝐼
4
En definitiva tenim:
7 ∙ 𝑇𝑇𝐶𝐶𝐶𝐶
⎧ + 𝑡𝑡𝑑𝑑 𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 ℎ + 𝑡𝑡𝐴𝐴𝐴𝐴
⎪ 4
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑉𝑉 = 𝑚𝑚𝑚𝑚𝑚𝑚 𝑡𝑡𝐼𝐼𝐼𝐼𝐼𝐼 + 𝑡𝑡𝑂𝑂𝑂𝑂 + 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴
⎨10 ∙ 𝑇𝑇𝐶𝐶𝐶𝐶
⎪ + 𝑡𝑡𝐼𝐼𝐼𝐼𝐼𝐼 + 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷
⎩ 4
Per t robar e ls v alor que h an de c omplir t AA, t ACE i t DOE mirem el s cam ins que i nclouen cada
temps i apliquem el requisit que hem calculat per tData_V.
Restricció de tAA:
7 ∙ 𝑇𝑇𝐶𝐶𝐶𝐶
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑉𝑉 = + 𝑡𝑡𝑑𝑑 𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 ℎ + 𝑡𝑡𝐴𝐴𝐴𝐴 ≤ 183.1𝑛𝑛𝑛𝑛
4
El cas pitjor serà:
7 ∙ 𝑇𝑇𝐶𝐶𝐶𝐶
𝑚𝑚𝑚𝑚𝑚𝑚 � + 𝑡𝑡𝑑𝑑 𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 ℎ + 𝑡𝑡𝐴𝐴𝐴𝐴 � ≤ 𝑚𝑚𝑚𝑚𝑚𝑚(183.1𝑛𝑛𝑠𝑠)
4
7 ∙ 𝑇𝑇𝐶𝐶𝐶𝐶
+ 𝑡𝑡𝑑𝑑 𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 ℎ 𝑀𝑀𝑀𝑀𝑀𝑀 + 𝑡𝑡𝐴𝐴𝐴𝐴 𝑀𝑀𝑀𝑀𝑀𝑀 ≤ 183.1𝑛𝑛𝑛𝑛
4
Per tant:
7 ∙ 𝑇𝑇𝐶𝐶𝐶𝐶
𝑡𝑡𝐴𝐴𝐴𝐴 𝑀𝑀𝑀𝑀𝑀𝑀 ≤ 183.1𝑛𝑛𝑛𝑛 − − 𝑡𝑡𝑑𝑑 𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 ℎ 𝑀𝑀𝑀𝑀𝑀𝑀
4
Numèricament:
7 ∙ 62.5𝑛𝑛𝑛𝑛
𝑡𝑡𝐴𝐴𝐴𝐴 𝑀𝑀𝑀𝑀𝑀𝑀 ≤ 183.1𝑛𝑛𝑛𝑛 − − 9𝑛𝑛𝑛𝑛
4
6
Restricció de tACE:
𝑇𝑇𝐶𝐶𝐶𝐶
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑉𝑉 = + 𝑡𝑡𝐼𝐼𝐼𝐼𝐼𝐼 + 𝑡𝑡𝑂𝑂𝑂𝑂 + 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 ≤ 183.1𝑛𝑛𝑛𝑛
4
Per tant:
𝑇𝑇𝐶𝐶𝐶𝐶
𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 𝑀𝑀𝑀𝑀𝑀𝑀 ≤ 183.1𝑛𝑛𝑛𝑛 − − 𝑡𝑡𝐼𝐼𝐼𝐼𝐼𝐼 𝑀𝑀𝑀𝑀𝑀𝑀 − 𝑡𝑡𝑂𝑂𝑂𝑂 𝑀𝑀𝑀𝑀𝑀𝑀
4
Numèricament:
𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 𝑀𝑀𝑀𝑀𝑀𝑀 ≤ 183.1𝑛𝑛𝑛𝑛 − 15.63𝑛𝑛𝑛𝑛 − 5𝑛𝑛𝑛𝑛 − 8𝑛𝑛𝑛𝑛
Restricció de tDOE:
10 ∙ 𝑇𝑇𝐶𝐶𝐶𝐶
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑉𝑉 = + 𝑡𝑡𝐼𝐼𝐼𝐼𝐼𝐼 + 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 ≤ 183.1𝑛𝑛𝑛𝑛
4
Numèricament:
10 ∙ 62.5𝑛𝑛𝑛𝑛
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 𝑀𝑀𝑀𝑀𝑀𝑀 ≤ 183.1𝑛𝑛𝑛𝑛 − − 5𝑛𝑛𝑛𝑛
4
(0,5 punts)
f) Demostreu que es compleixen els temps de setup i hold dels dos latch.
Tenim dos latch. Començarem pel cas de latch que captura A0..A7 amb PMALL
7
Fent servir el cronograma:
Per tant:
4 ∙ 𝑇𝑇𝐶𝐶𝐶𝐶 3 ∙ 𝑇𝑇𝐶𝐶𝐶𝐶
− ≥ 𝑡𝑡𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 𝑀𝑀𝑀𝑀𝑀𝑀
4 4
𝑇𝑇𝐶𝐶𝐶𝐶
≥ 𝑡𝑡𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 𝑀𝑀𝑀𝑀𝑀𝑀
4
Els temps son deterministes, per tant, no cal mirar el cas pitjor.
62.5𝑛𝑛𝑛𝑛
≥ 4𝑛𝑛𝑛𝑛
4
En el cas del latch que captura A8..A15 els temps son diferents però les la diferència es també
de 1/4 de cicle, per tant el càlcul dona el mateix resultat.
En aquest cas, el càlcul pel segon latch dona diferencies de temps diferents:
10 ∙ 𝑇𝑇𝐶𝐶𝐶𝐶 8 ∙ 𝑇𝑇𝐶𝐶𝐶𝐶
− ≥ 𝑡𝑡𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 𝑀𝑀𝑀𝑀𝑀𝑀
4 4
𝑇𝑇𝐶𝐶𝐶𝐶
≥ 𝑡𝑡𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 𝑀𝑀𝑀𝑀𝑀𝑀
2
8
SEBM (Grupo 10) Control Parcial 18 de Mayo de 2015
Nombre:
Este procesador se conecta a m emorias RAM y ROM externas usando el GPMC empleando el
siguiente diagrama de conexionado.
nOE OE nOE OE
CS CS CS
A26
A26 nBE0 nBE1 nCS
nCS
Como se observa, para minimizar los efectos de carga, se han añadido buffers Buf1 y Buf2 a los
buses de direcciones tanto en los chips de RAM como de ROM. Estos buffers, sin embargo, no
afectan a los circuitos de decodificación que generan las señales CS*.
Consideraremos los siguientes retardos máximos para las puertas del esquema:
Los tiempos de setup y hold mínimos en lectura son ambos de un ciclo del reloj FCLK.
A partir de l a i nformación anterior deseamos saber si una memoria ROM que di sponemos
funcionará correctamente en lectura con este sistema. Los datos de esta memoria son:
(3,5 Puntos)
a) Determine si se cumplirá el tiempo de Setup en lectura. Determine cuanto puede
aumentar el retardo en el camino crítico antes de que deje de cumplirse el requisito de
Setup.
𝑡𝑡𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 𝑀𝑀𝑀𝑀𝑀𝑀 = 𝑇𝑇
Nos queda, por tanto, hallar t Data_Valid que corresponde al momento en que los datos son bálidos
en la entrada de la C PU. El bus de datos de l a memoria está directamente conectado al de la
CPU por lo que los datos son válidos en la entrada de la CPU cuando los son a la salida de la
memoria:
La salida nOE de la CPU se conecta directamente con OE* de la memoria, por tanto:
La entrada CS* de la memoria se genera usando tanto el bus de direcciones, sin el buffer Buf2,
como la señal nCS de la CPU, por tanto:
0 + 𝑡𝑡𝐼𝐼𝐼𝐼𝐼𝐼
����↓ = 𝑡𝑡𝑂𝑂𝑂𝑂 + 𝑚𝑚𝑚𝑚𝑚𝑚 �
𝑡𝑡𝐶𝐶𝐶𝐶
𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶
De ello:
𝑡𝑡𝐼𝐼𝐼𝐼𝐼𝐼
𝑡𝑡����
𝐶𝐶𝐶𝐶 ↓ = 𝑡𝑡𝑂𝑂𝑂𝑂 + 𝑚𝑚𝑚𝑚𝑚𝑚 �
𝑇𝑇
𝑡𝑡𝐴𝐴𝐴𝐴 + 𝑡𝑡𝐵𝐵𝐵𝐵𝐵𝐵 2
𝑡𝑡
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 𝑎𝑎_𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 = 𝑚𝑚𝑚𝑚𝑚𝑚 �𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 + 𝑡𝑡𝑂𝑂𝑂𝑂 + 𝑚𝑚𝑚𝑚𝑚𝑚 � 𝐼𝐼𝐼𝐼𝐼𝐼
𝑇𝑇
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 + 3𝑇𝑇
Una vez identificados todos los elementos asociados al requisito del tiempo de setup, podemos
hallar el caso peor:
25𝑛𝑛𝑛𝑛 + 10𝑛𝑛𝑛𝑛
10𝑛𝑛𝑛𝑛
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 𝑎𝑎 𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 𝑀𝑀𝑀𝑀𝑀𝑀 = 𝑚𝑚𝑚𝑚𝑚𝑚 �30𝑛𝑛𝑛𝑛 + 15𝑛𝑛𝑛𝑛 + 𝑚𝑚𝑚𝑚𝑚𝑚 �
10𝑛𝑛𝑛𝑛
10𝑛𝑛𝑛𝑛 + 30𝑛𝑛𝑛𝑛
De ello:
35𝑛𝑛𝑛𝑛
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 𝑎𝑎 𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 𝑀𝑀𝑀𝑀𝑀𝑀 = 𝑚𝑚𝑚𝑚𝑚𝑚 �55𝑛𝑛𝑛𝑛 = 55𝑛𝑛𝑛𝑛
40𝑛𝑛𝑛𝑛
35𝑛𝑛𝑛𝑛 ≥ 10𝑛𝑛𝑛𝑛
Adicionalmente, la expresión tiene una holgura de 25ns que es justo lo que puede aumentar el
retardo en el camino crítico antes de que deje de cumplirse el requisito del tiempo de setup.
(1,5 Puntos)
b) Determine, de manera razonada, si se cumplirá el tiempo de Hold en lectura.
𝑡𝑡𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 𝑀𝑀𝑀𝑀𝑀𝑀 = 𝑇𝑇
De ello:
El dato dejará de ser válido un tiempo después de que se invaliden las entradas de la memoria.
Ahora bien, no hay ninguna salida de la CPU que actúe sobre las entradas de la memoria que se
invalide antes del instante 10T. Tanto nOE como nCS se invalidan justo en 10T, por lo que por
simple causalidad se puede saber que el requisito del tiempo de hold se cumplirá siempre.
La siguiente figura muestra el cronograma del mismo procesador en el los ciclos de escritura.
Nuevamente las posiciones de los cambios de las señales se hallan en múltiplos del período de
reloj FCLK de 100MHz.
Deseamos ahora determinar las características que tienen que tener las memorias RAM para
funcionar correctamente en los ciclos de escritura.
(3,5 Puntos)
c) Determine el máximo valor que pueden tener el requisito de tiempo de Setup de la
memoria para que el sistema funcione correctamente. Determine también cual es el
mínimo tiempo que estarán activas las entradas WE* y CS* de la memoria antes del
instante EOW.
𝑡𝑡����
𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸 = 𝑚𝑚𝑚𝑚𝑚𝑚 �𝑡𝑡𝐶𝐶𝐶𝐶 ↑
����� ↑
𝑊𝑊𝑊𝑊
Donde:
𝑡𝑡𝑛𝑛𝑛𝑛𝑛𝑛 ↑
𝐶𝐶𝐶𝐶 ↑ = 𝑡𝑡𝑂𝑂𝑂𝑂 + 𝑚𝑚𝑚𝑚𝑚𝑚 �𝑡𝑡
𝑡𝑡���� + 𝑡𝑡
𝐼𝐼𝐼𝐼𝐼𝐼 𝐴𝐴𝐴𝐴𝐴𝐴 _𝑁𝑁𝑁𝑁
El cronograma no indica cuando la dirección deja de ser válida pero sí cuando nCS pasa a tener
nivel alto, por tanto:
𝑡𝑡𝑂𝑂𝑂𝑂 + 10𝑇𝑇
𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸 = 𝑚𝑚𝑚𝑚𝑚𝑚 � = 9𝑇𝑇
9𝑇𝑇
Sabemos que el dato es válido desde el inicio del ciclo (t=0), por tanto:
Se puede argumentar que no tiene sentido definir un tiempo de setup que exceda el tiempo en
que se halla CS* activo antes de EOW. Ello significa que, a efectos prácticos, el tiempo de setup
no será el requisito crítico en el cálculo de la temporización de escritura de la memoria.
Para saber cuánto tiempo está activo WE* antes de EOW, podemos definir este tiempo como
tCS_EOW y calcularlo sabiendo que WE* coincide con nWE:
A26
nCS
(1,5 Puntos)
d) Determine si esta modificación afecta a los resultados del apartado a) y de qué modo.
Razone si podemos garantizar que se cumplirá el tiempo de Hold en lectura.
Ahora hemos de tener en cuenta el tiempo desde la activación de nOE en 3T hasta que tenemos
salida válida en el buffer y el retardo de propagación del propio buffer:
25𝑛𝑛𝑛𝑛 ≥ 10𝑛𝑛𝑛𝑛
Sigue cumpliéndose el tiempo de setup pero ahora nuestra holgura es de sólo 15ns.
Informacions addicionals:
• Duració de l’examen: 2h 30m.
• L'examen corregit es podrà veure el dia 19 de Gener de 10h a 13h al despatx C4-006
Problema
Volem dissenyar un generador de senyal digital periòdica programable capaç de generar senyals
amb amplades de banda de fins a 10MHz amb 10 bi ts de resolució. Per complir amb els criteri
de Nyquist hem de generar les mostres de sortida a una freqüència de 20MHz.
Les mostres l es generarem amb un DAC ( Digital t o Analog C onverter) A D9760-50 d'Analog
Devices. Tot el sistema es desenvolupa amb un microcontrolador (MCU) PSOC5 de Cypress.
Malauradament aquest MCU no pot generar sortides a la velocitat requerida. Es per això que em
fet un disseny basat en una memòria SRAM externa de doble port CY7C028 també de Cypress.
Mitjançant el MCU escriurem les dades a la memòria externa les quals seran llegides pel DAC
durant la generació del senyal de sortida.
PSOC5 CY7C028
D0...D15 Port L Port R
CE CE
Per part del MCU fem servir el seu bus extern que te 16 línies de dades i 24 de direccions i que
permet veure la memòria a partir de la direcció 0x6000 0000 del mapa de la CPU. El senyal
CEn s'activa, a nivell baix, en tots els accessos que fan servir el bus extern i els senyals OEn i
WEn s'activen, també a n ivell b aix, en els ac cessos de l ectura i escriptura respectivament.
Observeu que el MCU no te strobes de carrer. Això es degut a que el MCU PSOC5 no pot fer
accés a by tes i ndependents quan el bus extern es de 16 bits. Per tant, no farem ser vir t ampoc
strobes de carrer a la memòria.
1
Abans d e c ontinuar el di sseny, v olem v erificar que la connexió e ntre l a C PU i la m emòria
compleix els requisits temporals. Per simplificar, només analitzarem el funcionament en lectura.
La següent figura mostra el cronograma de la CPU en els cicles de lectura.
2
El circuit de descodificació dissenyat l 'apartat c) suposarem que pot t enir un r etard màxim de
10ns per qualsevol sortida connectada amb una entrada mitjançant portes digitals.
(1 punt)
d) Determineu els màxims valors que podrien tenir els temps tAA, tDOE i tACE del
cronograma de la memòria per tal de complir amb el tems de setup de la CPU.
Posant valors:
𝑡𝑡𝐴𝐴𝐴𝐴 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 0 + 2𝑇𝑇 − 5𝑛𝑛𝑛𝑛 − 𝑇𝑇 − 15𝑛𝑛𝑛𝑛
1
𝑇𝑇 = = 62,5𝑛𝑛𝑛𝑛
16𝑀𝑀𝑀𝑀𝑀𝑀
Finalment:
𝑡𝑡𝐴𝐴𝐴𝐴 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 62,5𝑛𝑛𝑛𝑛 − 20𝑛𝑛𝑛𝑛
3
El cas pitjor serà:
𝑇𝑇𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 𝑇𝑇𝑜𝑜𝑜𝑜𝑜𝑜 𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 𝑚𝑚𝑚𝑚𝑚𝑚
Finalment:
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 𝑇𝑇𝑜𝑜𝑜𝑜𝑜𝑜 𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑇𝑇𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑 𝑚𝑚𝑚𝑚𝑚𝑚
Posant valors:
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 2𝑇𝑇 − 5𝑛𝑛𝑛𝑛 − 𝑇𝑇 − 15𝑛𝑛𝑛𝑛
𝑇𝑇𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 −𝑂𝑂𝑂𝑂𝑂𝑂 𝑚𝑚𝑚𝑚𝑚𝑚 + 𝑇𝑇𝑜𝑜𝑜𝑜𝑜𝑜 𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 𝑚𝑚𝑚𝑚𝑚𝑚
Finalment:
𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 −𝑂𝑂𝑂𝑂𝑂𝑂 𝑚𝑚𝑚𝑚𝑚𝑚 + 𝑇𝑇𝑜𝑜𝑜𝑜𝑜𝑜 𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑇𝑇𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑 𝑚𝑚𝑚𝑚𝑚𝑚
Posant valors:
4
PSOC5 CY7C028
D0...D15 Port L Port R AD9760
D0..D15 D0..D15 D0..D9 DAC Out
A1..A24
Counter
WEn A0..A15 A0..A15 C0..C15
OEn CLK2
WE WE "H"
CEn CLK1
OE OE "L"
RUNn
CE CE RUNn
CLK1
CLK2
Per escombrar tots els valor de sortida que ha de generar el DAC, i que estan dins la memòria,
farem ser vir un comptador de 16 bits qu e conn ectarem t ambé al por t R de la memòria. Les
entrades WE* i OE* del port R les deixarem fixes ja que e l DAC només opera llegint la
memòria.
Els senyal RUNn que posa en marxa l'escombrat de la memòria activant CS i els senyals CLK1
i C LK2 els g enerarem a mb el m ateix MCU P SOC5. Els dos r ellotges C LK1 i C LK2 tenen
exactament l a m ateixa f reqüència de 2 0MHz i t enen f ases op osades tal i com es m ostra a l a
figura següent. El seu cicle de treball es del 50% (mateix temps alt que baix).
Pel senyal RUNn no ens hem de preocupar per que es genera amb prou temps abans de arrencar
els rellotges.
RUNn
CLK1
CLK2
C0..C15
D0..D9
Pel que fa a la memòria en lectura, el temps d'accés de direccions tAA de la memòria entre canvis
de les direccions i canvis de las sortides sabem que està acotat per un valor màxim de 15ns.
(1 punt)
5
e) Determineu, pel comptador, el màxim retard que pot haver entre el flanc de pujada
de CLK1 i l'aparició del següent valor de sortida del comptador si volem garantir que
es compleixi el temps de setup del DAC. Pot ser viable el sistema?
𝑇𝑇
𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶2↑ = 𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶1↑ +
2
Ajuntant-ho tot:
𝑇𝑇
𝑡𝑡𝑆𝑆𝑆𝑆 𝐷𝐷𝐷𝐷𝐷𝐷 ≤ 𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶1↑ + − (𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶1↑ + 𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 + 𝑡𝑡𝐴𝐴𝐴𝐴 )
2
Per tant:
𝑇𝑇
𝑡𝑡𝑆𝑆𝑆𝑆 𝐷𝐷𝐷𝐷𝐷𝐷 ≤ − 𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 − 𝑡𝑡𝐴𝐴𝐴𝐴
2
Cas pitjor:
𝑇𝑇
𝑡𝑡𝑆𝑆𝑆𝑆 𝐷𝐷𝐷𝐷𝐷𝐷 ≤ − 𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑡𝑡𝐴𝐴𝐴𝐴 𝑚𝑚𝑚𝑚𝑚𝑚
2
6
SEBM (Grupo 20) Control Parcial 2 de Diciembre de 2015
Nombre:
En este sistema, tenemos tres memorias, una memoria flash NOR que, a efectos prácticos opera
como una memoria ROM y dos memorias SRAM. Las conexiones entre la CPU y las memorias
son las que se muestran a continuación:
SRAM 1 SRAM 2
NBL0 NBL1
NE1
Para cada puerta OR, supondremos que su retardo de propagación está comprendido entre 2ns y
6ns.
El cronograma de la CPU en lectura es:
El reloj principal del MCU, HCLK, usado para estas temporizaciones ha sido ajustado a 24MHz
El cronograma de la CPU en escritura es:
(4 Puntos)
a) Determine qué requisitos ha de cumplir los tiempos tAVQV, tELQV y tGLQVpara
garantizar que se cumple con el tiempo de setup de la CPU.
Podemos ver en la tabla que este tiempo, efectivamente, está especificado como tiempo mínimo.
No ha y que olvidar qu e e n l a e xpresión d e l a inecuación se ha d e poner como v alor mínimo
dado que es un requisito.
tAVQV es el tiempo desde que la memoria recibe las direcciones hasta que proporciona un dato
válido. Las di recciones se ha llan directamente conectadas en tre la m emoria y el MC U.
Sabemos, por el cronograma de la CPU, cuando son válidas las direcciones, por tanto:
Por tanto:
Resolvemos ahora el caso de tELQV. Éste es el tiempo desde se activa la señal E* hasta que se
proporciona un dato válido. Las señal E* se halla conectada tanto a la línea de direcciones A19
como a l c hip select N E1. Por t anto, la señalización de E* ( flanco d e ba jada) requerirá de l a
activación de las dos señales:
𝑡𝑡
𝑡𝑡𝐸𝐸� ↓ = 𝑡𝑡𝑂𝑂𝑂𝑂 + 𝑚𝑚𝑚𝑚𝑚𝑚 � 𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 _𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉
𝑡𝑡 𝑁𝑁𝑁𝑁1↓
A partir de este punto, la memoria responderá con su tiempo tELQV, por tanto:
𝑡𝑡
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 = 𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸 + 𝑡𝑡𝑂𝑂𝑂𝑂 + 𝑚𝑚𝑚𝑚𝑚𝑚 �𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 _𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉
𝑁𝑁𝑁𝑁1↓
𝑡𝑡
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 = 𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸 + 𝑡𝑡𝑂𝑂𝑂𝑂 + 𝑚𝑚𝑚𝑚𝑚𝑚 � 𝑉𝑉(𝐴𝐴_𝑁𝑁𝑁𝑁)
0
La expresión a cumplir sigue siendo:
De ello:
𝑡𝑡𝑉𝑉(𝐴𝐴_𝑁𝑁𝑁𝑁)
𝑡𝑡𝑉𝑉(𝑁𝑁𝑁𝑁𝑁𝑁_𝑁𝑁𝑁𝑁) + 𝑡𝑡𝑤𝑤 (𝑁𝑁𝑁𝑁𝑁𝑁 ) − 𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸 − 𝑡𝑡𝑂𝑂𝑂𝑂 − 𝑚𝑚𝑚𝑚𝑚𝑚 � ≥ 𝑡𝑡𝑆𝑆𝑆𝑆(𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑁𝑁𝑁𝑁𝑁𝑁 ) 𝑀𝑀𝑀𝑀𝑀𝑀
0
𝑡𝑡𝑉𝑉(𝐴𝐴_𝑁𝑁𝑁𝑁)
𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸 ≤ 𝑡𝑡𝑉𝑉(𝑁𝑁𝑁𝑁𝑁𝑁_𝑁𝑁𝑁𝑁) + 𝑡𝑡𝑤𝑤 (𝑁𝑁𝑁𝑁𝑁𝑁 ) − 𝑡𝑡𝑂𝑂𝑂𝑂 − 𝑡𝑡𝑆𝑆𝑆𝑆(𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑁𝑁𝑁𝑁𝑁𝑁) 𝑀𝑀𝑀𝑀𝑀𝑀 − 𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚 �
0
𝑡𝑡
𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸 ≤ 𝑡𝑡𝑉𝑉(𝑁𝑁𝑁𝑁𝑁𝑁_𝑁𝑁𝑁𝑁)𝑀𝑀𝑀𝑀𝑀𝑀 + 𝑡𝑡𝑤𝑤 (𝑁𝑁𝑁𝑁𝑁𝑁 )𝑀𝑀𝑀𝑀𝑀𝑀 − 𝑡𝑡𝑂𝑂𝑂𝑂 𝑀𝑀𝑀𝑀𝑀𝑀 − 𝑡𝑡𝑆𝑆𝑆𝑆(𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑁𝑁𝑁𝑁𝑁𝑁 ) 𝑀𝑀𝑀𝑀𝑀𝑀 − 𝑚𝑚𝑚𝑚𝑚𝑚 � 𝑉𝑉(𝐴𝐴_𝑁𝑁𝑁𝑁) 𝑀𝑀𝑀𝑀𝑀𝑀
0
𝑡𝑡𝑉𝑉(𝑁𝑁𝑁𝑁𝑁𝑁_𝑁𝑁𝑁𝑁)𝑀𝑀𝑀𝑀𝑀𝑀 = 0,5𝑛𝑛𝑛𝑛
𝑡𝑡𝑤𝑤 (𝑁𝑁𝑁𝑁𝑁𝑁) 𝑀𝑀𝑀𝑀𝑀𝑀 = 206,9𝑛𝑛𝑛𝑛
𝑡𝑡𝑆𝑆𝑆𝑆(𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑁𝑁𝑁𝑁𝑁𝑁 ) 𝑀𝑀𝑀𝑀𝑀𝑀 = 108,3𝑛𝑛𝑛𝑛
𝑡𝑡𝑉𝑉(𝐴𝐴_𝑁𝑁𝑁𝑁) 𝑀𝑀𝑀𝑀𝑀𝑀 = 0
Resolvemos finalmente el caso de tGLQV. Éste es el tiempo desde se ac tiva la señal G* hasta
que se p roporciona u n dato válido. Las señ al G * se ha lla di rectamente a l a salida N OE de l
MCU. Por tanto:
𝑡𝑡𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺 ≤ 98,6𝑛𝑛𝑛𝑛
Los cálculos en lectura para las memorias SRAM son similares por lo que no los calcularemos.
Si que nos i nteresa, sin embargo, determinar los requisitos en escritura para l os dos chips
SRAM. Para estas memorias tenemos el cronograma siguiente:
Obsérvese que la memoria tiene dos entradas de tipo Chip Select, una señal CS1* activa baja y
otra señal CS2 activa alta.
(3 Puntos)
b) Calcule lo más pronto y lo más tarde que se puede dar el instante End of Write (EOW)
para las SRAM conectadas al MCU. Considere como origen de tiempos el inicio del
ciclo de bus de la CPU (bajada de NE1).
𝑡𝑡𝐶𝐶𝐶𝐶1
�����↑
𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸 𝑡𝑡
= 𝑚𝑚𝑚𝑚𝑚𝑚 � 𝐶𝐶𝐶𝐶2↓
𝑡𝑡𝑊𝑊𝑊𝑊
����� ↑
Estos tiempos se pueden obtener a partir del cronograma de la CPU y de los elementos que hay
entre és ta y l as m emorias. E n el caso de WE *, ésta se ha lla con ectada a la sa lida N WE d el
MCU, por tanto:
Para el caso de CS1* podemos ver que esta señal depende de NE1 y de NBL0 o NBL1 según la
memoria sea SRAM 1 o SRAM 2. De ello:
Para el caso de CS2, ésta se halla conectada al bus de direcciones por lo que:
De ello tenemos:
𝑡𝑡𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁 ↑ = 𝑡𝑡𝑉𝑉(𝑁𝑁𝑁𝑁_𝑁𝑁𝑁𝑁) + 𝑡𝑡𝑊𝑊(𝑁𝑁𝑁𝑁𝑁𝑁) + 𝑡𝑡ℎ(𝐵𝐵𝐵𝐵_𝑁𝑁𝑁𝑁𝑁𝑁)
⎧𝑡𝑡𝐶𝐶𝐶𝐶1
�����↑ = 𝑚𝑚𝑚𝑚𝑚𝑚 �
𝑡𝑡 = 𝑡𝑡
𝑁𝑁𝑁𝑁1↑ 𝑊𝑊(𝑁𝑁𝑁𝑁)
𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸 = 𝑚𝑚𝑚𝑚𝑚𝑚 𝑡𝑡
⎨ 𝐶𝐶𝐶𝐶2↓ = 𝑡𝑡𝑉𝑉(𝑁𝑁𝑁𝑁𝑁𝑁_𝑁𝑁𝑁𝑁) + 𝑡𝑡𝑊𝑊(𝑁𝑁𝑁𝑁𝑁𝑁) + 𝑡𝑡ℎ(𝐴𝐴_𝑁𝑁𝑁𝑁𝑁𝑁)
⎩𝑡𝑡𝑊𝑊𝑊𝑊
����� ↑ = 𝑡𝑡𝑉𝑉(𝑁𝑁𝑁𝑁𝑁𝑁_𝑁𝑁𝑁𝑁) + 𝑡𝑡𝑊𝑊(𝑁𝑁𝑁𝑁𝑁𝑁 )
Se observa que muchos tiempos se repiten por lo que la expresión se puede compactar:
𝑡𝑡𝑊𝑊(𝑁𝑁𝑁𝑁)
⎧
0
𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸 = 𝑚𝑚𝑚𝑚𝑚𝑚
⎨𝑡𝑡𝑉𝑉(𝑁𝑁𝑁𝑁𝑁𝑁_𝑁𝑁𝑁𝑁) + 𝑡𝑡𝑊𝑊(𝑁𝑁𝑁𝑁𝑁𝑁 ) + 𝑚𝑚𝑚𝑚𝑚𝑚 �𝑡𝑡ℎ(𝐵𝐵𝐵𝐵_𝑁𝑁𝑁𝑁𝑁𝑁)
⎩ 𝑡𝑡ℎ(𝐴𝐴_𝑁𝑁𝑁𝑁𝑁𝑁)
𝑡𝑡𝑊𝑊(𝑁𝑁𝑁𝑁)
𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸 = 𝑚𝑚𝑚𝑚𝑚𝑚 �𝑡𝑡 + 𝑡𝑡𝑊𝑊(𝑁𝑁𝑁𝑁𝑁𝑁 )
𝑉𝑉(𝑁𝑁𝑁𝑁𝑁𝑁_𝑁𝑁𝑁𝑁)
𝑡𝑡𝑊𝑊(𝑁𝑁𝑁𝑁)𝑀𝑀𝑀𝑀𝑀𝑀
𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸 𝑀𝑀𝑀𝑀𝑀𝑀 = 𝑚𝑚𝑚𝑚𝑚𝑚 �𝑡𝑡 + 𝑡𝑡𝑊𝑊(𝑁𝑁𝑁𝑁𝑁𝑁 ) 𝑀𝑀𝑀𝑀𝑀𝑀
𝑉𝑉(𝑁𝑁𝑁𝑁𝑁𝑁_𝑁𝑁𝑁𝑁) 𝑀𝑀𝑀𝑀𝑀𝑀
𝑡𝑡𝑊𝑊(𝑁𝑁𝑁𝑁)𝑀𝑀𝑀𝑀𝑀𝑀
𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸 𝑀𝑀𝑀𝑀𝑀𝑀 = 𝑚𝑚𝑚𝑚𝑚𝑚 �𝑡𝑡 + 𝑡𝑡𝑊𝑊(𝑁𝑁𝑁𝑁𝑁𝑁) 𝑀𝑀𝑀𝑀𝑀𝑀
𝑉𝑉(𝑁𝑁𝑁𝑁𝑁𝑁_𝑁𝑁𝑁𝑁) 𝑀𝑀𝑀𝑀𝑀𝑀
Tomando datos:
3𝑇𝑇𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 + 2𝑛𝑛𝑛𝑛 = 127𝑛𝑛𝑛𝑛
𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸 𝑀𝑀𝑀𝑀𝑀𝑀 = 𝑚𝑚𝑚𝑚𝑚𝑚 �
𝑇𝑇𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 + 1,5𝑛𝑛𝑛𝑛 + 𝑇𝑇𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 + 1,5𝑛𝑛𝑛𝑛 = 86,34𝑛𝑛𝑛𝑛
De ello tenemos:
(3 Puntos)
c) Demuestre si se cumplen los requisitos de setup TDW y hold TDH de la memoria en el
ciclo de escritura.
33,67𝑛𝑛𝑛𝑛 ≥ 12𝑛𝑛𝑛𝑛
Luego se cumple
𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸 = 𝑡𝑡𝑁𝑁𝑁𝑁𝑁𝑁↑
De ello:
Esta expresión se cumple siempre también por lo que el sistema cumplirá correctamente tanto
con el tiempo de setup como de de hold de la memoria.
SEBM
3 de Juny de 2015
Data notes provisionals: 10 de Juny
Període al·legacions fins: 23 de Juny
DEPARTAMENT D’ENGINYERIA ELECTRÒNICA
Data notes revisades: 30 de Juny
D0..D7 D8..D15
MEM1
MC68010 D0..D7 D0..D7
A1..A23 A1..A18 A0..A17 A1..A16 A0..A15
LDS*
A19
A20
AS*
UDS*
A17
A18
A20
A17
A18
A20
LDS*
UDS*
1
La següent figura mostra el cronograma del processador MC68010 en cicles de lectura.
T0 T1 T2 T3
CLK
t 6 < 50 ns
t6
3 ns < t 9 < 50 ns
A23-A1
t 12< 40 ns
t9 t 12
AS, UDS, LDS t 18< 45 ns
t 18
R/W t 27> 10 ns
t 27 t 29
t 29> 0 ns
D0..D15
Per les portes OR, independentment de que les entrades siguin negades o no, i l'inversor que es
fa servir amb OE*, suposarem que afegeixen un retard màxim de 10ns.
(1 punt)
a) Suposant que el cronograma de la CPU es vàlid per qualsevol freqüència de rellotge,
determineu la màxima freqüència de rellotge que podem fer servir si volem garantir
el compliment dels temps de setup de la CPU amb la memòria MEM2 .
(0,5 punts)
b) Es complirà sempre el temps de hold de la CPU? Afecta el temps de hold a la
freqüència màxima d'operació calculada al apartat a)?
Justifiqueu la resposta.
Volem ara avaluar el funcionament del sistema en escriptura també per la memòria MEM2.
Per ai xò disposem de l cr onograma en escriptura de la C PU. Els t emps que es r epeteixen al
cronograma de lectura tenen les mateixes inequacions.
T0 T1 T2 T3
CLK
t 20 < 40 ns
t6
t 23 < 40 ns
A23-A1
t 12 t 53 > 0 ns
t9
AS, UDS, LDS
t 20
R/W
t 53
t 23
D0..D15
(1 punt)
c) Determineu les restriccions que han de tenir els temps de setup i hold del bus de dades
de la memòria MEM2 respecte del instant End of Write (EOW).
Per no fer aquest apartat depenent de la resposta dels apartats anteriors suposeu una
freqüència de rellotge de 10MHz.
2
SOLUCIÓ PROBLEMA 2 (2,5 punts)
(1 punt)
a) Suposant que el cronograma de la CPU es vàlid per qualsevol freqüència de rellotge,
determineu la màxima freqüència de rellotge que podem fer servir si volem garantir
el compliment dels temps de setup de la CPU amb la memòria MEM2 .
𝑇𝑇
𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 = + 𝑡𝑡6
2
𝑡𝑡
𝑡𝑡𝐶𝐶𝐶𝐶↓ = 𝑡𝑡𝑂𝑂𝑂𝑂 + 𝑚𝑚𝑚𝑚𝑚𝑚 �𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉
𝐿𝐿𝐿𝐿𝐿𝐿↓
𝑡𝑡𝐿𝐿𝐿𝐿𝐿𝐿↓ = 𝑇𝑇 + 𝑡𝑡9
𝑡𝑡𝑅𝑅/𝑊𝑊∗↑ = 𝑡𝑡18
𝑡𝑡
𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 + 𝑚𝑚𝑚𝑚𝑚𝑚 �𝑡𝑡 𝐴𝐴𝐴𝐴
𝐴𝐴𝐴𝐴𝐴𝐴 + 𝑡𝑡𝑂𝑂𝑂𝑂
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 = 𝑚𝑚𝑚𝑚𝑚𝑚 �𝑡𝑡
𝐴𝐴𝐴𝐴𝐴𝐴 + 𝑡𝑡𝑂𝑂𝑂𝑂 + 𝑇𝑇 + 𝑡𝑡9
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 + 𝑡𝑡𝐼𝐼𝐼𝐼𝐼𝐼 + 𝑡𝑡18
3
Substituint:
𝑇𝑇 𝑡𝑡
+ 𝑡𝑡6 + 𝑚𝑚𝑚𝑚𝑚𝑚 �𝑡𝑡𝐴𝐴𝐴𝐴 + 𝑡𝑡
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 = 𝑚𝑚𝑚𝑚𝑚𝑚 �2 𝐴𝐴𝐴𝐴𝐴𝐴 𝑂𝑂𝑅𝑅
𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 + 𝑡𝑡𝑂𝑂𝑂𝑂 + 𝑇𝑇 + 𝑡𝑡9
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 + 𝑡𝑡𝐼𝐼𝐼𝐼𝐼𝐼 + 𝑡𝑡18
𝑇𝑇 𝑡𝑡
+ 𝑡𝑡6 + 𝑚𝑚𝑚𝑚𝑚𝑚 �𝑡𝑡𝐴𝐴𝐴𝐴 + 𝑡𝑡
3,5𝑇𝑇 + 𝑡𝑡12 − 10𝑛𝑛𝑛𝑛 > 𝑚𝑚𝑚𝑚𝑚𝑚 � 2 𝐴𝐴𝐴𝐴𝐴𝐴 𝑂𝑂𝑂𝑂
𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 + 𝑡𝑡𝑂𝑂𝑂𝑂 + 𝑇𝑇 + 𝑡𝑡9
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 + 𝑡𝑡𝐼𝐼𝐼𝐼𝐼𝐼 + 𝑡𝑡18
𝑇𝑇 𝑡𝑡
+ 𝑡𝑡6 𝑚𝑚𝑚𝑚𝑚𝑚 + 𝑚𝑚𝑚𝑚𝑚𝑚 �𝑡𝑡𝐴𝐴𝐴𝐴 𝑚𝑚𝑚𝑚𝑚𝑚 + 𝑡𝑡
3,5𝑇𝑇 + 𝑡𝑡12 𝑚𝑚𝑚𝑚𝑚𝑚 − 10𝑛𝑛𝑛𝑛 > 𝑚𝑚𝑚𝑚𝑚𝑚 �2 𝐴𝐴𝐴𝐴𝐴𝐴 𝑚𝑚𝑚𝑚𝑚𝑚 𝑂𝑂𝑂𝑂 𝑚𝑚𝑚𝑚𝑚𝑚
𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 𝑚𝑚𝑚𝑚𝑚𝑚 + 𝑡𝑡𝑂𝑂𝑂𝑂 𝑚𝑚𝑚𝑚𝑚𝑚 + 𝑇𝑇 + 𝑡𝑡9 𝑚𝑚𝑚𝑚𝑚𝑚
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 𝑚𝑚𝑚𝑚𝑚𝑚 + 𝑡𝑡𝐼𝐼𝐼𝐼𝐼𝐼 𝑚𝑚𝑚𝑚𝑚𝑚 + 𝑡𝑡18 𝑚𝑚𝑚𝑚𝑚𝑚
𝑇𝑇 100𝑛𝑛𝑛𝑛
+ 50𝑛𝑛𝑛𝑛 + 𝑚𝑚𝑚𝑚𝑚𝑚 �
3,5𝑇𝑇 + 0 − 10𝑛𝑛𝑛𝑛 > 𝑚𝑚𝑚𝑚𝑚𝑚 � 2 110𝑛𝑛𝑛𝑛 + 10𝑛𝑛𝑛𝑛
110𝑛𝑛𝑛𝑛 + 10𝑛𝑛𝑛𝑛 + 𝑇𝑇 + 50𝑛𝑛𝑛𝑛
25𝑛𝑛𝑛𝑛 + 10𝑛𝑛𝑛𝑛 + 45𝑛𝑛𝑛𝑛
Agrupant valors:
𝑇𝑇 100𝑛𝑛𝑛𝑛
+ 50𝑛𝑛𝑛𝑛 + 𝑚𝑚𝑚𝑚𝑚𝑚 �
3,5𝑇𝑇 + 0 − 10𝑛𝑛𝑛𝑛 > 𝑚𝑚𝑚𝑚𝑚𝑚 � 2 120𝑛𝑛𝑛𝑛
170𝑛𝑛𝑛𝑛 + 𝑇𝑇
80𝑛𝑛𝑛𝑛
D'això:
𝑇𝑇
+ 170𝑛𝑛𝑛𝑛
3,5𝑇𝑇 + 0 − 10𝑛𝑛𝑛𝑛 > 𝑚𝑚𝑚𝑚𝑚𝑚 �2
170𝑛𝑛𝑛𝑛 + 𝑇𝑇
80𝑛𝑛𝑛𝑛
𝑇𝑇
3,5𝑇𝑇 + 0 − 10𝑛𝑛𝑛𝑛 > + 170𝑛𝑛𝑛𝑛
2
4
Simplifiquem:
𝑇𝑇 > 60𝑛𝑛𝑛𝑛
𝑇𝑇 > 72𝑛𝑛𝑛𝑛
𝑇𝑇 > 25,7𝑛𝑛𝑛𝑛
1 1
𝑇𝑇 = > 72𝑛𝑛𝑛𝑛 𝑓𝑓 < = 13,9 𝑀𝑀𝑀𝑀𝑀𝑀
𝑓𝑓 72𝑛𝑛𝑛𝑛
(0,5 punts)
b) Es complirà sempre el temps de hold de la CPU? Afecta el temps de hold a la
freqüència màxima d'operació calculada al apartat a)?
Justifiqueu la resposta.
𝑡𝑡29 > 0
De tot això:
No tenim da des d el temps tHZCE, però, per r aons d e cau salitat pode m di r qu e l a i nequació
anterior ha de ser sempre vàlida i no depèn de la freqüència de la CPU.
5
(1 punt)
c) Determineu les restriccions que han de tenir els temps de setup i hold del bus de dades
de la memòria MEM2 respecte del instant End of Write (EOW).
Per no fer aquest apartat depenent de la resposta dels apartats anteriors suposeu una
freqüència de rellotge de 10MHz.
El senyal R/W* està directament connectat a línea WE* de la memòria mentre que CS* depèn
del retard de la porta OR respecte de LDS*. Per tant, el instant EOW el defineix la pujada de
R/W*.
El temps de setup de la memòria haurà de ser menor que el temps que està la dada al bus fins al
instant EOW. Per tant:
𝑡𝑡𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 ≤ 160𝑛𝑛𝑛𝑛
De manera similar el temps de hold de la memòria haurà de ser i nferior al temps que la dada
esta disponible des del instant EOW.
𝑡𝑡𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 ≤ 10𝑛𝑛𝑛𝑛
6
SEBM
21 de Gener de 2015
Data notes provisionals: 26 de Gener
Període al·legacions fins: 28 de Gener
DEPARTAMENT D’ENGINYERIA ELECTRÒNICA
Data notes revisades: 29 de Gener
PROBLEMA (Enunciado)
ECS* : Señal activa baja durante el ciclo de bus que actúa como strobe global.
Adicionalmente se puede emplear para capturar las direcciones.
El MCU también dispone de señales de strobe de calle pero no las usaremos en este problema
ya que sólo son necesarios en los ciclos de escritura.
ECLK
T/2
5 7 11
10
AD0...AD15 ADDR DATA
24 26
R/ W
20 22
ECS
8
Como puede observarse, AD0...AD15 contiene, al principio del ciclo de bus, las direcciones
generadas por el MCU. Al final del ciclo la memoria ha de poner en estas líneas los datos que se
hallan en la dirección indicada.
La señal ECS* cumple dos misiones: Por un lado se halla activa a nivel bajo para indicar que
tiene lugar un ciclo de bus por lo que opera como strobe general. Por otro lado su flanco de
bajada se da dentro del tiempo en que AD0...AD15 contiene información de direcciones por lo
que se puede aprovechar este flanco para almacenar la información de direcciones antes de que
desaparezca del bus.
El sistema que deseamos implementar ha de tener el MCU descrito y una memoria ROM
externa (con opciones para añadir otra en el futuro). Para ello se ha diseñado el siguiente
esquema de conexionado:
MCU
ROM
16
AD0...AD15 D0...D15
A1...A15 A1...A12
LATCH A0...A11
15 15 12
15
ECS
COMB CS
R/ W
Glue Logic
ECLK OE
Obsérvese que ECLK se halla conectado a OE*. Esta conexión pretende evitar colisiones en
AD0...AD15 garantizando que la ROM no entregue el dato mientras el bus está ocupado por las
direcciones.
Nos interesa determinar los requisitos que hemos de cumplir a nivel de temporización. La
siguiente tabla muestra los valores asociados a los tiempos indicados en el cronograma de
lectura del MCU.
9
Consideraremos que el bus externo del MCU opera a una frecuencia de 25MHz en ECLK.
Para la lógica glue logic, consideramos que tenemos los siguientes datos temporales máximos:
La memoria ROM, como es habitual, vendrá determinada por tres tiempos cuyos valores
deseamos acotar para garantizar un funcionamiento correcto:
Dado que el bloque latch almacena información, deben cumplirse sus tiempos de setup y de
hold respecto del flanco de bajada de ECS*.
(0,5 puntos)
e) Determine qué restricción debe cumplir el tiempo de hold del latch para garantizar la
correcta captura del las direcciones.
Para elegir correctamente la memoria ROM deseamos acotar el valor máximo de sus tiempos
tAA, tACE y tDOE.
(1,5 puntos)
f) Determine el máximo valor que puede tomar cada tiempo tAA, tACE y tDOE para
garantizar el cumplimiento del tiempo de setup en lectura (10) del cronograma del
MCU.
¿Se cumplirá siempre el tiempo de hold (11) del MCU? Razone la respuesta.
Recordemos que la conexión que une ECLK con OE* tiene por objetivo que no haya colisión
entre las direcciones que pone el MCU y los datos que pone la ROM. Evitar esta colisión
requiere, no obstante, satisfacer algunos otros requisitos de temporización.
(0,5 puntos)
g) Suponiendo que la aparición del dato en el bus se debe a tDOE y no a los otros tiempos
de la memoria, determine para que valores de tDOE de la ROM se garantiza que
tendremos una colisión indeseada entre datos y direcciones en AD0...AD15.
Razone si es posible garantizar, con los datos disponibles, que no puede darse ninguna
colisión entre datos y direcciones.
10
PROBLEMA (Solución)
(0,5 puntos)
e) Determine qué restricción debe cumplir el tiempo de hold del latch para garantizar la
correcta captura del las direcciones.
El instante de captura del latch es el flanco de bajada de ECS* y las direcciones permanecerán
en el bus hasta el tiempo indicado por (7) que se mide desde el la mitad del ciclo. Por tanto:
𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 = 𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸
������ ↓ = 0 + 𝑡𝑡20
𝑇𝑇
𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 _𝑂𝑂𝑂𝑂𝑂𝑂 = + 𝑡𝑡7
2
De ello, tendremos:
𝑇𝑇
+ 𝑡𝑡7 − 𝑡𝑡20 ≥ 𝑡𝑡𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 _𝑀𝑀𝑀𝑀𝑀𝑀
2
Aplicando extremos:
𝑇𝑇
� + 𝑡𝑡7 |𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑡𝑡20 |𝑚𝑚𝑚𝑚𝑚𝑚 ≥ 𝑡𝑡𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 _𝑀𝑀𝑀𝑀𝑀𝑀
2 𝑚𝑚𝑚𝑚𝑚𝑚
Para elegir correctamente la memoria ROM deseamos acotar el valor máximo de sus tiempos
tAA, tACE y tDOE.
(1,5 puntos)
f) Determine el máximo valor que puede tomar cada tiempo tAA, tACE y tDOE para
garantizar el cumplimiento del tiempo de setup en lectura (10) del cronograma del
MCU.
¿Se cumplirá siempre el tiempo de hold (11) del MCU? Razone la respuesta.
11
El valor de tData_In tiene una restricción distinta para cada tiempo de la memoria:
𝑡𝑡𝐴𝐴𝐴𝐴 ≤ 16𝑛𝑛𝑛𝑛
El tiempo en que se activa CS* depende de las direcciones y de las señales de control ECS* y
R/W*:
𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴
𝑡𝑡����
𝐶𝐶𝐶𝐶 ↓ = 𝑡𝑡𝑃𝑃𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 + 𝑚𝑚𝑚𝑚𝑚𝑚 � 𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸
������↓
𝑡𝑡𝑅𝑅 ⁄𝑊𝑊�↑
𝑡𝑡5 + 𝑡𝑡𝑃𝑃_𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 ℎ
𝑡𝑡𝐶𝐶𝐶𝐶
����↓ = 𝑡𝑡𝑃𝑃𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 + 𝑚𝑚𝑚𝑚𝑚𝑚 �𝑡𝑡20
𝑡𝑡24
De ello:
𝑡𝑡5 + 𝑡𝑡𝑃𝑃_𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 ℎ
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝐼𝐼𝐼𝐼 = 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 + 𝑡𝑡𝑃𝑃𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 + 𝑚𝑚𝑚𝑚𝑚𝑚 �𝑡𝑡20
𝑡𝑡24
𝑡𝑡5 + 𝑡𝑡𝑃𝑃_𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 ℎ
𝑇𝑇 − 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 − 𝑡𝑡𝑃𝑃𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 − 𝑚𝑚𝑚𝑚𝑚𝑚 �𝑡𝑡20 ≥ 𝑡𝑡10_𝑚𝑚𝑚𝑚𝑚𝑚
𝑡𝑡24
12
Despejamos tACE:
𝑡𝑡5 + 𝑡𝑡𝑃𝑃_𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 ℎ
𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 ≤ 𝑇𝑇 − 𝑡𝑡𝑃𝑃𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 − 𝑡𝑡10_𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑚𝑚𝑚𝑚𝑚𝑚 �𝑡𝑡20
𝑡𝑡24
Aplicando extremos:
𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 ≤ 7𝑛𝑛𝑛𝑛
𝑇𝑇
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝐼𝐼𝐼𝐼 = + 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷
2
𝑇𝑇
𝑇𝑇 − − 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 ≥ 𝑡𝑡10_𝑚𝑚𝑚𝑚𝑚𝑚
2
𝑇𝑇
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 ≤ − 𝑡𝑡10_𝑚𝑚𝑚𝑚𝑚𝑚
2
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 ≤ 7𝑛𝑛𝑛𝑛
13
Recordemos que la conexión que une ECLK con OE* tiene por objetivo que no haya colisión
entre las direcciones que pone el MCU y los datos que pone la ROM. Evitar esta colisión
requiere, no obstante, satisfacer algunos otros requisitos de temporización.
(0,5 puntos)
g) Suponiendo que la aparición del dato en el bus se debe a tDOE y no a los otros tiempos
de la memoria, determine para que valores de tDOE de la ROM se garantiza que
tendremos una colisión indeseada entre datos y direcciones en AD0...AD15.
Razone si es posible garantizar, con los datos disponibles, que no puede darse ninguna
colisión entre datos y direcciones.
La colisión se dará si los datos se ponen en el bus cuando todavía no se han quitado las
direcciones, esto es:
Estos tiempos son, para el caso en que tDOE es el tiempo más restrictivo:
𝑇𝑇
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝐼𝐼𝐼𝐼 = + 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷
2
𝑇𝑇
𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 _𝑂𝑂𝑂𝑂𝑂𝑂 = + 𝑡𝑡7
2
De ello:
𝑇𝑇 𝑇𝑇
+ 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 < + 𝑡𝑡7
2 2
Por tanto, si tDOE es inferior a 2ns tenemos garantía de que habrá colisión en el bus por lo que
hemos de tener un tDOE mayor que esta cota. Desafortunadamente, tener tDOE mayor que 2ns no
garantiza que no haya colisión.
Para garantizar que no puede haber colisión entre datos y direcciones debería de cumplirse:
14
SEBM (Grupo 10) Control Parcial 21 de Noviembre de 2014
Problema 3 (Enunciado)
Disponemos de un sistema basado en un microcontrolador ST10R172L de 16 bits que tiene las
siguientes características:
Bus de datos de 16 bits formado por D0...D15.
Bus de direcciones formado por A1...A23.
Señalización de lectura con un strobe RD* y de escritura con un strobe WR*.
Strobes de calle BHE* y BLE* para las calles alta (D8...D15) y baja (D0...D7) respectivamente.
Existe un strobe de validación de bus externo pero no lo emplearemos en este ejercicio.
Todas las señales de control: WR*, RD*, BHE* y BLE* son activas a nivel bajo.
El microcontrolador cuenta con memoria interna y registros mapeados en memoria que ocupan
espacios distintos dentro del rango de direcciones 0000n...FFFFh. Por tanto, nuestro sistema,
no ha de tocar esta región de memoria.
El sistema ya cuenta con 2 chips de RAM y otros tantos de ROM. La siguiente figura muestra el
esquema del sistema.
MB1 MB2
ST10R172L
MA1 MA2
A1..A15 A0..A14
A1...A23
A1..A17 A0..A16 D0..D15 D0..D15
D0..D15
D0..D15 D0..D15 RD OE
BHE
RD OE WR WE
BLE
CS CS
BHE UDS
WR
A23...A18 A18 BLE LDS
RD A19...A23
CS CS
Para la cor recta t emporización del si stema en los ciclos de lectura, el dato tiene que estar
disponible e n el b us de datos, c omo tarde, 20ns d espués d el cambio de di recciones y 15ns
después de la activación de la señal RD*.
Consideraremos que las puertas OR asociadas a MA1/MA2 tienen un retardo máximo de 3ns.
(1,2 Puntos)
e) Determine los requisitos que deberá tener los tiempos de acceso de direcciones tAA, de
acceso de Chip Select tACE y de acceso de output enable tDOE para las memorias
MA1/MA2.
Problema 3 (Solución)
De ello:
Informacions addicionals:
• Duració de l’examen: 2h 15min.
1
El bus del microprocessador està multiplexat, com es pot veure al següent gràfic:
De cara a implementar el bloc de memòria estàtica (SRAM) disposem de 4 xips de memòria com els
que surten a la figura anterior.
a) (0.5 punts) Quina és la funcionalitat del LATCH de l’esquema que ens proposen ? Justifiqueu
breument la resposta.
b) (2 punts) Feu una descodificació el més simple possible dels xips (es poden afegir portes).
c) (0.5 punt) Indiqueu el nombre de zones imatge, si n’hi ha. Justifiqueu breument la resposta.
d) (0.5 punts) Podria haver alguna col.lisió en el bus de dades entre la NOR-Flash i les memòries
SRAM ? Justifiqueu breument la resposta.
2
SEBM (Grupo 10) Control Parcial 6 de Mayo de 2014
Nombre:
Este MCU junta el efecto de los strobes de calle con la señal de strobe de escritura dado que la
distinción entre calles sólo es necesaria en ciclos de escritura. En ciclos de lectura siempre se
leen las dos calles.
Al sistema deseamos añadir 4 chips de memoria tal y como se muestra en la siguiente figura:
A23 A21
Figura 1 - Memoria externa
Como puede verse la memoria ROM está completamente especificada.
Consideraremos t ambién que l as pue rtas cone ctadas a l a ent rada C S* introducen un retardo
tGATE máximo de 15ns entre la activación de las direcciones y la generación de CS*.
La frecuencia de trabajo del MCU es de 6 MHz.
g) Determine que restricciones tienen que cumplir los tiempos tAA, tACE y tDOE de la
memoria ROM para que la temporización sea correcta.
g) Determine que restricciones tienen que cumplir los tiempos tAA, tACE y tDOE de la
memoria ROM para que la temporización sea correcta.
5𝑡𝑡𝐶𝐶𝐶𝐶
𝑡𝑡𝐴𝐴𝐴𝐴 = 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 − 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 = 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 ≤ − 80𝑛𝑛𝑛𝑛
2
𝑡𝑡𝐴𝐴𝐴𝐴 ≤ 337.5𝑛𝑛𝑛𝑛
5𝑡𝑡𝐶𝐶𝐶𝐶
𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 = (𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 − 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 ) − 𝑡𝑡𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 + 𝑡𝑡𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺 = 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 ≤ − 80𝑛𝑛𝑛𝑛
2
5𝑡𝑡𝐶𝐶𝐶𝐶
𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 = (𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 − 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 ) − 𝑡𝑡𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 ≤ − 80𝑛𝑛𝑛𝑛 − 𝑡𝑡𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺 𝑚𝑚𝑚𝑚𝑚𝑚
2
5𝑡𝑡𝐶𝐶𝐶𝐶
𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 ≤ − 80𝑛𝑛𝑛𝑛 − 15𝑛𝑛𝑛𝑛 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 ≤ 322.5𝑛𝑛𝑛𝑛
2
3𝑡𝑡𝐶𝐶𝐶𝐶
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 = 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 − 𝑡𝑡𝑅𝑅𝑅𝑅∗ = 𝑡𝑡𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅 ≤ − 80𝑛𝑛𝑛𝑛
2
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 ≤ 170.5𝑛𝑛𝑛𝑛
SEBM
20 de Gener de 2014
Data notes provisionals: 26 de Juny
Període d’al·legacions fins: 30 de Juny
DEPARTAMENT D’ENGINYERIA ELECTRÒNICA
Data notes revisades: 2 de Juny
Informacions addicionals:
• Duració de l’examen: 2h 30m.
• L'examen corregit es podrà veure el dia 27 de Juny de 12 a 13h a l'aula seminari (C4 001)
PROBLEMA 1
STM32F429
MCM62995A
A17...Ann
16 D0..D15
AD0...AD15
AD0..AD13 A1..A14
Latch A0..A13
14
*ADV LE
Inv
*OE G*
*WE W*
*BL1 BWH*
*BL0 BWL*
Vdd
E
*E2 E*
*ADV: Señal del MC U act iva a ni vel ba jo cuando e l bus m ultiplexado ADxx c ontiene
información de direcciones. Un inversor une esta señal con la entrada LE de la memoria ya
que ambas señales tienen polaridad opuesta.
NOTA: Todas las señales que incorporan un asterisco (*) son activas bajas.
El análisis completo de la temporización del sistema exc ede al tiempo disponible, por ello
únicamente realizaremos dos cálculos de temporización: Setup y hold en escritura y captura de
las direcciones con el latch de entrada.
La siguiente figura muestra el cronograma simplificado del bus externo del MCU en modo de
escritura p ara la s eñal * WE y e l bus m ultiplexado D B j unto c on s us c ondiciones d e
temporización. El resto de señ ales s e supone qu e n o son l as q ue condicionan l a f recuencia
máxima de operación.
tw (NWE)
t h (NWE)
2𝑇𝑇𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 ≤ 𝑡𝑡𝑤𝑤 (𝑁𝑁𝑁𝑁𝑁𝑁) ≤ 2𝑇𝑇𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 + 0,5𝑛𝑛𝑛𝑛
*WE
𝑡𝑡ℎ (𝑁𝑁𝑁𝑁𝑁𝑁) ≥ 𝑇𝑇𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 + 0,5𝑛𝑛𝑛𝑛
DB DATA
𝑇𝑇𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 = 1/𝑓𝑓𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻
(1 punto)
e) Determine la máxima frecuencia de reloj fHCLK que permite cumplir las restricciones
anteriores en el ciclo de escritura.
Deseamos también verificar que las direcciones son correctamente registradas en el latch de la
memoria. A c ontinuación se m uestra e l cr onograma de l ci clo de lectura del MC U para las
señales *E2, AD0..15 y *ADV.
Como se puede ver, el bus AD tiene información de direcciones durante el tiempo en que *ADV
es baja. La siguiente tabla muestra el valor cuantitativo de los tiempos del cronograma anterior
en función del periodo del bus THCLK que es el recíproco de la frecuencia de bus.
Para el inversor que conecta *ADV con LE consideraremos que puede tener un retardo máximo
de 4ns y que no se puede asumir que los retardos de subida y de bajada de este elemento sean
iguales.
(1,5 puntos)
f) Teniendo en cuenta todo lo anterior, determine la frecuencia máxima fHCLK que podrá
tener el bus externo para garantizar que se cumplen los tiempos de hold respecto del
flando de bajada de LE para el latch incluido en la RAM.
SOLUCION
e) Determine la máxima frecuencia de reloj fHCLK que permite cumplir las restricciones
anteriores en el ciclo de escritura.
(1,5 puntos)
f) Teniendo en cuenta todo lo anterior, determine la frecuencia máxima fHCLK que podrá
tener el bus externo para garantizar que se cumplen los tiempos de hold respecto del
flando de bajada de LE para el latch incluido en la RAM.
De ello:
𝑡𝑡𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 ≤ �𝑡𝑡∗𝐸𝐸2_𝐿𝐿𝐿𝐿𝐿𝐿 + 𝑡𝑡𝑊𝑊 (𝑁𝑁𝑁𝑁)� − �𝑡𝑡∗𝐸𝐸2_𝐿𝐿𝐿𝐿𝐿𝐿 + 𝑡𝑡𝑣𝑣 (𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁_𝑁𝑁𝑁𝑁) + 𝑡𝑡𝑤𝑤 (𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁) + 𝑡𝑡𝐼𝐼𝐼𝐼𝐼𝐼 �
𝑡𝑡𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 𝑡𝑡𝑊𝑊 (𝑁𝑁𝑁𝑁)𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑡𝑡𝑣𝑣 (𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁_𝑁𝑁𝑁𝑁)𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑡𝑡𝑤𝑤 (𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁)𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑡𝑡𝐼𝐼𝐼𝐼𝐼𝐼 𝑚𝑚𝑚𝑚𝑚𝑚
Informacions addicionals:
• Duració de l’examen: 2h.
PROBLEMA 1 (7 Punts)
L’estructura de la memòria és: 256Kx16, per tant el bus de dades és de 16 bits. El pin-
out de la memòria és el següent:
1
La interfície del microcontrolador és:
- D0-D15: Bus de dades
- A1-A23: Bus d’adreces
- NLB: Senyal de validació de la part baixa del bus de dades (D0-D7). Actiu a
nivell baix.
- NUB: Senyal de validació de la part alta del bus de dades (D8-D15). Actiu a
nivell baix.
- NOE: Senyal de validació en lectures, actiu a nivell baix.
- NWE: Senyal de validació en escriptures, actiu a nivell baix.
- NCS0-7: 8 senyals de ‘chip select’, actius a nivell baix. En cas de fer un accés
extern el microcontrolador activarà un d’aquests senyals en funció de l’adreça
específica que s’estigui accedint.
2
El cronograma en lectura del microcontrolador és el següent:
d) (0.5 punts) Indiqueu els temps de setup i hold de lectura de dades (considereu
només les files amb la capacitat de 0 pF, deixant de banda el derating de la
capacitat).
3
e) (1 punt) Tenint en compte que el senyal NWAIT és un senyal d’entrada que és
llegit pel microcontrolador a tCPMCK /2, on tCPMCK és el període del rellotge
MCK, què ens especifica el temps EBI5 ? Què pot voler dir que sigui negatiu ?
4
La temporització de la memòria MRAM és la següent:
5
g) (2 punt s) El m icrocontrolador p ermet fixar ci cles d ’espera en el ci cle de b us.
Això imp lica q ue e n c omptes d e f er la le ctura ta l i com e s p ot v eure al
cronograma de lectura que hem vist abans, afegeix cicles de rellotge sencers per
tal d ’allargar aq uest ci cle, j ust a p artir d el s egon f lanc d e b aixada d el s enyal
MCK.
6
SEBM
16 de Gener de 2014
Data notes provisionals:22/1/2014
DEPARTAMENT D’ENGINYERIA ELECTRÒNICA
Període d’al·legacions fins 24/1/2014
Data notes revisades: 27/1/2014
Para poder acceder a la memoria externa este microcontrolador emplea dos puertos de 8 bits y 3
señales adicionales dedicadas:
Puerto B: 8 líneas que contienen la parte alta del bus de direcciones: A15...A8
Puerto C: 8 líneas que contienen multiplexadas la parte baja del bus de direcciones
A7...A0 y el bus de datos de 8 bits D7...D0.
AS: Señal que permite validar cuando hay direcciones correctas en el puerto C.
R/W*: Señal a nivel alto en lectura y a nivel bajo en escritura.
E: Reloj del bus externo
A15
68HC11E1
A15..A8 A14
Port B
74HC533
CS*
AS LE* A11..A8
In Out A11...A0
A7..A0
A7..A0 / D7..D0
Port C D7..D0
E OE*
R/W* E
R/W* WE* RAM
Durante la primera mitad del ciclo de bus el puerto C contienen la parte baja del bus de
direcciones que se captura con un latch 74HC533 usando la señal de control AS.
Durante la segunda mitad del ciclo de bus el puerto C transmite información del MCU a la
memoria (en escritura) o de la memoria al MCU (en lectura).
El modo en que se genera la señal R/W* en este MCU hace que se deba emplear la señal de
reloj E, además de la señal R/W*, para generar las señales OE* y WE*.
1
(0,5 puntos)
a) Determine la máxima cantidad de memoria externa que se puede añadir al MCU en
Bytes y kiloBytes.
Determine cuanta memoria se añade con la propuesta de la figura anterior.
Disponemos del cronograma del MCU en ciclos de lectura y escritura que se muestra a
continuación:
2
Tal y como se indica en la tabla los tiempos t1, t2 y t3 los consideraremos como fijos con su
máximo igual a su mínimo.
Notas:
Observad que la señal de reloj E se halla a nivel bajo durante la primera mitad del ciclo de
bus y a nivel alto en la segunda mitad.
La parte alta del bus de direcciones asociada al puerto B y la señal R/W* cambian al
mismo tiempo.
En la figura se muestran dos líneas para el contenido del puerto C que contiene la parte
baja del bus de direcciones y el bus de datos. La línea superior corresponde a ciclos de
lectura y la línea inferior corresponde a ciclos de escritura.
(0,5 puntos)
b) Determine los valores máximos que pueden tener los tiempos de setup tS y de hold tH
del latch para que se capture correctamente la parte alta del bus de direcciones con el
sistema operando a 3MHz.
¿Se cumplen los requisitos del latch74HC533?
Una vez verificada la captura de la parte baja del bus de direcciones deseamos especificar las
características que debe cumplir la memoria RAM añadir en lectura.
Consideraremos que las dos puertas OR del circuito tienen un retardo máximo desde cualquiera
de sus entradas (esté negada o no) a la salida de 12ns.
La memoria RAM tiene las especificaciones habituales en lectura asociadas a tres tiempos:
tAA : Tiempo desde el cambio de las direcciones a dato de salida correcto
tACE: Tiempo desde la activación de CS* a dato de salida correcto
tDOE: Tiempo desde la activación de OE* a dato de salida correcto
En el cronograma del MCU se observa que el dato se lee justo en el flanco de bajada de la señal
E. Este dato será leído correctamente si se cumplen los tiempos de setup y hold que se
establecen alrededor de este instante. Los cálculos que permitan determinar la memoria más
adecuada para el sistema deben incluir, por tanto, estos dos tiempos.
(1,5 puntos)
3
c) Identifique en el cronograma los tiempos de setup y hold del MCU y obtenga sus
límites numéricos a partir de la tabla de tiempos.
Determine los valores máximos que pueden tener los tres tiempos de la memoria tAA,
tACE y tDOE para que se cumpla el tiempo de setup del MCU correctamente cuando
opera a 3MHz.
4
PROBLEMA 2 (2,5 Puntos)
Para poder acceder a la memoria externa este microcontrolador emplea dos puertos de 8 bits y 3
señales adicionales dedicadas:
Puerto B: 8 líneas que contienen la parte alta del bus de direcciones: A15...A8
Puerto C: 8 líneas que contienen multiplexadas la parte baja del bus de direcciones
A7...A0 y el bus de datos de 8 bits D7...D0.
AS: Señal que permite validar cuando hay direcciones correctas en el puerto C.
R/W*: Señal a nivel alto en lectura y a nivel bajo en escritura.
E: Reloj del bus externo
A15
68HC11E1
A15..A8 A14
Port B
74HC533
CS*
AS LE* A11..A8
In Out A11...A0
A7..A0
A7..A0 / D7..D0
Port C D7..D0
E OE*
R/W* E
R/W* WE* RAM
Durante la primera mitad del ciclo de bus el puerto C contienen la parte baja del bus de
direcciones que se captura con un latch 74HC533 usando la señal de control AS.
Durante la segunda mitad del ciclo de bus el puerto C transmite información del MCU a la
memoria (en escritura) o de la memoria al MCU (en lectura).
El modo en que se genera la señal R/W* en este MCU hace que se deba emplear la señal de
reloj E, además de la señal R/W*, para generar las señales OE* y WE*.
(0,5 puntos)
a) Determine la máxima cantidad de memoria externa que se puede añadir al MCU en
Bytes y kiloBytes.
Determine cuanta memoria se añade con la propuesta de la figura anterior.
Máxima cantidad de memoria externa: FFFFh - B800h+1 = 4800h = 18432 Bytes = 18 kBytes
Usando la propuesta tenemos 12 líneas de direcciones A11..A0 en un chip de RAM que admite
un Byte por posición. Por tanto: 212 B = 22210 B = 4 kBytes
5
Disponemos del cronograma del MCU en ciclos de lectura y escritura que se muestra a
continuación:
Tal y como se indica en la tabla los tiempos t1, t2 y t3 los consideraremos como fijos con su
máximo igual a su mínimo.
6
Notas:
Observad que la señal de reloj E se halla a nivel bajo durante la primera mitad del ciclo de
bus y a nivel alto en la segunda mitad.
La parte alta del bus de direcciones asociada al puerto B y la señal R/W* cambian al
mismo tiempo.
En la figura se muestran dos líneas para el contenido del puerto C que contiene la parte
baja del bus de direcciones y el bus de datos. La línea superior corresponde a ciclos de
lectura y la línea inferior corresponde a ciclos de escritura.
(0,5 puntos)
b) Determine los valores máximos que pueden tener los tiempos de setup tS y de hold tH
del latch para que se capture correctamente la parte alta del bus de direcciones con el
sistema operando a 3MHz.
¿Se cumplen los requisitos del latch74HC533?
Una vez verificada la captura de la parte baja del bus de direcciones deseamos especificar las
características que debe cumplir la memoria RAM añadir en lectura.
Consideraremos que las dos puertas OR del circuito tienen un retardo máximo desde cualquiera
de sus entradas (esté negada o no) a la salida de 12ns.
La memoria RAM tiene las especificaciones habituales en lectura asociadas a tres tiempos:
tAA : Tiempo desde el cambio de las direcciones a dato de salida correcto
tACE: Tiempo desde la activación de CS* a dato de salida correcto
tDOE: Tiempo desde la activación de OE* a dato de salida correcto
En el cronograma del MCU se observa que el dato se lee justo en el flanco de bajada de la señal
E. Este dato será leído correctamente si se cumplen los tiempos de setup y hold que se
establecen alrededor de este instante. Los cálculos que permitan determinar la memoria más
adecuada para el sistema deben incluir, por tanto, estos dos tiempos.
7
(1,5 puntos)
c) Identifique en el cronograma los tiempos de setup y hold del MCU y obtenga sus
límites numéricos a partir de la tabla de tiempos.
Determine los valores máximos que pueden tener los tres tiempos de la memoria tAA,
tACE y tDOE para que se cumpla el tiempo de setup del MCU correctamente cuando
opera a 3MHz.
Aplicando extremos:
𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 𝑡𝑡12 𝑚𝑚𝑚𝑚𝑚𝑚 + 𝑡𝑡3 − 𝑡𝑡17 𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑡𝑡𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔 𝑚𝑚𝑚𝑚𝑚𝑚
𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 54 𝑛𝑛𝑛𝑛 + 141 𝑛𝑛𝑛𝑛 − 30 𝑛𝑛𝑛𝑛 − 12𝑛𝑛𝑛𝑛
𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 153 𝑛𝑛𝑛𝑛
Las entradas de direcciones dependen de t12 para las direcciones altas y de t22 para las bajas,
pero ambas tienen el mismo valor en la tabla.
Aplicando extremos:
𝑡𝑡𝐴𝐴𝐴𝐴 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 𝑡𝑡12,22 𝑚𝑚𝑚𝑚𝑚𝑚 + 𝑡𝑡3 − 𝑡𝑡17 𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑡𝑡𝑑𝑑 𝑙𝑙𝑙𝑙𝑙𝑙𝑙𝑙 ℎ 𝑚𝑚𝑚𝑚𝑚𝑚
𝑡𝑡𝐴𝐴𝐴𝐴 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 54 𝑛𝑛𝑛𝑛 + 141 𝑛𝑛𝑛𝑛 − 30 𝑛𝑛𝑛𝑛 − 33𝑛𝑛𝑛𝑛
𝑡𝑡𝐴𝐴𝐴𝐴 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 132 𝑛𝑛𝑛𝑛
Aplicando extremos:
8
Nom i cognoms: Grup:
NOTES:
- Aquest microcontrolador té pins específics (nGCSx, nBEx, nOE, x=1, 2 ...) que es poden
connectar directament al CS i OE d’una RAM.
a) (1 punt) Determineu l’instant de captura de les dades, en cicle de lectura, agafant com a
origen de temps t=0, i en funció del període de rellotge (T) de EXTCLK.
b) (1.5 punts) Quina és la principal diferència entre el temps tRBED i el temps tRDH ?
c) (1.5 punt s) Q uina di ferència qua litativa hi ha e ntre el temps t LZCE i t ACE ? J ustifiqueu l a
resposta. Per què ens donen a la taula el temps mínim del primer i el màxim del segon ?
Nom i cognoms: Grup:
d) (1 punt) Expliqueu què indica el temps tHZB. Què ens interessarà més d’aquest temps, tenir
una fita màxima o mínima ? o àmbdues ? Justifiqueu la resposta.
PROBLEMA 2: (5 punts)
a) (4 punts) Feu una descodificació el més simple possible de manera que la RAM es situï a
partir d e l ’adreça 0 x6FC00000 i que la R OM t ingui l a d arrera z ona i matge acab ant a
l’adreça 0 xFFFFFFFF. La zona 0x 00000000-0x6FBFFFFF ha de que dar l liure. La
descodificació pot ser incompleta.
00000000
FFFFFFFF
SEBM (Grupo 10) Control 14 de Mayo de 2013
Nombre:
PROBLEMA 1
Las señales NE1 a NE4 son señales de Chip Select que permiten direccionar 4 bloques que
ocupan, cada uno, todo el espacio direccionable por las direcciones del bus del FSMC.
Este problema tiene una parte que corresponde a decodificación (Tema 4).
Con objeto de estudiar la temporización (Tema 5), incluiremos la solución del apartado de
decodificación.
MCU
STM32F407ZG
A1-A25
D0...D 15
D0-D15 D0...D 7 D8...D 15
D0...D 15
NOE D0...D 7 D0...D 7
NWE
A1-A21 A0..A n-1 A0..A m-1 A1-A20
NWE WE M3
M1 M2
NE1
NOE OE NOE
OE
NBL1
CE CE
CE
NBL0
NE1 A22
tAA : Tiempo desde que se ponen las direcciones hasta que se entrega el dato
tACE : Tiempo desde que se activa CE* hasta que se entrega el dato
tDOE : Tiempo desde que se activa OE* hasta que se entrega el dato
Considere, por simplicidad, que cualquier conjunto de puertas digitales entre una salida del
MCU y una entrada de una memoria tiene, en conjunto, un retardo máximo de 2ns.
(2 puntos)
f) Determine los requisitos (mayor o menor que una cota) que han de cumplir los tres
tiempos anteriores para la memoria RAM.
SOLUCION
PROBLEMA 1
MCU
STM32F407ZG
A1-A25
D0...D 15
D0-D15 D0...D 7 D8...D 15
D0...D 15
NOE D0...D 7 D0...D 7
NWE
A1-A21 A0..A n-1 A0..A m-1 A1-A20
NWE WE M3
M1 M2
NE1
NOE OE NOE
OE
NBL1
CE CE
CE
NBL0
NE1 A22
En la tabla anterior THCLK es el reloj a que opera el FSMC que, en nuestro caso, es de 42 MHz.
tAA : Tiempo desde que se ponen las direcciones hasta que se entrega el dato
tACE : Tiempo desde que se activa CE* hasta que se entrega el dato
tDOE : Tiempo desde que se activa OE* hasta que se entrega el dato
Considere, por simplicidad, que cualquier conjunto de puertas digitales entre una salida del
MCU y una entrada de una memoria tiene, en conjunto, un retardo máximo de 2ns.
(2 puntos)
f) Determine los requisitos (mayor o menor que una cota) que han de cumplir los tres
tiempos anteriores para la memoria RAM.
Para el cálculo de tAA la ecuación a cumplir ha de verificar que el dato esté antes de la
imposición que fija el tiempo de setup.
Substituyendo valores:
De ello:
Para el cálculo de tACE tenemos que CE* se genera a partir de las direcciones, de la señal NE1 y
de los strobes NBL0 y NBL1. Mirando los datos de la tabla, se ve que el caso peor se da para las
direcciones. Por tanto, la ecuación es similar a la del caso anterior sólo que en este caso hemos
de añadir el retardo de la lógica añadida.
Substituyendo valores:
Substituyendo valores:
a) (1.5 punts) Indiqueu els valors dels temps de setup i hold del bus de dades, en cicle de lectura, per una
freqüència de 25MHz.
Setup: Hold:
b) (1.5 punts) Indiqueu, a quin instant es produeix la lectura, comptant des del moment t=0 que apareix al
gràfic.
SBM Exàmen Final 19 de Juny de 2013
Nom i cognoms: Grup:
PROBLEMA 3 (60%)
Els 3 senyals de selecció de xip de memòria STCS[2:0] s'activen en funció de l'adreça a la que accedim
segons la taula:
a) (4 punts) Connecteu la memòria SRAM K6F8008V2M de Samsung al microcontrolador LPC288x
anterior de manera que sigui accedida pel rang d'adreces 0x2800 0000 – 0x281F FFFF. Calculeu el
nombre total de zones imatge.
b) (6 punts) Les variables WAITOEN i WAITRD poden prendre valors sencers a partir de 0. Si
HCLK=20ns (50MHz de CLK), calculeu els valors òptims de les dues variables anteriors. Feu servir els
temps típics que dóna el microcontrolador.
Soluciò
Nom i cognoms: Grup:
CISE IV
20 de juny de 2013
Data notes provisionals: 24 de juny de 2013
DEPARTAMENT D’ENGINYERIA ELECTRÒNICA
Límit d’al·legacions: 28 de juny de 2013
Data notes revisades: 3 de juliol de 2013
ENUNCIAT
PROBLEMA 1 (50%)
En aquest problema s'estudia un disseny construït en torn a un microcontrolador NEC PD78F4216A que pot direccionar una
mapa de memòria de 1MB. Aquest dispositiu disposa tant de memòria EPROM com de memòria SRAM internes però ens
interessa ampliar-les amb memòria externa.:
00000 H
A la dreta trobem el mapa de memòria asocial al microcontrolador que farem
EPROM INTERNA servir.
1FFFF H
7FFFF H
FDF00 H
RAM INTERNA
FFF00 H
FFFFF H
a) (0,5 Punts) Determineu la mida, en Bytes, dels diferents elements que composen el mapa de memòria.
EPROM interna: 20000h Bytes = 2∙24∙4 Bytes = 217 Bytes = 27210 Bytes = 128 KBytes
RAM interna: FFF00h-FDF00h Bytes = 2000h B = 2∙23∙4 Bytes = 213 Bytes = 23210 Bytes = 8 KBytes
Area externa: 40000h Bytes = 4∙24∙4 Bytes = 218 Bytes = 28210 Bytes = 256 KBytes
La zona de memòria externa volem afegir 1 xip de ROM de 64kBytes i 4 xips de RAM de 32kBytes.
Ens concentrarem ara en la implementació d'aquestes memòries.
1
Per accedir a la memòria externa, el microcontrolador fa servir les següents línies associades a pins del integrat:
An-1...A0 son la part baixa del bus de direccions intern del microcontrolador i són just el nombre mínim de línies que permeten
direccionar l'àrea externa.
El senyal de lectura RD* s'activa en cicles de lectura que apunten a direccions dins de l'àrea de memòria externa.
El senyal d'escriptura WR* s'activa en cicles d'escriptura que apunten a direccions dins de l'àrea de memòria externa.
b) (0,5 Punts) Determineu el valor de n de línies del bus de direccions extern. Determineu també el nombre de línies de
direccions que ha de tenir cada xip de memòria:
c) (1 Punt) Calculeu la descodificació que cal per la memòria ROM i dibuixeu-la a la següent figura.
M CU D0..D7
D0..D7
A0...A15 A0..Am-1
D0..D7
A0..An-1
RD OE
RD
CE
WR
A16 A17
Es pot observar que la CPU no te cap senyal strobe específica. En aquest disseny no cal fer servir strobes a la generació de CE*
degut a que RD* i WR* son, de fet strobes (tots dos es desactives quan no hi ha cicle de bus), per tant es garanteix que la
memòria tindrà RD* desactivada quan no hi hagin cicles de lectura a la ROM.
2
Nom i cognoms: Grup:
Per la memòria RAM, en estar distribuïda en 4 xips (RAM1...RAM4), hi han varies opcions de descodificació i en voldrem
analitzar dues.
En primer lloc volem analitzar un esquema de descodificació que situï RAM1 al principi de l'area de memòria externa, RAM2 a
continuació, després RAM3 i finalment RAM4.
La descodificació no cal que sigui completa, de fet, volem fer servir en cada xip de RAM el mínim nombre possible de línies de
direccions per generar el senyal CE*, sempre i quan les 4 memòries segueixin la seqüència indicada des del principi de l'àrea
externa i no hi hagin col·lisions amb la memòria ROM.
d) (1 Punt) Calculeu la descodificació que cal per la memòria RAM i dibuixeu-la a la següent figura.
En el cas de la memòria RAM cada xip es de 32 KBytes per un total 128 KBytes. Això ocupa la meitat del àrea externa de
256KBytes. Com que cada xip es de 32KBytes i en volem tenir espais separats per cada xip, tindrem per l'àrea de memòria
externa de 256KBytes un total de 256/32=8 marcs en que podem posar cada xip. Això correspon a 3 línies de direccions altes,
concretament A7, A16 i A15.
Els dos últims marcs els ocupa la memòria ROM, per tant tenim 6 marcs lliures.
Es veu que la memòria ROM sempre te A16="1", per tan, les memòries RAM1 i RAM2 que tenen A16="0" mai no tindran
col·lisió amb la ROM encara que deixem indeterminada A17.
Això ens dona la següent taula que es la que requereix del mínim de línies de direccions per cada xip:
M CU
D0..D7 D0..D7 D0..D7 D0..D7
RD RD OE
CE CE CE CE
WR
A15 A15
A16 A15 A16 A16
A16 A15 A17 A17
Novament no cal fer servir strobes a la generació de CE* en ser RD* i WR*, de fet strobes. Sempre es garanteix que la
memòria tindrà RD* i WR* desactivades quan no hi hagin cicles de lectura o escriptura.
3
40000 H 00000H
RAM1 e) (0,75 Punts) Dibuixeu a l'esquerra el mapa de memòria que
resulta de la descodificació dels apartats c) i d).
RAM2
50000 H 10000H Per cada xip, indiqueu el seu nombre d'imatges si n'hi ha més
RAM3 d'una.
RAM4
60000 H 20000H Les memòries RAM1 i RAM2 tenen 2 imatges ja que tenen una
RAM1 indeterminació a la taula de descodificació.
RAM2 Les memòries RAM3, RAM4 i ROM només tenen una imatge, per
70000 H 30000H tant, fan servir descodificació completa.
ROM
7FFFF H 3FFFFH
Direccions Direccions
que fa servir de les línies
la CPU An-1...A0
La segona opció que de descodificació que volem assajar es fer que els quatre xips de RAM estiguin barrejats. Es a dir, que la
primera direcció del àrea externa pertany a RAM1, la segona a RAM2, la tercera a RAM3, la quarta a RAM4, la cinquena a
RAM1 un altre vegada i així successivament fins a completar tota la memòria RAM.
Novament la descodificació no cal que sigui completa .Volem fer servir en cada xip de RAM el mínim nombre possible de
línies de direccions per generar el senyal CE*, sempre i quan tinguem les quatre memòries RAM barrejades amb l'esquema
indicat al principi del àrea externa i no hi hagin col·lisions amb la ROM.
f) (1 Punt) Calculeu la nova descodificació que cal per la memòria RAM i dibuixeu-la a la següent figura.
Si volem que posicions consecutives del mapa corresponguin a memòries distintes, s'ha de fer descodificació per direccions
baixes, A0 i A1 en concret. La següent taula mostra aquesta descodificació quan es completa:
Cap de les memòries RAM pot tenir indeterminada A17 si no volem tenir una col·lisió amb la ROM.
La descodificació, per tant, ha de ser completa.
4
Nom i cognoms: Grup:
A0..An-1 RD OE
CE CECE CE CE CE
RD
WR
A17 A17 A17 A17
A1 A1 A1 A1
A0 A0 A0 A0
40000 H 00000H
g) (0,75 Punts) Dibuixeu a l'esquerra el mapa de memòria que
RAM1 resulta de la nova descodificació dels apartats c) i f).
RAM2 Per cada xip, indiqueu el seu nombre d'imatges si n'hi ha més
50000 H 10000H
RAM3 d'una.
RAM4 Les quatre memòries RAM formen un bloc únic degut a que les seves
60000 H 20000H posicions estan barrejades.
Direccions Direccions
que fa servir de les línies
la CPU An-1...A0
5
Desitgem avaluar ara els temps comportament de les memòries en cicles de lectura.
La següent figura mostra un cronograma del bus extern del microcontrolador en mode de lectura.
Suposarem, per simplicitat, que el circuit que genera CS* a les memòries a partir del bus de direccions pot tenir qualsevol retard
entre un mínim de 0 i un màxim de 20ns.
Al microcontrolador es poden ajustar alguns dels temps fent servir estats d'espera. Això es veu a la taula a les dades que tenen
una "n" que es el nombre d'estats d'espera.
Les memòries, en mode lectura, es poden caracteritzar mitjançant tres paràmetres. Tots tres s'han de complir per tenir una dada
vàlida:
6
Nom i cognoms: Grup:
h) (1,5 Punts) Determineu els requisits que han de tenir les memòries per poder operar amb el bus a la seva màxima
freqüència sense cap estat d'espera. ¿Quina es aquesta freqüència màxima?
Suposem que la memòria que en realitat tenim te les següents característiques: tAA , tACE ≤ 250ns i tDOE ≤ 100ns
Volem ara determinar quants estats d'espera calen per operar a la màxima freqüència del bus.
i) (1 Punt) Determineu quin es el mínim nombre "n" d'estats d'espera que calen per poder fer servir la memòria
indicada.
n=
7
SOLUCIÓ A LA TEMPORITZACIÓ
PROBLEMA 1 (50%)
Desitgem avaluar ara els temps comportament de les memòries en cicles de lectura.
La següent figura mostra un cronograma del bus extern del microcontrolador en mode de lectura.
Suposarem, per simplicitat, que el circuit que genera CS* a les memòries a partir del bus de direccions pot tenir qualsevol retard
entre un mínim de 0 i un màxim de 20ns.
Al microcontrolador es poden ajustar alguns dels temps fent servir estats d'espera. Això es veu a la taula a les dades que tenen
una "n" que es el nombre d'estats d'espera.
8
Nom i cognoms: Grup:
Les memòries, en mode lectura, es poden caracteritzar mitjançant tres paràmetres. Tots tres s'han de complir per tenir una dada
vàlida:
h) (1,5 Punts) Determineu els requisits que han de tenir les memòries per poder operar amb el bus a la seva màxima
freqüència sense cap estat d'espera. ¿Quina es aquesta freqüència màxima?
La freqüència màxima es el recíproc del període mínim tCYC que es de 80ns, per tant fMAX = 12,5MHz
tDAID es el temps que pot passar des de que es posen les direccions al bus fins que la memòria respon amb la dada. Aquesta es
precisament la definició de tAA, per tant s'ha de complir:
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 ≥ 𝑡𝑡𝐴𝐴𝐴𝐴
163𝑛𝑛𝑛𝑛 ≥ 𝑡𝑡𝐴𝐴𝐴𝐴
En el cas de tACE el càlcul es semblant, però hi ha un retard addicional màxim tDEC de 20ns.
El cas pitjor per complir la igualtat es donarà quan tDEC sigui màxim:
Substituint valors:
143𝑛𝑛𝑛𝑛 ≥ 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴
9
Finalment, tDRID es el temps entre l'activació de RD* i la generació d'una dada per part de la memòria. Aquesta es precisament
la definició de tDOE, per tant:
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 ≥ 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷
80𝑛𝑛𝑛𝑛 ≥ 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷
Suposem que la memòria que en realitat tenim te les següents característiques: tAA , tACE ≤ 250ns i tDOE ≤ 100ns
Volem ara determinar quants estats d'espera calen per operar a la màxima freqüència del bus.
i) (1 Punt) Determineu quin es el mínim nombre "n" d'estats d'espera que calen per poder fer servir la memòria
indicada.
Les dades que tenim per la memòria son mes grans que els límits per no tenir cap cicle d'espera per tant, segur que tindrém al
menys un estat d'espera. Per avaluar el nombre exacte d'estats d'espera que calen, hem de resoldre cada temps per separat. Les
expressions son les mateixes d'abans, però ara hem de aïllar n:
𝑛𝑛 ≥ 1,088
𝑛𝑛 ≥ 1,338
10
Nom i cognoms: Grup:
𝑛𝑛 ≥ 0,25
Donat que el nombre d'estats d'espera està determinat pel cas pitjor, en definitiva ens cal 2 o més estats d'espera.
n=2
1
Disseny Microelectrònic I
10 de Juny de 2013
Data notes provisionals: 18 de juny
DEPARTAMENT D’ENGINYERIA ELECTRÒNICA
Període d’al·legacions: 18 a 21 de juny
Data notes revisades: 25 de juny
Informacions addicionals:
• Duració de l’examen: 2h 30m.
ENUNCIADO
����������
𝐵𝐵𝐵𝐵15_8 Strobe de la calle alta. Señal activa baja que indica cuando hay movimiento de
datos en la parte alta del bus D15...D8
��������
𝐵𝐵𝐵𝐵7_0 Strobe de la calle baja. Señal activa baja que indica cuando hay movimiento de
datos en la parte baja del bus D7...D0
�����
𝑊𝑊𝑊𝑊 Señal activa baja en ciclos de escritura
����
𝑂𝑂𝑂𝑂 Señal activa baja en ciclos de lectura
1
La figura 1 m uestra la zona disponible (entre 6000 0 000h y DFFF FFFFh) para su uso con el
bus externo. Cualquier memoria que situemos fuera de este rango, no será vista por la CPU ni
formará parte del mapa de memoria del microcontrolador.
MCU
Frescale K20
16 A31-A16
A31-A16
ALE LE 15 A15-A1
15
AD15-AD0 In Out
WE
WE M3 M4
M1 M2
BE15_8 OE
OE
BE7_0 CE CE
CE CE
2
(0,5 puntos)
a) Determine el tamaño máximo que puede ser ocupado en el mapa de memoria del
microcontrolador usando el bus externo FlexBlusTM. Determine también el número de
líneas de direcciones que deben tener los chips M1 a M4 de la figura.
Los chips M1, M2 tiene señal WE*, por tanto son RAM:
𝑛𝑛 = 27 − 1 = 26
Los chips M3, M4 no tienen señal WE*, por tanto son ROM:
𝑚𝑚 = 29 − 2 = 27
Los 128MBytes de memoria RAM que deseamos añadir al a sistema deben ser accesibles desde
el inicio de la zona FlexBusTM, esto es, desde la dirección 6000 0000h, de manera que sólo se
vea u na ú nica imagen d e l a R AM d entro d el m apa d e m emoria. L a d ecodificación h a d e ser
completa.
(1 punto)
b) Realice la decodificación necesaria para la memoria RAM y dibuje en la figura 2 las
conexiones necesarias para los chips de RAM que allí se hallan.
Recordemos que A0 no sale de la CPU, su información viaja por los strobes de calle
3
D0...D 7 D8...D 15
D0...D 7 D0...D 7
A1..A 26 A0..A 25
WE WE
M1 M2
OE OE
CE CE
BE 0-7 BE 8-15
No hace falta añadir ningún strobe porque ya tenemos los strobes de calle.
Los 512M Bytes de memoria R OM no tienen ninguna restricción, aparte d e que los no puede
haber huecos entre los espacios ocupados por M3 y M4. Pueden implementarse donde se quiera
siempre y c uando ha ya, a l menos, una i magen de ntro de l a z ona de F lexBusTM del m apa d e
memoria y no se dé ninguna colisión con la memoria RAM.
La d ecodificación empleada, c aso de q ue h aya v arias o pciones, d ebe ser l a q ue im plique
emplear el mínimo posible de líneas de direcciones.
(1 punto)
c) Realice la decodificación necesaria para la memoria ROM y dibuje en la figura 2 las
conexiones necesarias para los chips de ROM que allí se hallan.
4
El esquema circuital que resulta para la solución "A" es el que sigue:
D0...D 15 D0...D 15
D0...D 15 D0...D 15
A0..A 26 A1..A 27
M3 M4
OE OE
CE CE
A28 A28
A31
Como se ha comentado, esta solución no es única. Una manera fácil de verlo es juntando las dos
tablas de decodificación:
Solución "A"
A31 A30 A29 A28 A27 A26...........A1 A0 BE15-8 BE7-0 CPU
0 1 1 0 0 A25...........A0 0 1 0 M1
0 1 1 0 0 A25...........A0 1 0 1 M2
1 x x 0 A26.....................A0 - -- -- M3
1 x x 1 A26.....................A0 - -- -- M4
Como se observa en las memorias RAM M1/M2 se da siempre A31="0", A30="1" y A29="1"
Solución "B"
A31 A30 A29 A28 A27 A26...........A1 A0 BE15-8 BE7-0 CPU
0 1 1 0 0 A25...........A0 0 1 0 M1
0 1 1 0 0 A25...........A0 1 0 1 M2
x x 0 0 A26.....................A0 - -- -- M3
x x 0 1 A26.....................A0 - -- -- M4
Solución "C"
A31 A30 A29 A28 A27 A26...........A1 A0 BE15-8 BE7-0 CPU
0 1 1 0 0 A25...........A0 0 1 0 M1
0 1 1 0 0 A25...........A0 1 0 1 M2
x 0 x 0 A26.....................A0 - -- -- M3
x 0 x 1 A26.....................A0 - -- -- M4
Es más, obs ervando la s olución "A", por ejemplo s e ve que pa ra las memorias R AM M 1/M2
siempre s e c umple A 28= "0". P or tanto, existe una solución "D" que es mejor que l a solución
"A" ya que usa menos líneas de decodificación:
5
Solución "D"
A31 A30 A29 A28 A27 A26...........A1 A0 BE15-8 BE7-0 CPU
0 1 1 0 0 A25...........A0 0 1 0 M1
0 1 1 0 0 A25...........A0 1 0 1 M2
1 x x 0 A26.....................A0 - -- -- M3
x x x 1 A26.....................A0 - -- -- M4
Esta solución r esulta mejor que l a so lución " A". No obstante, d e ca ra a l a co rrección, se ha
considerado l a solución " A" como suficientemente b uena para t ener l a puntuación co mpleta
todo y que, en rigor, no es óptima.
Puede verse que junto a la solución "D" hay un conjunto de soluciones igualmente óptimas que
trabajan con A30 y A29 en lugar de A31 de manera similar a las soluciones "B" y "C".
(0,5 puntos)
6
PROBLEMA 2 (3 Puntos)
ALE
FB2 FB3
TM
Figura 3: FlexBus en modo lectura
El ciclo de lectura se considerará correcto si se cumplen los tiempos de setup y de hold FB4 y
FB5 respectivamente.
La tabla 1 muestra las cotas de los tiempos indicados en la figura 3.
Es muy importante tener en cuenta que los valores de la tabla y el cronograma son acotaciones,
no tiempos fijos. Por ejemplo, las señales A31...A16, AD15...AD0, 𝑊𝑊𝑊𝑊 �����, ���� ������ y ALE tienen
𝑂𝑂𝐸𝐸 , 𝐵𝐵𝐵𝐵𝐵𝐵
un r etardo FB2 d esde el primer f lanco d el reloj C LK. E llo n o s ignifica que t odas l as señales
cambien a l m ismo t iempo, s ino que , s egún s e m uestra e n l a tabla, todos e stos r etardos, qu e
pueden ser distintos, están acotados por un valor máximo de 11,5ns.
Recordemos que en nuestro sistema, la parte baja del bus de direcciones, se captura empleando
un latch. El latch muestra de manera trasparente en Out el contenido de In si la señal de control
LE es alta "1". Cuando la señal de control LE pasa a valer "0", el valor de Out se mantiene en el
último valor que tuvo cuando LE era alta.
7
Consideraremos que éste tiene un retardo máximo de 10ns desde el momento en que sube LE o
cambia In hasta el momento en que se actualiza Out.
Supondremos que la parte baja de las direcciones permanece en el bus AD15...AD0 el tiempo
suficiente después de la bajada de LE para que se guarde correctamente el valor de salida Dout
del latch.
(0,5 Puntos)
b) Verifique si se cumple el tiempo de hold empleando las memorias indicadas a la
frecuencia máxima determinada en el apartado anterior.
FB1
Las principales
CLK S0 S1 S2 S3 diferencias son que en
el ciclo de escritura el
bus de datos es forzado
A31...A16 ADDR 31..16
por la CPU en lugar de
leerse de la memoria y
AD15...AD0 ADDR 15..0 DATA que la temporización de
los strobes de calle ������
𝐵𝐵𝐵𝐵𝐵𝐵
WR FB2 es distinta.
8
(0,5 Puntos)
c) Determine las cota mínima que puede tener el instante End of Write (EOW) para la
memoria, medida desde el primer flanco de subida de CLK, operando a la frecuencia
indicada.
(1 Punto)
c) Determine la condicion que han de cumplir el tiempo de setup de las memorias M1 y
M2 para que puedan operar correctamente a la frecuencia indicada.
9
SOLUCIÓN
PROBLEMA 2 (3 Puntos)
ALE
FB2 FB3
TM
Figura 3: FlexBus en modo lectura
El ciclo de lectura se considerará correcto si se cumplen los tiempos de setup y de hold FB4 y
FB5 respectivamente.
La tabla 1 muestra las cotas de los tiempos indicados en la figura 3.
Es muy importante tener en cuenta que los valores de la tabla y el cronograma son acotaciones,
no tiempos fijos. Por ejemplo, las señales A31...A16, AD15...AD0, ����� 𝑊𝑊𝑊𝑊, ���� ������ y ALE tienen
𝑂𝑂𝑂𝑂 , 𝐵𝐵𝐵𝐵𝐵𝐵
un r etardo FB2 d esde el primer f lanco d el reloj C LK. E llo n o s ignifica que t odas l as señales
cambien a l m ismo t iempo, s ino que , s egún s e m uestra e n l a tabla, todos e stos r etardos, qu e
pueden ser distintos, están acotados por un valor máximo de 11,5ns.
Recordemos que en nuestro sistema, la parte baja del bus de direcciones, se captura empleando
un latch. El latch muestra de manera trasparente en Out el contenido de In si la señal de control
LE es alta "1". Cuando la señal de control LE pasa a valer "0", el valor de Out se mantiene en el
último valor que tuvo cuando LE era alta.
10
Consideraremos que éste tiene un retardo máximo de 10ns desde el momento en que sube LE o
cambia In hasta el momento en que se actualiza Out.
Supondremos que la parte baja de las direcciones permanece en el bus AD15...AD0 el tiempo
suficiente después de la bajada de LE para que se guarde correctamente el valor de salida Dout
del latch.
𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 = 2𝑇𝑇
𝐹𝐹𝐹𝐹2 + 𝑡𝑡𝐴𝐴𝐴𝐴
𝐹𝐹𝐹𝐹2 + 𝑡𝑡𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 ℎ + 𝑡𝑡𝐴𝐴𝐴𝐴
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝐼𝐼𝐼𝐼 = 𝑚𝑚𝑚𝑚𝑚𝑚 �
𝐹𝐹𝐵𝐵2 + 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 + 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴
𝑇𝑇 + 𝐹𝐹𝐹𝐹2 + 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷
Del circuito se observa que las señales A1...A15 no se emplean para generar las señales CE*,
por lo que nunca se acumulan a la vez los retardos del latch y del decodificador.
Desarrollando la última ecuación con los valores numéricos que conocemos tendremos:
𝑡𝑡𝐴𝐴𝐴𝐴 |𝑀𝑀𝑀𝑀𝑥𝑥
⎧
𝑡𝑡 | + 𝑡𝑡𝐴𝐴𝐴𝐴 |𝑀𝑀𝑀𝑀𝑀𝑀
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝐼𝐼𝐼𝐼 �𝑀𝑀𝑀𝑀𝑀𝑀 = 𝐹𝐹𝐹𝐹2|𝑀𝑀𝑀𝑀𝑀𝑀 + 𝑚𝑚𝑚𝑚𝑚𝑚 𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 ℎ 𝑀𝑀𝑀𝑀𝑀𝑀
⎨ 𝐷𝐷𝐷𝐷𝐷𝐷 𝑀𝑀𝑀𝑀𝑀𝑀 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 |𝑀𝑀𝑀𝑀𝑀𝑀
𝑡𝑡 | +
⎩𝑇𝑇 + 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 |𝑀𝑀𝑀𝑀𝑀𝑀
11
20𝑛𝑛𝑛𝑛
56,5𝑛𝑛𝑛𝑛
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝐼𝐼𝐼𝐼 �𝑀𝑀𝑀𝑀𝑀𝑀 = 11,5𝑛𝑛𝑛𝑛 + 𝑚𝑚𝑚𝑚𝑚𝑚 �10𝑛𝑛𝑛𝑛 + 20𝑛𝑛𝑛𝑛 = 𝑚𝑚𝑚𝑚𝑚𝑚 �
25𝑛𝑛𝑛𝑛 + 20𝑛𝑛𝑛𝑛 𝑇𝑇 + 16,5𝑛𝑛𝑛𝑛
𝑇𝑇 + 5𝑛𝑛𝑛𝑛
56,5𝑛𝑛𝑛𝑛
𝐹𝐹𝐹𝐹4 ≤ 2𝑇𝑇 − 𝑚𝑚𝑚𝑚𝑚𝑚 �
𝑇𝑇 + 16,5𝑛𝑛𝑛𝑛
La manera más simple de proceder es resolver las dos inecuaciones para ver la más restrictiva:
1
𝑇𝑇 ≥ (8,5𝑛𝑛𝑛𝑛 + 56,5𝑛𝑛𝑛𝑛) 𝑇𝑇 ≥ 32,5𝑛𝑛𝑛𝑛
2
(0,5 Puntos)
b) Verifique si se cumple el tiempo de hold empleando las memorias indicadas a la
frecuencia máxima determinada en el apartado anterior.
El dato desaparecerá del bus cuando se desactive la señal OE* de la memoria, por tanto:
𝐹𝐹𝐹𝐹5|𝑀𝑀𝑀𝑀𝑀𝑀 ≤ 𝑇𝑇 + 𝐹𝐹𝐹𝐹3|𝑀𝑀𝑀𝑀𝑀𝑀
0,5𝑛𝑛𝑛𝑛 ≤ 𝑇𝑇 + 0,5𝑛𝑛𝑛𝑛
La expresión anterior se cumple con independencia del valor de T por lo que siempre se cumple
el tiempo de hold.
12
El ciclo de escritura del microcontrolador es similar al de lectura. El cronograma es el que se
muestra en la figura 4.
FB1
Las principales
CLK S0 S1 S2 S3 diferencias son que en
el ciclo de escritura el
bus de datos es forzado
A31...A16 ADDR 31..16
por la CPU en lugar de
leerse de la memoria y
AD15...AD0 ADDR 15..0 DATA que la temporización de
los strobes de calle ������
𝐵𝐵𝐵𝐵𝐵𝐵
WR FB2 es distinta.
𝑡𝑡𝐶𝐶𝐶𝐶_𝑂𝑂𝑂𝑂𝑂𝑂
𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸 = 𝑚𝑚𝑚𝑚𝑚𝑚 �𝑡𝑡
𝑊𝑊𝑊𝑊_𝑂𝑂𝑂𝑂𝑂𝑂
2
𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸 |𝑀𝑀𝑀𝑀𝑀𝑀 = + 0,5𝑛𝑛𝑛𝑛 + 0 = 100,5𝑛𝑛𝑛𝑛
20𝑀𝑀𝑀𝑀𝑀𝑀
13
(1 Punto)
c) Determine la condición que han de cumplir el tiempo de setup de las memorias M1 y
M2 para que puedan operar correctamente a la frecuencia indicada.
De ello tendremos:
14
CISE IV (Grupo 10) Control 5 de Noviembre de 2009
ENUNCIADO
A23-A1 An-A0
RAM 1
OE
MB90
RD
WE
WR CS
WRH D7-D0
WRL
An-A0
D15-D8
RAM 2
OE
RST D7-D0
WE
CS
D7-D0
Deseamos diseñar un circuito de decodificación capaz de generar la señal CS* para los
dos chips de RAM. La memoria externa puede situarse en cualquier parte dentro del
espacio disponible dentro del área vacía de 15808 kBytes del mapa de memoria. Los
circuitos de decodificación han de usar el mínimo número de líneas de direcciones por
lo que el uso de decodificación incompleta es admisible. No obstante, ninguna imagen
debe entrar dentro de las áreas reservadas.
CLK
RD
t t
RLDV RHDX
Datos
t
AVDV
Donde:
tAVDV = 5T/2 - 55ns Tiempo máximo desde que cambian las direcciones hasta
que el dato es válido.
tRLDV = 3T/2 - 55ns Tiempo máximo desde que baja RD* hasta que los datos
son válidos.
tRHDX = 0 Tiempo mínimo desde que sube RD* hasta que los datos dejan de
ser válidos.
La temporización en lectura de la RAM es:
t AA
t ACE
CE
t DOE
OE
SOLUCIÓN
A18-A1 (CPU)
A23-A1 A17-A0
RAM 1
RD OE
MB90
RD
WRH WE
A23
WR CS
A22
WRH D15-D8 (CPU) D7-D0
WRL
RAM 2
RD OE
RST D7-D0
WRL WE
CS
D7-D0 (CPU) D7-D0
Deseamos diseñar un circuito de decodificación capaz de generar la señal CS* para los
dos chips de RAM. La memoria externa puede situarse en cualquier parte dentro del
espacio disponible dentro del área vacía de 15808 kBytes del mapa de memoria. Los
circuitos de decodificación han de usar el mínimo número de líneas de direcciones por
lo que el uso de decodificación incompleta es admisible. No obstante, ninguna imagen
debe entrar dentro de las áreas reservadas.
CLK
RD
t t
RLDV RHDX
Datos
t
AVDV
Donde:
tAVDV = 5T/2 - 55ns Tiempo máximo desde que cambian las direcciones hasta
que el dato es válido.
tRLDV = 3T/2 - 55ns Tiempo máximo desde que baja RD* hasta que los datos
son válidos.
tRHDX = 0 Tiempo mínimo desde que sube RD* hasta que los datos dejan de
ser válidos.
La temporización en lectura de la RAM es:
t AA
t ACE
CE
t DOE
OE
Se ha de cumplir:
Nombre:
Las memorias, tanto ROM, como RAM, disponen de dos señales de habilitación CE1*
y CE2*. Ambas han de estar a nivel bajo para activarlas.
CPU
MC68010 ROM (1MB)
UDS
LDS
D0...D 7 D0...D 7 D0...D 7 D0...D 7
A0..A n-1
WE
RAM1 RAM2 RAM3 RAM4
OE (1MB) (1MB) (1MB) (1MB)
T0 T1 T2 T3
CLK
t 6 < 50 ns
t6
3 ns < t 9 < 50 ns
A23-A1
t 12< 50 ns
t9 t 12
AS, UDS, LDS t 18< 45 ns
t 18
R/W t 27> 10 ns
t 27 t 29
t 29> 0 ns
El reloj del sistema es de 10MHz y los tiempos de acceso de las memorias son:
El tiempo de acceso para CE1* y CE2* se cuenta desde el momento en que ambas están
activas a nivel bajo.
Nombre:
Las memorias, tanto ROM, como RAM, disponen de dos señales de habilitación CE1*
y CE2*. Ambas han de estar a nivel bajo para activarlas.
CPU
MC68010 ROM (1MB)
UDS
D0...D 7 D8...D 15 D0...D 7 D8...D 15
LDS
D0...D 7 D0...D 7 D0...D 7 D0...D 7
A1..A 20 A0..A 19
R/W WE
RAM1 RAM2 RAM3 RAM4
W/R OE (1MB) (1MB) (1MB) (1MB)
UDS
LDS
LDS
Rp2 Rp3
Oc0 Oc2
Oc1 Oc3
Una vez analizada la decodificación de memoria, pasaremos a estudiar la temporización
en lectura. Para ello contamos con el cronograma del ciclo de lectura de la CPU.
T0 T1 T2 T3
CLK
t 6 < 50 ns
t6
3 ns < t 9 < 50 ns
A23-A1
t 12< 50 ns
t9 t 12
AS, UDS, LDS t 18< 45 ns
t 18
R/W t 27> 10 ns
t 27 t 29
t 29> 0 ns
El reloj del sistema es de 10MHz y los tiempos de acceso de las memorias son:
El tiempo de acceso para CE1* y CE2* se cuenta desde el momento en que ambas están
activas a nivel bajo.
Para calcular el tiempo que tardan los datos en esta disponibles se ha de calcular el
tiempo del peor de los caminos:
t18 + t inv + t OE = 45 + 10 + 50 = 105ns
T + t 9 + t CE = 100 + 50 + 150 = 300ns
t dato = max = 300ns
T 2 + t 6 + t AA = 50 + 50 + 150 = 250 ns
T 2 + t 6 + t dec + t CE = 50 + 50 + 20 + 150 = 270ns
Dado que buscamos el máximo y todos los tiempos se suman, hemos tomado para todos
ellos el valor máximo. Adicionalmente T=100ns para f=10MHz.
t setup = min (3.5T + t12 − t dato ) = 3.5T + t12 min − t datoMAX = 350 + 0 − 300 = 50ns
En el cronograma, la primera señal que cambia son los strobes, por lo que los datos no
pueden desaparecer antes de que estos cambien. De ello se obtiene que el sistema
siempre cumplirá el tiempo de hold dado que el tiempo no podrá ser nulo ni negativo.
Finalmente, determinaremos el valor que han de tener las resistencias de pull-up que
contiene el circuito. Para ello consideraremos:
Nombre:
CPU
MC68010
Driver
D0...D 7 D0...D 7
A1-A23 A1'-A23'
A1'-A14' A0..A 13
D0-D15
WE
R/W M1 M2
OE
CE CE
AS
UDS
LDS
MA MB MC MD
OE OE OE OE
CE CE CE CE
Estudiaremos ahora la temporización en lectura. Para ello contamos con el cronograma
del ciclo de lectura del procesador MC68010.
T0 T1 T2 T3
CLK
t 6 < 50 ns
t6
3 ns < t 9 < 50 ns
A23-A1
t 12< 50 ns
t9 t 12
AS, UDS, LDS t 18< 45 ns
t 18
R/W t 27> 10 ns
t 27 t 29
t 29> 0 ns
Los tiempos t6, t9, t12 y t18 son retardos de activación de las señales que genera la CPU a
partir de los flancos del reloj del sistema. Los tiempos t27 y t29 son los tiempos de setup
y hold respectivamente, en lectura, para el bus de datos.
• El driver a la salida del bus de direcciones que genera A1'..A23' a partir de A1-
A23 del procesador tiene un retardo asociado máximo de 15ns.
• Cualquier conjunto de puertas (una o más) entre A1'...A23' o cualquier salida de
control del procesador y cualquier entrada de las memorias tiene un retardo total
asociado máximo de 25ns.
Los chips de memoria MA...MD dependen de tres retardos en lectura: tAA, tACE y tDOE
los cuales corresponden al tiempo entre la activación del bus de direcciones, la señal
*CE y la señal *OE respectivamente y el momento en que se dispone de un dato a la
salida D0..D7 de la memoria.
Se ha de tener en cuenta que nos piden los tiempos máximos que pueden tener las
memorias. Estos tiempos máximos para las memorias corresponden a los tiempos
mínimos que deja disponibles el procesador entre el momento en que se suministran las
señales de direcciones o control y el momento en el que el dato ha de estar disponible.
Esto es, los tiempos de las memorias han de ser inferiores a las mínimas distancias
temporales que deje el procesador, de ahí que sean máximos desde el punto de vista de
las memorias.
Para determinar el valor máximo que puede tener tAA se ha de tener en cuenta que es el
tiempo entre el momento en que las direcciones están disponibles a la entrada de la
memoria y el momento en que la información ha de estar en el bus de datos.
Por su parte tAddr depende del cronograma de la CPU y del driver que une A1-A23 con
A1’-A23’
De todo ello:
Nos piden el valor máximo que puede tener tAA en la memoria. Se ha de cumplir que la
memoria ha de responder antes de que pase el tiempo comprendido entre que las
direcciones están disponibles y el momento en el que el dato ha de ser volcado en el
bus. De ello, deberá cumplirse.
Como el término de la izquierda ha de ser mayor que el de la derecha, el caso peor será:
𝑡𝑡𝐴𝐴𝐴𝐴 𝐶𝐶𝐶𝐶𝐶𝐶 𝑚𝑚𝑚𝑚𝑚𝑚 = 𝑡𝑡𝐴𝐴𝐴𝐴 𝑚𝑚𝑚𝑚𝑚𝑚 = 3𝑇𝑇 + 𝑡𝑡12 𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑡𝑡27 𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑡𝑡6 𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 𝑚𝑚𝑚𝑚𝑚𝑚
Para determinar el valor máximo que puede tener tACE se ha de tener en cuenta que es el
tiempo entre el momento en que se activa CE* y el momento en que la información ha
de estar en el bus de datos.
Deseamos hallar el mínimo de tACE, visto desde la CPU (máximo desde la memoria):
tData ya lo hemos calculado, para tCE* hay dos caminos, ya que CE* depende tanto del
bus de direcciones como de la señal de strobe AS*:
De ello:
Para determinar el valor máximo que puede tener tDOE se ha de tener en cuenta que es el
tiempo entre el momento en que se activa OE* y el momento en que la información ha
de estar en el bus de datos.
CISE IV
19 de gener de 2011
Data notes provisionals: 25 de gener
DEPARTAMENT D’ENGINYERIA ELECTRÒNICA
Límit d’al·legacions: 27 de gener, 14:00 h
Data notes revisades: 31 de gener
Les memòries RAM utilitzades tenen un bus de dades de 16 bits. Per tal de poder fer escriptures de byte (alt o baix) els xips
disposen de dos senyals addicionals: UB* (upper byte) i LB* (lower byte) que són senyals de validació de transacció per la part
alta (D8-D15) o baixa (D0-D7) del bus respectivament.
Els senyals nBS0-3 del microcontrolador són senyals de validació pels bytes que composen el bus de dades del
microprocessador (D0-D31). Els senyals nCS0-3 són senyals generats pel microcontrolador per a connectar directament als
senyals d’activació general de les memòries.
1
Figura 3: Temps d’escriptura de la RAM.
Figura 4: Exemple cronograma 2 cicles de lectura seguits d’un cicle d’escriptura del microcontrolador AT32UC3A.
2
Nom i cognoms: Grup:
es programen per l’usuari escrivint en certs registres del microcontrolador i només poden prendre valors naturals 0, 1,
2, 3, etc.
Es demana:
a) (1.5 punts) Tenint en compte el valor del temps tHD de la RAM en escriptura, és possible programar el valor de ‘ncs wr
hold length’ = 0 (relacionat amb el temps SMC35 del microcontrolador) ? Justifiqueu breument la resposta.
Necessitem SMC35(min)>=tHD=0, per tant ncs wr hold length ha de prendre un valor superior o igual a 1.
b) (1.5 punts) Tenint en compte els temps de la memòria i els temps SMC12-15 del microcontrolador, quin és el valor
òptim de ‘ncs rd hold length’ per tal que el sistema funcioni en escriptura ? Justifiqueu breument la resposta.
Els temps SMC12-15 estan referits als senyals NBS0-3 (A0 i A1 no estan connectades). Si ncs rd hold length=0, SMC12-15(min)=-
2.3ns. Això implica que no sabríem si l’EOW ve determinat per aquests senyals o la desactivació de NCS. En qualsevol cas
l’escriptura es pot continuar fent correctament. Per tant valor òptim ncs rd hold length =0.
c) (1.5 punts) Si ara tenim en compte a més el temps SMC16, canviarem el valor òptim de ‘ncs rd hold length’?
Justifiqueu breument la resposta.
Necessitem SMC16(min)>=tHA(min)=0, per tant hem el valor òptim és ara ‘ncs rd hold length’=1
d) (1.5 punts) Tenint en compte els temps de la memòria i els temps SMC18 del microcontrolador, quin és el valor òptim
de ‘ncs rd pulse length’ per tal que el sistema funcioni en escriptura ? Justifiqueu breument la resposta.
Necessitem SMC18(min)>=tSCE(min)=8ns, per tant hem el valor òptim és ara ‘ncs rd pulse length’=1
e) (1.5 punts) Tenint en compte els temps de la memòria i els temps SMC34 del microcontrolador, quin és el valor òptim
de ‘ncs wr pulse length’ per tal que el sistema funcioni en escriptura ? Justifiqueu breument la resposta.
Necessitem SMC34(min)>=tSD(min)=6ns, per tant hem el valor òptim és ara ‘ncs wr pulse length’=1
f) (1.5 punts) Tenint en compte els temps de la memòria i els temps SMC36 del microcontrolador, quines són les
conseqüències de fer ‘ncs wr hold length’ = ‘nwe hold length’ ?
Tindríem SMC36(min)=-0.6 ns. Això només implica que no està clar si l’EOW ve determinat per la desactivació de NCS o NWE.
L’escriptura seria correcta.
3
El microcontrolador AT32UC3A en realitat pot funcionar de dues maneres. La que hem vist fins ara es diu ‘NCS controlled’.
En la següent figura teniu els cicles de bus del microcontrolador en mode ‘NRD-NWR controlled’.
Figura 6: Exemple cronograma del microcontrolador AT32UC3A amb 4 cicles de bus en mode ‘NRD-NWR controlled’ .
g) (1 punt) Expliqueu breument quina creieu pot ser la diferència principal entre els dos modes de funcionament.
En el primer cas, NCS controlled, el senyal més determinant en el cicle de bus és NCS (s’activa menys temps i mentre NRD o NWE ja
estan actius). En el segon cas, el senyal determinant és NRD o NWR depenent de si estem a una lectura o escriptura.
4
CISE IV (Grupo 30) Control 25 de Octubre de 2012
ENUNCIADO Y SOLUCION
CPU
MC68010
A1-A23
D0-D15
D0...D 15
R/W D0...D 7 D0...D 7
A0..A 16 A0..A 14
WE M3
M1 M2
AS
OE
OE
UDS
CE CE
CE
LDS
Solución del esquema de decodificación necesario para poder evaluar la temporización:
D0...D 7 D8...D 15
D0...D 7 D0...D 7
A 1..A 17 A0..A 16
R/W WE
M1 M2
OE
CE CE
LDS UDS
A23
t6max = 50ns
CLK
t6 t9min = 3ns
A23-A1 t9max = 50ns
t 12 t12max = 50ns
AS t9
t 12
LDS , UDS t9 t20max = 45ns
t 53
R/W t 20
t23max = 50ns
D15-D0 t53min = 0ns
t=0 t 23
Para las puertas OR o inversoras del circuito que conecta la CPU con las memorias,
considere que el retardo máximo de cada puerta es de 10ns.
Consideremos como origen de tiempos absolutos el primer flanco de subida del reloj tal
y como se indica en la figura.
f) (2,5 puntos) Determine lo más tarde que puede poner la CPU el dato en el bus
de datos respecto del instante t=0.
SOLUCION
𝟏𝟏 𝟏𝟏
𝑻𝑻 = = = 𝟏𝟏𝟏𝟏−𝟕𝟕 𝒔𝒔 = 𝟏𝟏𝟏𝟏𝟏𝟏𝟏𝟏𝟏𝟏
𝒇𝒇 𝟏𝟏𝟏𝟏 ∙ 𝟏𝟏𝟏𝟏𝟔𝟔 𝑯𝑯𝑯𝑯
De todo ello:
Determine lo más pronto que puede darse el instante final de escritura (EOW)
respecto del instante t=0.
SOLUCION
Por tanto:
t12 tiene una valor máximo de 50ns. tgate tiene un valor máximo de 10ns. Como no
se da valor mínimo a ninguno de ambos tiempos, podemos suponer que el mínimo
es cero, de ello:
El tiempo de setup es el tiempo que ha de estar el dato en el bus antes de que acabe
la escritura (EOW). Por tanto:
El caso pero será cuanto menor sea el tiempo de setup, por tanto:
Por tanto:
𝒕𝒕𝒔𝒔𝒔𝒔𝒔𝒔𝒔𝒔𝒔𝒔 < 350𝒏𝒏𝒏𝒏 − 𝟏𝟏𝟏𝟏𝟏𝟏𝟏𝟏𝟏𝟏 = 𝟐𝟐𝟐𝟐𝟐𝟐𝟐𝟐𝟐𝟐
𝑡𝑡𝑊𝑊𝑊𝑊∗_𝑂𝑂𝑂𝑂 = 𝑇𝑇 + 𝑡𝑡20
De ello:
𝑡𝑡𝑊𝑊𝑊𝑊∗_𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎 = 𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸 − 𝑡𝑡𝑊𝑊𝑊𝑊∗_𝑂𝑂𝑂𝑂
Por tanto:
En rigor, no tiene sentido cuando está activo WE* si no está también activa la señal
CE*. La señal CE* depende de LDS* o UDS* que se activan después de WE*, por
tanto, a nivel efectivo, el tiempo de pulso de WE*, a efectos de temporización de la
memoria, será más corto.
No obstante, dado el redactado del enunciado, se puede dar por válida la respuesta de
205ns
Nom i cognoms: Grup:
CISE IV
22 de gener de 2013
Data notes provisionals: 25 de gener
DEPARTAMENT D’ENGINYERIA ELECTRÒNICA
Límit d’al·legacions: 29 de gener, 14:00 h
Data notes revisades: 29 de gener
PROBLEMA
En aquest problema s'estudia el sistema basat en un processador i386SX que es mostra a la figura. Aquest és un processador de
32 bits que fa servir un bus extern de dades de 16 bits. La CPU pot treballar en dos modes diferents: Real o Protegit. En mode
Protegit pot accedir a 16MBytes de memòria, però en mode Real, que es el que farem servir, només permet accedir a 1 MByte.
Es per això que a la figura es mostra un bus de direccions que acaba en A19.
El processador fa servir mapes diferents per I/O i memòria normal, la senyalització d'una o un altre es fa servir mitjançant el
senyal M/IO*.
Com es habitual als processadors de 16 bits, les dades associades a direccions parelles van sempre per D0..D7 i les associades a
direccions senars per D8..D15. Els senyals BHE* i BLE* indiquen quines parts del bus de dades es fan servir. Aquests dos
senyals son els únics strobes dels que disposem que son actius durant tot el cicle.
i386SX
D0 .. D 15
A1 ..... A 19
BHE D0 .. D 15 D0 .. D 7 D0 .. D 7
BLE A0 ... A n-1
A0 ... A m-1
RAM 1
RAM 2
M / IO WE
ROM
W/R
OE OE
CS CS CS
ADS
1
Com s’ha indicat, el sistema pot direccionar fins a 1 MByte en mode Real.
El total de RAM que volem afegir es de 128KBytes en total distribuït en dos xips “RAM1” i “RAM2”. Donat que els vectors
d’interrupció del i386SX es troben al principi del mapa de memòria, ha d’haver-hi RAM a les primeres posicions del mapa.
El total de ROM que volem afegir es de 256 KBytes amb un únic xip “ROM”. L’arrencada del processador es fa a les últimes
posicions del mapa de memòria, per tant, ha d’haver-hi ROM al final del mapa.
Addicionalment, hi ha una zona prohibida al mapa de memòria que no podem ocupar en la descodificació de RAM y ROM
per que es reserva per futures ampliacions. Aquesta es troba entre les posicions 80000H i BFFFFH.
D0 .. D 7 D8 .. D 15
D0 .. D 7 D0 .. D 7
A0 ... A 15 A1 ... A 16
RAM 1
RAM 2 WE
OE W/R
CS CS
A19 A19
BLE BHE
M / IO M / IO
D0 .. D 15
D0 .. D 15
A1 ... A 17 A0 ... A 16
ROM
W/R OE
BLE
CS
BHE M / IO
A18
A19
2
Nom i cognoms: Grup:
Una vegada estudiat la descodificació de memòria i I/O del sistema, passarem a analitzar la temporització.
La següent figura mostra la temporització d’un accés a memòria de 16 bits en lectura.
CLK
t6 t6
ADDR Valid ADDR
t8 t8
BHE , BLE
t10 t10
W/R
M / IO
t21
Data
t22
NOTA: Tot i que t10, per exemple, apareix varies vegades al cronograma, no vol dir que sempre tingui el mateix valor. t10 pot prendre,
per cada senyal i tipus de flanc (pujada o baixada) qualsevol valor dins del rang de valors entre el màxim i el mínim. El mateix es pot
aplicar a la resta de senyals.
Els accessos a memòria duren 2 cicles de rellotge. En el nostre cas treballarem amb un rellotge de 20 MHz.
El bus de direccions i els senyals de control s’activen al principi del cicle i el bus de dades es llegeix al final.
El bus de direccions i els senyals de control es desactiven o s’actualitzen al final del cicle depenent de si segueix un altre cicle
de bus.
Per simplificar el càlculs de temporització suposarem que qualsevol circuit que contingui una o varies portes entre la CPU i la
memòria pot tenir un retard màxim de 10ns.
Volem determinar quines característiques ha de tenir el xip de ROM que tenim al nostre sistema. La memòria ROM es pot
caracteritzar amb els tres retards taddr, tcs i toe de la figura:
t addr
ADDR
t cs
CS
t oe
OE
DATA
3
h) Determineu les restriccions que han de complir els tres temps de la memòria ROM per tal que es compleixin els
requeriments de temps de Setup de dades de la CPU. Indiqueu, per tant, si aquests temps han de ser majors o
menors que un determinat valor.
A continuació estudiarem la temporització en escriptura del biestable del perifèric del nostre sistema.
La temporització de la CPU en escriptura es la que es mostra a la següent figura:
CLK
t6 t6
ADDR Valid ADDR
t8 t8
BHE
t10 t10
W/R
M / IO t10
ADS
t12 t12
Els temps t6, t8 i t10 son els mateixos que al cicle de lectura. Les especificacions temporals del temps t12 son les que es
mostren a continuació.
L’actualització del biestable es fa en el flanc de pujada del senyal CK que, a la seva vegada, depèn del flanc de pujada del
senyal ADS*. Per a les portes del circuit de descodificació, tant la que genera CS* com la que genera CK a partir de CS* i de
ADS*, suposarem un retard màxim de 10ns per cada una.
La escriptura al biestable D únicament ha de complir que es respectin els seus temps de setup i de hold, es a dir, que les dades
siguin vàlides un temps abans y després del flanc de pujada de CK.
CK
t hold
D
t setup
i) Determineu les restriccions que han de complir els temps de setup i de hold del biestable D. Indiqueu si aquests temps
han de ser majors o menors que un determinat valor o si no es pot garantir que es compleixin.
4
Nom i cognoms: Grup:
SOLUCIO
h) Determineu les restriccions que han de complir els tres temps de la memòria ROM per tal que es compleixin els
requeriments de temps de Setup de dades de la CPU. Indiqueu, per tant, si aquests temps han de ser majors o
menors que un determinat valor.
(1,5 punt)
1 1
𝑇𝑇 = = = 50𝑛𝑛𝑛𝑛
𝑓𝑓 20𝑀𝑀𝑀𝑀𝑀𝑀
Si definim tDATA com el moment en que la CPU espera que les dades estiguin al bus de dades D0...D15 i definim tCSON com el
moment en que s'activa CS* a la memòria, s'haurà de complir:
L' inequació es "menor o igual que" degut a que si el temps es més gran les dades no estaran al bus quan la CPU les necessita.
Per resoldre el temps tCS haurem de trobar els dos termes de la dreta.
El cas pitjor a la dreta de la inequació es quan el valor es mínim, ja que això restringeix més els possibles valores de tCS.
Per trobar tDATA MIN podem observar que la CPU llegeix el bus de dades al final del segon cicle de rellotge (t=2T). Degut al
temps de setup t21, però, la dada haurà de estar abans. Per tant:
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 = 2𝑇𝑇 − 𝑡𝑡21 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 𝑀𝑀𝑀𝑀𝑀𝑀 = (2𝑇𝑇 − 𝑡𝑡21 )𝑀𝑀𝑀𝑀𝑀𝑀 = 2𝑇𝑇 − 𝑡𝑡21 𝑀𝑀𝑀𝑀𝑀𝑀
La freqüència, i per tant el període, venen fixats i no tenen valor màxim ni mínim.
El temps de setup a la taula ve només com a valor mínim de 9ns. Això es degut a que el temps de setup es, per definició, el
temps mínim que la dada ha d'estar al bus abans del instant de lectura. Es a dir, es defineix com a mínim per que la dada pot
estar abans que aquest temps de setup. En tot cas, semàntica a part, donat que es l'única dada que tenim a la taula es la que
farem servir. Per tant:
Per trobar tCSON hem de veure els senyals que intervenen per generar CS*.
Del resultat del apartat c) sabem que CS* depèn de BHE*, BLE*, M/IO*, A18 i A19
𝑡𝑡𝐶𝐶𝐶𝐶 ≤ 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 𝑀𝑀𝑀𝑀𝑀𝑀 − 𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 𝑀𝑀𝑀𝑀𝑀𝑀 𝑡𝑡𝐶𝐶𝐶𝐶 ≤ 91𝑛𝑛𝑛𝑛 − 40𝑛𝑛𝑛𝑛 𝑡𝑡𝐶𝐶𝐶𝐶 ≤ 51𝑛𝑛𝑛𝑛
5
Càlcul per taddr
Si definim tDATA igual que abans i definim tADDRON com el moment en que s'activen les direccions a la memòria, s'haurà de
complir:
𝑡𝑡𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎 ≤ 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 𝑀𝑀𝑀𝑀𝑀𝑀 − 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 𝑀𝑀𝑀𝑀𝑀𝑀 𝑡𝑡𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎 ≤ 91𝑛𝑛𝑛𝑛 − 30𝑛𝑛𝑛𝑛 𝑡𝑡𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎 ≤ 61𝑛𝑛𝑛𝑛
Si definim tDATA igual que abans i definim tOEON com el moment en que s'activa OE* la memòria, s'haurà de complir:
𝑡𝑡𝑜𝑜𝑒𝑒 ≤ 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 𝑀𝑀𝑀𝑀𝑀𝑀 − 𝑡𝑡𝑂𝑂𝑂𝑂 𝑂𝑂𝑂𝑂 𝑀𝑀𝑀𝑀𝑀𝑀 𝑡𝑡𝑜𝑜𝑜𝑜 ≤ 91𝑛𝑛𝑛𝑛 − 26𝑛𝑛𝑛𝑛 𝑡𝑡𝑜𝑜𝑜𝑜 ≤ 65𝑛𝑛𝑛𝑛
Com a comentari addicional, totes les memòries tenen toe ≤ taddr ≤ tcs, per tant, a l'hora d'escollir la memòria, en aquest cas,
només cal mirar que es compleixi tcs.
6
Nom i cognoms: Grup:
i) Determineu les restriccions que han de complir els temps de setup i de hold del biestable D. Indiqueu si aquests temps
han de ser majors o menors que un determinat valor o si no es pot garantir que es compleixin.
(1,5 punt)
Novament podem definir tCK com el instant en que es dona el flanc de pujada a CK. Podem definir també tDATA com el instant
en que la CPU posa la dada en el bus en un cicle d'escriptura. S'haurà de complir, per tant:
El senyal CK es genera a partir de ADS*. Com que hi ha una porta pel mig, tenim un retard addicional tg de un màxim de 10ns.
Com que no hi ha un valor mínim definit per tg, podem considerar zero com a cas pitjor.
El temps de setup mai no pot ser negatiu, per tant, no es pot garantir que sempre es compleixi el temps de setup per molt ràpid
que sigui el biestable escollit.
Podem definir tCK igual que abans. Podem definir també tDATA OFF com el instant en que la CPU treu la dada del bus.
S'haurà de complir, per tant:
𝑡𝑡ℎ𝑜𝑜𝑜𝑜𝑜𝑜 ≤ 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 𝑂𝑂𝑂𝑂𝑂𝑂 − 𝑡𝑡𝐶𝐶𝐶𝐶 𝑡𝑡ℎ𝑜𝑜𝑜𝑜𝑜𝑜 ≤ 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 𝑂𝑂𝑂𝑂𝑂𝑂 𝑀𝑀𝑀𝑀𝑀𝑀 − 𝑡𝑡𝐶𝐶𝐶𝐶 𝑀𝑀𝑀𝑀𝑀𝑀
El temps tCK l'hem calcular abans però no el podem aprofitar ja que era un valor mínim i ara ens cal el màxim:
𝑡𝑡𝐶𝐶𝐶𝐶 𝑀𝑀𝑀𝑀𝑀𝑀 = 𝑇𝑇 + 𝑡𝑡10 𝑀𝑀𝑀𝑀𝑀𝑀 + 𝑡𝑡𝑔𝑔 𝑀𝑀𝑀𝑀𝑀𝑀 = 50𝑛𝑛𝑛𝑛 + 26𝑛𝑛𝑛𝑛 + 10𝑛𝑛𝑛𝑛 = 86𝑛𝑛𝑛𝑛
En definitiva:
𝑡𝑡ℎ𝑜𝑜𝑜𝑜𝑜𝑜 ≤ 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 𝑂𝑂𝑂𝑂𝑂𝑂 𝑀𝑀𝑀𝑀𝑀𝑀 − 𝑡𝑡𝐶𝐶𝐶𝐶 𝑀𝑀𝑀𝑀𝑀𝑀 𝑡𝑡ℎ𝑜𝑜𝑜𝑜𝑜𝑜 ≤ 129𝑛𝑛𝑛𝑛 − 86𝑛𝑛𝑛𝑛 = 43𝑛𝑛𝑛𝑛
7
PROBLEMA 3: (30%) (aprox.: 1 hora)
Durant l’execució de programes és molt habitual fer lectures seqüencials de dades col.locades
de manera consecutiva a la memòria (arrays, etc.). Una de les estratègies per augmentar la
velocitat global d’accés a dades consecutives és mitjançant el mode burst d’accés a memòria.
Un µP amb capacitat de mode burst és el i80486DX de Intel.
La durada d’un cicle de bus normal, sense cicles d’espera és de 2 cicles de rellotge. Si es vol
accedir consecutivament a 8 bytes cal fer 2 cicles de lectura seguits, trigant en total 4 cicles de
rellotge. En mode burst ho pot fer amb 3 cicles de rellotge de la manera següent:
- En el primer cicle de rellotge ordena la lectura dels 8 bytes al mateix temps, a dos bancs
de memòria independents de 32 bits cadascun.
- En el segon cicle, llegeix els 4 bytes primers (32 bits del primer banc).
- En el tercer cicle, llegeix els 4 bytes últims (32 bits del segon banc).
El senyal que indica si el microprocessador vol llegir els primers 4 bytes (primer banc) o els
segons (segon banc) és A2, tal com es pot veure al cronograma de lectura de la figura 1.
T1 T2 T2
CLK
ADS*
A3-A31
A2
BE0*-BE3*
M/IO*
W/R*
D0-D31
primer segon
banc banc
Fig. 1: Cronograma de lectura de 8 bytes en mode Burst del i80486.
En T1 el µP comença el cicle de lectura activant ADS* i posant l’adreça que vol llegir, amb
A2=0. En el primer T2, A2=0 i es llegeixen els primers 4 bytes. En el segon T2, A2=1 i es
llegeixen els segons 4 bytes.
S’ha dissenyat un sistema basat en el µP i80486DX. Una versió simplificada de l’esquema en
cicles de lectura es pot veure a la figura 2:
32
ADS* A19-A31
BE0* BE1* BE2* BE3*
M/IO* ADS*
M/IO* BE0* BE1* BE2* BE3*
W/R*
32
D0-D31
32
Fig. 2: Esquema del sistema.
Es demana:
a) (2 punts) Mapa de memòria del sistema, especificant clarament a quina memòria estan
assignats els bytes. Hi ha zones imatge ?
b) (3 punts) Avaluar si s’accedeix correctament a les memòries M1-M4 a nivell de
temporització.
c) (3 punts) Avaluar si s’accedeix correctament a les memòries M5-M8 a nivell de
temporització.
d) (2 punts) El mode Burst real del i80486DX funciona amb 4 bancs de memòria. Quants
cicles de rellotge trigaria en transferir 32 bytes en mode burst ? I en mode normal ?
NOTA:
- Freq. de treball: 40MHz
- Temps d’accés de RAM des d’adreces (tAA) i CS* (tCC) = 35ns
- Temps accés de RAM des de OE* (tOE) = 10ns
- Retard de porta (tP) = 3 ns
Suposem que la memòria RAM es forma a partir de dos chips del tipus 681000 (128K x 8), i
que volem situar a partir de la posició 20000H del mapa.
µP
D0-D15
DB DB DB DB
A1-A23
AB M1 AB AB AB
M2 M4 M5
AS* OE * CS2 OE * CS2 OE * OE *
2 x SRAM
2 x EPROM
681000 27512
Problema 2
Es vol dissenyar un sistema basat en el µC V25 que permeti realitzar transferències de dades
d'un perifèric d'E/S a una RAM de la manera més optimitzada possible.
in al,[@ port E/S] /* Transf. de la dada del perifèric d'E/S a un registre (p.e. al)*/
mov [@ ram],al /* Transf. de la dada del registre al a la RAM */
Aquest procés implica que per a transferir una dada es necessiten dues instruccions: una de
lectura del perifèric d'E/S i una altra per escriure la dada a la memòria RAM. Per optimitzar la
velocitat de transferència s'ha optat per la solució de la figura 1. L'objectiu d'aquest esquema
és que cada cop que el microcontrolador executa una instrucció per a escriure una dada a la
RAM, s'escrigui de fet una dada provinent del perifèric, en comptes de l'especificada per la
instrucció.
A0-A14
A0-A19 A0-A14
A15-A18 CS*
OE*
MREQ* A19 WE*
MSTB*
R/W* D0-D7
RAM
D0-D7
CS*
V25 OE*
D0-D7 E/S
Fig. 1: Esquema del disseny.
Aquest disseny permet realitzar una transferència completa entre el perifèric i la memòria amb
una única instrucció del tipus:
Es demana:
A la figura 2 es pot veure el cronograma d'un cicle d'escriptura del µC V25, a la figura 3 el
cronograma d'un cicle d'escriptura a la memòria RAM i a la figura 4 el cronograma de lectura
del perifèric. Considerar a la figura 3 que la finalització de l’escriptura es dona quan es
desactiva CS* o WE*.
T1 T2
CLK
tAW
A0-A19
A0-A14
MREQ*
tCW
CS*
MSTB*
tWW
WE*
R/W*
D0-D7
D0-D7 tDW
Fig. 2: Cicle d'escriptura del V25. Fig. 3: Cicle d'escriptura RAM.
tCS2
CS*
tOE2
OE*
D0-D7
352%/(0$
Suposeu que tenim el microprocessador V25 connectat amb una memòria SRAM, segons un
esquema tradicional de descodificació, que permet accessos de lectura i d’escriptura.
AD
Buffers
R/W* Memòria
V25 E2
E1*
W* G*
Inversor
MREQ* DESCODIFIC
Podem suposar que el sistema de buffers indicat introdueix un retard de 10 ns als senyals que
passen a traves seu, que l’inversor introdueix també 10 ns i que el descodificador n’afegeix 15
ns. Tindrem en compta que no utilitzarem el senyal MSTB* del V25, que el diagrama de temps
per la operació de lectura i corresponent als principals senyals implicats apareix a continuació,
junt a les dades corresponents als principals espais temporals que es poden tenir en compta.
A la taula n significa el nombre d’estats d’espera introduïts.
Suposem que volem connectar un chip de memòria del tipus M628128, amb una capacitat total
de 1 Mbit, i amb un diagrama de blocs tal com el que apareix a continuació:
Suposant que s’ha connectat el microprocessador V25 a un circuit de memòria del tipus
M628128-20, responeu a les qüestions següents (SHOV FjOFXOV VHJHQWV SRGHX FRQVLGHUDU
GHVSUHFLDEOHVHOVWHPSVGHSXMDGDLEDL[DGDGHOVVHQ\DOV):
c) Suposant que en el procés de lectura, tal i com s’ha indicat, es deixa actiu permanentment el
terminal G* (Output enable) de la memòria, determineu la freqüència correcta de treball
perquè no s’hagi d’afegir cap estat d’espera.
Problema 2 (35%)
Es vol dissenyar un sistema basat en el µC V25 de NEC, que contingui RAM dinàmica. Aquest tipus de RAM es
caracteritza per:
1) la informació es guarda en capacitats: si carreguem un condensador a una certa tensió, aquest mantindrà la
tensió només durant un cert temps, depenent de les pèrdues. S’haurà de refrescar la informació periòdicament.
2) Per reduir el número de pins de l’encapsulat es multiplexen les adreces:
Tots els bytes de la RAM es distribueixen en una matriu (files x columnes). El que es fa és primer enviar
l’adreça de files (Row) i després la de columnes. Això fa que el número total de pins d’adreces del xip sigui la
meitat del necessari.
L’esquema intern, simplificat, d’una RAM dinàmica es pot veure a la Figura 1. Com es pot veure, la quantitat total
de memòria és 64Kbytes: distribuïda en una matriu de 256x256 bytes. Els bits d’adreces són només 8 (A0-A7), en
comptes de les 16 que a priori es necessitarien.
La multiplexació d’adreces consisteix en guardar l’adreça total en dues operacions. Primer es guarda la meitat de
l’adreça a un registre (de files) i després l’altra meitat a un altre (de columnes). Aquests registres de files i columnes
guarden les adreces (A0-A7) en els flancs de baixada dels senyals RAS* (Row Address Strobe) i CAS* (Column
Address Strobe), respectivament. Aquest darrer senyal també fa les funcions de CS*.
A0-A7
CAS* Registre-Columnes
DESCODIFICADOR
DE COLUMNA
256 columnes
1 byte
8 8
A0-A7
- Instant A: amb el flanc de baixada del senyal RAS* la memòria guarda l’adreça de files.
- Instant B: amb el flanc de baixada del senyal CAS* la memòria guarda l’adreça de columnes. Ara la memòria ja
té l’adreça completa i comença la descodificació. Amb el seu corresponent retard surten les dades pel bus de
dades.
- Instant C: amb la desactivació del senyal CAS*, la memòria deixa, al cap d’un cert retard, el bus de dades en
alta impedància.
D0-D7
D0-D7
A0-A7 1
A0-A19 D0-D7
8
MUX A0-A7
MREQ*
MSTB* R/W* W*
A8-A15 0 SEL
IOSTB* DRAM
MREQ* RAS*
R/W*
MSTB* CAS*
V25
En general la temporització requerida entre els senyals RAS* i CAS* demana una circuiteria externa d’una certa
complexitat. En aquest cas i com que fem servir el V25, aprofitem el retard entre els senyals MREQ* i MSTB* per a
generar aquest retard i poder fer còmodament la multiplexació d’adreces.
El retard del multiplexor entre un canvi del senyal SEL i l’actualització de la sortida és de 10 ns (retard fix,
sempre el mateix) i la freqüència de treball del V25 és de 10MHz.
Full per entregar
Nom i Cognoms:
T1 T2
CLK
A0-A19
MREQ*
MSTB*
R/W*
D0-D7
a) (1 punt) Rang d’adreces ocupat per la RAM al sistema i nº de zones imatge (si n’hi ha).
Rang[@]: Nº Z.I.:
Fila: Columna:
c) (2.5 punts) A la següent figura tenim la temporització requerida entre els senyals RAS* i CAS* i les adreces. El
nostre sistema compleix tots els cinc requisits temporals ?
d) (2.5 punts) Els temps d’accés de la memòria (tRAC i tCAC) es visualitzen a la següent figura. Tenint en compte el
sistema que hem dissenyat i la temporització del V25 en cicle de lectura, funcionarà el sistema?
(independentment de la resposta a l’apartat anterior).
tRAC: Temps màxim des d’activació RAS* fins dada vàlida: 100 ns (temps d’accés)
tCAC: Temps màxim des d’activació CAS* fins dada vàlida: 25 ns (temps d’accés)
e) (2 punts) Les memòries dinàmiques necessiten ser refrescades periòdicament. Estan dissenyades de tal manera
que quan es fa la lectura d’una dada situada a una fila concreta, es fa automàticament el refresc de tota la fila.
Sabent això s’han fet els següents programes:
PROGRAMA A PROGRAMA B
PROBLEMA 2 (30%)
A0-A7
Figura 1
Taula 1
Nom i cognoms: Grup:
Aquest microcontrolador té un bus d’adreces de 16 bits, distribuït en dos ports (Port 0: [A0-
A7/Bus de dades] i Port 2: [A8-A15]). El Port 0 és un port multiplexat: al principi del cicle de
bus és un bus de sortida on el microcontrolador posa la part baixa del bus d’adreces (A0-A7) i
després és el bus bidireccional de dades.
• A l’inici del cicle de bus l’adreça completa (A0-A15) surt per Port 0 i Port 2.
• Externament, s’utilitza un latch per guardar la part baixa del bus d’adreces (A0-A7).
• El latch és un element de memòria que és transparent (Q=Dn) quan el seu enable (LE) és
actiu (‘1’) i manté l’última dada (Qfutur=Qpassat) quan enable (LE) és inactiu (‘0’).
• Com a senyal de control d’aquest latch, el microcontrolador disposa d’un senyal específic
(ALE: Address Latch Enable) que és utilitzat com a senyal habilitador del latch.
• En el moment en que el senyal ALE fa una transició de ‘1’ a ‘0’, el latch emmagatzema
A0-A7.
El sistema dissenyat es pot veure a la següent figura:
8
8 D0-D7 D0-D7
8
Port 0: P00-P07 Dn Q A0-A7 14 14
A0-A13 A0-A13 A0-A13 A0-A13
LATCH
RD* OE* RD* OE*
ALE LE WR* WE*
CS* CS*
8
A15 A15
Port 2: P20-P27 A8-A15
RD*
WR*
8051
Figura 2
Les característiques del latch que fem servir són les següents:
tRC
Address
tAA
tCO
CS*
tLZ t HZ
t OE Min. Max.
t OLZ
OE* tAA - 300 ns
tOHZ tCO - 300 ns
tOE - 250 ns
Dout Valid Data
tOH
Figura 4
Es demana:
Rang @: Nº Z.I.:
2. Ens garanteix el microcontrolador que quan activa el senyal RD* ha deixat prèviament en
alta impedància el Port 0 ? Per què ? (20%)
4. Quins 3 temps màxims del microcontrolador estan relacionats amb l’aparició de dada vàlida
al bus de dades ? Identifiqueu els seus noms (Taula 1). (10%)