AMD FPGA设计优化宝典笔记(3)控制集

在这里插入图片描述

控制集

1 控制集的个数要求

控制集 control set:因为 7 系列 FPGA,一个 slice 只能有一种控制集(触发器的使用方式 比如有复位/有时钟使能等等),多了就会分布到不同的 slice 里, 所以代码尽量统一触发器的控制集使用方式,不要超限制(xilinx 给出的比例是尽量小于总控制集个数的 7.5%)。合理的使用举例,总控制集数769个,用了37个,比例是4.8%,这是用tcl指令看的。

2 降低控制集个数的方法

有多种方法可以降低控制集。
从代码风格的角度看,方法1:只有在必要时才使用时钟使能或复位。
方法2:保持控制信号的极性一致,也就是都是高有效或低有效。
方法3:避免使用低扇出的异步复位、置位信号,但是异步复位、置位信号不受时钟的控制,所以综合工具无法将其搬移到数据路径上,使用异步复位或置位必然增加控制集

方法1的实际应用:

例如,

数据路径上经常会使用很多流水寄存器,因为在流水线上老的数据总会被新的数据冲掉,因此只需要在首级和末级使用复位即可。
同步复位触发器可以用 tcl 代码将其搬移到数据路径上,综合后的名字为寄存器的输出端名字加上_reg,把 EXTRACT_RESET 这个参数设置为no,意味着不允许工具提出复位信号。起到中间级的寄存器不用复位的目的。
同步的置位使用同样的约束也可以将其搬到数据路径上,就是tcl指令稍微变一下。

再例如,

有三个触发器共享时钟端口:
第一个触发器既无复位也无置位,
第二个触发器只有同步置位,
第三个触发器只有同步复位。这原本会放置在三个不同的 SLICE 中,但使用 EXTRACT_RESET 为 no,将它们变成一致的,可将其放置在同一个SLICE 中,节约了资源和控制集
对于时钟使能信号,可以通过设置属性 EXTRACT_ ENABLE 为 no 将其搬到数据路径上,也节约了控制集。

再例如:用vivado工具来减小控制集

1 )尽量不用MAX_FANOUT来降低扇出(这是控制集与扇出的权衡)
2 )综合选项中 -control_opt_threshold的值设置大一点,控制集就小一点
3 )布局布线阶段(opt_design)阶段中,合并等效控制信号,用的选项是-control_set_merge等。
这些看工具中的提示,如果确定控制集超了,可以试着用这些方法。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/680351.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2.12 分支、循环练习

1、选择题 1.1、以下程序的输出结果是 A 。 main() { int k11,k22,k33,x15; if(!k1) x--; else if(k2) if(k3) x4; else x3; printf(“x%d\n”,x); } A x4 B x15 C x14 D x3 解析:if(!k1) x--; 检查 k1 是否为0。因为 k1 的值为1,所…

嵌入式Qt Qt Creator安装与工程介绍

一.Qt概述 什么是Qt:Qt是一个跨平台的C图形用户界面应用程序框架。它为应用程序开发者提供建立图形界面所需的所有功能。它是完全面向对象的,很容易扩展,并且允许真正的组件编程。 二.Qt Creator下载安装 下载地址:Index of /a…

如何编译zlib?

学习文章:windows zlib库编译步骤_nmake 编译 zlib-CSDN博客 记录关键步骤: 打开 执行: 先cd到该目录: C:\Users\xxx\Downloads\zlib-1.2.11\contrib\masmx86 (这是我的zlib源码的下载路径) 执行bld_ml32.bat 再…

【每日一题】03 不同路径Ⅱ(DP2)

问题描述 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。 现在考虑网格中有障碍物。那么从左上…

LeetCode.145. 二叉树的后序遍历

题目 145. 二叉树的后序遍历 分析 上篇文章我们讲了前序遍历,这道题目是后序遍历。 首先要知道二叉树的后序遍历是什么?【左 右 根】 然后利用递归的思想,就可以得到这道题的答案,任何的递归都可以采用 栈 的结构来实现&#…

Python||数据分析之pyecharts 绘图(词云、气泡)

