设计流程概述
基于模块化的 FPGA 动态局部重构设计实现流程如图所示。共分为功能描述阶段、综合阶段、布局布线阶段、实现阶段和运行阶段五个阶段。
动态局部重构与动态全局重构设计流程不同,其涉及静态和动态逻辑功能划分;综合与布局布线分为两个阶段完成且对于可重构逻辑功能的实现需要划分动态重构区,并进行相关约束之后才能进行布局布线;另外,在局部重构设计中,一般情况下,顶层文件中的动态重构逻辑功能要声明为仅有输入输出端口而无任何逻辑功能的“黑盒子”模块,该模块对应的逻辑功能需另建工程进行描述。下面对各阶段分别进行介绍。
1. 功能描述阶段
在进行模块设计执行阶段之前,设计者要首先完成顶层设计的设计入口。根据逻辑功能划分,除了针对FPGA运行中各阶段需要实现的动态功能电路F1-Fn进行描述,还需要对顶层全局功能电路进行描述,顶层全局功能包含静态逻辑功能和动态逻辑功能,且动态逻辑功能为“黑盒子”。所有功能可用硬体逻辑编程语言方式或原理图方式进行进行描述。
2. 综合阶段
对全局静态逻辑和每个可重构模块进行综合。在这一阶段,设计者要扩展每个可重构模块的顶层逻辑,一次只能扩展一个模块。每个可重构模块必须分开综合,并且要在各自的文件夹内综合,而不是在顶层文件夹下。所以文件夹的创建也要有一定的规则。
当完成逻辑功能描述后,便要使用综合器对逻辑功能描述文件进行综合得到网表文件,包括顶层生成的网表文件Top.ngc和动态重构逻辑功能的网表文件M1~Mn.ngc。此过程中,可能会因设计考虑不周等出现错误或警告,需要对描述文件进行修改,直到正确为止。
3. 布局布线阶段
在Xilinx公司提供的动态局部重构解决方案中,需要使用PlanAhead软件来完成综合阶段之后的所有软件操作。在综合阶段后需要将获得的所有ngc网表文件导入PlanAhead软件来进行相关的物理约束和时序约束,其中,物理约束就是在FPGA的所有资源平面进行动态重构区的划分,如:在目标芯片上放置每个可重构分区的位置并设定每个可重构分区的大小,可重构分区的大小一定要满足分配在该分区内的每个模块的资源需求,如数字信号处理(Digital Signal Process,DSP)、随机存储器(Random Access Memory,RAM)等。完成相关约束后,经过设计规则检测(Design Rule Check,DRC)便利用布局/布线器对设计进行布局布线。
4.实现阶段
当完成布局布线后,便可在 PlanAhead 中调用位流生成工具生成对应 FPGA 的配置位流数据(.bit 格式文件),生成共 n 个包对应应局部重构逻辑功能的全局配置位流文件和 n 个只含动态重构的局部配置位流文件。
5.运行阶段
配置位流文件(.bit 格式文件)是在联合测试接囗组(Joint Test Action Group,JTAG)模式下,可直接对 FPGA 进行配置的数据格式文件。在 JTAG 模式下,向运行中的 FPGA 首先加载全局配置位流文件对 FPGA 进行全局初始化配置,之后根据不同时间段加载局部配置位流文件即可实现动态局部重构功能。
🚀 获取更多详细资料可点击链接进群领取,谢谢支持👇