Øvelse+2-+Bus+Timing

toc På jeres øvelsesblog skal opgaveløsningen indeholde følgende:
 * Kort beskrivelse af hvordan at OMAP og DM9000 er forbundet. (Hvilken chip select, hvor mange data bits?)
 * Relevante timing diagrammer
 * Beregninger af konstanter (Se beregningseksempler sidst i øvelsen)
 * Henvisning til relevante dokumenter

=Kort beskrivelse af hvordan at OMAP og DM9000 er forbundet. (Hvilken chip select, hvor mange data bits?)= via ben BA10, kan vi gå over i OMAP'ens ben GPMC_A10.
 * **OMAP** || **DM9000** ||
 * NCS6 || CS ||
 * NOE || IOR ||
 * NWE || IOW ||
 * BA10 || CMD ||
 * BD[0:15] || D[0:15] ||
 * Hvilken chip select?** NCS6
 * Hvor mange data bits?** 16 data bit (BD[0:15])

= Relevante timing diagrammer =
 * [[image:10.3.3.JPG]] ||
 * [[image:http://4.bp.blogspot.com/__zmcrzzYIrs/TGP3TbwBhbI/AAAAAAAAAAM/i0Wh-R5A_cI/s1600/OMAP_GPMC_READ.JPG]] ||
 * [[image:10.3.4.JPG]] ||
 * [[image:http://4.bp.blogspot.com/__zmcrzzYIrs/TGP3sUeRXrI/AAAAAAAAAAc/TxUvCAALvuo/s1600/omap_gpmc_write.JPG]] ||

= Beregninger af konstanter =

Følgende værdier skal findes:

Read-Cycle:
hvilket betyder at OEONTIME = 10 ns => OEONTIME er = 1
 * ** CSONTIME **
 * Da CS# og CMD ligger oveni hinanden er CSONTIME = 0 ns => CSONTIME = 0
 * **OEONTIME**
 * Da OEONTIME skal være større end T1, betyder det også at OEONTIME > 0 ns

derfor er OEOFFTIME = 20 ns + 10 ns = 30 ns => OEOFFTIME er = 3
 * **OEOFFTIME**
 * Da OEOFFTIME skal være større end T1 + T2, skal OEOFFTIME > 10 ns (T1) + 10 ns (T2)

> CSRDOFFTIME 30 ns + 10 = 40 ns => CSRDOFFTIME = 4 > > T1 = 10 ns, T3 = 3 ns > RDACCESSTIME = 10 + 3 = 13 ns =(oprundet) 20 ns => RDACCESSTIME = 2
 * ** CSRDOFFTIME **
 * CSRDOFFTIME skal være større end T1 + T2 + T5, derfor skal CSRDOFFTIME > 10 ns (T1) + 10 ns (T2) + 10 ns (T5)
 * ** RDACCESSTIME **
 * RDACCESSTIME = T1 + T3

> T1 = 10 ns, T2 = 10 ns, T5 = 10 ns > RDACCESSTIME = 10 + 10 + 10 = 30 ns => RDACCESSTIME = 3
 * ** RDCYCLETIME **
 * RDCYCLETIME = T1 + T2 + T5

> CYCLE2CYCLEDELAY = T6 - T1 - T 5 > T6 = 2 clk (1 clk = 20 ns) = 40 ns, T1 = 10 ns, T5 = 10 ns > CYCLE2CYCLEDELAY = 40 - 10 - 10 = 20 ns => CYCLE2CYCLEDELAY = 2
 * ** CYCLE2CYCLEDELAY **
 * CYCLE2CYCLEDELAY er delayet mellem to succesrige læsninger

Write-Cycle:
> Da T1 = 10 er WEONTIME også 10 ns => WEONTIME = 1
 * ** WEONTIME **
 * WEONTIME = T1

> T1 = 10 ns og T2 = 10 ns, det betyder at WEOFFTIME = 20 ns => 2 > T1 = 10 ns, T2 = 10 ns, T5 = 10 ns CSWROFFTIME = 30 ns => CSWROFFTIME = 3
 * ** WEOFFTIME **
 * WEOFFTIME = T1 + T2
 * **CSWROFFTIME**
 * CSWROFFTIME = T1 + T2 + T5


 * **WRCYCLETIME**
 * WRCYCLETIME = CSWROFFTIME

> T6 = 2 clk (1 clk = 20ns) =40 ns, T5 = 10 ns, T1 = 10 ns > CYCLE2CYCLEDELAY = 20 ns => CYCLE2CYCLEDELAY = 2
 * ** CYCLE2CYCLEDELAY **
 * CYCLE2CYCLEDELAY = T6 - T5 - T1

=Henvisning til relevante dokumenter= > s.1147-1149
 * spruf98.pdf

> s.49-50
 * DM9000A-DS-F01-101906.pdf

> s.2 og s.10 (s.7)
 * DevKit8000_schematic.pdf