首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

读书笔记《FPGA之道》第三章

  • 24-03-17 23:43
  • 2586
  • 13650
blog.csdn.net

前言

        接触FPGA有一段时间了,期间也做了一些实践实验,虽然最终也是能做出来,可是接触的越多越觉得自己对于这个方向的基础知识的了解还不够系统,很多地方似懂非懂,看网上的教程也都是为了当前实验服务,这让我心里很是没底。对比我的导师们,我认为那个年代的人学东西都是很系统很详细的,简单来说就是功夫足够扎实。如今因为各种博客、B站视频教程等等,都为我们的学习带来了便利,但与此同时,我们很难再沉下心来认认真真读一本书了,与舍友的沟通也得出了不能光做项目,要多抓底层理论知识的结果。所以,我认为既然选择入行FPGA就应该扎扎实实的去啃基础知识。无意间读到了《FPGA之道》这本书,虽然超级厚,但是作者的笔风幽默,结构清晰,很适合我这种刚入行的读者,在此也向大家推荐此书。

        书中前两章讲的基本上就是FPGA的前世今生,和一些数电的基础知识,从第三章开始讲FPGA的结构,所以我的读书笔记也从第三章开始,当然我只是记录一些我认为比较重要的知识点,以便我自己日后回顾,并不能作为书本的代替。

3.1.7        FPGA的原理架构

        FPGA基本架构由IOB、CLB和各种连线资源组成。

        FPGA的基本逻辑单元是CLB模块(名称不一定唯一(ALM))重点是CLB是什么?

        CLB(可编程逻辑功能块)一般包含若干查找表、寄存器、多路选择器,因此FPGA的逻辑表达不是基于SOP表达式而是基于LUT的,这是FPGA和其他可编程器件最大的区别。

        CLB之间会有CB(连线盒:将CLB的输入输出接到连线资源中)和SB(开关盒:对水平和竖直连线资源进行切换)来连接,其中,开关盒连接的每一条线都是一个传输管,而这些传输管的导通和关闭都是由编程信息来控制的,又因为编程信息往往在SRAM内,所以FPGA一般就是基于SRAM的,掉电会丢失。下面我们详细看看CLB的构成。

3.3        FPGA内部资源介绍

3.3.1        CLB包含的基本元素

        LUT(查找表)

        LUT可以有多个输入引脚,但只能有一个输出引脚,LUT的每个存储单位都可以对应逻辑表达式的一个最小项,所以它可以描述任何组合逻辑,有时也可以模仿寄存器行为,但是需要用反馈结构,这在组合逻辑中很危险。

加法器

        二进制加法中最重要的是异或操作,虽然LUT可以模拟此功能,但是数据位数一但较大,级联会消耗掉太多资源,也更慢,所以Xilinx采用了专门的异或门,altera采用了专门的全加器。不过LUT可以配合异或门实现超前进位加法器来提升性能。

寄存器

        FPGA里全是寄存器,其输出一般会连到附近一个寄存器输入MUX中,通过配置MUX,可以将多个寄存器串联起来实现移位寄存器。

MUX(多路选择器)

        两种用法所以分成两类:1、配置MUX,它的选通是在配置FPGA的时候确定,所以它决定了逻辑资源块的功能,2、逻辑MUX,其选通是由此时的内部逻辑决定。简单说,通过用MUX我们可以让逻辑资源块实现各种功能,比如只使用寄存器,只使用组合逻辑,或者都使用。

3.3.2        时钟网络资源

有全局、区域、IP时钟网络资源(一般是一些高速通信接口)

3.3.3        时钟处理单元

PLL(模拟电路原理)和DCM(全数字)

3.3.4        BKOCK RAM

        如果有数据要缓存,FPGA里的寄存器资源完全可以,但是太浪费,而且如果数据量不大,再外面搞一个独立的存储芯片又太亏,所以厂商在FPGA芯片中引入了硬件的存储核BLOCK RAM,其应用范围非常广,可以把其配置成同步、异步、单端口、双端口、的RAM\FIFO\ROM,同时还能处理普通LUT难以处理的大容量表格。

3.3.5        DSP

        FPGA对复杂的运算不擅长,如乘法,如果硬用消耗资源太大而且速度慢,虽然可以用流水线的方法,但是还是用面积换速度,而DSP的核心就是高性能的乘法器,这样FPGA就可以在信号处理方面大展拳脚了。

        除此之外还有布线资源、接口资源等等,不过多阐述了。

3.5        FPGA芯片的配置方法

三种方法:主动配置模式、被动配置模式、JTAG配置模式。

        1、主动配置模式:简单说就是把数据保存在片外存储器,FPGA掉电差点后从这个存储器中读取配置信息。(保密性差,配置文件大小收到FPGA各型号的存储器限制,用FLASH或EPROM格式还不同,比较麻烦)

        2、被动配置模式:简单说就是被其他设备配置,保密性较好。

        3、JTAG配置模式:起源于大集成度芯片无法用探针测试,进而发明的方法。其有两大功能:电路的边界扫描测试和可编程芯片的在线编程。通过连接PC的串口、并口、USB等和FPGA的JTAG接口相连接去配置和调试。

一般情况下三种方法组合使用,比如JTAG更是用于调试期。

=========================================================================

持续更新中

=========================================================================

注:本文转载自blog.csdn.net的KAI_20001209的文章"https://blog.csdn.net/m0_53816326/article/details/135720737"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

117
前沿技术
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top