热门标签 | 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的时候做一个参考。因为我们肯定希望花最少的精力设计出一个最牛的设计。然后看着自己的设计,喝杯茶,笑到哭。

原文链接



推荐阅读
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • 本文介绍如何在 Android 中通过代码模拟用户的点击和滑动操作,包括参数说明、事件生成及处理逻辑。详细解析了视图(View)对象、坐标偏移量以及不同类型的滑动方式。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 三星W799在2011年的表现堪称经典,以其独特的双屏设计和强大的功能引领了双模手机的潮流。本文详细介绍其配置、功能及锁屏设置。 ... [详细]
  • 计算机网络复习:第五章 网络层控制平面
    本文探讨了网络层的控制平面,包括转发和路由选择的基本原理。转发在数据平面上实现,通过配置路由器中的转发表完成;而路由选择则在控制平面上进行,涉及路由器中路由表的配置与更新。此外,文章还介绍了ICMP协议、两种控制平面的实现方法、路由选择算法及其分类等内容。 ... [详细]
  • 本文详细介绍了如何解决Uploadify插件在Internet Explorer(IE)9和10版本中遇到的点击失效及JQuery运行时错误问题。通过修改相关JavaScript代码,确保上传功能在不同浏览器环境中的一致性和稳定性。 ... [详细]
  • 本文介绍了如何利用JavaScript或jQuery来判断网页中的文本框是否处于焦点状态,以及如何检测鼠标是否悬停在指定的HTML元素上。 ... [详细]
  • This guide provides a comprehensive step-by-step approach to successfully installing the MongoDB PHP driver on XAMPP for macOS, ensuring a smooth and efficient setup process. ... [详细]
  • 导航栏样式练习:项目实例解析
    本文详细介绍了如何创建一个具有动态效果的导航栏,包括HTML、CSS和JavaScript代码的实现,并附有详细的说明和效果图。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文详细介绍了如何使用Maven高效管理多模块项目,涵盖项目结构设计、依赖管理和构建优化等方面。通过具体的实例和配置说明,帮助开发者更好地理解和应用Maven在复杂项目中的优势。 ... [详细]
  • 本文基于刘洪波老师的《英文词根词缀精讲》,深入探讨了多个重要词根词缀的起源及其相关词汇,帮助读者更好地理解和记忆英语单词。 ... [详细]
  • 数据管理权威指南:《DAMA-DMBOK2 数据管理知识体系》
    本书提供了全面的数据管理职能、术语和最佳实践方法的标准行业解释,构建了数据管理的总体框架,为数据管理的发展奠定了坚实的理论基础。适合各类数据管理专业人士和相关领域的从业人员。 ... [详细]
  • 本文介绍了如何在具备多个IP地址的FTP服务器环境中,通过动态地址端口复用和地址转换技术优化网络配置。重点讨论了2Mb/s DDN专线连接、Cisco 2611路由器及内部网络地址规划。 ... [详细]
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社区 版权所有