设计报告--016---帧同步提取电路的FPGA设计与实现
- 格式:doc
- 大小:198.00 KB
- 文档页数:6
帧同步提取电路的FPGA设计与实现
本设计是基于可编程逻辑门阵列(FPGA)用连贯式插入法来实现帧同步电路的设计。采用自顶向下的设计方法,系统顶层设计包括自系统功能分配,内不功能模块的连接和对外的接口关系。根据帧同步器的原理图,先将电路分为识别器,分频器,状态触发器3个大的模块分别设计实现再进行顶层文件设计。具体的设计流程如图1所示:
图1 帧同步电路设计流程
根据流程图可做出顶层文件图。整个帧同步提取电路框图如图2所示 : 信号输入
巴克码识别器
是否出现7位巴克码 否
是 分频器en=1
32分频器
识别器是否无输出
否 连续出现6次无输出
同步建立
同步信号输出
图2 帧同步电路的顶层原理图
由顶层原理图可知,帧同步电路的底层有四个子模块:barker子模块,decoder子模块,cnt32子模块和franecontrol子模块。其中barker子模块和decoder子模块共同组成一个巴克码识别器,当一个串行的信息流由codein端口进入电路时,先经barker子模块初步处理变为7位一组的并行信号,随后经decoder子模块对处理后的信息进行判决,决定整个巴克码识别器的输出是“1”还是“0”。cnt32模块其实是一个32分频器。它是一个辅助模块,但同样十分重要。它的工作过程如下:一旦识别器有脉冲输出它也将输出一个相同的脉冲,使系统由捕捉态转为维持态,提示系统建立帧同步。framecontrol子模块具体地完成同步状态的捕捉,维持和抗干扰功能。
按照框图结构,本设计先逐步完成barker模块,decoder模块,cnt32模块和franecontrol模块的设计,然后用顶层模块把他们连接起来,从而完成整个电路的设计。
一. 巴克码识别器的设计
巴克码识别器的功能是将巴克码从信息流中识别出来,由barker子模块和decoder子模块共同组成。其中barker子模块如图3所示:
图3 barker模块
clk为时钟信号,codien为接受信息流端,q[6…0]端输出经barker子模块处理后的7为一组的并行信号。电路仿真图如图4 所示:
图4 barker模块仿真波形
q[0]至q[6]为处理后的7位一组的并行信号,已将其按巴克码规律进行初步处理,即对相应于巴克码0位置上的数进行非运算。选用的巴克码为1110010。
decoder子模块如图5所示:
图5 decoder模块
图5是巴克码识别器的另一个组成部分decoder模块,decoder模块输出巴克码识别结果。以上两个模块组成了一个完整的巴克码识别器。仿真图如图6所示:
图6 decoder模块仿真波形
decoder模块的功能是译码和判决。译码功能:decoder子模块对barker子模块的7位并行输出结果进行译码处理,即将“1111111”译码为“111”;将含一位„0‟的码组译为“110”;其他情况译为“000”。这样做只考虑自动门限为7和6两中情况。在同步未建立时的系统捕捉状态,门限为7,在同步建立后的系统维持状态,门限为6。其目的是减少假同步概率和提高系统的抗干扰性能。判决功能:当译码输出大于或等于6时,该模块输出为„1‟,否则为„0‟。
二.32分频器
图7所示的cnt32子模块就是一个32分频器。本设计中一个信号的长度为32。32分频器的功能就是当帧头输出时,产生一个与巴克码识别器相同的脉冲。
图7 cnt32子模块
核心代码如下:
IF (en='1') THEN
countx<="00000";
co<='1';
ELSIF (clk'EVENT AND clk='1') THEN IF (en='0') THEN
IF (countx="11111") THEN
countx<="00000";
co<='1';
ELSE
countx<=countx+'1';
co<='0';
END IF;
END IF;
END IF;
这是一个不断循环的程序,目的是当en=‘1’时,输出co=‘1’。电路仿真图如图8所示:
图8 cnt32子模块仿真波形
图8中en为一个可随系统状态而变的电平输入,这里相当于巴克码识别器中decoder子模块的判决输出。co端为脉冲输出,clk是时钟信号。虽然有较大的延时,但图中给出了当巴克码识别器有脉冲输出时,co输出端会产生一个相同的脉冲,实现了cnt32子模块的功能。也就是说:系统处于捕捉态时,巴克码识别器检测输入信号的同步码组。由于 decoder子模块的判决功能使他的输出为“1”时,分频器的输出端co也为“1”。
三.同步状态的捕捉和维持
图9 framecontrol模块
framecontrol子模块完成同步状态的捕捉,维持和抗干扰功能。具体程序见附录。
四.顶层设计
顶层原理图如图10所示:
图10 帧同步电路的顶层原理图
设计中的帧同步码选用7位的巴克码:1110010为例,它的仿真波形如图4.11所示:
图11 帧同步电路的仿真波形
图11中clk为一个时钟输入信号,codein作为唯一的一个输入信号,这里对与信号本身所表达的信息不表,由图11可以看出:若在这一信号的头尾个插入一个7位的巴克码:1110010,则输出fsynout会在这段信号的结尾会有一个高电平的标记,帧同步信号提取成功。
由图11仿真波形图可以看出,电路可以提取接受码元中的帧同步信号,并且完全可以抵抗消息码元中的假同步干扰。