热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

深入学习Xilinx7系列FPGA设计(第二部分)

CLB(ConfigurableLogicBlock)作为Xilinx7系列FPGA的核心构建模块,其重要性不言而喻。它不仅是实现逻辑功能的基本单元,还承担着数据处理与信号传输的关键任务。深入理解CLB的工作原理及其配置方式,对于掌握FPGA设计至关重要。本文将详细探讨CLB的内部结构、工作模式及其在实际应用中的优化策略,帮助读者构建更为高效、可靠的FPGA系统。




1. 最基本的CLB
CLB是FPGA最最基本的单元,不能说是类似于质子和中子的概念,但也至少是原子和分子的概念了。如果是最根本的单元都无法能够很好的理解,那么其实很多FPGA的原理还是停留在一个写写代码,调调时序的小工程师的级别。我想,这应该不是我们所有年轻人的一个追求。

1.1 CLB的初探
首先CLB的最基本资源分为两种,一种是实现组合逻辑资源功能的,一般称为LUT。XILINX的LUT是6输入查找表。一种是Flip-flop,也就是经常听课大家听说的FF,我就觉得这个FF就是寄存器。

我上面的那个图很经典。大家可以看到,一个CLB就是分为两个Slice。Slice通过Matrix Switch(我很想给他起个中文名字,但是有时候我觉得这个中文名字怎么都不太好表达这个意思,就比方,“忽悠”这个中国词语,就很难找到英文和他对应)和其他的Slice链接到一起。
同时又有进位链通过垂直方向和它上面的Slice连接到了一起。如果这个进位链能够很好的使用,能够节省不少的资源。这个地方就记着有这么个概念就行。

又是一个很经典的图。既然我们知道了CLB的内部的一些东西,那么CLB又是怎么相连的呢?这个问题通过我们的经典图形,很清晰的表现出来。CLB是成对的对称的连接在了一起。这样布局的最大好处是什么呢?

首先是增加了芯片的资源数量,同时通过通过共享时钟走线节省了很多资源。这个一个增加一个减少都是帮助大家能够用FPGA的时候能够获得最大的资源享受。也算是花小钱办大事。(这个涉及到了硅片的概念,就不展开去描述了。和大家的设计需求无关。)

另外这种分布的好处和大家相关的好处,大家觉出来是什么了么?这个最大的好处是可以让大家共享一些资源,增加大家布局的时候的资源,这样更容易实现自己的设计。

1.2 CLB与其他资源的互联

CLB不仅仅是和其他资源相连,那么又如何和其他资源相连呢?一样,和CLB之间相连一样,通过Matrix Switch链接到一起。所有资源布线资源都是垂直,水平或者对角线的方向连在了一起。但是各个方向有不同的跨度。
水平方向上的跨度支持:1,2,4,12。
垂直方向上的跨度支持:1,2,16,18。
对角线方向上的跨度支持:1,2,16。

相比Virtex-6来说,垂直方向和对角线方向上的跨度已经做了很大的改进,跨度由原理Virtex-6的4变成了16,Long型有原来的12变成了18。长度的变化也有助于显着提高布通率。不过,布线资源的使用是由工具基于大家的时序约束自我进行的,也就是大家不用记住这些跨度的数量,因为到时候工具会根据你自己需要会自动进行相关布局布线的。

很多东西并不一定需要大家记住,只是大家再选择FPGA的时候做一个参考。因为我们肯定希望花最少的精力设计出一个最牛的设计。然后看着自己的设计,喝杯茶,笑到哭。

原文链接



