好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

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

95页
  • 卖家[上传人]:灯火****19
  • 文档编号:122052979
  • 上传时间:2020-02-29
  • 文档格式:PDF
  • 文档大小:1.75MB
  • / 95 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • LATTICE SEMICONDUCTOR CORPORATION Page 1 Achieving Timing Closure John Li LATTICE SEMICONDUCTOR CORPORATION Page 2 Agenda Timing closure的概念的概念 Timing closure的步骤的步骤 采用合适的采用合适的Coding Style 进行适当的综合约束进行适当的综合约束 管脚锁定管脚锁定 实施实施Lattice constrains Map 布局布线布局布线 控制控制place and route Floorplanning the design LATTICE SEMICONDUCTOR CORPORATION Page 3 Timing closure的概念的概念 当前FPGA的设计规模越来越大 复杂程度日益增加 同时要求系统 的Perfromace也越来越高 获得Timing目标越来越困难 设计者必须采用各种技术提升系统性能以满足设计的Timing要求 LATTICE SEMICONDUCTOR CORPORATION Page 4 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 5 采用合适的采用合适的coding style 关于提升关于提升FPGA系统性能 工程师最容易想到的方法就是通过进行综合约束 布局布线约束 和其他 的优化技术提升系统性能 当然这些都是设计过程中所必需的 但所有这些优化方法对于系统性能的提升 都是有限的 系统的性能最终还是取决于工程师的设计 系统性能 工程师最容易想到的方法就是通过进行综合约束 布局布线约束 和其他 的优化技术提升系统性能 当然这些都是设计过程中所必需的 但所有这些优化方法对于系统性能的提升 都是有限的 系统的性能最终还是取决于工程师的设计 coding style 其中同步设计是最重要的一点 其中同步设计是最重要的一点 下面讨论一些具体的下面讨论一些具体的coding 技术 合理的运用这些技术 合理的运用这些coding技术能够尽可能的减小两级寄存器之间的延 时从而获得更高的系统速度 技术能够尽可能的减小两级寄存器之间的延 时从而获得更高的系统速度 通用的通用的coding style Hierarchical Coding Team Based的设计 多个工程师可以同时参与到一个复杂设计中来 加速设计和编译过程 关键模块可以单独修改而不会影像整个设计 缩短设计周期 重复利用成熟模块 模块可以容易被工程师理解和维护 缺点 如果模块划分不合理 特别是模块边界设计处理不当会影响FPGA的资源利用率和最终 的系统性能 LATTICE SEMICONDUCTOR CORPORATION Page 6 采用合适的采用合适的coding style 上述缺点可以通过细致的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 7 采用合适的采用合适的coding style 保证相关逻辑和共享资源在同一个模块中实现 这样可以做到更好的资源共享 综合工具只能针对一定数量的逻辑进行优化 综合工具可以在一个模块内部优化整个关键路径 跨模块的关键路径也不会被 有效的优化 LATTICE SEMICONDUCTOR CORPORATION Page 8 采用合适的采用合适的coding style 针对不同地优化目标来划分模块 分离关键路径和非关键路径可以获得更好的综合效果 设计者应该在充分考虑性能需求和资源需求的基础上进行逻辑设计 针对不同 的模块采用不同的优化策略 以避免相互影响 对于那些并不需要high performance的模块应该放松约束以节省和预留关键资源 给关键路径 LATTICE SEMICONDUCTOR CORPORATION Page 9 采用合适的采用合适的coding style 在单独的模块中保存实例化代码 可以非常方便的在RAM行为仿真模型和实际的RAM块代码之际间进行切换 每个Module的规模在30 80 PFU 小模块由于资源有限不利于综合工具实施 resource sharing 算法 规模太大的模块一旦更改其中的一小部分就会导致整个 模块重新综合 影响到一些不必要的逻辑 增大综合运行时间 design registering 利用流水设计提高系统性能 把一个较长的路径分割为多个短路径 并在多个 时钟周期完成 LATTICE SEMICONDUCTOR CORPORATION Page 10 采用合适的采用合适的coding style IF statement and CASE statement比较 IF THEN ELSE statement 生成优先级的编码逻辑 CASE statement 实现 balance逻辑 如果每个解码条件相对独立 这两种声明方式实现的功能是一样的 LATTICE SEMICONDUCTOR CORPORATION Page 11 采用合适的采用合适的coding style IF statement的主要缺陷 使设计不必要的复杂化 需要额外的逻辑来构建优 先级Tree 如果解码条件不是相对独立的 那末IF THEN ELSE结构会导致最低优先级的 output依赖于所有的控制条件 LATTICE SEMICONDUCTOR CORPORATION Page 12 采用合适的采用合适的coding style LATTICE SEMICONDUCTOR CORPORATION Page 13 采用合适的采用合适的coding style 如果output 不需要优先级控制 最好使用CASE statement 因为CASE声明中 每个分支的优先级是一样的 每个分支output是并发的 避免不必要的避免不必要的Latch 综合工具会引入Latch 如果存在不完全的条件表达式 象IF THEN ELSE 声明中没有else子句 Latch会需要额外的资源 同时引入组合反馈环从而产生异步时序问题 non intended latch 是可以避免的 使用时钟寄存器 或遍历所有的输入条件assign output 或是使用else when others 作为最后的子句 LATTICE SEMICONDUCTOR CORPORATION Page 14 采用合适的采用合适的coding style LATTICE SEMICONDUCTOR CORPORATION Page 15 采用合适的采用合适的coding style 用时钟使能信号代替门控时钟用时钟使能信号代替门控时钟 门控时钟会带来很多时序问题 最典型的是clock skew LATTICE SEMICONDUCTOR CORPORATION Page 16 采用合适的采用合适的coding style 时钟使能guideline in Lattice FPGA Clock enable 只在触发器模式支持 Latch模式不支持 在一个slice中的触发器对共享一个Clock enable信号 所有的触发器支持positive clock enable输入 默认的时钟使能的优先级高于同步set reset 但是可以编程实现set reset 的优 先级高于clock enable LATTICE SEMICONDUCTOR CORPORATION Page 17 采用合适的采用合适的coding style LATTICE SEMICONDUCTOR CORPORATION Page 18 采用合适的采用合适的coding style 针对分布式针对分布式Memory的的coding style 不推荐使用Library Primitive去构建RAM或FIFO 这是因为RAM块在各个系列 FPGA中的structure都是唯一的 综合工具并不能优化处理RAM的实现 会产生 低效率的网表 for device fit 强烈建议使用Ipexpress来构建RAM FIFO 针对高扇出网络控制综合工具针对高扇出网络控制综合工具 Lattice FPGA 架构针对信号高扇出做了设计 比如具有丰富的一级时钟和二级 时钟资源以及全局复位GSR布线资源等等 综合工具在综合时会复制逻辑资源以减小扇出 这样会导致占用过多的资源同 时cheching performance也会变得困难 综上所述在综合过程中有必要对fan out进行控制 LATTICE SEMICONDUCTOR CORPORATION Page 19 采用合适的采用合适的coding style 双向双向buffer 双向buffer可以和以和普通I O一样在顶层文件中实例化 另一种方式就是在代码中实现 LATTICE SEMICONDUCTOR CORPORATION Page 20 采用合适的采用合适的coding style LATTICE SEMICONDUCTOR CORPORATION Page 21 控制综合工具控制综合工具 在 project navigator 中选择顶层 文件 在 Process for current source 中选择 synplify synthesize verilog file 右击鼠标 选择 Properties LATTICE SEMICONDUCTOR CORPORATION Page 22 控制综合工具控制综合工具 Frequency 选项中指定综合频率 通 常指定它为实际工作频率的两倍 指定综合工具是执行面积优先还是 速度优先算法 SDC 约束文件是 Synplify 的约束文 件 可以在这里引入来控制综合过 程 是否基于综合的约束产生 PRF文件 该文件可以拷贝到Map后生成的 PRF文件中去控制Place 0 最大的密度 如果使能了这个选项但是没有 指定器件资源使用率 默认值为 97 使用这个选项会导致denser design 但同时会增加布局布线的难度 设置该选项True 将实现hierarchical mapping 而不是flat mapping MAP 不会在同一个PFU中 pack不同 top level的 module 这会通过Logic Grouping给Place LATTICE SEMICONDUCTOR CORPORATION Page 78 Floorplanning the design 如果如果PGROUP attributes替代替代UGROUP attributes 在这个例子中使用在这个例子中使用 PGROUP attributes STATE MACHINE 模块被模块被Group到一个到一个 bounding box REGISTER FILE 模块被模块被Group到另外一个单独的到另外一个单独的boundin。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.