0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一文带你了解FPGA

电子工程师 来源:FPGA设计论坛 作者:FPGA设计论坛 2020-09-28 11:54 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

大家好,又到了每日学习的时候了。自1985年问世以来,FPGA这种可编程逻辑器件凭借在性能、上市时间、成本、稳定性和长期维护方面的优势,在通信、医疗、工控和安防等领域占有一席之地。特别是近两年,随着云计算、高性能计算和人工智能的繁荣,拥有先天优势的FPGA更是得到了前所未有的关注。近几年随着国家开始大力发展实业,国内集成电路行业发展越来越好,随之由于用户对性能的要求越来越高,FPGA的可编程、高速度、低功耗、较低的二次开发成本的优越特性,带动了FPGA行业的发展,有很多同学们开始自学FPGA。

首先,先来了解一下FPGA,FPGA:Field-Programmable Gate Array,中文名字:现场可编程门阵列。FPGA由六部分组成:可编程输入/输出单元、基本可编程逻辑单元、嵌入式块RAM、丰富的布线资源、底层嵌入功能单元和内嵌专用硬核。英特尔首席执行官科再奇曾这样描述:“你可以把FPGA想象成一堆gate,能够随时编程。FPGA可以用作多个领域的加速器,例如在加密的同时进行面部搜索,并能在微秒内重新编程。其成本远低于大规模单个定制部件,并具有更高的灵活性。”

FPGA是可编程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,具有不同的结构,FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程。

下图为四输入查找表结构。


下图为FPGA的结构

关于FPGA概念以及结构等等的介绍就到这里,如果大家还想要详细了解,可以自己去查阅资料。接下来,咱们就来聊聊初学FPGA时需要注意哪些知识点或者小细节,希望对大家的学习有所帮助。 区别一下软硬件几种类型

通用应用软件
a. 软件汇编语言(Assembly Language)是面向机器的程序设计语言。
b. 主要关心逻辑和抽象,关心代码量大了之后复杂度可控。硬件资源较多,硬件性能差别较大,不需要针对特定资源设计。
c. 逻辑分层较多,来源于抽象的性能损耗可以接受。甚至于现在很多主流语言构建在虚拟机和解释器上。
d. 非实时。
e. 不需要了解底层硬件原理。

嵌入式软件(面向硬件编程)
a. 时序可控。大部分场景要求实时,因为要满足硬件时序。非抢占的任务调度和中断队列都会引入定时的偏差。
b. 资源开销可控。因为嵌入式硬件环境大多只有有限的 RAM 和 Flash 资源。
c. 针对特定硬件环境设计。
d. 所有代码上的抽象和优化都必须是零损耗或者损耗可控(可以参考 rust 语言)。比较典型的是 GC 会引入严重的时序和资源不可控,所以系统语言很少使用。

数字逻辑电路设计(硬件描述性语言)
a. 数字电路设计不是编程,是设计的时候先有电路,再用语言描述出来。
b. 时序要求更严,需要考虑建立时间和保持时间,及随之而来的亚稳态。
c. Coding style 会明显的影响电路性能。逻辑都一样,但是 DFF 的位置不一样,就可能导致时序不满足。
d. 并行化。执行顺序不再是 CPU 的顺序执行,而是多个并行的流水线。比如快速傅立叶 FFT。比如路由器的 CAM,单次动作完成整表查表。

1. FPGA学习时使用的 VHDL 和 verilog HDL 不是编程语言,而是一种可综合的硬件描述语言,我们在描述的时候一定要明白所要设计的是一个怎样的电路。

2. 当今社会做开发用的 Verilog HDL 语言偏多,Verilog HDL 支持两种进程 initial 和 always 进程,前者只能用在TB(TestBench)中,后者才是可综合的。

3. 阻塞与非阻塞指都是相对于进程本身而言的,简单来讲,阻塞用在描述组合逻辑电路,而非阻塞用于时序逻辑电路。

4. 使用进程模块的电路类型:
组合电路-----对组合逻辑中使用的所有输入敏感
例子:
always@(a or b or c)

时序电路-----仅对时钟和控制信号敏感
例子:
always @(posedge clk or negedge rst_n)
always既可以描述组合逻辑,也可以描述时序逻辑。

