武汉理工大学毕业设计(论文)
目前国内对于PCI Express的研究也在不断发展中,有多家科研院所,学校和厂商介入了PCIExpress的研究。但目前为止,能够商用化使用的IP核产品和物理层芯片都是国外的产品。但在研究上,我国东南大学走在前列,特别是高速串行总线的研究成果比较显著,包括PCIExpress、光纤收发模块、万兆以太网均研制成功,且都有良好的性能。
1.2 8B/10B简介
8B/10B,也叫做8比特/10比特或8b10b。8B/10B方式最初由IBM公司于1983年发明并应用于ESCON(200M互连系统),由Al Widmer和Peter Franaszek在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、Serial ATA、PCI Express、Infini-band、Fibre Channel(网状通道)、RapidIO等总线或网络等。
1.3 FPGA综述
1.3.1简介
FPGA全称为Field Programmable Gate Array(现场可编程门阵列)。它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,即解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
目前,以硬件描述语言(Verilog或VHDL,本次设计使用的是Verilog)所完成的电路设计,可以经过简单的综合与布局,快速烧写至FPGA上进行测试,是现代IC设计验证的技术主流。这些可编程元件可以被用来实现一些基本的逻辑们电路或者更复杂一些的组合功能,比如解码器或数字方程式。在大多数的FPGA里面,这些可编程元件也包含记忆元件或者其他更完整的记忆块。
系统设计工程师可以根据需要通过可编程连接把FPGA的逻辑块连接起来。所以FPGA可以完成所需要的逻辑功能。
FPGA一般来说比ASIC(专用集成芯片)的速度慢,无法完成复杂的设计,而且消耗更多的电能。但是他们也有很多优点,比如可以快速成品,可以被修改来纠正程序中的错
4
武汉理工大学毕业设计(论文)
误,而且造价更便宜。
通过 逻辑综合 未通过 修改代码 硬件语言的编码和模块链接 根据以上评估对系统进行功能模块划分 对系统的原理、功能及设计要求进行评估
通过 下载到器件上进行实物验证 未通过 时序仿真 未通过 功能仿真 未通过 通过
完成 图1 系统设计流程图
1.3.2 设计方法及流程
FPGA的设计是采用自顶而下的方法,即首先对系统功能进行评估,然后划分功能模块,再对各个模块进行编码,最后进行仿真验证
[6]。其具体的流程如图1所示。
实际上自顶而下并不是FPGA唯一的设计方法,它只是一种最普遍的设计方法。系统的设计还牵扯到很多技巧,我们将在正文的内容中有所讨论。
5
武汉理工大学毕业设计(论文)
1.4 Verilog HDL综述
1.4.1 简介
Verilog HDL是目前应用最为广泛的硬件描述语言。它即可用来进行各种层次(算法级、RTL级、门级等)的逻辑设计,也可以进行数字系统的逻辑综合和仿真验证等。
Verilog HDL进行设计最大的优点是其工艺无关性,这使得工程师在功能设计,逻辑验证阶段可以不必过多考虑门级及工艺实现的具体细节,只需根据系统设计的要求施加不同的约束条件即可设计出实际电路
[7]。
1.4.2 发展历程
Verilog是由Gateway Design Automation公司于大约1984年开始发展。Gateway Design Automation公司后来被Cadence Design Systems公司于1990年购并。现在Cadence对于Gateway公司的Verilog和Verilog-XL模拟器拥有全部的产权
[8]。
1.5 研究内容及预期目标
如果只就本次的设计而言,我们是没有必要走完所有的设计流程的。此次的设计仅仅只是对PCIE物理层中的核心部分,即8B/10B编码及解码电路的原理进行一个功能性的验证,图2[9]表明了8B/10B编码器与PCIE物理层传输逻辑的关系。所以,本次的设计流程只走到了时序仿真结束。最终的设计目标是得到完全正确的编码及解码结果,解码部分可以检验出所有的错误编码并发送可信的错误报告。
论文的重点讨论对象除此之外,还有与FPGA相关的一些系统设计方法及技巧。这些技巧虽非原理性的内容,但是他们已经构成了FPGA的系统设计中必不可少的部分。
6
武汉理工大学毕业设计(论文)
来自数据链路层
8 8 调节 8 控制 发送缓冲区 8 控制 多路复用器 8 D/K# 开始、结束、空闲填充代码 8 通道0 字节拆分 通道N(N=0,1,3,7,11,15,31) D/K# 通道1,??,N 扰频器 D/K# 8B/10B 编码器 10 发送时钟 发送器 本地PLL 8 扰频器 D/K# 8 D/K# 8B/10B 编码器 10 并行到串行 并行到串行 Tx 通道1,??,N Tx
通道0
通道N
图2 PCIE物理层发送逻辑
7
武汉理工大学毕业设计(论文)
2 8B/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开始和结尾部分的开始和结束
8
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库PCIE接口8B10B编、解码的实现(3)在线全文阅读。
相关推荐: