Floorplanner 概述
使用Floorplanner交互式图形化操作工具实现一些基本操作
-
进行低层次布局规划
-
创建可在其它设计中使用的RPM核
-
查看和编辑定位型约束
-
通过名称或关联性查找逻辑和网线
-
从时序分析到布局设置的交互探测
相关文件和要点
输入文件
- NGD 用于映射到指定器件资源的前期设计描述
- NCD MAP或PAR软件生成文件,用于产生FNF文件所需的物理设计,包含布局布线信息
- FNF Floorplanner网表文件,主要记录所有物理约束信息
- UCF 对布局布线的约束描述
输出文件
- FNF 从文件下拉菜单可保存的数据信息
- UCF 可直接编辑或菜单保存,也可将RPM信息转为UCF命令集并保存
软件基本信息
- 用于提高自动布局布线表现的可选技术,尤其在结构化设计和数据通路逻辑中十分有用,无需NCD文件,同时有比已有UCF约束更高的优先级
- 通过软件可以掌握目标器件的底层信息、设计基础结构、重复性修改以实现性能和密度要求
- 图形接口:用直连线表示端口互联关系,显示引脚/资源信息,显示封装引脚,根据名称或连接关系查询指定逻辑和线网
- 主要作用:使用底层元件IO/三态缓存/FIFO/RAM/ROM实现高层设计,创建RPM内核,识别布局问题,支持自动端口布局设置。。。
- 支持器件:V1、V2、V2 Pro、V4、V5、SII、S3、S3E
- 包含窗口:主窗口、设计层次窗口、设计网线窗口、Floorplan窗口、Placement窗口
- 快捷方式:
通过读入设计相关文件,将所有操作保存于 .fnf 文件实现相应功能
文件扩展名 | 参数 | 描述(命令功能) |
<none> | -nosplash | 禁止启动屏幕 |
<none> | -h | 打印出使用命令 |
<none> | -instyle<ise | xflow | silent> | 禁止启动屏幕 |
<none> | <design_name> | 指定Floorplan使用的名称 |
.fnf | <fnf_file> | N2F或Floorplanner产生的Floorplan文件 |
.ngd | <ngd_file> | NGDBuild生成的文件 |
.ncd | <ncd_file> | MAP/PAR生成的文件 |
.ucf | <ucf_file> | 用户约束文件 |
.fsf | <script_file> | 测试用文件 |
常用的一些快捷键及对应位置和命令
快捷键 | 所在菜单 | 对应命令 |
F1 | Help | Help Topics |
F3 | Edit | Find |
F5 | View | Refresh |
F6 | View | Zoom Full View |
F7 | View | Zoom Out |
F8 | View | Zoom In |
F9 | View | Zoom to Box |
F10 | Change focus to the menu bar | |
F11 | View | Zoom to Selected |
Del | Floorplan | Remove |
Ctrl+N | File | New |
Ctrl+O | File | Open |
Ctrl+S | File | Save |
Ctrl+P | File | Print Floorplan |
Ctrl+Z | Edit | Undo |
Ctrl+I | Edit | Properties |
Floorplan窗口和Placement窗口右键功能
Command | Command |
Zoom Full View | Zoom to Selected |
Zoom In | Find |
Zoom Out | GoTo Next |
Zoom to Box | GoTo Previous |
View Floorplan or View Placement | Close Menu |
Edit Constraints (仅Floorplan窗口) | Swap Top/Bottom View (仅Floorplan窗口) |
设计层次窗口右键功能
Command | Command |
Find | Select Loads |
GoTo Next | Select Sources |
GoTo Previous | Close Menu |
设计网线窗口右键功能
Command | Command |
List Visible Nets | GoTo Next |
Enable | GoTo Previous |
Disable | Close Menu |
Find |
设计流程
基本操作
- 添加分层块:Edit > Add Block,参数框可进行模块名称、资源限用等约束
- 符号校准:3态缓存放置在同一行可实现使能信号共有从而校准;同一行放置共有时钟使能的触发器实现时钟使能校准;将IOB放置在使能资源列近邻处,优化长线的布线需求;通过命令使用组实现快速放置操作
- Floorplan检验:对约束后设计进行校验,包括=>有公共输出的3态缓存是水平校准的;无不同输出的3态缓存是共有水平长线的;单个CLB中的触发器有相同的CLK、CE、RD信号;单个CLB中的两个16位存储单元共享写使能输入;FG核FGH功能生成器互联是有效的;有效资源分配给每个资源分配组;Floorplan > Check Floorplan,双击查看warning对应逻辑
- 创建组:可手动/自动实现组重建。(手动)ctrl+左键实现组团单元选择,Hierarchy > Group创建为组,Edit > Properties可修改组名称,元素全移动到新的组中;(自动)大多根据类型和信号名进行搜索和组团 Edit > Find、选择类型、选择共有属性、Find、Select Found、Hierarchy > Group
- 显示资源和逻辑:打开Edit > Preferences,分别在resources/logic页选择显示资源/逻辑
- 追寻连线相关逻辑:Edit > Find、搜索条件、Find、Select Found
- 层次建立、文件操作、逻辑选择/移动/删除
- 修改着色:选定组、Edit > Colors、选定颜色并应用;选定逻辑资源、Edit > Colors、选定颜色、选定Apply to Symbols并应用
高级操作
- 分析PAR布局结果:View > Placement、检测布局问题(共有使能输出的BUFTs没有垂直对准或与长线中点交织;RAM交织起来妨碍了用长线驱动控制信号;RPMs/BUFTs或其它资源组/线紧邻;层级逻辑通过长线跨区域布局)
- 分析布局时序特点:打开timing analyzer、Analyze > Against Timing Constraints、File > Save生成违反时序约束的信息;在Edit > Find中选择Auto Go并输入TRCE首个net名,并重复操作;对相应连线的资源重放置实现延时优化
- 进行面积约束:
- 创建可重用的RPM核:HDL、综合成EDIF文件、用NGDBuild生成NGD文件、用PAR放置设计/约束设计到某个方框范围、在本软件中进一步约束布局、File > Write RPM to UCF
- 创建和编辑区域约束:选择约束对象、Floorplan > Assign Area Constraint、约束空间选择、约束写入UCF文件;可隐藏可呈现、缩放/移动/删除;Edit > Constraints(增/删/改)
- 时序分析探针:View > Timing Report、选择.twx文件、选中文件中超链接可使对应图像高亮、关键路径修正和速度提高
- 交错总线构建:确立需用交错空间、Floorplan > Distribute Options并设置交错模式(2是间隔、3是隔两个)、拖入交错的几个总线
- 指定IO位置约束
- 修正自动布局缺陷:Floorplan > Replace All with Placement、修改造成关键路径较长的布局、保存并运行NGDBuild、重新实现整个设计并考察时序信息
- 手动布置底层资源;直接使用Floorplanner生成的UCF文件
- 重复布局实现:设计并进行约束布局实现、分析并调整关键路径相关资源约束、重实现
- 复用参考模式:创建(选择相关布局后设计块、Pattern > Capture)、使用(选择设计资源、Pattern > Impose、移动资源到布局窗口)
- 。。。。。。
推荐学习
Floorplanner Help: ISE/doc/usenglish/help/iseguide/mergedProjects/floorplanner/whnjs.htm