基于FPGA64B66B编解码设计与实现.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于FPGA64B66B编解码设计与实现

基于FPGA64B66B编解码设计与实现   摘 要   64B/66B编码是万兆以太网物理编码子层的重要组成部分,是IEEE推荐的10G通信的编码方式。文章主要研究64B/66B编码的编码准则以及一种基于查找表法的改进的编解码方法。该方法使用FPGA实现,实验结果与数据分析显示,该方案满足设计意图与协议的规定。   【关键词】64B/66B 万兆以太网 查找表 编解码 FPGA   与以往的传统以太网的介质独立接口类似,万兆以太网(XGMII)接口为l0GbE的MAC层和物理层之间提供了一种简单、低成本并易于实现的互联接口。XGMII接口由发送通道和接收通道组成,每个方向的数据传输是相互独立的,接口信号由数据、控制和时钟信号构成。XGMII接口具有支持l0Gbps的双向传输速率,成本低、容易实现的特点。64B/66B编码为XGMMII接口传输数据编码,编码准则来源于IEEE803.2ae,它并不是真正的编码,而是一种基于扰码机制的编解码方式,是IEEE推荐的10G通信标准编码方式。该编码具有系统开销较小,码字长,安全性高,传输快等优点。本文根据IEEE803.2ae中的编码准则,使用查找表法,运用Verilog语言完成了数字电路设计,使用Qurtus II软件完成模拟和数据分析。   如今使用硬件描述语言(Verilog 或 VHDL)所完成的电路设计,经过简单的综合与布局,快速的烧录至合适的FPGA 上进行测试,是现代 IC 设计验证的主流方法。开发人员可以根据自身的设计要求对FPGA编程,将编码烧录到 FPGA 芯片中即可实现数字系统的设计。得到所需要的数字电路。一个出厂后的成品 FPGA 的逻辑块和连接可以按照设计者而改变,所以 FPGA可以完成所需要的逻辑功能。   1 编解码的基本原理   1.1 概述   64b/66b编解码与万兆以太网的媒体独立接口XGMII(10 Gigabit Media Independent Interface)连接。其主要功能是:根据给出的不同的8个XGMII控制信号(XGMII_TXC[7:0]),把输入的64B的XGMII数据块或控制块XGMII_TXD[63:0]编码成66B码进行通信。其中,控制信号的每一位与64B码每8位对应,比如:XGMII_TXC[0]=0,则XGMII_TXD[7:0]为数据代码;XGMII_TXC[0]=1,则XGMII_TXD[7:0]为控制代码。64B/66B解码则是将66B码按照相反的规律解码成原先的64B XGMII数据块或控制块,并将原先的8个控制信号传送到XGMII接口。   1.2 IEEE802.3ae准则解读   万兆以太网协议 IEEE 802.3ae 中规定了 64B/66B的编解码规则。具体规则如下:64B/66B码组的映射关系如表1所示。从中我们可以知道,64B码可以分为包含纯粹数据(8个8位的数据)的数据块(Data Block Format)和数据与控制代码按照一定顺序排列的控制块(Control Block Format)。根据不同的64B码格式,也有不同的编码规则,在生成66B码时就会有不同的同步头(sync)和块有效荷(Block Payload)。比如:输入的八位控制信号全部为0时,则表示输入的64B码为数据块格式,则同步头为01,块有效荷即输出相应数据。反之,当输入的八位控制信号不全为0,则表示输入的64B码为控制块格式,则同步头为10,块有效荷按如表1中规定格式生成。   根据IEEE803.2ae的编码准则,控制块代码也具有相应的类型,这些控制块代码的类型如表2所示。表2将控制代码分为对应的几种形式:   (1)Idle表示空字符。(64B码中为16进制ox07,生成66B码时变为16进制ox00)   (2)start表示开始字符。   (3)Terminate表示结束字符。   (4)Error 表示错误,一般表示收到错误的数据。   (5)Sequence ordered_set系列号有序集。   (6)Reserved(0~5)保留字符0到5。   (7)Signal Order_set表示信号有序集。   所有的有效字符必须符合表2的要求,否则为无效或者非法字符。   1.3 编解码   64B/66B 编码过程:将输入的64B码分成8个1字节的码组,根据输入XGMII_TXC的每比特值判断这个码组是数据代码还是控制代码。如果XGMII_TXC 每个比特值都为0,则64B码为纯数据代码,直接在64B码组前加上同步头01就组成66B码组输出。如果XGMII_TXC 中有一个比特为1,则表示64B码组为控制块格式,先根据表2判断控制块中的每个控制代码是否有效

文档评论(0)

bokegood + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档