设计报告--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仿真波形图可以看出,电路可以提取接受码元中的帧同步信号,并且完全可以抵抗消息码元中的假同步干扰。