Está en la página 1de 327

DSBM

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.

Es recomendable, en la medida de lo posible, que el estudiante intente resolver los


problemas s in m irar l a s olución. T odos l os pr oblemas s on a parentemente m ucho m ás
fáciles cuando se mira la solución y el proceso de aprendizaje se beneficia mucho de ser
capaz de hallar la solución por uno mismo. Adicionalmente, muchos problemas admiten
más de una solución.

Finalmente, esta colección abarca varios años de distintas asignaturas relacionadas


con sistemas ba sados en microprocesador (DSBM, SEBM, S BM, C ISE IV). Las
soluciones de l os p roblemas de penden de a lgunas hi pótesis r ealizadas respecto de l os
enunciados. Con el paso del tiempo es posible que se hayan dado cambios en algunas
hipótesis de resolución. Es posible, por tanto, que pueda haber algún conflicto entre la
solución que se halla en esta colección y la metodología propuesta por el profesor en el
cuatrimestre e n c urso. A dicionalmente, t odo y q ue s e i ntenta e liminar l os e rrores que
puedan haber en la colección, siempre hay la posibilidad de que haya alguna errata en
alguna s olución. En caso de duda respecto de l a s olución propuesta en esta colección,
consultado con vuestro profesor de teoría.
DSBM Reava 1/7/2022

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?

Cronograma del microprocessador en un cicle de lectura

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)

Consideri un sistema basat en el microcontrolador STM32F407 de 16 bits. Aquest


microcontrolador disposa d’un bloc Flexible Static Memory Controller (FSMC) que
permet la connexió de memòria externa en 4 àrees consecutives que van de l’adreça
6000 0000h a la 6FFF FFFFh. El microcontrolador disposa de quatre senyals NE1...NE4
que són sortides de chip select per a cadascuna d’aquestes 4 àrees.

Els senyals del bus extern són:


NE1..NE4 Sortides de chip select actives a nivell baix
NBL0..NBL1 Strobes de carrer actius a nivell baix
A1..A25 Bus d’adreces
D0..D15 Bus de dates
NOE Strobe de lectura actiu a nivell Baix
NWE Strobe d’escriptura actiu a nivell Baix

Les quatre àrees de memòria externa associades als senyals NE1..NE4 estan associades a
les següents posicions del mapa de memòria:

Es desitja connectar 8 Mbytes de memòria RAM al microcontrolador STM32F407 a partir


de l’adreça 6500 0000h i 2 Mbyte de memòria ROM segons la descodificació feta i amb
els xips que es mostren a la figura:

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)

e) Dibuixeu el mapa de memòria del microcontrolador comprés des de l’adreça


6000 0000h a la 6FFF FFFFh indicant on comença i acaba cada imatge. (0,5 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:

f) Considerant la descodificació feta entre microcontrolador i la memòria ROM, quins


són els requisits que han de tenir els temps tAA, tACE i tDOE de la memòria ROM per
complir amb els requisits de setup del microcontrolador en una operació de lectura?
Considereu que la porta OR introdueix un retard màxim de 2 ns. (0,75 punts)

6
Problema 3 (4 punts)

Consideri un sistema basat en el microcontrolador STM32F407 de 16 bits. Aquest


microcontrolador disposa d’un bloc Flexible Static Memory Controller (FSMC) que
permet la connexió de memòria externa en 4 àrees consecutives que van de l’adreça
6000 0000h a la 6FFF FFFFh. El microcontrolador disposa de quatre senyals NE1...NE4
que són sortides de chip select per a cadascuna d’aquestes 4 àrees.

Els senyals del bus extern són:


NE1..NE4 Sortides de chip select actives a nivell baix
NBL0..NBL1 Strobes de carrer actius a nivell baix
A1..A25 Bus d’adreces
D0..D15 Bus de dates
NOE Strobe de lectura actiu a nivell Baix
NWE Strobe d’escriptura actiu a nivell Baix

Les quatre àrees de memòria externa associades als senyals NE1..NE4 estan associades a
les següents posicions del mapa de memòria:

Es desitja connectar 8 Mbytes de memòria RAM al microcontrolador STM32F407 a partir


de l’adreça 6500 0000h i 2 Mbyte de memòria ROM segons la descodificació feta i amb
els xips que es mostren a la figura:

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

6E00 0000 - 6E1F FFFF


6F00 0000 - 6F1F FFFF
Les connexions que falten s’han dibuixat en la figura de l’apartat anterior.

k) Dibuixeu el mapa de memòria del microcontrolador comprés des de l’adreça


6000 0000h a la 6FFF FFFFh indicant on comença i acaba cada imatge. (0,5 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:

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:

l) Considerant la descodificació feta entre microcontrolador i la memòria ROM, quins


són els requisits que han de tenir els temps tAA, tACE i tDOE de la memòria ROM per
complir amb els requisits de setup del microcontrolador en una operació de lectura?
Considereu que la porta OR introdueix un retard màxim de 2 ns. (0,75 punts)
f=50 MHz -> T= 20 ns

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]

La descripció dels senyals és:

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).

Aquest microcontrolador reserva una part de l’espai


de memòria per als accessos externs que utilitzen els
senyals de chip enable (FSMC_NE[1:4]). Aquestes
àrees són els 4 bancs identificats en el següent
esquema com FSMC bank1 NOR/PSRAM 1 (fins a
4), relacionats amb cada senyal de enable
respectivament.

5
COGNOMS: NOM: GRUP:

El cronograma del microcontrolador en lectura és el següent:

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.

NOTA: La marca ‘#’ indica que el senyal és actiu a nivell baix.

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).

b) (1 punt) Feu la descodificació de la memòria (a l’esquema de l’inici). Volem que aparegui al


FSMC bank1 NOR/PSRAM 2. Feu la descodificació més simple possible, que pot ser incompleta.

c) (0.5 punts) Indiqueu el nombre de zones imatge de la memòria, si n’hi ha.

Nº z.i.: A18-A25: 2^8 = 256

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:

tw(NADV)(min)+tv(NADV_NE)(min)-tv(A_NE)(max) = 18.5+1-2=17.5ns > tASADVH(min)=3ns


(setup d’adreces respecte ADV#)

tAHADVH:

th(AD_NADV)(min)= THCLK=20ns > tAHADVH(min)= 2ns


(hold d’adreces respecte ADV#)

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.

Temporització correcte pq:

(LB# i UB#)
tBA:

tw(NE)(min)-tv(BL_NE)(max)-tsu(Data_NE)(min)=3 THCLK-1ns-1ns -2ns=56ns > tBA(max)=5ns

(OE#)
tDOE:

tw(NOE)(min)-tsu(Data_NOE)(min)= THCLK-1 -3ns=16ns > tDOE(max)=5ns

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.

Els principals senyals d’aquesta CPU són:


A1-A23: Bus d’adreces
D0-D15: Bus de dades
AS*: Address strobe. Strobe d’adreces. S’activa a “0” en cada cicle de bus.
LDS*, UDS*: Lower data strobe i upper data strobe. Strobes de dades. S’activen a “0”
en l’accés a D0..D7 (LDS*) o D8..D15 (UDS*).
R/W*: Indica si es tracta de cicle de lectura “1” o d’escriptura “0”.

(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 (𝑾𝑾𝑾𝑾𝑾𝑾 ��������).

����[3..0], s’activa quan el microcontrolador fa un accés de memòria


Cadascun dels senyals de chip select, 𝐶𝐶𝐶𝐶
a rangs d’adreces configurats amb els registres ADDRSEL1-4.
Noteu que els CS estan numerats 0..3 i en canvi els seus registres associats són 1..4.

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.

D’altra banda, el cronograma del microcontrolador és:

Figura 1: Cronograma en lectura del microcontrolador funcionant en mode multiplexat.

7
Taula: Temps associats al microcontrolador.

Es demana, justificant breument totes les respostes:

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?

@ inicial banc adreces: Mida del banc:

Volem connectar dues SRAM al microcontrolador, fent servir uns latchs perquè configurarem el
microcontrolador per a treballar amb bus adreces/dades multiplexat:

Figura 2: Sistema complet, incloent latchs, SRAMs i el microcontrolador.

8
La descripció del pin-out de la SRAM R1LP0108E de Renesas és:

El cronograma associat a la SRAM és:

Figura 3: Cronograma en lectura de la SRAM.

Taula: Temps associats al cronograma en lectura de la SRAM.

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:

i un retard de propagació màxim d’entrada-sortida, tPHL=tPLH=5.5ns (quan LE=1).

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)

Volem dissenyar un mapa de memòria per a un microprocessador de 16 bits amb 1M Byte de


RAM contigua i 256 KBytes de ROM també contigua. Per al bloc de RAM s’utilitzen quatre
xips de RAM i per al bloc de ROM s’utilitzen dos, tal i com es veu a la figura.

Es demana:

a) Determineu els valors de n i m dels xips de RAM i ROM.. (0,25 punts)


A respondre en la tasca Entrega de Resultadosd’Atenea:
a1) n =
a2) m =

(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 =

Es vol estudiar la compatibilitat temporal entre les memòries M1, M2, M3 i M4 i el


microprocessador. En els següents apartats, suposeu que la freqüència d’operació del
microprocessador és de 10 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=100ns


• Temps d’accés màxim des de l’activació de CS*: tACE=100ns
• Temps d’accés màxim des de l’activació de OE*: tOE=50ns

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

Cronogrames i dades als fulls següents

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)

a) Determineu els valors de n i m dels xips de RAM i ROM.(0,25 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

z.i. RAM=8 z.i. ROM = 32

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?

tcapture - tDATA_IN ≥ tsetup


Del cronograma, veiem que tcapture = 3,5 T, on T=1/f=100ns i que tsetup=t27=5ns
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):

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)?

tEOW - tDATA_IN ≥ tsetup


Del cronograma d’escriptura:
tDATA_IN = 1,5T + t23
tEOW = 3,5T + t12 + tOR
Llavors, de la primera inequació:
(3,5T + t12 + tOR)min – (1,5T + t23)max = 2T + t12_min + tOR min - t23_max=200ns+3ns+0ns–35ns = 168ns
Per tant, el requisit de setup de la memòria ha de ser inferior a 168ns.

17
DSBM Final 15/6/2020

Problema 3 (5 punts)

Disposem d’un sistema basat en un microcontrolador de 16 bits on tenim ja definides


les connexions del chip de ROM M5. Al sistema volem afegint 4 xips de RAM tal com
es mostra a figura.

Descripció dels senyals del microcontrolador:

A1..A23: Bus d’adreces


D0..D15: Bus de dades
RD*: Strobe de lectura actiu a nivell baix. En una operació de lectura sempre
es llegeix tot el bus de dades (D0-D15).
WRH*: Strobe d’escriptura per al carrer alt del bus (D8-D15), actiu a nivell baix.
WRL*: Strobe d’escriptura per al carrer baix del bus (D0-D7), actiu a nivell
baix.

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)

Finalment es vol analitzar si el xip de ROM compleix amb les especificacions


temporals en una operació de lectura del microcontrolador @ 10 MHz segons la
descodificació indicada en la figura anterior. Al final del problema trobareu informació
sobre els cronogrames del microcontrolador en un cicle de lectura a més de la taula de
descripció del temps implicats.

Suposeu un retard de propagació màxim per a la porta OR de 10 ns.

Pel que fa a la memòria ROM, les seves especificacions temporals són:


• Temps d’accés màxim des de les adreces: tAAmax= 90 ns
• Temps d’accés màxim des de l’activació de CS*: tACEmax= 90 ns
• Temps d’accés màxim des de l’activació de OE*: tOEmax= 45 ns

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=

Cronograma del microcontrolador en un cicle de lectura

Taula de descripció dels temps del cronograma de lectura del microcontrolador

TCP: Període de rellotge

6
Problema 3 (5 punts)

Es demana:
(0,5 punts)
a) Quantitat total de memòria RAM que es vol afegir al sistema?

Mida total RAM (bytes)= 4*2^18=2^20 = 1MB 0,5ptos

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

0,25+ 0,25 + 0,25 ptos


0,25 ptos
D0..D7 D8..D15 D0..D7 D8..D15
0,25 ptos D0..D7 D0..D7 D0..D7 D0..D7
A1..A18 A0..A17 A0..A17 A1..A18 A0..A17 A0..A17
M1 M2 M3 M4
0,25 ptos RD* OE* OE* RD* RD* OE* OE* RD*
0,25 ptos WRL* WE* WE* WRH* WRL* WE* WE* WRH*
CS* CS* 0,25 ptos CS* CS*

0,5 ptos 0,5 ptos


A19 A20 A23 A20 A19 A23

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

M3/M4 500000 – 57FFFF


0,25 ptos D00000
M1/M2 480000 – 4FFFFF
M5 C00000 – CFFFFF 0,25 ptos
C00000

M3/M4 300000 – 37FFFF


0,25 ptos B00000
M1/M2 280000 – 2FFFFF
M5 A00000 – AFFFFF 0,25 ptos
200000 A00000

M3/M4 100000 – 17FFFF


0,25 ptos 100000 900000
M1/M2 080000 – 0FFFFF
M5 800000 – 8FFFFF 0,25 ptos
000000 800000

Aquest mapa es el resultant de la descodificació indicada que, recodeu, es pot


simplificar una mica més.

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?

Donada la freqüència de rellotge, f=10 MHz -> T=100 ns 0,25 ptos


Marge de temps per tAA
𝑇𝑇
t𝐴𝐴𝐴𝐴 ≤ 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 = 5 − 55𝑛𝑛𝑛𝑛 0,5 ptos
2
90ns<250ns-55ns
0<105ns, -> tenim marge de 105 ns 0,25 ptos
Marge de temps per tACE
𝑇𝑇
t𝐴𝐴𝐴𝐴𝐴𝐴 + 10 ns ≤ 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 = 5 − 55𝑛𝑛𝑛𝑛 0,5 ptos
2
100 ns<250ns-55ns
0<95ns, -> tenim marge de 95 ns 0,25 ptos
Marge de temps per tDOE
𝑇𝑇
t𝑂𝑂𝑂𝑂 ≤ 𝑡𝑡𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅 = 3 − 55𝑛𝑛𝑛𝑛 0,5 ptos
2
45ns<150ns-55ns
0<50ns, -> tenim marge de 50 ns 0,25 ptos
SI es compleixen els temps.
(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.

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

Es vol dissenyar un sistema basat en un microprocessador STM32H763xI. El bus extern d’aquest


microprocessador, anomenat Flexible Memory Controller (FMC), té els següents pins:

Figura 1: Interfície del FMC del microcontrolador.


El mapa de memòria del microprocessador està dividit en diversos bancs. El primer d’ells, Bank 1, és el
que està lligat al FMC:

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]:

D’altra banda, el microcontrolador ens diu:

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:

Figura 2: Esquema intern de la memòria PSRAM: Pseudo-SRAM.

Figura 3: Descripció dels pins de la Pseudo-SRAM.

6
Figura 4: Esquema de connexions

Figura 5: Cronograma lectura microcontrolador en mode asíncron i multiplexat.

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.

b) (0.5 punts) Capacitat total en Mbytes del xip de PSRAM.

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.

2^26 bytes = 64Mbytes

b) (0.5 punts) Capacitat total en Mbytes del xip de PSRAM.

PSRAM (Mbytes): 2^21 x 2 bytes = 4Mbytes

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]

N. z.i. (PS-RAM): 2^4 = 16


Bits adreces que generen z.i: A22, A23, A24, A25 0x63FF FFFF

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.

tW(NADV) (min) +tV(NADV_NE)(min)-tV(A_NE)(max)= T-0.5ns + 0ns – 0.5ns > tAVS = 5ns


th(AD_NADV) (min) = T+0.5ns > tAVS = 2ns

T>6ns

MAX / MIN frequency fmc_ker_ck: 1 / 6 ns = 166MHz (freqüència màxima)

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.

NOTA: El retard entre la desactivació de NOE i la desactivació de NE, t_H(NE_NOE), té mínim 0 i no té


màxim. A més:
tV(NOE_E)(min) + TW(NOE)(min) = TW(NE)(min)
Per tant utilitzem els temps referenciats a NOE.

Min { tW(NOE) } –tsu(DATA_NOE) = 2T-1ns – (T-2ns) = T+1ns > tOE = 20ns


Min { tv(NOE-NE) + tW(NOE) } –tsu(DATA_NE)= 3T-1ns – (T-2ns) = 2T+1ns > tCO = 70ns
Min { tv(NOE-NE) + tW(NOE) } –tv(A_NE)(max) - tsu(DATA_NE)= 3T-1ns -0.5ns– (T-2ns) =
2T+0.5ns > tAA = 70ns
Min { tv(NOE-NE) + tW(NOE) } –tv(BL_NE)(max) - tsu(DATA_NE)= 3T-1ns -0.5ns– (T-2ns) =
2T+0.5ns > tBA = 70ns

MAX / MIN frequency fmc_ker_ck: T>34.75ns , f = 28.7MHz (freqüència màxima)

20
DSBM Reavaluacio 9/7/2019

Problema3 (4 punts)

Es vol di ssenyar un sistema basat en el microcontrolador V25 al q ual s e li co nnectarà


una m emòria S RAM, IS62WV2568 de 2 M bit d e cap acitat. La f reqüència de r ellotge
fCYC del V25 és de 10 MHz.

Els principals senyals d’aquest microprocessador son:


A0-A19: Bus d’adreces
D0-D8: Bus de dades
MREQ*: Indica que ha començat un cicle de bus de memòria.
MSTB*: Indica lectura o escriptura a memòria.
R/W*: Indica si es tracta d’un cicle de lectura/escriptura.

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

Cronograma del microcontrolador en un cicle d’escriptura

8
Descripció dels temps dels cronogrames de lectura i escriptura del microprocessador

n es el nombre d’estats d’espera ( n ≥ 0 )

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

El rang d’adreces del banc de SRAM és: 40000H-7FFFFH


Dels dos strobes que proporciona el microcontrolador, utilitzarem el senyal MREQ*
perquè si ens fixem en el cronograma de lectura del microcontrolador és el que dóna
més temps a la memòria per a que proporcioni la dada (tDMRD > tDMSD),
concretament 0,5 T més, on T és el període de la freqüència d’operació del
microcontrolador.

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.

La pos ició 60000 H no coincideix a mb c ap qu e sigui m últiple d el t amany d e l a


memòria. E l q ue f arem és dividir to t l’ espai d el ma pa d e m emòria en b locs d el
tamany del màxim comú divisor entre la posició d’inici i el tamany de la memòria,
això és en blocs (marcs) de 128Kbytes.

El bloc de memòria, amb tamany de 256Kbytes, ocuparà 2 marcs, el 3 i el 4 segons


la ta ula s egüent. La lín ia A 17 serà c omuna a l a d escodificació i nterna del x ip i
alhora en la descodificació externa.

A19 A18 A17 Nº de Marc


0 0 0 0
0 0 1 1
0 1 0 2
0 1 1 3
1 0 0 4
1 0 1 5
1 1 0 6
1 1 1 7

Per tant CS2=(A19*·A18·A17)+(A19·A18*·A17*)

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

Aquest m icrocontrolador no t é un t emps de s etup pe rò s í 3 t emps que s’han de


complir on el temps de setup està inclòs. Aquests són:

tDADR : des de l’activació de les adreces i R/W* a dada vàlida.


tDMRD : des de l’activació de MREQ* a dada vàlida
tDMSD : des de l’activació de MSTB* a dada vàlida

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

El temps de hold del microcontrolador que s’ha de complir és tHMDR


tdada_out – tMREQ*_off ≥ tHMDR, segons el cronograma de la memòria
tHZCS ≥ tHMDR
0 ≥ 0 OK

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

L’avaluació del temps de setup en escriptura ve fixada per la següent inequació:


tEOW – tDADA_IN ≥ tSETUP, on e l t SETUP el f ixa la me mòria ( tSD). P er t ant, de l
cronograma del microcontrolador:
tSDM_min ≥ tSD_min
(n+1)T-50ns ≥ 30ns -> (n+1)100ns-50ns ≥ 30ns -> n≥ -0,2 -> n=0

Hold

El temps de hold de la memòria que s’ha de complir és tHD


tdada_out – tEOW ≥ tHD, segons el cronograma del microcontrolador
tHMDW ≥ tHD
0,5T – 30ns ≥ 0
20ns ≥ 0 OK

21
DSBM Examen Final 12/6/2019

Problema 3 (4 punts)

La seg üent f igura m ostra un s istema ba sat e n el microprocessador 68000 a l qua l s e l i h a


connectat certa quantitat de memòria. La freqüència de treball del sistema és de 20 MHz.

Els principals senyals d’aquest microprocessador són:


A1-A23: Bus d’adreces
D0-D15: Bus de dades
AS*: Addressstrobe. Strobe d’adreces.
LDS*, UDS*: Lower data strobe i upper data strobe. Strobes de dades.
R/W*: Indica si es tracta de cicle de lectura “1” o d’escriptura “0”.

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.

Es v ol af egir, a la p art m és b aixa p ossible d el m apa i s ense q ue h i h agi solapament am b l a


memòria ja existent, un bloc de 512KB de RAM fet amb 4 xips de 128KB.

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

El rang d’adreces de la primera imatge del banc de RAM és: 400000H-47FFFFH


El rang d’adreces de la primera imatge del banc de ROM és: 800000H-81FFFFH

z.i. RAM = 22=4 z.i. ROM = 25=32

(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.

A23 A22 A21 A20 A19 A18 A17.........................A1 A0 Strobe CPU


0 0 0 0 0 0 A16.........................A0 0 LDS* M5
0 0 0 0 0 0 A16.........................A0 1 UDS* M6
0 0 0 0 0 1 A16.........................A0 0 LDS* M7
0 0 0 0 0 1 A16.........................A0 1 UDS* M8

17
Temporització

Avaluació en lectura
(0,75 punts)
g) Determineu si es compleix el requisit de temps de setup del microprocessador.

tcapture - tDATA_IN ≥ tsetup

Del cronograma, veiem que tcapture = 3,5 T, on T=1/f=50ns i que tsetup=t27=5ns

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).

tEOW - tDATA_IN ≥ tsetup

Del cronograma d’escriptura:


tDATA_IN = 1,5T + t23
tEOW = 3,5T + t12 + tOR

Llavors, de la primera inequació:


(3,5T + t12 + tOR)min – (1,5T + t23)max = 2T + t12_min + tOR min - t23_max=100ns+3ns+0ns–25ns = 78ns

Per tant, el requisit de setup de la memòria ha de ser inferior a 78ns.

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

Es vol dissenyar un sistema basat en el µC MB91460 de Cypress. Aquest microcontrolador té memòria


interna ( On-Chip P rogram Memory) i p ermet fer s ervir memòria e xterna. Li volem co nnectar d ues
memòries externes:

El bus extern d’aquest microcontrolador té els següents pins:

- CSX[7:0]: External Memory Chip Enable outputs (active low).


- A[31:0]: Adress bus
- D[31:0] Data bus
- WRX0-3: External Memory Write Strobes (active low), for each byte lane.
- RDX: External Memory Read Strobe (active low)

La configuració dels CSX[7:0] es realitza mitjançant diversos registres.

(i de la mateixa manera la resta de senyals CSX2-7)

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 15-0 registre ASR0:

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.

El cronograma microcontrolador en LECTURA és el següent:

La freqüència de rellotge del microcontrolador és de 20MHz.

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.

tAA = tCS = tOE =

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

Es v ol d issenyar u n sistema basat e n e l µC SAM4Sd’Atmel f ent s ervir u na m emòria estàtica externa


connectada al S taticMemoryController ( SMC) d el microcontrolador. A questa memòria és
RadiationHardened i permet resistir una dosi de radiació ionitzant de fins a 300 krads(Si):

El bus extern d’aquest microcontrolador té els següents pins:

- NCS[0:3]: Chip Enable outputs (actius a nivell baix).


Activated on external bus accesses.
- A[23:0]: Adress bus
- D[7:0]: Data bus D0-D7.
- NRD: Activelowreadsignal
- NWE : Activelowwritesignal

El mapa de memòria del microcontrolador és el següent:

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.

El cronograma en lectura del microcontrolador es pot veure a la figura següent:

6
D’altra banda la memòria que hem connectat té la següent taula de la veritat.

I els següents temps en lectura:

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:

d) (0.5 punts) Com programareu el valor de NRD_HOLD ?

e) (2 punts) Programeu els valors del temps del microcontrolador

NRD-SETUP = NCS-RD-SETUP = NRD-PULSE =

NOTA: Aquestes variables han de prendre valors sencers entre 0 i 31.

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.

El bus extern de la memòria magnetoresistiva segueix la següent taula de la veritat:

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. =

El cronograma de lectura del microcontrolador és el següent:

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:

Els temps de la memòria magnetoresistiva en lectura són:

b) (3 p unts) T robeu el s v alors dels p aràmetres R DSETUP, RDSTRB i RDHOLD q ue p ermeten


operar més ràpidament amb la memòria si t HFCORECLK = 20ns. Indiqueu la/les inequacion(s) que
s’ha(n) de complir.

RDSETUP = RDSTRB = RDHOLD =

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

Es v ol d issenyar u n s istema b asat e n e l µC P IC18F8620 de M icrochip. A quest microcontrolador t é


memòria i nterna ( On-Chip P rogramMemory) i p ermet fer s ervir memòria ex terna. T é 4 modes
d’operació:

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:

Una descripció dels 4 modes de funcionament la teniu a continuació:

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.

a) (0.5 punts) En cas de programar el microprocessador en mode “BootBlock Mode”, quina


quantitat total de flash interna podrem accedir ?

i si el programem en mode “ExtendedMicrocontroller mode” ?

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” ?

i si el programem en mode “ExtendedMicrocontroller mode” ?

El bus extern d’aquest microcontrolador té els següents pins:

- 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.

Amb la següent taula funcional:

Els temps associats al latch de retard (tPLH, tPHL), setup (tsu) i hold (th) estan definits amb els següents
gràfics:

c) (1 punt) Completeu la descodificació següent de la manera més senzilla possible (deixeu


indicades totes les connexions necessàries):

5
El cronograma en lectura del microcontrolador és:

Si el període del rellotge, TCY=100ns:

d) (1 punt) Calculeu els màxims valors que poden prendre els temps de setup i hold dels latchs.

setup (tsu): hold (th):

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

Professors: Jordi Salazar, Vicente Jiménez.

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)

L’esquema d e l a figura m ostra u n s istema basat en u n m icroprocessador am b


característiques s emblants a l es d’ un 68000 a l qual s e l i ha connectat un ba nc d e
memòria SRAM format amb xips del tipus KM681000B. El microprocessador treballa
amb un r ellotge de 16 MHz i l es m emòries t enen un accesstime de 5 5 ns , a mb dos
entrades de selecció de xip, una a nivell baix i l’altra a nivell alt.

Es demana:

(0,2 punts)
a) La quantitat total de memòria en bytes que pot adreçar aquest
microprocessador?

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
(0,2 punts)
b) La quantitat de memòria en bytes que té cada xip de memòria.

A0-A16 ->17 línies d’adreces -> 217 = 128K posicions de memòria


128K posicions de memòria x 1bytes/posició de memòria ->128Kbytes de memòria

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.

A23 A22 A21 A20 A19 A18 A17...........A1 A0 Strobe CPU


0 1 X 1 1 X A16..........A0 0 LDS* M1
0 1 X 1 1 X A16..........A0 1 UDS* M2

Com hi ha dos línies que no s’utilitzen en la descodificació (A21 i A18) resulten en un


total de 22=4 zones imatge. Que són:

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.

8 Mbytes -> 800000H - FFFFFFH

(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.

A23 A22 A21 A20 A19 A18 A17...........A1 A0 Strobe CPU


0 1 X 1 1 X A16..........A0 0 LDS* M1
0 1 X 1 1 X A16..........A0 1 UDS* M2
1 0 X X X X A16..........A0 0 LDS* M3
1 0 X X X X A16..........A0 1 UDS* M4
1 1 X X X X A16..........A0 0 LDS* M5
1 1 X X X X A16..........A0 1 UDS* M6

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

Ara v olem d eterminar s i s ’acompleixen l es es pecificacions t emporals en tre el


microprocessador i les memòries M1 i M2 segons la descodificació feta en la figura. En
tots els apartats, p er a les portes NOT, OR i AND, suposeu uns retards de propagació
màxims de 15 ns per a cada porta.

(1,6 punts)
g) Calculeu si es compleixen els requisits dels temps de setup i hold en una operació
de lectura.