5. 可以用case语句完成多路选择器的功能,但是列举的情况一定要考虑全,否则会产生Latch。

6. verilog中有两类子程序:
函数和任务
函数-----根据输入返回一个值
-----产生组合逻辑
-----用在表达式中:assign mult_out=mult(ina,inb);
-----函数是组合逻辑,不能含有任何延时,事件,或者时序控制声明,至少有一个输入变量
总是返回一个变量
-----可以调用函数,但是不能调用任务。

任务-----可以是组合或者寄存器
-----以声明的形式调用任务:stm_out(nxt,first,sel,filter);
-----与其他编程语言中的任务相似
-----与函数不同任务不需要传递参数,而函数要传递参数
-----可以调用任务和函数。
----- 可以含有任何延时,事件,或者时序控制声明
-----返回零个或者多个数值
可综合的verilog语法子集是指用硬件可以实现的语法。力求用最简单的语言实现最复杂的硬件电路。

7. 硬件都有相应的输入输出的接口,或者是输入或者是输出,或者是输入输出。

8. reg 型是指时序逻辑里面的一个寄存数据(寄存机类型),wire 是组合逻辑里面的一条连线(线型)。

9. define 定义了一个参数,在整个工程里面都是有效地使用。parameter 定义的一个参数只在当前文件里面进行使用。

10. 各种逻辑操作符,移位操作符,算术操作符大多是可综合的。

11. assign一般是只针对于组合逻辑,而always语句既可以用于组合逻辑又可以用于时序逻辑,always模块的敏感表,如果是电平,则为组合逻辑,如果是沿信号posedge或者negedge 则为时序逻辑。

12. begin----end和C语言里面的{}是类似的。

13. for 语句-----循环因为综合出来的结果可能比较浪费资源,所以就一般用的比较少,但是在一些特定的设计中可以起到事半功倍的效果。

14. Total logic element 总共消耗的逻辑单元。

15. 行为级仿真可以理解为功能仿真(前仿真);布局布线后仿真可以理解为时序仿真(后仿真)。

16. 时序逻辑中时钟和复位信号是必须的。

17. 注意wire赋值的一个问题如下:
wire[2:0] key_an=key_rst_r&(~key_rst)
其相当于如下的一个赋值语句
wire[2:0] key_an;
assign key_an=key_rst_r&(~key_rst);
其实现的效果是一样的。
此种方法为:脉冲边沿检测法。

18. 实际工作中,除了描述仿真测试激励(Testbench)时使用for循环语句外,极少在RTL级编码中使用for循环,这是因为for循环会被综合器展开为所有变量情况的执行语句,每个变量独立占用寄存器资源,不能有效的复用硬件逻辑资源,造成巨大的浪费。一般常用case语句代替。

19. FPGA一般触发器资源比较丰富,而CPLD组合逻辑资源更丰富。

20. FPGA使用的两种语言:VHDL 和 verilog HDL 。
VHDL 为美国国防部发明,用于较多的设计人员合作完成的特大型项目(一百万门以上),语法/结构比较严谨,因为编写出的模块风格清晰。
verilog HDL 第三方支持工具较多,语法结构比VHDL简单,学习来比较容易,仿真工具比较好用,测试激励模块容易编写。

21. 时序设计的实质:电路设计的难点在于时序设计,实质就是满足么一个触发器 建立时间/保持时间 的要求。
(备注:建立时间:触发器在时钟上升沿到来之前,其数据输入端的数据必须保持不变的最小时间;保持时间:触发器在时钟上升沿到来之后,触发器在时钟上升沿到来之前,其数据输入端的数据必须保持不变的最小时间。)

22. 为什么触发器要满足建立时间和保持时间?
因为触发器内部数据的形成是需要一定的时间的,如果不满足建立和保持时间,触发器将进入亚稳态,进入亚稳态后触发器的输出将不稳定,在0和1之间变化,这时需要经过一个恢复时间,其输出才能 稳定,但稳定后的值并不一定是你的输入值。这就是为什么要用两级触发器来同步异步输入信号。这样做可以防止由于异步输入信号对于本级时钟可能不满足建立保持时间而使本级触发器产生的亚稳态传播到后面逻辑中,导致亚稳态的传播。

