I3MPS_Opgave2

Formålet med opgaven er beregne værdierne for opsætningsparameterne for OMAP processerens GPMC registre. Vi har her i opgaven valgt at gøre brug af enheden DM9000. I opgaven bruges der en clock tid på 10ns. Selve opgaven kan ses her
 * Formål**


 * Kort beskrivelse af hvordan at OMAP og slave enheden skal forbindes. (Hvilke bus signaler? hvor mange data bits?)**

DM9000: Chip Select skal være aktiv lav for at vælge DM9000, polariteten kan ændres ved skrivning til EEPROM. CS på DM9000 (Ben 37) er forbundet til 74ALVC164245 (Ben 8) som er en dual supply translating receiver Fra Ethernet controller til spændingkonverteringskreds er det bus (BD0 - BD15). Fra spændingkonverteringskreds til CPU er det bus (GPMC_D0 - GPMC_D15).

Slaveenheden skal forbindes til OMAP vha. bussignalerne: D[0:15] som går til benene BD[0:15] Antal databits = 16


 * Relevante timing diagrammer**.


 * Timing diagram for OMAP (Read)**
 * Timing diagram for DM9000 (Read)**


 * Timing Diagram for OMAP (Write)**
 * Timing diagram for DM9000 (Write)**


 * Beregninger af konstanter (Se beregningseksempler sidst i øvelsen)**

Read-Cycle: >> Ifølge databladet skal T1 være min 0. For en sikkerheds skyld sættes den til 10ns = 1 clk. >> OEOFFTIME > 10ns + 10ns > 20ns eller 1 clk + 1clk > 2 clk derfor får vi >> OEOFFTIME = 20ns + 10ns = 30ns eller 2 clk + 1 clk = 3 clk. >> T2 er opgivet i databladet til min. 10ns. >> CSRDOFFTIME > 30ns + 10ns > 40ns eller 3 clk + 1 clk > 4 clk >> CSRDOFFTIME = 40ns + 10ns = 50ns eller 4 clk + 1 clk = 5 clk. >> Ifølge databladet skal T5 være min 0. For en sikkerheds skyld sættes den til 10ns = 1 clk. >> CYCLE2CYCLEDELAY = >> 4 clk - 1 clk - 1 clk = 2 clk
 * CSONTIME
 * CSONTIME = 0, da CS#CMD ligger oven i hinanden jf. databladet for DM9000
 * OEONTIME
 * OEONTIME > T1 > 0ns => tOEONTIME = 10ns => OEONTIME = 1 clk.
 * OEOFFTIME
 * OEOFFTIME > T1 + T2
 * CSRDOFFTIME
 * CSRDOFFTIME > T1 + T2 + T5
 * RDACCESSTIME
 * RDACCESTIME = OEOFFTIME = 3 clk eller 30 ns.
 * RDCYCLETIME
 * RDCYCLETIME > CSRDOFFTIME
 * RDCYCLETIME = 50 clk + 1 clk = 60 clk
 * CYCLE2CYCLEDELAY
 * CYCLE2CYCLEDELAY = T6 - T5 - T1

Write-Cycle: >> WEONTIME > 0 => 10ns eller 1 clk >> WRCYCLETIME = 50ns + 10ns = 60ns >> CYCLE2CYCLEDELAY > 20ns - 10ns - 10ns > 0ns >> Da CYCLE2CYCLEDELAY giver 0, betyder det at den næste cycle ikke startes med det samme >> CYCLE2CYCLEDELAY = 10ns
 * WEONTIME
 * WEONTIME > T1
 * WEOFFTIME
 * WEOFFTIME > T1 + T2
 * WEOFFTIME > 10ns + 10ns > 20ns
 * WEOFFTIME = 30ns
 * CSWROFFTIME
 * CSWROFFTIME > T1 + T2 + T5
 * CSWROFFTIME > 30ns + 10ns > 40ns
 * CSWROFFTIME = 40ns + 10ns = 50ns
 * WRCYCLETIME
 * WRCYCLETIME > CSWROFFTIME
 * CYCLE2CYCLEDELAY
 * CYCLE2CYCLEDELAY > T6 - T5 - T1


 * Referencer**
 * OMAP Datablad** - Kræver login på Campusnet
 * DM9000 DAtablad**