欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于VHDL语言的5B6B编译系统设计.docx

    • 资源ID:1257961       资源大小:376.55KB        全文页数:21页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于VHDL语言的5B6B编译系统设计.docx

    1、基于VHDL语言的5B6B编译系统设计基于VHDL语言的5B6B编译系统设计摘要: mBnB 码是光纤通信系统中常用的码型之一, 本次设计了一种简单实用的5B6B 编码方法, 并提出了用A ltera开发系统的硬件描述语言VHDL 实现全数字5B6B 编译码电路的设计思想和方法, 最后给出了波形仿真结果。本文给出了针对该编码方法的除数字锁相环之外的一种简单方便的VHDL 语言设计方法。关键词: 5B6B 码; FPGA; VHDL 语言; 波形仿真编码部分(Encode5B6B):一、 5B6B 编码原理 mBnB码又叫分组码,是一类冗余二进制码,常见到的有1B2B、2B3B、4B5B、5B6

    2、B、8B10B等码型。它将输入的原始码流分成mB为一组的码字,然后在同样的时间内将其变换成n(nm)比特(nB)为一组的较长码字,最后以不归零或归零格式传输这些新码流。m和n均为正整数,一般是n=m+1。通过变换,线路码数率比原二进制码率提高了n/m倍。5B6B码为字母型平衡码中mBnB码的一种,其编码复杂性和比特冗余度之间是最合理的折中,因此使用较为普遍。在5B6B码中,5伟二进制码共有=32种不同的码字,而6位二进制码共有64种不同的码字,必须从64种码字中选出适宜的码字去对应5B码的32种码字。首先引入不平衡度D(Dispartty)的概念,它表示一个码字中“0”元数目减去“1”元数目的

    3、差值,差值为零的码字为零不平衡度码字。由于6B码码长为偶数,所以D必为偶数,即D为0,2,-2,4,-4,6,-6。在6B码的64个码字中,有20个零平衡度码字,可以代表20个5B码字。通常情况下,根据尽量选择低不平衡度码字的原则,找出D=2,-2的码字各有12种,为了使“0”码和“1”码出现的机会相同,可以把这些码字相对应的交替使用,用以代表5B码中另外的12个码字。这样编出来的6B码流中最大同符号连续数为6,“0”码和“1”码出现的概率均等,各占50%,所以可以认为没有直流漂移。必须指出,根据不同目的(例如:直流分量最低或实现方法简单等)所提出的编码方案,所对应的编码表是不同的。在本文中,

    4、出于减少最大同符号连续数的考虑,采用表一所示的5B6B 编码表,表中巧妙的调整了正,负不均码与均等吗的对应关系(例如输入码子“7”,“24”的变换),使本码表得出的6b码流中最大的同符号连续数为5,使“0”、“1”的转换概率达到了0.5915,提高了定时信息的含量。 表一中,模式1和模式2分别由19个D=0的码字和13个RDS=2,-2的码字组成。大多数mBnB 码都采用两种模式编码, 两种模式交替使码字中的不均值为零。这种编码电路多采用可编程只读存储器PROM 查找表的方法实现。下面是一种5B6B码的码表。 表一如下 所示:输入码字(5b)输出码字(6b)输入码字(5b)输出码字(6b)模式

    5、一模式二模式一模式二00000011001011001016100001100011100011000011100111000011710001111001010001200010110110100010181001011101001001030001110001110001119100110100110100114001001101011001002010100110100110100500101100101100101211010101010101010160011010011010011022101100101100101107001111001110001112310111010111

    6、010100801000101011101000241100011100001100090100110100110100125110010110010110011001010101010101010261101001101001101011010110010110010112711011011011001010120110010110010110028111000111000111001301101101101000101291110101110100100114011101011100001103011110011110001100150111100111000111031111110011

    7、01001101 二 5B6B 的编码电路设计 5B6B 编码电路的工作原理: 为了实现5B6B 编码, 本设计是以随机码作为输入的数字信号。因此, 完整的5B6B 编码电路包括分频电路、串并转换电路、编码电路和并串转换电路组成。 (1)五分频器:五分频 序列发生器的输入时钟脉冲五分频,从而可以实现每输入5BIT的串行信号就同步转换输出出五位的并行信号,实现时钟信号的同步。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt5 isport(clk5:in std_logic; n

    8、ewclk1:out std_logic);end;architecture exam of CNT5 issignal q:integer range 0 to 4;signal temp: std_logic;beginprocess(clk5) begin if clk5event and clk5=1 then -表示检测clock的上升沿 if q=4 then q=0; temp=1; else q=q+1;temp=0; end if; end if; end process; newclk1=temp; -newclk1是用于五串变五并模块和编码部分的控制时钟end exam;

    9、五分频分频功能仿真波(2) 串并转换(5位串变5位并)(用循环移位实现)Clk0来一次有效,Y接收串行的数据就向右移一位,当五分频的信号clk5有效时把Y输出。编码部分五串变五并程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity SER2PAR5to5 isport(clk5:in std_logic;shift_in:in std_logic;A:out std_logic_vector(4 downto 0);end ;architecture one of SER2PAR5t

    10、o5 issignal q: std_logic_vector(4 downto 0);beginp1:process(clk5)beginif clk5event and clk5=1 thenq=shift_in & q(4 downto 1);end if;end process p1;AREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGRE

    11、GREGREGREGREGREGREGREGREGREGREGREGREGREGREGREG=NULL; end case; end if; END PROCESS P1; P2:PROCESS(CLK6) BEGIN IF CLK6EVENT AND CLK6=1 THEN Q=REG; END IF; END PROCESS P2; END ONE;编码仿真波形如下:(4)六分频器:六分频 序列发生器的输入时钟脉冲六分频,从而可以实现每输入6BIT的并行信号就将其转换给变量。具体程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.s

    12、td_logic_unsigned.all;entity CNT6 isport(clk6:in std_logic; cnter:out std_logic);end;architecture exam of CNT6 issignal q:std_logic_vector(2 downto 0);signal temp: std_logic;beginprocess(clk6) begin if clk6event and clk6=1 then if q=101 then q=000; temp=1; else q=q+1; temp=0; end if; end if; end pro

    13、cess; cnter=temp;end exam;六分频分频功能仿真波形图:(5)六位并变串转换 把编码实现的6位码,由并行转换为串行输出。library ieee;use ieee.std_logic_1164.all;entity PAR2SER6to6 isport (clk0,clk6: in std_logic;Q : in std_logic_vector(5 downto 0);shift_out : out std_logic);end PAR2SER6to6;architecture one of PAR2SER6to6 is signal N:INTEGER RANGE

    14、0 TO 5; signal REG:std_logic_vector(5 downto 0); begin p1:process(clk6,Q) begin if clk6event and clk6=1 then REG=Q; end if; end process p1; PROCESS(CLK0,REG,N) BEGIN IF CLK0EVENT AND CLK0=1THEN IF N=5 THEN N=0; ELSE Nshift_outshift_outshift_outshift_outshift_outshift_outshift_out=X; end case; end pr

    15、ocess; end one;六位并到串 仿真波形图:解码部分(Encode5B6B):一、解码原理 解码器与编码器基本相同,只是除去组别控制部分。 译码时,把送来的已变换的6B信号码流,每6比特并联为一组,作为PROM的地址,然后读出5B码,再经过并-串变换还原为原来的信号码流。二 5B6B 的译码电路设计解码器包括5分频电路、6分频电路、串并转换电路、解码电路和并串转换电路组成。(1)译码部分六分频器(用于产生同步时钟信号):library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity CNT

    16、6 isport(clk6:in std_logic; cnter:out std_logic);end;architecture exam of CNT6 issignal q:std_logic_vector(2 downto 0);signal temp: std_logic;beginprocess(clk6) begin if clk6event and clk6=1 then if q=101 then q=000; temp=1; else q=q+1; temp=0; end if; end if; end process; cnter=temp;end exam;六分频分频功

    17、能仿真波形图:(2)串行转并行(6位串变6位并):library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity SER2PAR6to6 is port(clk6:in std_logic; shift_in:in std_logic; A:out std_logic_vector(5 downto 0);end ;architecture one of SER2PAR6to6 issignal q: std_logic_vector(5 downto 0);begin p1:process(clk6) begin if clk6event and clk6=1 then q=shift_in & q(5 downto 1); end if; end process p1; AREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREGREG


    注意事项

    本文(基于VHDL语言的5B6B编译系统设计.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开