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

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

3天内不再提示

FPGA同步转换FPGA对输入信号的处理

FPGA设计论坛 来源:未知 2023-02-17 11:10 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

由于信号在不同时钟域之间传输,容易发生亚稳态的问题导致,不同时钟域之间得到的信号不同。处理亚稳态常用打两拍的处理方法。多时钟域的处理方法很多,最有效的方法异步fifo,具体可以参考博主的verilog异步fifo设计,仿真(代码供参考)异步fifo适合处理不同时钟域之间传输的数据组,但有时不同时钟域之间仅仅传递脉冲,异步fifo就显的有点大材小用的,因此单信号的跨时钟域处理通常有, 两级寄存器串联。 脉冲同步器。 结绳法。 采用握手。 我们像主要讨论一下跨时钟域的同步: 我们将问题分解为2部分,来自同步时钟域信号的处理和来自异步时钟域信号的处理。前者要简单许多,所以先讨论前者,再讨论后者。 1.同步时钟域信号的处理 一般来说,在全同步设计中,如果信号来自同一时钟域,各模块的输入不需要寄存。只要满足建立时间,保持时间的约束,可以保证在时钟上升沿到来时,输入信号已经稳定,可以采样得到正确的值。但是如果模块需要使用输入信号的跳变沿(比如帧同步信号),千万不要直接这样哦。

always @ (posedge inputs)

begin

...

end

因为这个时钟inputs很有问题。如果begin ... end语句段涉及到多个D触发器,你无法保证这些触发器时钟输入的跳变沿到达的时刻处于同一时刻(准确的说是相差在一个很小的可接受的范围)。因此,如果写出这样的语句,EDA工具多半会报clock skew > data delay,造成建立/保持时间的冲突。本人曾经也写出过这样的语句,当时是为了做分频,受大二学的数字电路的影响,直接拿计数器的输出做了后面模块的时钟。当初用的开发工具是max+plusII,编译也通过了,烧到板子上跑倒也能跑起来(估计是因为时钟频率较低, 6M ),但后来拿到QuartusII中编译就报clock skew > data delay。大家可能会说分频电路很常见的啊,分频输出该怎么用呢。我一直用的方法是采用边沿检测电路,用HDL语言描述大概是这样:

always @ (posedge Clk)

begin

inputs_reg <= inputs;

if (inputs_reg == 1'b0 && inputs == 1'b1)

begin

...

end

...

end

这是上跳沿检测的电路,下跳沿电路大家依此类推。 2.异步时钟域信号的处理 这个问题也得分单一信号和总线信号来讨论 2.1单一信号(如控制信号)的处理 如果这个输入信号来自异步时钟域(比如FPGA芯片外部的输入),一般采用同步器进行同步。最基本的结构是两个紧密相连的触发器,第一拍将输入信号同步化,同步化后的输出可能带来建立/保持时间的冲突,产生亚稳态。需要再寄存一拍,减少(注意是减少)亚稳态带来的影响。这种最基本的结构叫做电平同步器。 如果我们需要用跳变沿而不是电平又该怎样处理呢,还记得1里面讲的边沿检测电路么?在电平同步器之后再加一级触发器,用第二级触发器的输出和第三级触发器的输出来进行操作。这种结构叫做边沿同步器。

always @ (posedge Clk)

begin

inputs_reg1 <= inputs;

inputs_reg2 <= inputs_reg1;

inputs_reg3 <= inputs_reg2;

if (inputs_reg2 == 1'b1 && inputs_reg3 == 1'b0)

begin

...

end

...

end

