FPGA editor 概述
主要在约束限制条件下,进行电路的手动布局和布线功能并将电路转换成可下载的二进制bit形式;同时可以完全在该环境下进行电路的完全设计实现。
1. 输入文件
- NCD:带布线信息的设计文件
- PCF:物理约束文件
- ELF:二进制数据文件,包含可在CPU上运行的代码
- drf:二进制数据文件,包含可在CPU上运行的代码,并添加了调试信息
- mem:保存连续数据的简单文本
- NMC:可用软件创建/观察的物理硬宏,类似于IP核结构,可以例化调用
2. 输出文件
- 修改后的NCD和PCF文件
- 修改后的UCF和NMC文件
- BIT:下载用的二进制文件
- CDC:通过ILA命令生成的文件
3. 快捷按键
上/下/左/右 |
移动屏幕的75% |
shift+上/下/左/右 |
移动至边界 |
Space |
向光标所在方向快速移动 |
A, a, X, x |
移动到命令行 |
B, b |
切换开关矩阵 |
C, c |
切换设计用元件 |
D, d |
切换pinwares端口连线 |
G, g |
切换IR局域互联 |
L, l |
切换IR长互联 |
N, n |
切换ratsnest线 |
O, o |
缩小到全可视大小,并取消连线选择 |
P, p |
切换线上缓存器 |
Q, q |
显示光标指定资源的信息 |
R, r |
切换已布线路 |
S, s |
切换器件所有元件 |
T, t |
切换名称标注 |
U, u |
显示光标指定连线到的源名称 |
W,w |
缩放到适宜大小,并打开所有便于编辑的资源 |
Z, z |
切换缩放 |
F1 |
帮助文档 |
F2 |
Main properties |
Control + N |
File > New |
Control + F6 |
Go to next window |
Shift + Control + F6 |
Go to previous window |
Control + C |
Copy |
Control + O |
File > Open |
Control + P |
File > Print |
Control + S |
File > Save |
Control + V |
粘贴到命令行 |
Control+双击右键 |
执行route布线命令 |
Control + X |
从命令行剪切 |
4. 软件主窗口和工具栏认识
包含三个主要窗口:array、list、world。
- array窗口用于显示芯片各资源、布线等情况;
- list窗口则用于设计中按名称和类别搜索指定资源,并对该资源进行显示设置/放置等操作,可保存相关数据到Comma Separated Value (.csv)文件
- 用户工具快捷按钮列在list窗口旁,便于常用操作的快速实现
- world窗口用于快速定位到芯片的大体方位
- 历史记录和命令行依次位于窗口下方,便于命令输入和查看相关结果
命令行进行文件载入命令:fpga_editor ([-nosplash] ) | ([-n|-e|-r] {-md <bramfilename> [tag <tagname>]}[-p <scr_file>] <ncd_file> [<arch> <device> <package> <speed>]) | ([-n|-e|-r] {-md<bramfilename> [tag <tagname>]} [-p <scr_file>] <ncd_file> <pcf_file> [<arch> <device><package> <speed>]) | ([-e|-r] [-m] [-p <scr_file>] <macro_file> [<arch> <device> <package><speed>]) | ([-p <scr_file>])
Switch |
Argument |
Help Text |
-n |
no-logic-changes-mode |
|
-e |
Read-write mode |
|
-r |
Read only mode |
|
-m |
Macro edit mode |
|
-md |
<bramfilename>[tag<tagname>] |
Initialization of BRAM with contents of <bramfilename> |
<ncd_file> |
Circuit design file name. Extension is optional. |
|
<pcf_file> |
Physical constraints file name. Extension is optional. |
|
<nmc_file> |
Macro File Name. Extension is optional. |
|
-p |
<src_file> |
A script file to execute immediately after a design or macro is read or created, or after the program's initialization files have been read. |
Switch |
Argument |
Help Text |
<arch> |
Architecture or device family, such as Virtex |
|
<device> |
Device, such as Virtex2 |
|
<package> |
Package, such as PC84 |
|
<speed> |
Device speed grade, such as "3" |
5. 手动布线
-
左键选择源引脚
-
按下ctrl键同时点选路径连线,中间有buffer等最好都点亮防未知错误,有多个目标终端时逐一进行
- 选择Tools > Route > Manual Route进行布线命令
- 各pin脚的子线路具有唯一性,即只属于一个net,仅由一个源驱动
- 布线失败时会报错,且软件默认尝试自动布线(可关闭)
- 可从源布到负载,也可反向,但不能混用
- 局部手动布线必须要锁定后才能被autoroute –all保留并完整布线,否则手动配置部分会被移除
- 手动加入的布线锁定状态由对应的net的锁定状态决定
- 一般应逐一顺序连接目标元件,如A到B,再B到C;但用-fanout选项可实现A到B,A到C
6. 相关操作
增删操作
- 添加/删除元件及其端口 不能重复使用,端口只属于一个net;端口对元件有依附性,一删全删
- 添加/删除网线和端口 选定一组端口,用命令add可自动布线(Automatic Post开启);删除路径则通过list窗口查询;删端口直接选择并删除即可
- 删除path及其上的element path由约束文件定义,删除后与其直接相关的约束也同时无效;路径上的元素删除后任存在于设计中,需再用 delete path path_name 命令实现完全删除
- External Pins 例化macro设计的引脚,删除后不再是external的,但如果被连到了某各net上,则连接关系任存在
使用macros
- 添加例化macro 必须满足设计使用同系列(family)的芯片;多个重复例化有各自不同的名称;新的例化都基于本地实例原型,不再受原始库模型更新影响
(只有指定参考点的例化位置才能实现例化macro的定位例化,否则例化电路将未含有布局布线信息)
- 创建/打开/删除macro 保存时会舍弃所有约束信息
- 为macro添加扩展接口 除了选择和添加命令,还需在External Pin Properties勾选使能
- 移动macro 通过参考元件实现移动,在自动布线使能时可实现扩展连线的自动重布线;可通过右键拖动实现macro移动,左键拖动list实现macro安放
- 创建关联macro(RPM) 调用 button bind bind 命令,选择备选参考元件系列并点选 bind 按钮;改变参考点办法(Ctrl+右键新参考点, Edit > Set Macro Reference Comp)
- 取消关联macro(RPM) 选择相关设计单元,调用Edit > Unbind Macro
布局布线
- 自动布局布线 可以进行部分选择实现,也可以进行整体实现;布线策略和标准;可进行简单配置;可选择进行整体布局/布线的重配置;布线在满足设计约束/达到迭代上限/无法完成布线时停止布线迭代
- 手动布局布线 可通过元件/线路选择和命令实现布置;也可通过鼠标的拖动实现布置;布线时,多个对象端口可进行逐一加入操作来实现
- 取消布局布线 取消布线时端口间会显示直连关系;约束部分不能实现取消功能
配置和探针
- 时序分析联调 使用Tools > Timing Report打开.twx文件,选定路径超链接时FPGA Editor中对应的路径会高亮显示,便于路径调整和时序优化
- 参考元件设置 选定元件并Edit > Set Macro Reference Comp;直接调用命令getattr main refcomp
- 编辑元件逻辑 在Block窗口中设置LUT/MUX/RAM等资源;对查找表进行布尔表达式的设置,相关符号及含义如下表
Symbol |
Logical Gate |
~ |
NOT |
+ |
OR |
* |
AND |
@ |
XOR |
- 更多元件操作 移动相关资源(选定和交换/直接拖动);交换相关资源/引脚(选定和交换),没有直接拖动方案;元件选择有时必须借助命令行(资源未在视图中显示出来);Control+Right Click可实现线路的部分连接选择功能;资源的选择和着色处理(使用命令/快捷选色和按键实现)
- 使用探针 Tools > Probes添加和编辑探针,并生成位流文件供iMPACT下载验证;不布线添加探针probe add <netName> -targetPins <pinName1> [<pinName2>...] -noroute;追加布线实现probe route -all(.scr探针脚本文件),探针不用于最终产品中,否则极可能导致电路性能变差
- 扩展引脚 getattr main extpins实现扩展引脚的罗列;相关参数设置实现引脚性能制定
GUI操作
To Open a new... |
Select |
Array Window |
Window > New > Array Window |
Block Window |
Window > New > Block Window |
List Window |
Window > New >List Window |
World Window |
Window > New > World Window |
- 对选定资源进行参数设定
- File > Export可以导出List包含的信息到 .csv文件中;右键移动鼠标可以移动视图
- Tools > Scripts 中可进行相关的脚本操作集记录和存用
- design_name_fpga_editor.out临时记录了操作历史,退出时更名为design_name_fpga_editor.log文件,Setattr 控制文件更新相关参数,历史记录可进行异常退出的修复
设计验证
- Design Rule Check (DRC) 和Delay Calculator均可进行
- 两者可以指定需要检查的部分对象/整个设计;DRC还能设定检查策略和输出类型
7.其它
- 命令列表和参数详解(略)
- 关键名词及解释(略)
推荐学习
FPGA Editor Help:ISE/doc/usenglish/help/iseguide/mergedProjects/fpga_editor/whnjs.htm
Xilinx ISE Design Suite 10.1 Software Manuals