《基于FPGA的图像数据传输控制系统的设计本科毕业设计.doc》由会员分享,可在线阅读,更多相关《基于FPGA的图像数据传输控制系统的设计本科毕业设计.doc(35页珍藏版)》请在三一办公上搜索。
1、武汉理工大学毕业设计(论文)基于FPGA的图像数据传输控制系统设计学院(系): XX 专业班级: XX 学生姓名: XX 指导教师: XX 学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包括任何其他个人或集体已经发表或撰写的成果作品。本人完全意识到本声明的法律后果由本人承担。作者签名: 年 月 日学位论文版权使用授权书本学位论文作者完全了解学校有关保障、使用学位论文的规定,同意学校保留并向有关学位论文管理部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权省级优秀学士论文评选机构将本学位论文
2、的全部或部分内容编入有关数据进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。本学位论文属于1、保密囗,在 年解密后适用本授权书2、不保密囗 。(请在以上相应方框内打“”)作者签名: 年 月 日导师签名: 年 月 日本科生毕业设计(论文)任务书学生姓名:XX 专业班级:XX 指导教师:XX 工作单位:XX设计(论文)题目: 基于FPGA的图像数据传输控制系统的设计设计(论文)主要内容:在掌握学习FPGA的基本原理、结构和应用的基础上,完成基于FPGA的图像数据传输控制系统的设计与实现。要求完成的主要任务:1、查阅不少于15篇的相关资料,其中英文文献不少于3篇,完成开题报告。2、
3、FPGA基本系统的设计。3、FPGA外围系统的设计。4、完成不少于5000汉字的英文文献翻译。5、完成不少于12000字的论文。必读参考资料:1 王庆友光电技术北京:电子工业出版社,20052Jinghong.DuanDevelopment of Image Processing System Based on DSP and FPGA.Electronic Measurement and Instruments,Aug.16, 2007-July 18 20073Bob Zeidman著, 赵宏图译基于FPGA&CPLD的数字IC设计方法北京:北京航空航天大学出版社指导教师签名: 系主任签名
4、: 院长签名(章)武汉理工大学本科生毕业设计(论文)开题报告1、目的及意义(含国内外的研究现状分析)本次毕业设计的题目为基于FPGA的图像数据传输控制系统的设计,是通过搭建硬件平台以及用硬件描述语言来控制图像处理和数据的采集及传输的。作为大学本科最重要的一次实践性课程,我选择这个课题主要是基于以下原因。图像数据的传输在当今信息化时代已成为最普遍最重要的技术,在通信、卫星、遥感、导航、监控等各项技术中,图像数据采集前端都是必须的。与我们生活联系较为紧密的就很多,如摄像机、照相机、视频系统等等。数据的传输和控制的精确度和准确性都会影响人或机器的下一步操作。因此,作为一种基本技术,在各领域内,对其研
5、究都是十分深入的,已经有各种方法对其进行了实现。 目前国内外的图像数据采集手段多种多样,在主控制模块上有基于ARM的,有基于DSP的,还有基于专用单片机的;在数据和控制信号传输上有基于USB2.0的,有基于RS-232串行通信的,或是EPP并行方式的;图像传感器上既有采用CCD的,也有采用CMOS的。但目前市场上和技术实现上是以FPGA现场可编程门阵列为主控的最为普遍。南京林大的洪冠和南京铁职的赵茂成等人在“基于PLC的肉碎骨图像采集控制系统中”采用可编程逻辑器件PLC为控制核心,控制激光CCD和X射线相机实现碎骨图像采集,获得较高的图像分辨率。北京航空航天大学的任贵伟和张海在“基于ARM紧凑
6、型图像采集系统”中利用ARM7(LPC2210)与CMOS(OV7620)实现了一个紧凑型图像采集、处理系统;利用LPC2210数据总线的工作方式,有效地消除了OV7620对系统数据总线的干扰。SCCB控制,图像数据的采集、处理以及传输都由一片LPC22lO完成,特别适合于对功耗、体积要求较严格的嵌入式应用。此次我的毕业设计要求以FPGA为平台,设计一个系统来控制图像和数据的传输,国内已经有类似的研究设计并取得了相关成果,我此次则是期望通过个人的能力能设计出基于FPGA的图像数据传输控制系统,使系统更简化、精确、有效,并能应用于某一领域。此外,就我个人来说,由于本次设计的重点是利用FPGA,这
7、是一门既成熟又非常具有实用性的学问,在本科期间只接触了皮毛,现欲利用这一机会,对该课程进行深入学习,使自己额外掌握一项技能,争取通过本次毕业设计掌握FPGA的开发设计与实用基本知识,为今后的学习工作奠定基础,作为一名电子信息类专业的理科生,掌握了数模电、单片机、编程语言的同时,逻辑可编程器件相关的知识也很重要。本次研究希望设计出一种能够在某一专用场所使用的图像数据传输器控制系统。2、基本内容和技术方案数据传输控制系统其实是利用FPGA芯片控制数据采集前端采集到的原始信号依次进行数模转换,数据处理等操作后储存到存储器里,可供CPU读取进行运算和处理后,再传输到外部终端,系统的各项动作和反应都由F
8、PGA控制。而本次设计的内容则为图像数据的传输控制,即是要利用FPGA芯片控制图像传感器(本次利用的是CMOS传感器)获取图像信号,再将其转换成数字信号,通过FPGA控制,对此图像数据进行一系列的处理后,将图像数据存储到储存器(或是显示到监视设备)。技术方案上,本次设计将通过对系统进行原理方案的设计,然后选取合理FPGA芯片及CMOS传感器和其它外围的硬件器件,搭建成具可行性的电路,编写出相应的控制程序。这一系列工作都先将借助于Quartus II这个FPGA设计仿真专用平台,进行系统设计的验证及仿真工作,在电路上还可能会用到其他相关的电子电路设计平台。此外,本次设计将采用仿真与实际相结合的研
9、究方法。在计算机上的软件上建立一个仿真系统,对各原始数据的处理和运算设计一套流程和算法,在仿真获得成功的情况下,将会利用FPGA开发板和外围电路做出实物。3、进度安排第13周:查阅相关文献资料,明确研究内容,确定方案,完成开题报告。第47周:了解研究所需要掌握的基本知识和能力,通过自学和向他人学习来掌握这些知识能力。第810周:学习开始动手进行设计和实验,进行调试使满足基本要求,开始进行论文的撰写。第1214周:完成并修改毕业论文。第15周:准备论文答辩。4、指导教师意见 指导教师签名: 年 月 日目 录摘 要IAbstractII1 绪论11.1 论文的目的意义11.2 国内外研究背景11.
10、3 论文的主要内容22 基于FPGA的系统设计32.1 FPGA简介32.2 Cyclone II系列芯片72.3 Quartus II简介82.4 HDL描述语言简介103 图像传输系统方案设计133.1 系统总体方案133.2 各模块器件的选择134 系统各模块的设计164.1图像数据采集模块164.2图像数据存储模块195结论21参考文献22附 录23致 谢26摘 要在当今信息科技日益发达的时代,随着数字多媒体技术的发展,图像数据的采集和传输作为视频图像类信息交换的第一项工作,已经越来越普及。在军事上、工业上以及人们的日常生活中,图像采集传输工作随处可见,目前人们接触较多的视频和图片等多
11、媒体文件几乎全部源自图像数据采设备的获取。通过图像采集系统采集图像(视频或图片),然后经过数据处理后可以传输到其它设备予以存储或显示。图像采集是图像处理的前提。本论文主要研究的内容便是图像的获取和传输问题,设计一个图像传输控制系统,以FPGA为主控模块,控制图象传感器(CMOS图像传感器)将图像传输到存储设备中。论文重点研究的是系统的硬件原理设计和其中各个时刻各模块的逻辑时序的控制。关键词: FPGA;Quartus II;CMOS图像传感器;图像采集;数据传输AbstractIn this era when information technology highly developed, w
12、ith the development of digital multimedia technology, image acquisition, as the first step of image information exchange , has been mor and more popular. In the military,industry, and peoples daily life,image acquisiton and transmission were seen everywhere.And in now days, most of the multimedia fi
13、les we use, such as videos and photos, are from image acquisition device. Images(video or photo) must be collected by an image acquisition fist, then it could be transferred to other devicws or displayed after being data processed.Image acquisition is a prerequisite for image processing. The content
14、 of this thesis is about the problem of the image acquisition , and the design of an image transmission and controlling system that use FPGA as the main control module to control the image sensor(CMOS Image Sensor ) to transfer the data to the storage devices .A big part of the thasis will focus on
15、the design of the hardware system and the logic control of each module . Key Words:FPGA;Quartus II;CMOS Imag sensor;Image Acquisition;Data transmission1 绪论本论文的题目为“基于FPGA的图像数据传输控制系统的设计”,主要研究的是用现场可编程门阵列器件来控制图像数据的获取和传输问题。1.1 论文的目的意义图像与当今人们的生活已经密不可分了,它是人们现在获取和交换信息的重要途径。图像的采集与传输技术在当今信息化时代已成为最普遍最重要的技术,在通信
16、、卫星、遥感、导航、监控等各项技术中,图像数据采集前端都是必须的。与我们生活比较联系较为紧密的就很多,如摄像机、照相机、视频系统等等。这些多媒体信息对社会的发展,对人们的工作甚至日常生活都影响甚大1-3。图像数据的获取与传输作为一种基本技术,在各领域内,对其研究都是十分深入的,已有各种方法对其进行实现。故对于我们来说,掌握这门技术并不断地试图去改进和创新,让技术在我们的探索中不断进步和成熟是具有重要的现实意义的。本论文就是基于这一目的,以个人的思维对图像采集系统的搭建进行尝试,力图使其具有独到之处,能够被用到某一专用场合。 此外,就我个人来说,由于本次设计的重点是利用FPGA,这是一门既成熟又
17、非常具有实用性的学问,在本科期间只接触了皮毛,现欲利用这一机会,对该课程进行深入研究,使自己额外掌握一项技能,争取通过本次毕业设计掌握FPGA的开发设计与实用基本知识,为今后的学习工作奠定基础,作为一名电子信息类专业的理科生,掌握了数模电、单片机、编程语言的同时,逻辑可编程器件等相关的知识也很重要。本次研究希望设计出这样一种系统能够在某一专用场所为数据的传输器控制作用,例如作为在高速公路上的车型速度控制,也是对数据传输的控制,或如电子温度计中的数据传输控制等等。1.2 国内外研究背景目前国内外的图像数据采集手段很丰富。在主控制模块上有基于ARM的,有基于DSP的,还有基于专用单片机的;在数据和
18、控制信号传输上有基于USB2.0的,有基于RS-232串行通信的,或是EPP并行方式的;图像传感器上既有采用CCD的,也有采用CMOS的4-5。但目前市场上和技术实现上是以FPGA现场可编程门阵列为主控的最为普遍。南京林大的洪冠和南京铁职的赵茂成等人在“基于PLC的肉碎骨图像采集控制系统中”采用可编程逻辑器件PLC为控制核心,控制激光CCD和X射线相机实现碎骨图像采集,获得较高的图像分辨率6。北京航空航天大学的任贵伟和张海在“基于ARM紧凑型图像采集系统”中利用ARM7(LPC2210)与CMOS(OV7620)实现了一个紧凑型图像采集、处理系统;利用LPC2210数据总线的工作方式,有效地消
19、除了OV7620对系统数据总线的干扰。SCCB控制,图像数据的采集、处理以及传输都由一片LPC22lO完成,特别适合于对功耗、体积要求较严格的嵌入式应用7。图1 市场上设计的图像采集传输系统此次我的毕业设计要求以FPGA为平台,设计一个系统来控制图像和数据的传输,国内已经有类似的研究设计并取得了相关成果,我此次则是期望通过个人的能力能设计出基于FPGA的图像数据传输控制系统,使系统更简化、精确、有效,并能应用于某一领域8。1.3 论文的主要内容论文着重叙述了利用FPGA技术来实现图像数据的采集和传输技术。论文将利用数章的篇幅来叙述FPGA相关的知识以及FPGA的开发平台Quartus II的应
20、用。然后将会对本次设计的基于FPGA和CMOS图像传感器图像采集和传输系统进行详细的讲解,对系统进行原理方案的设计,然后选取合理FPGA芯片及CMOS传感器和其它外围的硬件器件,搭建成具可行性的电路,借助于Quartus II这个FPGA设计仿真专用平台,编写出相应的控制程序,进行系统设计的验证及仿真工作。2 基于FPGA的系统设计本次设计的基础是FPGA,开发和仿真平台是在Quartus II上,还会利用到HDL语言,现分别对这几个概念做以介绍。2.1 FPGA简介FPGA(Field-Programmable Gate Array),指的是现场可编程门阵列,它是在PAL、GAL、CPLD等
21、可编程器件的基础上进一步发展起来的一种技术。FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。目前主流的FPGA仍是基于查找表技术的,但基本性能大幅度提高,并且整合了常用功能(如RAM、时钟管理和DSP)的硬核(ASIC型)模块。FPGA芯片主要由7部分组成,分别为:可编程输入输出单元、基本可编程逻辑单元、完整的时钟管理、嵌入块式RAM、丰富的布线资源、内嵌的底层功能单元和内嵌
22、专用硬件模块9-10,如图2所示。CLBCLBCLBCLBCLBCLBIOBIOBIOBIOBIOBIOBIOBIOBSRAM SRAMIOBIOBIOBIOBIOBIOBIOBIOBIOBIOBDCM图2 FPGA芯片的内部结构 2.1.1 可编程输入输出单元可编程输入输出单元(IOB)简称I/O单元,是芯片与外围电路的借口部分,可以完成不同电气特性下对输入输出信号的驱动与匹配要求。FPGA芯片内的输入输出口按组分类,每组能独立支持不同的I/O标准。可以通过软件来配置各I/O口的特性,可以改变驱动电流的大小,可改变上、下拉电阻。如图3所示。图3 可编程输入输出单元2.1.2 可配置逻辑块可配
23、置逻辑块(CLB)是FPGA内的基本逻辑单元,如图4所示。不同类型的FPGA芯片内部的可配置逻辑块的特性和数量会各有不同,但每个可配置逻辑块内都有一个可配置开关矩阵,该矩阵由若干个输入、一些多路复用器和触发器组成的。可以对开关矩阵进行配置,配置后的开关矩阵就可方便地用于处理组合逻辑、移位寄存器或RAM,故开关矩阵在性能上设计的是十分灵活的。每个CLB模块不仅可以用于实现组合逻辑、时序逻辑,还可以配置为分布式RAM和分布式ROM。COUTSHIFTCINCINCOUTSwitchMatrixSliceX1Y1SliceX1Y0SliceX1Y0SliceX1Y1TBUF X0Y1TBUF X0Y
24、0快速连接 到邻近区图4 可配置逻辑块2.1.3 其他部分模块数字时钟管理模块(DCM)。大多数FPGA芯片均提供数字时钟管理。Xilinx公司目前推出的最先进的FPGA提供数字时钟管理和相位环路锁定。相相位环路锁定能够提供精确的时钟综合,还具有降低抖动和实现过滤功能。嵌入式块RAM(BRAM)。大多数FPGA都具有内嵌的块RAM,这大大拓展了FPGA的应用范围和灵活性。BRAM可被配置为单端口RAM、双端口RAM、内容地址存储器 (CAM)以及FIFO等常用存储结构。CAM存储器在其内部的每个存储单元中都有一个比较逻辑,写入 CAM中的数据会和内部的每一个数据进行比较,并返回与端口数据相同的
25、所有数据的地址,因而在路由的地址交换器中有广泛的应用。除了块RAM,还可以将 FPGA中的LUT灵活地配置成RAM、ROM和FIFO等结构。丰富的布线资源。FPGA芯片内部有着丰富的布线资源,根据工艺、长度、宽度和分布位置的不同而划分为4类不同的类别。第一类是全局布线资源,用于芯片内部全局时钟和全局复位/置位的布线;第二类是长线资源,用以完成芯片 Bank间的高速信号和第二全局时钟信号的布线;第三类是短线资源,用于完成基本逻辑单元之间的逻辑互连和布线;第四类是分布式的布线资源,用于专有时钟、复位等控制信号线。布线资源连通FPGA内部的所有单元,而连线的长度和工艺决定着信号在连线上的驱动能力和传
26、输速度。底层内嵌功能单元。内嵌功能模块主要指延迟锁定环(DLL)、相位锁定换(PLL)、数字信号处理器(DSP)和中央处理单元(CPU)等软处理核(SoftCore)。现在越来越丰富的内嵌功能单元,使得单片FPGA成为了系统级的设计工具,使其具备了软硬件联合设计的能力,逐步向SOC平台过渡。DLL和PLL具有类似的功能,可以完成时钟高精度、低抖动的倍频和分频,以及占空比调整和移相等功能。PLL 和DLL可以通过IP核生成的工具方便地进行管理和配置。内嵌专用硬核。内嵌专用硬核是相对底层嵌入的软核而言的,指FPGA处理能力强大的硬核(Hard Core),等效于ASIC电路。为了提高FPGA性能,
27、芯片生产商在芯片内部集成了一些专用的硬核。例如:为了提高FPGA的乘法速度,主流的FPGA 中都集成了专用乘法器;为了适用通信总线与接口标准,很多高端的FPGA内部都集成了串并收发器(SERDES),可以达到数十Gbps的收发速度。2.1.4 FPGA的应用FPGA器件自身的高度灵活性使得它的应用范围极其广泛。目前在电子信息领域,FPGA的应用表现在以下几个方面11-13。FPGA在逻辑控制电路中的应用。这应该是FPGA最基本的应用,通过对FPGA的逻辑编程,可以轻易生成任意组合逻辑电路的时序,对逻辑电路中的其他芯片起控制作用。FPGA在数字信号处理技术中有重大应用。由于FPGA具有强大的运算
28、和数据处理能力,故当今基于FPGA的数字信号处理能够很好地解决一些无法简单运用DSP处理的问题,数字信号处理中常须用到的一些模块如乘法器、除法器、滤波器、延时器、锁相器、比较器等等在FPGA中都能很容易的实现。因此数字信号处理中常见的复杂计算如傅里叶变换、拉普拉斯变换等都可轻易解决。此外,在一些特定场合,FPGA对DSP也有很好的辅助作用。FPGA在微机系统中的应用。由于FPGA丰富的I/O口资源和强大的模块化功能,使得其几乎可以取代微机系统中现有的全部微机接口芯片,实现微机系统中的总线控制、地址译码、中断和DMA控制、DRAM管理和I/O接口电路功能。并且,利用FPGA可把微机系统的功能集成
29、在同一芯片中,实现“功能集成”。此外,FPGA可用于产品设计上14。FPGA因为具备接口,控制,功能IP,内嵌CPU等特点有条件实现一个构造简单,固化程度高,功能全面的系统产品设计。因此,在产品设计领域,FPGA前景广阔。2.1.5 FPGA开发过程对于基于FPGA的系统,其开发过程有分析设计,EDA仿真设计等步骤,具体如下图所示。任务分析,确定系统逻辑功能权衡比较,选定功能实现算法逻辑划分,绘制系统结构框图选择器件,完成EDA工程设计化整为零,逐个设计功能模块图5 FPGA开发分析流程设计输入综 合FPGA/CPLD适配FPGA/CPLD编程下载在线测试时序仿真功能仿真图6 软件平台上的开发
30、流程2.2 Cyclone II系列芯片此次系统设计的核心芯片就是Cyclone II系列的FPGA芯片。Cyclone II采用全铜层、低K值、1.2伏SRAM工艺设计,裸片尺寸被尽可能最小的优化。采用300毫米晶圆,以TSMC成功的90nm工艺技术为基础,如图7所示。PLLPLL PLL PLLLogicArrayM4KBlocksLogicArrayLogicArrayM4KBlocksLogicArrayIOEsIOEsIOEsIOEs Embedded Multipliers图7 CycloneII系列FPGA的内部结构示意图器件主要由以行列形式排列的逻辑阵列块(Logic Arra
31、y Block,LAB)、嵌入式存储器块及嵌入式乘法器组成,锁相环(PLL)为FPGA提供时钟,输入输出单元(InputOutput Element,IOs)提供输入输出接口逻辑。逻辑阵列、嵌入式存储器块、嵌入式乘法器、输入输出单元及锁相环之间可实现各种速度的信号互联。逻辑单元是Cyclone II系列中可实现用户逻辑定制的最小单元,Cyclone II 器件提供了4608到68416个逻辑单元(LE),并具有一整套最佳的功能,包括嵌入式18比特18比特乘法器、专用外部存储器接口电路、4kbit嵌入式存储器块、锁相环(PLL)和高速差分I/O能力。每16个LE组成一个逻辑阵列块(LAB)。LA
32、B以行列形式在FPGA器件中排列。CycloneII系列FPGA有片内PLL,并有多达16个全局时钟网络为逻辑阵列块、嵌入式存储器块、嵌入式乘法器和输入输出单元提供时钟。M4K嵌入式存储器块由带校验的4K位(4096位)真双口(Ture DualPort)RAM组成,可配置成真双口模式、简单双口模式或单口模式的存储器,位宽最高可达36位,存取速度最高260MHz。M4K嵌入式存储器分布于逻辑阵列块之间。Cyclone II系列FPGA的M4K嵌入式存储器的容量为119K1152K位不等。每个嵌入式乘法器可以配置成两个99或一个1818的乘法器,处理速度最高可达250MHz。Cyclone II
33、的嵌入式乘法器在FPGA上按列排列。输入输出单元排列在逻辑阵列块的行或列的末端,可以提供各种类型的单端或差分逻辑输入输出。2.3 Quartus II简介 Quartus II 是Altera公司在MAX PLUS II基础上研发出的新一代PLD开发软件。它具有易学易用、运行速度快、可视化、集成化设计环境等优点,支持原理图、VHDL、Verilog HDL及AHDL等多种设计输入形式,内嵌自有的综合器以及仿真器,可以实现从设计输入到硬件配置的完整PLD设计流程。它提供了一种与结构无关的设计环境,使得设计人员无须精通器件的内部结构,只需运用自己熟悉的输入工具(原理图输入或高级行为描述语言)进行设
34、计15。Quartus II系统把这些设计转换成最终结构所需的格式,供实际使用。2.3.1 Quartus II的设计输入方法Quartus II具有多种设计输入方法,如原理图输入、VHDL、Verilog HDL及AHDL等多种设计输入形式。现在对应用比较多的两种输入形式做以介绍。原理图输入法。如图8所示,这是一种最为直接的输入方法,用Quartus II图库里提供的各种原理图库进行设计输入。采用这种方法的时候,可以从上到下将逻辑分块,即把大规模的电路划分成若干小块的方法,这样可以提高输入效率。图8 原理图输入界面硬件描述语言HDL输入法。这也是本次设计将用到的方法。Quartus II平台
35、支持VHDL,Verilog HDL及AHDL 等多种语言描述。这种输入方法的优点是输入效率高,结果易仿真,信号易观察。但语言输入必须依赖综合器,只有好的综合器才能把语言综合成优化的电路,因此对综合器的要求较高。这种方法适用于大量的规范的、易于用语言描述的、易于综合的电路设计,如图9所示。图9 HDL描述语言输入界面2.3.2 编译和仿真在设计输入完成之后,可继续在Quartus II上对设计进行编译和仿真。FPGA的编译和仿真分两步进行。首先是功能的验证。电路设计输入完成后先需要检查输入是否正确,Quartus II提供了功能编译的选项。此时的仿真由于未作布局布线,故其中不含延时信息,而且可
36、以预测所有信号,故对于初步功能的检测非常方便,只需加入激励信号,即自设的时钟信号,观察各个节点的信号,看与预测是否相同,并进行修正。功能检测完成后,需要进行后仿真。选择带有延时的完全编译。对每一个设计项目的ACF配置文件里的参数进行修改,包括器件的类型、管脚的设置、速率及面积的比重、时间参数要求和布线等设置。编译完成后的仿真就是后仿真。2.4 HDL描述语言简介HDL(Hardware Description Language)即硬件描述语言,这是一种硬件设计人员用来进行电子自动化设计(EDA)的工具。其主要目的是用来编写设计文件,建立电子系统行为级的仿真模型。即在计算机系统和相应的软件上用V
37、erilog HDL或VHDL建模对复杂的数字逻辑进行仿真,然后自动生成相应的数字逻辑网表,根据网表和选定工艺的器件自动生成具体电路,接着生成该工艺条件下上述具体电路德延时模型。仿真验证无误后用于制造ASIC芯片或写入FPGA器件中。在 EDA 技术领域中把用HDL 语言建立的数字模型称为软核(Soft Core),把用HDL 建模和综合后生成的网表称为固核(Hard Core)对这些模块的重复利用缩短了开发时间,提高了产品开发率提高了设计效率。硬件描述语言有多种,如Verilog HDL、VHDL、AHDL等,本次设计将是采用Verilog HDL语言来实现。相比之下,Verilog HDL
38、语言具有语法简单、程序简洁、容易掌握等优点,因而,它是一种被广泛使用的标准硬件描述语言,用于从算法级到开关级得多种抽象设计层次的数字系统建模。被建模的数字系统对象的复杂性可以介于简单的门级和整体的电子数字系统之间。Verilog HDL语言有一套系统的语法规则,并且有许多语法规则跟C语言一致。因此在有C语言基础的情况下去学习Verilog HDL语言比较容易16。具体说来这种行为描述语言具有以下八项功能: 可描述顺序执行或并行执行的程序结构。 用延迟表达式或事件表达式来明确地控制过程的启动时间。 通过命名的事件来触发其它过程里的激活行为或停止行为。 提供了条件、if-else、case、循环程
39、序结构。 提供了可带参数且非零延续时间的任务(task)结构。 提供了可定义新的操作符的函数结构(function)。 提供了用于建立表达式的算术运算符、逻辑运算符、位运算符。 Verilog HDL语言作为一种结构化的语言也非常适合于门级和开关级的模型设计。 Verilog HDL的构造性语句可以精确地建立信号的模型。这是因为在Verilog HDL中,提供了延迟和输出强度的原语来建立精确程度很高的信号模型。信号值可以有不同的的强度,可以通过设定宽范围的模糊值来降低不确定条件的影响。如下即为一段Verilog HDL语言举例。module mux(EN ,IN0 ,IN1 ,IN2 ,IN3
40、 ,SEL ,OUT );input EN ;input 7:0 IN0 ,IN1 ,IN2 ,IN3 ;input 1:0 SEL ;output 7:0 OUT ;reg 7:0 OUT ;always (SEL or EN or IN0 or IN1 or IN2 or IN3 )beginif (EN = 0) OUT = 81b0;elsecase (SEL )0 : OUT = IN0 ;1 : OUT = IN1 ;2 : OUT = IN2 ;3 : OUT = IN3 ;default : OUT = 81b0;endcaseendendmodule这段Verilog HDL
41、语言描述的是一个数据选择器。其中涉及到:模块声明:module endmodule端口定义:input output 信号类型:reg 赋值形式:=常用语法:always语句(时序逻辑、部分组合逻辑)由于Verilog HDL语言使得复杂的芯片变得易于被人脑所理解,同时使得硬件设计变得简单顺利,故传统的原理图设计方法正在被硬件描述语言所取代。3 图像传输系统方案设计3.1 系统总体方案系统总体设计上包括两个模块,即图像采集模块和图像存储模块,又可以分为以下几个部分:图象传感器、A/D准换器、FPGA主控模块、SRAM数据存储器和D/A转换器17。系统的原理框图如下图所示。显示图像传感器图像A/
42、D转换FPGA主控模块SRAM存储器SRAM存储器图像D/A转换图10 系统原理框图该系统中,图像传感器把捕捉外界图像转换成模拟信号,在主控模块FPGA的控制下,该模拟信号经A/D转换后成为数字信号,并被传输到外部存储器SRAM中储存起来,当需要将图像显示出来时,在FPGA的控制下,数字信号经过D/A的转换成模拟信号并传输到外部显示器上。3.2 各模块器件的选择对应系统原理框图,分别选择各部分合适的器件。FPGA芯片。本系统采用Altera公司的CyclonelI系列FPGA(EP2C20Q240C8)作为系统的主控制器,该芯片具有18752个LE,240kbit的内部RAM容量,26个内嵌乘
43、法器单元,4个模拟锁相环等,广泛应用于汽车电子、消费电子、音视频处理、通信以及测试测量等终端产品市场。图11 Cyclone II型FPGA芯片(EP2C20Q240C8)图像传感器。图像传感器选择CMOS黑白摄像头,它输出模拟的黑白视频图像信号给后继的A/D转换器。A/D转换器。本次设计采用一款视频解码芯片SAA7111作为A/D转换。该芯片的引脚如图12所示。SAA7111是philips 公司生产的可编程视频处理器。该芯片集AD 与解码功能于一身,片内附有锁相、自动钳位、自动增益控制、时钟产生、多制式解码等电路,另外,SAA7111还可对亮度、对比度和饱和度进行控制。它既能支持PAL 电
44、视制式,又可支持NTSC电视制式。SAA7111A内部含有I2C 接口,故可通过I2C总线对SAA7111A的工作方式进行设定,可以输出标准的16位VPO数字信号。SAA7111A的场同步信号VREF、行同步信号HREF、奇偶场信号RTS0、象素时钟信号LLC2都可由引脚直接引出,从而可省去时钟同步电路,且其可靠性和方便性也有了很大的提高。图12 芯片SAA7111引脚图SRAM存储芯片。选用ISSI公司的SRAM(IS61LV25616AL)。IS61LV25616AL是ISSI公司的一款容量为256K16的且引脚功能完全兼容的4Mb的异步SRAM,可为Cyclone II提供极大的外围存储
45、空间,也能满足视频图像的存储大容量需求。该款芯片的特点:工作电压3.3伏;访问时间10ns、12ns;芯片容量256K16;封装形式44引脚TSOPII封装,也有48引脚mBGA和44引脚SOJ封装;采用0.18m技术制造。引脚功能A0A17是18位的地址输入线;IO0IO15是16位的三态数据输入输出线;WE写控制线;CE片选信号;OE输出使能信号;LB、HB低字节、高字节使能信号。4 系统各模块的设计现在根据上一章中的总体原理框图逐步来设计各模块的硬件电路图。4.1图像数据采集模块该模块主要负责由FPGA芯片控制图像视频芯片SAA7111,使其处理由CMOS摄像头采集到的模拟图像信号,本次设计使用的是CMOS黑白摄像头,故只考虑图像的亮度信号。SAA7111对模拟图像信号进行提取和转换,获得图像的8位数字信号,同时输出行、场参考信号、行、场同步信号、以及奇偶场标志信号,本次设计采集到的是灰度图像,无色度信号,所以数据线是8位,如图13所示。VPO7-0SAA7111FPGAHREFCREF