当前位置: 首页 > news >正文

FPGA设计-如何使用后端工具

目录

简介

布线布局

设计前期

布局布线策略 兼谈如何做第一次布局布线

正确看待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 使用状况
http://www.lryc.cn/news/516280.html

相关文章:

  • 苍穹外卖04——Redis初入门 在店铺打烊or营业状态管理功能中的使用
  • 【MySQL关于数据库和表结构的增删查改】
  • JVM实战—11.OOM的原因和模拟以及案例
  • LLM - 使用 LLaMA-Factory 部署大模型 HTTP 多模态服务 教程 (4)
  • Clickhouse集群部署(3分片1副本)
  • 刷服务器固件
  • 数据结构C语言描述9(图文结合)--二叉树和特殊书的概念,二叉树“最傻瓜式创建”与前中后序的“递归”与“非递归遍历”
  • CSS——2.书写格式一
  • Elasticsearch 创建索引 Mapping映射属性 索引库操作 增删改查
  • 【NLP高频面题 - 分布式训练篇】ZeRO主要为了解决什么问题?
  • kubernetes-循序渐进了解coredns
  • mysql8 从C++源码角度看 客户端发送的sql信息 mysql服务端从网络读取到buff缓存中
  • pygame飞机大战
  • 【Vim Masterclass 笔记08】第 6 章:Vim 中的文本变换及替换操作 + S06L20:文本的插入、变更、替换,以及合并操作
  • Tailwind CSS 实战:动画效果设计与实现
  • 【动手学电机驱动】STM32-MBD(3)Simulink 状态机模型的部署
  • Linux 服务器启用 DNS 加密
  • PyTorch不同优化器比较
  • stm32的掉电检测机制——PVD
  • Nginx 文件名逻辑漏洞(CVE-2013-4547)
  • Java 21 优雅和安全地处理 null
  • AWS Glue基础知识
  • Kubernetes——part4-1 Kubernetes集群 服务暴露 Nginx Ingress Controller
  • Flutter入门,Flutter基础知识总结。
  • weight decay 和L2是一个东西吗
  • JavaScript系列(8)-- Array高级操作
  • Harmony开发【笔记1】报错解决(字段名写错了。。)
  • MAC环境安装(卸载)软件
  • 【Vim Masterclass 笔记05】第 4 章:Vim 的帮助系统与同步练习(L14+L15+L16)
  • Multisim更新:振幅调制器+解调器(含仿真程序+文档+原理图+PCB)