FPGA之道(42)FPGA设计的分类

举报
李锐博恩 发表于 2021/07/15 01:44:34 2021/07/15
【摘要】 文章目录 前言设计的分类按功能分按面向分按速度和规模分按速度分按规模分按速度、规模分 前言 本文摘自《FPGA之道》,一看来学习下作者的看法。 设计的分类 抛开应用背景、科研领域不谈,单从FPGA设计本身的一些特性出发,就可以将它划分成若干个基本类别。在动手用HDL代码实现FPGA设计之前,最好先分析一下待实现的FPGA设计具有哪一个或者哪...

前言

本文摘自《FPGA之道》,一看来学习下作者的看法。

设计的分类

抛开应用背景、科研领域不谈,单从FPGA设计本身的一些特性出发,就可以将它划分成若干个基本类别。在动手用HDL代码实现FPGA设计之前,最好先分析一下待实现的FPGA设计具有哪一个或者哪几个基本类别的特征,从而采用更加适合的编程思路来编写HDL代码。

按功能分

按功能来看,FPGA设计可以分为控制类、通信链路类和数据处理类

  • 其中,控制类设计主要通过对FPGA外围硬件电路的协调、控制,从而完成整个硬件系统所需功能;
  • 通信链路类设计本身一般不承担主要的硬件系统功能,它通过将外围主要硬件芯片的数据管脚全部连接到FPGA芯片上,从而实现了一个非常灵活的总线结构罢了(此时的FPGA设计也常被称为胶合逻辑);
  • 而数据处理类是一个比较大的类别,它完成了FPGA设计所基于的应用背景与科研领域所要求的一些高级功能。

从按功能划分的各个类别的说明来看,只有具有数据处理类别特征的FPGA设计才可能成为整个硬件系统中的主角。因为如果以人的神经系统作为比喻的话:通信链路类就好比分布在身体各个地方的神经元,只完成信息的传递功能;控制类就好比脊柱,不光完成关键信息传递,还可以适当的发挥自己的主观能动性(尤其是在大脑睡眠的时候);而数据处理类就好比大脑,完成了几乎所有的对信息的处理工作。因此,在了解了FPGA设计功能的侧重点之后,也可以对其在硬件系统中的角色定位有一个基本认识,从而可以在进行硬件系统级设计的时候就能评估好FPGA设计的任务量及重要性,从而分配好投入到FPGA设计中的人力、物力和财力。

按面向分

按面向来看,FPGA设计可以分为接口处理类与内部逻辑类。

  • 其中接口处理类主要负责和FPGA外围的路的一些通信,主要包括数据的接收与发送功能;
  • 而内部逻辑类主要完成数据的整合、处理和生成等功能。

因此,一般来说,FPGA设计均同时具备这两种基本类别的特征,而这两种基本类别也是相互依存的。接口处理类与内部逻辑类之间的关系就好比人的五官和大脑一样,五官负责接收外部信息(光、声音、热量等)和向外界发送信息(声音、书写、手势等),而大脑则负责处理五官接收到的信息和产生需要经由五官输出的信息。如果突然间眼瞎了、耳聋了、嘴哑了、身瘫了,那么即使再聪明的大脑也无法发挥作用;同样,如果大脑不灵光,即使拥有再好的视力、听力、嗅觉、触感,也一样搞不清看到的、听到的、闻到的、摸到的到底是怎么回事,更不知道该如何反馈自己得到的信息。因此,编写HDL代码之前,要清楚的区分好FPGA设计的接口处理部分与内部逻辑部分,然后在保证“看的准确”、“说的准确”的同时,保证“分析的准确”,从而保证FPGA设计的准确。
根据FPGA设计的具体情况,一般按面向分后的侧重点也不同。一般来说,简单的FPGA设计两个类别的HDL编写都比较简单,就好比阅读一样,眼睛获取了文字图像,大脑识别后直接通过嘴巴发声读出;有些设计则比较偏重于内部逻辑类,就好比做数学题一样,眼睛看到的算式图像,大脑识别后,还需要再根据相应的运算符号的意义进行运算,然后才能调用嘴巴发声说出结果;而有些设计则比较偏重于接口处理类,就好比玩连连看游戏,靠的就是眼疾手快;另外,还有一些设计两种特征都很偏重,就好比打篮球,拼速度、拼身体、更拼篮球智商。因此,在了解了FPGA设计面向的侧重点之后,就可以尽早的把握好FPGA设计的难点所在,能够更加充分评估FPGA设计的复杂度、可行性,以及合理分配投入在每一方面的精力等。

按速度和规模分

按速度分

如果仅仅按速度分,那么FPGA设计可分为纯组合逻辑设计、低速设计、中速设计、高速设计四类。 速度的概念,其实是和FPGA设计中时钟信号的频率息息相关的。如果FPGA设计中,根本没有时钟信号的概念(如果锁存的控制信号也看作时钟的一种的话),那么表明它也不会使用到任何的存储单元,因此,这种设计就是一个纯组合逻辑设计,对于这种设计来说,如果纯看FPGA内部,没有什么速度的概念,但是其内部的门延迟和线延迟等,可能会影响到整个硬件系统的速度和性能。而通常来说,FPGA设计中一般都是有时钟信号的,而且大部分时候可能还不止一个,此时可以根据时钟信号频率的高低,再细分为低速、中速或高速设计。实现同样的逻辑功能,如果对时钟速度的要求越高,那么开发起来难度就越大,因此可以根据FPGA设计中时钟速度的需求,来评估开发难度、采取相应的开发策略。

按规模分

如果仅仅按规模分,那么FPGA设计可以分为小规模设计、中规模设计和大规模设计三类。规模的大小其实也就是实现一个FPGA设计所需要使用到的资源的多少。因此规模越大,能够实现的逻辑功能也就越多、越复杂,但是随之而来,编译器的负担也越大,尤其是FPGA设计的资源占用率也很大时,布局布线的成功率会明显降低。因此也可以根据FPGA设计的规模来评估开发难度以及采取相应的开发策略。

按速度、规模分

如果综合时钟速度要求与资源规模预期,又可将考虑FPGA设计分为四个类别:低速小规模设计、低速大规模设计、高速小规模设计、高速大规模设计。低速小规模设计最简单;低速大规模设计难点主要在逻辑功能上;高速小规模设计难点主要在逻辑性能上;而高速大规模设计的难点则同时在逻辑功能与性能上,并且一般都需要用到时空变换的思想来达到系统需求。因此,在写HDL代码前先对自己的FPGA设计做一个速度与规模的评估,从而估计开发难度以及采取相应的开发策略。

文章来源: reborn.blog.csdn.net,作者:李锐博恩,版权归原作者所有,如需转载,请联系作者。

原文链接:reborn.blog.csdn.net/article/details/104328173

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。