LATTICE非常详细的时序约束(中文教程)

更新时间:2023-07-14 16:32:44 阅读: 评论:0

LATTICE非常详细的时序约束(中文教程)
LATTICE SEMICONDUCTOR CORPORATION
Page 1Achieving Timing Closure
John Li
Agenda
Timing closure的概念?Timing closure的步骤?采用合适的Coding Style ?进行适当的综合约束
管脚锁定
实施Lattice constrains ?Map
布局布线
控制place and route ?Floorplanning the design
LATTICE SEMICONDUCTOR CORPORATION
Page 2
Timing closure的概念
当前FPGA的设计规模越来越大,复杂程度日益增加,同时要求系统的Perfromace也越来越高。
获得Timing目标越来越困难.
设计者必须采用各种技术提升系统性能以满足设计的Timing要求.
LATTICE SEMICONDUCTOR CORPORATION
Page 3
Timing closure procedure
1.采用合适的coding style ? 2.进行适当的综合约束
3.管脚锁定
4.实施Lattice constrains ? 5.Map
5.布局布线
7.控制place and route ?8.Floorplanning the design
LATTICE SEMICONDUCTOR CORPORATION
Page 4
关于提升FPGA系统性能,工程师最容易想到的方法就是通过进行综合约束、布局布线约束、和其他的优化技术提升系统性能,当然这些都是设计过程中所必需的,但所有这些优化方法对于系统性能的提升都是有限的,系统的性能最终还是取决于工程师的设计(coding style),其中同步设计是最重要的一点. 下面讨论一些具体的coding 技术,合理的运用这些coding技术能够尽可能的减小两级寄存器之间的延时从而获得更高的系统速度.
-通用的coding style
--Hierarchical Coding
---Team Bad的设计:多个工程师可以同时参与到一个复杂设计中来。
---加速设计和编译过程:关键模块可以单独修改而不会影像整个设计。
---缩短设计周期:重复利用成熟模块。
---模块可以容易被工程师理解和维护.
---缺点:如果模块划分不合理,特别是模块边界设计处理不当会影响FPGA的资源利用率和最终
的系统性能。
LATTICE SEMICONDUCTOR CORPORATION
Page 5
---上述缺点可以通过细致的hierarchy设计来克服.
---hierarchical design 需遵循的规则:
----top level模块仅仅应该包含instantiation statement ,即在顶层模块中调用子模块。
----任何I/O instantiation 应当包含在top level模块中。
----任何输入输出器件的信号应当在top level模块中声明为:input、output和bi-directional Pin.
--Design partitioning
---在sub module中register所有输出,以保证所有sub module之间为同步设计,获得更好的系统performance。
LATTICE SEMICONDUCTOR CORPORATION
告别爱情
Page 6
---保证相关逻辑和共享资源在同一个模块中实现。
这样可以做到更好的资源共享,综合工具只能针对一定数量的逻辑进行优化;
综合工具可以在一个模块内部优化整个关键路径;跨模块的关键路径也不会被
有效的优化。
天使打野LATTICE SEMICONDUCTOR CORPORATION
Page 7
---针对不同地优化目标来划分模块
----分离关键路径和非关键路径可以获得更好的综合效果。
----设计者应该在充分考虑性能需求和资源需求的基础上进行逻辑设计. 针对不同的模块采用不同的优化策略,以避免相互影响。
---对于那些并不需要high performance的模块应该放松约束以节省和预留关键资源给关键路径。
LATTICE SEMICONDUCTOR CORPORATION
Page 8
---在单独的模块中保存实例化代码:
可以非常方便的在RAM行为仿真模型和实际的RAM块代码之际间进行切换.
---每个Module的规模在30~80 PFU:小模块由于资源有限不利于综合工具实施“resource sharing”算法;规模太大的模块一旦更改其中的一小部分就会导致整个模块重新综合,影响到一些不必要的逻辑,增大综合运行时间。中国城市划分
--design registering
---利用流水设计提高系统性能,把一个较长的路径分割为多个短路径,并在多个时钟周期完成。
LATTICE SEMICONDUCTOR CORPORATION
Page 9数学文化
秀瘦---IF statement and CASE statement比较
----IF-THEN-ELSE statement 生成优先级的编码逻辑;CASE statement 实现
balance逻辑.
----如果每个解码条件相对独立, 这两种声明方式实现的功能是一样的。
LATTICE SEMICONDUCTOR CORPORATION
Page 10
----IF statement的主要缺陷:使设计不必要的复杂化;需要额外的逻辑来构建优先级Tree。
----如果解码条件不是相对独立的, 那末IF-THEN-ELSE结构会导致最低优先级的output依赖于所有的控制条件。
普者黑在哪里LATTICE SEMICONDUCTOR CORPORATION
Page 11
LATTICE SEMICONDUCTOR CORPORATION Page 12
---如果output 不需要优先级控制, 最好使用CASE statement,因为CASE声明中每个分支的优先级是一样的,每个分支output是并发的。
--避免不必要的Latch
---综合工具会引入Latch,如果存在不完全的条件表达式:象IF-THEN-ELSE 声明中没有el子句.
---Latch会需要额外的资源,同时引入组合反馈环从而产生异步时序问题。
---non-intended latch 是可以避免的:
使用时钟寄存器或遍历所有的输入条件assign output 或是使用el (when
others) 作为最后的子句
火车头LATTICE SEMICONDUCTOR CORPORATION
Page 13
LATTICE SEMICONDUCTOR CORPORATION Page 14
--用时钟使能信号代替门控时钟
---门控时钟会带来很多时序问题,最典型的是clock skew.
LATTICE SEMICONDUCTOR CORPORATION
Page 15
---时钟使能guideline in Lattice FPGA:
----Clock enable 只在触发器模式支持,Latch模式不支持.
----在一个slice中的触发器对共享一个Clock enable信号.
----所有的触发器支持positive clock enable输入.
----默认的时钟使能的优先级高于同步t/ret. 但是可以编程实现t/ret 的优
先级高于clock enable.
LATTICE SEMICONDUCTOR CORPORATION
Page 16
LATTICE SEMICONDUCTOR CORPORATION Page 17
--针对分布式Memory的coding style
---不推荐使用Library Primitive去构建RAM或FIFO, 这是因为RAM块在各个系列FPGA中的structure都是唯一的. 综合工具并不能优化处理RAM的实现,会产生
杠开低效率的网表(for device fit).
---强烈建议使用Ipexpress来构建RAM/FIFO.

本文发布于:2023-07-14 16:32:44,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1081386.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:模块   设计   综合   系统   优化
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图