Temps de setup

tcapture - tDATA_IN ≥ tsetup

Del cronograma, veiem que tcapture = 3,5 T, on T=1/f=62,5ns i que tsetup=t27=5ns

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

tDATA_OUT-tcapture≥ thold , on thold= t29 = 0ns.

Si ens fixem en el cronograma del microprocessador, el primer senyal que es


desactiva és el de LDS* (UDS*), ja que les adreces i R/W* es manté molt més enllà de
la captura. A més, LDS* (UDS*) no es desactiven fins al menys 3ns. Per tant, també es
compleix amb el 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.

Cronograma del microprocessador en un cicle de lectura

4
Descripció dels temps del cronograma de lectura del microprocessador

5
Cronograma de la memòria en una operació de lectura

Descripció dels temps per a la memoria

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

Professors: Jordi Salazar, Vicente Jiménez.

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

Es vol dissenyar un sistema basat en el mC ST10F269 de ST. La descripció dels senyals


és:

- CS0*: Chip Select 0output


- A23-A0: Adress bus (A0 is ‘0’ if data bus is programmed for 16-bit data transfers)
- D15-D8: Upper data bus (16-bit wide data transfers only)
- D7-D0: Lower data bus
- RD*: External Memory Read Strobe. RD* is activated 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)

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:

RGSAD (12 bits) =


RGSZ (4 bits) =

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.

e) (0,5 punts) Calculeu el temps màxim d’accés de CS* de la memòria en les


mateixes condicions que a l’apartat anterior.

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*.

El C S0* e scombrarà e ls bi ts A 11..A0 pe r t ant 4 kb ytes ( els bi ts A 23..A12 e stan


fixats)

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:

RGSAD (12 bits) =000 XXX XXX XXX


RGSZ (4 bits) =1001 = 9

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.

2TCL=50ns tOE hauria de ser més petit que t14(max)=2TCL-19+tC=50-19ns=31ns

e) (0.5 punts) Calculeu el temps màxim d’accés de CS* de la memòria en les


mateixes condicions que a l’apartat anterior.

tCS hauria de ser més petit que t39(max)=3TCL-19+tC+2tA=75-19ns=56ns

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

Es vol di ssenyar un s istema ba sat e n un 32 -Bit RISC F lash Microcontroller de T exas


Instruments: RM48L952. La interfície d’aquest microcontrolador és:

Signal Type Description


EMIF_nCS[3:2] Output EMIF Chip Selects
EMIF_BA[1:0] Output Bank addresses
EMIF_ADDR[21:0] Output Address Bus
EMIF_nDQM[1:0] Output Byte lane strobes
EMIF_nOE Output Output Enable (reads)
EMIF_DATA[15:0] Input/Output Data Bus
EMIF_nWE Output Write Enable (writes)

Els bi ts E MIF_BA[1:0] indiquen a qui n ba nc de memòria estem accedi nt i es pode n


veure com bi ts d’ adreces de nivell alt ( A22 i A 23). Els s enyals amb ‘n’ a l nom s ón
actius a nivell baix. El bus de dades pot ser programat amb amplades de 8 o 16 bits. En
cas de ser programat en amplada de 16 bits, el bit d’adreces de menor pes val sempre 0.
Es demana:

a) (0.5 punts) Indiqueu l’amplada màxima que tindrà cada bloc de memòria
direccionat per un senyal de Chip Select.

Es volen connectar 4 xips de memòria SRAM a aquest microcontrolador:


b) (1.5 punts) Feu la descodificació més simple possible de tal manera que els 4
xips de RAM estiguin direccionats pel senyal EMIF_nCS[2]. Indiqueu
quina amplada de bus de dades creieu que s’ha de programar (8 o 16 bits).

c) (0.5 punts) Indiqueu el nombre de zones imatge de cada xip de RAM.

El cronograma en lectura del microcontrolador és el següent:


Fixeu-vos que:

- la N OTA ( 2) ens di u que el pa ràmetre E és el pe ríode de l r ellotge de l


microcontrolador, en ns.
- la NOTA (1) ens diu que els paràmetres TA, RS, RST, RH, WS, WST, WH i
MEWC són programables per l’usuari. Ens donen el rang de possibles valors
que poden prendre.

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.

La i nformació de t emporització e n l ectura que e ns done n de l es m emòries S RAM


CY62168EV30 que hem connectat és:
Als següents apartats:

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í.

NOTA 2: Considereu l’opció EW=SS=0.

e) (1.5 punts) Calculeu els valors òptims dels paràmetres de l’apartat d) si la


freqüència del microcontrolador és de 50MHz.

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

Professor: Vicente Jiménez.

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

Problema 2 (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.

La taula de temps associats al cronograma és:

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.

La taula de temps associats al cronograma és:

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.

El requisit a complir pel setup es:

_ ≤ − _

Mirant el cronograma:

_ ≤ ( _ ) + ( ) − ( _ )

_ ≤ ( _ ) + ( ) − ( _ )

_ ≤ − 0.5 + − −2

_ ≤ − 2,5

Donat que la freqüència es de 20MHz, THCLK = 50ns, per tant:

_ ≤ 50 − 2,5

_ ≤ 47,5

En el cas del hold tindrem:

_ ≤ _ −

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:

= − 0.5 + −0−3 =2∙ − 3,5

= 2 ∙ 50 − 3,5 = 96,5

5
SBM Exàmen Final 20 de Gener de 2017

COGNOMS: NOM: GRUP:

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:

A20:0 Bus d’adreces


AD15:0 Bus de dades
CS2:0* 3 senyals de chip select per a memòries externes (actius a nivell baix)
RD* Senyal de lectura (actiu a nivell baix)
WR* Senyal d’escriptura (actiu a nivell baix)
BHE* Senyal actiu a nivell baix que indica accés a part alta del bus de dades (AD15:8)

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:

Nota: CSx# és el mateix que CSx*.

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:

CSx* = (( ADDRCOMx[0] ⊕ ADDRESS [8]) • ADDRMSKx[0]) +


+ (( ADDRCOMx[1] ⊕ ADDRESS [9]) • ADDRMSKx[1]) +

+ (( ADDRCOMx[11] ⊕ ADDRESS [19]) • ADDRMSKx[11])
+ (( ADDRCOMx[12] ⊕ ADDRESS [20]) • ADDRMSKx[12])

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*.

c) (0,5 punt s) Doneu un v alor a A DDRCOM0 i ADDMSK0 pe r t al qu e C S0* s ’activi pe l rang


0x000000-0x03FFFF (els primers 256Kbytes de memòria), sense zones imatge. (1 punt)

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*

CS2:0* CS1* CS2* CS1* CS2*

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:

BHE#, CS# Low to Input Data Valid

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)

QÜESTIÓ (1 punt) Una pa rt de l m apa d e m emòria d’ un m icrocontrolador d e 32 bi ts d ’adreces que


descriu la part reservada a un External Memory Interface (EMIF) és:

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

Professor: Manel Dominguez.

Informacions addicionals:
• Duració de l’examen: 2h 30 min.
• Justifiqueu TOTES les respostes

PROBLEMA 1: (6 punts)

Volem dissenyar un sistema basat en el microcontrolador PIC18F8 de Microchip. Aquest


microcontrolador utilitza un bus d’adreces/dades multiplexat. Per aquest motiu posarem un
latch extern: 74HC373:

La descripció del funcionament del latch que trobem al seu datasheet és:

Un diagrama de l’esquema intern del latch és el següent:


Nom i Cognoms: Grup:

El símbol:

es refereix a una porta de pas

Quan A=1, els punts X i Y estan connectats. Quan A=0, els punts X i Y estan en circuit obert.

A on cada un dels latch estan fets de la següent manera:


Nom i Cognoms: Grup:

a) (1 punt) Expliqueu breument com funciona un latch en funció de la Figura anterior, i


perquè quan LE=0 el valor Q es conserva. Dibuixeu els circuits equivalents de cada
latch per quan LE=1 o LE=0.

Volem dissenyar un sistema basat en el microcontrolador PIC18F8 que contingui 512kbytes


de memòria RAM en total.

Aquest microcontrolador treballa amb un bus de dades/adreces multiplexat de 16 bits:

- AD[15:0]: bus multiplexat d’adreces / dades [A1-A16/D0-D15]


- ALE: Adress Latch Enable. Senyal per a connectar a l’entrada de Latch Enable d’un
Latch
- A[19:16]: 4 bits addicionals d’adreces, no multiplexats. Realment aquests pins són les
adreces A[20:17] quan treballa amb els 16 bits del bus de dades.
- CE*: senyal d’habilitació que indica cicle de bus.
- OE*: senyal que indica lectura.
- WRH*: senyal que indica escriptura a la part alta del bus de dades
- WRL*: senyal que indica escriptura a la part baixa del bus de dades
Nom i Cognoms: Grup:

b) (2 punts) Feu la descodificació més senzilla possible de les memòries RAM. Calculeu
el nombre de zones imatge.

El cronograma en lectura del processador és el següent:


Nom i Cognoms: Grup:

El latch té les següents característiques:


Nom i Cognoms: Grup:

c) (1 punt) Calculeu la freqüència màxima de funcionament del microcontrolador que


permeti que el latch guardi correctament les adreces. Justifiqueu breument la resposta.

d) (1 punt) Calculeu el temps màxim d’accés de OE* de la memòria RAM (tOE), si la


freqüència de treball del microcontrolador és de 10MHz. Considereu que el temps de
retards de portes és de 5ns.

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

Professor: Vicente Jiménez.

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)

Estem t reballant en un projecte que incorpora un microcontrolador PIC24FJ1024GA606 de


Microchip. Aquest MCU disposa d'un port de memòria externa que volem fer servir per afegir
memòria al si stema. El bus e xtern e s pot c onfigurar a mb una amplada d' adreces de 2 3 bi ts
A0..A22 i una amplada de dades de 8 bits D0..D7. Per evitar fer servir molts pins del MCU pels
busos, f em servir un mode que multiplexa l a informació dels bussos en un bus alt de a dreces
PMA de 7 bits i un bus PMD multiplexat de 8 bits. Les línies que tenim al bus son:

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

A continuació es mostra un exemple de cicle de lectura:

Figura 1 - Cronograma en lectura

Les divisions temporals son en passos de 1/4 TCY.


El temps TCY es el període base de la CPU que opera a 16MHz.

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.

La captura de la dada en lectura es fa en el flanc de baixada de PMRD i te associat un temps de


setup mínim de 20ns i un temps de hold mínim de zero.

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

PMD 7..0 In0..7 Out 0..7 A7..A0

PMALL LE

PMALH OE

Latch 373

In0..7 Out 0..7 A15..A8

PMWR LE

PMRD OE

D7..D0

Figura 2 - De multiplexació d'adreces

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.

𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀 𝐸𝐸𝐸𝐸𝐸𝐸 = 222+1 𝐵𝐵 = 23 220 𝐵𝐵 = 8𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀

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

Figura 4 - Memòries SRAM

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.

La resposta temporal de les portes es:


• Inversors: Retard màxim de 5ns
• Portes OR: Retard màxim de 8ns

