当前位置:首页 > EDA > 电子设计自动化
[导读] 摘要:在数字通信的数据传输过程中,需要保持数据在传输过程中的同步,因此要在数据传输过程中插入帧同步字进行检测,从而有效避免发送数据和接收数据在传输过程中出现的异步问题。文中提出了一种采用流水线技术、

 摘要:在数字通信的数据传输过程中,需要保持数据在传输过程中的同步,因此要在数据传输过程中插入帧同步字进行检测,从而有效避免发送数据和接收数据在传输过程中出现的异步问题。文中提出了一种采用流水线技术、基于 FPGA设计高速数字相关器的方法。仿真结果表明设计方案是可行的。

  在数字通信系统中,常用一个特定的序列作为数据开始的标志,称为帧同步字。在数字传输的过程中,发送端要在发送数据之前插入帧同步字。接收机需要在已解调的数据流中搜寻帧同步字,以确定帧的位置和帧定时信息。帧同步字一般为一系列连续的码元,在接收端需要对这一系列连续的码元进行检测,如果与预先确定的帧同步字吻合,则说明接收端与发送端的数据是保持同步的,开始接收,否则不能进行接收。完成帧同步字检测工作的正是数字相关器。本文采用流水线技术,研究了基于 FPGA的高速数字相关器的设计方法,并给出了 MAX+PLUSII环境下的仿真结果。

  1 数字相关器原理

  数字相关器在通信信号处理中实质是起到数字匹配滤波器的作用,它可对特定码序列进行相关处理,从而完成信号的解码,恢复出传送的信息。其实现方法是进行两个数字信号之间的相关运算,即比较等长度的两个数字序列之间有多少位相同,多少位不同。昀基本的相关器是异或门,例如,y=a⊕b,当 a=b时,y=0,表示两位数据相同;当 a≠b时,y=1,表示两位数据不同。多位数字相关器可以由一位相关器级连构成。 N位数字相关器的运算通常可以分解为以下两个步骤:对应位进行异或运算,得到 N个 1位相关运算结果;统计 N位相关运算结果中 0或 1的数目,得到 N位数字中相同位和不同位的数目。

  当数字相关器接收到一组数据时,在时钟的上升沿对帧同步字进行检测。对于帧同步字是一个连续 16位的码元,数字相关器在进行检测的过程中,只有当连续检测到 16位的码元与预先设定的帧同步字完全相同时,才由输出端输出信号表示帧同步。否则,任何一位出现不相等,数字相关器又将重新开始进行检测,直到出现连续的 16位码元与预先设定的 16位码元完全相等时才进行输出。数字相关器的设计一般考虑采用串行输入或并行输入两种输入检测方式,由于串行输入是在 16个时钟周期内依次对两路串行输入信号 A、B进行异或运算,并统计数据位相同个数,检测速度较慢,要提高检测速度,就要考虑采用并行输入检测方式。

  2 高速数字相关器的 FPGA实现

  在 16位并行数字相关器中,由于实现 16位并行相关器需要的乘积项、或门过多,因此为降低耗用资源,可以分解为 4个 4位相关器,然后用两级加法器相加得到全部 16位的相关结果,其结构图如图 1所示,如果直接实现该电路,整个运算至少要经过三级门延时。随着相关数目的增加,速度还将进一步降低。为提高速度,采用“流水线技术”进行设计,模块中对每一步运算结果都进行锁存,按照时钟节拍逐级完成运算的全过程。虽然每组输入值需要经过三个节拍后才能得到运算结果,但是,每个节拍都有一组新值输入到第一级运算电路,每级运算电路上都有一组数据同时进行运算,所以总的来讲,每步运算花费的时间只有一个时钟周期,从而使系统工作速度基本等于时钟工作频率。

  在使用 VHDL进行高速数字相关器设计时,主要实现 4位相关器和多位加法器模块的设计。其元件生成图分别是 4位相关器模块 XIANGGUAN4、3位加法器模块 ADD3和 4位加法器模块 ADD4,其电路原理图如图 2所示。其中 4位相关器模块 XIANGGUAN4的主要源代码为:

  entity xiangguan4 is

  port(a,b:in std_logic_vector(3 downto 0);

  sum:out std_logic_vector(2 downto 0);

  clk:in std_logic);

  end ;

  architecture one of xiangguan4 is

  signal ab :std_logic_vector(3 downto 0);

  begin

  ab<=a xor b; --判断 a,b是否相同

  process(clk)

  begin

  if clk'event and clk='1' then

  if ab="1111" then sum<="000"; --列出各种组合,输出相应相关值

  elsif ab="0111" or ab="1011" or ab="1101" or ab="1110" then sum<="001";

  elsif ab="0001" or ab="0010" or ab="0100" or ab="1000" then sum<="011";

  elsif ab="0000" then sum<="100";

  else sum<="010";

  end if;

  end if;

  end process;

  end one;

  3 仿真实验及结论

  在 MAX+PLUSII环境下,根据高速数字相关器的原理图进行设计,这里将时钟端 gck设计为周期 10ns的时钟。a[15..0]端为帧同步字设置端,将其设置为 1、0交替码; b[15..0]端为码元输入端,输入连续的信号,其输入码元的周期也为 10ns ;c[4..0]作为记录信号,记录连续的输入码元与帧同步字相同的个数。然后对原理图进行编译、仿真,得到仿真波形如图 3所示。可以看出,从连续的 16个码元输入到同步检测输出经过 3个时钟周期,输出端 c[4..0]表示了连续的输入码元 b与帧同步字 a相同的个数,当 c[4..0]为 16时,表示 a和 b实现了同步。在对高速数字相关器进行编译、仿真成功后,对引脚进行锁定并将编程文件下载到 ALTERA公司 ACE1K系列芯片 EP1K30QC208进行实验验证,实验结果正确,表明设计是可行的。

  4 结束语

  数字相关器实现了数字通信过程中帧同步字的检测,在数字通信系统中具有重要的作用,广泛应用于帧同步字检测、扩频接收机、误码校正以及模式匹配等领域。本文采用 FPGA对高速数字相关器进行设计,并进行了编译仿真和下载实现。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

