FPGA Fanout-Fanin(扇入扇出)

article/2025/8/28 23:22:09

在谈到多扇出问题之前,先了解几个相关的信息,也可以当成是名词解释。

扇入、扇出系数

扇入系数是指门电路允许的输入端数目。一般门电路的扇入系数为1—5,最多不超过8。扇出系数是指一个门的输出端所驱动同类型门的个数,或称负载能力。一般门电路的扇出系数为8,驱动器的扇出系数可达25。扇出系数体现了门电路的负载能力。

灌电流、拉电流

当逻辑门输出端是低电平时,灌入逻辑门的电流称为灌电流,灌电流越大,输出端的低电平就越高。当逻辑门输出端是高电平时,逻辑门输出端的电流是从逻辑门中流出,这个电流称为拉电流。简单的理解就是逻辑门的输入(灌电流)和输出电流(拉电流)。

上、下拉电阻

上拉电阻就是将不确定的信号通过一个电阻嵌位在高电平(即拉电流),来增加高电平输出时的驱动能力,以解决总线驱动能力不足时提供电流;下拉电阻就是将不确定的信号通过一个电阻嵌位在低电平,是用来吸收电流的,也就是灌电流。

负载效应

当输出负载大于它的扇出能力的时候,就会有如下的效应:
  1、输出低态时,输出电压VOL可能高于VOLmax。
  2、输出高态时,输出电压VOH可能高于VOLmin。
  3、输出的传播延迟可能大于规格说明的延迟值。
  4、输出的上升和下降时间可能大于规格说明的延迟值。
  5、器件工作温度可能升高,从而降低其可靠性,最终引起器件失效。

前面已经介绍了什么是扇出和扇出系数。多扇出问题,通常是指用一个节点驱动多个下级逻辑器件,此问题会严重影响FPGA布线的稳定性,设计的时候要多加注意,此时采用的是复制寄存器策略。
  举个例子: CLK为系统时钟,M为1MHz方波信号,由于M信号驱动的模块较多,所以M的扇出较多,为了减少扇出,用系统时钟采样,将M信号驱动7个D触发器,然后将7个D触发器的输出端分给7个模块,这样每个复制点(DUP0~DUP6)平均扇出变为原来的1/7,M的信号扇出变为7,这样就减少了每个信号的扇出,优化了逻辑,也提高了设计的整体性能。简而言之,就是将一路信号用D触发器和CLK将其分成两路信号,或者是更多路的信号,再让这些信号来驱动下面的各个模块。

如何判断是系统的问题是由于多扇出而导致的呢。我是这样判断的,因为我的模块是一个一个写,一块一块的调试的,所以在分开调试的时候没有出任何问题,当所有的综合在一起的时候,就出现了有一个模块的信号总是不正常,单独调试该模块的时候又正常,然而这两个模块之间又没有什么交互信号,所以,就把问题定位在这个共用信号的驱动能力上了,最终曾加了D触发器,解决了这个问题。
  另外经高手指点,还有一种方法是将这个频率信号放在CLK的管脚上,因为时钟管脚的驱动能力比一般的IO口要大一些,所以也就能够带动更多的逻辑门。
##门控时钟的问题
  最后添加一点关于门控时钟的问题。在编译的时候,系统会报警告,Found X node(s) in clock paths which may be acting as ripple and/or gated cloxks。这种情况是由于使用了门电路来产生时钟,一般处理这个警告的方式都会说:“如果是这样设计的,就不管这个警告了。”不过看了下面的一段文字也就能够理解为什么会有这样的警告了。如果想设计出更完美的产品,还是要考虑这个问题的。
  门控时钟指的是不用FPGA内部的全局时钟资源BUFG来控制触发器的时钟沿输入端而是采用组合逻辑和其它时序逻辑(如分频器)产生的信号作为触发器的时钟沿输入端。门控时钟容易带来时钟漂移、毛刺等,使得触发器误动作,通常,对于驱动的触发器数量较少的门控时钟,编译器可以自动将分布时钟缓冲器将其布线优化,但是对于驱动触发器较多的门控时钟,将会使布线不稳定,重者造成设计混乱。门控时中较多,也会使得整个设计的最大工作速度下降,降低产品的性能。
  对于门控时钟问题,通常的解决办法是将分频器做成与系统时钟宽度一个周期宽度的脉冲信号,所谓系统时钟就是用全局时钟资源BUFG驱动的高扇出、零漂移、零畸变的时钟资源,在FPGA内部的布线结构是树形结构。
将分频器的输出送入触发器的ce端,当系统时钟到来时,检测ce信号的有效性,当ce信号有效时,将触发器的输出改变,和分频器的作用完全一样,而且这样处理也使得布线更加优化。
  参考:http://blog.tianya.cn/blogger/post_read.asp?BlogID=4224308&PostID=41813272

在模块化设计中

模块的扇出是指模块的直属下层模块的个数,如图7.8所示。图7.8中,平均的扇出是2。一般认为,设计得好的系统平均扇出是3或4。
  这里写图片描述
               图7.8模块的扇出