(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

𝑈𝑈𝑈𝑈𝑈𝑈𝑈𝑈𝑈𝑈𝑈𝑈 𝑝𝑝𝑝𝑝𝑝𝑝 = 20000ℎ + 128𝑘𝑘 − 1 = 20000ℎ + 217 − 1 = 3𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹ℎ

(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.

Hem de començar a 20000h = 217

3
Taula de descodificació completa:

A22 A21 A20 A19 A18 A17 A16 A15 A0 CPU


0 0 0 0 0 1 0 A15.............A0 RAM1
0 0 0 0 0 1 1 A15.............A0 RAM2

Volem simplificar la descodificació però no volem que hi hagi cap imatge per sota de 2000h

A22 A21 A20 A19 A18 A17 A16 A15 A0 CPU


x x x x x 1 0 A15.............A0 RAM1
x x x x x 1 1 A15.............A0 RAM2

Per tant:

D0..D7 D0...D7 D0...D7 D0..D7

A0...15 A0...15 A0...A15 A0...15

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

El mapa serà buit des de 0x00 0000 fins a 0x01 FFFF


RAM1 es trobarà entre 0x02 0000 i 0x02 FFFF
RAM2 es trobarà entre 0x03 0000 i 0x03 FFFF
A partir d'aquí tot es repeteix

4
0x07 FFFF
RAM2
0x07 0000
RAM1
0x06 0000

0x03 FFFF
RAM2
0x03 0000
RAM1
0x02 0000

0x00 0000

Tenim 5 indeterminacions, per tant tindrem 25 = 32 imatges de cada xip

Després de d issenyar l a descodificació de l a R AM v olem de terminar e ls seus r equisits


temporals. En concret, volem saber els requisits que han de complir els següents temps dels xips
de memòria:

• tAA : Temps entre direccions vàlides y la generació d'una dada vàlida


• tACE : Temps entre el flanc de baixada de CS* i la generació d'una dada vàlida
• tDOE : Temps entre el flanc de baixada de OE* i la generació d'una dada vàlida.

(1,5 punts)
e) Obteniu els requisits que han de complir els tres temps anteriors: tAA, tACE i tDOE.

Ens trobem a un cicle de lectura, el requisit a complir es el temps de setup:

𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 − 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑉𝑉 ≥ 𝑡𝑡𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 𝑀𝑀𝑀𝑀𝑀𝑀

Sabem tSetup MIN = 20ns

El període de rellotge es:


1 1
𝑇𝑇𝐶𝐶𝐶𝐶 = = = 62.5𝑛𝑛𝑛𝑛
𝑓𝑓 16𝑀𝑀𝑀𝑀𝑀𝑀

La CPU es master, per tant definim l'origen de temps al seu cronograma.


Trobem:
13 ∙ 𝑇𝑇𝐶𝐶𝐶𝐶 13 ∙ 62.5𝑛𝑛𝑛𝑛
𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 = 𝑡𝑡𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃 ↓ = = = 203.1𝑛𝑛𝑛𝑛
4 4

En aquest cas, els temps que tenim son deterministes ja que la freqüència de rellotge te un valor
únic possible, per tant:
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑉𝑉 ≤ 𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 − 𝑡𝑡𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 𝑀𝑀𝑀𝑀𝑀𝑀

𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑉𝑉 ≤ 203.1𝑛𝑛𝑛𝑛 − 20𝑛𝑛𝑛𝑛

𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑉𝑉 ≤ 183.1𝑛𝑛𝑛𝑛

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:
𝑡𝑡����
𝐶𝐶𝐶𝐶 ↓ = 𝑡𝑡𝐼𝐼𝐼𝐼𝐼𝐼 + 𝑡𝑡𝑂𝑂𝑂𝑂

El senyal OE* es directament el senyal PMRD invertit, 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

𝑡𝑡𝐴𝐴𝐴𝐴 𝑀𝑀𝑀𝑀𝑀𝑀 ≤ 64.73𝑛𝑛𝑛𝑛

6
Restricció de tACE:
𝑇𝑇𝐶𝐶𝐶𝐶
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑉𝑉 = + 𝑡𝑡𝐼𝐼𝐼𝐼𝐼𝐼 + 𝑡𝑡𝑂𝑂𝑂𝑂 + 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 ≤ 183.1𝑛𝑛𝑛𝑛
4

El cas pitjor serà:


𝑇𝑇𝐶𝐶𝐶𝐶
𝑀𝑀𝑀𝑀𝑀𝑀 � + 𝑡𝑡𝐼𝐼𝐼𝐼𝐼𝐼 + 𝑡𝑡𝑂𝑂𝑂𝑂 + 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 � ≤ 𝑀𝑀𝑀𝑀𝑀𝑀(183.1𝑛𝑛𝑛𝑛)
4
𝑇𝑇𝐶𝐶𝐶𝐶
+ 𝑡𝑡𝐼𝐼𝐼𝐼𝐼𝐼 𝑀𝑀𝑀𝑀𝑀𝑀 + 𝑡𝑡𝑂𝑂𝑂𝑂 𝑀𝑀𝑀𝑀𝑀𝑀 + 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 𝑀𝑀𝑀𝑀𝑀𝑀 ≤ 183.1𝑛𝑛𝑛𝑛
4

Per tant:
𝑇𝑇𝐶𝐶𝐶𝐶
𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 𝑀𝑀𝑀𝑀𝑀𝑀 ≤ 183.1𝑛𝑛𝑛𝑛 − − 𝑡𝑡𝐼𝐼𝐼𝐼𝐼𝐼 𝑀𝑀𝑀𝑀𝑀𝑀 − 𝑡𝑡𝑂𝑂𝑂𝑂 𝑀𝑀𝑀𝑀𝑀𝑀
4

Numèricament:
𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 𝑀𝑀𝑀𝑀𝑀𝑀 ≤ 183.1𝑛𝑛𝑛𝑛 − 15.63𝑛𝑛𝑛𝑛 − 5𝑛𝑛𝑛𝑛 − 8𝑛𝑛𝑛𝑛

𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 𝑀𝑀𝑀𝑀𝑀𝑀 ≤ 154.5𝑛𝑛𝑛𝑛

Restricció de tDOE:
10 ∙ 𝑇𝑇𝐶𝐶𝐶𝐶
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑉𝑉 = + 𝑡𝑡𝐼𝐼𝐼𝐼𝐼𝐼 + 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 ≤ 183.1𝑛𝑛𝑛𝑛
4

El cas pitjor serà:


10 ∙ 𝑇𝑇𝐶𝐶𝐶𝐶
𝑀𝑀𝑀𝑀𝑀𝑀 � + 𝑡𝑡𝐼𝐼𝐼𝐼𝐼𝐼 + 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 � ≤ 𝑀𝑀𝑀𝑀𝑀𝑀(183.1𝑛𝑛𝑛𝑛)
4
10 ∙ 𝑇𝑇𝐶𝐶𝐶𝐶
+ 𝑡𝑡𝐼𝐼𝐼𝐼𝐼𝐼 𝑀𝑀𝑀𝑀𝑀𝑀 + 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 𝑀𝑀𝑀𝑀𝑀𝑀 ≤ 183.1𝑛𝑛𝑛𝑛
4
10 ∙ 𝑇𝑇𝐶𝐶𝐶𝐶
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 𝑀𝑀𝑀𝑀𝑀𝑀 ≤ 183.1𝑛𝑛𝑛𝑛 − − 𝑡𝑡𝐼𝐼𝐼𝐼𝐼𝐼 𝑀𝑀𝑀𝑀𝑀𝑀
4

Numèricament:
10 ∙ 62.5𝑛𝑛𝑛𝑛
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 𝑀𝑀𝑀𝑀𝑀𝑀 ≤ 183.1𝑛𝑛𝑛𝑛 − − 5𝑛𝑛𝑛𝑛
4

𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 𝑀𝑀𝑀𝑀𝑀𝑀 ≤ 21.85𝑛𝑛𝑛𝑛

La resposta no te cap sentit si no se captura correctament la dada als latch.

(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

Compliment del temps de setup:

𝑡𝑡𝐿𝐿𝐿𝐿↓ − 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 _𝑉𝑉 ≥ 𝑡𝑡𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 𝑀𝑀𝑀𝑀𝑀𝑀

Des del punt de vista de la CPU:

𝑡𝑡𝐿𝐿𝐿𝐿↓ − 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 _𝑉𝑉 ≥ 𝑡𝑡𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 𝑀𝑀𝑀𝑀𝑀𝑀

7
Fent servir el cronograma:

𝑡𝑡𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃 ↓ − 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴7:0_𝑉𝑉 ≥ 𝑡𝑡𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 𝑀𝑀𝑀𝑀𝑀𝑀

Per tant:

4 ∙ 𝑇𝑇𝐶𝐶𝐶𝐶 3 ∙ 𝑇𝑇𝐶𝐶𝐶𝐶
− ≥ 𝑡𝑡𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 𝑀𝑀𝑀𝑀𝑀𝑀
4 4
𝑇𝑇𝐶𝐶𝐶𝐶
≥ 𝑡𝑡𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 𝑀𝑀𝑀𝑀𝑀𝑀
4

Els temps son deterministes, per tant, no cal mirar el cas pitjor.

62.5𝑛𝑛𝑛𝑛
≥ 4𝑛𝑛𝑛𝑛
4

15.63𝑛𝑛𝑛𝑛 ≥ 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.

Pel que fa al temps de hold del primer latch:

𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 _𝑁𝑁𝑁𝑁 − 𝑡𝑡𝐿𝐿𝐿𝐿↓ ≥ 𝑡𝑡𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 𝑀𝑀𝑀𝑀𝑀𝑀

Des del punt de vista de la CPU:

𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴7:0_𝑁𝑁𝑁𝑁 − 𝑡𝑡𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃 ↓ ≥ 𝑡𝑡𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 𝑀𝑀𝑀𝑀𝑀𝑀


Per tant:
7 ∙ 𝑇𝑇𝐶𝐶𝐶𝐶 4 ∙ 𝑇𝑇𝐶𝐶𝐶𝐶
− ≥ 𝑡𝑡𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 𝑀𝑀𝑀𝑀𝑀𝑀
4 4
3 ∙ 𝑇𝑇𝐶𝐶𝐶𝐶
≥ 𝑡𝑡𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 𝑀𝑀𝑀𝑀𝑀𝑀
4

46.88 ≥ 1𝑛𝑛𝑛𝑛 𝑂𝑂𝑂𝑂

En aquest cas, el càlcul pel segon latch dona diferencies de temps diferents:

𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴15:8_𝑁𝑁𝑁𝑁 − 𝑡𝑡𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃 ↓ ≥ 𝑡𝑡𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 𝑀𝑀𝑀𝑀𝑀𝑀

10 ∙ 𝑇𝑇𝐶𝐶𝐶𝐶 8 ∙ 𝑇𝑇𝐶𝐶𝐶𝐶
− ≥ 𝑡𝑡𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 𝑀𝑀𝑀𝑀𝑀𝑀
4 4
𝑇𝑇𝐶𝐶𝐶𝐶
≥ 𝑡𝑡𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 𝑀𝑀𝑀𝑀𝑀𝑀
2

31.25𝑛𝑛𝑛𝑛 ≥ 1𝑛𝑛𝑛𝑛 𝑂𝑂𝑂𝑂

8
SEBM (Grupo 10) Control Parcial 18 de Mayo de 2015

Nombre:

Estamos de sarrollando un sistema que em plea u n procesador A RM C ortex-A AMX335X de


Texas Instruments. Las memorias externas se pueden conectar a este procesador usando su bus
de sal ida General-Purpose Memory Controller (GPMC). En este bus us amos l as si guientes
señales:

A27..A1 : Bus de direcciones


D15..D0 : Bus de datos
nBE0, nBE1 : Strobes de las dos calles del bus de datos activos a nivel bajo
nCS : Señal Chip Select que se activa, a nivel bajo, en accesos a memoria externa
nOE : Señal Output Enable que se activa, a nivel bajo, en operaciones de lectura
nWE : Señal Write Enable que se activa, a nivel bajo, en operaciones de escritura

Este procesador se conecta a m emorias RAM y ROM externas usando el GPMC empleando el
siguiente diagrama de conexionado.

D0..D7 D8..D15 D0..D15

D0..D7 D0..D7 D0..D15


A1..A20 Buf1 A1..A18 Buf2
A0..A19 A0..A17

nWE WE RAM1 RAM2 ROM

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:

• Retardo máximo de inversores y buffers: 10ns


• Retardo máximo de puertas OR: 15ns
La si guiente f igura m uestra el cr onograma de l a C PU pa ra ci clos de l ectura. En esta C PU
tenemos un r eloj G PMC_FCLK de 100M Hz que s e us a pa ra c onfigurar, po r s oftware, l os
parámetros del cronograma. Así, por ejemplo, tal y como se indica en la figura, el instante de
captura se da 9 ciclos de reloj (9T) después del inicio del ciclo.
Dado que l os tiempos s on c onfigurables, el di bujo no r epresenta en l a línea FCLK el número
real de ciclos de reloj por lo que no se pueden contar ciclos en esta señal.
La línea nADV no la usamos por lo que no se indican sus tiempos.

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:

• Tiempo de acceso de direcciones tAA Max = 25ns


• Tiempo de acceso de Chip Select tACE Max = 30ns
• Retardo de Output Enable tDOE Max = 10ns

(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.

El requisito a cumplir respecto del tiempo de setup es:

𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 − 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 ≥ 𝑡𝑡𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 𝑀𝑀𝑀𝑀𝑀𝑀

A partir del cronograma:

𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 = 𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅 = 9𝑇𝑇


A partir de la información que se nos da sabemos también:

𝑡𝑡𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 𝑀𝑀𝑀𝑀𝑀𝑀 = 𝑇𝑇

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:

𝑡𝑡𝐴𝐴𝐴𝐴 + 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 _𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉


𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 = 𝑚𝑚𝑚𝑚𝑚𝑚 � 𝐴𝐴𝐴𝐴𝐴𝐴 + 𝑡𝑡𝐶𝐶𝐶𝐶
𝑡𝑡 ����↓
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 + 𝑡𝑡𝑂𝑂𝑂𝑂
���� ↓

Como s e ve e n e l c ronograma, l as di recciones s on v álidas justo a l principio t= 0 de l c iclo de


lectura, pero el bus de direcciones se halla conectado a la memoria mediante un Buf2, por tanto:

𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 _𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 = 0 + 𝑡𝑡𝐵𝐵𝐵𝐵𝐵𝐵 2 = 𝑡𝑡𝐵𝐵𝐵𝐵𝐵𝐵 2

La salida nOE de la CPU se conecta directamente con OE* de la memoria, por tanto:

���� ↓ = 𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂 = 3𝑇𝑇


𝑡𝑡𝑂𝑂𝑂𝑂

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:
𝑡𝑡𝐼𝐼𝐼𝐼𝐼𝐼
𝑡𝑡����
𝐶𝐶𝐶𝐶 ↓ = 𝑡𝑡𝑂𝑂𝑂𝑂 + 𝑚𝑚𝑚𝑚𝑚𝑚 �
𝑇𝑇

Por tanto, tenemos:

𝑡𝑡𝐴𝐴𝐴𝐴 + 𝑡𝑡𝐵𝐵𝐵𝐵𝐵𝐵 2
𝑡𝑡
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 𝑎𝑎_𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 = 𝑚𝑚𝑚𝑚𝑚𝑚 �𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 + 𝑡𝑡𝑂𝑂𝑂𝑂 + 𝑚𝑚𝑚𝑚𝑚𝑚 � 𝐼𝐼𝐼𝐼𝐼𝐼
𝑇𝑇
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 + 3𝑇𝑇

Una vez identificados todos los elementos asociados al requisito del tiempo de setup, podemos
hallar el caso peor:

𝑚𝑚𝑚𝑚𝑚𝑚�𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 − 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 � ≥ 𝑚𝑚𝑚𝑚𝑚𝑚�𝑡𝑡𝑆𝑆𝑆𝑆𝑆𝑆 𝑢𝑢𝑢𝑢 𝑀𝑀𝑀𝑀𝑀𝑀 �

𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 𝑀𝑀𝑀𝑀𝑀𝑀 − 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 𝑀𝑀𝑀𝑀𝑀𝑀 ≥ 𝑡𝑡𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 𝑀𝑀𝑀𝑀𝑀𝑀

Para el caso de tData_Valid tendremos:

𝑡𝑡𝐴𝐴𝐴𝐴 𝑀𝑀𝑀𝑀𝑀𝑀 + 𝑡𝑡𝐵𝐵𝐵𝐵𝐵𝐵 2 𝑀𝑀𝑀𝑀𝑀𝑀


𝑡𝑡
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 𝑎𝑎 𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 𝑀𝑀𝑀𝑀𝑀𝑀 = 𝑚𝑚𝑚𝑚𝑚𝑚 �𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 𝑀𝑀𝑀𝑀𝑀𝑀 + 𝑡𝑡𝑂𝑂𝑂𝑂 𝑀𝑀𝑀𝑀𝑀𝑀 + 𝑚𝑚𝑚𝑚𝑚𝑚 � 𝐼𝐼𝐼𝐼𝐼𝐼 𝑀𝑀𝑀𝑀𝑀𝑀
𝑇𝑇
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 𝑀𝑀𝐴𝐴𝐴𝐴 + 3𝑇𝑇
No nos di cen que T tenga ni nguna posible variabilidad pero si nos dicen su frecuencia por lo
que T será:
1
𝑇𝑇 = = 100𝑀𝑀𝑀𝑀𝑀𝑀 = 10𝑛𝑛𝑛𝑛
𝑓𝑓
Poniendo valores:

25𝑛𝑛𝑛𝑛 + 10𝑛𝑛𝑛𝑛
10𝑛𝑛𝑛𝑛
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 𝑎𝑎 𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 𝑀𝑀𝑀𝑀𝑀𝑀 = 𝑚𝑚𝑚𝑚𝑚𝑚 �30𝑛𝑛𝑛𝑛 + 15𝑛𝑛𝑛𝑛 + 𝑚𝑚𝑚𝑚𝑚𝑚 �
10𝑛𝑛𝑛𝑛
10𝑛𝑛𝑛𝑛 + 30𝑛𝑛𝑛𝑛
De ello:
35𝑛𝑛𝑛𝑛
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 𝑎𝑎 𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 𝑀𝑀𝑀𝑀𝑀𝑀 = 𝑚𝑚𝑚𝑚𝑚𝑚 �55𝑛𝑛𝑛𝑛 = 55𝑛𝑛𝑛𝑛
40𝑛𝑛𝑛𝑛

Podemos ahora evaluar el tiempo de setup:

𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 𝑀𝑀𝑀𝑀𝑀𝑀 − 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 𝑀𝑀𝑀𝑀𝑀𝑀 ≥ 𝑡𝑡𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 𝑀𝑀𝑀𝑀𝑀𝑀

90𝑛𝑛𝑛𝑛 − 55𝑛𝑛𝑛𝑛 ≥ 10𝑛𝑛𝑛𝑛

35𝑛𝑛𝑛𝑛 ≥ 10𝑛𝑛𝑛𝑛

Se comprueba que se cumple correctamente la temporización.

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.

El requisito relativo al tiempo de hold es:

𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑁𝑁𝑁𝑁 − 𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 ≥ 𝑡𝑡𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 𝑀𝑀𝑀𝑀𝑀𝑀

Miremos ahora los datos que conocemos:

𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 = 𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅 = 9𝑇𝑇

𝑡𝑡𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 𝑀𝑀𝑀𝑀𝑀𝑀 = 𝑇𝑇

De ello:

𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑁𝑁𝑁𝑁 − 9𝑇𝑇 ≥ 𝑇𝑇 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑁𝑁𝑁𝑁 ≥ 10𝑇𝑇

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.

El requisito para el tiempo de setup de la memoria es:

𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸 − 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 ≥ 𝑡𝑡𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 𝑀𝑀𝑀𝑀𝑀𝑀

En este caso el tiempo de setup de la memoria es un valor desconocido a determinar.


El instante EOW será:

𝑡𝑡����
𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸 = 𝑚𝑚𝑚𝑚𝑚𝑚 �𝑡𝑡𝐶𝐶𝐶𝐶 ↑
����� ↑
𝑊𝑊𝑊𝑊
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𝑇𝑇


𝑡𝑡𝐶𝐶𝐶𝐶
Para el caso de nWE tenemos:

𝑊𝑊𝑊𝑊 ↑ = 𝑡𝑡𝑛𝑛𝑛𝑛𝑛𝑛 ↑ = 𝑊𝑊𝑊𝑊𝑊𝑊𝑊𝑊𝑊𝑊𝑊𝑊𝑊𝑊𝑊𝑊𝑊𝑊 = 9𝑇𝑇


𝑡𝑡�����
De ello:

𝑡𝑡𝑂𝑂𝑂𝑂 + 10𝑇𝑇
𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸 = 𝑚𝑚𝑚𝑚𝑚𝑚 � = 9𝑇𝑇
9𝑇𝑇

Sabemos que el dato es válido desde el inicio del ciclo (t=0), por tanto:

𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸 − 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 ≥ 𝑡𝑡𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 𝑀𝑀𝑀𝑀𝑀𝑀

9𝑇𝑇 − 0 ≥ 𝑡𝑡𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 𝑀𝑀𝑀𝑀𝑀𝑀


Por tanto:
𝑡𝑡𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 𝑀𝑀𝑀𝑀𝑀𝑀 ≤ 90𝑛𝑛𝑛𝑛

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:

𝑡𝑡𝐶𝐶𝐶𝐶_𝐸𝐸𝐸𝐸𝐸𝐸 = 𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸 − 𝑡𝑡𝑛𝑛𝑛𝑛𝑛𝑛 ↓ = 9𝑇𝑇 − 2𝑇𝑇 = 7𝑇𝑇 = 70𝑛𝑛𝑛𝑛

El tiempo anterior es determinista por lo que si máximo y mínimo coinciden.

En el caso de CS* tendremos:

𝑡𝑡𝐶𝐶𝐶𝐶_𝐸𝐸𝐸𝐸𝐸𝐸 = 𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸 − 𝑡𝑡����


𝐶𝐶𝐶𝐶 ↓
Donde:
𝑡𝑡𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛 ↓
����↓ = 𝑡𝑡𝑂𝑂𝑂𝑂
𝑡𝑡𝐶𝐶𝐶𝐶 + 𝑚𝑚𝑚𝑚𝑚𝑚 � 𝑡𝑡
𝑡𝑡𝑂𝑂𝑂𝑂 + 𝑚𝑚𝑚𝑚𝑚𝑚 �𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 _𝑉𝑉
𝑛𝑛𝑛𝑛𝑛𝑛 ↓
De ello:
0
����↓ = 𝑡𝑡𝑂𝑂𝑂𝑂 + 𝑚𝑚𝑚𝑚𝑚𝑚 �
𝑡𝑡𝐶𝐶𝐶𝐶 0 = 2𝑡𝑡𝑂𝑂𝑂𝑂 + 𝑇𝑇
𝑡𝑡𝑂𝑂𝑂𝑂 + 𝑚𝑚𝑚𝑚𝑚𝑚 �
𝑇𝑇
Al final podemos hallar:

𝑡𝑡𝐶𝐶𝑆𝑆𝐸𝐸𝐸𝐸𝐸𝐸 𝑀𝑀𝑀𝑀𝑀𝑀 = 𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸 𝑀𝑀𝑀𝑀𝑀𝑀 − 𝑡𝑡𝐶𝐶𝐶𝐶


����↓𝑀𝑀𝑀𝑀𝑀𝑀 = 9𝑇𝑇 − 2𝑡𝑡𝑂𝑂𝑂𝑂 𝑀𝑀𝑀𝑀𝑀𝑀 − 𝑇𝑇 = 8𝑇𝑇 − 2𝑡𝑡𝑂𝑂𝑂𝑂 𝑀𝑀𝑀𝑀𝑀𝑀

𝑡𝑡𝐶𝐶𝑆𝑆𝐸𝐸𝐸𝐸𝐸𝐸 𝑀𝑀𝑀𝑀𝑀𝑀 = 80𝑛𝑛𝑛𝑛 − 2 ∙ 15𝑛𝑛𝑛𝑛 = 80𝑛𝑛𝑛𝑛 − 30𝑛𝑛𝑛𝑛 = 50𝑛𝑛𝑛𝑛


nOE

D0..D15 En el diseño nos vemos obligados a añadir un


Buf3
D0..D15 buffer en la conexión entre la ROM y la CPU
A1..A18 Buf2 tal y como se muestra en la figura.
A0..A17
ROM
nOE
Este bu ffer t iene u n r etardo m áximo de
OE
propagación de 10n s de sde l a e ntrada a l a
CS
salida y un r etardo máximo de 20ns desde que
se ac tiva nO E ha sta que la sa lida de l bu ffer
pasa de alta a baja impedancia.

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.

Esta modificación afecta a la aparición de los datos. Antes teníamos:

𝑡𝑡𝐴𝐴𝐴𝐴 𝑀𝑀𝑀𝑀𝑀𝑀 + 𝑡𝑡𝐵𝐵𝐵𝐵𝐵𝐵 2 𝑀𝑀𝑀𝑀𝑀𝑀


𝑡𝑡
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 𝑂𝑂𝑂𝑂𝑂𝑂 𝑉𝑉 𝑀𝑀𝑀𝑀𝑀𝑀 = 𝑚𝑚𝑚𝑚𝑚𝑚 �𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 𝑀𝑀𝑀𝑀𝑀𝑀 + 𝑡𝑡𝑂𝑂𝑂𝑂 𝑀𝑀𝑀𝑀𝑀𝑀 + 𝑚𝑚𝑚𝑚𝑚𝑚 � 𝐼𝐼𝐼𝐼𝐼𝐼 𝑀𝑀𝑀𝑀𝑀𝑀 = 55𝑛𝑛𝑛𝑛
𝑇𝑇
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 𝑀𝑀𝑀𝑀𝑀𝑀 + 3𝑇𝑇

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:

10𝑛𝑛𝑛𝑛 + 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 𝑂𝑂𝑂𝑂𝑂𝑂 𝑉𝑉 𝑀𝑀𝑀𝑀𝑀𝑀 65𝑛𝑛𝑛𝑛


𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 𝑎𝑎 𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 𝑀𝑀𝑀𝑀𝑀𝑀 = 𝑚𝑚𝑚𝑚𝑚𝑚 � = 𝑚𝑚𝑚𝑚𝑚𝑚 � = 65𝑛𝑛𝑛𝑛
3𝑇𝑇 + 20𝑛𝑛𝑛𝑛 50𝑛𝑛𝑛𝑛

Podemos ahora evaluar el tiempo de setup:

𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 𝑀𝑀𝑀𝑀𝑀𝑀 − 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 𝑀𝑀𝑀𝑀𝑀𝑀 ≥ 𝑡𝑡𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 𝑀𝑀𝑀𝑀𝑀𝑀

90𝑛𝑛𝑛𝑛 − 65𝑛𝑛𝑛𝑛 ≥ 10𝑛𝑛𝑛𝑛

25𝑛𝑛𝑛𝑛 ≥ 10𝑛𝑛𝑛𝑛

Sigue cumpliéndose el tiempo de setup pero ahora nuestra holgura es de sólo 15ns.

Respecto al cumplimiento del tiempo de hold, el instante de lectura no ha cambiado y la salida


de l a m emoria se ha r etardado por l o que si an tes se cum plía por ca usalidad ahor a aún se
cumplirá con mayor motivo.
SEBM
12 de Gener de 2016
Data notes provisionals: 18 de Gener
Període al·legacions fins: 20 de Gener
DEPARTAMENT D’ENGINYERIA ELECTRÒNICA
Data notes revisades: 21 de Gener

Professor: Vicente Jiménez.

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.

Aquesta m emòria és c om una m emòria S RAM nor mal pe rò t e do s c onjunts (ports L i R ) de


senyals de d ades, direccions i con trol. D'aquesta m anera dos s istemes i ndependents pode n
accedir a la mateixa memòria al m ateix temps. En concret, nosaltres c onnectarem el MCU
PSOC5 al port L de la memòria i connectarem el DAC al port R.
De moment, ens concentrarem en la connexió entre el MCU i la memòria fent servir el port L.

PSOC5 CY7C028
D0...D15 Port L Port R

A1..A24 D0..D15 D0..D15

WEn A0..A15 A0..A15


OEn WE
WE
CEn
OE OE

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.

Els temps no poden ser negatius

La freqüència del bus, associada al període T de la taula es de 16 MHz.


Observeu que no h i ha temps definit entre la aparició d'una adreça v àlida i la baixada de OEn.
Considerarem que això vol dir que aquest temps, que anomenarem tAddr-OEn , pot tenir qualsevol
valor major o igual a zero.

Per part de la memòria tenim el següent cronograma:

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.

L'equació fonamental pel temps de setup és:

𝑡𝑡𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 𝑡𝑡𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐 − 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉

En el nostre cas, i considerant el cas pitjor:

𝑇𝑇𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 𝑡𝑡𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐 − 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉

Càlcul per tAA:


Les adreces de la memòria es troben directament connectades a la CPU, per tant:

𝑡𝑡𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐 = 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 + 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 −𝑂𝑂𝑂𝑂𝑂𝑂 + 𝑇𝑇𝑜𝑜𝑜𝑜𝑜𝑜

𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 = 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 + 𝑡𝑡𝐴𝐴𝐴𝐴


Per tant:
𝑇𝑇𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 −𝑂𝑂𝑂𝑂𝑂𝑂 + 𝑇𝑇𝑜𝑜𝑜𝑜𝑜𝑜 − 𝑡𝑡𝐴𝐴𝐴𝐴

Considerant el cas pitjor:

𝑇𝑇𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 −𝑂𝑂𝑂𝑂𝑂𝑂 𝑚𝑚𝑚𝑚𝑚𝑚 + 𝑇𝑇𝑜𝑜𝑜𝑜𝑜𝑜 𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑡𝑡𝐴𝐴𝐴𝐴 𝑚𝑚𝑚𝑚𝑚𝑚


Per tant:
𝑡𝑡𝐴𝐴𝐴𝐴 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 −𝑂𝑂𝑂𝑂𝑂𝑂 𝑚𝑚𝑚𝑚𝑚𝑚 + 𝑇𝑇𝑜𝑜𝑜𝑜𝑜𝑜 𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑇𝑇𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑 𝑚𝑚𝑚𝑚𝑚𝑚

Posant valors:
𝑡𝑡𝐴𝐴𝐴𝐴 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 0 + 2𝑇𝑇 − 5𝑛𝑛𝑛𝑛 − 𝑇𝑇 − 15𝑛𝑛𝑛𝑛

𝑡𝑡𝐴𝐴𝐴𝐴 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 𝑇𝑇 − 20𝑛𝑛𝑛𝑛

La freqüència es de 16MHz, per tant:

1
𝑇𝑇 = = 62,5𝑛𝑛𝑛𝑛
16𝑀𝑀𝑀𝑀𝑀𝑀
Finalment:
𝑡𝑡𝐴𝐴𝐴𝐴 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 62,5𝑛𝑛𝑛𝑛 − 20𝑛𝑛𝑛𝑛

𝑡𝑡𝐴𝐴𝐴𝐴 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 42,5𝑛𝑛𝑛𝑛

Càlcul per tDOE:


OEn de CPU es troba directament connectat a OE* de la memòria, per tant:

𝑡𝑡𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐 = 𝑡𝑡𝑂𝑂𝑂𝑂𝑂𝑂 ↓ + 𝑇𝑇𝑜𝑜𝑜𝑜𝑜𝑜

𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 = 𝑡𝑡𝑂𝑂𝑂𝑂𝑂𝑂 ↓ + 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷


Per tant:
𝑇𝑇𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 𝑇𝑇𝑜𝑜𝑜𝑜𝑜𝑜 − 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷

3
El cas pitjor serà:
𝑇𝑇𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 𝑇𝑇𝑜𝑜𝑜𝑜𝑜𝑜 𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 𝑚𝑚𝑚𝑚𝑚𝑚
Finalment:
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 𝑇𝑇𝑜𝑜𝑜𝑜𝑜𝑜 𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑇𝑇𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑 𝑚𝑚𝑚𝑚𝑚𝑚
Posant valors:
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 2𝑇𝑇 − 5𝑛𝑛𝑛𝑛 − 𝑇𝑇 − 15𝑛𝑛𝑛𝑛

𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 𝑇𝑇 − 20𝑛𝑛𝑛𝑛

𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 42,5𝑛𝑛𝑛𝑛

Càlcul per tACE:


CE* es troba connectat tant a les adreces com al senyal CEn.
Donat que Taddrv no pot ser negatiu, la part que limita es la associada a les adreces.

𝑡𝑡𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐 = 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 + 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 −𝑂𝑂𝑂𝑂𝑂𝑂 + 𝑇𝑇𝑜𝑜𝑜𝑜𝑜𝑜

𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 = 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 + 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 + 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴


Per tant:
𝑇𝑇𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 −𝑂𝑂𝑂𝑂𝑂𝑂 + 𝑇𝑇𝑜𝑜𝑜𝑜𝑜𝑜 − 𝑡𝑡𝐷𝐷𝐷𝐷𝑐𝑐 − 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴
El cas pitjor serà:

𝑇𝑇𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 −𝑂𝑂𝑂𝑂𝑂𝑂 𝑚𝑚𝑚𝑚𝑚𝑚 + 𝑇𝑇𝑜𝑜𝑜𝑜𝑜𝑜 𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 𝑚𝑚𝑚𝑚𝑚𝑚

Finalment:

𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 −𝑂𝑂𝑂𝑂𝑂𝑂 𝑚𝑚𝑚𝑚𝑚𝑚 + 𝑇𝑇𝑜𝑜𝑜𝑜𝑜𝑜 𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑇𝑇𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑 𝑚𝑚𝑚𝑚𝑚𝑚

Posant valors:

𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 0 + 2𝑇𝑇 − 5𝑛𝑛𝑛𝑛 − 10𝑛𝑛𝑛𝑛 − 𝑇𝑇 − 15𝑛𝑛𝑛𝑛

𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 𝑇𝑇 − 30𝑛𝑛𝑛𝑛

𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 62,5𝑛𝑛𝑛𝑛 − 30𝑛𝑛𝑛𝑛

𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 32,5𝑛𝑛𝑛𝑛

Una v egada di ssenyada l a conne xió entre e l MC U i l a m emòria, passarem a t reballar en el


circuit de generació del senyal de sortida. Per generar aquest senyal, farem s ervir el DAC
AD9760-50 connectat al port R de la memòria. Aquest DAC treu a la sortida el valor analògic
que c orrespon a l valor digital de l a s eva entrada quan e s produeix un flanc de pujada del seu
senyal de r ellotge C LK2. Com que e l D AC e s de 10 bi ts, la i nformació a D 10..D15 no e s f a
servir.

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.

El D AC op erarà correctament si es c ompleix u n temps de setup mínim de 2n s i un t emps de


hold mínim de 1,5ns per la dada d'entrada respecte del flanc de pujada de rellotge CLK2:

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?

f = 20MHz, per tant T = 50ns

Per complir el temps de setup del DAC:

𝑡𝑡𝑆𝑆𝑆𝑆 𝐷𝐷𝐷𝐷𝐷𝐷 ≤ 𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶2↑ − 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 𝐼𝐼𝐼𝐼


Pel que fa al rellotge:

𝑇𝑇
𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶2↑ = 𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶1↑ +
2

Pel que fa a Data:

𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 𝐼𝐼𝐼𝐼 = 𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶1↑ + 𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 + 𝑡𝑡𝐴𝐴𝐴𝐴

Ajuntant-ho tot:

𝑇𝑇
𝑡𝑡𝑆𝑆𝑆𝑆 𝐷𝐷𝐷𝐷𝐷𝐷 ≤ 𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶1↑ + − (𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶1↑ + 𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 + 𝑡𝑡𝐴𝐴𝐴𝐴 )
2
Per tant:
𝑇𝑇
𝑡𝑡𝑆𝑆𝑆𝑆 𝐷𝐷𝐷𝐷𝐷𝐷 ≤ − 𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 − 𝑡𝑡𝐴𝐴𝐴𝐴
2
Cas pitjor:
𝑇𝑇
𝑡𝑡𝑆𝑆𝑆𝑆 𝐷𝐷𝐷𝐷𝐷𝐷 ≤ − 𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑡𝑡𝐴𝐴𝐴𝐴 𝑚𝑚𝑚𝑚𝑚𝑚
2

2𝑛𝑛𝑛𝑛 ≤ 25𝑛𝑛𝑛𝑛 − 𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 𝑚𝑚𝑚𝑚𝑚𝑚 − 15𝑛𝑛𝑛𝑛


Finalment:
𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 25𝑛𝑛𝑛𝑛 − 15𝑛𝑛𝑛𝑛 − 2𝑛𝑛𝑛𝑛

𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 8𝑛𝑛𝑛𝑛

6
SEBM (Grupo 20) Control Parcial 2 de Diciembre de 2015

Nombre:

Estamos trabajando en un s istema ba sado e n e l m icrocontrolador S TM32F100ZE. Este M CU


permite a ñadir m emoria e xterna e mpleando un e lemento de nominado Flexible static memory
controller (FSMC). Este el emento permite a ñadir m emoria en 4 espacios cons ecutivos
asociados a 4 señales de control Chip Select respectivas NE0, NE1, NE2 y NE3, activas bajas,
generadas por el MCU.
Todo y que el MCU tiene una CPU de 32 bits, el bus externo asociado al FSMC es de 16 bits.

El FSMC consta de las siguientes señales:

A1...A25 : Bus de direcciones


D0...D15 : Bus de datos
NE0...NE3 : Señales Chip Select generadas por el MCU
NOE : Señal activa a nivel bajo en ciclos de lectura
NWE : Señal activa a nivel bajo en ciclos de escritura
NBL0, NBL1 : Strobes de calle 0 y calle 1 activos a nivel bajo

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

NOR A1..A16 A0..A15 A1..A16 A0..A15

A1..A18 A0...A17 D0..D7 D0..D7 D0..D7 D0..D7

D0..D15 D0...D15 NWE WE NWE WE

NOE G NOE OE NOE OE


NE1
E A19 CS2 A19 CS2
A19
CS1 CS1

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:

Este cronograma está asociado a los datos:

El reloj principal del MCU, HCLK, usado para estas temporizaciones ha sido ajustado a 24MHz
El cronograma de la CPU en escritura es:

Con datos asociados:


Nos ha llamos, e n este m omento, e n l a f ase e n l a que he mos de e legir l as m emorias que
emplearemos para el sistema. Empezaremos analizando los ciclos de lectura de la memoria flash
NOR. Esta memoria tiene una temporización como la indicada en la siguiente figura:

(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.

El tiempo de setup hace referencia a la aparición de un dato válido en el bus a la entrada de la


CPU. El requisito general es:

𝑡𝑡𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐 − 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 ≥ 𝑡𝑡𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 _𝑀𝑀𝑀𝑀𝑀𝑀

Tomando como referencia de t iempos l a pr imera l ínea v ertical de l cronograma de lectura de l


MCU, tendremos:

𝑡𝑡𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐 = 𝑡𝑡𝑉𝑉(𝑁𝑁𝑁𝑁𝑁𝑁_𝑁𝑁𝑁𝑁) + 𝑡𝑡𝑤𝑤 (𝑁𝑁𝑁𝑁𝑁𝑁 )


También podemos ver:

𝑡𝑡𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 𝑝𝑝 𝑀𝑀𝑀𝑀𝑀𝑀 = 𝑡𝑡𝑆𝑆𝑆𝑆(𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑁𝑁𝑁𝑁𝑁𝑁 ) 𝑀𝑀𝑀𝑀𝑀𝑀

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.

De ello la expresión a cumplir es:

𝑡𝑡𝑉𝑉(𝑁𝑁𝑁𝑁𝑁𝑁_𝑁𝑁𝑁𝑁) + 𝑡𝑡𝑤𝑤 (𝑁𝑁𝑁𝑁𝑁𝑁 ) − 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 ≥ 𝑡𝑡𝑆𝑆𝑆𝑆(𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑁𝑁𝑁𝑁𝑁𝑁 ) 𝑀𝑀𝑀𝑀𝑀𝑀

Nos falta, por tanto, saber cuando el dato es válido.


Dado que nos preguntan por tAVQV, tELQV y tGLQV, los resolveremos por separado.

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:

𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 = 𝑡𝑡𝑉𝑉(𝐴𝐴_𝑁𝑁𝑁𝑁) + 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴


De todo ello tenemos:

𝑡𝑡𝑉𝑉(𝑁𝑁𝑁𝑁𝑁𝑁_𝑁𝑁𝑁𝑁) + 𝑡𝑡𝑤𝑤 (𝑁𝑁𝑁𝑁𝑁𝑁 ) − 𝑡𝑡𝑉𝑉(𝐴𝐴_𝑁𝑁𝑁𝑁) − 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 ≥ 𝑡𝑡𝑆𝑆𝑆𝑆(𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑁𝑁𝑁𝑁𝑁𝑁 ) 𝑀𝑀𝑀𝑀𝑀𝑀

Recordemos, que deseamos hallar las restricciones de tAVQV, de ello:

𝑡𝑡𝑉𝑉(𝑁𝑁𝑁𝑁𝑁𝑁_𝑁𝑁𝑁𝑁) + 𝑡𝑡𝑤𝑤 (𝑁𝑁𝑁𝑁𝑁𝑁 ) − 𝑡𝑡𝑉𝑉(𝐴𝐴_𝑁𝑁𝑁𝑁) − 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 ≥ 𝑡𝑡𝑆𝑆𝑆𝑆(𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑁𝑁𝑁𝑁𝑁𝑁 ) 𝑀𝑀𝑀𝑀𝑀𝑀

𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 ≤ 𝑡𝑡𝑉𝑉(𝑁𝑁𝑁𝑁𝐸𝐸_𝑁𝑁𝑁𝑁) + 𝑡𝑡𝑤𝑤 (𝑁𝑁𝑁𝑁𝑁𝑁 ) − 𝑡𝑡𝑉𝑉(𝐴𝐴_𝑁𝑁𝑁𝑁) − 𝑡𝑡𝑆𝑆𝑆𝑆(𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑁𝑁𝑁𝑁𝑁𝑁 ) 𝑀𝑀𝑀𝑀𝑀𝑀

Aplicando el caso peor:

𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 ≤ 𝑡𝑡𝑉𝑉(𝑁𝑁𝑁𝑁𝑁𝑁_𝑁𝑁𝑁𝑁) 𝑀𝑀𝑀𝑀𝑀𝑀 + 𝑡𝑡𝑤𝑤 (𝑁𝑁𝑁𝑁𝑁𝑁 ) 𝑀𝑀𝑀𝑀𝑀𝑀 − 𝑡𝑡𝑆𝑆𝑆𝑆(𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑁𝑁𝑁𝑁𝑁𝑁 ) 𝑀𝑀𝑀𝑀𝑀𝑀

Estos valores los podemos obtener de la tabla de la CPU:

𝑡𝑡𝑉𝑉(𝑁𝑁𝑁𝑁𝑁𝑁_𝑁𝑁𝑁𝑁) 𝑀𝑀𝑀𝑀𝑀𝑀 = 0,5𝑛𝑛𝑛𝑛


𝑡𝑡𝑤𝑤 (𝑁𝑁𝑁𝑁𝑁𝑁) 𝑀𝑀𝑀𝑀𝑀𝑀 = 5𝑇𝑇𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 − 1,5𝑛𝑛𝑛𝑛
𝑡𝑡𝑉𝑉(𝐴𝐴_𝑁𝑁𝑁𝑁) 𝑀𝑀𝑀𝑀𝑀𝑀 = 0
𝑡𝑡𝑆𝑆𝑆𝑆(𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑁𝑁𝑁𝑁𝑁𝑁 ) 𝑀𝑀𝑀𝑀𝑀𝑀 = 2𝑇𝑇𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 + 25𝑛𝑛𝑛𝑛

La frecuencia de reloj es de 24MHz, por tanto, THCLK = 41,7ns. De ello:

𝑡𝑡𝑤𝑤 (𝑁𝑁𝑁𝑁𝑁𝑁 ) 𝑀𝑀𝑀𝑀𝑀𝑀 = 5𝑇𝑇𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 − 1,5𝑛𝑛𝑛𝑛 = 207𝑛𝑛𝑛𝑛


𝑡𝑡𝑆𝑆𝑆𝑆(𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑁𝑁𝑁𝑁𝑁𝑁) 𝑀𝑀𝑀𝑀𝑀𝑀 = 2𝑇𝑇𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 + 25𝑛𝑛𝑛𝑛 = 108,4𝑛𝑛𝑛𝑛

Por tanto:

𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 ≤ 0,5𝑛𝑛𝑛𝑛 + 207𝑛𝑛𝑛𝑛 − 108,4𝑛𝑛𝑛𝑛

𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 ≤ 99,1 𝑛𝑛𝑛𝑛

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↓

Del cronograma de la CPU:

𝑡𝑡
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 = 𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸 + 𝑡𝑡𝑂𝑂𝑂𝑂 + 𝑚𝑚𝑚𝑚𝑚𝑚 � 𝑉𝑉(𝐴𝐴_𝑁𝑁𝑁𝑁)
0
La expresión a cumplir sigue siendo:

𝑡𝑡𝑉𝑉(𝑁𝑁𝑁𝑁𝑁𝑁_𝑁𝑁𝑁𝑁) + 𝑡𝑡𝑤𝑤 (𝑁𝑁𝑁𝑁𝑁𝑁 ) − 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 ≥ 𝑡𝑡𝑆𝑆𝑆𝑆(𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑁𝑁𝑁𝑁𝑁𝑁 ) 𝑀𝑀𝑀𝑀𝑀𝑀

De ello:

𝑡𝑡𝑉𝑉(𝐴𝐴_𝑁𝑁𝑁𝑁)
𝑡𝑡𝑉𝑉(𝑁𝑁𝑁𝑁𝑁𝑁_𝑁𝑁𝑁𝑁) + 𝑡𝑡𝑤𝑤 (𝑁𝑁𝑁𝑁𝑁𝑁 ) − 𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸 − 𝑡𝑡𝑂𝑂𝑂𝑂 − 𝑚𝑚𝑚𝑚𝑚𝑚 � ≥ 𝑡𝑡𝑆𝑆𝑆𝑆(𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑁𝑁𝑁𝑁𝑁𝑁 ) 𝑀𝑀𝑀𝑀𝑀𝑀
0

Podemos despejar ahora tELQV:

𝑡𝑡𝑉𝑉(𝐴𝐴_𝑁𝑁𝑁𝑁)
𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸 ≤ 𝑡𝑡𝑉𝑉(𝑁𝑁𝑁𝑁𝑁𝑁_𝑁𝑁𝑁𝑁) + 𝑡𝑡𝑤𝑤 (𝑁𝑁𝑁𝑁𝑁𝑁 ) − 𝑡𝑡𝑂𝑂𝑂𝑂 − 𝑡𝑡𝑆𝑆𝑆𝑆(𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑁𝑁𝑁𝑁𝑁𝑁) 𝑀𝑀𝑀𝑀𝑀𝑀 − 𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚 �
0

El caso peor será:

𝑡𝑡
𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸 ≤ 𝑡𝑡𝑉𝑉(𝑁𝑁𝑁𝑁𝑁𝑁_𝑁𝑁𝑁𝑁)𝑀𝑀𝑀𝑀𝑀𝑀 + 𝑡𝑡𝑤𝑤 (𝑁𝑁𝑁𝑁𝑁𝑁 )𝑀𝑀𝑀𝑀𝑀𝑀 − 𝑡𝑡𝑂𝑂𝑂𝑂 𝑀𝑀𝑀𝑀𝑀𝑀 − 𝑡𝑡𝑆𝑆𝑆𝑆(𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑁𝑁𝑁𝑁𝑁𝑁 ) 𝑀𝑀𝑀𝑀𝑀𝑀 − 𝑚𝑚𝑚𝑚𝑚𝑚 � 𝑉𝑉(𝐴𝐴_𝑁𝑁𝑁𝑁) 𝑀𝑀𝑀𝑀𝑀𝑀
0

Algunos datos ya los hemos calculado antes:

𝑡𝑡𝑉𝑉(𝑁𝑁𝑁𝑁𝑁𝑁_𝑁𝑁𝑁𝑁)𝑀𝑀𝑀𝑀𝑀𝑀 = 0,5𝑛𝑛𝑛𝑛
𝑡𝑡𝑤𝑤 (𝑁𝑁𝑁𝑁𝑁𝑁) 𝑀𝑀𝑀𝑀𝑀𝑀 = 206,9𝑛𝑛𝑛𝑛
𝑡𝑡𝑆𝑆𝑆𝑆(𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑁𝑁𝑁𝑁𝑁𝑁 ) 𝑀𝑀𝑀𝑀𝑀𝑀 = 108,3𝑛𝑛𝑛𝑛
𝑡𝑡𝑉𝑉(𝐴𝐴_𝑁𝑁𝑁𝑁) 𝑀𝑀𝑀𝑀𝑀𝑀 = 0

Sólo nos queda:


𝑡𝑡𝑂𝑂𝑂𝑂 𝑀𝑀𝑀𝑀𝑀𝑀 = 6𝑛𝑛𝑛𝑛
De ello:

𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸 ≤ 0,5𝑛𝑛𝑛𝑛 + 206,9𝑛𝑛𝑛𝑛 − 6𝑛𝑛𝑛𝑛 − 108,3𝑛𝑛𝑛𝑛 − 0

𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸 ≤ 93,1 𝑛𝑛𝑛𝑛

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:

𝑡𝑡𝐺𝐺̅ ↓ = 𝑡𝑡𝑁𝑁𝑁𝑁𝑁𝑁↓ = 𝑡𝑡𝑉𝑉(𝑁𝑁𝑁𝑁𝑁𝑁_𝑁𝑁𝑁𝑁)

La aparición de un dato válido será:

𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 𝑑𝑑 = 𝑡𝑡𝑉𝑉(𝑁𝑁𝑁𝑁𝑁𝑁_𝑁𝑁𝑁𝑁) + 𝑡𝑡𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺

Por tanto, tendremos:

𝑡𝑡𝑉𝑉(𝑁𝑁𝑁𝑁𝑁𝑁_𝑁𝑁𝑁𝑁) + 𝑡𝑡𝑤𝑤 (𝑁𝑁𝑁𝑁𝑁𝑁 ) − 𝑡𝑡𝑉𝑉(𝑁𝑁𝑁𝑁𝑁𝑁_𝑁𝑁𝑁𝑁) − 𝑡𝑡𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺 ≥ 𝑡𝑡𝑆𝑆𝑆𝑆(𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑁𝑁𝑁𝑁𝑁𝑁 ) 𝑀𝑀𝑀𝑀𝑀𝑀


Podemos obs ervar que tV(NOE_NE) apa rece d os v eces co n signo distinto. En ambos caso s
corresponde exactamente al mismo tiempo por lo que:

𝑡𝑡𝑤𝑤 (𝑁𝑁𝑁𝑁𝑁𝑁 ) − 𝑡𝑡𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺 ≥ 𝑡𝑡𝑆𝑆𝑆𝑆(𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑁𝑁𝑁𝑁𝑁𝑁 ) 𝑀𝑀𝑀𝑀𝑀𝑀

Despejamos ahora tGLQV:

𝑡𝑡𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺 ≤ 𝑡𝑡𝑤𝑤 (𝑁𝑁𝑁𝑁𝑁𝑁 ) 𝑀𝑀𝑀𝑀𝑀𝑀 − 𝑡𝑡𝑆𝑆𝑆𝑆(𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑁𝑁𝑁𝑁𝑁𝑁 ) 𝑀𝑀𝑀𝑀𝑀𝑀

Con los datos que sabemos:

𝑡𝑡𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺 ≤ 206,9𝑛𝑛𝑛𝑛 − 108,3𝑛𝑛𝑛𝑛

𝑡𝑡𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺 ≤ 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).

La condición EOW corresponde a la desactivación de alguna de las señales de control asociadas


a la escritura, por tanto:

𝑡𝑡𝐶𝐶𝐶𝐶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:

𝑡𝑡𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁 ↑ = 𝑡𝑡𝑉𝑉(𝑁𝑁𝑁𝑁𝑁𝑁_𝑁𝑁𝑁𝑁) + 𝑡𝑡𝑊𝑊(𝑁𝑁𝑁𝑁𝑁𝑁) + 𝑡𝑡ℎ(𝐵𝐵𝐵𝐵_𝑁𝑁𝑁𝑁𝑁𝑁)


�����↑ = 𝑚𝑚𝑚𝑚𝑚𝑚 �
𝑡𝑡𝐶𝐶𝐶𝐶1 𝑡𝑡 = 𝑡𝑡
𝑁𝑁𝑁𝑁1↑ 𝑊𝑊(𝑁𝑁𝑁𝑁)

Para el caso de CS2, ésta se halla conectada al bus de direcciones por lo que:

𝑡𝑡𝐶𝐶𝐶𝐶2↓ = 𝑡𝑡𝑉𝑉(𝑁𝑁𝑁𝑁_𝑁𝑁𝑁𝑁) + 𝑡𝑡𝑊𝑊(𝑁𝑁𝑁𝑁𝑁𝑁) + 𝑡𝑡ℎ(𝐴𝐴_𝑁𝑁𝑁𝑁𝑁𝑁)

De ello tenemos:
𝑡𝑡𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁 ↑ = 𝑡𝑡𝑉𝑉(𝑁𝑁𝑁𝑁_𝑁𝑁𝑁𝑁) + 𝑡𝑡𝑊𝑊(𝑁𝑁𝑁𝑁𝑁𝑁) + 𝑡𝑡ℎ(𝐵𝐵𝐵𝐵_𝑁𝑁𝑁𝑁𝑁𝑁)
⎧𝑡𝑡𝐶𝐶𝐶𝐶1
�����↑ = 𝑚𝑚𝑚𝑚𝑚𝑚 �
𝑡𝑡 = 𝑡𝑡
𝑁𝑁𝑁𝑁1↑ 𝑊𝑊(𝑁𝑁𝑁𝑁)
𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸 = 𝑚𝑚𝑚𝑚𝑚𝑚 𝑡𝑡
⎨ 𝐶𝐶𝐶𝐶2↓ = 𝑡𝑡𝑉𝑉(𝑁𝑁𝑁𝑁𝑁𝑁_𝑁𝑁𝑁𝑁) + 𝑡𝑡𝑊𝑊(𝑁𝑁𝑁𝑁𝑁𝑁) + 𝑡𝑡ℎ(𝐴𝐴_𝑁𝑁𝑁𝑁𝑁𝑁)
⎩𝑡𝑡𝑊𝑊𝑊𝑊
����� ↑ = 𝑡𝑡𝑉𝑉(𝑁𝑁𝑁𝑁𝑁𝑁_𝑁𝑁𝑁𝑁) + 𝑡𝑡𝑊𝑊(𝑁𝑁𝑁𝑁𝑁𝑁 )

Se observa que muchos tiempos se repiten por lo que la expresión se puede compactar:

𝑡𝑡𝑊𝑊(𝑁𝑁𝑁𝑁)

0
𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸 = 𝑚𝑚𝑚𝑚𝑚𝑚
⎨𝑡𝑡𝑉𝑉(𝑁𝑁𝑁𝑁𝑁𝑁_𝑁𝑁𝑁𝑁) + 𝑡𝑡𝑊𝑊(𝑁𝑁𝑁𝑁𝑁𝑁 ) + 𝑚𝑚𝑚𝑚𝑚𝑚 �𝑡𝑡ℎ(𝐵𝐵𝐵𝐵_𝑁𝑁𝑁𝑁𝑁𝑁)
⎩ 𝑡𝑡ℎ(𝐴𝐴_𝑁𝑁𝑁𝑁𝑁𝑁)

Los tiempos th(BL_NWE) y th(A_NWE) son siempre positivos, por tanto:

𝑡𝑡𝑊𝑊(𝑁𝑁𝑁𝑁)
𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸 = 𝑚𝑚𝑚𝑚𝑚𝑚 �𝑡𝑡 + 𝑡𝑡𝑊𝑊(𝑁𝑁𝑁𝑁𝑁𝑁 )
𝑉𝑉(𝑁𝑁𝑁𝑁𝑁𝑁_𝑁𝑁𝑁𝑁)

Las cotas máxima y mínima de tEOW serán:

𝑡𝑡𝑊𝑊(𝑁𝑁𝑁𝑁)𝑀𝑀𝑀𝑀𝑀𝑀
𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸 𝑀𝑀𝑀𝑀𝑀𝑀 = 𝑚𝑚𝑚𝑚𝑚𝑚 �𝑡𝑡 + 𝑡𝑡𝑊𝑊(𝑁𝑁𝑁𝑁𝑁𝑁 ) 𝑀𝑀𝑀𝑀𝑀𝑀
𝑉𝑉(𝑁𝑁𝑁𝑁𝑁𝑁_𝑁𝑁𝑁𝑁) 𝑀𝑀𝑀𝑀𝑀𝑀

𝑡𝑡𝑊𝑊(𝑁𝑁𝑁𝑁)𝑀𝑀𝑀𝑀𝑀𝑀
𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸 𝑀𝑀𝑀𝑀𝑀𝑀 = 𝑚𝑚𝑚𝑚𝑚𝑚 �𝑡𝑡 + 𝑡𝑡𝑊𝑊(𝑁𝑁𝑁𝑁𝑁𝑁) 𝑀𝑀𝑀𝑀𝑀𝑀
𝑉𝑉(𝑁𝑁𝑁𝑁𝑁𝑁_𝑁𝑁𝑁𝑁) 𝑀𝑀𝑀𝑀𝑀𝑀
Tomando datos:
3𝑇𝑇𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 + 2𝑛𝑛𝑛𝑛 = 127𝑛𝑛𝑛𝑛
𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸 𝑀𝑀𝑀𝑀𝑀𝑀 = 𝑚𝑚𝑚𝑚𝑚𝑚 �
𝑇𝑇𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 + 1,5𝑛𝑛𝑛𝑛 + 𝑇𝑇𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 + 1,5𝑛𝑛𝑛𝑛 = 86,34𝑛𝑛𝑛𝑛

3𝑇𝑇 − 1𝑛𝑛𝑛𝑛 = 124𝑛𝑛𝑛𝑛


𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸 𝑀𝑀𝑀𝑀𝑀𝑀 = 𝑚𝑚𝑚𝑚𝑚𝑚 � 𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻
𝑇𝑇𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 − 0,5𝑛𝑛𝑛𝑛 + 𝑇𝑇𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 − 0,5𝑛𝑛𝑛𝑛 = 82,34𝑛𝑛𝑛𝑛

De ello tenemos:

𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸 𝑀𝑀𝑀𝑀𝑀𝑀 = 4𝑇𝑇𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 + 3,5𝑛𝑛𝑛𝑛 = 86,34𝑛𝑛𝑛𝑛

𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸 𝑀𝑀𝑀𝑀𝑀𝑀 = 4𝑇𝑇𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 − 1,5𝑛𝑛𝑛𝑛 = 82,34𝑛𝑛𝑛𝑛


El tiempo de setup mínimo de la memoria es de 12ns y el tiempo de hold mínimo es de 0ns.

(3 Puntos)
c) Demuestre si se cumplen los requisitos de setup TDW y hold TDH de la memoria en el
ciclo de escritura.

Para setup se deberá cumplir:

𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸 − 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 ≥ 𝑡𝑡𝐷𝐷𝐷𝐷 𝑀𝑀𝑀𝑀𝑀𝑀

Del cronograma de la CPU:

𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸 − 𝑡𝑡𝑉𝑉(𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑁𝑁𝑁𝑁) ≥ 𝑡𝑡𝐷𝐷𝐷𝐷 𝑀𝑀𝑀𝑀𝑀𝑀


El caso peor será:

𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸 𝑀𝑀𝑀𝑀𝑀𝑀 − 𝑡𝑡𝑉𝑉(𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑁𝑁𝑁𝑁) 𝑀𝑀𝑀𝑀𝑀𝑀 ≥ 𝑡𝑡𝐷𝐷𝐷𝐷 𝑀𝑀𝑀𝑀𝑀𝑀


De ello:

82,34𝑛𝑛𝑛𝑛 − 𝑇𝑇𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 − 7𝑛𝑛𝑛𝑛 ≥ 𝑡𝑡𝐷𝐷𝐷𝐷 𝑀𝑀𝑀𝑀𝑀𝑀

Sabiendo que THCLK = 41,7ns y que el tiempo de setup es de 12ns tendremos:

82,34𝑛𝑛𝑛𝑛 − 41,7𝑛𝑛𝑛𝑛 − 7𝑛𝑛𝑛𝑛 ≥ 12𝑛𝑛𝑛𝑛

33,67𝑛𝑛𝑛𝑛 ≥ 12𝑛𝑛𝑛𝑛
Luego se cumple

Para el caso del tiempo de hold hemos de cumplir:

𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑁𝑁𝑁𝑁𝑁𝑁 _𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 − 𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸 ≥ 𝑡𝑡𝐷𝐷𝐷𝐷 𝑀𝑀𝑀𝑀𝑀𝑀

Podemos ver en el cronograma de la CPU que se cumple:

𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑁𝑁𝑁𝑁𝑁𝑁 _𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 = 𝑡𝑡𝑁𝑁𝑁𝑁𝑁𝑁↑ + 𝑡𝑡ℎ (𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑁𝑁𝑁𝑁𝑁𝑁 )

Sabemos también, del apartado anterior:

𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸 = 𝑡𝑡𝑁𝑁𝑁𝑁𝑁𝑁↑
De ello:

𝑡𝑡𝑁𝑁𝑁𝑁𝑁𝑁↑ + 𝑡𝑡ℎ (𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑁𝑁𝑁𝑁𝑁𝑁 ) − 𝑡𝑡𝑁𝑁𝑁𝑁𝑁𝑁↑ ≥ 𝑡𝑡𝐷𝐷𝐷𝐷 𝑀𝑀𝑀𝑀𝑀𝑀

𝑡𝑡ℎ (𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑁𝑁𝑁𝑁𝑁𝑁 ) ≥ 𝑡𝑡𝐷𝐷𝐷𝐷 𝑀𝑀𝑀𝑀𝑀𝑀


El caso peor será:
𝑡𝑡ℎ (𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑁𝑁𝑁𝑁𝑁𝑁) 𝑀𝑀𝑀𝑀𝑀𝑀 ≥ 𝑡𝑡𝐷𝐷𝐷𝐷 𝑀𝑀𝑀𝑀𝑀𝑀
Tomando datos:
𝑇𝑇𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 ≥ 0

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

Professor: Vicente Jiménez.

Disposem d 'un s istema e n f uncionament ba sat e n u n pr ocessador M C68010. Aquest e s un


processador de 16 bits que te els següents senyals al seu bus:

A1-A23 : Bus de direccions


D0-D15 : Bus de dades
AS* : Strobe general actiu en tots els cicles de bus
LDS*, UDS* : Strobes dels carrers del bus de dades respectivament per D0...D7 i D8...D15
R/W* : Senyal d'identificació del tipus de cicle. "1" Per lectura i "0" per escriptura.

Aquest sistema te els components que es mostren a la figura següent.

D0..D7 D8..D15
MEM1
MC68010 D0..D7 D0..D7
A1..A23 A1..A18 A0..A17 A1..A16 A0..A15

D0...D15 D0..D15 D0..D15 WE* MEM MEM


2 3
R/W* R/W* OE* R/W* OE*

AS* CS* CS* CS*

LDS*
A19
A20
AS*

UDS*
A17
A18
A20
A17
A18
A20
LDS*

UDS*

ENUNCIAT PROBLEMA 2 (2,5 punts)

La modificació del sistema descrita al exercici anterior requereix d'augmentar la freqüència de


rellotge de la CPU que actualment es de 8MHz. Volem, per tant, analitzar la temporització de la
memòria del sistema i començarem pel xip MEM2.
Sabem que la memòria MEM2 te les següents especificacions:

• Temps d'accés màxim des de adreça vàlida tAA max = 100 ns


• Temps d'accés màxim des del flanc de baixada de CS* tACE max = 110 ns
• Temps d'accés màxim des del flanc de baixada de OE* tDOE max = 25 ns

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 .

Pel compliment del temps de setup t27 hem de complir:

𝑡𝑡27 > 10𝑛𝑛𝑛𝑛


Aquest temps t27 es pot calcular:

3,5𝑇𝑇 + 𝑡𝑡12 − 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 > 10𝑛𝑛𝑛𝑛

El temps en que tindrem una dada vàlida serà:

𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 + 𝑡𝑡𝐴𝐴𝐴𝐴


𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 = 𝑚𝑚𝑚𝑚𝑚𝑚 �𝑡𝑡𝐶𝐶𝐶𝐶↓ + 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴
𝑡𝑡𝑂𝑂𝑂𝑂↓ + 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷

Aquests temps es poden calcular:

𝑇𝑇
𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 = + 𝑡𝑡6
2
𝑡𝑡
𝑡𝑡𝐶𝐶𝐶𝐶↓ = 𝑡𝑡𝑂𝑂𝑂𝑂 + 𝑚𝑚𝑚𝑚𝑚𝑚 �𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉
𝐿𝐿𝐿𝐿𝐿𝐿↓

𝑡𝑡𝑂𝑂𝑂𝑂↓ = 𝑡𝑡𝐼𝐼𝐼𝐼𝐼𝐼 + 𝑡𝑡𝑅𝑅/𝑊𝑊∗↑

A les equacions anteriors hem de trobar dos temps addicionals:

𝑡𝑡𝐿𝐿𝐿𝐿𝐿𝐿↓ = 𝑇𝑇 + 𝑡𝑡9

𝑡𝑡𝑅𝑅/𝑊𝑊∗↑ = 𝑡𝑡18

Ajuntant les equacions tenim:

𝑡𝑡𝐴𝐴𝐴𝐴 + 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉


𝑡𝑡
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 = 𝑚𝑚𝑚𝑚𝑚𝑚 �𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 + 𝑡𝑡𝑂𝑂𝑂𝑂 + 𝑚𝑚𝑚𝑚𝑚𝑚 �𝑇𝑇𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴
+ 𝑡𝑡
𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉
9
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 + 𝑡𝑡𝐼𝐼𝐼𝐼𝐼𝐼 + 𝑡𝑡18

Observem que tADDR Valid surt dues vegades, per tant:

𝑡𝑡
𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 + 𝑚𝑚𝑚𝑚𝑚𝑚 �𝑡𝑡 𝐴𝐴𝐴𝐴
𝐴𝐴𝐴𝐴𝐴𝐴 + 𝑡𝑡𝑂𝑂𝑂𝑂
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 = 𝑚𝑚𝑚𝑚𝑚𝑚 �𝑡𝑡
𝐴𝐴𝐴𝐴𝐴𝐴 + 𝑡𝑡𝑂𝑂𝑂𝑂 + 𝑇𝑇 + 𝑡𝑡9
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 + 𝑡𝑡𝐼𝐼𝐼𝐼𝐼𝐼 + 𝑡𝑡18

3
Substituint:

𝑇𝑇 𝑡𝑡
+ 𝑡𝑡6 + 𝑚𝑚𝑚𝑚𝑚𝑚 �𝑡𝑡𝐴𝐴𝐴𝐴 + 𝑡𝑡
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 = 𝑚𝑚𝑚𝑚𝑚𝑚 �2 𝐴𝐴𝐴𝐴𝐴𝐴 𝑂𝑂𝑅𝑅
𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 + 𝑡𝑡𝑂𝑂𝑂𝑂 + 𝑇𝑇 + 𝑡𝑡9
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 + 𝑡𝑡𝐼𝐼𝐼𝐼𝐼𝐼 + 𝑡𝑡18

Substituint a la inequació principal tenim:

3,5𝑇𝑇 + 𝑡𝑡12 − 10𝑛𝑛𝑛𝑛 > 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉

𝑇𝑇 𝑡𝑡
+ 𝑡𝑡6 + 𝑚𝑚𝑚𝑚𝑚𝑚 �𝑡𝑡𝐴𝐴𝐴𝐴 + 𝑡𝑡
3,5𝑇𝑇 + 𝑡𝑡12 − 10𝑛𝑛𝑛𝑛 > 𝑚𝑚𝑚𝑚𝑚𝑚 � 2 𝐴𝐴𝐴𝐴𝐴𝐴 𝑂𝑂𝑂𝑂
𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 + 𝑡𝑡𝑂𝑂𝑂𝑂 + 𝑇𝑇 + 𝑡𝑡9
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 + 𝑡𝑡𝐼𝐼𝐼𝐼𝐼𝐼 + 𝑡𝑡18

Aplicant el cas pitjor a l'inequació tindrem:

𝑇𝑇 𝑡𝑡
+ 𝑡𝑡6 𝑚𝑚𝑚𝑚𝑚𝑚 + 𝑚𝑚𝑚𝑚𝑚𝑚 �𝑡𝑡𝐴𝐴𝐴𝐴 𝑚𝑚𝑚𝑚𝑚𝑚 + 𝑡𝑡
3,5𝑇𝑇 + 𝑡𝑡12 𝑚𝑚𝑚𝑚𝑚𝑚 − 10𝑛𝑛𝑛𝑛 > 𝑚𝑚𝑚𝑚𝑚𝑚 �2 𝐴𝐴𝐴𝐴𝐴𝐴 𝑚𝑚𝑚𝑚𝑚𝑚 𝑂𝑂𝑂𝑂 𝑚𝑚𝑚𝑚𝑚𝑚
𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 𝑚𝑚𝑚𝑚𝑚𝑚 + 𝑡𝑡𝑂𝑂𝑂𝑂 𝑚𝑚𝑚𝑚𝑚𝑚 + 𝑇𝑇 + 𝑡𝑡9 𝑚𝑚𝑚𝑚𝑚𝑚
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 𝑚𝑚𝑚𝑚𝑚𝑚 + 𝑡𝑡𝐼𝐼𝐼𝐼𝐼𝐼 𝑚𝑚𝑚𝑚𝑚𝑚 + 𝑡𝑡18 𝑚𝑚𝑚𝑚𝑚𝑚

Apliquem el valors que coneixem:

𝑇𝑇 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𝑛𝑛𝑛𝑛

La inequació anterior es pot reescriure com 3 inequacions:

𝑇𝑇
3,5𝑇𝑇 + 0 − 10𝑛𝑛𝑛𝑛 > + 170𝑛𝑛𝑛𝑛
2

3,5𝑇𝑇 + 0 − 10𝑛𝑛𝑛𝑛 > 170𝑛𝑛𝑛𝑛 + 𝑇𝑇

3,5𝑇𝑇 + 0 − 10𝑛𝑛𝑛𝑛 > 80𝑛𝑛𝑛𝑛

4
Simplifiquem:

3𝑇𝑇 > 180𝑛𝑛𝑛𝑛


2,5𝑇𝑇 > 180𝑛𝑛𝑛𝑛
3,5𝑇𝑇 > 90𝑛𝑛𝑛𝑛

Les solucions son:

𝑇𝑇 > 60𝑛𝑛𝑛𝑛
𝑇𝑇 > 72𝑛𝑛𝑛𝑛
𝑇𝑇 > 25,7𝑛𝑛𝑛𝑛

De la més restrictiva podem trobar la cota límit de la freqüència:

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.

Pel compliment del temps de hold t29 hem de complir:

𝑡𝑡29 > 0

Aquest t emps t 27 e s po t c alcular, t enint en c ompte que A S* i U DS* no es fan s ervir e n l a


descodificació de MEM2:

𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 𝑁𝑁𝑁𝑁 𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 − 𝑡𝑡𝐿𝐿𝐿𝐿𝐿𝐿∗↑ > 0

La de sactivació de LDS* donarà l loc, de sprés de l retard de la por ta O R, a la d esactivació de


CS* i a questa, de sprés d' un r etard no e specificat q ue a nomenarem t HZCE donarà lloc a l a
desactivació de les dades.

𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 𝑁𝑁𝑁𝑁 𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 = 𝑡𝑡𝐿𝐿𝐿𝐿𝐿𝐿↑ + 𝑡𝑡𝑂𝑂𝑂𝑂 + 𝑡𝑡𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻

De tot això:

𝑡𝑡𝐿𝐿𝐿𝐿𝐿𝐿↑ + 𝑡𝑡𝑂𝑂𝑂𝑂 + 𝑡𝑡𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 − 𝑡𝑡𝐿𝐿𝐿𝐿𝐿𝐿∗↑ > 0

𝑡𝑡𝑂𝑂𝑂𝑂 + 𝑡𝑡𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 > 0

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*.

𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸 = 3,5𝑇𝑇 + 𝑡𝑡12

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:

𝑡𝑡𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 ≤ 𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸 − (1,5𝑇𝑇 + 𝑡𝑡23 )


Per tant:
𝑡𝑡𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 ≤ 3,5𝑇𝑇 + 𝑡𝑡12 − 1,5𝑇𝑇 − 𝑡𝑡23

𝑡𝑡𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 ≤ 2𝑇𝑇 + 𝑡𝑡12 − 𝑡𝑡23

El cas pitjor serà:


𝑡𝑡𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 ≤ 𝑚𝑚𝑚𝑚𝑚𝑚(2𝑇𝑇 + 𝑡𝑡12 − 𝑡𝑡23 )

𝑡𝑡𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 ≤ 2𝑇𝑇 + 𝑡𝑡12 𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑡𝑡23 𝑚𝑚𝑚𝑚𝑚𝑚

𝑡𝑡𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 ≤ 200𝑛𝑛𝑛𝑛 + 0 − 40𝑛𝑛𝑛𝑛

𝑡𝑡𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 ≤ 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.

𝑡𝑡𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 ≤ 4𝑇𝑇 + 𝑡𝑡53 − 𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸


Per tant:
𝑡𝑡𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 ≤ 4𝑇𝑇 + 𝑡𝑡53 − 3,5𝑇𝑇 − 𝑡𝑡12

𝑡𝑡𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 ≤ 0,5𝑇𝑇 + 𝑡𝑡53 − 𝑡𝑡12


Cas pitjor:
𝑡𝑡𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 ≤ 𝑚𝑚𝑚𝑚𝑚𝑚(0,5𝑇𝑇 + 𝑡𝑡53 − 𝑡𝑡12 )

𝑡𝑡𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 ≤ 0,5𝑇𝑇 + 𝑡𝑡53 𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑡𝑡12 𝑚𝑚𝑚𝑚𝑚𝑚

𝑡𝑡𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 ≤ 50𝑛𝑛𝑛𝑛 + 0 − 40𝑛𝑛𝑛𝑛

𝑡𝑡𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 ≤ 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

Professor: Vicente Jiménez.

PROBLEMA (Enunciado)

Estamos desarrollando un sistema basado en un microcontrolador de 16 bits (datos y


direcciones) MC9S12DT256 de Motorola. Este microcontrolador, contiene una cierta cantidad
de memoria interna RAM / EEPROM y permite añadir memoria externa usando un bus
multiplexado que emplea las siguientes señales:

AD0...AD15 : Bus de direcciones y datos multiplexado


Durante la primera parte del ciclo de bus contiene las direcciones A1...A15
Durante la segunda parte del ciclo de bus contiene los datos D0...D15

ECLK : Reloj del bus externo.

R / W* : Señalización de lectura "1" o escritura "0"

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.

El cronograma simplificado de un ciclo de lectura en el bus externo es el que se muestra en la


figura siguiente.

ECLK
T/2
5 7 11
10
AD0...AD15 ADDR DATA
24 26
R/ W
20 22
ECS

Los números corresponden a tiempos que serán posteriormente descritos en el apartado de


temporización.

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

Básicamente tenemos el MCU, la ROM y un conjunto de elementos lógicos de interfaz (glue


logic dentro del rectángulo punteado) que implementaremos con lógica programable.
Tenemos dos elementos lógicos:

• Un latch que tiene como entrada AD1...AD5 (AD0 no es necesaria) y es transparente a


los datos mientras ECS* es alta. En el momento en que ECS* pasa a nivel "0", la salida
del latch queda fijada en el último valor que tenía antes de cambiar ECS*. De esta
manera las entradas de direcciones de la ROM no desaparecen cuando el MCU retira las
direcciones de AD0...AD15.

• Un bloque COMB, por diseñar, encargado de la decodificación de direcciones.

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:

• Retardo máximo de propagación entrada-salida para el latch de 3ns.


• Retardo máximo del bloque COMB para cualquier entrada - salida de 4ns.

La memoria ROM, como es habitual, vendrá determinada por tres tiempos cuyos valores
deseamos acotar para garantizar un funcionamiento correcto:

tAA : Retardo entre direcciones y dato válido


tACE : Retardo entre CS* y dato válido
tDOE : Retrado entre OE* y dato válido

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.

La ecuación a cumplir para el tiempo de hold del latch es:

𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 _𝑂𝑂𝑂𝑂𝑂𝑂 − 𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 ≥ 𝑡𝑡𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 _𝑀𝑀𝑀𝑀𝑀𝑀

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 𝑚𝑚𝑚𝑚𝑚𝑚

La frecuencia es 25MHz por lo que T=40ns y T/2=20ns

20𝑛𝑛𝑛𝑛 + 2𝑛𝑛𝑠𝑠 − 16𝑛𝑛𝑛𝑛 ≥

Por tanto, la restricción a cumplir es:

𝑡𝑡𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 _𝑀𝑀𝑀𝑀𝑀𝑀 ≤ 6𝑛𝑛𝑛𝑛

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.

La ecuación del tiempo de setup es:

𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 − 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝐼𝐼𝐼𝐼 ≥ 𝑡𝑡𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 _𝑚𝑚𝑚𝑚𝑚𝑚

Aplicando los valores del cronograma:

𝑇𝑇 − 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝐼𝐼𝐼𝐼 ≥ 𝑡𝑡10_𝑚𝑚𝑚𝑚𝑚𝑚

11
El valor de tData_In tiene una restricción distinta para cada tiempo de la memoria:

Para el tiempo tAA :

𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝐼𝐼𝐼𝐼 = 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 + 𝑡𝑡𝐴𝐴𝐴𝐴

El tiempo en que aparecen las direcciones a la entrada de la memoria es:

𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 = 0 + 𝑡𝑡5 + 𝑡𝑡𝑃𝑃_𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 ℎ


De ello:

𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝐼𝐼𝐼𝐼 = 𝑡𝑡5 + 𝑡𝑡𝑃𝑃_𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 ℎ + 𝑡𝑡𝐴𝐴𝐴𝐴

Aplicando a ecuación de setup:

𝑇𝑇 − 𝑡𝑡5 − 𝑡𝑡𝑃𝑃_𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 ℎ − 𝑡𝑡𝐴𝐴𝐴𝐴 ≥ 𝑡𝑡10_𝑚𝑚𝑚𝑚𝑚𝑚


Despejamos tAA :

𝑡𝑡𝐴𝐴𝐴𝐴 ≤ 𝑇𝑇 − 𝑡𝑡5 − 𝑡𝑡𝑃𝑃_𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 ℎ − 𝑡𝑡10_𝑚𝑚𝑚𝑚𝑚𝑚


Aplicando extremos:

𝑡𝑡𝐴𝐴𝐴𝐴 ≤ 𝑇𝑇 − 𝑡𝑡5 |𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑡𝑡𝑃𝑃_𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 ℎ �𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑡𝑡10_𝑚𝑚𝑚𝑚𝑚𝑚


De ello:
𝑡𝑡𝐴𝐴𝐴𝐴 ≤ 40𝑛𝑛𝑛𝑛 − 8𝑛𝑛𝑛𝑛 − 3𝑛𝑛𝑛𝑛 − 13𝑛𝑛𝑛𝑛

𝑡𝑡𝐴𝐴𝐴𝐴 ≤ 16𝑛𝑛𝑛𝑛

Para el tiempo tACE :

𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝐼𝐼𝐼𝐼 = 𝑡𝑡𝐶𝐶𝐶𝐶


����↓ + 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴

El tiempo en que se activa CS* depende de las direcciones y de las señales de control ECS* y
R/W*:

𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴
𝑡𝑡����
𝐶𝐶𝐶𝐶 ↓ = 𝑡𝑡𝑃𝑃𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 + 𝑚𝑚𝑚𝑚𝑚𝑚 � 𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸
������↓
𝑡𝑡𝑅𝑅 ⁄𝑊𝑊�↑

Desarrollando los tiempos tendremos:

𝑡𝑡5 + 𝑡𝑡𝑃𝑃_𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 ℎ
𝑡𝑡𝐶𝐶𝐶𝐶
����↓ = 𝑡𝑡𝑃𝑃𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 + 𝑚𝑚𝑚𝑚𝑚𝑚 �𝑡𝑡20
𝑡𝑡24
De ello:

𝑡𝑡5 + 𝑡𝑡𝑃𝑃_𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 ℎ
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝐼𝐼𝐼𝐼 = 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 + 𝑡𝑡𝑃𝑃𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 + 𝑚𝑚𝑚𝑚𝑚𝑚 �𝑡𝑡20
𝑡𝑡24

Aplicando la ecuación de setup:

𝑡𝑡5 + 𝑡𝑡𝑃𝑃_𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 ℎ
𝑇𝑇 − 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 − 𝑡𝑡𝑃𝑃𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 − 𝑚𝑚𝑚𝑚𝑚𝑚 �𝑡𝑡20 ≥ 𝑡𝑡10_𝑚𝑚𝑚𝑚𝑚𝑚
𝑡𝑡24

12
Despejamos tACE:

𝑡𝑡5 + 𝑡𝑡𝑃𝑃_𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 ℎ
𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 ≤ 𝑇𝑇 − 𝑡𝑡𝑃𝑃𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 − 𝑡𝑡10_𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑚𝑚𝑚𝑚𝑚𝑚 �𝑡𝑡20
𝑡𝑡24
Aplicando extremos:

𝑡𝑡5 |𝑚𝑚𝑚𝑚𝑚𝑚 + 𝑡𝑡𝑃𝑃_𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 ℎ �𝑚𝑚𝑚𝑚𝑚𝑚


𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 ≤ 𝑇𝑇 − 𝑡𝑡𝑃𝑃𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 � − 𝑡𝑡10_𝑚𝑚𝑚𝑚𝑚𝑚 �𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑚𝑚𝑚𝑚𝑚𝑚 �𝑡𝑡20 |𝑚𝑚𝑚𝑚𝑚𝑚
𝑚𝑚𝑚𝑚𝑚𝑚
𝑡𝑡24 |𝑚𝑚𝑚𝑚𝑚𝑚
Numéricamente:
8𝑛𝑛𝑛𝑛 + 3𝑛𝑛𝑛𝑛
𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 ≤ 40𝑛𝑛𝑛𝑛 − 4𝑛𝑛𝑛𝑛 − 13𝑛𝑛𝑛𝑛 − 𝑚𝑚𝑚𝑚𝑚𝑚 �16𝑛𝑛𝑛𝑛
7𝑛𝑛𝑛𝑛

𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 ≤ 40𝑛𝑛𝑛𝑛 − 4𝑛𝑛𝑛𝑛 − 13𝑛𝑛𝑛𝑛 − 16𝑛𝑛𝑛𝑛

𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 ≤ 7𝑛𝑛𝑛𝑛

Finalmente, para el tiempo tDOE :

𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝐼𝐼𝐼𝐼 = 𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸


�������� ↓ + 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷

𝑇𝑇
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝐼𝐼𝐼𝐼 = + 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷
2

Aplicando la ecuación de setup:

𝑇𝑇
𝑇𝑇 − − 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 ≥ 𝑡𝑡10_𝑚𝑚𝑚𝑚𝑚𝑚
2

De manera similar a los otros tiempos:

𝑇𝑇
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 ≤ − 𝑡𝑡10_𝑚𝑚𝑚𝑚𝑚𝑚
2

𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 ≤ 20𝑛𝑛𝑛𝑛 − 13𝑛𝑛𝑛𝑛

𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 ≤ 7𝑛𝑛𝑛𝑛

En definitiva, las restricciones a cumplir son:

𝑡𝑡𝐴𝐴𝐴𝐴 ≤ 16𝑛𝑛𝑛𝑛 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 ≤ 7𝑛𝑛𝑛𝑛 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 ≤ 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

𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 < 𝑡𝑡7


Aplicando extremos a t7:

𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 < 𝑡𝑡7 |𝑚𝑚𝑚𝑚𝑚𝑚

𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 < 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:

𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝐼𝐼𝐼𝐼 > 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 _𝑂𝑂𝑂𝑂𝑂𝑂


De ello:
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 > 𝑡𝑡7
Aplicando extremos:
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 > 𝑡𝑡7 |𝑚𝑚𝑚𝑚𝑚𝑚

Desgraciadamente la tabla no da un valor máximo para t7 y, tomar un valor no acotado para t7


garantiza que no se puede cumplir la ecuación anterior.
La conclusión es que no se puede garantizar, con los datos disponibles, que no pueda darse
una colisión entre datos y direcciones en el bus.

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

A23...A17 A16 A19 A16...A18


A20...A23

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)

Las expresiones son:

𝑡𝑡𝐴𝐴𝐴𝐴 ≤ 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 − 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 = 20𝑛𝑛𝑛𝑛


𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 + 𝑡𝑡𝑂𝑂𝑂𝑂 ≤ 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 − 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 = 20𝑛𝑛𝑛𝑛
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 ≤ 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 − 𝑡𝑡����
𝑅𝑅𝑅𝑅 = 15𝑛𝑛𝑛𝑛

De ello:

𝑡𝑡𝐴𝐴𝐴𝐴 ≤ 20𝑛𝑛𝑛𝑛 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 ≤ 17𝑛𝑛𝑛𝑛 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 ≤ 15𝑛𝑛𝑛𝑛


SBM
21 de Gener 2015
Data notes provisionals: 23 Gener
Període d’al·legacions: 24 Gener
DEPARTAMENT D’ENGINYERIA ELECTRÒNICA
Data notes revisades: 25 Gener

Professor: Manel Dominguez.

Informacions addicionals:
• Duració de l’examen: 2h 15min.

PROBLEMA 1 (3.5 Punts)

Volem conectar el microcontrolador TMPM363F10FG a una memòria NOR-Flash i a una SRAM. El


connexionat general de blocs que ens proposen és:

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:

Deseamos t rabajar con un m icrocontrolador Fujitsu M B90V330A. E ste m icrocontrolador (en


adelante MCU) cuenta con memoria RAM interna de 28K Bytes pero no c uenta con memoria
no volátil interna.
El e spacio d e d irecciones comprendido e ntre l as d irecciones 00000 0h y 007F FFh s e emplea
para alojar la memoria RAM interna y los registros de los periféricos.
El MCU permite añadir memoria ya que todo su espacio direccionable es accesible al exterior
mediante un bus externo.
Aunque e s pos ible a ñadir memoria e xterna po r de bajo de la dirección 00800 0h, e sta no s erá
vista por la C PU y a que l a m emoria interna de l M CU tie ne p rioridad respecto a la m emoria
externa.

El bus externo del MCU cuenta con las siguientes señales:

A1..A23: Bus de direcciones


D0..D15: Bus de datos
RD*: Strobe de lectura activo a nivel bajo "0". En lectura siempre se leen las 2
calles, esto es, todo el bus de datos D0...D15.
WRH*: Strobe de e scritura de la cal le al ta. Activo a ni vel ba jo "0" cua ndo se
emplea l a ca lle al ta c orrespondiente a l as l íneas D 8..D15 en ciclos de
escritura.
WRL*: Strobe de e scritura de l a calle baja. A ctivo a n ivel b ajo "0" cuando s e
emplea l a calle b aja co rrespondiente a l as l íneas D0..D7 en ciclos d e
escritura.
Como puede verse el símbolo (*) identifica señales activas a nivel bajo.

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:

A1-A18 A0-A17 A0 -An-1 A0 -Am-1 A0 -Am-1

D0-D15 D0-D15 D0-D15 D0-D7 D0-D7

ROM WE* RAM 1 RAM 2 RAM 3


OE* 64KB 64 KB 64 KB
RD* OE* WE* WE*
UB*
LB* OE* OE*
CS* CS* CS* CS*

A23 A21
Figura 1 - Memoria externa
Como puede verse la memoria ROM está completamente especificada.

Deseamos aho ra an alizar l a temporización en lectura de las m emorias. Para simplificar


estudiaremos sólo la memoria ROM.

Esta memoria se especifica mediante los tres tiempos habituales en lectura:


tAA Tiempo desde dirección válida a dato válido
tACE Tiempo desde flanco de bajada de CS* a dato válido
tDOE Tiempo desde flanco de bajada de OE* a dato válido

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.

Las siguientes figuras muestran la temporización en lectura para el microcontrolador:

Figura 2 - Cronograma del MCU en lectura

NOTA: tCP es el período de reloj

Tabla 1 - Tiempos del MCU en lectura

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.

El período de reloj será:


1
𝑡𝑡𝐶𝐶𝐶𝐶 = = 167𝑛𝑛𝑛𝑛
6𝑀𝑀𝑀𝑀𝑀𝑀

Para el tiempo tAA:

5𝑡𝑡𝐶𝐶𝐶𝐶
𝑡𝑡𝐴𝐴𝐴𝐴 = 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 − 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 = 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 ≤ − 80𝑛𝑛𝑛𝑛
2

𝑡𝑡𝐴𝐴𝐴𝐴 ≤ 337.5𝑛𝑛𝑛𝑛

Para el tiempo tACE:

𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 = 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 − 𝑡𝑡𝐶𝐶𝐶𝐶∗ 𝑡𝑡𝐶𝐶𝐶𝐶∗ = 𝑡𝑡𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺 + 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴

5𝑡𝑡𝐶𝐶𝐶𝐶
𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 = (𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 − 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 ) − 𝑡𝑡𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 + 𝑡𝑡𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺 = 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 ≤ − 80𝑛𝑛𝑛𝑛
2
5𝑡𝑡𝐶𝐶𝐶𝐶
𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 = (𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 − 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 ) − 𝑡𝑡𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 ≤ − 80𝑛𝑛𝑛𝑛 − 𝑡𝑡𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺 𝑚𝑚𝑚𝑚𝑚𝑚
2
5𝑡𝑡𝐶𝐶𝐶𝐶
𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 ≤ − 80𝑛𝑛𝑛𝑛 − 15𝑛𝑛𝑛𝑛 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 ≤ 322.5𝑛𝑛𝑛𝑛
2

Para el tiempo tDOE:

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

Professor: Vicente Jiménez.

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

Disponemos de un m icrocontrolador (MCU) S TM32F429 que de seamos c onectar a una


memoria S RAM ext erna. Esta m emoria coe xistirá c on la m emoria i nterna de l MC U y se
posicionará en el mapa de memoria a partir de la dirección 0x6000 0000.
Para minimizar el número de pines usados emplearemos uno de los posibles modos de acceso a
memoria externa que emplea un bus multiplexado de datos y direcciones.
Ello suele requerir emplear un latch de captura de las direcciones. En nuestro caso, para evitar
añadir este elemento adicional, hemos seleccionado una memoria MCM62995A que incorpora
internamente este elemento.
La siguiente figura muestra la conexión entre la memoria y el MCU. Por simplicidad se muestra
explícitamente el latch de direcciones aunque realmente forma parte del chip de la memoria.

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*

La descripción de las señales empleadas es la siguiente:

*E2: S eñal de ha bilitación de l MC U cone ctada a la seña l chip select E* de l a memoria. L a


memoria t iene un a señ al chip select "E" a dicional activa a ni vel a lto, que t enemos, de
momento, siempre activa.

*BL1 y BL0: Strobes de la calle 0 y l a calle 1 respectivamente conectadas directamente a las


entradas de strobe BWH* y BWL* de la memoria. La memoria sólo considera estas entradas
en ciclos de escritura por lo que las lecturas siempre se hacen en las dos calles.

*OE: Output Enable activa en ciclos de lectura d el MC U con ectada a la e ntrada G * de la


memoria que activa su lectura.
*WE: Write Enable activa en ciclos de e scritura d el MC U cone ctada a la en trada W* de l a
memoria que activa su escritura.

*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.

AD0...AD15: 15 L íneas m ás ba jas de l bu s m ultiplexado que c ontiene información d e


direcciones en la primera parte del ciclo de bus e información de datos en la segunda parte.
Nótese que AD0 se multiplexa con A1 no con A0 tal y como se muestra en la siguiente tabla:

Bus Multiplexado AD0...........AD15


Bus de Datos D0............D15
Bus de Direcciones A1............A16

A17...Ann: L íneas a ltas d el bus de d irecciones que n o s e ha llan multiplexadas con e l b us d e


datos y que no estamos usando de momento.

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/𝑓𝑓𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻

Las restricciones de la memoria durante la escritura son:

• Ancho mínimo del pulso de la señal W* de 12ns


• Tiempo de setup en escritura para el bus de datos de 5ns
• Tiempo de hold en escritura para el bus de datos de 0ns

(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.

En el caso de l a m emoria S RAM, para l a c orrecta captura de las d irecciones en el latch de


entrada, se han de cumplir los siguientes requisitos:

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.

𝑡𝑡𝑤𝑤 (𝑁𝑁𝑁𝑁𝑁𝑁)𝑚𝑚𝑚𝑚𝑚𝑚 ≥ 12𝑛𝑛𝑛𝑛 2𝑇𝑇𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 ≥ 12𝑛𝑛𝑛𝑛

𝑇𝑇𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 ≥ 6𝑛𝑛𝑛𝑛 𝑓𝑓𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 ≤ 166𝑀𝑀𝑀𝑀𝑀𝑀

La restricción del tiempo de setup se cumple siempre si se cumple también la anterior.


El tiempo se hold se cumplirá también siempre.

(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.

Las condiciones de hold a cumplir son:

𝑡𝑡𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 ≤ 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 _𝑂𝑂𝑂𝑂𝑂𝑂 − 𝑡𝑡𝐿𝐿𝐿𝐿_𝐿𝐿𝐿𝐿𝐿𝐿 𝑡𝑡𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 ≤ 𝑡𝑡∗𝐸𝐸_𝐻𝐻𝐻𝐻𝐻𝐻ℎ − 𝑡𝑡𝐿𝐿𝐿𝐿_𝐿𝐿𝐿𝐿𝐿𝐿

De ello:

𝑡𝑡𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 ≤ �𝑡𝑡𝐴𝐴𝐴𝐴𝑉𝑉𝐻𝐻 𝑖𝑖𝑖𝑖 ℎ + 𝑡𝑡ℎ (𝐴𝐴𝐴𝐴_𝑁𝑁𝑁𝑁𝑁𝑁)� − �𝑡𝑡𝐴𝐴𝐴𝐴𝑉𝑉𝐻𝐻𝐻𝐻𝐻𝐻 ℎ + 𝑡𝑡𝐼𝐼𝐼𝐼𝐼𝐼 �

𝑡𝑡𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 𝑡𝑡ℎ (𝐴𝐴𝐴𝐴_𝑁𝑁𝑁𝑁𝑁𝑁)𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑡𝑡𝐼𝐼𝐼𝐼𝐼𝐼 𝑚𝑚𝑚𝑚𝑚𝑚

3𝑛𝑛𝑛𝑛 + 4𝑛𝑛𝑛𝑛 ≤ 𝑇𝑇𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 − 2𝑛𝑛𝑛𝑛

𝑇𝑇𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 ≥ 9𝑛𝑛𝑛𝑛 𝑓𝑓𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 ≤ 111 𝑀𝑀𝑀𝑀𝑀𝑀

Para la segunda condición:

𝑡𝑡𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 ≤ 𝑡𝑡∗𝐸𝐸_𝐻𝐻𝐻𝐻𝐻𝐻ℎ − 𝑡𝑡𝐿𝐿𝐿𝐿_𝐿𝐿𝐿𝐿𝐿𝐿

𝑡𝑡𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 ≤ �𝑡𝑡∗𝐸𝐸2_𝐿𝐿𝐿𝐿𝐿𝐿 + 𝑡𝑡𝑊𝑊 (𝑁𝑁𝑁𝑁)� − �𝑡𝑡𝐴𝐴𝐴𝐴𝑉𝑉𝐻𝐻𝐻𝐻𝐻𝐻 ℎ + 𝑡𝑡𝐼𝐼𝐼𝐼𝐼𝐼 �

𝑡𝑡𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 ≤ �𝑡𝑡∗𝐸𝐸2_𝐿𝐿𝐿𝐿𝐿𝐿 + 𝑡𝑡𝑊𝑊 (𝑁𝑁𝑁𝑁)� − �𝑡𝑡∗𝐸𝐸2_𝐿𝐿𝐿𝐿𝐿𝐿 + 𝑡𝑡𝑣𝑣 (𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁_𝑁𝑁𝑁𝑁) + 𝑡𝑡𝑤𝑤 (𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁) + 𝑡𝑡𝐼𝐼𝐼𝐼𝐼𝐼 �

𝑡𝑡𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 𝑡𝑡𝑊𝑊 (𝑁𝑁𝑁𝑁)𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑡𝑡𝑣𝑣 (𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁_𝑁𝑁𝑁𝑁)𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑡𝑡𝑤𝑤 (𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁)𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑡𝑡𝐼𝐼𝐼𝐼𝐼𝐼 𝑚𝑚𝑚𝑚𝑚𝑚

3𝑛𝑛𝑛𝑛 ≤ 4𝑇𝑇𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 − 1𝑛𝑛𝑛𝑛 − 𝑇𝑇𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 − 0.5𝑛𝑛𝑛𝑛 − 4𝑛𝑛𝑛𝑛

8.5𝑛𝑛𝑛𝑛 ≤ 3𝑇𝑇𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 𝑇𝑇𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 ≥ 2.8𝑛𝑛𝑛𝑛 𝑓𝑓𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻 ≤ 353𝑀𝑀𝑀𝑀𝑀𝑀

Al final la condición más restrictiva es fHCLK < 111MHz


SBM
20 de Juny 2014
Data notes provisionals: 27 Juny
DEPARTAMENT D’ENGINYERIA ELECTRÒNICA
Període d’al·legacions: 30 Juny
Data notes revisades: 1 Juliol

Professor: Manel Dominguez.

Informacions addicionals:
• Duració de l’examen: 2h.

PROBLEMA 1 (7 Punts)

Volem conectar una RAM Magnetoresistiva a un m icrocontrolador AT91. Aquest tipus


de m emòries s ón no vol àtils pe rò no e s ba sen e n e ls pr incipis f ísics de les m emòries
flash o E EPROM. Es un a s olució m olt bona per aplicacions q ue h an d ’enmagatzemar
dades crítiques de manera ràpida.

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:

a) (0.5 punts) Indiqueu la capacitat total de la memòria en bytes.

La s egüent t aula d escriu el f uncionament de l a m emòria e n f unció de ls s eus di versos


senyals d’entrada:

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.

b) (2 punts) Realitzeu les interconnexions necessàries entre la memòria MRAM i el


microcontrolador, f ent s ervir e l s enyal N CS2 p er a d escodificar l a m emòria.
Indiqueu el nombre de zones imatge, si n’hi ha.

2
El cronograma en lectura del microcontrolador és el següent:

c) (0.5 punts) Identifiqueu, en funció del període de rellotge de MCK, tCPMCK,


