基于FPGA帧同步仿真和设计

上传人:阳*** 文档编号:50678504 上传时间:2022-01-21 格式:DOC 页数:40 大小:1.32MB
返回 下载 相关 举报
基于FPGA帧同步仿真和设计_第1页
第1页 / 共40页
基于FPGA帧同步仿真和设计_第2页
第2页 / 共40页
基于FPGA帧同步仿真和设计_第3页
第3页 / 共40页
点击查看更多>>
资源描述
Tianjin University of Technology and Education毕 业 论 文专 业: 电气技术教育 班级学号: 0201 36 学生姓名: 童萌 指导教师: 李韶远 讲师 二七 年 六 月35 / 40文档可自由编辑打印天津工程师范学院本科生毕业论文基于FPGA的帧同步的仿真和设计The simulation and design with FPGA for the framers synchronization专业班级:电气0201学生姓名:童萌指导教师:李韶远 讲师系 别:自动化工程系2007 年 6 月摘 要随着网络的普及和发展,对数据的传输标准也在随之不断的提高。这就在数据的控制问题上提出了更大的要求。在数字信号中,数据一般都是以帧结构存在的,各个时隙的位置可以根据帧定界信号加以识别。因此在数字通信网中,帧同步是同步复接中最重要的部分,它包括帧同步码的产生和帧同步码的识别。文中介绍了二分查找法的工作原理及帧同步的实现过程。在研究运算规则的同时,根据国际光互联论坛制定的甚短距离光传输标准对三种不同的查找方案进行了比较,最终选择二分查找法作为实践对象。其中,基本结构设计上采用了六级并行计算模式,再根据具体步骤制定帧同步的流程图,并以Altera公司开发的EDA工具QuartusII作为编译、仿真平台,完成了帧同步的硬件语言描述,从而达到了对数据结构中帧定界的查找目的。通过对仿真测试和对输出波形的理论分析,证明程序工作正常、方法行之有效,可以满足相关标准及使用要求,并在速度、准确率体现了二分查找算法的优越性。 关键字:帧定界;帧同步码;FPGA;甚短距离光传输ABSTRACTAlong with the universality and developments of the network, the datas delivering standards was also in the immediately continuous exaltation. This put forward the greater request on the control problem of the data. In digital signal, the data invariably existed with the structure of framer, and the each position of the time partition could be located with framer Delimitation. Therefore, in the digital connecting system, the framers synchronization was the most important part, and it included the creation and identification of the framers synchronization code.The essay introduces working principle of the seeking law and the realization of frame synchronization. When research operation is regular, with the standard of very short reach which is made by optical international forum to compare the three different seeking schemes, eventually select the dividing-seeking is practice object. In which, on basic structural design has adopted 6 level parallel calculations pattern, establish the flow chart of frame synchronization again according to specific step, and with the EDA tool of Altera companys development Quartus II action compile and emulate platform, have completed the hardware language of framer synchronization describe, so have reached the delimiter seeking purpose in data structure. Through the emulation test and the theoretical analysis for export waveform, proof program work is normal , has effective method , can satisfy relative standard and use to ask , and has embodied the voluntarily optimize function in the process.Key words: framer Delimitation;the framers synchronization code;FPGA;VSR目 录1 绪论11.1 SDH与帧同步概述11.2 FPGA现状与发展21.3 论文内容介绍32 帧同步42.1 引言42.2 帧数据结构42.3数据传送52.3.1 发送方向的数据传送52.3.2 接收方向的数据传送52.3.3 OC-192帧至数据通道映射52.4 VSR帧同步63 算法原理83.1 引言83.2 OC-192帧同步模块功能描述83.3 帧对齐方案83.3.1 常见帧对齐方案概要83.3.2 帧对齐电路结构性能分析123.3.3 OC-192帧同步模块总体电路结构124 设计与实现134.1研究背景与语言工具简介134.1.1 FPGA概述134.1.2 Verilog HDL语言简介134.1.3 Quartus II仿真环境简介144.2 帧同步算法的设计164.2.1 模块设计174.2.2 设计仿真235 结论266 参考文献277 附录287.1 基于Verilog HDL语言的实体整体描述287.2 二分查找法原理仿真图348 致谢35英文资料及中文翻译1 绪论1.1 SDH与帧同步概述 1986年CCITT(现在的ITU-T)以美国的同步光网络(SONET)为基础开始制定SDH标准。此后陆续通过了一系列关于SDH的建议,到目前为止已形成了一个完整的全球统一的光纤数字通信标准。 SDH传输网具有以下优点: (1)全球通用的光接口标准; (2)一次到位的同步复用方式使传输系统的硬件品种、数量减少; (3)可以简单地升级到更高的速率等级; (4)有丰富的开销可供网络管理使用,具有强有力的标准化网管功能; (5)具有承载诸如ATM(异步传输模式)的能力。SDH/SONET被定义为一些由SDH/SONET网络部件组成的网络。这些形成同步的数字传输、复接、分接和互联。已有全球通用的网络节点接(NNI),从而简化了信号的互通以及信号的传输、复用、交叉连接和交换过程。同时已有一套标准化的信息结构等级即同步传输模块STM,并具有一种块状帧结构,安排了丰富的开销比特用于网络的运行、管理和维护;基本的网络部件有终端复用器(TM)、分插复用器(ADM)和同步数字交叉连接设备(CSDXC)等,其功能各异,但都有统一的光接口,能够在基本光缆上实现横向兼容,允许不止一家设备在光路上互通;已有一套特殊的复用结构,允许PDH和SDH等信号都能进入其帧结构,因而具有广泛的适应性;大量采用软件进行网络配置和控制,使得新功能和新特性的增加比较方便,适应将来的不断发展。随着Internet和SDH/SONET的不断发展,使得越来越多的采用光互联的电信设备放置于同一大楼甚至同一机房内,在这些短距离光互联采用标准SDH/SONET接口器件成本较高,局域网内短距离采用甚短距离光互联系统(VSR)将大大降低成本。VSR-4是OIF(Optical Internetworking Forum光互连论坛)制定的一套协议。这种VSR接口使用OC-192速率和格式,速率为10Gbit/s与长距离接口不同,这种应用不需要一定使用OC-192信号在网络组件间串行传输,而可以把信号映射到一些并行通道里传输(在数根光纤或者单根多模光纤上传输),同时一也可以使用多种光纤和波长。OIF在研究了多种可能的接口后,制定了4种OC-192 VSR协议标准。VSR采用SDH/SONET 帧的接口,用并行光技术来取代昂贵的串行互联,使业务提供者可以低成本有效地解决客户在入网点内部传送STM-64/OC-192帧格式数据。VSR传输设备用由12只850nm垂直腔面发射激光器(VCSEL)组成的激光器阵来代替传统的串行单激光器接口传输10Gbit/s数据。同步是通信系统中一个重要的实际问题。数字通信中的消息数字流总是用若干码元组成一个“字”,又用若干“字”组成一“句”。因此,在接收这些数字流时,必须知道这些“字”、“句”的起止时刻,在接收端产生与“字”、“句”起止时刻相一致的定时脉冲序列,称为“字”同步和“句”同步,统称为帧同步或群同步。可以说,在同步通信系统中,“同步”是进行信息传输的前提,这就要求同步系统应有高的可靠性。为了更加有效地利用信道,将低速数据合成一路高速数据传输,为了保证接收端能和发送端一致,必须有一个帧同步系统以实现发送端和接收端的帧同步。实现帧同步的基本方法是在发送端循环地插入帧同步码组,接收端通过检测该帧同步码组以达到帧同步。帧同步系统是由发送端的帧同步码组产生电路和插入电路以及接收端的帧同步电路所组成,而帧同步电路的结构对同步性能的影响是主要的。1.2 FPGA现状与发展过去,通常使用电路原理图来实现群同步算法,如:逐比特移位法和预置启动搜索法,设计都较复杂,要求设计者有丰富的硬件电路设计经验,要很熟悉器件的结构及功能,设计时间较长,维护工作也很困难。本文使用Verilog HDL语言编写程序代码,经过综合、仿真和优化等过程,最终将产生的门级网络表用开发工具自动写入到芯片中,以代替传统原理图来实现群同步算法,主要原因有:Verilog HDL具有强大的语言结构,是一种集设计、模拟、综合为一体的标准硬件描述语言,设计灵活,可以用模拟器来验证程序的功能和时序的正确性;不要求设计者非常熟悉器件的内部结构,使得设计者可以集中精力从事设计构思;Verilog HDL程序可读性较好,可以在各EDA平台上运行,具有良好的可移植性和维护性;Verilog HDL的设计可以与工艺无关。FPGA/CPLD是20世纪90年代发展起来的大规模可编程逻辑器件,随着EDA技术和微电子技术的进步,FPGA的时钟延迟可达到ns级,结合其并行工作方式,在超高速、实时测控方面有非常广阔的应用前景;并且FPGA具有高集成度、高可靠性,几乎可以将整个设计系统下载于同一芯片中,实现所谓片上系统,从而大大缩小其体积,因此以FPGA/CPLD为代表的可编程逻辑器件受到了世界范围内广大电子设计工程师的普遍欢迎,应用日益广泛。在国外,FPGA的技术发展与应用已达到相当高的程度;在国内,FPGA技术发展十分迅速,然而与国外相比还存存较大的差距。此外,传统的数字设计一般采用积木式方法进行,即由器件搭成电路板,由电路板达成数字系统常用的积木块是固定功能的标准集成电路,设计者需要根据需要选择合适的器件,再由期间组成电路板最终完成设计。传统的数字系统设计只能对电路板进行设计,通过设计电路板来实现系统功能。采用可编程逻辑器件通过对器件内部的设计来实现系统功能,是一种基于芯片的设计方法。设计者可以根据需要定义器件的内部逻辑和引出端。将电路板大部分的设计工作放在对逻辑器件的设计中进行,通过对芯片设计来完成数字系统的逻辑功能。灵活的内部功能块组合、引出端定义等,可大大减少电路设计和电路板设计的工作量和难度,有效的增强设计的灵活性,提高生产效率。基于芯片的设计方法可以减少芯片的数量,缩小系统体积,降低能源消耗,提高系统性能和可靠性。1.3 论文内容介绍第一章 引言部分:从课题背景出发,介绍帧同步技术的发展趋势及总体研究过程和规划;第二章 介绍帧结构以及实际应用当中的数据传输方案以及与帧的关系。由浅入深的引入帧同步的概念,并结合其原理简要介绍一些数据传输与接收方面的工作特点。硬件以及硬件描述语言(Verilog HDL);第三章 着重介绍帧同步的查找方案,对不同方案进行比对,从优而择,确定论文的研究方向。介绍与其相关的硬件电路结构知识。第四章 简要介绍设计多许的硬件设备和软件环境,从分段的角度出发,结合模块化的语言描述从不同侧面剖析二分法原理的实现过程,演示比对仿真结果。第五章 对本次设计的结论及展望。比较基于原理算法所设计的程序的优缺点。2 帧同步2.1 引言在数字网络中,为了扩大传输容量,提高信道利用率,常常需要把若干个低速数字信号合并成一个高速数字信号,然后通过高速信道传输,数字复接就是实现这种数字信号合并的专门技术。数字复接把低速数字信号合并为高速信号;相反,在接收端,要用分接器把发送端数字信号分解为原来的支路数字信号。为保证分接器的帧状态相对于复接器的帧状态能获得并保持相位关系,以便正确地实施分接,在合路数字信号中还必须循环插入帧定位信号,因此在合路数字信号中,也就存在以帧为单位的结构,各个数字时隙的位置可以根据帧定位信号加以识别。因此在数字通信网中,帧同步是同步复接设备中最重要的部分,它包括帧同步码的产生和帧同步码的识别,其中接收端的帧同步识别电路的结构对同步性能的影响是主要的因素。2.2 帧数据结构VSR4-01.0接口的性能目标是利用基于850nm的VCSEL的并行光收发技术,通过300m长的多模带状光纤实现OC-192帧结构数据(见图2-l)的双向传输。因为采用并行收发技术,所以,必须定义OC-192帧映射到并行发送通道以及在并行接收端重组OC-192帧的方法,使VSF4-01.0接口获得实际应用并实现不同厂商之间产品的互联互通。图2-l OC-192帧结构数据2.3数据传送2.3.1 发送方向的数据传送发送方向功能框图见图2-2。来自OC-192成帧器的16路622Mbit/s数据是字节对准的,它们与622MHz时钟同步,传送的12路1.244Gbit/s高速数据也与622MHz时钟信号同步。图2-2 发送方向数据加工流程图2.3.2 接收方向的数据传送在接收方向(见图2-3),来自12个并行光纤的光信号被并行光接收模块转换为1.244Gbit/s的电信号进入转换集成电路的接收部分,它从每个通道的1.244Gbit/s数据流中恢复出各自的时钟并进行1:10串并转换,经帧同步后,对12路并行数据流进行8B10B解码,并利用每个数据流中的帧定界符进行帧对齐,即去除通道间经传输后造成的延时差别(接收部分通道间延时差别容忍度不小于80ns)。转换集成电路使用一个算法找出帧定界符,10个数据通道的帧定界符被A1字节覆盖,恢复成原来的OC-192帧。转换集成电路最后把数据通道重组为16路622Mbit/s的并行数据。图2-3 接收方向数据加工流程图2.3.3 OC-192帧至数据通道映射输入的16路622Mbit/s数据经过帧定位和字节分接后分配到10个数据通道(如图2-4所示)。OC-192帧的第一个A1字节(AI, A2为帧同步码字)必须在通道1传输,后续字节顺序分配在余下的数据通道中。OC-192成帧器提供的622MHz时钟信号用于产生1.244GHz时钟信号,送给并/串转换电路。图2-4 OC-192成帧器适配到数据通道2.4 VSR帧同步在数字通信系统中,同步具有相当重要的地位,系统能否有效、可靠地工作,在很大程度上取决于是否有良好的同步系统。所谓帧同步就是指收方应当从收到的比特流中准确的区分帧的起始与终止,即是使收、发两端的各路时隙脉冲相对应并保持一致 , 从而保证各路数据进行正确地传输和接收,不致发生收发通路间的混乱。帧同步可采用同步码组插入/检测、弹性缓冲器的方法来实现。帧同步必须以频率同步为前提, 只有在频率取得同步的情况下才能实现帧同步。在多路复用技术中,帧同步的作用是使在接收端的时隙脉冲排列规律和接收到的数据流中的时序排列规律一致,以保证正确无误地进行分路。一般通信系统设计中,同步单元电路大多以标准逻辑门设计为主,电路具有体积大,功耗大,可靠性低等缺点。而可编程器件的广泛应用,为数字系统的设计带来了极大的灵活性。由于可编程逻辑器件可以通过软件编程对硬件的结构和工作方式进行重构,使得硬件的设计可以如同软件设计那样快捷方便。当今高速发展的FPGA/CPLD兼有串、并行工作方式和高速、高可靠性的特点,并可以结合具有强大的行为描述能力和丰富的仿真语句的VHDL语言进行描述,使其在电子系统设计中得到广泛的应用。本文给出了一种由全数字电路构成的帧同步电路,并且采用FPGA技术,实现了帧同步电路的数字化、集成化帧同步器工作原理。 由于传输媒体的并行特性,每个数据通道到达接收端时可能会有不同的传输时延,为在接收端进行12个通道的帧同步和数据对齐,需要插入帧定界符。通道1-10的前三个A1字节和检错、纠错通道相应位置的数据应该用二个8B10B特殊码字覆盖(表2-1),通道1-6和通道7-12帧定界符不一样,使接收端可以识别通道顺序,第一个Al字节由K28.5覆盖,第二个A1字节由D3.1(通道I-6)或D21.2(通道7-12)覆盖,第二个A1字节由K28.5覆盖。 表2-1 帧定界符中的8B/10B码字码字名称16进制值RD+RD-abcdei fghjabcdei fghjK28.5BC001111 1010110000 0101D3.1(Ch.1-6)23110001 1001110001 1001D21.2(Ch.7-12)23101010 0101101010 01013 算法原理3.1 引言 发送方向集成电路用于将QC-192成帧器的输出数据进行通道映射与重组,转换成适合于并行传输的数据流。其总体功能与模块划分在前两章中分别有所描述。本章详细讨论了转换集成电路发送方向上OC-192帧同步模块、延时存储和检错,并对部分模块的电路结构和设计参数选择进行了讨论和优化。3.2 OC-192帧同步模块功能描述 从SDH测试仪发送的OC-192帧结构数据经10Gbit/s Transponder光模块串并转换成16路622Mbit/s数据送给转换集成电路。此时,SDH帧首比特不能保证出现在16比特数据的最高位(MSB),而是随机等概率的出现在16比特中的任意一位。同理,经过FPGA 的1:10串并的数据,SDH帧首比特等概率的出现在160比特数据的任意一位。这就要求发送方向FPGA中必须包含一个帧同步电路功能模块,它能够搜索数据流中SDH帧同步字符,使帧的首比特出现在160比特数据的最高位,使数据对齐,并给出帧同步信号,指示帧头的位置。3.3 帧对齐方案3.3.1 常见帧对齐方案概要(1)由简单并行帧对齐电路构成的帧对齐方案对于OC-192速率等级,首先经串并转换将串行数据扩展为160位并行数据,然后采用159位宽数据寄存器寄存上一周期的数据,并和当前周期的160位数据同时输出,得到一个319位宽的数据,这样每一时钟周期都有近一半的数据是和上一周期相重复的。接下来搜索SDH帧同步字符的位置。方法是采用159个20位比较器与帧同步字符比较,当帧同步字符与待比较数据相等的时候,该比较器给出指示信号,表示找到了帧同步字符在160位数据中的位置。随后的159-8编码器锁存该位置信号并输出8位二进制编码的位置指示信号给通道选择器。通道选择器根据同步码组的具体位置从319位的数据中选择出需要的对齐帧数据。该方案理论上对高、低速率均适用。但对于OC-192这样的高速数据流,如果采用FPGA实现,需要使用159个20位比较器(码组和比较器位数的选择在后面有讨论)和一个319:160选择器(功能见表3-1)。此种选择器不仅电路规模较大,而且延时太大,其延时和电路规模随控制码最大值的增加而增大。经仿真延时超过一个时钟周期(指10GHz1/60=62.2MHz时钟),不能满足电路实现需要。表3-1 319:160选择器功能表输入数据DATA_IN控制码输出数据DATA_OUTD_IN318:00D_OUT= D_IN159:01D_OUT= D_IN160:12D_OUT= D_IN161:2D_OUT= D_IN318:0159D_OUT= D_IN318:159(2)基于字节比较的帧对齐方案 先利用AlA2(A1为11110110、A2为00101000)的7种不同位置将160位的数据按字节的边界对齐,然后再利用AlA2的交界来判定帧头的正确位置。由于在OC-192帧结构中有192个A1,按16位的并行数据计算,在一帧数据到来的时候,将有至少8个周期的数据全是A1。虽然,一帧中的首比特可能出现在160位数据的任意一位,但随后8个周期数据(全是有可能没对齐的A1)的任意8位一定是11110110,11101101,11011011.01111011等7种排列中的一种。因此可以任选160位数据上的某一位置,用7个比较器找出A1的位置,然后根据位置信息利用167:160数据选择器(控制码值域:0-6)使输入的数据在每个字节的边界上对齐。接下来再对160位字节对齐的数据进行处理,判断每个字节的数据是A1还是A2。因为如果某一周期数据是AIA2交界时,前一周期的数据必定全是A1,本周期的数据高位是A1、低位是A2。这样可以利用比较得到的A1A2交界的位置和帧对齐情况下AlA2交界的位置的对比来控制312:160选择器(控制码值域:0-19),从而得到正确的重排数据。对这一方法的简单改进是在字节对齐的模块中,将167:160数据选择器用一个3位的计数器来控制,每次选择某一通道输出,而将A1的比较器放在数据选择器后面。当比较器发现某一种通道选择正好是A1对齐的情况时就锁住通道选择的计数器。这一改进省去了6个比较器。(3)基于二分查找的帧对齐方案 改进的字节对齐方法虽然已经能够适应大部分的应用需要,但是仍有改进的余地。为了进一步提高速度,减少资源消耗,本文提出了一种基于二分查找的帧对齐方法。该方法的核心思想是,将输入的数据流看成是一个待查找的数组,而帧定位符就是待查找的数据。由于对于排序数组的最快查找方法是二分查找法,故这里将二分查找的思想应用于数字逻辑电路中,得到了优化的帧搜索对齐方法。这样,每次对齐只需经过一个二选一的选择器,系统由以2为底的N的对数级选择器构成,虽然总的级数增加了,但电路结构却变得简单了。 二分查找法是建立在己排序的数组基础上,故形成排序的数组是该电路的一个关键部分,排序的数组采用一个简单的并行异或结构来实现。由于在OC-192帧结构中,有192个连续的A1和A2,所以在160位的数据位宽下应该至少有持续8个周期是同样的数据,这样前一个周期的值和后一个周期的值异或的结果必定是全0;而一旦有A2出现的周期到来,异或的结果就不是全0,其中第一个1的位置就代表了A1A2的交界。因为数据位宽是8的整数倍,所以尽管160位的数据中A1不一定是按字节对准的,但在前后两个周期相异或的时候,如果两个周期数据都是A1,则异或的结果必定全是0。(不考虑误码的影响)。图3-1给出了一种A1不是字节对准的情况,第二个周期是A1和A2的混合,则异或以后数据就是。0000_ 11011110_ 11011110,其中第一个1的位置就代表了A1和A2的交界。第一周期:10110111 10110111 10110111 1第二周期:10110111 10110 0异或结果:00 1图3-1 帧定位数据产生基于上述方法,在实现帧同步电路的时候就不必要去比较帧同步字符,而只要在一个起始都是0的数字序列中采用二分查找法找到第一个1的位置。该电路由三部分组成(见图3-2)。异或定位模块用来产生帧定位的数据;二分查找模块找到并指示AlA2交界处在160位数据中的位置:选择器模块选出帧对齐的数据。图3-2 二分查找帧同步模块组成异或定位模块由一个和数据位宽相等的并行异或门,一个判断是否为0的比较器以及一个计数器等组成,见图3-3。异或门将每个周期和上一个周期的数据进行异或后寄存,比较器判断异或结果是否全为0,当为。时计数器开始计数。如果连续8个周期都是0,当下一个不是0的数据到来时寄存器将该异或结果锁存。图3-3 异或定位模块二分查找模块查找A1A2交界处的位置,并输出指示其位置信息的二进制编码。观察异或结果不全为0的部分,发现没有超过两位全0的组合,故每次查找所用比较器只需两位(实际用或门实现,见图3-4)。第一步判断锁存的异或结果中间79和80位是否全0,如果不是,表示要找的AlA2交界处在158-80位间,否则就在78-0位间,因此第一级MUX根据比较结果选择79位作为下一级的数据,同时产生通道选择的第一位信号。依此类推,最后6位控制信号全部产生。图3-4二分查找模块原理图选择器根据二分查找模块输出的二进制编码进行选择。每一级通道选择器寄存上一周期的低位数据,根据所给控制信号选择输出。3.3.2 帧对齐电路结构性能分析由于本系统功能是基于FPGA实现的,故很多电路都针对FPGA的结构进行了优化。如查找判定的时候,每次只用两位的比较器,这样和两个数据通道刚好构成一个LUT的输入;利用FPGA中寄存器比较多的情况,所有的操作都形成流水线结构,各寄存器间延时非常小,利用Quartus II软件在Altera各种不同系列的FPGA中编译和仿真都显示电路基本上可以工作到FPGA的上限速度。3.3.3 OC-192帧同步模块总体电路结构OC-192帧同步电路模块的框图和接口定义见图3-5和表3-2图3-5 OC-192 帧同步电路表3-2 OC-192帧同步电路信号端口名方向位宽功能定义Reset输入1模块异步复位信号,1上升沿有效Clk输入1模块时钟输入,频率62.2MHzD_IN输入160未对齐帧数据输入Fr输出1帧同步信号脉冲,在数据前一个周期置高Lock输出1帧数据输出,当Lock高时数据有效D_OUT输出160帧数据有效输出,表示系统锁定在同步状态4 设计与实现4.1研究背景与语言工具简介4.1.1 FPGA概述FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA采用了逻辑单元阵列LCA (Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB (Configurable Logic Block)、输出输入模块IOB (Input Output Block)和内部连线三个部分。FPGA的基本特点主要有: (1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。 (2)FPGA可做其它全定制或半定制ASIC电路的中试样片。 (3)FPGA内部有丰富的触发器和IO引脚。 (4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。(5)FPGA采用高速CMOS工艺,功耗低,可以与CMOS、TTL电平兼容。可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。目前FPGA的品种很多,有XILINX的XC系列、TI公司的TPC系列、ALTERA公司的FIEX系列等。对于FPGA而言,现场可编程门阵列技术出现于二十年前,而在近几年其技术发展的日益加快。这种基于EDA技术的芯片正在成为电子系统设计的主流。大规模可编程逻辑器件FPGA是当今应用最广泛的可编程专用集成电路(ASIC)。设计人员利用它可以在办公室或实验室里设计出所需的专用集成电路,从而大大缩短了产品上市时间,降低了开发成本。此外,FPGA还具有静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改。因此,FPGA技术的应用前景非常广阔。4.1.2 Verilog HDL语言简介硬件描述语言的发展至今已经有20多年的历史。现在主要的语言VHDL (Very High Speed Integerated Hardware Description Language)和Verilog HDL (Verilog Hardware Description Language)适应了历史发展的趋势和要求,先后成为IEEE标准。硬件描述语言HDL (Hardware Description Language)是一种用形式化的方法来描述数字电路和系统的语言。数字电路系统的设计者利用这种语言可以从上层到下层(从抽象到具体),逐层描述自己的设计思想,用一系列分层次的模块来表示极为复杂的数字系统。然后利用EDA工具逐层进行仿真验证,再把其中需要变成具体物理电路的模块组合经由自动综合工具转换成门级电路网表。接下来用专用集成电路(ASIC)或现场可编程门阵列(FPGA)自动布局布线工具把网表转换成具体的电路布线结构。 此外,利用HDL语言,时结合下文Top-Down的设计方法,在整个设计进程上有如下四大优点:(1)在Top-Down自顶而下的设计过程中,每一步都可以进行仿真,可以在系统设计过程中发现存在的问题,可以大大缩短设计周期,降低费用,使电路设计更趋合理,其体积和功耗也可减小。(2)采用HDL语言,就可免除编写逻辑表达式和真值表的过程,是设计难度大大降低,从而可以缩短设计周期。(3)采用HDL语言设计系统营建电路时,主要的设计文件是用HDL语言编写的源程序,也可以将HDL语言编写的源程序转化成电路原理图形式输出,降低了营建电路的设计难度。(4)采用HDL语言的源程序作为归档文件的资料量小,便于保存,可继承性好。4.1.3 Quartus II仿真环境简介传统的设计手段是采用原理图输入的方式进行的(见图4-1)。十几年前,当时所做的复杂数字逻辑电路及系统的设计规模比较小也比较简单,其中所用到的FPGA或ASIC设计工作往往只能采用厂家提供的专用电路图输入工具来进行。为了满足设计性能指标,工程师往往需要花费好几天或更长时间进行艰苦的手工布线。工程师还得非常熟悉所选器件的内部结构和外部引线特点,才能达到设计要求。这种低水平的设计方法大大延长了设计周期。但是,设计人员不可能在刚开始的时候,就清楚地知道本次工程采用哪一个FPGA/CPLD厂商的哪一特定型号器件,而设计往往是从功能描述开始的。设计人员首先要考虑规划出能完成某一具体功能、满足自己产品系统设计要求的某一功能模块,利用某种方式(如HDL硬件描述语言)把功能描述出来,通过功能仿真以验证设计思路的正确性。当所设计功能满足需要时,再考虑以何种方式(即逻辑综合过程)完成所需要的设计,井能直接使用功能定义的描述。这就是自顶而下(Top-Down)的设计方法(见图4-2)。 图4-1原理图输入法图 图4-2 自顶而下(Top-Down)的设计方法在本篇设计中,主要利用Altera公司的Quartus II软件进行程序的设计及仿真,Quartus II是Altera公司推出的一款CPLD/FPGA开发工具,Quartus II提供了完全集成的、且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,其优点体现在如下几个方面:(1)在程序设计方面可利用原理图、结构框图以及多种语言完成电路描述,并将其保存为设计实体文件;支持芯片(电路)平面布局连线编辑,使用机极其方便。(2)该软件拥有功能强大的逻辑综合工具以及完备的电路功能仿真与时序逻辑仿真工具,支持时序分析与关键路径延时分析,并可使用Signal Tap II逻辑分析工具进行嵌入式的逻辑分析。(3)系统支持软件源文件的添加和创建,并将它们链接起来生成编程文件;使用组合编译方式可一次完成整体设计流程;自动定位编译错误;高效的期间编程与验证工具。(4)可读入标准的EDIF网表文件、VHDL网表文件和Verilog HDL网表文件,并且能生成第三方EDA软件使用的VHDL网表文件和Verilog HDL网表文件。Altera公司的Quartus II 工程设计软件提供完整的多平台设计环境,它可以轻易满足特定设计的需要。它是可编程片上系统(SOPC)设计的综合性环境。Quartus II工程软件拥有FPGA和CPLD设计的所有阶段的解决方案。有关Quartus II设计流程的图示说明,请参见图4-3:图4-3 Quartus II设计流程4.2 帧同步算法的设计为实现帧同步的有效控制,在上一章中对于三种控制算法进行了相应的比较。通过一步步的论证与分析,我们发现在对高速率的数据流进行控制时,准确率与即时的运行速度是两大重要指标。所以在满足这一基本标准的基础上,我们力求硬件电路的最简化,由此得出了以二分查找法为基础的数据控制方案,并在这一章节中给出具体的软件实现以仿真结果的论述。通过对二分法原理的分析得知,其主要工作原理是基于对目标数据的分析和计算构成的,主要工作过程则是将数据分为上下两个半段并判断待查找的有效字节的分布情况,根据反馈的控制信号将反馈的控制信号作为下一级输入数据的控制信号,这样周期性的运算结果即可达到缩小目标范围的目的。在本课题中,我们正是应用了二分查找法的这一特点,对待测数据进行分析,以达到帧同步的目的。4.2.1 模块设计在运算过程中,由于VSR4-1.0的标准以及SONET帧结构的定义所限,设计中的第一级数据输入为一个160位的并行数据输入包,通过计算我们将把他划分为上下各为80位的两个数据段,通过控制信号的运算和处理将摒弃其中之一作为下一级的输入,然后在160位的数据流中提取中间两为(以160位数据为例则是第79 和第80位),最后通过对中间两位的异或运算得到相关控制信号,再将这个二进制的控制信号反向传入分段后的数据控制器中,用于对上下两个分段选择的控制。简言之,整个运算过程通过对数据的分段、计算、判断和控制逐级的对数据进行分析以达到缩小范围、精确查找的目的。整体结构图如下所示:图4-4 整体结构模块示意图(1)分段模块 在分段模块中,其具体的工作则是将输入的有效数据按其长度分为上下的两个半段,为以后的数据输出控制作好准备(模块示意图见图4-5、4-6),具体程序如下所示:module max11(a,y3,y4,y5);input159:0a;output79:0y3,y4;output y5;wire 79:0y3,y4;wire y5;assign y3=a159:80;assign y4=a79:0;assign y5=a80&a79;endmodule图4-5 分段模块的模块化示意图图4-6 分段模块原理结构图在上述程序中,实体max11的输入量a则作为整体运算流程的输入量输入到程序之中。通过分段处理,将a分成了上下两个部分,分别包括了其前后各80位的数据,由于在本设计中工作流程共被分为六级,而前五级的工作方式完全相同,只是在程序中的输入数据的初始化长度的定义上有些改动而已,通过上章中对二分法原理的分析可知,在前五级中输入数据的长度分别为160、80、40、20、10,通过观察可知,每一级的输入数据长度均为前一级的二分之一,这是由于在每一级控制信号的存在,通过计算和控制,它将输入中的两段数据中的一段摒弃,而相应的将另一段进行了输出,得到了这样的结果。(2)判断模块在判断模块中,主要的工作重点则是将上一环节中的输出数据进行筛选性计算,提取中间两位(即分段后上半段数据的末位和下半段数据的首位)做固定运算(判断示意图详见图4-7)。得到控制位后,利用控制位的数值选择输出数据,并即时输出至下一环节。module max12 (y5,y6,y7,sel);input79:0 y5;input79:0 y6;input sel;output79:0 y7;reg 79:0 y7;always (sel or y5 or y6)beginif(sel= =1)y7=y5;elsey7=y6;endendmodule图4-7 判断模块的模块化示意图(3)输出模块作为一级计算电路中的最后一个部分,在输出模块中已经没有计算或判断的工作。输出模块的主要任务则是根据时钟的输入将结果输出至下一级,进行下一个周期的计算。程序及结构示意图如下所示:module max13 (a,b,clk);input clk;input79:0 a;output79:0 b;reg 79:0 b;always ( posedge clk )beginif(clk)b=a;endendmodule图4-8 输出模块的模块化示意图图4-9 输出模块原理结构图将上述程序进行打包编译后,在Quartus II编辑环境下可以得到仿真实现后的元器件符号,如图所示。其中打包后的程序模块与其实体名保持一致,再次编译成功后可在该环境下进行连接。这样操作使程序结构化突出,操作简便,更有利于后期的调试和他人的阅读。(4)第六级计算单元模块在经过前五级的数据运算之后,在第五级的输出段会输出一个长度为5的数据段,由于该数据流由奇数个位数据构成,所以无法再进行二分查找。由此,我们在第五级后追加了一级专门为奇数位位长的数据设计的查找模块。与二分发不同的是,在这个模块中将出现于前五级中的三个模块简化为了两个。在完成整个计算过程中,我们将其分成两大部分。在第一部分中,功能模块对整体输入的五位数据进行查表。由于数据是由五位构成,故由排列组合可知共有32中不同的搭配情况。但根据VSR的工作及传输特性,同时考虑到传输中的误码,可能出现的情况共计19种(如表4-1所示)。根据VSR4-1.0的定义以及帧头与A1字节的一伙结果的特点,我们总结出第六级控制字的返回值与输入码的对应标准。该控制字的主要作用是在排除了传输误差的条件下,反映出五位中第一个1的出现位置,并对应该位置,在其原有的五级计算结果上加上一个偏移量,最终的结果即为帧头所在位的坐标值。表4-1 控制字返回值与输入码的对应标准第六级输入码字(五位)控制字返回值1 X X X X0X 1 X X X1X X 1 X X2X X X 1 X3X X X X 14注:上表中“X”表示任意值。其中第六级计算单元模块的计算程序及模块示意图如下所示:module b(y, in_data);input4:0 in_data;output y;reg y;alwaysbegin case (in_data) 5b00001: y = 4; 5b00010: y = 3; 5b00011: y = 3; 5b00101: y = 2; 5b00110: y = 2; 5b00111: y = 2; 5b01010: y = 1; 5b01011: y = 1; 5b01101: y = 1; 5b01110: y = 1; 5b01111: y = 1; 5b10101: y = 0; 5b10110: y = 0; 5b10111: y = 0; 5b11010: y = 0; 5b11011: y = 0; 5b11101: y = 0; 5b11110: y = 0; 5b11111: y =0; default: y = 9; endcaseendendmodule图4-10 第六级计算查表单元的模块化示意图在第二部分中,经过对数据的查表得知y的输出值,此时的y作为一个待计算量输入至下一单元模块。在该模块中,它将综合之前五级所得到的控制字,计算出的A1A2分界点的的坐标值,最终连同帧头一齐输出,完成对一帧数据的查找工作。需要说明的是,当在前一帧进入的数据中没有找到帧头时,其控制字的输出是为0的。此时,寄存在计算单元内部的数据会被视为无效字码而被忽略。从而进行对下一帧数据的查找。主要程序如下:module c(y1,y2,y3,y4,y5,y,out_data);input y1,y2,y3,y4,y5;input y;output out_data;assign out_data = 80*y1+40*y2+20*y3+10*y4+5*y5+y;endmodule图4-11 第六级计算控制单元的模块化示意图在上述程序中我们注意到,出现了一个计算公式的赋值运算行。实际上,这一行语句的作用主要体现在整个程序的最终运行调试与实际演示上,即为了让其更容易观察该程序的运行结果,我们将其制作成一个以二进制和十进制同时表达输出的端口。在仿真环境下,它可以直观的反映出A1A2帧头的位置。同时,我们还可以将其转化成为一个的二进制序列进行并行输出,这个二进制序列直接反映了该程序前五级所产生的控制信号。并通过输出,最终达到控制帧头输出的目的。4.2.2 设计仿真借助Quartus II软件,我们可以进行下一步的在线仿真工作。由于在之前的章节中已经介绍了Quartus II软件,故在此不再赘述。启动Quartus II软件,在其设计平台上编辑已完成的程序并进行编译。在编译无误的情况下(少量的非严重性警告是可以忽略的),进入仿真界面。通过新建一个波形输出文件(Vector Waveform File),我们可以实现程序与仿真环境的内部连接,即在同一工程文件下实现语言文件和波形文件中的输入输出的关联。使其在试验仿真阶段可以在运行上实现与整体程序保持同步。在分别定义了输入与输出的类型及位宽等相关参数后,再次通过对语言和波形输出文件保存和编译,即可,正式开始仿真。仿真工作主要分四步完成:(1)建立新的波形输出文件,定义输入输出,通过设置输入输出特性参数定义和约束其变化和计算。再本设计中输入输出仿真分配情况如表4-2所示:(2)保存现有设置,对文件设定输入值,为演示方便在输入160位的数值时我们对两个特定点进行测试,这两个点分别带表不同的A1A2的位置,故在此位之后均将数据的输入值设置为全1的搭配组合。二次编译,报告无误后进行输出波形仿真,观察输出波形以及输出数值。第一次测试:A1A2的交界点设置为127位处,观察输出波形详见图4-12:第二次测试:A1A2的交界点设置为37位处,观察输出波形详见图4-13:表4-2 输入输出仿真分配表端口名称数值类型端口类型位宽显示方式a9-leverinput160binaryClk9-leverinput/binaryy39-leveroutput1binaryy79-leveroutput1binaryy119-leveroutput1binaryy159-leveroutput1binaryy199-leveroutput1binaryout_data9-leveroutput8Binary/Decimal图4-12 A1A2交界点为127位处的波形输出图4-13 A1A2交界点为37位处的波形输出(3)波形分析及指标验证观察现有输出波形,可以看到在前五级的实时响应中,在计算的开始时期(21ns处)都存在着不同程度的计算误差。而造成误差的主要原因是因为整个实体的结构定义是由六个串行的计算单元构成。而在工作过程中,每一级的计算结果又作为输入加载至下一级,最终形成了整个实体。正是由于这样的串行结构,造成了在计算过程中的初始阶段输出控制判断信号结果的误差,随之转入正常。从波形输出和多次的仿真结果上看,这样的时间滞后是可以忽略的。由于在VSR4的协议定义中,数据的传输速度为1.244Gbit/s,而数据是通过10个通道进行传输的。结合传输的比特速率,可以得出其实时响应速度要求完全符合标准。20nm的误差时间远低于判断信号控制输出时间,也就是说,即使在时间上存在一定计算偏差和滞后对于控制的正确性和及时性也是没有影响的。综上所述,通过对程序的规划、测试和验证可以得出:程序在时间上完全可以达到VSR4协议标准。在非传输错误的情况下,其计算的正确率也可达到100%。由此可见,该程序完全可以达到控制和寻找帧定界的目的。5 结论本设计及波形仿真均选用Altera公司的QuartusII 5.0作为开发平台,并采用Verilog HDL编程语言。文中程序已通过了综合实验,并进行了功能仿真和时序仿真,仿真结果正确。程序在时间上完全可以达到VSR4-01.0协议标
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 其他分类 > 论文指导


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!