第4节 FPGA设计基本原则(3)
第4节 FPGA设计基本原则(3)
系统原则
- 由软硬件构成的电子系统。
--各软硬件模块划分与成本分配;
--各软硬件模块任务分配(FPGA、DSP、CPU)
-性要求高,工作速度要求高 FPGA/CPLD;
--接口设计; - FPGA子系统:
--在FPGA设计中,应该对设计的全局在宏观上进行合理的安排
-逻辑功能模块划分
-时钟域
-模块复用
-约束
-面积、速度、速度等等
--这些系统上的考虑不仅关系到是否能够最大程度地发挥项目成员的协同设计能力,而且直接决定着设计的综合、实现效果和相关的操作时间。 - 模块化设计是系统原则的一个很好的体现,它是自顶向下、模块划分、分工协作设计思路的集中体现,是当代大型复杂系统的推荐设计方法,目前很多的EDA厂商都提供了模块化设计工具。
模块化设计的简单流程


模块化设计与增量编译 - Xilinx
-
模块化设计和增量设计是一种设计思路、设计方法,是自顶向下、模块划分、分工协作设计思路的集中体现。
-
增量设计可将设计中无需修改的部分锁定并保持其性能,仅对设计中的变化部分重新处理。使用增量设计,设计人员可在验证过程中加速设计变化的调试,将更多时间用于调整设计中的关键元件,甚至在后期设计规范发生改变时,也不会影响整个设计的主要进度。对于设计中未改变的部分,由于它们布局布线都保持不变,性能也不会变化,因此无需进行重新验证,从而可以节省大量的设计间。
-
Xilinx的ISE设计工具能够实现模块化设计和增量设计。
-
针对不同的设计环境和设计流程,Xilinx提供四种设计方法:
-
相对布局宏设计(RPM Macros)
--主要用来设计一些比较常用的、简单的宏。 -
区域分组设计(Area Groups)
--用于复杂的逻辑设计,特别是在约束设计过程中,对时序要求严格的路径和逻辑,进行必要的区域分组是必不可少的工作。此外,区域分组设计也是增量设计和模块化设计的基本要素。 -
增量设计(Incremental Design)
--用于对部分设计的修改时,尽可能的减少重复编译时间,从而使设计变化所产生的影响降至最小。 -
模块化设计(Modular Design)
--将一个复杂的大型设计分成多个模块,利用基于团队的优势,分别进行设计和调试。这个设计团队可以分散在各个地方,然后将整个设计进行收集、整合、系统调试,以完成整个系统的设计,从而 提高设计的进度,以尽快满足市场需求。采用模块化设计的另一个好处是,可以进行系统的标准化设计,即将一些系统中常用的功能块进行模块化设计和调试、包装,以备调用。
模块化设计与增量编译 - Altera
- LogicLock模块化设计流程允许设计者单独设计、优化和锁定每个模块的性能。
- LogicLock设计流程引入了高效的基于团队的设计方法。
- 使用LogicLock设计方法,在将每个模块合并到顶层设计中时不会影响底层模块的性能。
- 另外,设计者还可以在其他设计中重用优化好的设计模块,进一步利用已有资源并缩短设计时间。
- 使用LogicLock设计方法,设计者可以将每个独立模块的网表文件指定到目标器件中的一个固定或浮动的区域,并在器件中维持模块的布局布线结果,保持模块的优化性能
- LogicLock设计方法的四个主要目标:
--提高设计性能
-合理的规划逻辑锁定区域,将物理关系密切的部分锁定在相邻的FPGA资源上,往往可以达到节省芯片面积,确保时序关键路径,提高区域时序性能的效果。
-另外合理的对时序关键路径进行逻辑锁定,是编译器自动时序优化的有益补充,可以有效的提高时序性能。
--继承设计实现结果
-使用LogicLock工具还可以对已经成功满足设计性能指标的实现结果作为下次编译的指导性文件,将成功的实现结果反标注到下次编译与优化中,从而继承上次实现的结果。
--支持增量编译
-LogicLock支持增量编译模式,指导编译工具增量实现整个设计。将未改变的区域反标注到下次编译中,仅仅对改变了的部分进行新的优化与编译,可以有效的节省编译时间。
--支持团队化设计方法
-LogicLock支持团队化设计流程,每个工程师在FPGA内部预先规划好的区域内完成设计的编译、优化、调试,然后将大家的编译结果整合起来,这样可以最充分的实现团队协作与并行分工,提高计效率,缩短设计周期。