l’instant de captura de dades en lectura.

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:

f) (0.5 punts) Expliqueu el significat del temps tEHQZ.

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.

Calculeu e l nom bre mínim d’estats d ’espera n ecessari (n) p er t al d ’accedir


correctament en lectura a l a memòria. Considereu sempre els temps de la taula
relacionats amb capacitats nul.les (CXXX=0 pF).

NOTA: Els temps de la taula tCPMCK i tCPMCK es defineixen com:

. tCPMCK: és el període del rellotge MCK (40MHz)


. tCHMCK: és tCPMCK/2 (la meitat d’un període de rellotge).

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

PROBLEMA 2 (2,5 Puntos)

Deseamos analizar un sistema que incluye un microcontrolador (MCU) de 8 bits 68HC11E1 y


un chip de memoria RAM externo.
Este MCU, es capaz de direccionar hasta 64kB y ya dispone de 512 Bytes de memoria ROM y
512 Bytes de memoria RAM internos. Podemos añadir memoria externa al MCU si la
decodificamos entre las direcciones B800h y FFFFh.

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

El esquema de conexionado propuesto entre el MCU y la memoria RAM es el que se muestra en


la siguiente figura:

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

Obsérvese que no se usan las líneas A12 y A13 del puerto B.

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:

Los valores de los distintos tiempos se muestran en la tabla siguiente:

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.

