关于 FPGA 内部信号扇入扇出

点击蓝字关注我们

关注、星标公众号,精彩内容每日送达
来源:网络素材

扇入、扇出系数

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

灌电流、拉电流

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

上、下拉电阻

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

负载效应

当输出负载大于它的扇出能力的时候,就会有如下的效应:

1、输出低态时,输出电压VOL可能高于VOLmax。

2、输出高态时,输出电压VOH可能高于VOLmin。

3、输出的传播延迟可能大于规格说明的延迟值。

4、输出的上升和下降时间可能大于规格说明的延迟值。

5、器件工作温度可能升高,从而降低其可靠性,最终引起器件失效。

1.原意:
The number of circuits that can be fed input signals from an output device.
扇出,输出可从输出设备输入信号的电路的数量 。

扇出(fan-out)是定义单个逻辑门能够驱动的数字信号输入最大量的术语。大多数TTL逻辑门能够为10个其他数字门或驱动器提供信号。因而,一个典型的TTL逻辑门有10个扇出信号。

在一些数字系统中,必须有一个单一的TTL逻辑门来驱动10个以上的其他门或驱动器。这种情况下,被称为缓冲器的驱动器可以用在TTL逻辑门与它必须驱动的多重驱动器之间。这种类型的缓冲器有25至30个扇出信号。逻辑反向器(也被称为非门)在大多数数字电路中能够辅助这一功能。

2.在模块化设计中

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

3d3fa83f05199e21928bd3147e5282fc.jpeg图7.8模块的扇出

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

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

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

多扇出问题,通常是指用一个节点驱动多个下级逻辑器件,此问题会严重影响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信号有效时,将触发器的输出改变,和分频器的作用完全一样,而且这样处理也使得布线更加优化。

b6de34240f3c064e2b074290a5ec6cbc.jpeg

想要了解FPGA吗?这里有实例分享,ZYNQ设计,关注我们的公众号,探索

<think>嗯,用户需要推荐常用的信号芯片。这个问题涉及到电子设计中的信号完整性管理,特别是解决高信号传输的问题。 用户提供的引用资料包含了BGA封装设计、FPGA中BUFG资源使用、复位信号优化等内容。从这些信息看,用户应该是在做高速数字电路设计,可能遇到了信号能力不足的问题。 让我梳理一下信号芯片的关键特性:驱动能力要强,延迟要低,抖动要小,功耗也不能太高。根据这些标准,常用的芯片类型包括: 时钟缓冲器是最常见的芯片,比如TI的CDCLVC1108系列,这类芯片支持多路低抖动输,特别适合时钟信号分配。还有缓冲器如IDT的8SLVD1208,能提供8路差分输。 对于差分信号,专门的LVDS芯片如ADN4668很合适,它支持多路高速差分信号复制。另外像SY89833这类芯片支持1:10的能力,特别适合大系统。 在选型时需要考虑几个关键参数:输通道数量、最大工作频率、抖动性能、输类型(单端/差分)以及电源电压范围。比如在高速SerDes应用中,需要选择支持5GHz以上的芯片;而在普通控制信号场景,100MHz可能就足够了。 用户可能还需要注意封装兼容性,特别是如果使用BGA封装,要参考引用[1]提到的过孔设计技巧。另外引用[2][3]提到的BUFG资源限制问题,说明在FPGA设计中可能需要外部芯片作为补充。 最后要提醒用户,芯片虽然能解决驱动能力问题,但也会增加信号延迟和功耗,在时序敏感的设计中需要谨慎评估。如果只是普通控制信号,用多级门电路缓冲可能更经济。</think>以下是针对信号需求的常用芯片推荐及选型要点,结合高速电路设计中的关键考量: ### 一、时钟芯片(高精度低抖动) 1. **TI CDCLVC系列** - **CDCLVC1108**:1:8 低抖动时钟缓冲器,支持 200MHz 频率,抖动 < 500fs - **CDCLVP1204**:1:4 差分芯片,支持 LVPECL/LVDS/CML 电平,适用于高速 SerDes 参考时钟[^1][^5] 2. **Renesas 8SLVD1208** - 1:8 LVDS 缓冲器,支持 1.5GHz 速率,抖动 < 300fs - 典型应用:FPGA 多通道同步时钟分配[^2][^5] --- ### 二、通用缓冲器 1. **ON Semiconductor NB7VQ14M** - 1:2 高速 CMOS 缓冲器,支持 5GHz 操作 - 优势:可级联扩展数量,延时 < 150ps 2. **TI SN74LVC1G34** - 单通道缓冲器,支持 100MHz/32mA 驱动 - 低成本方案,适用于控制信号(如复位信号)[^3][^4] --- ### 三、差分信号专用 1. **Analog Devices ADN4668** - 1:4 LVDS 芯片,3Gbps 速率 - 特性:50ps 通道间偏移,匹配 BGA 封装布线需求[^1][^5] 2. **Microchip SY89833** - 1:10 LVPECL 器,支持 3.5GHz - 解决背板通信中的长距离驱动问题 --- ### 四、选型关键参数 | **参数** | **建议值** | **影响** | |----------------|--------------------------|------------------------------| | 输通道数 | 4/8/10 | 决定能力上限 | | 最大频率 | > 目标频率 × 1.5 | 保证时序余量 | | 抖动性能 | < 1ps (RMS) | 高速系统时钟关键指标 | | 输类型 | LVDS/LVPECL/CMOS 可选 | 匹配接收端电平标准 | | 供电电压 | 1.8V/2.5V/3.3V | 兼容系统电源设计 | > **布线建议**:采用引用[1]所述的 **BGA 外扩策略**,预留中央十字通道。差分对需严格等长(<5mil 偏差),过孔数量控制在每信号 ≤2个,避免引用[5]提到的过孔串扰问题[^1][^5]。 --- ### 五、替代方案 当芯片资源受限时(如引用[2][^4]所述 BUFG 不足): 1. **FPGA 内部优化** - 寄存器复制:通过 `(* max_fanout = 16 *)` 等综合属性约束 - 层次化缓冲:添加多级 LUT 缓冲树 2. **分立器件方案** ```verilog // 示例:复位信号优化 (* use_bufg = 1 *) wire global_reset; // 优先占用 BUFG wire [7:0] local_reset; genvar i; generate for(i=0; i<8; i=i+1) begin FDRE #(.INIT(1'b1)) reset_reg ( .Q(local_reset[i]), .C(global_reset), // 降低单个网络负载 .CE(1'b1), .R(1'b0) ); end endgenerate ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值