推荐阅读
  • 深入解析:JavaScript中的表达式与语句有何不同
    深入解析:JavaScript中的表达式与语句有何不同 ... [详细]
  • 优化后的标题:在WHMCS域名主机管理软件中集成云免签支付与订单查询接口的开发方案
    本文探讨了在WHMCS域名主机管理软件中集成云免签支付和订单查询接口的开发方案。首先,我们详细研究了接口文档,发现该接口在大多数情况下并非必需,主要用于辅助查询订单状态。通过这一集成,可以提升用户的支付体验和订单管理效率。 ... [详细]
  • 在计算机系统中,核心组件与架构是其稳定运行的基石。本文深入解析了R1路由器如何通过子网掩码与目的IP地址(如145.13.3.10)进行逐位逻辑“与”操作,以确定目标子网的网络地址。如果计算结果与路由表中的某一行的目的网络地址匹配,数据包将直接或间接地被传输至指定目的地。此外,文章还探讨了这一过程在现代网络通信中的重要性及其对数据传输效率的影响。 ... [详细]
  • 在Linux环境下编译安装Heartbeat时,常遇到依赖库缺失的问题。为确保顺利安装,建议预先通过yum安装必要的开发库,如glib2-devel、libtool-ltdl-devel、net-snmp-devel、bzip2-devel和ncurses-devel等。这些库是编译过程中不可或缺的组件,能够有效避免编译错误,确保Heartbeat的稳定运行。 ... [详细]
  • Python网络爬虫入门:利用urllib库进行数据抓取
    Python网络爬虫入门:利用urllib库进行数据抓取在数据科学和Web开发领域,Python凭借其简洁高效的特性成为首选语言。本文主要介绍了如何在Windows环境下使用Python的urllib库进行基本的网络数据抓取。考虑到命令行操作的不便,作者选择了Jupyter Notebook作为开发环境,不仅简化了配置过程,还提供了直观的数据处理和可视化功能。通过实例演示,读者可以轻松掌握urllib的基本用法,为深入学习网络爬虫技术打下坚实基础。 ... [详细]
  • 本文详细介绍了如何在Linux系统中搭建51单片机的开发与编程环境,重点讲解了使用Makefile进行项目管理的方法。首先,文章指导读者安装SDCC(Small Device C Compiler),这是一个专为小型设备设计的C语言编译器,适合用于51单片机的开发。随后,通过具体的实例演示了如何配置Makefile文件,以实现代码的自动化编译与链接过程,从而提高开发效率。此外,还提供了常见问题的解决方案及优化建议,帮助开发者快速上手并解决实际开发中可能遇到的技术难题。 ... [详细]
  • Python数据分析入门指南:全面了解Python在数据科学中的应用 ... [详细]
  • 在 Android 开发中,通过合理利用系统通知服务,可以显著提升应用的用户交互体验。针对 Android 8.0 及以上版本,开发者需首先创建并注册通知渠道。本文将详细介绍如何在应用中实现这一功能,包括初始化通知管理器、创建通知渠道以及发送通知的具体步骤,帮助开发者更好地理解和应用这些技术细节。 ... [详细]
  • 【前端开发】深入探讨 RequireJS 与性能优化策略
    随着前端技术的迅速发展,RequireJS虽然不再像以往那样吸引关注,但其在模块化加载方面的优势仍然值得深入探讨。本文将详细介绍RequireJS的基本概念及其作为模块加载工具的核心功能,并重点分析其性能优化策略,帮助开发者更好地理解和应用这一工具,提升前端项目的加载速度和整体性能。 ... [详细]
  • 负载均衡基础概念与技术解析
    随着互联网应用的不断扩展,用户流量激增,业务复杂度显著提升,单一服务器已难以应对日益增长的负载需求。负载均衡技术应运而生,通过将请求合理分配到多个服务器,有效提高系统的可用性和响应速度。本文将深入探讨负载均衡的基本概念和技术原理,分析其在现代互联网架构中的重要性及应用场景。 ... [详细]
  • 本文详细解析了神州数码DCRS5980交换机的基础配置流程和技术要点。首先,通过进入配置模式(`enable`),设置主机名(`hostname 5980`),并创建VLAN,逐步介绍了设备的初始设置步骤。此外,还涵盖了端口配置、IP地址分配及安全设置等关键环节,为用户提供了全面的配置指导。 ... [详细]
  • JavaScript最初并非设计为纯粹的面向对象编程(OOP)语言,因为直到ES5标准中仍未引入类的概念。然而,随着ES6的发布,JavaScript正式引入了类的语法,使得开发者能够更加直观地实现继承机制。本文将深入探讨JavaScript中多样的继承实现方法,包括原型链、寄生组合式继承等技术,并分析它们的优缺点及适用场景。 ... [详细]
  • 当前,众多初创企业对全栈工程师的需求日益增长,但市场中却存在大量所谓的“伪全栈工程师”,尤其是那些仅掌握了Node.js技能的前端开发人员。本文旨在深入探讨全栈工程师在现代技术生态中的真实角色与价值,澄清对这一角色的误解,并强调真正的全栈工程师应具备全面的技术栈和综合解决问题的能力。 ... [详细]
  • ESP32 IRAM 内存优化策略与实践总结
    本文总结了针对ESP32 IRAM内存溢出问题的优化策略与实践经验。通过详细分析ESP32的内存结构和IRAM分配机制,提出了一系列有效的解决方案,包括代码优化、内存管理技巧和编译器配置调整,旨在帮助开发者有效解决`.espressif/tools/xtensa-esp32-elf/esp-2`等类似错误,提升系统性能和稳定性。 ... [详细]
  • 深入解析Tomcat:开发者的实用指南
    深入解析Tomcat:开发者的实用指南 ... [详细]
author-avatar
akun
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有