以上两种同步器在慢时钟域信号同步入快时钟域时工作的很好,但是反过来的话,可能就工作不正常了。举一个很简单的例子,如果被同步的信号脉冲只有一个快时钟周期宽,且位于慢时钟的两个相邻跳变沿之间,那么是采不到的。这时就需要采用脉冲同步器。这种同步器也是由3个触发器组成。 脉冲同步器 由于脉冲在快时钟域传递到慢时钟域时,慢时钟有时无法采样的信号奈奎是特采样定理,因此需要对信号进行处理,可以让慢信号采样到。脉冲同步器的结果如图:7f76f704-ae70-11ed-bfe3-dac502259ad0.png     2.2总线信号的处理 如果简单的对异步时钟域过来的一组信号分别用同步器的话,那么对这一组信号整体而言,亚稳态出现的几率将大大上升。基于这一观点,对于总线信号的处理可以有两种方式。 如果这组信号只是顺序变化的话(如存储器的地址),可以将其转换为格雷码后再发送,由于格雷码相邻码字只相差一个比特,上面说的同步器可以很好的发挥作用 但是如果信号的变化是随机的(如存储器的数据),这种方法便失效了,这时可以采用握手的方式或者采用FIFO或DPRAM进行缓存。RAM缓存的方式在突发数据传输中优势比较明显,现在高档一点的FPGA中都有不少的BlockRAM资源,且支持配置为DPRAM或FIFO,这种处理方法在通信电路中非常常用。

7f84c05a-ae70-11ed-bfe3-dac502259ad0.jpg

精彩推荐 至芯科技12年不忘初心、再度起航2月11日北京中心FPGA工程师就业班开课、线上线下多维教学、欢迎咨询! 基于FPGA的千兆以太网ARP和UDP的实现 FPGA学习-基于FPGA的图像处理扫码加微信邀请您加入FPGA学习交流群

7f92ad3c-ae70-11ed-bfe3-dac502259ad0.jpg7fa301f0-ae70-11ed-bfe3-dac502259ad0.png

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

点个在看你最好看


原文标题:FPGA同步转换FPGA对输入信号的处理

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


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

    关注

    1655

    文章

    22282

    浏览量

    630104