Lo primero que deseamos es verificar que el latch 74HC533 captura correctamente la


información de direcciones A7...A0 durante la primera mitad del ciclo de bus.

ts th La figura de la izquierda muestra el cronograma


del comportamiento del latch 74HC533.
In Data Si la entrada LE* es alta, el latch es transparente:
la salida copia la entrada con un retardo td.
LE* Si la señal LE* baja a "0" el valor previamente a
la salida queda fijado y dejará de depender de la
Out Data entrada siempre y cuando se cumpla el tiempo de
td
setuptS y de holdtH del latch.

Las características del latch son

tS min tH min tdmax


10ns 7ns 33 ns

(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)

Deseamos analizar un sistema que incluye un microcontrolador (MCU) de 8 bits 68HC11E1 y


un chip de memoria RAM externo.
Este MCU, es capaz de direccionar hasta 64kB y ya dispone de 512 Bytes de memoria ROM y
512 Bytes de memoria RAM internos. Podemos añadir memoria externa al MCU si la
decodificamos entre las direcciones B800h y FFFFh.

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

El esquema de conexionado propuesto entre el MCU y la memoria RAM es el que se muestra en


la siguiente figura:

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

Obsérvese que no se usan las líneas A12 y A13 del puerto B.

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:

Los valores de los distintos tiempos se muestran en la tabla siguiente:

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.

