PCIE接口8B10B编解码的实现.docx
- 文档编号:29404247
- 上传时间:2023-07-23
- 格式:DOCX
- 页数:66
- 大小:519.49KB
PCIE接口8B10B编解码的实现.docx
《PCIE接口8B10B编解码的实现.docx》由会员分享,可在线阅读,更多相关《PCIE接口8B10B编解码的实现.docx(66页珍藏版)》请在冰豆网上搜索。
PCIE接口8B10B编解码的实现
学位论文原创性声明
本人郑重声明:
所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注应用的内容外,本文不包括任何其他个人或集体已经发表或撰写的成果作品,本人完全意识到本声明的法律后果由本人承担。
作者签名:
年月日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保障、使用学位论文的规定,同意学校保留并向有关学位论文管理部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权省级优秀学士论文评选机构将本学位论文的全部或部分内容编入有关数据进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
本学位论文属于1、保密囗,在年解密后适用本授权书
2、不保密囗。
(请在以上相应方框内打“√”)
作者签名:
年月日
导师签名:
年月日
本科生毕业设计(论文)任务书
学生姓名专业班级
指导教师工作单位
设计(论文)题目:
基于QuartusII的PCIE接口的编解码原理及其实现
设计(论文)主要内容:
1.熟悉了解PCIE接口的结构及特点。
2.学习并掌握PCIE接口中所使用的8b/10b编、解码原理。
3.对Verilog硬件设计语言进行学习掌握。
4.对QuartusII开发软件及ModelsimSE仿真软件进行系统学习。
5.8b/10b编、解码电路的设计、硬件语言描述及其仿真。
要求完成的主要任务:
1.查阅不少于15篇的相关资料,其中英文文献不少于2篇,完成开题报告。
2.熟悉Verilog语言以及FPGA的开发流程。
3.完成8b/10b编码及解码电路的设计,包括功能定义、功能仿真及逻辑综合。
4.完成不少于20000字的英文文献翻译。
5.参考文献20篇,其中5篇外文参考文献,完成不少于15000字的毕业论文,论文中图纸折合成3张1~2号图纸,不少于15张图。
必读的参考书目
[1]SteveKilts.AdvancedFPGADesignArchitecture,LimplementationandOptimization[M].NewYork:
JohnWiley&Sons,2007.
[2]杨跃.FPGA应用开发实战技巧精粹[M].北京:
人民邮电出版社,2009.
[3]李有谋.8b/10b编码器的设计及实现[J].电讯技术,2005(6):
26—36.
指导教师签名系主任签名
院长签名(章)____________
武汉理工大学本科学生毕业设计(论文)开题报告
1、设计目的及意义(含国内外的研究现状分析)
PCIE全名为PCIExpress是第三代高性能总线接口,在计算机和通信平台领域广泛地应用在外围设备互连上。
PCIE的突出特点是能够通过将数据分路传输以实现高速传输,其物理层支持x1、x2、x4、x8、x12、x16和x32通道带宽,每一个传输方向的一个通道就可提供2.5Gb/S的带宽,通道数加倍带宽也加倍。
目前带宽最高可达到10Gb/s,而且还有相当大的发展潜力
计算机系统中各模块之间互联的链路称作总线,它支持各个模块之间的信息传送。
常用的总线有ISA总线、EISA总线、VESA总线、PEI总线和AGP总线等。
PCI(PeripheralComponentInterconnect,外围部件互联)总线插槽是目前主板上最常见的总线。
PCI总线作为一种先进的高性能32/64位局部总线,非常适用于显示卡、网卡、多串口卡等。
如果计算机只需要进行上网浏览和软件下载等简单的应用,PCI技术也就足够了。
然而新的技术和设备层出不穷,特别是游戏和多媒体应用越来越广泛,PCI的工作频率和带宽都已经无法满足需求。
PCIExpress是下一代的总线接口,而采用此类接口的显卡产品,己经在2004年正式面世。
早在2001年的春季“英特尔开发者论坛”上,英特尔公司就提出了要用新一代的技术取代PCI总线和多种芯片的内部连接,并称之为第三代I/O总线技术。
随后在2001年底,包括Intel、AMD、DELL、IBM在内的20多家业界主导公司开始起草新技术的规范,并在2002年完成,对其正式命名为PClExpress。
根据Intel的设计,PCIExpress可工作于各种不同的物理媒介上,从通用的铜线连接到光纤连接。
PCIExpress1.0的颁布,不仅得到了原有的PCI、AGP总线的拥戴,就连许多不同的系统内部总线开发者,如AMD、VIA、SIS等,都表示了对PCIExpress的支持。
目前为止基于PCIExpress2.0的正式物理层产品还没有公布,但2007年5月召开的PCISIG开发商大会上展示了具有5Gb/s的PCIE2.0版本芯片原型,其中ARM、LSI、NEC和Synopsys等公司对2.0版本典型的物理层模块进行了基本的演示。
而Intel已经在07年第三季度推出Bearlake系列芯片组全面支持PCIExpress2.0规范。
目前国内对于PCIExpress的研究也在不断发展中,据了解的信息,有多家科研院所,学校和厂商介入了PCIExpress的研究。
但目前为止,能够商用化使用的IP核产品和物理层芯片都是国外的产品。
但在研究上,我国东南大学走在前列,特别是高速串行总线的研究成果比较显著,包括PCIExpress、光纤收发模块、万兆以太网均研制成功,且都有良好的性能。
2、设计任务、重点研究内容、技术方案及进度安排
这次设计的主要任务是完成PCIE接口信号的8b/10b编码、解码功能的FPGA实现。
具体实现过程分两块内容:
(1)8b/10b编码、解码电路功能模块的划分。
模块的合理划分能够使得一个设计更加简便,使得设计的功能得到更好的实现,所以这部分在整个设计过程中扮演着相当重要的角色。
(2)对编码及解码电路的硬件语言描述和仿真。
这部分任务有两项要求一个是熟练掌握一种硬件语言并且用它实现编码、解码电路的描述。
现在业内流行的硬件描述语言有Verilog和VHDL,这里我选择的是Verilog硬件设计语言,因其语法结构相对简单,更受业内工程师们的青睐。
另一个是熟练掌握一种仿真工具的用法并用它对这个设计进行仿真。
我选择ModelsimSE,它是当下FPGA系统设计这一块最流行的仿真工具,在很多方面都有出色的表现。
实际上这次的设计也有相当一部分问题需要解决。
首先,对功能模块的划分就要求对8b/10b编码、解码的原理有一个非常深入的理解。
但是PCIE协议从开始出现到现在仅有十年时间,相关的资料还不是很完善。
所以对这些资料的收集和相关知识的学习可能会花费较长时间。
其次,仿真这部分应该会遇到比较大的障碍。
由于以前所做的设计都比较简单,所以用相关软件自带的波形仿真工具就可以完成,但是这次的设计牵扯到多位数据的变化,所以需要在使用硬件语言编写的TestBench上进行仿真,所以对硬件语言的使用有很高的要求。
3、设计进度安排:
第1—2周:
查阅相关文献资料,明确研究内容,复习Verilog硬件语言。
确定方案,完成开题报告。
第3周:
了解8b/10b编码、解码基本原理,初步选定设计方案。
第4—6周:
深入学习8b/10b编码、解码原理,对内嵌时钟的概念有一个深入的理解。
第7—10周:
对设计进行模块的划分和代码的编写。
第11—13周:
完成TestBench的编写和整个设计的仿真。
第14—15周:
完成毕业论文的整理与撰写。
第16周:
进行毕业设计答辩。
4、指导教师意见
指导教师签名:
年月日
目录
摘要1
Abstract2
1绪论3
1.1PCIE综述3
1.28B/10B简介4
1.3FPGA综述4
1.4VerilogHDL综述6
1.5研究内容及预期目标6
28B/10B编码及解码原理8
2.1编码原理8
2.2解码原理13
3FPGA单元结构及系统设计思想16
3.1FPGA单元结构16
3.2系统设计思想17
4系统设计21
4.1编码系统设计21
4.2解码系统设计23
5逻辑综合及仿真实现26
5.1逻辑综合26
5.2仿真27
6总结与展望31
6.1总结31
6.2展望31
参考文献32
附录A8B/10B编码表33
附录B控制字符的编码和定义36
附录C部分源程序Verilog代码37
致谢46
摘要
PCIE全名为PCIExpress,是第三代高性能总线接口,在计算机和通信平台领域广泛地应用在外围设备互连上。
本文介绍的是PCIE接口中8B/10B编码及解码原理的硬件语言实现。
整个设计的内容包括功能定义、RTL级硬件语言实现、逻辑综合、仿真这四个部分。
其中功能定义部分主要介绍了PCIE物理层接口中的核心部分—8B/10B编码及解码功能的原理,而后介绍了功能模块的划分。
这次设计所使用的硬件语言是Verilog,由于其语法规则简单,所以备受逻辑工程师的青睐。
用来综合的逻辑综合工具是Altera公司的综合软件QuartusII。
这个软件提供了一个友好的人机交互界面和各种RTL级的布线优化方式,几乎可以满足所有的参数要求。
仿真所使用的工具是MentorGraphic公司的仿真软件ModelsimSE,这是目前业内最流行的仿真软件。
本次设计首先进行功能模块的划分,再对每个模块进行编码,然后将所有模块组合起来进行逻辑综合,最后仿真并得到仿真结果。
关键词:
PCIExpress总线;8B/10B;RTL
Abstract
PCIE,thefullnameofitisPCIExpress.Itisakindofbusinterfacewhichhasanexcellentperformance.Itisbelongtothirdgenerationbus.Inthefieldofcomputerandcommunicationplatform,itiswidelyappliedintheinterconnectionofdevices.
Themaintaskofthispaperisintroducingthehardwarelanguagerealizationof8B/10Bencodinganddecoding.Definitionofthefunction,therealizationofhardwarelanguage,logicsynthesizingandsimulationwerecontainedbythemaincontentofthepaper.ThemostimportantpartofPCIEPHLis8B/10Bencodinganddecoding.Itisintroducedbythepartoffunctiondefinition.Thenweintroducethedividingoffunctionmodule.ThehardwarelanguageofthisprojectisVerilog,thankofitsbriefgrammar,itisthefavoroflogicengineer.QuartusII,whichisbelongtoAlteracorporation,isthelogicsynthesizingtoolofthisproject.ThistooloffersafriendlyinteractiveboundarybetweenhumanandcomputerandavarietyofwaywhichcouldmakethelayoutofRTLmoreexcellent.Almostallrestrictionofparametercanbesatisfiedbythistool.ThesimulationtoolisModelsimSEwhichisbelongtoMentorGraphiccorporation.Itisthemostpopulatesimulationsoftwareinthisfieldrecently.
Theprocessofthisprojectisasfollows.Firstofall,thedividingoffunctionmodulewasfinished.Second,everymodulewasencoded.Then,combiningallmodulesandsynthesizing.Atlast,simulatingandachievingtheconsequence.
Keywords:
PCIExpressbus;8B/10B;RTL
1绪论
1.1PCIE综述
1.1.1简介
PCIE全名为PCIExpress是第三代高性能总线接口,在计算机和通信平台领域广泛地应用在外围设备互连上。
PCIE的突出特点是能够通过将数据分路传输以实现高速传输,其物理层支持x1、x2、x4、x8、x12、x16和x32通道带宽,每一个传输方向的一个通道就可提供2.5Gb/S的带宽,通道数加倍带宽也加倍。
目前带宽最高可达到10Gb/s,而且还有相当大的发展潜力
。
1.1.2传统总线的不足
计算机系统中各模块之间互联的链路称作总线,它支持各个模块之间的信息传送
。
常用的总线有ISA总线、EISA总线、VESA总线、PEI总线和AGP总线等。
PCI(PeripheralComponentInterconnect,外围部件互联)总线插槽是目前主板上最常见的总线。
PCI总线作为一种先进的高性能32/64位局部总线,非常适用于显示卡、网卡、多串口卡等
。
如果计算机只需要进行上网浏览和软件下载等简单的应用,PCI技术也就足够了。
然而新的技术和设备层出不穷,特别是游戏和多媒体应用越来越广泛,PCI的工作频率和带宽都已经无法满足需求。
而PCIE的出现很好的解决了这个问题。
1.1.3国内外研究现状
PCIExpress是下一代的总线接口,而采用此类接口的显卡产品,己经在2004年正式面世。
早在2001年的春季“英特尔开发者论坛”上,英特尔公司就提出了要用新一代的技术取代PCI总线和多种芯片的内部连接,并称之为第三代I/O总线技术。
随后在2001年底,包括Intel、AMD、DELL、IBM在内的20多家业界主导公司开始起草新技术的规范,并在2002年完成,对其正式命名为PCIExpress
。
根据Intel的设计,PCIExpress可工作于各种不同的物理媒介上,从通用的铜线连接到光纤连接。
PCIExpress1.0的颁布,不仅得到了原有的PCI、AGP总线的拥戴,就连许多不同的系统内部总线开发者,如AMD、VIA、SIS等,都表示了对PCIExpress的支持
。
目前国内对于PCIExpress的研究也在不断发展中,有多家科研院所,学校和厂商介入了PCIExpress的研究。
但目前为止,能够商用化使用的IP核产品和物理层芯片都是国外的产品。
但在研究上,我国东南大学走在前列,特别是高速串行总线的研究成果比较显著,包括PCIExpress、光纤收发模块、万兆以太网均研制成功,且都有良好的性能。
1.28B/10B简介
8B/10B,也叫做8比特/10比特或8b10b。
8B/10B方式最初由IBM公司于1983年发明并应用于ESCON(200M互连系统),由AlWidmer和PeterFranaszek在IBM的刊物《研究与开发》上描述。
8B/10B编码的特性之一是保证DC平衡,采用8B/10B编码方式,可使得发送的“0”、“1”数量保持基本一致,连续的“1”或“0”不超过5位,即每5个连续的“1”或“0”后必须插入一位“0”或“1”,从而保证信号DC平衡,它就是说,在链路超时时不致发生DC失调。
通过8B/10B编码,可以保证传输的数据串在接收端能够被正确复原,除此之外,利用一些特殊的代码(在PCI-Express总线中为K码),可以帮助接收端进行还原的工作,并且可以在早期发现数据位的传输错误,抑制错误继续发生。
8B/10B编码是目前许多高速串行总线采用的编码机制,如USB3.0、1394b、SerialATA、PCIExpress、Infini-band、FibreChannel(网状通道)、RapidIO等总线或网络等。
1.3FPGA综述
1.3.1简介
FPGA全称为FieldProgrammableGateArray(现场可编程门阵列)。
它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。
它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,即解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
目前,以硬件描述语言(Verilog或VHDL,本次设计使用的是Verilog)所完成的电路设计,可以经过简单的综合与布局,快速烧写至FPGA上进行测试,是现代IC设计验证的技术主流。
这些可编程元件可以被用来实现一些基本的逻辑们电路或者更复杂一些的组合功能,比如解码器或数字方程式。
在大多数的FPGA里面,这些可编程元件也包含记忆元件或者其他更完整的记忆块。
系统设计工程师可以根据需要通过可编程连接把FPGA的逻辑块连接起来。
所以FPGA可以完成所需要的逻辑功能。
FPGA一般来说比ASIC(专用集成芯片)的速度慢,无法完成复杂的设计,而且消耗更多的电能。
但是他们也有很多优点,比如可以快速成品,可以被修改来纠正程序中的错误,而且造价更便宜。
图1系统设计流程图
1.3.2设计方法及流程
FPGA的设计是采用自顶而下的方法,即首先对系统功能进行评估,然后划分功能模块,再对各个模块进行编码,最后进行仿真验证
。
其具体的流程如图1所示。
实际上自顶而下并不是FPGA唯一的设计方法,它只是一种最普遍的设计方法。
系统的设计还牵扯到很多技巧,我们将在正文的内容中有所讨论。
1.4VerilogHDL综述
1.4.1简介
VerilogHDL是目前应用最为广泛的硬件描述语言。
它即可用来进行各种层次(算法级、RTL级、门级等)的逻辑设计,也可以进行数字系统的逻辑综合和仿真验证等。
VerilogHDL进行设计最大的优点是其工艺无关性,这使得工程师在功能设计,逻辑验证阶段可以不必过多考虑门级及工艺实现的具体细节,只需根据系统设计的要求施加不同的约束条件即可设计出实际电路
。
1.4.2发展历程
Verilog是由GatewayDesignAutomation公司于大约1984年开始发展。
GatewayDesignAutomation公司后来被CadenceDesignSystems公司于1990年购并。
现在Cadence对于Gateway公司的Verilog和Verilog-XL模拟器拥有全部的产权
。
1.5研究内容及预期目标
如果只就本次的设计而言,我们是没有必要走完所有的设计流程的。
此次的设计仅仅只是对PCIE物理层中的核心部分,即8B/10B编码及解码电路的原理进行一个功能性的验证,图2
表明了8B/10B编码器与PCIE物理层传输逻辑的关系。
所以,本次的设计流程只走到了时序仿真结束。
最终的设计目标是得到完全正确的编码及解码结果,解码部分可以检验出所有的错误编码并发送可信的错误报告。
论文的重点讨论对象除此之外,还有与FPGA相关的一些系统设计方法及技巧。
这些技巧虽非原理性的内容,但是他们已经构成了FPGA的系统设计中必不可少的部分。
来自数据链路层
调节8
控制
8控制8
8D/K#
8D/K#8D/K#
通道1,……,N
8D/K#8D/K#
1010
通道1,……,N
通道0通道N
图2PCIE物理层发送逻辑
28B/10B编码及解码原理
2.1编码原理
2.1.1编码字符流的目的
这种编码的主要目的是在所有通道上发送的串行比特流中嵌入一个时钟信号,所以就无需和串行数据比特流一同发送时钟了。
这就消除了在链路上传输2.5GHz高频率时钟信号的需求,而该信号会产生大量的EMI噪音,并且第在标准的FR4板上布线是个挑战。
因为无需发送时钟,所以两个端口之间的链路线路安排会很轻松,进而也无需将时钟长度与通道信号跟踪长度相匹配。
只需要将两台设备的通道连接在一起,即连接了两台设备。
下面是8B/10B编码方案的优势总结。
1)嵌入时钟
创建足够高的“0”到“1”和“1”到“0”的转换密度(即信号变化),加快在接收器一端使用PLL的接收时钟重建工作(通过保证连续的“1”或“0”的有限运行长度)。
已恢复的接收时钟用于将入站的10比特符号定时输入弹性缓冲区。
举个例子,如果直接发送“00000000”这个比特流的话,那么在发送过程中将会出现8个时钟周期的“0”,接收方是无法从这个比特流中提取时钟的。
如果用8B/10B将其编码,那么最终发送的比特流将会是“1101000110”,其中有5次转换。
这些转换使接收器PLL与发送电路时钟保持同步:
有限的“运行长度”意味着该编码方案课确保信号线路不会长时间保持在高电平或低电平状态。
该运行长度不会超过5个连续的“1”或“0”。
在发送时钟的上升沿定时输出“0”和“1”;在接收器处,PLL可通过与“1”和“0”的前沿进行同步来重建该时钟。
有限的运行长度可确保最大限度的减少接收器PLL中的频率漂移(相对于发送电路中的本地时钟而言)。
2)DC平衡
保持所发送的“0”和“1”的数目尽可能相同,从而将发送比特流上的DC平衡保持为信号阈值电压的一半。
这在电容和变压器耦合电路中非常重要。
因为维持信号线路上“1”和“0”数目间的平衡,可以确保接收到的信号没有任何DC分量。
这可减低比特间干扰的可能性。
比特间干扰源自于信号不能正确地从一个逻辑电平切换到另一个逻辑电平,这是因为通道的耦合电容器或线路本身的容抗过载。
3)特殊控制字符的编码
允许编码特殊的控制(K)字符,如位于TLP和DLLP开始和结尾部分的开始和结束成帧字符。
4)错误检测
该编码方案的一个间接好处是它可以帮助检测大多数的发送错误。
接收器可以检查“运行不一致状态(runningdisparitystate)”错误,即无效符号的接收。
通过该运行的不一致状态机制,所发送的数据比特流就可以保持“1”和“0”的平衡。
接收器检查从链路初始化开始“1”的总和与“0”的总和之差,并确保该值尽可能为“0”。
如果该值不为“0”,则检测到并报告不一致状态错误,这意味着出现了发送错误。
8B/10B编码方案也有缺点,由于在发送前将每个8比特字符扩充为10比特符号,所以实际的发送性能会降低25%,或者说总体开销增加了25%。
2.1.210B符号的属性
对于10B符号的发送而言,不管发送那种8B字符,其中“1”的品均数目等于“0”的数目,就说符号
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PCIE 接口 B10B 解码 实现