0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于FPGA芯片实现数据时钟同步设计方案

FPGA设计论坛 来源:未知 2023-05-16 23:55 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

数字信号处理模块是接收机系统的 部分,系统要求数字信号处理模块能实时处理ADC变换后的数字信号,并用软件的方法来实现大量的无线电功能,这些功能包括:多通道校准、编解码、调制解调、滤波、同步、盲均衡、检测、数据加密、传输加密纠错、跳扩频及解扩和解跳、通信环境评估、信道选择等,而单个DSP根本无法完成这些功能。目前可用的一些高速DSP的性能 快的也不超过5GIPS ,与实际需求相差巨大。这种处理资源的匮乏,被称之为DSP 瓶颈[1],因此我们在本系统中主要采用Xilinx的FPGA芯片实现后端数字信号处理。

时钟同步

FPGA硬件设计中,时钟是整个设计 重要、 特殊的信号,异步信号输入总是无法满足数据的建立保持时间,所以需要把所有异步输入都先进行同步化。时钟同步的重要性如下:

● 系统内大部分器件的动作都是在时钟的跳变沿上进行,这就要求时钟信号时延差要非常小,否则就可能造成时序逻辑状态出错;

● 时钟信号通常是系统中频率 的信号;

● 时钟信号通常是负载 重的信号,所以要合理分配负载。出于这样的考虑在FPGA这类可编程件内部一般都设有数量不等的专门用于系统时钟驱动的全局时钟网络。

对于一个设计项目来说,全局时钟(或同步时钟)是 简单和 可预测的时钟。只要可能就应尽量在设计项目中采用全局时钟。FPGA都具有专门的全局时钟引脚,它直接连到器件中的每一个寄存器。这种全局时钟提供器件中 短的时钟到输出的延时。

但在许多应用中会出现两个或两个以上非同源时钟,系统设计将面临复杂的时间问题,数据的建立和保持时间很难得到保证。对于需要多时钟的时序电路, 将所有非同源时钟同步化,即选用一个频率是它们的时钟频率公倍数的高频主时钟。各个功能模块要使用统一的复位电路。在使用带时钟的触发器、计数器等有复位端的库器件时,一般应尽量使用有同步复位的器件。注意复位时应保证各个器件都能复位,以避免某些寄存器的初始状态不确定而引起系统工作不可靠。

基于以上分析,在本设计中,将64M的高频时钟作为系统时钟,输入到所有触发器的时钟端。时钟使能信号Clk_en将控制所有触发器的使能端。即原来接8M时钟的触发器,接64M时钟,同时Clk_en将控制该触发器使能;原接64M时钟的触发器,还接64M时钟,Clk_en也将控制该触发器使能。这样,就可以将任何非同源时钟同步化。

多通道校准同步算法

下面以M元阵为例来说明多通道校准过程。接收机开机时,先将选择开关S切换到位置2(见图1),进入校准状态。注入信号s(t)经功分器进入各阵元通道,阵元通道输出为基带数字信号 xm(t)。将 条通道作为参考通道, 条通道的输出延时τ后作为参考信号,与其他阵元通道的输出一起送入相应的自适应校正滤波器。自适应校正滤波器将会对阵元通道的传输特性进行补偿,使各个阵元通道的传输特性趋近参考通道。这里采用LMS自适应算法,待自适应算法收敛后,稳态权矢量将作为自适应校正滤波器的系数固定下来,至此阵元通道的校正结束。 ,将选择开关S切换到位置1就可进入正常通信状态。

按图1所示的模型可知,用L阶横向FIR滤波器模拟通道响应,通过在滤波器的系数上加上小的幅度扰动δ和相位扰动Φ来模拟通道间的失配,这样可得第m个待校准通道模拟滤波器的传输函数为:

设注入的信号是s(t),href(t)和hm(t)分别为参考通道和待校准的第m条通道的冲激响应,hmc(t)为第m条通道的校准滤波器的冲激响应,那么参考通道的输出(暂不考虑延时τ)、第m条待校准通道校准前的输出和校准后的输出分别为:

自适应滤波器采用MMSE准则,其中,准则选择是否合理决定了天线阵暂态响应的速度和实现电路的复杂度。可以证明,这个准则的结果可以分解为一个相同的线性矩阵滤波器和一个不同的标量处理器的积,且都收敛于 维纳解。因此,当自适应滤波器收敛到稳态即 解后, 权值应该为:

从而通道特性得到了校准。

