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

server/2024/12/27 12:31:58/

在这里插入图片描述

前言

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

扇出

  • 在FPGA设计中扇出是一个重要的概念,所谓的扇出就是一个控制信号所能控制的数据信号的总个数,比如ctrl信号的扇出就是16
reg 		ctrl = 0;
reg [15:0]  out = 0;
always @(posedge clk ) beign : testif (ctl == 1'b1) beignout <= 16`d0;end else beginout <= 16`d1;end----------------------------或者------------------------------wire		ctrl;
wire [15:0] out;
assign out = ctrl ? 16`d0 : 16`d1;

全局网络

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

时序优化

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

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

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

    • 把信号复制多份控制不同的寄存器
    • 在这里插入图片描述

http://www.ppmy.cn/server/153621.html

相关文章

低压降稳压器(LDO)典型特性压降

本文章是笔者整理的备忘笔记。希望在帮助自己温习避免遗忘的同时&#xff0c;也能帮助其他需要参考的朋友。如有谬误&#xff0c;欢迎大家进行指正。 一、什么是压降 压降电压 VDO 是指为实现正常稳压&#xff0c;输入电压 VIN 必须高出所需输出电压 VOUT(nom) 的最小压差。请…

THREE.js 入门(六) 纹理、uv坐标

一、uv坐标 相当于x、y轴&#xff0c;通过自定义uv坐标可以截取所需的纹理范围 <template><div id"container"></div> </template><script setup> import * as THREE from "three"; import { onMounted } from "vue&…

Coroutine 基础二 —— 结构化并发(一)

1、“一个协程”到底指什么 为了讲结构化并发&#xff0c;需要先讲父子协程&#xff1b;讲父子协程&#xff0c;就需要先讲什么是“一个协程”。 课程用线程作为对比来引入协程概念。使用线程时&#xff0c;通常会认为 Thread 对象就是线程&#xff0c;除了 Thread 这个单词本…

单片机长耗时前后台任务优化

代码&#xff1a; void Task_10ms(void) {... }//改 void Task_2ms(void) {static uint8_t s_state 0switch(s_state){case 0:....s_state 1;break;case 1:....s_state 2;break;case 3:....s_state 1;break;default: //此段可以去除s_state 0;break; } } 参考链接 MCU长…

从论文到实践:Stable Diffusion模型一键生成高质量AI绘画

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f916;编程探索专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年12月24日10点02分 神秘男子影, 秘而不宣藏。 泣意深不见, 男子自持重, 子夜独自沉。 论文源地址有视频&#xff1a; 链接h…

linux下搭建lamp环境(dvwa)

lamp简介 LAMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写&#xff1a; Linux&#xff0c;操作系统 Apache&#xff0c;网页服务器 MariaDB或MySQL&#xff0c;数据库管理系统或数据库服务器 PHP、Perl或Python&#xff0c;脚本语言 # ubuntu安装…

高速图像处理卡设计原理图:基于3U VPX XCZU15EG+TMS320C6678的信号处理板

基于3U VPX XCZU15EGTMS320C6678的信号处理板 一、板卡概述 本板卡系我司自主研发的基于3U VPX风冷、导冷架构的信号处理板&#xff0c;适用于高速图像处理等。芯片采用工业级设计。 板卡采用标准3U VPX架构&#xff0c;板上集成一片Xilinx公司ZynqUltraScale系列F…

Spring AOP是什么

目录 谈谈自己对于 AOP 的了解 Spring AOP 和 AspectJ AOP 有什么区别? AOP 常见的通知类型有哪些? 多个切面的执行顺序如何控制? 谈谈自己对于 AOP 的了解 AOP(Aspect-Oriented Programming:面向切面编程)能够将那些与业务无关&#xff0c;却为业务模块所共同调用的逻辑…