2. FPGA基础了解--全局网络

前言

  • 引入扇出的概念
  • 介绍FPGA中的全局网络
  • 为后续时序优化埋下伏笔

扇出

  • 在FPGA设计中扇出是一个重要的概念,所谓的扇出就是一个控制信号所能控制的数据信号的总个数,比如ctrl信号的扇出就是16
verilog 复制代码
reg 		ctrl = 0;
reg [15:0]  out = 0;
always @(posedge clk ) beign : test
	if (ctl == 1'b1) beign
		out <= 16`d0;
	end 
	else begin
		out <= 16`d1;
	end

----------------------------或者------------------------------

wire		ctrl;
wire [15:0] out;
assign out = ctrl ? 16`d0 : 16`d1;

全局网络

  • 为什么说全局网络
    • 因为在FPGA或者IC设计中,信号的到达不是我们想的都能瞬时且同一时刻到达,也就说同一个信号到达不同的寄存器单元的时钟延迟可能不一样,这就导致存在始终偏移,如果不做任何优化措施,会经常遇到时序问题,只不过这个事情EDA帮我们做了很多。
  • 全局网络在FPGA中具有比较重要的地位,一般来讲当一个信号的扇出达到一定程度的时候,可以称这个信号为全局网络,在FPGA设计中,比较明显的几个全局网络分别是
    • 时钟信号
    • 复位信号
    • 使能信号
    • 清零信号
  • 在同步电路设计中,时钟信号覆盖整个FPGA设计
  • 复位信号的扇出一般情况下不如时钟信号扇出多,主要原因:
    • 复位信号一般在控制通路中使用
    • 在数据通路中由于数据的流动性一般可以省去复位信号(一些对初始值有要求的信号可能需要复位)
    • 如果在一个设计中不分控制通路还是数据通路,给每一个时序逻辑都加以复位,可能会在给整个设计在布线上制造麻烦,导致时序违例(如果你没遇到过这种情况,第一个原因是eda帮我做了优化,第二个就是你的工程太小了)
  • 使能信号
    • 至于为什么说使能信号也是全局网络的,是因为它存在一定的可能性,比如像复位信号那样使用不也就是全局网络了吗...
  • 清零信号
    • 异步清零类似复位
    • 同步清零类似使能

时序优化

关于时序优化中我会单独做几次笔记与大家交流时序优化的方法和经验,

  • 就像上面我们说的那样信号的到达不是我们想的都能瞬时且同一时刻到达,也就说同一个信号到达不同的寄存器单元的时钟延迟可能不一样,这就导致存在始终偏移 , 扇出大的信号的很难做到尽可能同时到达目的单元,这也就导致数据建立时间不足,导致时序违例,如图

    -

  • 对于因为扇出过大导致的时序违例,可以通过逻辑复制的方式进行优化

    • 把信号复制多份控制不同的寄存器
相关推荐
奋斗的阿狸_198610 小时前
ESP32-S3 + ES7210 四通道麦克风录音上传方案
c语言·开发语言·fpga开发
hahaha601610 小时前
FPGA+ARM实现AWB的全流程
人工智能·嵌入式硬件·算法·计算机视觉·fpga开发
unicrom_深圳市由你创科技14 小时前
板上调试,先抓哪些信号?排查顺序是什么?
fpga开发
北城笑笑16 小时前
FPGA 55 ,FPGA 行业 2026 发展分析与报告
fpga开发·fpga
Jason_zhao_MR17 小时前
新一代电能数据采集终端方案
linux·人工智能·嵌入式硬件·fpga开发·嵌入式
ERROR:992 天前
AMD Ross没有介入Vivado的私生活
fpga开发
Riwuarua2 天前
从近似 0 基础开始 FPGA 开发——Part.18:FPGA 复位系统与可靠启动设计
fpga开发
智感子3 天前
测控链路:从传感器到上位机
人工智能·嵌入式硬件·fpga开发
szxinmai主板定制专家4 天前
基于Zynq的高精度多通道数据采集卡完整解决方案(工业振动/高速采集/边缘传输)
fpga开发·zynq·数据采集卡
szxinmai主板定制专家4 天前
基于TI AM62x+FPGA的24bit高精度数据采集卡设计(振动/风电/发动机监测)
人工智能·fpga开发·arm+fpga·rk3588+fpga