本帖最后由 czd886 于 2021-11-3 21:17 编辑

       随着可编程技术的不断发展,FPGA被广泛应用于电子设计的各个领域。新的设计思想和设计方法也被不断的提出和应用,如FPGA模块化设计技术。所谓的FPGA模块化设计就是将系统按照一定规则划分成若干模块,然后对每个模块分别进行设计、综合,并将实现结果约束在预先设置好的区域内,最后将所有模块的实现结果有机的组织起来完成整个系统的设计。其划分模块的基本原则为:子模块功能相对独立,模块内部联系尽量紧密,模块间的连接尽量简单。对于那些难以满足模块划分准则的具有强内部关联的设计,不适合采用此设计方法。
       FPGA模块化设计的优点在于:团队式并行工作从而加速整个项目的开发进度;每个子模块都能够灵活使用综合和实现工具独立进行优化,从而达到更好的优化结果;调试、更改某个子模块时,不会影响其他模块的实现结果,保证了整个设计的稳定性与可靠性。
      进行模块化、标准化设计的最终目的只有一个:提高设计的通用性;减少不同项目中同一功能设计、验证引入的工作量。为了达到这一目的,就需要建立起以模块库为基础的FPGA设计体系。我们把这个设计体系的构建分为以下3个阶段。
     1)规范的制定。完善从各功能的原始描述(规格)到产品数字逻辑设计的相应规范。只有各功能的定义统一,对应的功能设计才有可能相同。
     2)模块库的建立。根据制定的相关规范,设计模块库文件夹提交格式,建立模块库。模块库中的模块不是以核心逻辑的实现为主,而是以具体功能的实现为主,具体包括外部接口说明、设计方案、寄存器说明、逻辑代码、仿真文件和使用说明。
    3)改进。在新的设计中,优先使用模块库中的逻辑代码,如果在使用过程中发现设计规范、模块存在隐患,不断改进、更新。设计体系的构建需要解决的首要问题是该体系如何为设计人员乐于采用,在该设计体系中这一问题突出表现为如何使  FPGA设计人员乐于使用模块库中的资源进行设计。要做到这一点,仅仅依靠规范的强制执行是行不通的。必须通过提高模块的通用性、易用性来提升FPGA设计人员的使用热情。
       实际上,大多数的FPGA设计是基于以下模型,根据总线对寄存器的操作来完成预定功能的实现。按照功能划分的方法,把FPGA设计划分为两大部分:总线接口和功能模块。总线接口负责把形形色色的外部总线转化为统一的FPGA内部同步总线。同时,提供主系统对各寄存器的读写操作支持逻辑功能模块负责以寄存器表为中介实现各功能,在设计功能模块时把总线接口和功能接口分类排列,保障各功能模块总线接口的一致性。