1. echarts 和 Pyecharts 简介 1.1echarts 简介: • echarts 是一个使用 JavaScript 实现的开源可视化库,涵盖各行业图表,满足各种需求。 • echarts 遵循 Apache-2.0 开源协议,免费商用。 • ECharts 最初由百度团队开源,并于 2018 年初捐赠给 Apache 基金会,成为 AS…

【Tauri】(2):使用Tauri应用开发,使用开源的Chatgpt-web应用做前端,使用rust 的candle做后端,本地运行小模型桌面应用

视频演示地址 https://www.bilibili.com/video/BV17j421X7Zc/ 【Tauri】(2):使用Tauri应用开发,使用开源的Chatgpt-web应用做前端,使用rust 的candle做后端,本地运行小模型桌面应用 1,做一个免…

ClickHouse--03--数据类型

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 数据类型1. Int2.FloattoFloat32(...) 用来将字符串转换成 Float32 类型的函数toFloat64(...) 用来将字符串转换成 Float64 类型的函数 3.DecimaltoDecimal32(value…

视觉开发板—K210自学笔记(五)

本期我们来遵循其他单片机的学习路线开始去用板子上的按键控制点亮LED。那么第一步还是先知道K210里面的硬件电路是怎么连接的,需要查看第二节的文档,看看开发板原理图到底是按键是跟哪个IO连在一起。然后再建立输入按键和GPIO的映射就可以开始变成了。 …

Linux第48步_编译正点原子的出厂Linux内核源码

编译正点原子的出厂 Linux 内核源码,为后面移植linux做准备。研究对象如下: 1)、linux内核镜像文件“uImage” 路径为“arch/arm/boot”; 2)、设备树文件“stm32mp157d-atk.dtb” 路径为“arch/arm/boot/dts” 3)、默认配置文件“stm32m…

C++入门篇——类与对象重点解析(中篇)

1. 类的6个默认成员函数 如果一个类中什么成员都没有,简称为空类。 空类中真的什么都没有吗?并不是,任何类在什么都不写时,编译器会自动生成以下6个默认成员函数。 class Date {}; 默认成员函数:用户没有显式实现&a…

WordPress修改所有用户名并发送邮件通知的插件Easy Username Updater

前面跟大家介绍了『如何修改WordPress后台管理员用户名?推荐2种简单方法』一文,但是对于有很多用户的站长来说,操作有点复杂,而且无法发邮件通知对方,所以今天boke112百科向大家推荐一款可以直接在WordPress后台修改所…

全面详细对比@Resource和@Autowired

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl Resource和Autowired概述 在Java的Spring框架中,Resource和Autowired都是用于实现依赖注入(Dependency Injection, DI)的重要注解。依赖…

洛谷UVA题目Unknown Error

UnexpectedResponseStatus: expect status code: 301 Moved Permanently on https://onlinejudge.org/index.php?optioncom_comprofiler&tasklogin, got: 200 OK 如果你绑定了账号,去原站Online Judge - Home 登录一下,好久没登陆,需要激…

[2-远程开发-01]idea远程连接开发

背景 因为本次的项目使用到一些网络相关的库只在linux可使用,项目本身也会在linux运行,而且如果在mac上进行开发的话,也涉及到部署的问题,而且也不能调试。 所以直接在本专栏第一篇的centos主机上进行开发,以远程连接…

【开源】SpringBoot框架开发校园疫情防控管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 学生2.2 老师2.3 学校管理部门 三、系统展示四、核心代码4.1 新增健康情况上报4.2 查询健康咨询4.3 新增离返校申请4.4 查询防疫物资4.5 查询防控宣传数据 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBoot…

【Java程序设计】【C00253】基于Springboot的在线考试管理系统(有论文)

基于Springboot的在线考试管理系统(有论文) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的在线考试系统 本系统分为系统功能模块、管理员功能模块以及用户功能模块。 系统功能模块:系统登录,管理…

WordPress后台编辑个人资料页面直接修改用户名插件Change Username

前面跟大家介绍了『如何修改WordPress后台管理员用户名?推荐2种简单方法』一文,但是对于新站长或者有很多用户的站长来说,操作有点复杂,所以今天向大家推荐一款可以直接在WordPress后台编辑个人(用户)资料页…

【GameFramework框架内置模块】1、全局配置(Config)

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 【GameFramework框架】系列教程目录: https://blog.csdn.net/q7…