У меня это FIFO 1024x24бит, представлен в виде 3-х блоков R, G, B двухпортовой M9K 1024x9бит. Дальше данные R(7..0), G(7..0), B(7..0) поступают на адреса памяти палитры, выполненной в виде 3-х блоков 1024x9бит R, G, B с выходом на VGA RGB 8:8:8.
Сейчас подвис с калькулятором, нужно рассчитать все времянки и распределив наложить на видео режим. Интересно то, что у NextZ80@42MHz есть 700000 тактов в прерывании. По сравнению с Z80@3.5MHz, у которого их будет 58333 :) Если сделать графику 320х240 8bpp, то NextZ80 может строить изображение за одно прерывание...
Код:----------------------------------------------------------------------------------------
VGA
----------------------------------------------------------------------------------------
General timing:
Screen refresh rate = 60 Hz 60 Hz 700000 cycles
Vertical refresh = 31.46875 kHz 31.5 kHz
Pixel freq. = 25.175 MHz 25.2 MHz 23,809523809523809523809523809524 ns
Horizontal timing (line)
Polarity of horizontal sync pulse is negative.
Scanline part Pixels Time [us]
---------------------------------
Visible area 640 25.422045680238 25,396825396825396825396825396825 us 25396,8253968254 ns
Front porch 16 0.63555114200596 0,63492063492063492063492063492063 us 634,9206349206349 ns
Sync pulse 96 3.8133068520357 3,8095238095238095238095238095238 us 3809,52380952381 ns
Back porch 48 1.9066534260179 1,9047619047619047619047619047619 us 1904,761904761905 ns
Whole line 800 31.777557100298 31,746031746031746031746031746032 us 31746,03174603175 ns
Vertical timing (frame)
Polarity of vertical sync pulse is negative.
Frame part Lines Time [ms]
---------------------------------
Visible area 480 15.253227408143 15,238095238095238095238095238095
Front porch 10 0.31777557100298 0,31746031746031746031746031746032
Sync pulse 2 0.063555114200596 0,06349206349206349206349206349206
Back porch 33 1.0486593843098 1,047619047619047619047619047619
Whole frame 525 16.683217477656 16,666666666666666666666666666667 16666666,666666666666666666666667 ns / 23,809523809523809523809523809524 ns = 700000 cycles
----------------------------------------------------------------------------------------
SDRAM 16M16 -75
----------------------------------------------------------------------------------------
CLK = 126 MHz = 7,936507936507937 ns = 1T
WR = 15T = 119,047619047619 ns
RD = 14T = 111,1111111111111 ns
RFSH = 9T = 71,42857142857143 ns
Providing a distributed AUTO REFRESH command every 7.81us 7809,52380952381 ns

