当前位置:首页 > 新闻资讯 > FPGA之家动态 >

谈谈Xilinx FPGA设计的实现过程

时间:2024-07-25      来源:网络搜集 关于我们 0

绪论

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的编译流程。

预编译

预编译很大程度上取决于项目的复杂度和编译流程。需要准备的任务主要包括•从源代码控制库中获取最新的项目和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-3w -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.ncdBITGEN 有一百多个命令行选项,能执行不同的 FPGA 配置, 这些选项在命令行工具用户指南中描述。

编译后

FPGA 比特流生成后,编译流程可能还会包含以下任务:•解析编译报告以确定编译是否成功•复制并归档比特流及中间的编译文件

- END -

NOW

推荐阅读

【Vivado那些事】如何查找官网例程及如何使用官网例程

【Vivado使用误区与进阶】总结篇

【Vivado那些事】Vivado下头文件使用注意事项

【Vivado那些事】Vivado中常用的快捷键(一)F4键

【Vivado那些事】Vivado中常用的快捷键(二)其他常用快捷键

HDL Designer Series(HDS)介绍

SystemVerilog数字系统设计_夏宇闻 PDFVerilog 里面,always,assign和always@(*)区别

FPGA上如何求32个输入的最大值和次大值:分治

一文读懂TCP/IP!

《RISC-V on T-Core》学习笔记

新年愿望是什么?先送大家一波开发软件

谈谈FPGA(入门)学习的两种方式

ZYNQ-迷恋ZYNQ-FPGA开发板资源分享

零基础入门FPGA,如何学习?

黑金全部开发板资料(FPGA+ZYNQ)分享

【Vivado那些事】FPGA配置失败,无法启动怎么办

你会在github上找项目吗?

图书推荐|ARM Cortex-M0 全可编程SoC原理及实现

简谈:如何学习FPGA

RISC-V再进阶!世界首款5纳米RISC-V SOC成功流片!

几款开源SDR平台

Xilinx 推出 Kria 自适应系统模块产品组合,在边缘加速创新和 AI应用

RISC-V指令集架构介绍及国内外厂商介绍

Vitis尝鲜(一)

SDR/无线设计中LNA和PA的基本原理

拆解1968年的美国军用电脑,真的怀疑是“穿越”啊!

一文最全科普FPGA技术知识

首个中文CPU指令规范 龙芯推出LoongArch基础架构手册

你见过1-bit CPU吗?

高级FPGA设计技巧!多时钟域和异步信号处理解决方案

【Vivado那些事】Vivado中电路结构的网表描述

ZYNQ中裸机开发和Linux开发有什么区别?

现代计算机的雏形-微型计算机MCS-4

【每周一问】如何控制加载FPGA程序时,Xilinx FPGA的IO管脚输出高低电平

【Vivado那些事】vivado生成.bit文件时报错-ERROR: [Drc 23-20]

AD9361 和Zynq及其参考设计说明

1202年了,还在使用虚拟机吗?Win10安装Ubuntu子系统及图形化界面详细教程

点击上方字体即可跳转阅读


注明:本内容来源网络,不用于商业使用,禁止转载,如有侵权,请来信到邮箱:429562386ⓐqq.com 或联系本站客服处理,感谢配合!

用户登陆

    未注册用户登录后会自动为您创建账号

提交留言