[Coco] A Video Timing Question
tim franklinlabs.com
tim at franklinlabs.com
Sun Sep 13 18:23:21 EDT 2015
From what I'm reading, it sounds like there's no "This is how you do
it" method and there are several approaches. My FIFO method is similar
to what you're speaking of Mark in that I allow the CPU to write to a
FIFO on an independent clock and the data is transferred in bursts
during the blanking time. Your pint about the size of the FIFO may be a
factor as my size is only about 120 frames. But, this method won't work
very well with the read cycle.
My other method using a FIFO writing to memory in place of a video read
isn't the best either because of the "sparkles" I'm thinking my next
try will be doubling the VGA clock and ( if the RAM is fast enough) do
an interleave. If I still use the FIFO the CPU/Video clocks can still
be asynchronous.
Thanks for the info.. It's very helpful... My project slowly moves
forward. Two steps forward. 1.98236 steps back.
On September 13, 2015 at 4:41 PM Mark McDougall
<msmcdoug at iinet.net.au> wrote:
On 14/09/2015 5:30 AM, tim franklinlabs.com wrote:
> So, I'm wondering how others have addressed this?
How much video memory do you need? For a text-only display far and
away
the easiest solution is to use on-chip dual-port RAM.
Next easiest is interleaved, although it's a little more complicated
when you want to support multiple clock speeds. But you also get
deterministic CPU<->memory bandwidth & latencies.
Then you have caching/pre-emptive schemes which you touch on. I've
had
experience with a VGA controller reading from SDRAM that holds off
the
CPU and fills a cache (FIFO) at a pre-determined low water mark;
typically you need several scan lines of data in the cache to
prevent
thrashing.
The Altera VIP core uses FIFO's throughout its architecture for
access
to single-port memories quite successfully, and triple frame buffers
and
scaling components can be quite bandwidth intensive. Don't be afraid
to
use deep FIFO's - deeper than you think you'll need.
Of course then you'll run into problems if you want to get fancy and
have CPU code synchronised to blanking periods... but if it was easy
then everyone would be doing it. ;)
Regards,
--
| Mark McDougall | Error: witty remark not found!
| <http://pacedev.net> |
--
Coco mailing list
Coco at maltedmedia.com
https://pairlist5.pair.net/mailman/listinfo/coco
-------------- next part --------------
A non-text attachment was scrubbed...
Name: tim at franklinlabs.com.vcf
Type: text/vcard
Size: 245 bytes
Desc: not available
URL: <https://pairlist5.pair.net/pipermail/coco/attachments/20150913/8eb6811d/attachment.bin>
More information about the Coco
mailing list