23. 锁存器(latch)和触发器(flip-flop)区别?
电平敏感的存储器件称为锁存器。可分为高电平锁存器和低电平锁存器,用于不同时钟之间的信号同步。
有交叉耦合的门构成的双稳态的存储原件称为触发器。分为上升沿触发和下降沿触发。可以认为是两个不同电平敏感的锁存器串连而成。前一个锁存器决定了触发器的建立时间,后一个锁存器则决定了保持时间。

24. and so on.

最后,我们来简单聊一聊FPGA的应用范围。FPAG的应用越来越广泛,航天航空、汽车驾驶、医疗、广播、测量测试、消费电子工业控制、计算机设备、武器装备等等。从应用场景角度分析,我们可以看到随着谷歌的阿尔法狗打败了人类围棋冠军后,深度学习已经从神坛走下来,越来越多的人开始认识到深度学习可能会改变未来的生活,成为未来科技发展的方向;而FPGA设计工具使其对深度学习领域经常使用的上层软件兼容性更强,FPGA正是助力深度学习的一大技术。不同于CPU的是,FPGA和GPU内都有大量的计算单元,因此它们的计算能力都很强。在进行神经网络运算的时候,两者的速度会比CPU快很多。但是GPU由于架构固定硬件原生支持的指令固定了,而FPGA则是可编程的。
随着国家综合实力越来越强大,国民经济越来越好,FPGA从之前的运用广泛的军工行业在慢慢延伸到民用行业,并且会越来越广泛。

原文标题:FPGA学习需要注意的知识点

文章出处:【微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1655

    文章

    22283

    浏览量

    630196