原文标题:FPGA同步转换FPGA对输入信号的处理

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    MarketsandMarkets FPGA行业报告,2026~2030 FPGA市场洞察

    ,Field-Programmable Gate Array)是一种高度灵活、可重构的集成电路。与传统 ASIC 不同,FPGA 制造完成后仍可以在终端重新编程,在 高性能并行计算、实时信号处理、通信加速 等领域具有独特优势。
    的头像 发表于 11-20 13:20 112次阅读
    MarketsandMarkets <b class='flag-5'>FPGA</b>行业报告,2026~2030 <b class='flag-5'>FPGA</b>市场洞察

    如何用FPGA实现4K视频的输入输出与处理

    在游戏、影视和显示领域,4K 已经成为标配。而今天,我们就来聊聊——如何用 FPGA 实现 4K 视频的输入输出与处理
    的头像 发表于 10-15 10:47 1657次阅读
    如何用<b class='flag-5'>FPGA</b>实现4K视频的<b class='flag-5'>输入</b>输出与<b class='flag-5'>处理</b>

    【 VPX638】青翼凌云科技基于KU115 FPGA+C6678 DSP的6U VPX双FMC接口通用信号处理平台

    VPX638是一款基于KU115 FPGA + C6678 DSP的6U VPX双FMC接口通用信号处理平台,该平台采用一片Xilinx的Kintex UltraScale系列FPGA
    的头像 发表于 09-01 13:42 436次阅读
    【 VPX638】青翼凌云科技基于KU115 <b class='flag-5'>FPGA</b>+C6678 DSP的6U VPX双FMC接口通用<b class='flag-5'>信号</b><b class='flag-5'>处理</b>平台

    【TES817】青翼凌云科技基于XCZU19EG FPGA的高性能实时信号处理平台

    板卡概述TES817是一款基于ZU19EGFPGA的高性能实时信号处理平台,该平台采用1片高性能的FPGA:XCZU19EG-2FFVC1760I作为主
    的头像 发表于 08-29 15:29 1214次阅读
    【TES817】青翼凌云科技基于XCZU19EG <b class='flag-5'>FPGA</b>的高性能实时<b class='flag-5'>信号</b><b class='flag-5'>处理</b>平台

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

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

    FPGA开发任务

    ,增加FEC校验,源时钟同步,对数据编码,输出差分数字信号,通过连接器连接光电模块,驱动光电模块传输数据。 2)光电模块输出差分数字信号,通过连接器将数据输出至FPGA PL端,PL端
    发表于 04-22 18:46

    进群免费领FPGA学习资料!数字信号处理、傅里叶变换与FPGA开发等

    进群免费领FPGA学习资料啦!小编整理了数字信号处理、傅里叶变换与FPGA开发等FPGA必看资料,需要的小伙伴可以加小助手(微信:elecf
    发表于 04-07 16:41

    基于易灵思国产FPGA Ti60F225 实现6目同步1080P实时成像系统

    基于FPGA实现单目的采集,并没有什么难的。 但基于FPGA,实现多目的同步采集→存储→显示,就不是那么好做了。
    的头像 发表于 03-04 12:00 2503次阅读
    基于易灵思国产<b class='flag-5'>FPGA</b> Ti60F225 实现6目<b class='flag-5'>同步</b>1080P实时成像系统

    差分输入的AD转换芯片如何处理单端输入信号

    对一个仪表放大器输出的信号进行AD转换,怎么使用差分输入呢,IN-端是接地么?还是怎么处理? 即是:差分输入的AD
    发表于 02-07 06:40

    fpga和cpu的区别 芯片是gpu还是CPU

    一、FPGA与CPU的区别 FPGA(Field-Programmable Gate Array,现场可编程门阵列)和CPU(Central Processing Unit,中央处理器)是两种不同类
    的头像 发表于 02-01 14:57 2977次阅读

    使用FPGA控制ADS8365模数转换,没有EOC输出,FPGA无法读取数据,为什么?

    大家好,我使用FPGA控制ADS8365模数转换,以前的使用没问题,突然现在出现问题,我检查FPGA的控制信号,都正常,就是没有EOC输出,FPG
    发表于 01-08 08:25

    ADC344X的外部同步输入SYSREF范围是-0.3~(AVDD + 0.3 = 2.1)V,是否可以通过FPGA输出1.8V信号来直接驱动?

    您好,我查询到ADC344X的外部同步输入SYSREF范围是-0.3~(AVDD + 0.3 = 2.1)V,请问是否可以通过FPGA输出1.8V信号来直接驱动?另外,ADC344X
    发表于 12-26 06:03

    高速图像处理卡设计原理图:527-基于3U VPX XCZU15EG+TMS320C6678的信号处理

    C6678信号处理板 , FPGA 信号处理 , FPGA开发平台 , XC7Z045板卡 ,
    的头像 发表于 12-25 09:51 1030次阅读
    高速图像<b class='flag-5'>处理</b>卡设计原理图:527-基于3U VPX XCZU15EG+TMS320C6678的<b class='flag-5'>信号</b><b class='flag-5'>处理</b>板

    大多数FPGA的程序存储器(FLASH)为什么都放在外面呢?FPGA的主要应用

    FPGA的主要应用:  FPGA由于其较高的价格和成本,决定了FPGA不能像单片机那样被广泛的使用,FPGA的针对于高端处理市场(类如:手机
    的头像 发表于 12-24 11:04 1836次阅读
    大多数<b class='flag-5'>FPGA</b>的程序存储器(FLASH)为什么都放在外面呢?<b class='flag-5'>FPGA</b>的主要应用

    请问AFE5801的输出是如何进行差分到单端的处理FPGA的?

    1请问AFE5801的输出是如何进行差分到单端的处理FPGA的?我用的FPGA型号是CycloneIII跟设置pinplanner为LVDS_E_3R或者LVDS有关吗? 2再就是芯片
    发表于 12-23 08:31