您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 能源与动力工程 > 可控m序列发生器的VHDL实现
可控m序列发生器的VHDL实现杨晶超1.设计类型图1n位线性反馈移位寄存器结构(1)n=5的m序列;(2)反馈系数Ci=45(八进制),转化为二进制为100101,即C0=1,C1=0,C2=0,C3=1,C4=0,C5=1;(3)5级移位寄存器(D5~D1)初始状态为10000。基于以上条件,得到输出周期为31的m序列为1000010010110011111000110111010。2.可控目标(1)可以控制延迟若干个码元后开始发送;(2)可以控制相邻两组m序列之间的发送间隔码元数;(3)可以控制在发送若干组m序列之后结束。其中,延迟、间隔和结束均用高电平表示。3.程序流程图2主流程图开始初始化反馈系数和初始状态延迟X个码元发送Y组间隔Z个码元的m序列结束图3延迟X个码元发送图4间隔Z个码元发送图5发送Y组m序列cnt=cnt+1cnt=Y是否检测到移位寄存器最后一个状态结束开始count=count+1发送m序列countX否是Z=Z—1发送m序列Z=0是否检测到移位寄存器最后一个状态4.实现结果图6延迟0个码元,间隔5个码元,发送2个周期图7延迟1个码元,间隔10个码元,发送3个周期图8延迟2个码元,间隔15个码元,发送4个周期附程序代码:libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useIEEE.STD_LOGIC_ARITH.ALL;useIEEE.STD_LOGIC_UNSIGNED.ALL;entitym_sequenceisgeneric(length:positive:=4;tap1:positive:=4;tap2:positive:=2);port(clk,reset:inbit;prbs:outbit);endm_sequence;architectureBehavioralofm_sequenceissignalprreg:bit_vector(lengthdownto0);signalenable:std_logic:='0';signalenable2:integer:=0;signalcnt:integer:=0;beginprocess(clk)variablecount:integer:=0;beginif(clk'eventandclk='1')thenif(count2orcnt=4)then--延迟2个码元,发送4个周期count:=count+1;enable='0';elseenable='1';endif;endif;endprocess;process(clk,reset,prreg,enable)beginifreset='0'thenprreg=(length='1',others='0');--初始状态elsif(clk'eventandclk='1')andenable='1'thenprreg=prreg((length-1)downto0)&(prreg(tap1)xorprreg(tap2));ifprreg=01000thenenable2=15;--间隔15个码元cnt=cnt+1;elseenable2=0;endif;ifenable2/=0thenenable2=enable2-1;prreg=(length='1',others='0');endif;endif;endprocess;process(enable,prreg(length))beginifenable='1'thenprbs=prreg(length);elseprbs='1';endif;endprocess;endBehavioral;
本文标题:可控m序列发生器的VHDL实现
链接地址:https://www.777doc.com/doc-4357089 .html