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中。
CoreGen batch mode
xps_archiver




出现的问题如下图所示:
http://hiphotos.baidu.com/junxiu6/pic/item/3a768e4...
这个光标应该是出现在屏幕最后一行才是正确的.但是现在是在中间.我找了很久.没找到解决方法.因此来请您看看.该如何解决.呵呵
总线带宽您是指的哪个呢?
有没有检查过不用OS时是否正常?硬件软件分开查吧。
总线带宽指PLB带宽。考虑总线频率,总线宽度,总线上挂的设备多少,有没有设备会抢占总线资源等。
我现在正在使用plb_vga_controller.板子是virtex-II pro.系统使用linux2.6.但是现在有一个问题就是每次下载程序后,在显示器上光标的竖直位置不是确定的,时上时下,因此请您指点一下.看看问题该在哪里呢.十分感谢!