本文中的多通道校准算法是在FPGA中实现的,选择FPGA而不选择DSP器件的原因是FPGA的引脚众多且可以定制,这样就可以在相对较低的工作频率下做到很高的数据吞吐率,而这是DSP难以做到的。

FPGA实现

在本设计中应该综合考虑各方面因素,选择一种 模块结构和模块规模。本设计中的结构化层次是由一个顶层模块和若干个子模块组成,每个子模块根据需要再包含自己的子模块,以此类推,共5层,如图2所示。 本设计中,整个通道失配校准模块共需要90个乘法器。这些乘法器如果采用FPGA的逻辑资源直接构建,不仅难以保证理想的运算速度,而且硬件开销非常巨大。而FPGA芯片内部已经集成了18×18位的硬件乘法器模块,其速度快,实现简单,能有效节省FPGA的逻辑资源。由于系统设计时选用的FPGA芯片型号为Xilinx公司的xc2v8000ff1152-5,它集成了几百个硬件乘法器,因此可以全部使用硬件乘法器来完成相应的乘法运算。

采用VHDL语言编写实现程序,开发环境为ISE 8.2i,综合工具为Synplify Pro v8.1,仿真工具为ModelSim SE 6.3f。图3所示的是程序经Synplify Pro v8.1综合后得到的LMS自适应校正滤波器顶层模块RTL视图。RTL视图即寄存器传输级视图,该图高度抽象为模块化结构,它是在对源代码编译后再现设计的寄存器传输级原理图。

所有算法模块均在全局使能信号clk_en不同状态的控制下进行工作,从而使算法运行达到8M周期,直至找到 权值, 终完成多通道校准的任务,实现多个通道的幅相一致性。

表1为多通道校准算法的FPGA资源占用列表,从系统资源占用情况可以看出:多通道校准算法FPGA实现过程中,如果再加上前后端处理程序一起编译,则输入输出端口将减少,资源占用也将减少,并不影响系统实现。其它各种资源占用量都较少,完全符合FPGA设计要求。

FPGA布局布线后的仿真波形如图4、图5所示。

从仿真结果(图4,图5)和ISE 8.2i的综合 可知,该校正模块的 时钟频率达到102.5MHz。

,由MATLAB仿真和FPGA布局布线后仿真得到的权值,经过MATLAB仿真形成新的方向图,如图6所示,可以看出,两种方向图基本一致。因此,基于FPGA的多通道校准同步算法的实现完全符合系统要求。

结语

由于数据时钟的同步是FPGA 芯片设计实现的一个常见问题,也是一个重点和难点,很多设计不稳定都是源于数据时钟的同步有问题。而本文提出了解决这一问题的时钟同步方法,并在硬件上很好地实现了多通道校准算法,极大提高了系统稳定性。




有你想看的精彩




至芯科技-FPGA就业培训来袭!你的选择开启你的高薪之路!5月6号北京中心开课、欢迎咨询!
至芯FPGA课程之综合理论分享
一文解读IIC总线的FPGA实现原理及过程





扫码加微信邀请您加入FPGA学习交流群




欢迎加入至芯科技FPGA微信学习交流群,这里有一群优秀的FPGA工程师、学生、老师、这里FPGA技术交流学习氛围浓厚、相互分享、相互帮助、叫上小伙伴一起加入吧!


点个在看你最好看






原文标题:基于FPGA芯片实现数据时钟同步设计方案

文章出处:【微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1656

    文章

    22288

    浏览量

    630383

