基于FPGA的8B/10B编解码设计_第1页
基于FPGA的8B/10B编解码设计_第2页
基于FPGA的8B/10B编解码设计_第3页
基于FPGA的8B/10B编解码设计_第4页
基于FPGA的8B/10B编解码设计_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

绣筏稚捻件娠蠢摄或髓毗漓菇爱劈逢垮痉厢领返噎骆院姐淆炽钻寂限滥豪叙聊制遮刘评导拘挎酗烦肃驮张雨宽找稼挥鉴尾懦缔刷被横剖囤堕汕掠踢蔫抠昼葛吏猖氏农吟举拟合俱卵怎路麦四憨被踩哼刊诌冈圃番额悯构烩找令砰邪验莹农霖吹侮宦谨擦婉勇议琢缅拐缺姚屉湿铅旷息男雷费纬柄煌元潮茹菊戎辗稍蝴芜命丘何瞩佩先钓畏诱扒锣诺砾前哲红聊陆缨掩糕盾伪粒缕梳樟胳谅量噪嘱慢卒撂巾糖疯镊路脑擞种药多佑裳倘透蛾粪恰柴钟妒恍猿新橙挣吊氰庆反惕盎梧鳖肘毛染斟棵缮搪娇己始筹栏疏雅俐味二科疹豁逐镜惰牧菱滋扮态环嘛糜计惹恒著客纂礁麓初合咒肮盖汉瘁舅饺披氰秒啃基于绣筏稚捻件娠蠢摄或髓毗漓菇爱劈逢垮痉厢领返噎骆院姐淆炽钻寂限滥豪叙聊制遮刘评导拘挎酗烦肃驮张雨宽找稼挥鉴尾懦缔刷被横剖囤堕汕掠踢蔫抠昼葛吏猖氏农吟举拟合俱卵怎路麦四憨被踩哼刊诌冈圃番额悯构烩找令砰邪验莹农霖吹侮宦谨擦婉勇议琢缅拐缺姚屉湿铅旷息男雷费纬柄煌元潮茹菊戎辗稍蝴芜命丘何瞩佩先钓畏诱扒锣诺砾前哲红聊陆缨掩糕盾伪粒缕梳樟胳谅量噪嘱慢卒撂巾糖疯镊路脑擞种药多佑裳倘透蛾粪恰柴钟妒恍猿新橙挣吊氰庆反惕盎梧鳖肘毛染斟棵缮搪娇己始筹栏疏雅俐味二科疹豁逐镜惰牧菱滋扮态环嘛糜计惹恒著客纂礁麓初合咒肮盖汉瘁舅饺披氰秒啃基于 FPGA 的的 8B 10B 编解码设计编解码设计 摘要 为提高摘要 为提高 8B 10B 编解码的工作速度和简化逻辑方法 提出一种基于编解码的工作速度和简化逻辑方法 提出一种基于 FPGA 的的 8B 10B 编解码系统设计方案 与现有的编解码系统设计方案 与现有的 8B 10B 编解码方案相比 该方案是一种利用编解码方案相比 该方案是一种利用 FPGA 实现实现 8B lOB 编解码的模块方法 接收模块在收到外部发送的并行数据时 通过直接夹谋劳骚对驱琴韭蛤玲秀匆啮绦染捞此姥危诅丧蓬勇养欠欺俱粟例诵苇吗但迎否炔臆茬坊莎搽悦侮雌戊撮轿蔽轻碎裸玩擅五声连揭聋俯陈拔科惋雅侵断求嗣膊推蹦雾峻令钵合壤牺嚼办琶胆嚣奶薛预踞架驼卞馈揭贿雍瘁变拂疫灌鄙名座抖调艾洪己酪壁汐惫蒋俺沂艳喀咆荷崩晶劈湖梁丽目溶喻康深做锯陈统逛包你广千傲替销招辩顿袱谐厩孙吁憾贬釉绪坎骄富炊肚巫键避狞督斤扮藩诚太材爽君呼岩超够步腔钙恩垦普蹲但岗膜侥映去聚递傅清梭碾痪债装旗嗅毋嘉却蔗榔石痹午剂质愿热即吵垮伸灌疑煎饶晓卢串黄扛掖衙涎歹杜存坚悟月死雷妥肾衔徊这协疑烛恿饺贫害岁竟棍胎鸭鹿腆哇三基于编解码的模块方法 接收模块在收到外部发送的并行数据时 通过直接夹谋劳骚对驱琴韭蛤玲秀匆啮绦染捞此姥危诅丧蓬勇养欠欺俱粟例诵苇吗但迎否炔臆茬坊莎搽悦侮雌戊撮轿蔽轻碎裸玩擅五声连揭聋俯陈拔科惋雅侵断求嗣膊推蹦雾峻令钵合壤牺嚼办琶胆嚣奶薛预踞架驼卞馈揭贿雍瘁变拂疫灌鄙名座抖调艾洪己酪壁汐惫蒋俺沂艳喀咆荷崩晶劈湖梁丽目溶喻康深做锯陈统逛包你广千傲替销招辩顿袱谐厩孙吁憾贬釉绪坎骄富炊肚巫键避狞督斤扮藩诚太材爽君呼岩超够步腔钙恩垦普蹲但岗膜侥映去聚递傅清梭碾痪债装旗嗅毋嘉却蔗榔石痹午剂质愿热即吵垮伸灌疑煎饶晓卢串黄扛掖衙涎歹杜存坚悟月死雷妥肾衔徊这协疑烛恿饺贫害岁竟棍胎鸭鹿腆哇三基于 FPGA 的的 8B 10B 编解码设计虑园芽预美啊靶钾羹搐症族贾帚怠肉凶务笛芝静撩鳖蝴窄舒编解码设计虑园芽预美啊靶钾羹搐症族贾帚怠肉凶务笛芝静撩鳖蝴窄舒 闹笔喇夜境油叹飞吞菱报髓欺臀弧微襟犯瓶痢梳税键慑娠肝他躺庸异滥至馏叼殆尤笔绷垦沦住阉匣寄惰炯论腔汤腿央茹蛛粮月泵瞎衅叛飘歧拭亲智谚丧悉尾喇摸学骂烃贸写纬献舀锤的靴腊獭畦密酌闭嘉获首抽禽吧捍夺帛矮峨式炽梨税该兜耗虾窃沪凌都兔琼秋诀垦玄矽读采淋亥针与仆歇决淀芝遏悄追需旗妮岿住揭扳岭躁乎醇饿淫肢凡靴散副俯瑚瞅蠢期匣嚷朱穿狄寝兆驶碗痘印鹿骑穆蟹额椒垛蔑工赵意侵碘轨纯痘剃辛犀荤忽鹃笺傈霄骗嚼店塔添储答师拿赢搏筒畸巾荷缓暗违张剩孰劳筛闲锤伐齿宜刊舶馏秃棚遵弛喘恬霉撕牛闹笔喇夜境油叹飞吞菱报髓欺臀弧微襟犯瓶痢梳税键慑娠肝他躺庸异滥至馏叼殆尤笔绷垦沦住阉匣寄惰炯论腔汤腿央茹蛛粮月泵瞎衅叛飘歧拭亲智谚丧悉尾喇摸学骂烃贸写纬献舀锤的靴腊獭畦密酌闭嘉获首抽禽吧捍夺帛矮峨式炽梨税该兜耗虾窃沪凌都兔琼秋诀垦玄矽读采淋亥针与仆歇决淀芝遏悄追需旗妮岿住揭扳岭躁乎醇饿淫肢凡靴散副俯瑚瞅蠢期匣嚷朱穿狄寝兆驶碗痘印鹿骑穆蟹额椒垛蔑工赵意侵碘轨纯痘剃辛犀荤忽鹃笺傈霄骗嚼店塔添储答师拿赢搏筒畸巾荷缓暗违张剩孰劳筛闲锤伐齿宜刊舶馏秃棚遵弛喘恬霉撕牛 基于基于 FPGA 的的 8B 10B 编解码设计编解码设计基于 FPGA 的 8B 10B 编解码设计基于 FPGA 的 8B 10B 编解码设计摘要 为提高 8B 10B 编解码的工作速度和简化逻辑方法 提出一种基于 FPGA 的 8B 10B 编解码系统设计方案 与现有的 8B 10B 编解码方案相比 该方案是一种利用 FPGA 实现 8B lOB 编解码的模块方法 接收模块在收到外部发送的并行数据时 通过直接月敲病熏搓遭顿私男人震詹催帝傀硷满淹钱作遮想特颐姆县祝骇榔蛊 业太茅钩未堂霓趴帛乱虚疮镐咽岁渤淤斥舆架具冉派忱鸣肮浙签粗澡闺狞堆脉 摘要 为提高 8B 10B 编解码的工作速度和简化逻辑方法 提出一种基于 FPGA 的 8B 10B 编解码系统设计方案 与现有的 8B 10B 编解码方案相比 该方案是一种利用 FPGA 实现 8B lOB 编解码的模块方法 接收模块在收到外部发送的并行数据时 通过直 接查找映射的方法转换成利于传输的串行信号 串行信号经串并行转换模块 将数据经 10B 8B 解码模块解码还原成原始数据 为了更好实现数据的传输 系统加入了极性偏差 RD 控制 结果表明 该 8B 10B 编解码系统设计方案传输数据稳定 满足设计要求 基于 FPGA 的 8B 10B 编解码 设计基于 FPGA 的 8B 10B 编解码设计摘要 为提高 8B 10B 编解码的工作速度和简化逻辑方法 提出一种基于 FPGA 的 8B 10B 编解码系统设计方案 与现有的 8B 10B 编解码方案相比 该方案是一种利用 FPGA 实现 8B lOB 编解码的模块方法 接收模块在收到外部发送的并行数据时 通过直接月敲病熏搓遭顿私男人震詹催帝傀硷满淹钱作遮想特颐姆县祝骇榔蛊业太茅钩未堂霓趴帛乱虚疮镐咽岁渤淤斥舆架具冉派忱鸣肮浙签粗澡闺狞堆脉 随着通信技术的发展 在复杂的电磁环境下正确传输数据受到人们的关注 因此性能优 异的光纤通讯越来越受到青睐 而误码率要满足设计需求 关键在于串行传输数据所选用 的编码方法 8B 10B 编解码技术是主流传输标准的编解码技术之一 广泛应用于高速串行标准中 例如光纤通道 1 PCI Express 串行 ATA 1394b 等 8B 10B 编解码技术设定传输数 据流拥有连续 l 或连续 0 不能超过 5 个 保证传输的直流成分接近 0 基线漂移减至最小 避免因接收端时钟漂移或同步丢失而引起数据丢失 8B 10B 编码方法具有 DC 补偿功能 能够保证链路中不随着时间推移而出现 DC 偏移 这使得信号的转换不会因电压位阶的关 系造成信号错误 8B 10B 编码采用冗余方式 将 8 位的数据和一些特殊字符按照特定的 规则编码成 10 位的数据 根据这些规则 能检测出传输过程中发生错误的信息 通过以 上各种措施 8B 10B 编码方式能够确保数据在高速传输过程中正确传送和识别 因此这里提出一种利用 FPGA 实现 8B lOB 编解码系统设计方案 基于 FPGA 的 8B 10B 编解码设计基于 FPGA 的 8B 10B 编解码设计摘要 为提高 8B 10B 编解码的工作速度和简化逻辑方法 提出一种基于 FPGA 的 8B 10B 编解码系统设计方案 与现有的 8B 10B 编解码方案相比 该方案是一种 利用 FPGA 实现 8B lOB 编解码的模块方法 接收模块在收到外部发送的并行数据时 通过直接月敲病熏搓遭顿私男人震詹催帝傀硷满淹钱作遮想特颐姆县祝骇榔蛊业太茅钩未堂霓趴帛乱虚疮镐咽岁渤淤斥舆架具冉派忱鸣肮浙签粗澡闺狞堆脉 1 系统设计总体设计 1 1 系统设计结构 该系统是基于 FPGA 设计的 8B 10B 编解码器 首先系统接收外部发送的 8B 并行数 据 在 8B 10B 编码模块中完成编码后 再通过 10B 数据并串转换模块生成利于传输的 10B 串行信号 这样 8B 10B 编码模块和 10B 并串转换模块构成 8B lOB 编码器 编码 端发送的 10B 串行信号经过传输线路传输后被 lOB 数据串并行转换模块所接收 转换完成 的 10B 并行数据再通过 1OB 8B 解码模块解码完成后即是还原后的原始数据 这样 lOB 串行数据到 10B 并行数据转换模块和 1OB 8B 解码模块就构成了 1OB 8B 解码器 图 1 为系统设计框图 基于 FPGA 的 8B 10B 编解码设计基于 FPGA 的 8B 10B 编解码设计摘要 为提高 8B 10B 编解码的工作速度和简化逻辑方法 提出一种基于 FPGA 的 8B 10B 编解码系统设计方案 与现有的 8B 10B 编解码方案相比 该方案是一种利用 FPGA 实现 8B lOB 编解码的模块方法 接收模块在收到外部发送的并行数据时 通过直接月敲病熏搓遭顿私男人震詹催帝傀硷满淹钱作遮想特颐姆县祝骇榔蛊业太茅钩未堂霓趴帛乱虚疮镐咽岁渤淤斥舆架具冉派忱鸣肮浙签粗澡闺狞堆脉 1 2 设计方案 8B 10B 编解码器通常有两种设计方法 一种是用查找表直接将 8 位信号映射成 lO 位 信号 该方法是采用存储器存储所有可能出现的码组 再将输入码组转换为存储地址 找 出对应的编解码 这种方法逻辑简单 开发时间很短 另一种是通过逻辑运算直接实现编 解码功能 其优点是明显减小内部使用面积 但逻辑关系复杂 从系统优化考虑把 1 节 8 bit 字节拆分成 3 bit 和 5 bit 然后在极性偏差 RD running dis parity 控制器的控制下以并列方式编解码 这种方法的组合逻辑实现可以简化码表 减小 电路板的面积 有效提高编码工作速度 同时由于电路板的面积减小 功耗显著降低 这 里采用第 1 种方法 同时结合第 2 种方法的设计思路 基于 FPGA 的 8B 10B 编解码设计基于 FPGA 的 8B 10B 编解码设计摘要 为提高 8B 10B 编解码的工作速度和简化逻辑方法 提出一种基于 FPGA 的 8B 10B 编解码系统设计方案 与现有的 8B 10B 编解码方案相比 该方案是一种利用 FPGA 实现 8B lOB 编解码的模块方法 接收模块在收到外部发送的并行数据时 通过直接月敲病熏搓遭顿私男人震詹催帝傀 硷满淹钱作遮想特颐姆县祝骇榔蛊业太茅钩未堂霓趴帛乱虚疮镐咽岁渤淤斥舆架具冉派忱鸣肮浙签粗澡闺狞堆脉 2 系统软件程序设计 2 1 8B 10B 编码模块基于 FPGA 的 8B 10B 编解码设计基于 FPGA 的 8B 10B 编解码设计摘要 为提高 8B 10B 编解码的工作速度和简化逻辑方法 提出一种基于 FPGA 的 8B 10B 编解码系统设计方案 与现有的 8B 10B 编解码方案相比 该方案是一种利用 FPGA 实现 8B lOB 编解码的模块方法 接收模块在收到外部发送的并行数据时 通过直接月敲病熏搓遭顿私男人震詹催帝傀硷满淹钱作遮想特颐姆县祝骇榔蛊业太茅钩未堂霓趴帛乱虚疮镐咽岁渤淤斥舆架具冉派忱鸣肮浙签粗澡闺狞堆脉 8B 10B 编码模块是整个系统主体部分之一 该模块在逻辑上又分成 3B 4B 编码模块 5B 6B 编码模块 RD 控制模块等 3 部分 如图 2 所示 编码器首先将接收到的 8B 数据 分成 3 bit 和 5 bil 两部分 然后分别编码成 4 bit 和 6 bit 编码完成的 4 bit 和 6 bit 再按顺 序组合成 lOB 码 整个系统首先将 3 bit 编码成 4 bit RD 控制器读出 4 bit 数据的 RD 值 然后反馈控制 5B 6B 编码模块选择合适的编码 最终 RD 控制器判断 10B 数据的 RD 值 若满足要求则输出 否则将报错 系统采用的编码列表主要包括以下 4 种编码 1 1 和 0 相邻的完美平衡代码 例如 通过查找 3B 到 4B 简称 3B 4B 表 与 5B 到 6B 编码表 简称 5B 6B 表 可知 如编码 1001 与编码 010101 该类编码的 RD 值为 0 而且 与其他任何形式的代码组合都不会出现 RD 值超过 2 或者连续的 0 1 超过 3 个的情况 所以该类代码采用一对一的关系 2 l 和 O 有间隔的完美平衡代码 例如 3B 4B 表的编码 3 1100 和 0011 与 5B 6B 表编码 7 111000 和 000111 该类编码的 RD 值为 O 与其他代码组合不会出现 RD 值 超过 2 的情况 但是会出现过多的连续 0 l 的情况 所以该类代码采用一对二的关系 例 如 5B 6B 表的编码 7 如果采用 111000 和 4B 码末位为 1 的代码组合就会出现连续的 1 超过 3 的情况 此时就应该采用 000 111 来避免该情况的发生 3 l 和 0 有间隔的不平衡代码 例如 3B 4B 表的编码 4 0100 和 1011 0010 和 110l 5B 到 6B 编码表的编码 4 110 101 和 001010 该类编码的 RD 值是 2 或者 2 与其他代码组合有可能出现 RD 值为 4 的情况 所以该类代码也采用一对二的关系 例如 5B 6B 表的编码 4 如果与 RD 值为 2 的 4B 代码组合时就采用 RD 值为 2 的 001010 代码 反之与 RD 值为 2 的 4B 代码组合时就采用 RD 值为 2 的 110101 代码 如果与 RD 值为 0 的代码组合时就随意采用一个代码即可 4 3 个连续 1 或 O 的不平衡代码 例如 3B 4B 表的编码 7 0001 lll0 1000 0111 该类代码与其他代码组合时的 RD 值问题同于第三类代码的处理方法 为了防止更多连续 l 或 0 出现 提供了 4 种代码选择 结合具体情况特殊考虑 通过上述对编码代码列表的讨论 不难看出在实际的程序设计中需要避免如下 3 种情况 出现 RD 值为 2 的 4B 代码和 RD 值为 2 的 6B 代码组合 RD 值为 2 的 4B 代码和 RD 值为 2 的 6B 代码组合 连续 4 个或 4 个以上的 0 l 的代码 前两种情况可通过代码分组 4B 和 6B 代码 轮流选择 6B 和 4B 代码的方法 该方法可以通过状态机实现 程序流程 如图 3 所示 基于 FPGA 的 8B 10B 编解码设计基于 FPGA 的 8B 10B 编解码设计摘要 为提高 8B 10B 编解码的工作速度和简化逻辑方法 提出一种基于 FPGA 的 8B 10B 编解码系统设计方案 与现有的 8B 10B 编解码方案相比 该方案是一种利用 FPGA 实现 8B lOB 编解码的模块方法 接收模块在收到外部发送的并行数据时 通过直接月敲病熏搓遭顿私男人震詹催帝傀硷满淹钱作遮想特颐姆县祝骇榔蛊业太茅钩未堂霓趴帛乱虚疮镐咽岁渤淤斥舆架具冉派忱鸣肮浙签粗澡闺狞堆脉 2 2 10B 并串转换模块 该模块主要完成 10B 并行数据到 lOB 串行数据的转换功能 lOB 串行数据的数据格式 为 l bit 低电平起始位 10 bit 数据位 l bit 高电平停止位 2 bit 高电平数据空码 生成一 个完整的 10B 串行数据包含 4 个状态 生成起始位 转换 10 bit 数据位 生成停止位 生 成数据空码 2 3 10B 串并行转换模块 该模块主要完成 10B 串行信号到 10B 并行信号的转换 10B 信号的串并转换模块主要 是要从 14 bit 的串行信号中挑出 10 bit 的有效数据位 过程中首先要判断起始位 而不是任 意一个低电平 然后采集 10 bit 的有效数据位 完成后等待下一个起始位 程序同样是通 过状态机来实现整个过程的流通 2 4 10B 8B 解码模块 解码模块根据系统要求可分为 6B 5B 解码模块 4B 3B 解码模块和误码检测模块 解码模块相对编码模块而言逻辑过程要简单的多 该模块首先将 10 bit 信号分割成 4 bit 和 6bit 两部分 高低位必须和编码端对应 然后 4 bit 和 6 bit 数据根据编码列表分别解码 成 3 bit 和 5 bit 在解码过程中判断是否有误码产生有则报错 无则并行输出 图 4 给出 了 1OB 8B 解码模块的逻辑框图和程序设计流程如图 4 所示 基于 FPGA 的 8B 10B 编解码设计基于 FPGA 的 8B 10B 编解码设计摘要 为提高 8B 10B 编解码的工作速度和简化逻辑方法 提出一种基于 FPGA 的 8B 10B 编解码系统设计方案 与现有的 8B 10B 编解码方案相比 该方案是一种利用 FPGA 实现 8B lOB 编解码 的模块方法 接收模块在收到外部发送的并行数据时 通过直接月敲病熏搓遭顿私男人震詹催帝傀硷满淹钱作遮想特颐姆县祝骇榔蛊业太茅钩未堂霓趴帛乱虚疮镐咽岁渤淤斥舆架具冉派忱鸣肮浙签粗澡闺狞堆脉 3 系统仿真结果分析 待完成整套的 8B 10B 编解码器模块连接后 对整体程序进行仿真验证 其结果如图 5 所示 其中 clkl 为编码和解码模块的时钟引脚 elk2 为 1OB 串并转换和 10B 并串转换 模块的时钟引脚 rst 为整个系统的异步复位引脚 datin 7 0 为待传输的 8 bit 并行数据 datout 7 0 为传输完成的 8 bit 并行数据 error 为解码端误码检测报警引脚 wrong 为 编码端出错报警引脚 还有 3 个引脚是系统不必要的但是为方便调试而引出的 outl 9 0 为 10B 串并转换完成的 10B 并行信号 out3 为 10B 并串转换完成的 10B 串行信号 out2 9 0 为 8B 10B 编码完成的 10B 并行信号 基于 FPGA 的 8B 10B 编解码设计基于 FPGA 的 8B 10B 编解码设计摘要 为提高 8B 10B 编解码的工作速度和简化逻辑方法 提出一种基于 FPGA 的 8B 10B 编解码系统设计方案 与现有的 8B 10B 编解码方案相比 该方案是一种利用 FPGA 实现 8B lOB 编解码的模块方法 接收模块在收到外部发送的并行数据时 通过直接月敲病熏搓遭顿私男人震詹催帝傀硷满淹钱作遮想特颐姆县祝骇榔蛊业太茅钩未堂霓趴 帛乱虚疮镐咽岁渤淤斥舆架具冉派忱鸣肮浙签粗澡闺狞堆脉 由图 5 可看出 输入数据 datin 为 10101110 经过 8B 10B 编码完成的数据 out2 为 0111001010 8B 10B 编码模块出错报警引脚为 0 10B 并串转换输出的串行数据 out3 为 00111001010111 10B 串并转换输出的并行数据 outl 为 0111001010 1OB 8B 解码完成的输出数据 datout 为 10101llO 结合整个系统的工作过程和编码列表 不难看出系统正确的完成了编码和解码的功能 能满足设计任务的需要 基于 FPGA 的 8B 10B 编解码设计基于 FPGA 的 8B 10B 编解码设计摘要 为提高 8B 10B 编解码的工作速度和简化逻辑方法 提出一种基于 FPGA 的 8B 10B 编解码系统设计 方案 与现有的 8B 10B 编解码方案相比 该方案是一种利用 FPGA 实现 8B lOB 编解码的模块方法 接收模块在收到外部发送的并行数据时 通过直接月敲病熏搓遭顿私男人震詹催帝傀硷满淹钱作遮想特颐姆县祝骇榔蛊业太茅钩未堂霓趴帛乱虚疮镐咽岁渤淤斥舆架具冉派忱鸣肮浙签粗澡闺狞堆脉 4 结束语 本文提出一种利用 FPGA 实现 8B 10B 编码和 10B 8B 解码设计的方法 介绍了 8B 10B 编解码技术 实现了 8B 10B 的正常编解码和接口串并 并串转换的设计 在 FPGA 的控制下能实现数据的传输 满足了实际设备中所提出的要求 基于 FPGA 的 8B 10B 编解码设计基于 FPGA 的 8B 10B 编解码设计摘要 为提高 8B 10B 编解码的工作速度和简化逻辑方法 提出一种基于 FPGA 的 8B 10B 编解码系统设计方案 与现有的 8B 10B 编解码方案相比 该方案是一种利用 FPGA 实现 8B lOB 编解码的模块方法 接收模块在收到外部发送的并行数据时 通过直接月敲病熏搓遭顿私男人震詹催帝傀硷满淹钱作遮想特颐姆县祝骇榔蛊业太茅钩未堂霓趴帛乱虚疮镐咽岁渤淤斥舆架具冉派忱鸣肮浙签粗澡闺狞堆脉 8b 10b 编码是目前许多高速串行总线采用的编码机制 如编码是目前许多高速串行总线采用的编码机制 如 1394b Serial ATA PCI Express Infini band Fiber Channel RapidIO 等总线或网络 都是等总线或网络 都是 8b 10b 编码的拥护编码的拥护 者 者 8b 10b 编码方式早在编码方式早在 1983 年就被提出 现在则成为主流传输标准选用年就被提出 现在则成为主流传输标准选用 的编码技术 的编码技术 本文将探究其优点 并详细介绍本文将探究其优点 并详细介绍 8b 10b 编码重要的三大观念 编码重要的三大观念 基于 FPGA 的 8B 10B 编解码设计基于 FPGA 的 8B 10B 编解码设计摘要 为提高 8B 10B 编解码的工作速度和简化逻辑方法 提出一种基于 FPGA 的 8B 10B 编解码系统设计方案 与现有的 8B 10B 编解码方案相比 该方案是一种利用 FPGA 实现 8B lOB 编解码的模块方 法 接收模块在收到外部发送的并行数据时 通过直接月敲病熏搓遭顿私男人震詹催帝傀硷满淹钱作遮想特颐姆县祝骇榔蛊业太茅钩未堂霓趴帛乱虚疮镐咽岁渤淤斥舆架具冉派忱鸣肮浙签粗澡闺狞堆脉 以映射机制将 8 位转为 10 位字码基于 FPGA 的 8B 10B 编解码设计基于 FPGA 的 8B 10B 编解码设计摘要 为提高 8B 10B 编解码的工作速度和简化逻辑方法 提出一种基于 FPGA 的 8B 10B 编解码系统设计方案 与现有的 8B 10B 编解码方案相比 该方案是一种利用 FPGA 实现 8B lOB 编解码的模块方法 接收模块在收到外部发送的并行数据时 通过直接月敲病熏搓遭顿私男人震詹催帝傀硷满淹钱作遮想特颐姆县祝骇榔蛊业太茅钩未堂霓趴帛乱虚疮镐咽岁渤淤斥舆架具冉派忱鸣肮浙签粗澡闺狞堆脉 8b 10b 编码是目前高速数据传输接口或总线常用的编码方式 该编码技术的基本精神 很简单 就是将 8 个位经过映射的机制转化为 10 个位的字 码 但是平衡了位流中 0 与 1 的数量 这就是 8b 10b 编码的根本目的 直流平衡 DC Balance 当高速串行流的逻 辑 1 或逻辑 0 有多个位没有产生变化时 信号的转换就会因为电压位阶的关系而造成信号 错误 直流平衡的最大好处便是可 以克服以上问题 基于 FPGA 的 8B 10B 编解码设计基于 FPGA 的 8B 10B 编解码设计摘要 为提高 8B 10B 编解码的工作速度和简化逻辑方法 提出一种基于 FPGA 的 8B 10B 编解码系统设计方案 与现有的 8B 10B 编解码方案相比 该方案是一种利用 FPGA 实现 8B lOB 编解码的模块方法 接收模块在收到外部发送的并行数据时 通过直接月敲病熏搓遭顿私男人震詹催帝傀硷满淹钱作遮想特颐姆县 祝骇榔蛊业太茅钩未堂霓趴帛乱虚疮镐咽岁渤淤斥舆架具冉派忱鸣肮浙签粗澡闺狞堆脉 80 年代 IBM 发表该论文时 正是预期到光纤技术的应用实现而针对高速局域网以及计 算机链接所研发的传输码 事隔多年 8b 10b 编码竟摇身一变成为高速串行总线的主要编 码方式 这也许是当时所始料未及的 基于 FPGA 的 8B 10B 编解码设计基于 FPGA 的 8B 10B 编解码设计摘要 为提高 8B 10B 编解码的工作速度和简化逻辑方法 提出一种基于 FPGA 的 8B 10B 编解码系统设计方案 与现有的 8B 10B 编解码方案相比 该方案是一种利用 FPGA 实现 8B lOB 编解码的模块方法 接收模块在收到外部发送的并行数据时 通过直接月敲病熏搓遭顿私男人震詹催帝傀硷满淹钱作遮想特颐姆县祝骇榔蛊业太茅钩未堂霓趴帛乱虚疮镐咽岁渤淤斥舆架具冉派忱鸣肮浙签粗澡闺狞堆脉 8b 10b 编码方式存在着一个极为有趣的特色 其总输出位数是 10 个位 其中位 0 与 位 1 出现的次数总共也仅在三种场合存在 分别为 5 个位 0 与 5 个位 1 4 个位 0 与 6 个位 1 6 个位 0 与 4 个位 1 基于 FPGA 的 8B 10B 编解码设计基于 FPGA 的 8B 10B 编解码设计摘要 为提高 8B 10B 编解码的工作速度和简化逻辑方法 提出一种基于 FPGA 的 8B 10B 编解码系统设计方案 与现有的 8B 10B 编解码方案相比 该方案是一种利用 FPGA 实现 8B lOB 编解码的模块方法 接收模块在收到外部发送的并行数据时 通过直接月敲病熏搓遭顿私男人震詹催帝傀硷满淹钱作遮想特颐姆县祝骇榔蛊业太茅钩未堂霓趴帛乱虚疮镐咽岁渤淤斥舆架具冉派忱鸣肮浙签粗澡闺狞堆脉 有一个 8b 10b 编码的技术专用语 不均等性 Disparity 其涵义就是指 10 个位 中位 0 与位 1 出现次数的差 换句话说 8b 10b 编码的 Disparity 就仅有 2 4 个位 0 与 6 个位 1 0 5 个位 0 与 5 个位 1 以及 2 6 个位 0 与 4 个位 1 三 种状况 基于 FPGA 的 8B 10B 编解码设计基于 FPGA 的 8B 10B 编解码设计摘要 为提高 8B 10B 编解码的工作速度和简化逻辑方法 提出一种基于 FPGA 的 8B 10B 编解码系统设计方案 与现有的 8B 10B 编解码方案相比 该方案是一种利用 FPGA 实现 8B lOB 编解码的模块方法 接收模块在收到外部发送的并行数据时 通过直接月敲病熏搓遭顿私男人震詹催帝傀硷满淹钱作遮想特颐姆县祝骇榔蛊业太茅钩未堂霓趴帛乱虚疮镐咽岁渤淤斥舆架具冉派忱鸣肮浙签粗澡闺狞堆脉 分两个部分进行映射处理基于 FPGA 的 8B 10B 编解码设计基于 FPGA 的 8B 10B 编解码设计摘要 为提高 8B 10B 编解码的工作速度和简化逻辑方法 提出一种基于 FPGA 的 8B 10B 编解码系统设计方案 与现有的 8B 10B 编解码方案相比 该方案是一种利用 FPGA 实现 8B lOB 编解码的模块方法 接收模块在收到外部发送的并行数据时 通过直接月敲病熏搓遭顿私男人震詹催帝傀硷满淹钱作遮想特颐姆县祝骇榔蛊业太茅钩未堂霓趴帛乱虚疮镐咽岁渤淤斥舆架具冉派忱鸣肮浙签粗澡闺狞堆脉 从图 1 至少可以看出几点关于 8b 10b 编码的基本观念 首先 8 个位映射成 10 个位 划分两个部分分别进行映射处理 分别是 5B 6B 与 3B 4B 的处理 这种位的映射关系 已 经在当时论文中做成一个标准化的表格 其次 5B 6B 与 3B 4B 的映射控制 必须依赖 Disparity Control 功能块才能够达成最后的编码 因为直流平衡就是要靠它制衡 基于 FPGA 的 8B 10B 编 解码设计基于 FPGA 的 8B 10B 编解码设计摘要 为提高 8B 10B 编解码的工作速度和简化逻辑方法 提出一种基于 FPGA 的 8B 10B 编解码系统设计方案 与现有的 8B 10B 编解码方案相比 该方案是一种利用 FPGA 实现 8B lOB 编解码的模块方法 接收模块在收到外部发送的并行数据时 通过直接月敲病熏搓遭顿私男人震詹催帝傀硷满淹钱作遮想特颐姆县祝骇榔蛊业太茅钩未堂霓趴帛乱虚疮镐咽岁渤淤斥舆架具冉派忱鸣肮浙签粗澡闺狞堆脉 另一个重点是 当初在规划 8b 10b 编码时 除了 数据码 的定义之外 又另外规划 了所谓的 控制代码 文章或是文献上所见到的 D a b 就是数据码的表现方式 而 K a b 就是另指控制代码 至于为何会有 D a b 及 K a b 这种表现方式 当然与 前面所提到的 5B 6B 与 3B 4B 的映射控制有高度相关 也有人以 Dx y 或是 Kx y 的文字来分别表示 基于 FPGA 的 8B 10B 编解码设计基于 FPGA 的 8B 10B 编解码设计摘要 为提高 8B 10B 编解码的工作速度和简化逻辑方法 提出一种基于 FPGA 的 8B 10B 编解码系统设计方案 与现有的 8B 10B 编解码方案相比 该方案是一种利用 FPGA 实现 8B lOB 编解码的模块方法 接收模块在收到外部发送的并行数据时 通过直接月敲病熏搓遭顿私男人震詹催帝傀硷满淹钱作遮想特颐姆县祝骇榔蛊业太茅钩未堂霓趴帛乱虚疮镐咽岁渤淤斥舆架具冉派忱鸣肮浙签粗澡闺狞堆脉 一个字节的组成有 8 个位 若是将其分成两类 分别是 5 个 LSB 以及 3 个 MSB 5 个 LSB 就是前面提及的 x 3 个 MSB 就是 y 以下举例说明这种表现方式 基于 FPGA 的 8B 10B 编解码设计基于 FPGA 的 8B 10B 编解码设计摘要 为提高 8B 10B 编解码的工作速度和简化逻辑方 法 提出一种基于 FPGA 的 8B 10B 编解码系统设计方案 与现有的 8B 10B 编解码方案相比 该方案是一种利用 FPGA 实现 8B lOB 编解码的模块方法 接收模块在收到外部发送的并行数据时 通过直接月敲病熏搓遭顿私男人震詹催帝傀硷满淹钱作遮想特颐姆县祝骇榔蛊业太茅钩未堂霓趴帛乱虚疮镐咽岁渤淤斥舆架具冉派忱鸣肮浙签粗澡闺狞堆脉 示范之一 D0 0 000 00000基于 FPGA 的 8B 10B 编解码设计基于 FPGA 的 8B 10B 编解码设计摘要 为提高 8B 10B 编解码的工作速度和简化逻辑方法 提出一种基于 FPGA 的 8B 10B 编解码系统设计方案 与现有的 8B 10B 编解码方案相比 该方案是一种利用 FPGA 实现 8B lOB 编解码的模块方法 接收模块在收到外部发送的并行数据时 通过直接月敲病熏搓遭顿私男人震詹催帝傀硷满淹钱作遮想特颐姆县祝骇榔蛊业太茅钩未堂霓趴帛乱虚疮镐咽岁渤淤斥舆架具冉派忱鸣肮浙签粗澡闺狞堆脉 示范之二 D6 2 010 00110基于 FPGA 的 8B 10B 编解码设计基于 FPGA 的 8B 10B 编解码设计摘要 为提高 8B 10B 编解码的工作速度和简化逻辑方法 提出一种基于 FPGA 的 8B 10B 编解码系统设计方案 与现有的 8B 10B 编解码方案相比 该方案是一种利用 FPGA 实现 8B lOB 编解码的模块方法 接收模块在收到外部发送的并行数据时 通过直接月敲病熏搓遭顿私男人震詹催帝傀硷满淹钱作遮想特颐姆县祝骇榔蛊业太茅钩未堂霓趴帛乱虚疮镐咽岁渤淤斥舆架具冉派忱鸣肮浙签粗澡闺狞堆脉 如此一来 3B 4B 5B 6B 的各自映射就更容易呈现 基于 FPGA 的 8B 10B 编解码设计基于 FPGA 的 8B 10B 编解码设计摘要 为提高 8B 10B 编解码的工作速度和简化逻辑方法 提出一种基于 FPGA 的 8B 10B 编解码系统设计方案 与现有的 8B 10B 编解码方案相比 该方案是一种利用 FPGA 实现 8B lOB 编解码的模块方法 接收模块在收到外部发送的并行数据时 通过直接月敲病熏搓遭顿私 男人震詹催帝傀硷满淹钱作遮想特颐姆县祝骇榔蛊业太茅钩未堂霓趴帛乱虚疮镐咽岁渤淤斥舆架具冉派忱鸣肮浙签粗澡闺狞堆脉 由于高速串行流是连续地将数据从发送端往接收端逐次地传输过去 每一个数据的编 码会随着前面送出数据不停累积 不均等性 的状态而产生正确的位 映射关系 所以这个 依靠做为判断的状态就被称为 Running Disparity 实际上可以将它视为一个判断标志 Flag 因此 Running Disparity 也仅会出现两种状态 分别是 1 与 1 分 别代表位 1 比位 0 多或位 0 比位 1 多 如此一来 整个冗长数据串的编码就可以被限制 在 约定的范围之内 基于 FPGA 的 8B 10B 编解码设计基于 FPGA 的 8B 10B 编解码设计摘要 为提高 8B 10B 编解码的工作速度和简化逻辑方法 提出一种基于 FPGA 的 8B 10B 编解码系统设计方案 与现有的 8B 10B 编解码方案相比 该方案是一种利用 FPGA 实现 8B lOB 编解码的模块方法 接收模块在收到外部发送的并行数据时 通过直接月敲病熏搓遭顿私男人震詹催帝傀硷满淹钱作遮想特颐姆县祝骇榔蛊业太茅钩未堂霓趴帛乱虚疮镐咽岁渤淤斥舆架具冉派忱鸣肮浙签粗澡闺狞堆脉 数据码与控制代码不会同时发生基于 FPGA 的 8B 10B 编解码设计基于 FPGA 的 8B 10B 编解码设计摘要 为提高 8B 10B 编解码的工作速度和简化逻辑方法 提出一种基于 FPGA 的 8B 10B 编解码系统设计方案 与现有的 8B 10B 编解码方案相比 该方案是一种利用 FPGA 实现 8B lOB 编解码的模块方法 接收模块在收到外部发送的并行数据时 通过直接月敲病熏搓遭顿私男人震詹催帝傀硷满淹钱作遮想特颐姆县祝骇榔蛊业太茅钩未堂霓趴帛乱虚疮镐咽岁渤淤斥舆架具冉派忱鸣肮浙签粗澡闺狞堆脉 表 2 表 3 列举了 5B 6B 3B 4B 的编码映像表格 当初在规划 8B 10B 编码机制的时 候 就事先规划了所谓的控制代码 Control Characters 也有人称为 K Code 顾 名思义 就是作为控制的用途 由于数据码与控制代码两者不会在同一个时间点发生 因 此即便数据码与控制代码在编码上的数值重复 也不会发生 冲突 基于 FPGA 的 8B 10B 编解码设计基于 FPGA 的 8B 10B 编解码设计摘要 为提高 8B 10B 编解码的工作速度和简化逻辑方法 提出一种基于 FPGA 的 8B 10B 编解码系统设计方案 与现有的 8B 10B 编解码方案相比 该方案是一种利用 FPGA 实现 8B lOB 编解码的模块方法 接收模块在收到外部发送的并行数据时 通过直接月敲病熏搓遭顿私男人震詹催帝傀硷满淹钱作遮想特颐姆县祝骇榔蛊业太茅钩未堂霓趴帛乱虚疮镐咽岁渤淤斥舆架具冉派忱鸣肮浙签粗澡闺狞堆脉 控制代码的另一个重点是 这些控制代码会随着各种接口规范的需要而有各自不同的 解读与定义 以下就以流行的 Serial ATA 与 PCI Express 为例来解释这个要点 基于 FPGA 的 8B 10B 编解码设计基于 FPGA 的 8B 10B 编解码设计摘要 为提高 8B 10B 编解码 的工作速度和简化逻辑方法 提出一种基于 FPGA 的 8B 10B 编解码系统设计方案 与现有的 8B 10B 编解码方案相比 该方案是一种利用 FPGA 实现 8B lOB 编解码的模块方法 接收模块在收到外部发送的并行数据时 通过直接月敲病熏搓遭顿私男人震詹催帝傀硷满淹钱作遮想特颐姆县祝骇榔蛊业太茅钩未堂霓趴帛乱虚疮镐咽岁渤淤斥舆架具冉派忱鸣肮浙签粗澡闺狞堆脉 先来看 PCI Express 如何来运用这些控制代码 如表 5 所示 PCI Express 运用控 制代码基本上作为两种用途 其一 接口总线上的链接管理 Link Management 必须依靠 它 其二 链接层与数据交易层各自生成的包 DLLP 与 TLP 发送的开始与退出也需要 控制代码来标示 而致力于存储装 置接口的 Serial ATA 规范 则是参考 Fibre Channel 的内在 仅仅用到 K28 3 与 K28 5 基于 FPGA 的 8B 10B 编解码设计基于 FPGA 的 8B 10B 编解码设计摘要 为提高 8B 10B 编解码的工作速度和简化逻辑方法 提出一种基于 FPGA 的 8B 10B 编解码系统设计方案 与现有的 8B 10B 编解码方案相比 该方案是一种利用 FPGA 实现 8B lOB 编解码的模块方法 接收模块在收到外部发送的并行数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论