1 = VGA Output Examples = 2 3 A number of examples are provided to demonstrate the generation of a [[VGA 4 Signal Output|VGA-compatible video signal]] by the microcontroller: 5 6 * [[Examples/vga|vga]] 7 * [[Examples/vga-cpu|vga-cpu]] 8 * [[Examples/vga-dual|vga-dual]] 9 * [[Examples/vga-pmp|vga-pmp]] 10 * [[Examples/vga-timer|vga-timer]] 11 12 Each one mostly demonstrates the same thing as the others, but certain 13 implementation choices cause certain trade-offs to be made. Some of these are 14 discussed below. 15 16 == Comparison == 17 18 In investigating different techniques, the following observations have been 19 made about the behaviour of the different VGA examples: 20 21 {{{#!table 22 || DMA Channels || Horizontal Resolution || Picture Stability 23 || Pixel Consistency || Scrolling Operational 24 == 25 vga || 1 || High || No || No || Yes 26 == 27 vga-cpu || 0 || High || Yes || Yes || Yes 28 == 29 vga-dual || 2 || High || No || No || No 30 == 31 vga-pmp || 1 || High || No || No || Yes 32 == 33 vga-timer || 2 || Low || Yes || Yes || Yes 34 }}} 35 36 Here, picture stability is assessed with the CPU accessing RAM. In general, 37 all of the approaches can provide stable pictures with limited RAM access 38 loading. However, under load, the picture will stretch and ripple for all 39 examples where picture stability is given as "No". 40 41 It should be noted that the vga-timer example employs two DMA channels, but 42 this is only to maximise horizontal resolution. With a single channel, 43 horizontal resolution is diminished still further in comparison to the other 44 examples. 45 46 It would appear that two most viable approaches are the vga-cpu and vga-timer, 47 if only because they produce consistently-sized pixels, retain picture 48 stability under load, and provide operational horizontal scrolling. These 49 approaches provide a tradeoff between performance (vga-timer being faster) and 50 resolution (vga-cpu being better).