一个模块的扇出数过大或过小都不理想,过大比过小更严重。一般认为扇出的上限不超过7。扇出过大意味着管理模块过于复杂,需要控制和协调过多的下级。解决的办法是适当增加中间层次。

一个模块的扇入是指有多少个上级模块调用它。扇人越大,表示该模块被更多的上级模块共享。这当然是我们所希望的。但是不能为了获得高扇人而不惜代价,例如把彼此无关的功能凑在一起构成一个模块,虽然扇人数高了,但这样的模块内聚程度必然低。这是我们应避免的。

设计得好的系统,上层模块有较高的扇出,下层模块有较高的扇人。其结构图像清真寺的塔,上面尖,中间宽,下面小。

###1.门电路的扇入扇出

扇入系数,是指门电路允许的输入端数目。
  一般TTL电路的扇入系数 Nr为1~5,最多不超过8。若芯片输入端数多于实际要求的数目,可将芯片多余输入端接高电平(+5V)或接低电平(GND)。
  扇出系数,是指一个门的输出端所驱动同类型门的个数,或称负载能力。
  NO=IOLMAX/IILMAX,这是一个通俗的定义一般用在TTL电路的定义中。其中IOLMAX为最大允许灌电流,IILMAX是一个负载门灌入本级的电流。
  TTL电路的扇出系数Nc为8~10。
  CMOS电路的扇出系数Nc可达20~25。
  当然LVTTL和LVCMOS都可进一步验算获得。
  Nc表征了门电路的负载能力。
####1.TTL電路
TTL的验算是比较好弄的,TTL与TTL之间如下图所示:
这里写图片描述
由于本身晶体管的转换速度有限,因此对于TTL来说,扇入扇出系数无所谓低频和高频而言。
####2.CMOS
扇出系数实质上是根据频率有关的。
这里写图片描述

因此,扇出系数是根据输出波形识别的时序而定的,随着频率的增加,扇出系数越来越小。
  这是因为理论上来说Rdson和Ci都是确定的,根据充放电过程
  注意Rdson的能力计算可参考前面的博文
这里写图片描述
  通过计算时间常数,我们可测算
  1.10%=>90%的时间,并确认高电平的时间。
  2.90%=>10%的时间,并确认低电平的时间。
  如果这两个都符合,则可接受。
  当然MOS管的输出电容和PCB板的寄生电感和电容,这些因素都会影响实际的效果。


http://chatgpt.dhexx.cn/article/imy9D959.shtml

相关文章

关于 FPGA 内部信号扇入扇出

转自https://www.cnblogs.com/dxs959229640/p/3870189.html 关于 FPGA 内部信号扇入扇出 扇入、扇出系数 扇入系数是指门电路允许的输入端数目。一般门电路的扇入系数为1—5,最多不超过8。扇出系数是指一个门的输出端所驱动同类型门的个数,或称负载能力。…

软件工程考试选择题:模块的扇入扇出 深度宽度

ABCD A常作为总体设计工具的是HIPO图 B 顶层扇出大,中间扇出小,扇出指一个模块调用的模块数。 C组合是一种特殊形式的聚合关系 D状态图 扇入扇出 启发规则 一.改进软件结构提高模块独立性 初步结构分解或合并,降低耦合提高内聚。 二.模块规模应该适中 过大分…

静态分析—扇入、扇出、圈复杂度

静态分析是一种检查代码的方法,无需执行程序。它提供了一种机制,可以审查代码结构、控制流和数据流,检测潜在的可移植性和可维护性问题,计算适当的软件质量测度。 其中控制流分析包括:扇入、扇出、圈复杂度。 常见的…

Go语言并发之扇入和扇出

1、Go语言并发之扇入和扇出 编程中经常遇到扇入和扇出两个概念,所谓的扇入是指将多路通道聚合到一条通道中处理,Go 语言最简单的扇入 就是使用 select 聚合多条通道服务;所谓的扇出是指将一条通道发散到多条通道中处理,在Go语言…

DWcc2018免费下载及详细安装教程

DWcc2018下载及安装教程(内附安装包下载链接) 安装包下载: 百度网盘下载链接链接:https://pan.baidu.com/s/1tCkVVobfiUWSIrZuc7OOIg 提取码:0bb5 也可保存下方图片,微信扫码即可下载 安装步骤&#xff1a…

dreamweaver (dw)cc 2017

dreamweaver cc 2017是一款在目前工作中最优越的网页设计软件,被简称称为dw cc 2017。新版本比以往任何时候都变得更加专注、高效和快速,拥有和全新代码编辑器和更直观的用户界面和多种增强功能。比如对css预处理器等新工作流程的支持,可以提…

DW小知识

1.学习网页开发,首先你得知道怎么编写和构造HTML标记,用HTML标记传达你想要给用户展示的内容,比如文字、图片、音频和视频等。用HTML标记内容的目的是为了赋予网页语义,换句话讲就是要给你的网页赋予某些用户代理能够理解的含义。…

