Решил к платке Spartan3E StarterKit (spartan3e500) прикрутить стандартную корку XPS_TFT от Xilinx.
Судя по документации данная корка умеет работать как с DVI интерфейсом (используя все навороты и конфигурацию по шине I2C) так и с простыми VGA дисплеями.
В опциях корки указал следующие параметры:
Код
BEGIN xps_tft
PARAMETER INSTANCE = xps_tft_0
PARAMETER HW_VER = 2.01.a
PARAMETER C_DCR_SPLB_SLAVE_IF = 1
PARAMETER C_TFT_INTERFACE = 0
PARAMETER C_DEFAULT_TFT_BASE_ADDR = 0x47000000
PARAMETER C_SPLB_BASEADDR = 0x86e00000
PARAMETER C_SPLB_HIGHADDR = 0x86e0ffff
BUS_INTERFACE MPLB = mb_plb
BUS_INTERFACE SPLB = mb_plb
PORT SYS_TFT_Clk = clock_generator_0_CLKOUT3
PORT TFT_HSYNC = xps_tft_0_TFT_HSYNC
PORT TFT_VSYNC = xps_tft_0_TFT_VSYNC
PORT TFT_VGA_R = xps_tft_0_TFT_VGA_R
PORT TFT_VGA_G = xps_tft_0_TFT_VGA_G
PORT TFT_VGA_B = xps_tft_0_TFT_VGA_B
PORT IP2INTC_Irpt = xps_tft_0_IP2INTC_Irpt
END
PARAMETER INSTANCE = xps_tft_0
PARAMETER HW_VER = 2.01.a
PARAMETER C_DCR_SPLB_SLAVE_IF = 1
PARAMETER C_TFT_INTERFACE = 0
PARAMETER C_DEFAULT_TFT_BASE_ADDR = 0x47000000
PARAMETER C_SPLB_BASEADDR = 0x86e00000
PARAMETER C_SPLB_HIGHADDR = 0x86e0ffff
BUS_INTERFACE MPLB = mb_plb
BUS_INTERFACE SPLB = mb_plb
PORT SYS_TFT_Clk = clock_generator_0_CLKOUT3
PORT TFT_HSYNC = xps_tft_0_TFT_HSYNC
PORT TFT_VSYNC = xps_tft_0_TFT_VSYNC
PORT TFT_VGA_R = xps_tft_0_TFT_VGA_R
PORT TFT_VGA_G = xps_tft_0_TFT_VGA_G
PORT TFT_VGA_B = xps_tft_0_TFT_VGA_B
PORT IP2INTC_Irpt = xps_tft_0_IP2INTC_Irpt
END
На плате также имеется банка DDR памяти размером в 64 МБайта. Адресное пространство у нее составляет 0x44000000 - 0x47ffffff.
Соответственно базовый адрес для видеопамяти в ОЗУ составляет - 0x47000000
Так как каждый из трех каналов является 6ти разрядным - то пины в ucf файле прописаны следующим образом:
Код
# VGA
Net xps_tft_0_TFT_HSYNC_pin LOC=F15 | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST;
Net xps_tft_0_TFT_VSYNC_pin LOC=F14 | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST;
Net xps_tft_0_TFT_VGA_R_pin<5> LOC=H14 | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST;
Net xps_tft_0_TFT_VGA_R_pin<*> IOSTANDARD = LVTTL;
Net xps_tft_0_TFT_VGA_G_pin<5> LOC=H15 | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST;
Net xps_tft_0_TFT_VGA_G_pin<*> IOSTANDARD = LVTTL;
Net xps_tft_0_TFT_VGA_B_pin<5> LOC=G15 | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST;
Net xps_tft_0_TFT_VGA_B_pin<*> IOSTANDARD = LVTTL;
Net xps_tft_0_TFT_HSYNC_pin LOC=F15 | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST;
Net xps_tft_0_TFT_VSYNC_pin LOC=F14 | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST;
Net xps_tft_0_TFT_VGA_R_pin<5> LOC=H14 | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST;
Net xps_tft_0_TFT_VGA_R_pin<*> IOSTANDARD = LVTTL;
Net xps_tft_0_TFT_VGA_G_pin<5> LOC=H15 | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST;
Net xps_tft_0_TFT_VGA_G_pin<*> IOSTANDARD = LVTTL;
Net xps_tft_0_TFT_VGA_B_pin<5> LOC=G15 | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST;
Net xps_tft_0_TFT_VGA_B_pin<*> IOSTANDARD = LVTTL;
В общем суть проблемы следующая - на разъем "валят" hsync и vsync с нужными таймингами (монитор отлично определяет режим), а вот картинки нету вообще, то есть на линиях данных постоянно находится лог. ноль (проверял осциллографом). Данная проблема имеет место быть если вывод осуществляется как с помощью Standalone так и при использовании GNU/Linux (Framebuffer и все дела...)
Кто нибудь использовал данную кору? Были бы какие нибудь проблемы, или же наоборот - успех?

Заранее спасибо за любой ответ