Lo primero que deseamos es verificar que el latch 74HC533 captura correctamente la


información de direcciones A7...A0 durante la primera mitad del ciclo de bus.

ts th La figura de la izquierda muestra el cronograma


del comportamiento del latch 74HC533.
In Data Si la entrada LE* es alta, el latch es transparente:
la salida copia la entrada con un retardo td.
LE* Si la señal LE* baja a "0" el valor previamente a
la salida queda fijado y dejará de depender de la
Out Data entrada siempre y cuando se cumpla el tiempo de
td
setuptS y de holdtH del latch.

Las características del latch son

tS min tH min tdmax


10ns 7ns 33 ns

(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?

tS max < t24 min 13ns


tH max < t25 min 31ns
Se cumplen los dos requisitos del latch.

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.

Los tiempos de setup y hold son de 30ns y 0ns

Para la señal CS* se ha de cumplir:

𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 + 𝑡𝑡𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔 ≤ 𝑡𝑡12 + 𝑡𝑡3 − 𝑡𝑡17


𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 ≤ 𝑡𝑡12 + 𝑡𝑡3 − 𝑡𝑡17 − 𝑡𝑡𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔

Aplicando extremos:
𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 𝑡𝑡12 𝑚𝑚𝑚𝑚𝑚𝑚 + 𝑡𝑡3 − 𝑡𝑡17 𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑡𝑡𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔 𝑚𝑚𝑚𝑚𝑚𝑚
𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 54 𝑛𝑛𝑛𝑛 + 141 𝑛𝑛𝑛𝑛 − 30 𝑛𝑛𝑛𝑛 − 12𝑛𝑛𝑛𝑛
𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 153 𝑛𝑛𝑛𝑛

Para la entrada de direcciones de la memoria se ha de cumplir:

𝑡𝑡𝐴𝐴𝐴𝐴 + 𝑡𝑡𝑑𝑑 𝑙𝑙𝑙𝑙𝑙𝑙𝑙𝑙 ℎ ≤ 𝑡𝑡12,22 + 𝑡𝑡3 − 𝑡𝑡17


𝑡𝑡𝐴𝐴𝐴𝐴 ≤ 𝑡𝑡12,22 + 𝑡𝑡3 − 𝑡𝑡17 − 𝑡𝑡𝑑𝑑 𝑙𝑙𝑙𝑙𝑙𝑙𝑙𝑙 ℎ

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 𝑛𝑛𝑛𝑛

Adicionalmente para tDOE se deberá cumplir:

𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 + 𝑡𝑡𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔 ≤ 𝑡𝑡3 − 𝑡𝑡17


𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 ≤ 𝑡𝑡3 − 𝑡𝑡17 − 𝑡𝑡𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔

Aplicando extremos:

𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 𝑡𝑡3 − 𝑡𝑡17 𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑡𝑡𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔 𝑚𝑚𝑚𝑚𝑚𝑚


𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 141 𝑛𝑛𝑛𝑛 − 30 𝑛𝑛𝑛𝑛 − 12 𝑛𝑛𝑛𝑛
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 𝑚𝑚𝑚𝑚𝑚𝑚 ≤ 99 𝑛𝑛𝑛𝑛

8
Nom i cognoms: Grup:

SBM – Control (Quadrimestre de Tardor 2013)

PROBLEMA 1: (5 punts): A p artir d el cr onograma d e lectura del µC Samsung


L3C44B0X, basat en el µP ARM7TDMI, de la figura, i de les descripcions dels temps crítics
del microprocessador, es demana:
t=0

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 ?

A continuació teniu el cronograma en lectura d’una RAM:

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)

Es vol dissenyar un sistema basat en el µP MC68060. La interfície d’aquest microprocessador


és:

- A2-A31: Bus d’adreces


- TIP*: T ransfer in p rogress ( senyal a ctiu d urant e l c icle d e b us i utilitzat per validar
adreces)
- D0-D31: Bus de dades (4 bytes)
- BS0*-BS3*: Data Strobes de cadascun dels bytes que conformen el bus de dades:
(BS0: D0-D7, BS1: D8-15, BS2: D16-23, BS3: D24-D31)
- R/W*: Senyal de escriptura-lectura

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.

c) (1 punt) Indiqueu el mapa de memòria resultant.

00000000

FFFFFFFF
SEBM (Grupo 10) Control 14 de Mayo de 2013

Nombre:

PROBLEMA 1

El microcontrolador STM32F407 dispone de un bloque Flexible Static Memory Controller


(FSMC) que permite conectar memoria externa. Desgraciadamente, la versión incorporada en la
placa discovery empleada en las prácticas dispone de este microcontrolador en la versión
STM32F407VG que tiene encapsulado de 100 Pines y, por tanto, no implementa algunas de las
señales que necesitamos.

En este problema se pretende estudiar la implementación de memoria externa en el


microcontrolador STM32F407ZG que es en todo idéntico al usado en las prácticas excepto que
emplea encapsulado de 144 pines y, por tanto, permite implementar sin problemas la memoria
externa. La configuración que emplearemos usará un bus de datos de 16 bits D0...D15.
El FSMC permite implementar hasta 4 bloques de memoria SRAM o ROM en 4 áreas
consecutivas entre las direcciones 60000000h y 6FFFFFFFh. Cada una de estas 4 áreas se
señalizará con la activación de una señal Chip Select NE1...NE4.

Las señales de salida del microcontrolador que emplearemos son:

D0..D15 : Bus de datos


A1..A25: Bus de direcciones
NE1..NE4 : Señales Chip Select (activas bajas)
NOE : Output Enable (activo bajo) Activo en ciclos de lectura
NWE : Write Enable (activo bajo) Activo en ciclos de escritura
NBL1 : Upper Byte Enable (activo bajo)
Strobe de la calle alta, activo en accesos a D8..D15
NBL0 : Lower Byte Enable (activo bajo)
Strobe de la calle baja, activo en accesos a D0..D7

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.

El microcontrolador tiene un bus de direcciones interno de 32 bits, pero el FSMC únicamente


tiene como salidas de direcciones A1...A25.

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

NBL0 NBL1 A22 NE1

NE1 A22

Una vez estudiada la decodificación de memoria, hemos de hacer la selección de componentes


para los chips de memoria, para ello hemos de saber qué requisitos temporales requieren.

La siguiente figura muestra el cronograma en lectura para el FSMC:

A continuación se proporcionan los datos numéricos asociados al cronograma anterior:


En la tabla anterior THCLK es el reloj a que opera el FSMC que, en nuestro caso, es de 42 MHz.

Las memorias consideraremos que, en lectura, están asociadas a 3 tiempos:

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.

tAA tACE tDOE


SEBM (Grupo 10) Control 14 de Mayo de 2013

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

NBL0 NBL1 A22 NE1

NE1 A22

Una vez estudiada la decodificación de memoria, hemos de hacer la selección de componentes


para los chips de memoria, para ello hemos de saber qué requisitos temporales requieren.

La siguiente figura muestra el cronograma en lectura para el FSMC:


A continuación se proporcionan los datos numéricos asociados al cronograma anterior:

En la tabla anterior THCLK es el reloj a que opera el FSMC que, en nuestro caso, es de 42 MHz.

Las memorias consideraremos que, en lectura, están asociadas a 3 tiempos:

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.

𝑡𝑡𝑉𝑉(𝐴𝐴_𝑁𝑁𝑁𝑁) + 𝑡𝑡𝐴𝐴𝐴𝐴 ≤ 𝑡𝑡𝑊𝑊 − 𝑡𝑡𝑆𝑆𝑆𝑆(𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷_𝑁𝑁𝑁𝑁)


Desarrollando:
𝑚𝑚𝑚𝑚𝑚𝑚(𝑡𝑡𝐴𝐴𝐴𝐴 ) ≤ 𝑚𝑚𝑚𝑚𝑚𝑚�𝑡𝑡𝑊𝑊 − 𝑡𝑡𝑆𝑆𝑆𝑆(𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷_𝑁𝑁𝑁𝑁) − 𝑡𝑡𝑉𝑉(𝐴𝐴_𝑁𝑁𝑁𝑁) �

Substituyendo valores:

𝑚𝑚𝑚𝑚𝑚𝑚(𝑡𝑡𝐴𝐴𝐴𝐴 ) ≤ 2𝑇𝑇 − 0,5𝑛𝑛𝑛𝑛 − 𝑇𝑇 − 4𝑛𝑛𝑛𝑛 − 4,5𝑛𝑛𝑛𝑛


𝑚𝑚𝑚𝑚𝑚𝑚(𝑡𝑡𝐴𝐴𝐴𝐴 ) ≤ 𝑇𝑇 − 9𝑛𝑛𝑛𝑛

El período lo calculamos del dato de frecuencia:


1 1
𝑇𝑇 = = = 23,8𝑛𝑛𝑛𝑛
𝑓𝑓 42𝑀𝑀𝑀𝑀𝑀𝑀

De ello:

𝑚𝑚𝑚𝑚𝑚𝑚(𝑡𝑡𝐴𝐴𝐴𝐴 ) ≤ 23,8𝑛𝑛𝑛𝑛 − 9𝑛𝑛𝑛𝑛


𝑚𝑚𝑚𝑚𝑚𝑚(𝑡𝑡𝐴𝐴𝐴𝐴 ) ≤ 14,8𝑛𝑛𝑛𝑛

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.

𝑡𝑡𝑉𝑉(𝐴𝐴_𝑁𝑁𝑁𝑁) + 𝑡𝑡𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 + 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 ≤ 𝑡𝑡𝑊𝑊 − 𝑡𝑡𝑆𝑆𝑆𝑆(𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷_𝑁𝑁𝑁𝑁)


Desarrollando:
𝑚𝑚𝑚𝑚𝑚𝑚(𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 ) ≤ 𝑚𝑚𝑚𝑚𝑚𝑚�𝑡𝑡𝑊𝑊 − 𝑡𝑡𝑆𝑆𝑆𝑆(𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷_𝑁𝑁𝑁𝑁) − 𝑡𝑡𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 − 𝑡𝑡𝑉𝑉(𝐴𝐴_𝑁𝑁𝑁𝑁) �

Substituyendo valores:

𝑚𝑚𝑚𝑚𝑚𝑚(𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 ) ≤ 2𝑇𝑇 − 0,5𝑛𝑛𝑛𝑛 − 𝑇𝑇 − 4𝑛𝑛𝑛𝑛 − 2𝑛𝑛𝑛𝑛 − 4,5𝑛𝑛𝑛𝑛


𝑚𝑚𝑚𝑚𝑚𝑚(𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 ) ≤ 𝑇𝑇 − 11𝑛𝑛𝑛𝑛
𝑚𝑚𝑚𝑚𝑚𝑚(𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 ) ≤ 23,8𝑛𝑛𝑛𝑛 − 11𝑛𝑛𝑛𝑛
𝑚𝑚𝑚𝑚𝑚𝑚(𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 ) ≤ 12,8𝑛𝑛𝑛𝑛

Finalmente, para el cálculo de tDOE tendremos:

𝑡𝑡𝑉𝑉(𝑁𝑁𝑁𝑁𝑁𝑁_𝑁𝑁𝑁𝑁) + 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 ≤ 𝑡𝑡𝑊𝑊 − 𝑡𝑡𝑆𝑆𝑆𝑆(𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝑁𝑁𝑁𝑁)


Desarrollando:
𝑚𝑚𝑚𝑚𝑚𝑚(𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 ) ≤ 𝑚𝑚𝑚𝑚𝑚𝑚�𝑡𝑡𝑊𝑊 − 𝑡𝑡𝑆𝑆𝑆𝑆(𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷_𝑁𝑁𝑁𝑁) − 𝑡𝑡𝑉𝑉(𝑁𝑁𝑁𝑁𝑁𝑁_𝑁𝑁𝑁𝑁) �

Substituyendo valores:

𝑚𝑚𝑚𝑚𝑚𝑚(𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 ) ≤ 2𝑇𝑇 − 0,5𝑛𝑛𝑛𝑛 − 𝑇𝑇 − 4𝑛𝑛𝑛𝑛 − 3𝑛𝑛𝑛𝑛


𝑚𝑚𝑚𝑚𝑚𝑚(𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 ) ≤ 𝑇𝑇 − 7,5𝑛𝑛𝑛𝑛
𝑚𝑚𝑚𝑚𝑚𝑚(𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 ) ≤ 23,8𝑛𝑛𝑛𝑛 − 7,5𝑛𝑛𝑛𝑛
𝑚𝑚𝑚𝑚𝑚𝑚(𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 ) ≤ 16,3𝑛𝑛𝑛𝑛

tAA ≤ 14,8ns tACE ≤ 12,8ns tDOE ≤ 16,3ns


SBM Control Parcial Primavera 2013

Problema 3 (3 pun ts): A p artir d el cr onograma d e l ectura/escriptura d el µP 68060 de l a figura, i de l es


descripcions dels temps crítics del microprocessador que hi ha a les taules, es demana:

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%)

Volem dissenyar un sistema basat en el microcontrolador LPC288x de NXP. La interfície de sortida


d'aquest microcontrolador és:

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.

Nombre de zones imatge:

Els cronogrames de la memòria en lectura són:


Nom i cognoms: Grup:

Taula: Temps de la memòria en lectura.

El cronograma en lectura per part del microcontrolador és:


Els temps del microcontrolador en lectura són:

Taula: Temps del microcontrolador en lectura.

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

Aquest problema de temporització depèn d'apartats anteriors de descodificació.


Per centrar-nos en la part de temporització, donarem la solució dels apartats de descodificació.

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

EPROM interna al principi del mapa de memòria.


40000 H
RAM interna prop de la part final del mapa de memòria.
MEMORIA
Area externa: Espai de memòria que es pot direccionar
EXTERNA amb memòria externa.

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:

D7...D0 : Bus de dades de 8 bits


An-1...A0 : Bus de direccions
RD* : Strobe de lectura actiu a nivell baix
WR* : Strobe d'escriptura actiu a nivell baix

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:

256 KBytes = 218 Bytes n = 18

64 KBytes = 216 Bytes


nombre línies direccions ROM = 16

32 KBytes = 215 Bytes


nombre línies direccions RAM (cada xip) = 15
Fent servir la memòria externa només podem omplir les direccions del mapa de memòria entre 4000h i 7FFFFh. Vist des del
punt de vista de la descodificació externa es com si tinguéssim una CPU amb n línies de direccions que pot direccionar un mapa
de la mida de la memòria externa.
Per començar volem situar la memòria ROM al final de la zona de memòria externa fent servir descodificació completa.

c) (1 Punt) Calculeu la descodificació que cal per la memòria ROM i dibuixeu-la a la següent figura.

L'àrea de memòria externa te 18 línies, per tant direcciona un espai de 256KBytes


Com que la memòria ROM es de 64KBytes, hi han 2 línies lliures a les direccions altes: A17 i A16 que configura 4 posibles
marcs en que pot estar la memòria. Segons les especificacions la ROM s'ha de posar al últim marc (A17="1", A16="1").
La taula de descodificació es la següent:

A17 A16 A15..............A0 CPU


1 1 A15..............A0 ROM

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.

La taula de descodificació per descodificació completa serà:

A17 A16 A15 A14..............A0 CPU


1 1 A15............................A0 ROM
0 0 0 A14..............A0 RAM 1
0 0 1 A14..............A0 RAM 2
0 1 0 A14..............A0 RAM 3
0 1 1 A14..............A0 RAM 4

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:

A17 A16 A15 A14..............A0 CPU


1 1 A15............................A0 ROM
x 0 0 A14..............A0 RAM 1
x 0 1 A14..............A0 RAM 2
0 1 0 A14..............A0 RAM 3
0 1 1 A14..............A0 RAM 4

La implementació d'aquesta taula es la que es mostra a la figura següent:

M CU
D0..D7 D0..D7 D0..D7 D0..D7

D0..D7 D0..D7 D0..D7 D0..D7

D0..D7 A0...A14 A0..Ak-1

A0..An-1 WR WE RAM 1 RAM 2 RAM 3 RAM 4

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:

A17 A16 A15 A14..............A2 A1 A0 CPU


1 1 A15..................................................A0 ROM
0 A14......................................A0 0 0 RAM 1
0 A14......................................A0 0 1 RAM 2
0 A14......................................A0 1 0 RAM 3
0 A14......................................A0 1 1 RAM 4

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.

La següent figura mostra la implementació de la taula anterior.

Igual que en els altres cassos no cal senyals específics de strobe.

4
Nom i cognoms: Grup:

D0..D7 D0..D7 D0..D7 D0..D7


M CU
D0..D7 D0..D7 D0..D7 D0..D7
A2...A16 A0..Ak-1

D0..D7 WR WE RAM 1 RAM 2 RAM 3 RAM 4

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.

Entre el bloc de RAM i la ROM hi ha un espai buit de 64 KBytes.

70000 H 30000H La descodificació es completa.


Cada memòria només te una imatge.
ROM
7FFFF H 3FFFFH

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.

Els temps associats al cronograma anterior es troben a la taula següent.


A la taula el temps de cicle tCYK es també T. El seu recíproc es la freqüència d'operació del bus.
Considereu que treballem amb una tensió d'alimentació VDD de 5V.

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:

tAA : Temps d'accés de direccions.


Temps que triguem a tenir una dada vàlida des del moment que l'adreça es vàlida.

tACE : Temps d'accés de Chip Enable


Temps que triguem a tenir una dada vàlida des del moment que s'activa CE*.

tDOE : Temps d'accés de Output Enable


Temps que triguem a tenir una dada vàlida des del moment que s'activa OE*.

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?

tAA tACE tDOE

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.

Els temps associats al cronograma anterior es troben a la taula següent.


A la taula el temps de cicle tCYK es també T. El seu recíproc es la freqüència d'operació del bus.
Considereu que treballem amb una tensió d'alimentació VDD de 5V.

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:

tAA : Temps d'accés de direccions.


Temps que triguem a tenir una dada vàlida des del moment que l'adreça es vàlida.

tACE : Temps d'accés de Chip Enable


Temps que triguem a tenir una dada vàlida des del moment que s'activa CE*.

tDOE : Temps d'accés de Output Enable


Temps que triguem a tenir una dada vàlida des del moment que s'activa OE*.

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:

𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 ≥ 𝑡𝑡𝐴𝐴𝐴𝐴

Tenint en compte la definició de tDAID tenim:

(2,5 + 𝑛𝑛)𝑇𝑇 − 37𝑛𝑛𝑛𝑛 ≥ 𝑡𝑡𝐴𝐴𝐴𝐴

Per a n=0 (sense cicles d'espera) es pot resoldre:

(2,5 + 0)𝑇𝑇 − 37𝑛𝑛𝑛𝑛 ≥ 𝑡𝑡𝐴𝐴𝐴𝐴

2,5 ∙ 80𝑛𝑛𝑛𝑛 − 37𝑛𝑛𝑛𝑛 ≥ 𝑡𝑡𝐴𝐴𝐴𝐴

163𝑛𝑛𝑛𝑛 ≥ 𝑡𝑡𝐴𝐴𝐴𝐴

En el cas de tACE el càlcul es semblant, però hi ha un retard addicional màxim tDEC de 20ns.

𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 ≥ 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 + 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷

Substituint, novament per n=0 tenim:

(2,5 + 0)𝑇𝑇 − 37𝑛𝑛𝑛𝑛 ≥ 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 + 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷

El cas pitjor per complir la igualtat es donarà quan tDEC sigui màxim:

(2,5 + 0)𝑇𝑇 − 37𝑛𝑛𝑛𝑛 ≥ 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 + 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 𝑀𝑀𝑀𝑀𝑀𝑀

Substituint valors:

2,5𝑇𝑇 − 37𝑛𝑛𝑛𝑛 ≥ 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 + 20𝑛𝑛𝑛𝑛

2,5 ∙ 80𝑛𝑛𝑛𝑛 − 37𝑛𝑛𝑛𝑛 − 20𝑛𝑛𝑛𝑛 ≥ 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴

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:

𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 ≥ 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷

Substituint la expressió de tDRID tenim:

(1,5 + 𝑛𝑛)𝑇𝑇 − 40𝑛𝑛𝑛𝑛 ≥ 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷

Resolent per n=0 tenim:

1,5 ∙ 80𝑛𝑛𝑛𝑛 − 40𝑛𝑛𝑛𝑛 ≥ 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷

80𝑛𝑛𝑛𝑛 ≥ 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷

tAA ≤ 163ns tACE ≤ 143ns tDOE ≤ 80ns

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:

Per tAA tenim:

(2,5 + 𝑛𝑛)𝑇𝑇 − 37𝑛𝑛𝑛𝑛 ≥ 𝑡𝑡𝐴𝐴𝐴𝐴

2,5𝑇𝑇 + 𝑛𝑛𝑛𝑛 ≥ 𝑡𝑡𝐴𝐴𝐴𝐴 + 37𝑛𝑛𝑛𝑛

𝑛𝑛𝑛𝑛 ≥ 𝑡𝑡𝐴𝐴𝐴𝐴 + 37𝑛𝑛𝑛𝑛 − 2,5𝑇𝑇

𝑡𝑡𝐴𝐴𝐴𝐴 + 37𝑛𝑛𝑛𝑛 − 2,5𝑇𝑇


𝑛𝑛 ≥
𝑇𝑇
250𝑛𝑛𝑛𝑛 + 37𝑛𝑛𝑛𝑛 − 2,5 ∙ 80𝑛𝑛𝑛𝑛
𝑛𝑛 ≥
80𝑛𝑛𝑛𝑛

𝑛𝑛 ≥ 1,088

Com que n ha de ser sencera, en cal n ≥ 2

Calculem ara per tACE :

(2,5 + 𝑛𝑛)𝑇𝑇 − 37𝑛𝑛𝑛𝑛 ≥ 𝑡𝑡𝐴𝐴𝐶𝐶𝐶𝐶 + 20𝑛𝑛𝑛𝑛

2,5𝑇𝑇 + 𝑛𝑛𝑛𝑛 ≥ 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 + 20𝑛𝑛𝑛𝑛 + 37𝑛𝑛𝑛𝑛

𝑛𝑛𝑛𝑛 ≥ 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 + 20𝑛𝑛𝑛𝑛 + 37𝑛𝑛𝑛𝑛 − 2,5𝑇𝑇

𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 + 20𝑛𝑛𝑛𝑛 + 37𝑛𝑛𝑛𝑛 − 2,5𝑇𝑇


𝑛𝑛 ≥
𝑇𝑇
250𝑛𝑛𝑛𝑛 + 20𝑛𝑛𝑛𝑛 + 37𝑛𝑛𝑛𝑛 − 2,5 ∙ 80𝑛𝑛𝑛𝑛
𝑛𝑛 ≥
80𝑛𝑛𝑛𝑛

𝑛𝑛 ≥ 1,338

10
Nom i cognoms: Grup:

Com que n ha de ser sencera, en cal novament n ≥ 2

Calculem finalment per tDOE :

(1,5 + 𝑛𝑛)𝑇𝑇 − 40𝑛𝑛𝑛𝑛 ≥ 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷

1,5𝑇𝑇 + 𝑛𝑛𝑛𝑛 ≥ 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 + 40𝑛𝑛𝑛𝑛

𝑛𝑛𝑛𝑛 ≥ 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 + 40𝑛𝑛𝑛𝑛 − 1,5𝑇𝑇

𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 + 40𝑛𝑛𝑛𝑛 − 1,5𝑇𝑇


𝑛𝑛 ≥
𝑇𝑇
100𝑛𝑛𝑛𝑛 + 40𝑛𝑛𝑛𝑛 − 1,5 ∙ 80𝑛𝑛𝑛𝑛
𝑛𝑛 ≥
80𝑛𝑛𝑛𝑛

𝑛𝑛 ≥ 0,25

Com que n ha de ser sencera, en cal n ≥ 1 per complir amb t DOE

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

Professor: Vicente Jiménez.

Informacions addicionals:
• Duració de l’examen: 2h 30m.

ENUNCIADO

Este problema de temporización tiene dependencias con un problema anterior de decodificación.


Por tanto, se incluirá la solución del problema previo al que hace referencia.

PROBLEMA 1 (RESUELTO) (3 Puntos)

Se ha de implementar memoria externa usando un bus de datos de 16 bits en un diseño basado


en un microcontrolador de la familia K20 de Freescale.

Este m icrocontrolador o frece en s us p ines d e sa lida, a t ravés d el interfaz d e b us ex terno


FlexBusTM, las 32 líneas de direcciones de su CPU. Con objeto de evitar usar excesivas líneas,
en es te d iseño, se implementará l a opc ión qu e s e of rece d e us ar un bu s multiplexado d e
datos/direcciones de 32 líneas en lugar de usar 32 líneas para direcciones y 16 líneas para datos.

Las señales presentes en el bus son:

A31...A16 : Parte alta del bus de direcciones

AD15...AD0: Bus multiplexado de direcciones y datos


En el primer ciclo de reloj del ciclo de bus contiene información de direcciones
A15...A1. En el resto del ciclo de bus contiene el bus de datos D15...D0.

ALE Strobe que señaliza cuando el bus contiene direcciones o datos

����������
𝐵𝐵𝐵𝐵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

CLK Señal de reloj del bus

El m icrocontrolador di spone, c omo e s ha bitual e n l os m icrocontroladores, e lementos de


memoria y periféricos internos en su mapa de memoria. Estos elementos tienen siempre
prioridad sobre las memorias que dependen del bus externo.

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.

FFFF FFFFh El á rea di sponible p ara F lexBusTM, a su v ez, se


divide en una parte inferior que puede contener
RESERVED tanto có digo e jecutable co mo d atos y u na p arte
superior que no puede contener código ejecutable
y que , por t anto, s ólo puede emplearse p ara
DFFF FFFFh almacenar datos.
FlexBus
Data Only Para p oder co nectar m emorias R OM y S RAM
A000 0000h convencionales al FlexBusTM, n ecesitamos
9FFF FFFFh demultiplexar el bus separando las direcciones de
FlexBus los datos, para ello empleamos un latch tal y como
Code/Data se muestra e n l a figura 2. E ste componente
almacena e l v alor d e las direcciones d urante l a
6000 0000h primera parte del ciclo de bus de manera que sus
valores estén disponibles durante todo el resto del
RESERVED ciclo de bus.
En e l a partado de temporización l o v eremos co n
0000 0000h más detalle.

Figura 1: Mapa disponible

MCU
Frescale K20
16 A31-A16
A31-A16

ALE LE 15 A15-A1
15
AD15-AD0 In Out

16 D15-D0 D0...D 15 D0...D 15


D0...D 7 D0...D 7

OE A0..A n-1 A0..A m-1

WE
WE M3 M4
M1 M2
BE15_8 OE
OE
BE7_0 CE CE
CE CE

Figura 2: Estructura del diseño a realizar

En el sistema deseamos añadir 128MBytes de memoria RAM y 512MBytes de memoria ROM.

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.

El tamaño coincide con el área ocupable de FlexBusTM de ello:

Tamaño = E000 0000 - 6000 0000 = 8 24∙7 = 231 = 2 G Bytes

Los chips M1, M2 tiene señal WE*, por tanto son RAM:

2𝑛𝑛 𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑 1 𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵


128 𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀 = 2 𝐶𝐶ℎ𝑖𝑖𝑖𝑖𝑖𝑖 ∙
𝐶𝐶ℎ𝑖𝑖𝑖𝑖 𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑

27 220 𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵 = 2𝑛𝑛+1 𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵

𝑛𝑛 = 27 − 1 = 26

Los chips M3, M4 no tienen señal WE*, por tanto son ROM:

2𝑚𝑚 𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑 2 𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵


512 𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀 = 2 𝐶𝐶ℎ𝑖𝑖𝑖𝑖𝑖𝑖 ∙
𝐶𝐶ℎ𝑖𝑖𝑖𝑖 𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑

29 220 𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵 = 2𝑚𝑚 +2 𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵

𝑚𝑚 = 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.

La memoria RAM ha de estar disponible desde 6000 0000h.


En binario sería desde 0110.........0

La tabla de decodificación sería como sique:

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

Recordemos que A0 no sale de la CPU, su información viaja por los strobes de calle

Es esquema que implementa esta decodificación es el que sigue:

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

A 30 , A29 A 31 , A28 ,A27

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.

La memoria ROM puede estar donde se desee.


La tabla de decodificación preliminar tendría las siguientes direcciones:

A31 A30 A29 A28 A27...........A1 A0 BE15-8 BE7-0 CPU


0 A26...........A0 - -- -- M3
1 A26...........A0 - -- -- M4

Como l a m emoria es d e t ipo R OM, n o es n ecesario emplear l os strobes de c alle. M3 y M 4


responderán siempre con independencia de la calle que pida la CPU.
A28 y A29 tienen valores "0" y "1" respectivamente porque de esta manera los bloques M3 y
M4 son contíguos.
Nos queda por especificar A31, A30 y A29
Se observa que la RAM siempre tiene A31="0" por tanto basta fijar A31="1" y dejar el resto de
señales indeterminadas:

A31 A30 A29 A28 A27...........A1 A0 BE15-8 BE7-0 CPU


1 x x 0 A26...........A0 - -- -- M3
1 x x 1 A26...........A0 - -- -- M4

Esta solución no es única, por eso la denominaremos solución "A"

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"

Por tanto, las siguientes soluciones también son válidas:

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".

Es i mportante t ener e n c uenta que , s egún s e i ndica e n e l e nunciado, c ualquier memoria qu e


implementemos f uera de la z ona F lexBusTM, no s erá v ista por l a C PU. E so significa que
podemos poner "imágenes" fuera de la zona FlexBusTM las cuales no aparecerán en el mapa de
memoria y, por tanto, no cuentan como imágenes reales.

(0,5 puntos)

6
PROBLEMA 2 (3 Puntos)

En este problema evaluaremos el comportamiento temporal del diseño realizado hasta el


apartado c) del problema anterior. Para ello contamos con el cronograma en lectura del
FlexBusTM tal como se muestra en la figura 3.