原文标题:FPGA学习需要注意的知识点

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    ALM(应用生命周期管理)解析:了解其概念、关键阶段及Perforce ALM工具推荐

    什么是ALM(应用生命周期管理)?它远不止是SDLC!了解其概念、关键阶段以及如何借助Perforce ALM这类工具,实现端到端的可追溯性、加速发布并保障合规性。
    的头像 发表于 09-19 11:03 1249次阅读
    ALM(应用生命周期管理)解析:<b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>了解</b>其概念、关键阶段及Perforce ALM工具推荐

    带你了解海凌科毫米波雷达

    什么是毫米波雷达?毫米波雷达有什么特点?毫米波雷达有什么作用?海凌科有哪些系列毫米波雷达?带你了解!毫米波的定义毫米波是指频率在30GHz至300GHz之间、波长为1~10毫米的电
    的头像 发表于 08-11 12:04 1089次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>带你</b><b class='flag-5'>了解</b>海凌科毫米波雷达

    带你了解什么是机器视觉网卡

    机器视觉网卡通常指的是在机器视觉系统中用于连接工业相机到计算机的以太网卡。它的核心作用是实现高速、稳定、低延迟的图像数据传输。以下是关于机器视觉网卡的关键信息:1.核心功能:高速图像传输:处理来自千兆以太网或万兆以太网相机产生的大量图像数据流。万兆网卡能提供更高的带宽,满足高分辨率、高帧率相机的需求。支持GigEVision协议:这是机器视觉领域最重要的工业
    的头像 发表于 07-09 16:18 416次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>带你</b><b class='flag-5'>了解</b>什么是机器视觉网卡

    带你了解电源测试系统的功能!

    在当今电子与电力技术飞速发展的时代,各类电子设备、电力系统以及新能源相关产品的研发、生产和维护过程中,电源测试系统扮演着至关重要的角色。本文将带你了解源仪电子的电源测试系统的功能。
    的头像 发表于 07-02 09:10 623次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>带你</b><b class='flag-5'>了解</b>电源测试系统的功能!

    了解电压谐波

    我们经常会听到谐波,到底什么是谐波,怎么定义的?为什么要关注谐波?什么时候关注谐波?谐波如何计算或标准规定的谐波的算法是怎样的?GB关于电压谐波又是如何评估的?带着诸多的问题,我们一起来了解
    的头像 发表于 06-28 17:23 3825次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>了解</b>电压谐波

    带你了解工业计算机尺寸

    项艰巨的任务。本博客将指导您了解关键的工业计算机尺寸、使用案例。关键工业计算机外形要素及其使用案例、工业微型PC尺寸范围:宽度:100毫米-180毫米深度:10
    的头像 发表于 04-24 13:35 790次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>带你</b><b class='flag-5'>了解</b>工业计算机尺寸

    带你了解芯片开封技术

    芯片开封的定义芯片开封,即Decap,是种对完整封装的集成电路(IC)芯片进行局部处理的工艺。其目的是去除芯片的封装外壳,暴露出芯片内部结构,同时确保芯片功能不受损。芯片开封是芯片故障分析实验
    的头像 发表于 04-07 16:01 1005次阅读
    <b class='flag-5'>带你</b><b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>了解</b>芯片开封技术

    带你全面了解陶瓷电路板厚膜工艺

    陶瓷电路板厚膜工艺是种先进的印刷电路板制造技术,广泛应用于电子、通信、航空航天等领域。本文将详细介绍陶瓷电路板厚膜工艺的原理、流程、优势以及应用,带您全面了解技术……
    的头像 发表于 03-17 16:30 1033次阅读

    【干货】什么是Node-RED?带你了解

    什么是Node-RED?首先我们来认识下什么是Node-RED。Node-RED是个基于Node.js的开源可视化编程工具,于2013年由IBM公司推出。它可以通过浏览器的图形化界面进行编程
    的头像 发表于 03-13 19:32 1511次阅读
    【干货】什么是Node-RED?<b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>带你</b><b class='flag-5'>了解</b>!

    带你了解电气安规测试

    电气安规测试的重要性电气安规测试是产品制造过程中不可或缺的环节。尽管它会占用定的生产时间,但其意义远超过时间成本。通过电气安规测试,可以有效降低产品因电气危害导致召回的风险。在当今竞争激烈
    的头像 发表于 03-13 11:08 765次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>带你</b><b class='flag-5'>了解</b>电气安规测试

    带你了解什么是灯具检测测试

    在灯具制造业中,技术检验是确保产品符合安全和质量标准的基石。本文将深入探讨灯具产品在技术检验中需遵循的各项测试要求和行业标准,以保障其在市场上的可靠性和竞争力。两种规格的高压测试1.UL/cUL普通固定式灯具需经受1500V/1.0mA/1秒的高压测试,可移动式灯具则为1500V/0.5mA/1秒。测试频率应处于40~70Hz区间,且泄漏电流上限为0.5mA
    的头像 发表于 01-15 15:34 2050次阅读
    <b class='flag-5'>带你</b><b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>了解</b>什么是灯具检测测试

    带你了解arm主板

    当您听到“ARM主板”词时,您可能会想知道它与大多数个人计算机中使用的典型x86主板有何不同。事实是,ARM主板在从智能手机和平板电脑到服务器和嵌入式系统等各种应用中越来越受欢迎。但是什么让它们
    的头像 发表于 01-02 10:51 964次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>带你</b><b class='flag-5'>了解</b>arm主板

    UVLED光固化机常用术语和单位简介,篇文章带你全面了解

    全面、简洁的文章,带你了解UVLED光固化机的常用术语和单位!‌、光通量(Φ)‌光通量是指发光体每秒发射的光的总量,单位为流明(Lm)。在UVLED行业中,光通
    的头像 发表于 12-24 13:27 1484次阅读
    UVLED光固化机常用术语和单位简介,<b class='flag-5'>一</b>篇文章<b class='flag-5'>带你</b>全面<b class='flag-5'>了解</b>!

    带你了解FIB技术

    FIB技术定义聚焦离子束(FocusedIonBeam,FIB)技术是种先进的微纳加工技术,它利用高度聚焦的离子束对材料进行精确的加工、分析和成像。FIB技术能够在纳米尺度上实现材料的去除、沉积
    的头像 发表于 12-20 12:55 3948次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>带你</b><b class='flag-5'>了解</b>FIB技术

    了解三菱电机高压SiC芯片技术

    三菱电机开发了高耐压SiC MOSFET,并将其产品化,率先将其应用于驱动铁路车辆的变流器中,是家在市场上拥有良好业绩记录的SiC器件制造商。本篇带你了解三菱电机高压SiC芯片技术。
    的头像 发表于 12-18 17:35 1812次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>了解</b>三菱电机高压SiC芯片技术