您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 基于FPGA的帧同步实现
基于FPGA的帧同步实现(1)假设帧同步码为13位巴克码,在ISE或Quartus等FPGA软件内实现巴克码的帧同步,并仿真给出帧同步算法的性能(虚警概率,漏检概率等)。1、分析:VHDL中,关键是把特殊码组从信号流中识别出来。巴克码一般在开头或末尾,采用分频器。当分频器输出一个脉冲时,识别器也应该输出一个脉冲。只要它们的相位对应输出,就能把帧同步信号提取出来,因此,识别器和分频器是整个电路的核心,并且它们的相位应严格对应。(1)实验电路建模:(2)实验设计电路图:分频器与门2非门与门3置零与门4与门1SETSQR ̄Q或门÷N置零时钟识别器信码输入自动门限图表1帧同步信号提取电路模型(3)识别器模块:2、VHDL实验流程图:(1)译码器流程图模型:(2)判决器建模流程图:(3)自动门限建模流程图:十三位移存器输出“1111111111111”输出“1101”只有一位为“0”输出“0000”输出“1100”是否否是译码器输出a;自动门限输出ba=b输出为“0”输出为“1”否是(4)时钟控制器建模流程图:三源代码解析verilogHDL:sbq:instlibraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitysbqis状态触发器Q端输出等于“1”输出“11101”输出“1100”是否时钟输入第1时钟到达输出为“1”输出为“0”是否port(din,clk:instd_logic;q12,q11,q10,q9,q8,q7,q6,q5,q4,q3,q2,q1,q0:outstd_logic);endsbq;architecturertlofsbqissignaltmp:std_logic_vector(12downto0);beginprocess(clk,din)beginif(clk'eventandclk='1')thentmp(12)=din;foriin1to12looptmp(12-i)=tmp(13-i);endloop;endif;endprocess;q12=tmp(12);q11=nottmp(11);q10=tmp(10);q9=nottmp(9);q8=tmp(8);q7=tmp(7);q6=nottmp(6);q5=nottmp(5);q4=tmp(4);q3=tmp(3);q2=tmp(2);q1=tmp(1);q0=tmp(0);endrtl;yimaqilibraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityyimaqiisport(Q12,Q11,Q10,Q9,Q8,Q7,Q6,Q5,Q4,Q3,Q2,Q1,Q0:instd_logic;selt:outstd_logic_vector(3downto0));endyimaqi;architecturertlofyimaqiissignalsel:std_logic_vector(12downto0);beginsel=Q12&Q11&Q10&Q9&Q8&Q7&Q6&Q5&Q4&Q3&Q2&Q1&Q0;process(sel)begincaseseliswhen1111111111111=selt=1101;when1111111111110=selt=1100;when1111111111101=selt=1100;when1111111111011=selt=1100;when1111111110111=selt=1100;when1111111101111=selt=1100;when1111111011111=selt=1100;when1111110111111=selt=1100;when1111101111111=selt=1100;when1111011111111=selt=1100;when1110111111111=selt=1100;when1101111111111=selt=1100;when1011111111111=selt=1100;when0111111111111=selt=1100;whenothers=selt=0000;endcase;endprocess;endrtl;panjueqi:inst2libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitypanjueqiisport(a,b:instd_logic_vector(3downto0);c:bufferstd_logic);endpanjueqi;architecturertlofpanjueqiisbeginc='1'whena=belse'0';endrtl;xuanzeqi:inst3libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitypanjueqiisport(a,b:instd_logic_vector(3downto0);c:bufferstd_logic);endpanjueqi;architecturertlofpanjueqiisbeginc='1'whena=belse'0';endrtl;fenpin5:inst4libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityfenpin5isport(en,clk:instd_logic;fenp_5_output:outstd_logic);endfenpin5;architecturertloffenpin5isbeginprocess(clk,en)variablesum:std_logic_vector(2downto0);beginifrising_edge(clk)thenifen='1'thensum:=000;elsesum:=sum+'1';ifsum=5thensum:=000;fenp_5_output='1'after10ns;elsefenp_5_output='0';endif;endif;endif;endprocess;endrtl;Fenpin45:inst5libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityfenpin45isport(en,clk:instd_logic;fenp_45_output:outstd_logic);endfenpin45;architecturertloffenpin45isbeginprocess(clk,en)variablesum:std_logic_vector(4downto0);beginifrising_edge(clk)thenifen='1'thensum:=00000;elsesum:=sum+'1';ifsum=44thensum:=00000;fenp_45_output='1'after10ns;elsefenp_45_output='0';endif;endif;endif;endprocess;endrtl;clkcontr:inst6libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityclkcontrisport(clk:instd_logic;q:outstd_logic);endclkcontr;architecturertlofclkcontrisbeginprocess(clk)beginif(clk'eventandclk='1')thenq='1';endif;endprocess;endrtl;rs_clk:inst19libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityrs_clkisport(r,s,res:instd_logic;Q,not_Q:outstd_logic);endrs_clk;architecturertlofrs_clkissignalsel1,sel2:std_logic;beginprocess(res,r,s)beginif(res='0')thensel1='0';sel2='1';elsif(s='1'andr='0')thensel1='1';sel2='0';elsif(s='0'andr='1')thensel1='0';sel2='1';elsif(s='0'andr='0')thensel1='0';sel2='1';endif;Q=sel1;not_Q=sel2;endprocess;endrtl;VHDL:分频模块输出45:识别器模块仿真结果选择器输出来确定判决门限帧同步输出波形仿真:参考文献:黄智伟.基于FPGA数字通信系统建模设计.电子工业出版社
本文标题:基于FPGA的帧同步实现
链接地址:https://www.777doc.com/doc-4147401 .html