目前,生产FPGA的厂商有Xilinx、Altera、Lattice等公司,其产品结构均基于查找表结构。
本系统在设计时,采用的是Altera公司生产的Cyclone IV系列芯片作为系统开发。
2.1.2 显示原理
VGA(Video Graphics Array),中文是视频图形阵列,使用的是模拟信号传输数据。现在大部分的计算机显示器都带有VGA接口,它是最普遍的一种显示接口,如图所示。
图2.2 VGA接口
HDMI(High Definition Multimedia),中文是高清晰度多媒体接口,使用的是数字信号传输数据。HDMI接口可以提供高达5Gbps的数据传输带宽,保证高质量的视频信号传输。
图2.3 HDMI接口
R、G、B(3基色信号)、HS(行同步信号)、VS(场同步信号)是我们在设计VGA和HDMI需要考虑的5个信号。其中R、G、B信号为数据信号,HS、VS为控制信号。任意所需要的颜色都可由R、G、B3种基色组合得出。处理好这5个信号的时序就是显示的基础,下面将介绍显示的时序。
3
图2.4 各分辨率条件下使用的频率
图2.5 行扫描时序图
图2.6 场扫描时序图
当分辨率为 1024*768 时,水平方向显示器每行有 1344(65MHz/48.363kHz)个数据位,当中的 1024 个数据位用来显示像素,另外的 320(1344-1024)个数据位用来输出水平消隐信号和水平同步信号。垂直方向有80(48.363kHz/60.004Hz)行,其中 768 行用于显示相应的像素,其余 38(806-768)行用来输出垂直消隐信号和垂直同步信号。显示器显示完一行图像后,同步行信号,接着进行行消隐,同步信号都采用了低电平有效的同步方式。当所有行都被扫描完后,进行场同步,并将扫描回归到屏幕的左上方,
4
与此同时进行场消隐,并为下一次扫描做准备。
2.1.3 颜色空间
颜色空间是颜色集合的数学表示,最常用的三个颜色模型是RGB、YCbCr、YUV。RGB主要用于计算机图形学中,YCbCr和YUV主要用于视频系统中,在本次设计中用到了RGB和YCbCr。
RGB即红、绿、蓝三原色,可以通过它们相互叠加来得到各式各样的颜色,一共可以表示256x256x256=16777216种颜色。
YCbCr其中Y是指亮度分量,Cb指蓝色色度分量,而Cr指红色色度分量。主要的子采样格式有 YCbCr 4:2:0、YCbCr 4:2:2 和 YCbCr 4:4:4。
RGB和YCbCr两种颜色空间可以相互转换,它们的转换送入如下: Y = 0.257*R+0.564*G+0.098*B+16 Cb = -0.148*R-0.291*G+0.439*B+128 Cr = 0.439*R-0.368*G-0.071*B+128
R = 1.164*(Y-16)+1.596*(Cr-128)
G = 1.164*(Y-16)-0.392*(Cb-128)-0.813*(Cr-128) B = 1.164*(Y-16)+2.017*(Cb-128)
2.1.4 FPGA设计流程简介
1.设计输入硬件描述语言
设计输入在大规模的系统中使用硬件描述语言(HDL),在较小规模的系统中使用原理图或者使用用户定义原语实现模块功能。
目前,在实际开发中应用最广的就是硬件描述语言,即HDL。设计常用硬件描述语
5
言是Verilog HDL和VHDL。与VHDL相比,Verilog HDL就是在C语言的基础上发展起来的一种件描述语言,仿真器Verilog-XL推出后使得Verilog HDL迅速得到推广应用。编写代码对综合结果起着决定性的作用,好的编码风格可以更方便地配合综合工具利用最新的技术得出更好的结果;经过深思熟虑的设计将会有清晰的结构和模块,更容易进行验证,从而有利于缩短设计周期。总的来讲,VHDL/Verilog的编码风格是非常重要的。本设计采用IEEE Verilog 2001标准作为设计规范,提高了设计的可重用性。
2 行为级仿真
行为级仿真,也称为前仿真,是在编译之前对用户所设计的电路进行逻辑功能验证。如果发现错误,则返回设计修改逻辑设计。测试台主要是给被测实体加上输入激励,然后进行编译,再比较其输出是否与期望值一致,并给出一些提示信息,直到仿真正确为止。这部分工作非常重要,因为若行为级仿真做的不到位,会直接影响最终电路的功能,必须要保证通过的前提下,再进行下面的操作。
3.综合优化
综合工具的作用是将代码综合成为实际的电路。 4. 设计约束文件
FPGA设计中的约束文件可以完成时序约束、管脚约束。 5. 布局布线后仿真
布局布线后仿真主要是将Xilinx布线后所产生的延迟加反标到电路的后面进行仿真,它将所有的延迟信息都计算进去,不仅包括了门延时,还包括了实际布线延时,因此布局布线后仿真最贴近芯片的实际工作情况,反映的的结果最为准确。
6. 电路下载验证
下载验证主要是将布线后产生的结果转换为配置文件之后放入FPGA中。
6
3 系统硬件设计
系统硬件电路设计的成功与否,是整个系统能否成功运行起来的前提条件。 本章将对系统的硬件设计做详细的介绍。
3.1 FPGA 器件选型及外围电路
在本次设计中,采用的FPGA为Altera公司的Cyclone IV系列的EP4CE30F23C6N,它具有28848个逻辑单元,可用IO为532个,内嵌存储器为594KB,完全可以胜任此次的工作。
FPGA配套的外围电路主要有时钟电路和JTAG调试下载电路。FPGA的系统时钟从外部引入,采用的是50M的有源晶振,电路图如图3.1所示。
图3.1 时钟发生电路
JTAG接口用于下载和调试程序,电路图如3.2所示
图3.2 JTAG接口
7