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

时序优化

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

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

    -

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

    • 把信号复制多份控制不同的寄存器
相关推荐
FPGA小迷弟1 小时前
FPGA 应用技术能力的完整闭环(1-4)
fpga开发·dsp开发·fpga·sdr·无线电
Eloudy3 小时前
FPGA 开发与 IC 数字前端设计
fpga开发
tju新生代魔迷5 小时前
Verilog HDL 学习笔记(十八)| 附录C:关键字、系统任务和编译指令
fpga开发
free-elcmacom8 小时前
FPGA学习笔记<1>FPGA的开发流程
fpga开发·硬件工程·hdl
明德扬9 小时前
AD9653单通道波形怎么看?幅度、频率与基础测量入门
学习·fpga开发·fpga
ERROR:9910 小时前
GPT Images 2.5将手稿转时序图效果不佳
fpga开发
尤老师FPGA10 小时前
声学相机介绍
fpga开发
科恒盛远17 小时前
ZU902 FMC194 可编程宽带信号源实测
fpga开发·硬件工程·信号处理
大盛供应链·卢生20 小时前
哪些国产芯片可以替代进口芯片,哪些替代不了
fpga开发·容器
ALINX技术博客1 天前
跨越 1819 公里,ALINX 携 AI 异构平台、电子后视镜及 HIL 仿真方案亮相深圳国际电子展
ai·fpga开发·汽车