目录
简介
布线布局
设计前期
布局布线策略 兼谈如何做第一次布局布线
正确看待map之后的资源占用报告
简介
本章节主要说明Xilinx的一些后端工具能为我们做什么在什么情况下我们考虑使用这些工具至于这些工具具体如何使用可以看Xilinx提供的相关文件 可从www.xilinx.com下载
布线布局
布局布线是干什么的 我不用多说 我只想讲讲几个值得注意的问题
设计前期
一个设计能否成功 关键是在设计方案阶段相关问题是否考虑完善 其中一个非常重要的工作是确定关键路径 或者关键模块 关键算法等 能否在芯片中实现其实现的结果如何如速度是否满足 面积是否太大等因此我们要求大家在做方案时 要对所有的可能的关键路径或关键部分心中有数而且一定要在正式开始编代码之前要将这一部分的评估代码完成并经过布局布线的检 验 以考察其可实现性 从而对设计方案的风险有一个确定的
布局布线策略 兼谈如何做第一次布局布线
一个设计想要成功完成布局布线 必需满足:
1.
设计规模在芯片容量限制之内
2.
线资源等资源不能超过芯片现有资源
3.
时序要满足要求
据我观察在进行布局布线时绝大部分设计者做法是设定时钟约束及必要的管脚约束选定器件
然后开始布局布线这种做法在小规模设计时一般可以过 不过当面对大型设计时却往往行不通
浪费设计时间在这种情况下 比较好的做法是
1.
第一次布线时 不加任何约束 或者放松时钟约束 这么做的目的是 确保我所选的器件是符合容量要求的 并快速提供一个参考结果 目 前 我们经常遇到布线几十个小时 仍然没有结果的情况 因为没有结果 我们也就无法利用 相关的工具进行分析只能干等 同时 也不知道这么长时间没结果 是布线布不通呢 还是 资源不够用 结果 白白浪费时间
2.
在第一次布线结果分析基础上 适当增加约束条件 如时钟约束 注意 时钟约束要根据上一次分析结果确定是否一步到位约束条件如果设置不好十分浪费时间尤其是对规模庞大的设计 因此我们的约束要恰当好处即能发现关键路径 不满足约束条件又能较快的布出一个结果来
3.
如果布线结果仍不满意则应当努力找到尽可能多的放 松 约 束 TIGMulti-Cycle-Path等 同时 根据实际情况决定是否要进行设计修改可以尝试 设计技巧 章节里提到的各种手段需要注意的是约束件
如
ucf 只是一种微调作用 若要从根本上解决延时问题 应多 从设计本身考虑 当时序实现与要求差别很大时是不能依靠约束来解决问题。
正确看待map之后的资源占用报告
在使用
Virtex
系列进行
FPGA
设计时经常发现map
报告说资源利用率已经到达100%
然 而 真实情况确实如此吗 未必 我们知道 slice
内部包含
LUT Regsiter
和快速进位链及其它快速性能电路 其中 对资源 占用影响最深的应当是LUT
和
Register 因此 我们在看报告时 应当看LUT
占用了多少 Register占用了多少 当然 也应当看Block RAM
占用多少 时钟资源占用多少 这些东西 才 是我们下决策时要考虑的因素 因此 我们在估计一个设计是否能被某个器件装下时 不能笼统地只看Slice
使用状况