dwcc怎么设置html默认,Dreamweaver CC 2019如何设置界面首选项?

设置界面首选项 Dreamweaver为用户提供了对基本程序界面的广泛控制。您可以按照自己的喜好设置、安排和 定制各种面板。开始本书课程之前,您应该首先访问的位置之一是Dreamweaver Preferences (首选项)对话框。 利其他Adobe应用一样,首选项对话框提供描述…

html锚点链接dw怎么做,最新的DW中的锚点在哪

CSS布局HTML小编今天和大家分享dreamweaver cc2018的锚点跟跳转菜单在哪 DW中怎样让页面按钮链接到另一个页面的锚点 Dreamweaver里怎么制作锚点链接,跳到当前网页顶端?Dreamweaver里怎么制作锚点链接,效果:跳到当前网页的顶端&am…

创建 DW 项目

开发工具与关键技术: DW 作者:陈海涛 撰写时间:2021/4/27 1.首先创建一个文件夹,再在里面创建三个文件夹(注意:不能使用 中文来命名) 2.打开 DW,然后点击 CTALN 或者点击左上…

网页设计软件dw cc 2019 mac激活方法

Dreamweaver CC 2019 for mac是知名的网站和网页设计软件,简称dw,是设计师和程序员必备的网页代码编辑器,新版本的dw cc 2019 mac破解版提供了JavaScript重构功能、全新的EcmaScript 6支持,而且dw cc2019破解版与Chromium嵌入式框架的最新版本进行集成,这样用户可以轻松构…

DW CC2019软件安装破解教程(附安装包下载)

DW CC2019 64bit下载地址: 链接: https://pan.baidu.com/s/15dYmXLPvqDt2p-IepYrUdQ 密码:5rwp 安装中有任何问题添加QQ群:606940296(备注软件出现问题) 软件介绍 Adobe Dreamweaver CC 2019是Adobe公司…

网页设计软件dw cc2019直装版

Dreamweaver CC 2019 for mac是Web设计人员和开发人员设计必备的软件,dw 2019 mac破解版支持HTML、CSS、JavaScript等,功能十分强大,可以轻松帮助用户设计精美的网站网页,这次Dreamweaver cc 2019 mac破解版主要针对安全性增强功能、JavaScript重构、ECMAScript 6支持、Git…

DWCC2018HTML网页字体添加、更改

一般情况下,DWCC2018里是没有像宋体、楷体、微软雅黑之类的字体,我们可以将系统自带的字体添加到DWCC中 1、添加软件内没有的字体 **①打开DWCC2018→工具** ![在这里插入图片描述](https://img-blog.csdn.net/20181007163628785?watermark/2/text/aHR…

DWCC2018HTML基本网页设计技巧方法详解

目录: 一、文本格式化标记 ----------------------1、各类标签及描述 二、HTNL链接 ----------------------1、HTML链接语法 ----------------------2、在当前页面跳到指定位置 ----------------------3、图片链接 三、插入视频、图片、列表项、邮件链接等 --------…

dwcc2019写php,mac网页设计软件:DreamweaverCC2019(dwcc2019直装版)

dw cc 2019 Mac新增功能 dw cc 2019 Mac推出了一些令 Web 设计人员和开发人员激动无比的新增功能。 1、JavaScript 重构 作为 Web 开发人员,您现在可以使用 JavaScript 重构,利用范围感知功能智能地重命名函数和变量。只需一次单击,您就可以将…

DWCC2018基本网页设计注意要点、使用技巧

目录: 一、注意要点 -------------1、“实时视图”“设计”的选择 -------------2、调出属性框 -------------3、在浏览器中实时浏览自己的网页 二、部分使用技巧 -------------1、文本格式化标记 -------------2、网页整体属性编辑 -------------3、插入视频、列表…

解决Windows10/11系统DWcc2021安装失败打不开问题 Adobe Dreamweaver CC2021详细安装教程

最初为美国MACROMEDIA公司开发 ,2005年被Adobe公司收购。dw是集网页制作和管理网站于一身的所见即所得网页代码编辑器。利用对 HTML、CSS、JavaScript等内容的支持,设计师和程序员可以在几乎任何地方快速制作和进行网站建设快速,灵活的编码。…

DreamWeaver CC网页设计与制作

目录 第一章 初识DreamWeaver CC 1.1 DreamWeaver CC的工作界面 1.1.1 不同风格的界面 1.1.2 伸缩自如的功能面板 1.1.3 多文档的编辑界面 1.1.4 新颖的“插入”面板 1.1.5 更完整的CSS功能 1.2 创建网站框架 1.2.1 站点管理器 1.2.2创建文件夹 1.2.3 定义新站点 …

js删除数组中指定对象

js删除数组中指定对象 需求说明从数组中移除指定对象函数封装 removeArray从数组中获取指定对象索引函数封装 getArrayIndex 在Vue中调用函数使用 需求说明 点击删除按钮删除指定行数据,即删除数组中指定对象。 _arr表示一个Array数组,里面包括了很多的对…