Jul
8
Xilinx TFT/VGA controller core (not official release)
plb_tft_cntlr_v1_00_c -- PLB34, use it for EDK 9.1 or below
http://www.xilinx.com/products/boards/ml405/files/...
plbv46_tft_cntlr_v1_00_a -- PLB46, use it for EDK 9.2 or higher
- Xapp738
https://secure.xilinx.com/webreg/clickthrough.do?c...
注意:
1. 提供的时钟tftClk频率应该是25MHz
2. Memory控制器
EDK9.1中使用PLB DDR需要开启Burst和Cacheline操作,否则会有两行内容相同的情况。MPMC不需要。
如果使用MPMC,最好给这个Core单独占用一个MPMC端口,因为数据流量较大。不过在简单的情况下也可以只使用一条PLB Bus。
MPMC需要将Native Width设置为64,因为TFT Core的Native Width是64。
3. DCR
DCR控制需要新建DCR bus和PLB2DCR bridge,地址范围4k,[20-29]位将映射为DCR Address。
连接PLB2DCR的输出sys_dcrclk到tft core的plb_dcr_clk端口
通过PLB2DCR桥来读写DCR就跟操作普通Memory一样方便,不需要用特殊的指令。
通过DCR写入Base Address可以快速切换需要显示的地址。
EDK 9.2中 Spartan系列的IP Catalog不会显示出PLB46_DCR Bridge。需要将这个Core复制到工程pcores目录并修改mpd文件的ARCH_SUPPORT_MAP属性,以支持Spartan3,比如:
4. ODDR
由于这个Core是为Virtex4设计的,使用了Spartan系列不支持的ODDR。在Port到Spartan3ADSP的过程中,将plbv46_tft_cntlr_v1_00_a\hdl\verilog\tft_if.v中158行的ODDR改为
这只是根据原文件改动最小的一种改法。其实对于VGA来说,由于不需要这个信号,完全可以将它去掉。
5. 该Core的Datasheet在UG082中。
plb_tft_cntlr_v1_00_c -- PLB34, use it for EDK 9.1 or below
http://www.xilinx.com/products/boards/ml405/files/...
plbv46_tft_cntlr_v1_00_a -- PLB46, use it for EDK 9.2 or higher
- Xapp738
https://secure.xilinx.com/webreg/clickthrough.do?c...
注意:
1. 提供的时钟tftClk频率应该是25MHz
2. Memory控制器
EDK9.1中使用PLB DDR需要开启Burst和Cacheline操作,否则会有两行内容相同的情况。MPMC不需要。
如果使用MPMC,最好给这个Core单独占用一个MPMC端口,因为数据流量较大。不过在简单的情况下也可以只使用一条PLB Bus。
MPMC需要将Native Width设置为64,因为TFT Core的Native Width是64。
3. DCR
DCR控制需要新建DCR bus和PLB2DCR bridge,地址范围4k,[20-29]位将映射为DCR Address。
连接PLB2DCR的输出sys_dcrclk到tft core的plb_dcr_clk端口
通过PLB2DCR桥来读写DCR就跟操作普通Memory一样方便,不需要用特殊的指令。
通过DCR写入Base Address可以快速切换需要显示的地址。
EDK 9.2中 Spartan系列的IP Catalog不会显示出PLB46_DCR Bridge。需要将这个Core复制到工程pcores目录并修改mpd文件的ARCH_SUPPORT_MAP属性,以支持Spartan3,比如:
引用
OPTION ARCH_SUPPORT_MAP = (virtex2p=PREFERRED, virtex4lx=PREFERRED, virtex4sx=PREFERRED, virtex4fx=PREFERRED, virtex5lx=PREFERRED, virtex5sx=PREFERRED, virtex5fx=PREFERRED, spartan3=PREFERRED, spartan3a=PREFERRED, spartan3adsp=PREFERRED, spartan3e=PREFERRED)
4. ODDR
由于这个Core是为Virtex4设计的,使用了Spartan系列不支持的ODDR。在Port到Spartan3ADSP的过程中,将plbv46_tft_cntlr_v1_00_a\hdl\verilog\tft_if.v中158行的ODDR改为
引用
ODDR2 TFT_CLK_ODDR (.Q(TFT_LCD_CLK), .C0(clk), .C1(~clk), .CE(1'b1), .R(1'b0), .D0(1'b0), .D1(1'b1), .S(1'b0));
这只是根据原文件改动最小的一种改法。其实对于VGA来说,由于不需要这个信号,完全可以将它去掉。
5. 该Core的Datasheet在UG082中。