最近为什么越来越多的研究开始利用FPGA作为CNN加速器?FPGA与CNN的相遇究竟能带来什么神奇效果呢?原来,FPGA拥有大量的可编程逻辑资源,相对于GPU,它的可重构性以及高功耗能效比的优点,是GPU无法比拟的;同时...

关键字: FPGA 可编程逻辑资源 GPU

FPGA的应用领域包罗万象,我们今天来看看在音乐科技领域及医疗照护的智能巧思。

关键字: FPGA 科技领域 智能

强大的产品可降低信号噪音并提高分辨率与动态

关键字: Spectrum仪器 数字化仪 FPGA

最近某项目采用以太网通信,实践起来有些奇怪,好像设计成只能应答某类计算机的ICMP(ping)命令, 某类计算机指的是Windows特定系统,其他系统发送ping都不能正确识别。

关键字: 嵌入式Linux FPGA 协议

近两年,国外厂商的FPGA芯片价格飙升,由于价格,货期,出口管制等多方面因素的影响,很多公司都在寻找FPGA国产化替代方案。我工作中正在使用的几款芯片也面临停产的风险,用一片少一片,了解到国产FPGA发展的也不错,完全自...

关键字: FPGA 芯片 EDA

本篇是FPGA之旅设计的第十二例,在前面的例程中,完成了DS18B20温度传感器数据的采集,并且将采集到的数据显示在数码管上。由于本例将对温湿度传感器DHT11进行采集,而且两者的数据采集过程类似,所以可以参考一下前面的...

关键字: FPGA DS18B20温度传感器

这是FPGA之旅设计的第十三例啦,本例是一个综合性的例程,基于OLED屏幕显示,和DHT11温湿度采集,将DHT11采集到的温湿度显示到OLED屏幕上。

关键字: FPGA OLED屏幕

第八例啦,本例将介绍如何通过FPGA采集DS18B20传感器的温度值。

关键字: FPGA DS18B20传感器

这是FPGA之旅设计的第九例啦!!!本例将介绍如何使用FPGA驱动OLED屏幕,并在接下来的几例中,配合其它模块,进行一些有趣的综合实验。由于使用的OLED屏是IIC接口的,对IIC接口不是很清楚的,可以参考第五例的设计...

关键字: FPGA OLED屏幕

这是FPGA之旅设计的第十例啦,在上一例中,已经成功驱动了OLED屏幕,本例将结合上一例,以及第四例多bytes串口通信做一个有趣的例程。

关键字: FPGA OLED屏 串口

电子设计自动化

21260 篇文章

关注

发布文章

编辑精选

技术子站

关闭