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

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

3天内不再提示

FPGA设计中这两种情形该怎么约束

FPGA技术驿站 来源:FPGA技术驿站 2023-09-07 09:47 次阅读

FPGA设计中,我们经常会碰到这样的情形:从快时钟域到慢时钟域完成位宽转换,这时,这两个时钟是同步的。例如:源时钟是400MHz,数据位宽为4;目的时钟为200MHz,数据位宽为8,这样源时钟域和目的时钟域的吞吐率是一致的。这种位宽转换可直接通过寄存器采样实现,时序关系如下图所示。

wKgaomT5K7mANDKqAAAKJKhvKiQ648.png

图中Source为源时钟域(400MHz)4位数据,L0代码0号数据的低4位,H0代表0号数据的高4位,L1代表1号数据的低4位,H1代表1号数据的高4位,依此类推。Delay1为源时钟域经一级流水寄存器的输出结果。Destination为目的时钟域(200MHz)8位数据。

我们很容易搭建此电路,如下图所示。图中绿色计数器为400MHz时钟域计数器,产生源端4位数据,蓝色模块为源端流水寄存器,红色模块为目的端采样寄存器。

wKgaomT5K7mAALLXAACeZCm9IX4652.png

在这种情况下,能否使用多周期路径约束呢?这里我们看一下数据的发起沿和捕获沿的位置,如下图所示。图中红色方框为数据发起沿(400MHz),绿色方框(黄色标记线所在位置)为捕获沿,两者相差一个400MHz时钟对应的时钟周期。因此,并不满足多周期规则。这时,我们只用做常规的时钟周期约束即可,工具会自动将这里的跨时钟域按400MHz进行约束。

wKgaomT5K7mAYLyuAADerVUkYmw958.png

那么快时钟域到慢时钟域在什么情况下可以用多周期路径进行约束呢?本质上,多周期路径是指数据的采样率(SampleRate)是按慢时钟域的速率进行变化,其变化周期在慢时钟域是单周期(一个时钟周期变化一次),而在快时钟域是多周期(多个时钟周期变化一次)。满足这种情形就可以判断为多周期路径。

有时在设计中会有测试模块,或者出现这样的状况:模块1和模块2都工作在相同的时钟下,该时钟会根据设计的需要频率会发生变化,但无论怎么变化模块2只要满足最低时钟频率的要求即可。因此,这时可对模块2放松时序要求。只按照最低时钟频率约束即可。问题是只要定义了全局时钟(通过create_clock创建),该时钟就会在模块2中发生作用。如何覆盖这个约束呢?如果仍通过create_clock创建时钟,选项-period的值为时钟周期最大值(对应最低频率),但以模块2作为顶层,指定该约束针对的对象为模块2是否可行呢?答案是否定的,因为这时时序分析工具会把BUFG作为时钟的起点,而不是把全局时钟管脚作为起点。

wKgZomT5K7mANmsUAADEKluJeRw776.png

一种可行的方法是用set_max_delay,其对象是模块2内的所有时序单元(模块2内只有一个时钟),采用如下方式约束。第一条Tcl命令用于获取模块2内所有的时序单元。

wKgZomT5K7mANmVIAAAWj0BD2IA758.png

这时就可以看到时钟的起点是期望的位置了。这里可以看到set_max_delay的一个用法就是覆盖create_clock创建的约束。

wKgZomT5K7qAOD3QAANkn5fD8d0783.png

审核编辑:汤梓红

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

    关注

    1603

    文章

    21326

    浏览量

    593243
  • FPGA设计
    +关注

    关注

    9

    文章

    425

    浏览量

    26273
  • 寄存器
    +关注

    关注

    30

    文章

    5032

    浏览量

    117746
  • 时钟
    +关注

    关注

    10

    文章

    1480

    浏览量

    130306

原文标题:这两种情形该怎么约束

文章出处:【微信号:Lauren_FPGA,微信公众号:FPGA技术驿站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    蜂鸣器驱动电路,下面这两种有什么区别?

    请问下面这两种电路都可以用吗?能不能给讲一下工作原理?
    发表于 11-18 12:55

    大家看看这两种电路接法对吗?哪个好点?

    大家帮我看看这两种电路的接法对吗?用于51单片机的输出口。如果对的话,帮我分析下哪个好?
    发表于 10-15 11:31

    这两种整流桥电路图原理图的区别在哪里?

    这两种整流桥电路图原理图的区别在哪里?
    发表于 10-22 11:32

    求助:请问这两种对电源处理方式的区别和它们的用法。

    请问这两种对电源处理方式的区别和它们的用法。
    发表于 07-24 16:43

    这两种镀铜镀锡都可以,侧边是怎么加上去的?

    `这两种镀铜镀锡都可以,侧边是怎么加上去的,麻烦教教菜鸟小弟,谢谢了`
    发表于 12-26 19:17

    请问这两种降压电路的区别是什么?

    这两种电路,各有什么优缺点? 分别适用于哪种情况下呢?
    发表于 03-25 22:49

    这两种放大电路有什么区别呢

    这两种放大电路有什么区别呢
    发表于 07-06 09:23

    请问TPS74201和TPS74301这两种LDO的主要区别是什么?

    小弟问题有点多……1、请问TPS74201和TPS74301这两种LDO的主要区别是什么?我看了datasheet,感觉这两种芯片的性能基本一样。2、LDO的静态电流主要影响什么?这两种芯片的静态
    发表于 07-16 11:21

    为什么我的Altium只有这两种模式?

    为什么我的只有这两种模式?设置那边是三
    发表于 09-09 01:56

    多路电子负载在这两种电源测试的优势是什么

    电源是保障电子仪器正常工作的装置,因此对于电源各项性能指标都有严格要求。随着电子设备对电源的要求不断变化,电源对于测试仪器及技术的要求也越来越高。本文着重对多路输出电源和大功率电源测试进行阐述,分析多路电子负载在这两种电源测试的优势。 
    发表于 05-10 07:03

    如何使HDMI和VGA这两种接口互连?

    先进的半导体解决方案和灵巧的软件如何帮助实现HDMI?如何使HDMI和VGA这两种接口互连?
    发表于 05-11 06:47

    这两种芯片都可以用在什么领域上?

    这两种芯片都可以用在什么领域上?
    发表于 06-18 14:40

    如何去设计出来FIR和IIR这两种滤波器呢

    FIR是什么意思?IIR又是什么意思呢?如何去设计出来这两种滤波器呢?
    发表于 11-19 07:19

    Bin与Hex这两种文件格式的区别在哪

    Bin文件是什么?Intel hex文件又是什么?Bin与Hex这两种文件格式的区别在哪?
    发表于 12-24 06:10

    常见的ARM架构分为两种是M系列另外一是A系列,这两种有什么区别啊?

    现在市面上常见的ARM架构分为两种是M系列另外一是A系列,这两种有什么区别啊,用的时候他们一般分别用在什么地方啊。
    发表于 10-26 07:00