ISE中FPGA的实现流程
一.ISE实现的步骤
在综合之后,我们开始启动FPGA在ISE中的实现过程,整个过程包括以下几个步骤:
1.Translate - 将输入的网表文件和约束文件整合后输出到一个Xilinx私有的通用数据库 文件(Native Generic Database,NGD)中。
2.MAP - 将设计映射到目标器件的资源上,可以选择在此阶段完成资源的布局。
3.Place and Route - 按照时序约束的要求,完成设计的布局布线。
4.Generate Programming File - 生成一个可下载到FPGA器件的bit流文件。
本文将会详细的介绍如何完成一个设计的实现过程以及实现过程的这四个步骤。
二.启动实现过程的方法
1.在design窗口的第一行,找到view选项,选中Implementation模式,表示design窗口中显示的是Implementation过程的界面。新建工程中默认选择Implementation模式。
2.在design窗口上半部分的hierarchy子窗口中,点击顶层文件。
3.在design窗口下半部分的processes子窗口中,可以双击Implement Design启动完整实现过程,也可以右键选中run启动完整实现过程。同时,可以展开Implement Design,单独执行Translate、MAP、Place and Route等过程。Implement 结束以后,可以双击Generate Programming File生成bit流文件。Generate Programming File过程也可以通过邮件选中run来启动。
三.Translate
Translate过程将输入的所有网表文件和约束文件进行整合,输出到一个NGD(Native Generic Database)文件中。NGD文件是Xilinx自定义的一种通用数据库文件,在文件中设计被映射成各种NGD定义的基元,例如与门、或门、LUTs、flip-flops和RAM等。NGD文件中同时包含着原始网表文件中描述的设计层次,以及原始约束文件中包含的约束信息。NGD可被映射到目标系列的器件中。
主要输入文件类型:ngc(XST综合时的网表文件)、edf (synplify综合时的输入网表文件)、ucf(约束文件)
主要输出文件类型:NGD(Xilinx私有通用数据库文件)、BLD(Translate过程的报文)
四.MAP
MAP过程用于将设计映射到一个具体的目标FPGA中,输入文件NGD中描述的逻辑被MAP(映射)成具体的FPGA基元,如IOBs、Slices和RAMs。MAP过程会进行多余逻辑剔除、组合逻辑合并之类的动作,具体实现过程受到各种约束的影响。MAP过程输出一个叫做NCD(Native Circuit Description)的文件,用来表示设计与FPGA基元之间的具体映射关系。对于除了Spartan@-3和Virtex-4之外的的FPGA,MAP过程同时会完成FPGA基元的布局(Place)。
主要输入文件类型:NGD
主要输出文件类型:NCD(Xilinx私有电路描述文件,描述了逻辑与FPGA基元的具体映射关系,对于除Spartan3和Virtex4之外的FPGA,NCD还包含基元的布局信息)、PCF(物理约束文件,用于约束各个FPGA基元之间的位置关系等)、MRP(map过程的报告)
五.PAR(Place and Route)
PAR过程用于将输入文件NCD中的FPGA基元放置在具体的位置,并且完整各个基元之间的连线。对于除Spartan@-3和Virtex-4之外的的FPGA,Place过程已在MAP阶段完成,PAR只需完成Route(布线)即可。PAR在Route时,根据时序约束,不断的尝试如何让所有的布线都满足时序要求,直到所有布线真的都满足时序为止。PAR的结果输出到一个NCD(Native Circuit Description)文件中,PAR输出的NCD和与MAP输出的NCD全名不相同,内容也不相同。
主要输入文件类型:NCD、PCF
主要输出文件类型:NCDXilinx私有电路描述文件,描述了逻辑在FPGA内部的具体实现)、PAR(PAR过程的报告文件)
六.Generate Programming File
Generate Programming File过程用于生成FPGA的的配置文件,配置文件(如bit文件)中包含了PAR后NCD文件中所有的布局布线信息,可用于FPGA的配置。将配置文件加载到FPGA以后,FPGA才能实现被设计的功能。
主要输如文件类型:NCD(PAR产生)
主要输出文件类型:bit(包含一些头信息和配置信息,可用于电缆线加载)、bin(只包含配置信息,存储在memory中的部分,如存在SPI FLASH中的配置信息)。
ISE中FPGA的实现流程的更多相关文章
- 每天进步一点点------ISE 12.4的FPGA设计基本流程
基于ISE 12.4的FPGA设计基本流程 ISE是使用XILINX的FPGA的必备的设计工具,它可以完成FPGA开发的全部流程,包括设计输入.仿真.综合.布局布线.生成BIT文件.配置以及在线调试等 ...
- 49.关于Quartus和ISE中ROM的初始化和仿真的一些小结
最近在玩Altera的FPGA,当我用Quartus II自带的IP核生成ROM时,出现了各种问题,于是在网上各种查资料,终于解决了我的问题.这里做一下小结,方便自己日后查阅. Quartus II ...
- [转载](转)ISE中ROM初始化文件(.coe)的建立
原文地址:(转)ISE中ROM初始化文件(.coe)的建立作者:老徐 UltraEdit 对于ROM模块,主要是生成相应的.coe文件. 1.在Matlab中生成正余弦波形的浮点值,并量化为16bit ...
- 在Powershell ISE中添加sharepoint的智能提示,Enable SharePoint PowerShell Commandlets in the PowerShell ISE
Powershell ISE在默认状态下有一个不好的地方就是不会显示关于SharePoint的一些智能提示,例如你写一个"get-"后面提示的选项里没有sp开头的一些对象.于是找了 ...
- Quartus II中FPGA的管脚分配保存方法
一.摘要 将Quartus II中FPGA管脚的分配及保存方法做一个汇总. 二.管脚分配方法 FPGA 的管脚分配,除了在QII软件中,选择“Assignments ->Pin”标签(或者点击按 ...
- EDK中如何使用ISE中生成的IP
EDK中如何使用ISE中生成的IP: 网上上有说这个的文章,但是很复杂,也就是添加bdd文件,其实这些都不需要自己操作的,我们可以在EDK中import 中添加ngc文件,ngc文件就是core ge ...
- ISE 中使用system generate
本文讲解简单的ISE中使用system generate,system generate基本使用规则在此不详细说明可以见博客http://blog.csdn.net/xiabodan/article/ ...
- Android中Linux suspend/resume流程
Android中Linux suspend/resume流程首先我们从linux kernel 的suspend说起,不管你是使用echo mem > /sys/power/state 或者使用 ...
- shell中命令的执行流程
在shell中,一个命令有3中写法: 1 可以直接写(Normal Command) 2 可以放在双引号中("Command") 3 可以放在单引号中('Comand') 这3中写 ...
随机推荐
- day5-基础 函数
函数 函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的,具体区别,我们后面会讲,编程中的函数在英文中也有很多不同的叫法.在BASIC中叫做subroutine(子过程或子程序 ...
- android Listview 软引用SoftReference异步加载图片
首先说一下,android系统加载大量图片系统内存溢出的3中解决方法: (1)从网络或本地加载图片的时候,只加载缩略图.这个方法的确能够少占用不少内存,可是它的致命的缺点就是,因为加载的是缩略图,所以 ...
- springIOC的那些事
springIOC动态代理的那些事儿 1.发现问题 今天在使用spring的IOC容器时发现了这样的一个问题: 首先有一个接口定义如下: public interface BookShopSer ...
- react中使用css动画效果
index.js import React, { Component, Fragment } from 'react'; class App extends Component { construct ...
- jmeter自动生成测试报告
环境要求1:jmeter3.0版本之后开始支持动态生成测试报表 2:jdk版本1.7以上 3:需要jmx脚本文件 基本操作 1:在你的脚本文件路径下,执行cmd命令:jmeter -n -t test ...
- MySQL优化 ----开篇
今天,数据库的操作越来越成为整个应用的性能瓶颈,Mysql优化则是一个经常要谈的问题了. 谈起MySQL优化,咱们先简单谈一下Mysql: Mysql是最流行的关系型数据库管理系统,在WEB应用方面M ...
- ContentProvider 、 ContentResolver 、 ContentObserver
说说ContentProvider . ContentResolver . ContentObserver 之间的关系**a. ContentProvider 内容提供者,用于对外提供数据 b. Co ...
- SpringBoot非官方教程 | 第二十三篇: 异步方法
转载请标明出处: 原文首发于https://www.fangzhipeng.com/springboot/2017/07/11/springboot-ansy/ 本文出自方志朋的博客 这篇文章主要介绍 ...
- 为什么有IP还需要硬件地址,或者说为什么有硬件地址还需要IP
只用MAC 虽然每个设备都有唯一的硬件地址,但不都是MAC格式. 只用MAC的话理论上是可行的,但是其中 兼容不同的硬件地址,处理起来是非常困难的.而且数据链路层也没有必要处理网络层的逻辑. 只用IP ...
- [Oracle]Audit(一)--认识Audit
1.Audit的概念 Audit是监视和记录用户对数据库进行的操作,以供DBA进行问题分析.利用Audit功能,可以完成以下任务: 监视和收集特定数据库活动的数据.例如管理员能够审计哪些表被更新,在某 ...