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帮我做了优化,第二个就是你的工程太小了)
  • 使能信号
    • 至于为什么说使能信号也是全局网络的,是因为它存在一定的可能性,比如像复位信号那样使用不也就是全局网络了吗...
  • 清零信号
    • 异步清零类似复位
    • 同步清零类似使能

时序优化

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

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

    -

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

    • 把信号复制多份控制不同的寄存器
相关推荐
szxinmai主板定制专家17 小时前
Zynq MPSoC半导体高精度运动控制方案|FPGA硬件插补实现亚微米级伺服实时控制
人工智能·嵌入式硬件·fpga开发·zynq·运动控制·ethercat
星夜离尘562 天前
ILA 在线调试:Vivado 抓取片内信号与定位下板问题(附完整实操)
fpga开发
jz_ddk2 天前
[学习] 深入理解 USB 通信与 FPGA 实现:从协议到逻辑设计
学习·fpga开发·xilinx·usb2.0
星夜离尘562 天前
PWM 信号生成与呼吸灯:占空比控制、按键调光与舵机扩展(附完整 Verilog 实操)
fpga开发
zlinear数据采集卡2 天前
ZLinear DABM-D223 通信协议与软件开发全解析:从 USB CDC 到 DDS 波形输出
arm开发·嵌入式硬件·fpga开发·开源
LCMICRO-133108477463 天前
国产长芯微LD3092完全pin-pin替代LT3092,是一款可编程两端电流源
arm开发·单片机·嵌入式硬件·fpga开发·硬件工程·恒流源·lt3092
nuoxin1143 天前
BL-M8812CU3 无线 WiFi 模块-富利威
人工智能·嵌入式硬件·fpga开发·硬件工程·dsp开发
xiaojiaohuazi3 天前
基于Zynq UltraScale+ MPSoC的PL DDR4直写多NVMe条带阵列(RAID 0)与exFAT高速采集存储系统
fpga开发
ALINX技术博客3 天前
【黑金云课堂】FPGA技术教程Vitis开发:AXI总线
fpga开发·vitis