碎碎思 · 2021年05月28日

谈谈Xilinx FPGA设计的实现过程

原出处:OpenFPGA
作者:碎碎思

绪论

640.png

FPGA编译流程是指将一个FPGA设计从普通RTL描述转换为比特流所需要的一系列步骤。编译流程的顺序会有所不同,这取决于所使用的工具。然而,任何Xilinx FPGA的编译都将包含8个基本步骤:预编译(prebuild)、综合、转换(ngdbuild)、映射(map)、布局布线、静态时序分析、比特流生成(bitgen)和编译后(postbuild)。

转换、映射、布局布线和比特流生成4个阶段通常称为FPGA的物理实现,它们与特定的FPGA结构有关。Xilinx提供了两种IDE工具来设计FPGA,即ISE(Vivado)、PlanAhead,还有其他一些第三方的IDE工具可以进行FPGA设计,如Synopsys、Synplify、Aldec Riviera、Mentor Graphics Precision等。

图1是XilinxFPGA的编译流程。

09.png

213.png

预编译

预编译很大程度上取决于项目的复杂度和编译流程。需要准备的任务:主要包括:

•从源代码控制库中获取最新的项目和RTL文件

•组成(assembling)项目文件列表

•为综合和物理实现工具设置环境变量

•获取工具软件的许可证

•增加RTL代码中的版本号(build number或revision number)

•替换RTL代码中的宏和定义

综合

简单来说,综合就是将硬件描述语言 (HDL)编写的设计转换为网表的过程。Xilinx 综合工具( Xilinx Synthesis Technology, XST)产生专用的 NGC 格式的网表,其中包含逻辑设计数据和约束。其他综合工具产生工业标准 EDIF 格式的网表。

下面是一个调用 Xilinx XST 的例子:

$ xst -intstyle ise -ifn "/proj/crc.xstf" -ofn "/proj/crc.syr"

XST 包含一百多个不同的选项,为了简洁,这些内容都不在本文讨论。XST 完整的选项列表请参阅 Xilinx XST 用户指南。

转换

Xilinx NGDBUILD 工具将网表转换为 Xilinx 本地通用数据库 (Xilinx Native Generic Data-base, NGD)文件, 其中包含与基本逻辑元件有关的设计描述。所需的 NGDBUILD 参数是设计名称,可选参数是 UCF 格式的用户约束文件、目标目录、FPGA 器件型号等。

以下是调用 NGDBUILD 的例子:

$ ngdbuild -dd _ngo -nt timestamp -uc /ucf/crc.ucf –p xc6slx9-csg225-3 crc.ngc crc.ngd

映射

Xilinx MAP 工具将逻辑设计映射到 Xilinx FPGA 中。MAP 工具的输出是本地电路描述( Native Circuit Description , NCD ) 文件,这是映射到特定 Xilinx FPGA 器件的设计物理描述。MAP 有 30 多个在用户指南命令行工具中描述的选项。最常用的一些如-P( 器件型号)、-ol(整体努力水平)、-t(布局成本表)。MAP 工具有几个用于时序约束、 面积和性能优化的选项,将在其他部分加以详细描述。

下面是一个调用 MAP 工具的例子:

map -p xc6slx9-csg225-3 –w -ol high -t 1 -xt 0 -global_opt off -lc off -o crc map.ncd crc.ngd crc.pcf

布局布线(PAR)

使用 Xilinx 的 PAR 工具对设计进行布局布线。PAR 工具输出 NCD 文件,其中包含关于设计的完整布局布线信息。请注意,文件类型与 MAP 工具产生的类型相同。最常见的PAR 工具的一些选项是-P( 器件型号)、-ol( 整体努力水平)和- t( 布局成本表)。命令行工具用户指南描述了 PAR 选项。

下面是一个调用 PAR 工具的例子:

par -w -ol high crc_map.ncd crc.ncd crc.pcf

静态时序分析

使用 Xilinx TRCE 工具可进行静态时序分析。

比特流生成绪论

BITGEN 是 Xilinx 用于创建 FPGA 配置比特流的工具。以下是调用 BITGEN 的最简单:

例子:

$ bitgen 一f crc.ut crc.ncd

BITGEN 有一百多个命令行选项,能执行不同的 FPGA 配置, 这些选项在命令行工具用户指南中描述。

编译后

在 FPGA 比特流生成后,编译流程可能还会包含以下任务:

•解析编译报告以确定编译是否成功

•复制并归档比特流及中间的编译文件



相关文章推荐

更多FPGA技术干货请关注FPGA的逻辑技术专栏。
推荐阅读
关注数
10605
内容数
562
FPGA Logic 二三事
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息