FPGA从硬件描述语言到配置文件主要经历如下的几个过程 :
综合 -> 翻译融合 -> 映射 -> 布局布线 -> 配置文件生成
综合
输入 : HDL代码 , 综合配置 , 器件型号
综合配置:
1. 修改编译策略 : 速度优先策略, 面积优先策略 , 功耗优先策略 , 最短时间策略 , 折中策略;
2. 修改一般综合选项 : keep hierarchy (保留层级), read core(读核) , synthesis constraints file(综合约束文件)
3. 修改HDL综合选项 : 状态机选项, 存储器, 复用器, 解码器, 等
4. 其他 寄存器平衡, 信号最大扇出控制等;
输出 : RTL门级网表 , 综合报告;
翻译融合
输入 : RTL门级网表 翻译融合设置
RTL门级网表 :
1. 综合后门级网表 : HDL代码综合后产物
2. IP核门机网表 : 官方IP核网表
输出 : 顶层可识别门级网表即融合综合后的RTL网表和IP网表, 包含整个FPGA设计的功能; 翻译融合报告;
映射
输入 : 顶层可识别门级网表 , 映射设置, 位置约束 , 时序约束, 管脚约束
顶层可识别门级网表 : 主体输入, 包含FPGA所有信息与基本逻辑实现;
映射设置 : 一般采用默认设置 , 简单映射设置如下
ignore user timming constraint : 忽略用户时序约束选项
trim unconnected signals : 删除无连接信号选项
generate detailed map port : 产生详细映射报告选项
pack I/O registers/latchs into IOB : 保证register与IO的距离
时序约束 : (针对布局布线环节)
指导映射过程, 不用资源延迟不同, 根据时序信息判断使用
管脚约束 :
顶层信号对应FPGA的物理管脚;
输出 : 顶层资源位置门级网表 , 门延迟文件 , 映射报告;
布局布线
输入 : 顶层资源位置门级网表, 布局布线设置, 管脚约束, 时序约束
输出 : 最终资源位置门级网表 , 布线信息 , 延迟文件; 布局布线报告 ;
配置生成
输入 : 最终资源位置门级网表 , 布线信息, 配置生成信息 , 器件类型
输出 : 配置文件, 配置生成文件;