浙江大学硕士学位论文
图3-20为串联终端的结构。一般来说,对于双向传输的信号线来说,这种终端方式会削弱信号强度,从而在接收端信号情况会变得较差。因此在双向传输情况中,很少采用。
Virtex-4 系列FPGA的IO输出口具有DCI(Digitally Controlled Impedence)功能,配置后,它可以为各类单端IO/差分IO提供FPGA片内终端,因此在DCI功能开启状况下,终端的结构就如图 3-21所示:当驱动端具有DCI功能时,输出驱动器会自动将输出阻抗调整到与传输线特征阻抗Z0一致。DCI功能可以同时兼容串联与并联终端方式。
LVDCI RO = RVRN=RVRP=Z0 (50ohm) Z0 (50 ohm) LVDCI RO = RVRN=RVRP=Z0 (50ohm)
图 3-21 带有DCI功能的双向点对点结构
DDR400 采用的SSTL2 接口标准中,规定了串联和并联终端需要一起使用,然而根据实践证明,当VTT为接口电源电压的一半时,只使用并联终端电阻而不使用串联电阻才能达到最好的性能。在上述几种终端结构中,并联终端方式具有最好的信号完整性性能,其缺点在于功耗最大。考虑到平台电源方案对于能耗考虑的较为完善,而DDR400高速信号对于信号完整性要求非常高,因此我们选择了并联终端方式作为最终方案, 如图所示:
VTT 2.6V VCCO VTT=1.3V VTT 2.6V VCCO 靠近FPGA 靠近DDR RP=Z0 (50ohm) RP=Z0 (50ohm) FPGA Z0 (50 ohm) 7mil——顶层、底层 10mil——内层 DDR400 芯片 图 3-22 平台DDR400接口终端方案
3.4 平台应用软件和接口应用模块
3.4.1 开发应用软件
如前所述,高性能视频开发验证平台的硬件部分已经可以满足对于高性能要求的视频编解码器的开发需要。本节描述的是配合平台开发相应的开发应用软件,平台结合这些软件的应用可以使开发过程方便和高效,最大限度的发挥硬件部分的性能。
可在平台上使用的应用软件如表 3-9所示:
44
浙江大学硕士学位论文
表 3-9 平台应用软件列表
软件名称 生产商 版本 应用描述 HDL语言综合(synthesize), 翻译(Translate),元件库映射(MAP), 布局布线(Place & Route) 产生可下载bit 文件 FPGA下载 在设计中添加可测试块 提供片上信号实时逻辑分析 调试、初始化USB2.0 芯片 RS232接口数据交互 设计行为级仿真、后仿真 PC端通过USB口发送/接收数据 ISE[49] .Xilinx 7.1i Chipscope Pro Xilinx 7.1i 2.61 1.12 5.6 1.0 EZ-USB control Cypress Panel Accessport Modelsim SE Usb_loop Share Model None 利用平台进行开发设计并不仅限于使用上述软件。在设计的各个阶段,开发者都可以自由选择应用软件。
3.4.2 接口应用模块
我们专门为平台的各种接口,芯片和测试工具等设计开发了接口应用模块,供用户在开发设计视频编解码器的过程中使用。充分利用这些应用模块,开发者可以集中精力在开发视频系统的硬件结构和算法上,而对于平台提供的这些接口,芯片和测试工具,只需要在设计中进行简单的设置并进行相应的连接,即可非常方便的使用它们的强大功能,从而大大缩短了开发周期,提高了开发效率。以下介绍平台重要的接口应用模块设计。
3.4.2.1 USB接口应用模块
平台提供了USB2.0数据传输接口应用模块以及PC端的应用软件,它们可以让利用平台的开发者以最简便的方式获得高速的数据传输。 1)模块结构 USB2.0接口的应用模块被命名为USB_TOP,其功能为与平台子板上的CY7C68013芯片进行数据交互。其结构如图 3-23所示:
系统时钟 系统复位 CY7C68013接口 USB_TOP 8bit 并行接口 CLKDV TB_USB
图 3-23 USB接口应用模块结构
45
浙江大学硕士学位论文
如图所示,USB_TOP包括两个子模块,CLKDV模块用来产生USB数据交互需要的时钟,以及对CY7C68013芯片进行控制,TB_USB用来进行集中的数据交互转换工作。使用USB2.0接口时只需要直接向USB_TOP模块输入8bit 并口数据或者从并口中读出数据即可。
.
2) PC端应用软件[51] USB2.0应用软件包括了需要下载到CY7C68013中去的配置信息和PC端发送文件的程序。下载配置信息是通过USB线实现的,PC端软件为CYPRESS公司提供的EZ-USB control Panel,我们为平台设置好了通用的配置文件tcxmaster.hex。另外用C语言编写了usb_loop.exe文件作为PC端文件发送软件,可以用来发送视频码流或者图像数据。 3) 使用USB2.0端口 当开发者需要在高性能视频开发平台上使用USB2.0数据传输端口时,需按照下列流程来达到最快速的使用:
A. 将欲传输数据的模块与USB_TOP模块的并口进行连接 B. 用USB线缆正确连接平台USB接口与PC端USB口
C. 在平台的硬件连接文件中,使能USB端口(见3.4.2.7节) D. 用平台开发软件生成可下载的bit流文件并下载到FPGA中
E. 用EZ-USB control Panel和tcxmaster.hex文件配置初始化USB芯片 F. 使用usb_loop.exe进行码流发送工作
USB_TOP接口应用模块在ISE软件中的速度优化模式下,不加任何限制条件时(下文中除特别叙述,均在同样条件下进行综合)占用了7个FPGA Slice,最高支持频率500MHZ。
3.4.2.2 RS232接口应用模块
RS232接口用来在PC和平台间进行低速的数据传输,RS232接口比特率可以在4800bps,
.
9600bps, 19200bps or 38400bps中进行任意选择[38]。RS232端口通常是作为平台的调试与测试工具使用。 1)应用模块 RS232接口包括数据发送与数据接收两个模块。RS232数据发送模块被命名为RS232_SEND_MAIN, 其功能为将数据从平台发送到PC端;而数据接收模块被命名为RS232_REC_MAIN,功能为接收PC端发送到平台的数据。接口的结构如图 3-24所示:
系统时钟 系统复位 RS232 TXD RS232 RXD 系统时钟 系统复位 RS232_SEND_MAIN 8/16bit FIFO接口 TXMIT FIFO 8/16bit FIFO接口 RCVR FIFO RS232_REC_MAIN
图 3-24 RS232接口应用模块结构
46
浙江大学硕士学位论文
2) PC端应用软件 平台使用的PC端RS232传输软件为AccessPort.exe(版本为1.12 BETA)。在使用RS232功能时,需要一根RS232线缆连接平台的232端口与PC的COM口。开发使用方法与USB端口类似,不再赘述。
RS232_SEND_MAIN模块占用了87个FPGA Slices,最高支持频率250MHZ; RS232_REC_MAIN模块使用了71个FPGA Slices,最高支持频率250MHZ。两个模块占用BlockRAM的大小由FIFO深度决定。
3.4.2.3视频输出接口应用模块
平台的视频输出接口包括了复合视频输出接口、S-VIDIO视频输出接口和VGA视频输出接口。复合与S-VIDEO视频输出功能由ADV7176芯片实现而VGA视频输出功能则由
.
ADV7120芯片实现[39]。平台设计成支持三个接口同时输出视频信号。 视频输出接口应用模块的主要功能为: ? 配置与初始化视频芯片
? 将输入的视频数据转换为视频芯片认可的数据输入格式
视频输出接口应用模块被命名为VIDEO_OUT, 其结构如图 3-25所示
VIDEO data input FIFO_Y FIFO_CR FIFO_CB 系统时钟 系统复位 I2C bus to ADV7176 & ADV7120 VIDEO_I2C VIDEO_OUT PAL_VGA ADV7176 control &data (PAL/NTSC) ADV7120 control &data (VGA)
图 3-25 视频输出接口应用模块结构
它是由VIDEO_I2C 模块、PAL_VGA模块和三个FIFO模块所组成。VIDEO_I2C模块
.
的主要功能是通过I2C总线对ADV7176以及ADV7120芯片进行初始化配置[42]。开发过程可以根据实际需要对两个芯片的初始化配置参数进行修改以适应不同的输出图像模式。VIDEO_I2C可以自动将修改的参数转换为I2C命令传送给视频输出芯片。视频接口模块的显示缓冲区由亮度缓冲区(FIFO_Y)和色度缓冲区(FIFO_CR和FIFO_CB)组成。输出亮度色度数据格式为4:2:2, 因此FIFO的深度而言,FIFO_Y 是FIFO_CR和FIFO_CB的一倍。FIFO深度主要是通过SDRAM总线上最长占用时间来计算得到。
PAL_VGA模块的输入是显示缓冲区送出的YCRCB图像数据。输出为符合视频芯片ADV7176和ADV7185要求的数据和控制信号。扫描过程为PAL_VGA模块的程序中的主要内容,以PAL制为例,其主要的扫描特性是:
(1) 625行(扫描线)/帧,25帧/秒(40 ms/帧) (2) 高宽比(aspect ratio) 4:3
(3) 隔行扫描,2场/帧,312.5行/场 (4) 颜色模型:YUV
47
浙江大学硕士学位论文
一帧图像的总行数为625,分两场扫描。行扫描频率是15.625 Hz,周期为64μs;场扫描频率是50 Hz, 周期为20 ms;帧频是25 Hz,是场频的一半,周期为40 ms。在发送电视信号时,每一行中传送图像的时间是52.2μs,其余的11.8μs不传送图像,为行扫描的逆程时间,同时用作行同步及消隐用。每一场的扫描行数为625/2=312.5行,其中25行作场回扫,不传送图像,传送图像的行数每场只有287.5行,因此每帧只有575行有图像显示。
.
结合视频输出芯片的要求[40],PAL_VGA模块的主要参数如表 3-10所示:
表 3-10视频输出接口应用模块输出参数 场扫描 场周期 场同步宽度 场消隐宽度 场正程 20ms/场 3行 25行+24行 288行 行周期 行同步宽度 行消隐宽度 行正程 行扫描 64us/行 4.7us 11.8us 52.2us 开发系统的子板上的视频输出芯片必须通过I2C总线进行相应的配置,视频接口模块输出的图像数据才能够被正确显示。VIDEO_OUT模块使用了1135个FPGA Slices,和16个FPGA内部Block RAM, 最高支持频率54MHZ。
3.4.2.4 SDRAM接口应用模块
SDRAM控制器接口应用模块包括了SDRAM控制器与SDRAM总线仲裁器。SDRAM接口应用模块被命名为SDRAM_TOP,它包括了如下的功能: ? 初始化平台上的SDRAM芯片 ? 对SDRAM芯片执行刷新功能 ? 用轮询机制进行SDRAM总线管理
? 控制内部模块与SDRAM芯片之间的数据传输 1)SDRAM接口应用模块结构
SDRAM_TOP包括了SDRAMCNT与SDRAM_ARBI两个子模块。SDRAMCNT模块的主要功能为初始化设置平台上的SDRAM芯片W986432DH, 将内部SDRAM总线上的控制命令与数据转换为SDRAM芯片可接受的命令与时序,并且对SDRAM芯片执行刷新以保持其内部的数据完整性。该模块的结构框图如图 3-26所示:
内部SDRAM总线 总线应答 总线申请 系统时钟 系统复位 SDRAM_TOP SDRAMCNT SDRAM 芯片 接口 SDRAM芯片 W986432DH SDRAM_ARBI
图 3-26 SDRAM接口应用模块结构
这个SDRAM控制器接口应用模块可以同时允许7个(可增加数量)内部模块同时共享SDRAM总线,并且可以设定各共享总线模块的申请优先级。 2)SDRAM总线接口
48