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