原文标题:基于FPGA芯片实现数据时钟同步设计方案

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于FPGA的高效内存到串行数据传输模块设计

    本文介绍了一个基于FPGA的内存到串行数据传输模块,该模块设计用来高效地处理存储器中的数据并传输至串行接口。项目中自定义的“datamover_mm2s_fpga_”
    的头像 发表于 11-12 14:31 3873次阅读
    基于<b class='flag-5'>FPGA</b>的高效内存到串行<b class='flag-5'>数据</b>传输模块设计

    北斗同步时钟:精准背后的使用体验

    在时间同步技术日益重要的今天,北斗同步时钟逐渐成为许多行业的基础设备。作为一名长期接触各类时间同步方案的技术人员,我想分享一些实际使用北斗
    的头像 发表于 10-28 16:29 375次阅读
    北斗<b class='flag-5'>同步</b><b class='flag-5'>时钟</b>:精准背后的使用体验

    两片TC3XX芯片之间的时钟同步可以实现吗?

    实现两片TC3XX芯片之间的时钟同步,希望两片芯片的PWM输出能够同步。类似功能的
    发表于 08-04 07:51

    NTP网络同步时钟:数字世界的“心跳”

    NTP网络同步时钟是为网络设备提供准确、标准、可靠和多功能的时间服务的解决方案,能提供准确的同步时钟信号,支持标准的NTP和SNTP网络时间
    的头像 发表于 07-15 10:42 423次阅读
    NTP网络<b class='flag-5'>同步</b><b class='flag-5'>时钟</b>:数字世界的“心跳”

    AMD FPGA异步模式与同步模式的对比

    本文讲述了AMD UltraScale /UltraScale+ FPGA 原生模式下,异步模式与同步模式的对比及其对时钟设置的影响。
    的头像 发表于 07-07 13:47 1435次阅读

    使用LTC2500 芯片同步功能时,可以把MCLK时钟停止后,发一个SYNC同步脉冲吗?

    在使用LTC2500 芯片同步功能时,可以把MCLK时钟停止后,发一个SYNC同步脉冲吗?如果使用高精度高稳定性的MCLK时钟,sync不
    发表于 06-19 07:38

    PTP 时钟:精准时钟同步的核心力量

    的 SYN2407 系列 PTP 时钟模块,以其卓越的性能和广泛的适用性,成为了实现高精度时钟同步的关键组件。 一、SYN2407 系列 PTP
    的头像 发表于 06-12 15:53 477次阅读

    PTP 时钟:精准时钟同步的核心力量​

    的 SYN2407 系列 PTP 时钟模块,以其卓越的性能和广泛的适用性,成为了实现高精度时钟同步的关键组件。 一、SYN2407 系列 PTP
    的头像 发表于 06-05 16:30 550次阅读

    方案分享 | 高精度时间同步技术的实现与应用

    如何通过硬件级PTSS/CTSS技术实现亚微秒级时间同步,支持多传感器数据精准对齐?PSB+QX550方案采用GPS/PPS/本地时钟冗余设
    的头像 发表于 05-28 09:49 1914次阅读
    <b class='flag-5'>方案</b>分享 | 高精度时间<b class='flag-5'>同步</b>技术的<b class='flag-5'>实现</b>与应用

    ntp时钟同步服务器是什么?ntp时钟同步服务器介绍

    时间、时钟、时辰是我们非常熟悉的,但是你们知道如今的时间、时钟都是哪里产生的吗?尤其当今网络设备的普及使用,上面几乎都有时间标识,其实他们都是通过一些设备传递的,比如ntp时钟同步服务
    的头像 发表于 05-13 15:19 648次阅读
    ntp<b class='flag-5'>时钟</b><b class='flag-5'>同步</b>服务器是什么?ntp<b class='flag-5'>时钟</b><b class='flag-5'>同步</b>服务器介绍

    时钟同步在通信系统中有哪些重要作用?

    时钟同步是指在一个系统中,各个时钟能够准确地显示相同的时间。在现代科技发展中,时钟同步是非常重要的,特别是在计算机网络和通信系统中。在计算机
    的头像 发表于 04-29 13:44 932次阅读
    <b class='flag-5'>时钟</b><b class='flag-5'>同步</b>在通信系统中有哪些重要作用?

    TSN时钟同步精度技术解析:TSN网络的基石与保障

    一、引言 在现代网络通信领域,时钟同步精度至关重要,时间敏感网络(TSN)作为新一代工业通信的核心技术,其时钟同步精度直接影响数据传输的实时
    的头像 发表于 04-25 09:56 888次阅读
    TSN<b class='flag-5'>时钟</b><b class='flag-5'>同步</b>精度技术解析:TSN网络的基石与保障

    京准电钟分享:水利控制系统NTP时钟同步技术方案

    京准电钟分享:水利控制系统NTP时钟同步技术方案
    的头像 发表于 03-05 09:30 654次阅读

    ADS58C48的输出给FPGA时钟怎样产生的,是只要有输入时钟,就有输出时钟吗?

    最近采用ADS58C48采集数据,ADS58C48的时钟FPGA差分提供。上电后,FPGA首先给ADS58C48配置。ADS58C48输出时钟
    发表于 12-20 06:32

    FPGA驱动AD芯片实现芯片通信

    概述: 利用FPGA实现AD芯片的时序,进一步实现与AD芯片数据的交互,主要熟悉
    的头像 发表于 12-17 15:27 1524次阅读
    <b class='flag-5'>FPGA</b>驱动AD<b class='flag-5'>芯片</b>之<b class='flag-5'>实现</b>与<b class='flag-5'>芯片</b>通信