FB1 Todas l as señ ales de


control s e g eneran a
CLK S0 S1 S2 S3 partir de un f lanco de
subida de r eloj y t ienen
un r etardo acotado por
A31...A16 ADDR 31..16
un valor máximo FB2.

AD15...AD0 ADDR 15..0 DATA Estas mismas señales se


garantiza q ue se
WR mantengan dur ante un
FB2 FB5
tiempo m ínimo F B3 e n
FB4
OE
el ciclo e n que se
desactivan.
BEx Valid

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.

Tabla 1: Especificaciones temporales

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.

Las memorias M3 y M4 supondremos que tienen las siguientes especificaciones en lectura:

tAA : Tiempo máximo desde cambio de direcciones a dato válido: 20ns


���� a dato válido: 20ns
tACE: Tiempo máximo desde cambio de 𝐶𝐶𝐶𝐶
tDOE: Tiempo máximo desde cambio de ����
𝑂𝑂𝑂𝑂 a dato válido: 5ns
tHOLD: Tiempo mínimo desde cambio de alguna entrada a cambio de la salida: 0ns

Supondremos que c ualquier c onjunto de p uertas qu e no s ea una c onexión d irecta e ntre e l


microcontrolador y l a m emoria, ex ceptuando e l latch, y a d escrito an teriormente, está a cotado
por un retardo máximo de 25ns.
(1 Punto)
a) Determine, verificando el cumplimiento del tiempo de setup, la máxima frecuencia
FB_CLK (recíproco de FB1) a la que puede operar el bus si empleamos las
especificaciones descritas para M3 y M4.

(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 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.

OE Ello a parte de que e l


FB3 ciclo d e e scritura se
����� en
señaliza c on 𝑊𝑊𝑊𝑊
BEx Valid
lugar de ����
𝑂𝑂𝑂𝑂 .

ALE Los tiempos t iene l as


mismas co tas q ue en
FB2 FB3 lectura.
TM
Figura 4: FlexBus en modo escritura

Consideraremos co mo p rincipales p arámetros d e l as m emorias M1 y M2 en escr itura sus


tiempos de setup y de hold.
En los siguientes apartados consideraremos que el bus trabaja con una frecuencia de reloj de 20
MHz con independencia del resultado obtenido en los apartados anteriores.

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)

En este problema evaluaremos el comportamiento temporal del diseño realizado hasta el


apartado c) del problema anterior. Para ello contamos con el cronograma en lectura del
FlexBusTM tal como se muestra en la figura 3.

FB1 Todas l as señ ales de


control s e g eneran a
CLK S0 S1 S2 S3 partir de un f lanco de
subida de r eloj y t ienen
un r etardo acotado por
A31...A16 ADDR 31..16
un valor máximo FB2.

AD15...AD0 ADDR 15..0 DATA Estas mismas señales se


garantiza q ue se
WR mantengan dur ante un
FB2 FB5
tiempo m ínimo F B3 e n
FB4
OE
el ciclo e n que se
desactivan.
BEx Valid

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.

Tabla 1: Especificaciones temporales

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.

Las memorias M3 y M4 supondremos que tienen las siguientes especificaciones en lectura:

tAA : Tiempo máximo desde cambio de direcciones a dato válido: 20ns


���� a dato válido: 20ns
tACE: Tiempo máximo desde cambio de 𝐶𝐶𝐶𝐶
tDOE: Tiempo máximo desde cambio de ����
𝑂𝑂𝑂𝑂 a dato válido: 5ns
tHOLD: Tiempo mínimo desde cambio de alguna entrada a cambio de la salida: 0ns

Supondremos que c ualquier c onjunto de p uertas qu e no s ea una c onexión d irecta e ntre e l


microcontrolador y l a m emoria, ex ceptuando e l latch, y a d escrito an teriormente, e stá ac otado
por un retardo máximo de 25ns.
(1 Punto)
a) Determine, verificando el cumplimiento del tiempo de setup, la máxima frecuencia
FB_CLK (recíproco de FB1) a la que puede operar el bus si empleamos las
especificaciones descritas para M3 y M4.

La ecuación básica a cumplir es:

𝑡𝑡𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 ≤ 𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 − 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝐼𝐼𝐼𝐼

El peor caso será:

𝑡𝑡𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 � ≤ 𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 �𝑀𝑀𝑀𝑀𝑀𝑀 − 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝐼𝐼𝐼𝐼 �𝑀𝑀𝑀𝑀𝑀𝑀


𝑀𝑀𝑀𝑀𝑀𝑀

Podemos desarrollar estos dos términos:

𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 = 2𝑇𝑇

𝐹𝐹𝐹𝐹2 + 𝑡𝑡𝐴𝐴𝐴𝐴
𝐹𝐹𝐹𝐹2 + 𝑡𝑡𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿 ℎ + 𝑡𝑡𝐴𝐴𝐴𝐴
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝐼𝐼𝐼𝐼 = 𝑚𝑚𝑚𝑚𝑚𝑚 �
𝐹𝐹𝐵𝐵2 + 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 + 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴
𝑇𝑇 + 𝐹𝐹𝐹𝐹2 + 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷

Donde tLatch es el retardo asociado al latch (máximo de 10ns)


tDec es el retardo asociado a la circuitería de decodificación que genera CE* (máximo de 25ns).

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𝑛𝑛𝑛𝑛

Como T es la incógnita que deseamos aislar, no podemos seguir progresando de momento.

Una vez desarrollada la expresión anterior, podemos volver a la original:

𝑡𝑡𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 ≤ 𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 − 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝐼𝐼𝐼𝐼

Que desarrollada es:

56,5𝑛𝑛𝑛𝑛
𝐹𝐹𝐹𝐹4 ≤ 2𝑇𝑇 − 𝑚𝑚𝑚𝑚𝑚𝑚 �
𝑇𝑇 + 16,5𝑛𝑛𝑛𝑛

La manera más simple de proceder es resolver las dos inecuaciones para ver la más restrictiva:

𝐹𝐹𝐹𝐹4 ≤ 2𝑇𝑇 − 56,5𝑛𝑛𝑛𝑛

1
𝑇𝑇 ≥ (8,5𝑛𝑛𝑛𝑛 + 56,5𝑛𝑛𝑛𝑛) 𝑇𝑇 ≥ 32,5𝑛𝑛𝑛𝑛
2

Para la segunda inecuación:

𝐹𝐹𝐹𝐹4 ≤ 2𝑇𝑇 − 𝑇𝑇 − 16,5𝑛𝑛𝑛𝑛

𝑇𝑇 ≥ 8,5𝑛𝑛𝑛𝑛 + 16,5𝑛𝑛𝑛𝑛 𝑇𝑇 ≥ 25𝑛𝑛𝑛𝑛

Se observa que la primera inecuación domina, de ello:

𝑇𝑇 ≥ 32,5𝑛𝑛𝑛𝑛 𝑓𝑓 ≤ 30,77 𝑀𝑀𝑀𝑀𝑀𝑀

(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:

2𝑇𝑇 + 𝐹𝐹𝐹𝐹5 ≤ 3𝑇𝑇 + 𝐹𝐹𝐹𝐹3

Contemplando el peor caso:

𝐹𝐹𝐹𝐹5|𝑀𝑀𝑀𝑀𝑀𝑀 ≤ 𝑇𝑇 + 𝐹𝐹𝐹𝐹3|𝑀𝑀𝑀𝑀𝑀𝑀

No tenemos ninguna cota inferior para el decodificador de direcciones, por tanto:

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.

OE Ello a parte de que e l


FB3 ciclo d e e scritura se
����� en
señaliza co n 𝑊𝑊𝑊𝑊
BEx Valid ����
lugar de 𝑂𝑂𝑂𝑂 .

ALE Los tiempos t iene l as


mismas co tas q ue en
FB2 FB3 lectura.
TM
Figura 4: FlexBus en modo escritura

Consideraremos co mo p rincipales p arámetros d e l as m emorias M1 y M2 en escr itura sus


tiempos de setup y de hold.
En los siguientes apartados consideraremos que el bus trabaja con una frecuencia de reloj de 20
MHz con independencia del resultado obtenido en los apartados anteriores.
(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.

El instante EOW es aquel en el que primero se desactiva una señal de control:

𝑡𝑡𝐶𝐶𝐶𝐶_𝑂𝑂𝑂𝑂𝑂𝑂
𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸 = 𝑚𝑚𝑚𝑚𝑚𝑚 �𝑡𝑡
𝑊𝑊𝑊𝑊_𝑂𝑂𝑂𝑂𝑂𝑂

En el cronograma no se indica cuando se desactiva WE*, por lo que la ecuación se simplifica:

𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸 = 2𝑇𝑇 + 𝐹𝐹𝐹𝐹3 + 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷

Como nos piden la cota mínima:

𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸 |𝑀𝑀𝑀𝑀𝑀𝑀 = 2𝑇𝑇 + 𝐹𝐹𝐹𝐹3|𝑀𝑀𝑀𝑀𝑀𝑀 + 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 |𝑀𝑀𝑀𝑀𝑀𝑀

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.

La ecuación básica del tiempo de Setup es la misma que se utilizó en el apartado a) :

𝑡𝑡𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 ≤ 𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 − 𝑡𝑡𝐷𝐷𝑎𝑎𝑎𝑎𝑎𝑎 _𝐼𝐼𝐼𝐼

En este caso tCaptura es tEOW, para tData_In tenemos:

𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝐼𝐼𝐼𝐼 = 𝑇𝑇 + 𝐹𝐹𝐹𝐹2

El caso peor para la inecuación será:

𝑡𝑡𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 �𝑀𝑀𝑀𝑀𝑀𝑀 ≤ 𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸 |𝑀𝑀𝑀𝑀𝑀𝑀 − 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 _𝐼𝐼𝐼𝐼 �𝑀𝑀𝑀𝑀𝑀𝑀

De ello tendremos:

𝑡𝑡𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 � ≤ 100,5𝑛𝑛𝑛𝑛 − 50𝑛𝑛𝑛𝑛 − 11,5𝑛𝑛𝑛𝑛 = 39𝑛𝑛𝑛𝑛


𝑀𝑀𝑀𝑀𝑀𝑀

14
CISE IV (Grupo 10) Control 5 de Noviembre de 2009

ENUNCIADO

Estamos trabajando en un diseño basado en el microcontrolador de 16 bits MB90 de


Sharp. Este microcontrolador posee memoria ROM y RAM interna, pero debido a las
necesidades de la aplicación, se ha de añadir 512 kBytes de memoria SRAM externa.
Para añadir esta memoria se ha optado por dos chips CY7C1010, de Cypress, de 256
kBytes cada uno.

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

El bus de acceso a memoria externa dispone de las siguientes lineas:

A23-A1: Bus de direcciones de 24 bits.


D15-D0: Bus de datos de 16 bits.
RD*: Orden de lectura.
WR*: Orden de escritura.
WRL*: Orden de escritura para la parte baja del bus de datos (D7-D0).
WRH*: Orden de escritura para la parte alta del bus de datos (D15-D8).

Las señales marcadas con (*) son activas a nivel bajo.

En este microprocesador, los posibles problemas de corrupción de datos en escritura


cuando se intenta hacer un acceso sólo a una parte del bus de datos (byte en lugar de
word) se solucionan empleando dos líneas de orden de escritura WRH* y WRL*. La
señal WRH* estará activa en las escrituras a la parte alta del bus mientras que la señal
WRL* estará activa en las escrituras a la parte baja del bus. En escrituras de tipo word
(16 bits) ambas señales se activarán.
En lectura, la memoria siempre entregará 16 bits al bus y será la CPU la que tome sólo
la parte alta o baja en los accesos a byte.
FFFFFF H
RESERVADA
512 kB
La CPU dispone de 24 líneas de direcciones que
F80000 H corresponden a 16MBytes.
No obstante, dado que el microcontrolador ya
dispone de memoria ROM y RAM interna que
Area ocupan las partes más altas y más bajas del mapa
Vacia
Disponible de memoria, el espacio disponible para la memoria
externa queda reducido a 15808 kBytes.
(15808 kB) El mapa de memoria de la derecha muestra la
posición del área vacía disponible dentro del mapa
de memoria de la CPU.
00FFFF H
RESERVADA
64kB
000000 H

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.

Para el sistema diseñado deseamos comprobar la correcta temporización del acceso a la


memoria en lectura. El cronograma en lectura para el microcontrolador es:

CLK

Address Dirección Válida

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

Direcciones Dirección Válida

t ACE
CE
t DOE
OE

D0...D15 Dato Válido

Donde los valores máximos de los tiempos indicados son:

tAAmax = tACEmax = 10ns tDOEmax = 5ns

Supondremos que la lógica de decodificación añade un retardo máximo de 10ns entre la


activación de las direcciones y la activación de CE*.

e) Compruebe si se cumplen las temporizaciones en los ciclos de lectura a la


frecuencia de operación de 20 MHz.

El microcontrolador dispone de una línea de entrada de reset (RST*) internamente


conectada a la alimentación de 3.3V con una resistencia de pull-up cuyo valor puede
variar entre un mínimo de 25kΩ y un máximo de 100kΩ.
Sabemos que Vihmin=2.3V y Vilmax=1V y deseamos un margen de ruido simétrico de
0.5V.
CISE IV (Grupo 10) Control 5 de Noviembre de 2009

SOLUCIÓN

Estamos trabajando en un diseño basado en el microcontrolador de 16 bits MB90 de


Sharp. Este microcontrolador posee memoria ROM y RAM interna, pero debido a las
necesidades de la aplicación, se ha de añadir 512 kBytes de memoria SRAM externa.
Para añadir esta memoria se ha optado por dos chips CY7C1010, de Cypress, de 256
kBytes cada uno.

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

A18-A1 (CPU) A17-A0


D15-D8

RAM 2
RD OE
RST D7-D0
WRL WE
CS
D7-D0 (CPU) D7-D0

El bus de acceso a memoria externa dispone de las siguientes lineas:

A23-A1: Bus de direcciones de 24 bits.


D15-D0: Bus de datos de 16 bits.
RD*: Orden de lectura.
WR*: Orden de escritura.
WRL*: Orden de escritura para la parte baja del bus de datos (D7-D0).
WRH*: Orden de escritura para la parte alta del bus de datos (D15-D8).

Las señales marcadas con (*) son activas a nivel bajo.

En este microprocesador, los posibles problemas de corrupción de datos en escritura


cuando se intenta hacer un acceso sólo a una parte del bus de datos (byte en lugar de
word) se solucionan empleando dos líneas de orden de escritura WRH* y WRL*. La
señal WRH* estará activa en las escrituras a la parte alta del bus mientras que la señal
WRL* estará activa en las escrituras a la parte baja del bus. En escrituras de tipo word
(16 bits) ambas señales se activarán.
En lectura, la memoria siempre entregará 16 bits al bus y será la CPU la que tome sólo
la parte alta o baja en los accesos a byte.
FFFFFF H
RESERVADA
512 kB
La CPU dispone de 24 líneas de direcciones que
F80000 H corresponden a 16MBytes.
No obstante, dado que el microcontrolador ya
dispone de memoria ROM y RAM interna que
Area ocupan las partes más altas y más bajas del mapa
Vacia
Disponible de memoria, el espacio disponible para la memoria
externa queda reducido a 15808 kBytes.
(15808 kB) El mapa de memoria de la derecha muestra la
posición del área vacía disponible dentro del mapa
de memoria de la CPU.
00FFFF H
RESERVADA
64kB
000000 H

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.

Para el sistema diseñado deseamos comprobar la correcta temporización del acceso a la


memoria en lectura. El cronograma en lectura para el microcontrolador es:

CLK

Address Dirección Válida

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

Direcciones Dirección Válida

t ACE
CE
t DOE
OE

D0...D15 Dato Válido

Donde los valores máximos de los tiempos indicados son:

tAAmax = tACEmax = 10ns tDOEmax = 5ns

Supondremos que la lógica de decodificación añade un retardo máximo de 10ns entre la


activación de las direcciones y la activación de CE*.

e) Compruebe si se cumplen las temporizaciones en los ciclos de lectura a la


frecuencia de operación de 20 MHz.

Usando el valor de la frecuencia:

T = 1/20 MHz = 50ns tAVDVmax = 70ns tRLDVmax =20ns

Se ha de cumplir:

tAVDV > tAA 70ns > 10ns (OK)


tAVDV > tDEC+tACE 70ns > 10ns + 10ns (OK)
tRLDV > tDOE 20ns > 5ns (OK)

Luego la temporización es correcta.

El microcontrolador dispone de una línea de entrada de reset (RST*) internamente


conectada a la alimentación de 3.3V con una resistencia de pull-up cuyo valor puede
variar entre un mínimo de 25kΩ y un máximo de 100kΩ.
Sabemos que Vihmin=2.3V y Vilmax=1V y deseamos un margen de ruido simétrico de
0.5V.
CISE IV (Grupo 10) Control 4 de Noviembre de 2010
ENUNCIADO

Nombre:

Deseamos realizar un diseño en torno a un microprocesador MC68010 de 16 bits.


El sistema completo constará de una memoria ROM de 1Mb con bus de datos de 16 bits
y 4 memorias RAM de 1Mb con bus de datos de 8 bits.
Para realizar la decodificación recurriremos a un decodificador con 8 salidas activas
bajas en colector abierto con entradas conectadas a las líneas A23, A21 y A20 de la
CPU. Adicionalmente se ha añadido un inversor para la señal R/W* que genera W/R*.

Las señales de la CPU son:


D0..D15 : Bus de datos
A1..A23: Bus de direcciones
R/W* : Señal que es alta en ciclos de lectura y baja en ciclos de escritura
AS* : Strobe de direcciones. Activo en valor bajo en todos los ciclos de memoria
UDS*: Strobe activo cuando se accede a D8..D15
LDS* : Strobe activo cuando se accede a D0..D7

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)

D0-D15 DECODER D0...D 15


Oc0
A1-A23 Oc1 A0..A m-1
A23 I2 Oc2 Vdd
R/W Oc3
A21 I1
Oc4 OE
A20 I0 Oc5 Rp1
W/R Oc6
CE1
Oc7
AS CE2

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)

CE1 CE2 CE1 CE2 CE1 CE2 CE1 CE2


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:

Tiempo de acceso para el bus de direcciones tAA < 150 ns


Tiempo de acceso para CE1* y CE2* tCE < 150 ns
Tiempo de acceso para OE* tOE < 50 ns

El tiempo de acceso para CE1* y CE2* se cuenta desde el momento en que ambas están
activas a nivel bajo.

Adicionalmente consideraremos que el decodificador tiene un retardo de entrada a


salida comprendido entre 5ns y 20ns. Para el inversor que invierte la señal R/W*,
consideraremos un retardo máximo de 10ns.

d) Determine el tiempo máximo que tardarán en estar los datos disponibles en el


bus desde el flanco de subida de T0.
Determine a partir de ello si se cumple el tiempo de setup de datos t27

e) Determine, de manera razonada, si se cumple el tiempo de hold de datos t29.


CISE IV (Grupo 10) Control 4 de Noviembre de 2010
SOLUCION

Nombre:

Deseamos realizar un diseño en torno a un microprocesador MC68010 de 16 bits.


El sistema completo constará de una memoria ROM de 1MB con bus de datos de 16
bits y 4 memorias RAM de 1MB con bus de datos de 8 bits.
Para realizar la decodificación recurriremos a un decodificador con 8 salidas activas
bajas en colector abierto con entradas conectadas a las líneas A23, A21 y A20 de la
CPU. Adicionalmente se ha añadido un inversor para la señal R/W* que genera W/R*.

Las señales de la CPU son:


D0..D15 : Bus de datos
A1..A23: Bus de direcciones
R/W* : Señal que es alta en ciclos de lectura y baja en ciclos de escritura
AS* : Strobe de direcciones. Activo en valor bajo en todos los ciclos de memoria
UDS*: Strobe activo cuando se accede a D8..D15
LDS* : Strobe activo cuando se accede a D0..D7

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)

D0-D15 DECODER D0...D 15 D0...D 15


Oc0
A1-A23 Oc1 A1..A 19 A0..A 18
A23 I2 Oc2 Vdd
R/W Oc3
A21 I1
Oc4 OE
A20 I0 Rp1 W/R
Oc5
W/R Oc6
CE1
Oc7
AS CE2

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)

CE1 CE2 CE1 CE2 CE1 CE2 CE1 CE2


Vdd Vdd
UDS

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:

Tiempo de acceso para el bus de direcciones tAA < 150 ns


Tiempo de acceso para CE1* y CE2* tCE < 150 ns
Tiempo de acceso para OE* tOE < 50 ns

El tiempo de acceso para CE1* y CE2* se cuenta desde el momento en que ambas están
activas a nivel bajo.

Adicionalmente consideraremos que el decodificador tiene un retardo de entrada a


salida comprendido entre 5ns y 20ns. Para el inversor que invierte la señal R/W*,
consideraremos un retardo máximo de 10ns.

d) Determine el tiempo máximo que tardarán en estar los datos disponibles en el


bus desde el flanco de subida de T0.
Determine a partir de ello si se cumple el tiempo de setup de datos t27
(2 puntos)

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.

El tiempo de setup mínimo disponible será:

t setup = min (3.5T + t12 − t dato ) = 3.5T + t12 min − t datoMAX = 350 + 0 − 300 = 50ns

Se cumple dado que es mayor que t27.


e) Determine, de manera razonada, si se cumple el tiempo de hold de datos t29.
(0.5 puntos)

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:

Tensión de alimentación: 3.3V


Valores extremos de Vo: VohMIN = 2.55V, VolMAX = 0.5V
Corrientes de entrada (cualquiera de ellas): |IilMAX| = |IihMAX| = 2.5 µA
Salidas colector abierto: IolMAX = 10mA (cuando Vo=VolMAX)
Corriente de fuga (IohMAX) = 10 µA
CISE IV (Grupo 10) Control 3 de Noviembre de 2011

Nombre:

Deseamos realizar un diseño en torno a un microprocesador MC68010 de 16 bits que


opera a 10MHz.
A la CPU se añadirán 6 chips de memoria.

Las señales de la CPU son:


D0..D15 : Bus de datos
A1..A23: Bus de direcciones
R/W* : Señal que es alta en ciclos de lectura y baja en ciclos de escritura
AS* : Strobe de direcciones. Activo en valor bajo en todos los ciclos de memoria
UDS*: Strobe activo cuando se accede a D8..D15
LDS* : Strobe activo cuando se accede a D0..D7

La siguiente figura muestra los integrados implicados en el diseño:

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

D0...D 7 D0...D 7 D0...D 7 D0...D 7

A0..A m-1 A0..A m-1 A0..A m-1 A0..A m-1

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.

Deseamos determinar las especificaciones temporales que deberán, en lectura, las


memorias MA..MD. Para ello realizaremos las siguientes hipótesis:

• 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.

e) (2 puntos) Determine, con objeto de poder elegir el componente más adecuado,


el valor máximo que pueden tener los retardos tAA, tACE y tDOE de las memorias
para que el sistema funcione correctamente cuando se lee en MA....MD.
SOLUCION

e) Determine, con objeto de poder elegir el componente más adecuado, el valor


máximo que pueden tener los retardos tAA, tACE y tDOE de las memorias para que
el sistema funcione correctamente cuando se lee en MA....MD.

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.

𝑡𝑡𝐴𝐴𝐴𝐴 = 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 − 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴

tData depende, a partir del cronograma de la CPU:

𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 = 3,5𝑇𝑇 + 𝑡𝑡12 − 𝑡𝑡27

Por su parte tAddr depende del cronograma de la CPU y del driver que une A1-A23 con
A1’-A23’

𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 = 0,5𝑇𝑇 + 𝑡𝑡6 + 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷

De todo ello:

𝑡𝑡𝐴𝐴𝐴𝐴 = {3,5𝑇𝑇 + 𝑡𝑡12 − 𝑡𝑡27 } − {0,5𝑇𝑇 + 𝑡𝑡6 + 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 }

𝑡𝑡𝐴𝐴𝐴𝐴 = 3𝑇𝑇 + 𝑡𝑡12 − 𝑡𝑡27 − 𝑡𝑡6 − 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷

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á:

(𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 − 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 )𝐶𝐶𝐶𝐶𝐶𝐶 𝑚𝑚𝑚𝑚𝑚𝑚 ≥ 𝑡𝑡𝐴𝐴𝐴𝐴 𝑀𝑀𝑀𝑀𝑀𝑀 𝑚𝑚𝑚𝑚𝑚𝑚


𝑡𝑡𝐴𝐴𝐴𝐴 𝐶𝐶𝐶𝐶𝐶𝐶 𝑚𝑚𝑚𝑚𝑚𝑚 ≥ 𝑡𝑡𝐴𝐴𝐴𝐴 𝑀𝑀𝑀𝑀𝑀𝑀 𝑚𝑚𝑚𝑚𝑚𝑚

De ahí que nos pidan el tiempo máximo para la memoria.


Como nuestros datos son los de la CPU, esto es, calculamos el lado izquierdo de la
inecuación, el tiempo que tendremos que calcular es el mínimo:

𝑡𝑡𝐴𝐴𝐴𝐴 𝐶𝐶𝐶𝐶𝐶𝐶 𝑚𝑚𝑚𝑚𝑚𝑚 = 𝑡𝑡𝐴𝐴𝐴𝐴 𝑚𝑚𝑚𝑚𝑚𝑚 = 3𝑇𝑇 + 𝑡𝑡12 𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑡𝑡27 𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑡𝑡6 𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 𝑚𝑚𝑚𝑚𝑚𝑚

La frecuencia de operación es de 10MHz, por tanto T=100ns, de ello:

𝑡𝑡𝐴𝐴𝐴𝐴 𝑚𝑚𝑚𝑚𝑚𝑚 = 300𝑛𝑛𝑛𝑛 − 10𝑛𝑛𝑛𝑛 − 50𝑛𝑛𝑛𝑛 − 15𝑛𝑛𝑛𝑛 = 225𝑛𝑛𝑛𝑛

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*:

0,5𝑇𝑇 + 𝑡𝑡6 + 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 + 𝑡𝑡𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔


𝑡𝑡𝐶𝐶𝐶𝐶∗ = 𝑚𝑚𝑚𝑚𝑚𝑚 �
𝑇𝑇 + 𝑡𝑡9 + 𝑡𝑡𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔

0,5𝑇𝑇 + 𝑡𝑡6 𝑚𝑚𝑚𝑚𝑚𝑚 + 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 𝑚𝑚𝑚𝑚𝑚𝑚 + 𝑡𝑡𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔 𝑚𝑚𝑚𝑚𝑚𝑚


𝑡𝑡𝐶𝐶𝐶𝐶∗𝑚𝑚𝑚𝑚𝑚𝑚 = 𝑚𝑚𝑚𝑚𝑚𝑚 �
𝑇𝑇 + 𝑡𝑡9 𝑚𝑚𝑚𝑚𝑚𝑚 + 𝑡𝑡𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔

50𝑛𝑛𝑛𝑛 + 50𝑛𝑛𝑛𝑛 + 15𝑛𝑛𝑛𝑛 + 25𝑛𝑛𝑛𝑛


𝑡𝑡𝐶𝐶𝐶𝐶∗𝑚𝑚𝑚𝑚𝑚𝑚 = 𝑚𝑚𝑚𝑚𝑚𝑚 � = 175𝑛𝑛𝑛𝑛
100𝑛𝑛𝑛𝑛 + 50𝑛𝑛𝑛𝑛 + 25𝑛𝑛𝑛𝑛

De ello:

𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 𝑚𝑚𝑚𝑚𝑚𝑚 = {3,5𝑇𝑇 + 𝑡𝑡12 𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑡𝑡27 𝑚𝑚𝑚𝑚𝑚𝑚 } − 175𝑛𝑛𝑛𝑛

𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 𝑚𝑚𝑚𝑚𝑚𝑚 = 350𝑛𝑛𝑛𝑛 + 0 − 10𝑛𝑛𝑛𝑛 − 175𝑛𝑛𝑛𝑛 = 165𝑛𝑛𝑛𝑛

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.

𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴 = 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 − 𝑡𝑡𝑂𝑂𝑂𝑂∗


De ello:

𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 = {3,5𝑇𝑇 + 𝑡𝑡12 − 𝑡𝑡27 } − �𝑡𝑡18 + 𝑡𝑡𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔 �

𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 = 3,5𝑇𝑇 + 𝑡𝑡12 − 𝑡𝑡27 − 𝑡𝑡18 − 𝑡𝑡𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔

𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷 𝑚𝑚𝑚𝑚𝑚𝑚 = 350𝑛𝑛𝑛𝑛 − 10𝑛𝑛𝑛𝑛 − 45𝑛𝑛𝑛𝑛 − 25𝑛𝑛𝑛𝑛 = 270𝑛𝑛𝑛𝑛


Nom i cognoms: Grup:

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

Professors: Manel Domínguez, Vicente Jiménez


Informacions addicionals:
• Durada de l’examen: 2h
• S’ha de respondre en aquests mateixos fulls d’enunciat al tots els problemes.
• S’han de lliurar els problemes per separat.

PROBLEMA 2 (50%) ENUNCIAT Y SOLUCIO


Es vol dissenyar un sistema basat en el micro de 32-bits AT32UC3A d’Atmel. Aquest microcontrolador disposa d'un interface
extern per a connectar-hi memòries externes (EBI: External Bus Interface).El connexionat que hem fet és el següent:

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.

Les memòries utilitzades tenen la següent temporització en escriptura:

Figura 2: Cronograma d’escriptura RAM IS61LV25616AL.

1
Figura 3: Temps d’escriptura de la RAM.

A continuació teniu el cronograma del microcontrolador, tant en lectura com a escriptura.

Figura 4: Exemple cronograma 2 cicles de lectura seguits d’un cicle d’escriptura del microcontrolador AT32UC3A.

Els temps del microcontrolador relacionats amb el cicle d’escriptura són:

Figura 5: Taula de temps en escriptura del microcontrolador.

2
Nom i cognoms: Grup:

Els valors de les variables:


ncs rd hold length
nrd hold length
ncs rd pulse length
ncs wr pulse length
ncs wr hold length
nwe hold length

es programen per l’usuari escrivint en certs registres del microcontrolador i només poden prendre valors naturals 0, 1,
2, 3, etc.

La freqüència de rellotge del microcontrolador fclk=1/tCPSMC=50 MHz.

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

Deseamos realizar un diseño en torno a un microprocesador MC68010 de 16 bits que


opera a 10MHz.
A la CPU se añadirán, de momento, 3 chips de memoria.

Las señales de la CPU son:


D0..D15 : Bus de datos
A1..A23: Bus de direcciones
R/W* : Señal que es alta en ciclos de lectura y baja en ciclos de escritura
AS* : Strobe de direcciones. Activo en valor bajo en todos los ciclos de memoria
UDS*: Strobe activo cuando se accede a D8..D15
LDS* : Strobe activo cuando se accede a D0..D7

La siguiente figura muestra los integrados implicados en el diseño:

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

Estudiaremos ahora la temporización en escritura para la memoria M1. Para ello


contamos con el cronograma del ciclo de escritura del procesador MC68010 junto con
los límites de los distintos tiempos que se indican a la derecha del cronograma.

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

Recordad que la CPU opera a 10MHz

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

Según el cronograma, la CPU pone el dato en:

𝒕𝒕𝒅𝒅𝒅𝒅𝒅𝒅𝒅𝒅 = 𝟏𝟏, 𝟓𝟓𝟓𝟓 + 𝒕𝒕𝟐𝟐𝟐𝟐

Como interesa tdatoMAX, entonces:

𝒕𝒕𝒅𝒅𝒅𝒅𝒅𝒅𝒅𝒅𝒅𝒅𝒅𝒅𝒅𝒅 = 𝒎𝒎𝒎𝒎𝒎𝒎(𝟏𝟏, 𝟓𝟓𝟓𝟓 + 𝒕𝒕𝟐𝟐𝟐𝟐 ) = 𝟏𝟏, 𝟓𝟓𝟓𝟓 + 𝒕𝒕𝟐𝟐𝟐𝟐𝟐𝟐𝟐𝟐𝟐𝟐

Puesto que la frecuencia es de 10 MHz, el período será:

𝟏𝟏 𝟏𝟏
𝑻𝑻 = = = 𝟏𝟏𝟏𝟏−𝟕𝟕 𝒔𝒔 = 𝟏𝟏𝟏𝟏𝟏𝟏𝟏𝟏𝟏𝟏
𝒇𝒇 𝟏𝟏𝟏𝟏 ∙ 𝟏𝟏𝟏𝟏𝟔𝟔 𝑯𝑯𝑯𝑯

De todo ello:

𝒕𝒕𝒅𝒅𝒅𝒅𝒅𝒅𝒅𝒅𝒅𝒅𝒅𝒅𝒅𝒅 = 𝟏𝟏, 𝟓𝟓 ∙ 𝟏𝟏𝟏𝟏𝟏𝟏𝟏𝟏𝟏𝟏 + 𝟓𝟓𝟓𝟓𝟓𝟓𝟓𝟓 = 𝟐𝟐𝟐𝟐𝟐𝟐𝟐𝟐𝟐𝟐

tdato max : 200ns

Determine lo más pronto que puede darse el instante final de escritura (EOW)
respecto del instante t=0.
SOLUCION

El instante EOW (End Of Write) se da cuando se desactive WE* o CE*, lo que


ocurra antes. En el cronograma no se ve cuando se desactiva R/W*, por tanto, el
instante EOW lo impone CE* que depende de los strobes que se desactivan en
3,5T+t12 y del retardo asociado a una puerta OR.

Por tanto:

𝒕𝒕𝑬𝑬𝑬𝑬𝑬𝑬 = 𝒕𝒕𝒔𝒔𝒔𝒔𝒔𝒔𝒔𝒔𝒔𝒔𝒔𝒔𝒔𝒔𝒔𝒔𝒔𝒔 + 𝒕𝒕𝒈𝒈𝒈𝒈𝒈𝒈𝒈𝒈


Donde:
𝒕𝒕𝒔𝒔𝒔𝒔𝒔𝒔𝒔𝒔𝒔𝒔𝒔𝒔𝒔𝒔𝒔𝒔𝒔𝒔 = 𝟑𝟑, 𝟓𝟓𝟓𝟓 + 𝒕𝒕𝟏𝟏𝟏𝟏
De ello:
𝒕𝒕𝑬𝑬𝑬𝑬𝑬𝑬 = 𝟑𝟑, 𝟓𝟓𝟓𝟓 + 𝒕𝒕𝟏𝟏𝟏𝟏 + 𝒕𝒕𝒈𝒈𝒈𝒈𝒈𝒈𝒈𝒈

Como deseamos el valor mínimo de EOW, tendremos:

𝒕𝒕𝑬𝑬𝑬𝑬𝑬𝑬𝑬𝑬𝑬𝑬𝑬𝑬 = 𝒎𝒎𝒎𝒎𝒎𝒎�𝟑𝟑, 𝟓𝟓𝟓𝟓 + 𝒕𝒕𝟏𝟏𝟏𝟏 + 𝒕𝒕𝒈𝒈𝒈𝒈𝒈𝒈𝒈𝒈 � = 𝟑𝟑, 𝟓𝟓𝟓𝟓 + 𝒕𝒕𝟏𝟏𝟏𝟏𝟏𝟏𝟏𝟏𝟏𝟏 + 𝒕𝒕𝒈𝒈𝒈𝒈𝒈𝒈𝒈𝒈_𝒎𝒎𝒎𝒎𝒎𝒎

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:

𝒕𝒕𝑬𝑬𝑬𝑬𝑬𝑬𝑬𝑬𝑬𝑬𝑬𝑬 = 𝟑𝟑, 𝟓𝟓𝟓𝟓 + 𝒕𝒕𝟏𝟏𝟏𝟏𝟏𝟏𝟏𝟏𝟏𝟏 + 𝒕𝒕𝒈𝒈𝒈𝒈𝒈𝒈𝒈𝒈_𝒎𝒎𝒎𝒎𝒎𝒎 = 𝟑𝟑𝟑𝟑𝟑𝟑𝒏𝒏𝒏𝒏 + 𝟎𝟎 + 𝟎𝟎

tEOW min : 350 ns

Determine los requisitos que ha de cumplir el tiempo de setup en el bus de datos


pasa la memoria M1.
SOLUCION

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𝒏𝒏𝒏𝒏 − 𝟏𝟏𝟏𝟏𝟏𝟏𝟏𝟏𝟏𝟏 = 𝟐𝟐𝟐𝟐𝟐𝟐𝟐𝟐𝟐𝟐

tSetup < 200ns

Determine cuál es el tiempo mínimo que estará activa la señal WE* de la


memoria M1 antes del instante EOW.
SOLUCION

La señal WE* se activa en el tiempo:

𝑡𝑡𝑊𝑊𝑊𝑊∗_𝑂𝑂𝑂𝑂 = 𝑇𝑇 + 𝑡𝑡20
De ello:
𝑡𝑡𝑊𝑊𝑊𝑊∗_𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎 = 𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸 − 𝑡𝑡𝑊𝑊𝑊𝑊∗_𝑂𝑂𝑂𝑂

Como deseamos hallar la cota mínima:

𝑡𝑡𝑊𝑊𝑊𝑊∗_𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎 _𝑚𝑚𝑚𝑚𝑚𝑚 = 𝑚𝑚𝑚𝑚𝑚𝑚�𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸 − 𝑡𝑡𝑊𝑊𝑊𝑊∗_𝑂𝑂𝑂𝑂 � = 𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸 − 𝑡𝑡𝑊𝑊𝑊𝑊∗_𝑂𝑂𝑂𝑂_𝑚𝑚𝑚𝑚𝑚𝑚

Por tanto:

𝑡𝑡𝑊𝑊𝑊𝑊∗_𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎 _𝑚𝑚𝑚𝑚𝑚𝑚 = 𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸 − 𝑇𝑇 − 𝑡𝑡20𝑚𝑚𝑚𝑚𝑚𝑚 = 350𝑛𝑛𝑛𝑛 − 100𝑛𝑛𝑛𝑛 − 45𝑛𝑛𝑛𝑛 = 205𝑛𝑛𝑛𝑛

tWE* activa min: 205ns

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.

𝑡𝑡𝑊𝑊𝑊𝑊∗_𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒 _𝑚𝑚𝑚𝑚𝑚𝑚 = 𝑡𝑡𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸 − 2𝑇𝑇 − 𝑡𝑡9𝑚𝑚𝑚𝑚𝑚𝑚 − 𝑡𝑡𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔

𝑡𝑡𝑊𝑊𝑊𝑊∗_𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒 _𝑚𝑚𝑚𝑚𝑚𝑚 = 350𝑛𝑛𝑛𝑛 − 200𝑛𝑛𝑛𝑛 − 50𝑛𝑛𝑛𝑛 − 10𝑛𝑛𝑛𝑛 = 90𝑛𝑛𝑛𝑛

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

Professor: Vicente Jiménez


Informacions addicionals:
• Durada de l’examen: 2h
• S’ha de respondre en aquests mateixos fulls d’enunciat al tots els problemes.
• Es poden afegir fulls addicionals amb el desenvolupament de la solució

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.

Els senyals que farem servir al processador son:


D0..D15 Bus de dades
A1..A19 Bus de direccions
BHE* High Byte Enable : Senyal actiu a nivell baix quan es fa servir D8..D15
BLE* Low Byte Enable : Senyal actiu a nivell baix quan es fa servir D0..D7
M/IO* Indica si es fa accés a memòria (Nivell Alt) o a I/O (Nivell Baix)
W/R* Indica si es un accés d'escriptura (Nivell Alt) o lectura (Nivell Baix)

ADS* Senyal de validació dels senyals de la CPU


Aquest senyal es descriurà quan sigui necessari dins d'aquest problema
No es un strobe i, per tant, no es pot fer servir com a tal
No el feu servir, per tant, en la descodificació de memòria.

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.

Començarem per dissenyar la descodificació de RAM i ROM.

Solució del esquema elèctric per la RAM:

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

Solució del esquema elèctric per la ROM:

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.

Els valors numèrics dels temps del cronograma son:

Temps Descripció Min (ns) Max (ns)


t6 A23.A1 Valid Delay 4 30
t8 BHE*, BLE* Valid Delay 4 30
t10 W/R* , M/IO* Valid Delay 6 26
t21 D15-D0 Read Setup Time 9 --
t22 D15-D0 Read Hold Time 6 --

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

Data Valid DATA

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ó.

Temps Descripció Min (ns) Max (ns)


t12 D15-D0 Write Data Delay 4 38

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)

En primer lloc farem el càlcul previ del període de rellotge:

1 1
𝑇𝑇 = = = 50𝑛𝑛𝑛𝑛
𝑓𝑓 20𝑀𝑀𝑀𝑀𝑀𝑀

Càlcul per tcs

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:

𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 𝑀𝑀𝑀𝑀𝑀𝑀 = 2𝑇𝑇 − 𝑡𝑡21 𝑀𝑀𝑀𝑀𝑀𝑀 = 2 ∙ 50𝑛𝑛𝑛𝑛 − 9𝑛𝑛𝑛𝑛 = 91𝑛𝑛𝑛𝑛

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

• BHE* i BLE* tenen un retard t8 des del començament del cicle.


• M/IO* ten un retard t10 des del començament del cicle.
• A18 i A19 tenen un retard t6 des del començament del cicle.
• Totes les senyals anteriors passen per portes, per tant estaran associades a un retard addicional (que anomenarem tg) de
un màxim de 10ns.

De tot això es deriva:

𝑡𝑡6 𝑀𝑀𝑀𝑀𝑀𝑀 30𝑛𝑛𝑛𝑛


𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 𝑀𝑀𝑀𝑀𝑀𝑀 = 𝑡𝑡𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔 + 𝑚𝑚𝑚𝑚𝑚𝑚 � 𝑡𝑡8 𝑀𝑀𝑀𝑀𝑀𝑀 = 10𝑛𝑛𝑛𝑛 + 𝑚𝑚𝑚𝑚𝑚𝑚 �30𝑛𝑛𝑛𝑛 = 10𝑛𝑛𝑛𝑛 + 30𝑛𝑛𝑛𝑛 = 40𝑛𝑛𝑛𝑛
𝑡𝑡10 𝑀𝑀𝑀𝑀𝑀𝑀 26𝑛𝑛𝑛𝑛

Per tant, la condició a complir per tCS serà:

𝑡𝑡𝐶𝐶𝐶𝐶 ≤ 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 𝑀𝑀𝑀𝑀𝑀𝑀 − 𝑡𝑡𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 𝑀𝑀𝑀𝑀𝑀𝑀 𝑡𝑡𝐶𝐶𝐶𝐶 ≤ 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:

𝑡𝑡𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎 ≤ 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 − 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 𝑂𝑂𝑂𝑂

De manera similar al cas anterior:

𝑡𝑡𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎 ≤ 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 𝑀𝑀𝑀𝑀𝑀𝑀 − 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 𝑂𝑂𝑂𝑂 𝑀𝑀𝑀𝑀𝑀𝑀

El valor de tDATA MIN ja el coneixem. El valor de tADDRON MAX serà:

𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 𝑂𝑂𝑂𝑂 𝑀𝑀𝑀𝑀𝑀𝑀 = 𝑡𝑡6 𝑀𝑀𝑀𝑀𝑀𝑀 = 30𝑛𝑛𝑛𝑛

Per tant, la condició per taddr és:

𝑡𝑡𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎 ≤ 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 𝑀𝑀𝑀𝑀𝑀𝑀 − 𝑡𝑡𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 𝑀𝑀𝑀𝑀𝑀𝑀 𝑡𝑡𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎 ≤ 91𝑛𝑛𝑛𝑛 − 30𝑛𝑛𝑛𝑛 𝑡𝑡𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎 ≤ 61𝑛𝑛𝑛𝑛

Càlcul per toe

Si definim tDATA igual que abans i definim tOEON com el moment en que s'activa OE* la memòria, s'haurà de complir:

𝑡𝑡𝑜𝑜𝑜𝑜 ≤ 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 𝑀𝑀𝑀𝑀𝑀𝑀 − 𝑡𝑡𝑂𝑂𝑂𝑂 𝑂𝑂𝑂𝑂 𝑀𝑀𝑀𝑀𝑀𝑀

El senyal OE* es una connexió directa de W/R*, per tant:

𝑡𝑡𝑂𝑂𝑂𝑂 𝑂𝑂𝑂𝑂 𝑀𝑀𝑀𝑀𝑀𝑀 = 𝑡𝑡10 𝑀𝑀𝑀𝑀𝑀𝑀 = 26𝑛𝑛𝑛𝑛


Per tant:

𝑡𝑡𝑜𝑜𝑒𝑒 ≤ 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 𝑀𝑀𝑀𝑀𝑀𝑀 − 𝑡𝑡𝑂𝑂𝑂𝑂 𝑂𝑂𝑂𝑂 𝑀𝑀𝑀𝑀𝑀𝑀 𝑡𝑡𝑜𝑜𝑜𝑜 ≤ 91𝑛𝑛𝑛𝑛 − 26𝑛𝑛𝑛𝑛 𝑡𝑡𝑜𝑜𝑜𝑜 ≤ 65𝑛𝑛𝑛𝑛

Això ens dona el resultat final del apartat:

taddr ≤ 61ns tcs ≤ 51ns toe ≤ 65ns

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)

Càlcul per tsetup

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.

𝑡𝑡𝐶𝐶𝐶𝐶 𝑀𝑀𝑀𝑀𝑀𝑀 = 𝑇𝑇 + 𝑡𝑡10 𝑀𝑀𝑀𝑀𝑀𝑀 + 𝑡𝑡𝑔𝑔 𝑀𝑀𝑀𝑀𝑀𝑀

Com que no hi ha un valor mínim definit per tg, podem considerar zero com a cas pitjor.

𝑡𝑡𝐶𝐶𝐶𝐶 𝑀𝑀𝑀𝑀𝑀𝑀 = 𝑇𝑇 + 𝑡𝑡10 𝑀𝑀𝑀𝑀𝑀𝑀 + 0 = 50𝑛𝑛𝑛𝑛 + 6𝑛𝑛𝑛𝑛 = 56𝑛𝑛𝑛𝑛

Pel que fa a tDATA tenim:


𝑇𝑇
𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 𝑀𝑀𝑀𝑀𝑀𝑀 = + 𝑡𝑡12 𝑀𝑀𝑀𝑀𝑀𝑀 = 25𝑛𝑛𝑛𝑛 + 38𝑛𝑛𝑛𝑛 = 63𝑛𝑛𝑛𝑛
2
Per tant:
𝑡𝑡𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠 ≤ 𝑡𝑡𝐶𝐶𝐶𝐶 𝑀𝑀𝑀𝑀𝑀𝑀 − 𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 𝑀𝑀𝑀𝑀𝑀𝑀 = 56𝑛𝑛𝑛𝑛 − 63𝑛𝑛𝑛𝑛 = −7𝑛𝑛𝑛𝑛

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.

Càlcul per thold

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 tDATA OFF MIN segons es mostra al cronograma es:

𝑡𝑡𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 𝑂𝑂𝑂𝑂𝑂𝑂 𝑀𝑀𝑀𝑀𝑀𝑀 = 2,5𝑇𝑇 + 𝑡𝑡12 𝑀𝑀𝑀𝑀𝑀𝑀 = 125𝑛𝑛𝑛𝑛 + 4𝑛𝑛𝑛𝑛 = 129𝑛𝑛𝑛𝑛

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𝑛𝑛𝑛𝑛

tsetup No es pot garantir thold ≤ 43ns

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 interfície d’aquest microprocessador és:


- A2-A31: Bus d’adreces
- ADS*: Address Strobe
- D0-D31: Bus de dades (4 bytes)
- BE0*-BE3*: Data Strobes de cadascun dels bytes que conformen el bus de dades:
(BE0: D0-D7, BE1: D8-15, BE2: D16-23, BE3: D24-D31)
- W/R*: Senyal de escriptura-lectura

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

D0-D7 D0-D7 D0-D7 D0-D7


A3-A18
A3-A31 A0-A15
A2
W/R* WE* M1 M2 M3 M4
BE0* OE*
BE1* CS* CS* CS* CS*
BE2*
BE3*

ADS* A19-A31
BE0* BE1* BE2* BE3*
M/IO* ADS*
M/IO* BE0* BE1* BE2* BE3*
W/R*
32
D0-D31

i80486DX A3-A18 CS* CS* CS* CS*


A0-A15
M5 M6 M7 M8
W/R* WE*
OE*
D0-D7 D0-D7 D0-D7 D0-D7

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 *

UDS* WE * CS1 * WE * CS1 * CS *


CS *
DTACK*
LDS*

2 x SRAM
2 x EPROM
681000 27512

d) Explicar breument quin és el procés que es posa en marxa en un


sistema com el que s’ha presentat per arribar a localitzar la subrutina
de servei d’una interrupció d’usuari. (1 punt)
e) Dissenyar l’esquema de descodificació més simple possible, a partir
de les dades del sistema i del diagrama de la figura. (4 punts)
f) Es ben conegut que els µP similar al 68000 utilitzen el senyal
DTACK* per tal de gestionar el seu bus asíncron. Quina és la missió
del senyal DTACK*? Com es podria generar dins del sistema
anterior? (1 punt)

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.

Normalment el procés de lectura de dades d'un perifèric té la següent forma:

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:

mov [@ RAM],00 /* a l'adreça @ de la memòria, s'escriu una dada X del perifèric */

Es demana:

a) Marge d'adreces ocupades per la RAM al mapa de memòria. És una descodificació


completa? Per què? (1 punt)
b) Pot el µC llegir una dada de la RAM? Pot escriure una dada a la RAM? (1 punt)
c) El µC, pot llegir una dada directament del perifèric? (transferència de dada des de perifèric
a registre intern µC amb una única instrucció). (1 punt)
d) Quins son els resultats de l'execució de les següents instruccions ? (1 punt)
mov [@ RAM], 00 mov [@ RAM], 10

e) Es demana avaluar si una transferència entre el dispositiu d'E/S i la memòria té una


temporització correcta.

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

Fig. 4: Cicle de lectura del perifèric.

Temps Max Min


tAW - 200 ns
tCW - 200 ns
tWW - 150 ns
tDW - 150 ns
tCS2 (perifèric) 100 ns -
tOE2 (perifèric) 75 ns -
Taula 1: Temporitzacions RAM i E/S.

NOTA: Freqüencia de rellotge (CLK) 4 Mhz. Retard portes i/o buffers: 10 ns


1RPL&RJQRPVBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB

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ó:

El diagrama de temps i els valors associats apareixen a continuació:


1RPL&RJQRPVBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB

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 VHJHQWV SRGHX FRQVLGHUDU
GHVSUHFLDEOHVHOVWHPSVGHSXMDGDLEDL[DGDGHOVVHQ\DOV):

a) Quina es la organització interna del chip de memòria?

b) Feu una estimació del temps de SETUP del microprocessador.

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

RAS* 256 columnes


8 8
AMPLIFICADORS SENSORS BUFFERS D0-D7

Figura 1: Esquema intern de la RAM dinàmica.


L’operació temporal d’una lectura es pot veure a la figura 2:

Figura 2: Operació de lectura d’una RAM dinàmica.

- 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.

El sistema dissenyat es pot veure a la següent figura 3:

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

Figura 3: Sistema dissenyat.

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

Figura 4: Cronograma lectura V25.


Es demana:

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.:

b) (2 punts) Quan executem la instrucció aux=*(BYTE far*)MK_FP(0x1234,0x5678), quina serà l’adreça, en


hexadecimal, de columna i quina la de fila a l’interior de la RAM ?

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 ?

tASR: Temps de setup d’adreces de fila: 5 ns (mín.)


tRAH: Temps de hold d’adreces de fila: 5 ns (mín.)
tASC: Temps de setup d’adreces de columna: 7 ns (mín.)
tCAH: Temps de hold d’adreces de columna: 7 ns (mín.)
tRCD: Temps entre activació RAS* i activació CAS* 25 ns (min.) – 75 ns (max.)
Full per entregar
Nom i Cognoms:

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)

Temps setup bus de dades del V25 en lectura: 10ns.

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

WORD p=0x0000; // variable global void interrupt RSI_Timer0 ()


void interrupt RSI_Timer0 () {
{ BYTE aux;
BYTE aux; WORD i,p;

// lectura dada: refresc de la seva fila p=0x0000;


aux=*(BYTE far *)MK_FP(0x0000,p); for (i=0;i<256;i++) {
aux=*(BYTE far *)MK_FP(0x0000,p);
p++; p++;
FINT; }
} FINT;
}
Un byte qualsevol de la memòria s’ha de refrescar cada 50ms com a màxim (i per tant cada 50 ms s’ha d’haver
refrescat tota la RAM). Indiqueu la freqüència mínima d’interrupció del Timer0 que s’hauria de programar per
cadascun dels dos programes. Quin dels dos triaríeu ? Justifiqueu breument la resposta.

Freqüència mínima prog. A: Freqüència mínima prog. B:


Nom i cognoms: Grup:

PROBLEMA 2 (30%)

A la següent figura tenim el cronograma de lectura de dades del μC 8051.

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:

Min Max Min Max


tSU 7 ns - tPHL - 10 ns
th 5 ns - tPLH - 10 ns
Figura 3
Nom i cognoms: Grup:

Les característiques temporals en lectura de la RAM utilitzada es poden veure a la següent


figura.

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:

1. Rang d’adreces ocupat per la memòria ROM. Hi ha zones imatge ? (10%)

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%)

3. Si la freqüència de treball del microcontrolador és de 18MHz, està complint el sistema les


especificacions de setup i hold del latch ? (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%)

5. Tenint en compte la resposta de l’apartat anterior, quina és la freqüència màxima del


microcontrolador que permet accedir correctament a la RAM ? (40%)

También podría gustarte