绪论

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-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 比特流生成后,编译流程可能还会包含以下任务:

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

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

- END -

NOW现在行动!
推荐阅读
【Vivado那些事】如何查找官网例程及如何使用官网例程【Vivado使用误区与进阶】总结篇【Vivado那些事】Vivado下头文件使用注意事项【Vivado那些事】Vivado中常用的快捷键(一)F4键【Vivado那些事】Vivado中常用的快捷键(二)其他常用快捷键
HDL Designer Series(HDS)介绍
SystemVerilog数字系统设计_夏宇闻 PDF
Verilog 里面,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原理及实现
简谈:如何学习FPGARISC-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子系统及图形化界面详细教程点击上方字体即可跳转阅读

谈谈Xilinx FPGA设计的实现过程相关推荐

  1. FPGA之道(18)FPGA设计的编译过程

    文章目录 前言 FPGA设计的实现过程 编译概述 编译流程之综合 综合的输入 HDL代码 综合设置 综合的输出 综合的工具 编译流程之翻译融合 翻译融合的输入 翻译融合的输出 翻译融合工具 编译流程之 ...

  2. 无招胜有招-Vivado非工程模式下的FPGA设计流程

    参考:UG892 UG835 Vivado集成开发工具为设计者提供了非工程模式下的FPGA设计流程.在Vivado非工程模式下,FPGA开发人员可以更加灵活地对设计过程的每个阶段进行控制,从而进一步提 ...

  3. Xilinx FPGA开发板 Digilent Spartan-3E 学习资料整理

    很多人抱怨Xilinx FPGA的资料很难找,Digilent的板卡资料网上怎么就没有呢!针对这些问题写了如下的BLog,希望对大家有帮助. 最近几日在整理关于Xilinx FPGA和Digilent ...

  4. Xilinx FPGA上电时序分析与设计

    Xilinx FPGA上电时序分析与设计 由 技术编辑 于 星期五, 11/29/2013 - 13:24 发表    http://xilinx.eetrend.com/article/6102 摘 ...

  5. Xilinx FPGA控制器的Everspin STT-DDR4设计指南

    自旋转移扭矩磁阻随机存取存储器(STT-MRAM)是一种持久性存储技术,可利用各种工业标准接口提供性能,持久性和耐用性. Everspin推出了STT-MRAM产品,该产品利用称为JE-DDR4的JE ...

  6. Xilinx FPGA单端时钟设计方法

    1.1 Xilinx FPGA单端时钟设计方法 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)Xilinx FPGA单端时钟设计方法: 5)结束语. 1.1.2 本节引 ...

  7. Xilinx FPGA差分时钟转单端时钟设计

    1.1 Xilinx FPGA差分时钟转单端时钟设计 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)Xilinx FPGA差分时钟转单端时钟设计: 5)结束语. 1.1 ...

  8. 2021-03-18新书《Xilinx FPGA数字信号处理设计——基础版》已上市

    特别说明:杜勇老师的新书<Xilinx FPGA数字信号处理设计--基础版>已上市,亲们可在各售书网站选购.新书的配套板载程序均可直接在CXD301平台上验证.凡购买CXD301开发板的亲 ...

  9. XILINX FPGA VAVADO设计要点

    XILINX FPGA VAVADO设计要点 一.Timing constraints 分离LOC约束与timing 约束 1.[使用多个XDC约束文件]使用单个约束文件看起来是方便的,但是在设计变得 ...

最新文章

  1. CentOS 6/7 忘记root密码,重新设置的方法
  2. 【网络流】学习笔记:一次理解网络流!
  3. 浅谈配置文件:spring-servlet.xml(spring-mvc.xml) 与 applicationContext.xml
  4. GAN生成对抗网络-text to image原理与基本实现-文字转图像-11
  5. 怎样看虚拟主机的服务器,虚拟主机怎么查看服务器类型
  6. python 类和对象 经常用吗_python基础教程之对象和类的实际运用
  7. idea javafx添加maven_maven+IDEA+JavaFX+JFoenix
  8. CodeForces 484B Maximum Value
  9. MVC中某个页面不需要引用母版页的正确写法
  10. codewars--js--Happy numbers++无穷大判断
  11. logstash grok插件语法介绍
  12. linux虚拟机cpu一分钟内负载,虚拟机性能调优-CPU篇
  13. java认证,ocjp认证,jdk1.8,全流程介绍
  14. 8年码龄的技术总监,去上市公司面试,结果凉了!
  15. 赚钱鬼才:即使开放外部支付,苹果App Store仍坚持收取佣金
  16. 虚拟机安装ubuntu server及工作环境搭建
  17. 简单的一种图像冷暖色温转换(MATLAB)
  18. 选拔赛3---7-10 红豆生南国
  19. 9小时突破1000亿,你以为这就是阿里双十一的最大胜利?
  20. closing entry怎么做_牛排三分熟怎么说?刀叉如何摆放?来看看这些西餐知识你知道多少?另有热门院校大盘点...

热门文章

  1. Oracle 11g版本下载及安装超详细教程图解
  2. 故障:部署 Exchange SU 后不能登录到 OWA 或 ECP
  3. plc梯形图中四个基本概念
  4. java+selenium 获取QQ邮箱所有邮件列表信息以及某个邮件信息(springboot)
  5. dedecms修改文章ID_织梦DEDECMS系统修改文章ID的方法
  6. 大厂面试:求解集装箱港口翻箱问题的最短路径
  7. 【下载查询资料】资料链接_liangchaoxi的IT博客_新浪博客
  8. mysql实验四数据库查询和视图_数据库-第四次实验报告-视图-t-sql语句
  9. 同济大学计算机科学研究生几月毕业,同济大学毕业5年月薪最高的十大专业介绍...
  10. 通过正则表达式快速获取电影的下载地址!正则-永远滴神!