前言

对于包含PS和PL的设计,两者的数据交互PL必然会用到PS端的时钟。

对于FCLK(PS端时钟输入到PL端)的约束,此时钟的基础约束已在IP中产生。以下想约束其异步时钟的时钟组特性。

注意事项:FCLK的名字在综合时不可见,在适配阶段才可见,所以对于约束文件的属性需要选择只在适配阶段有效,否则综合时报警告(感觉无伤大雅)。

但PL中又有别的时钟,与FCLK是异步的,而且这些时钟之间并不需要进行时序分析。

则有两种选择,(1)约束false路径。但时钟之间的路径是双向的,则需要正着约束一下,反着也要约束,比较麻烦。

       (2)使用clock group约束。可以划分时钟域,时序分析只会分析时钟域中的情况,不会分析跨时钟域部分。

而跨时钟域部分通常由开发者代码保证不会产生亚稳态。

流程

(1)首先我们并不清楚fclk在综合编译后叫啥名字,所以首先就是需要获取fclk名字。

打开适配后的设计,点击编辑时序约束。

找寻时钟。

在下图中点击Find查找所有时钟,左下角就会显示出时钟名,添加到右侧,就得到了command中的名字。当然也可直接使用图形工具进行相应的约束操作。

约束语句如下:三个时钟组互不相关,跨时钟域处理需要代码保证。

set_clock_groups -async -group [get_clocks -include_generated_clock i_clk] \

-group [get_clocks -include_generated_clock i_adc_dclk_p] -group [get_clocks clk_fpga_0]

含义说明:i_clk和i_adc_dclk_p调用了两个不同的pll,两者的输出时钟不晓得名字就可以用上述语法进行约束。

(2)设置时序约束文件只在适配阶段才起作用。

(3)重编译检查劳动成果。对时钟相关性进行分析,可以看到异步路径已经被STA忽略。

以上。

最新文章

  1. 使用git grep进行git搜索
  2. jython安装与配置
  3. javascript 设计模式-----享元模式
  4. Atitit 理解Monad attilax总结
  5. 解析大型.NET ERP系统 代码的坏味道
  6. [PaPaPa][需求说明书][V1.0]
  7. DButils实现查询和新增
  8. NOI 2004 郁闷的出纳员(平衡树)
  9. Debian 8 在虚拟环境中安装kivy
  10. IP地址字符串与BigInteger的转换
  11. 实现控件WPF(4)----Grid控件实现六方格
  12. 深入理解Arrays.sort()
  13. centos 下搭建 php环境(2) mysql 安装
  14. 使用telnet操作memcache,一般不常用
  15. 高性能Socket组件和RPC,让你像写本地代码一样开发网络应用和分布式程序
  16. PHP设计模式笔记四:适配器模式 -- Rango韩老师 http://www.imooc.com/learn/236
  17. Radar Installation(POJ 1328 区间贪心)
  18. java学习笔记 --- 面向对象
  19. JeeSite
  20. Python-复习-习题-13

热门文章

  1. md5加密后不能解密
  2. TICK/TIGK运维栈安装运行 docker-compose【下】
  3. Post Setting Proxy 设置 代理
  4. JBoss服务器的安装和使用(关联到IDEA)
  5. hive中function函数查询
  6. SpringMVC返回JSON数据时日期格式化问题
  7. 运行okvis-mono
  8. cordova添加plugin的多种方式
  9. Docker容器(六)——创建docker私有化仓库
  10. 【C/C++开发】多线程编程中的join函数