当前位置:首页 > 嵌入式 > 嵌入式分享
[导读]在这篇文章中,小编将为大家带来FPGA的相关报道。如果你对本文即将要讲解的内容存在一定兴趣,不妨继续往下阅读哦。

在这篇文章中,小编将为大家带来FPGA的相关报道。如果你对本文即将要讲解的内容存在一定兴趣,不妨继续往下阅读哦。

一、FPGA设计重中之重-硬件设计

既然要玩转FPGA,那我们首先最重要的当然是要了解什么FPGA。FPGA(Field-Programmable Gate Array),即现场可编程门阵列。看到编程两个字码农就笑了,不就是编程嘛,那可是我们的强项。且慢,此编程非彼编程。一定要把FPGA的编程和软件编程区分开来。软件的编程,处理器会逐条的把语言翻译成各种控制信号,去控制内部电路完成一个个运算或操作。那么FPGA的编程是怎么实现的呢?无论Altera家还是Xlinix家的FPGA,叫法有什么差异,基本单元都相似,都是由真值表和D触发器构成。改变真值表的值就改变了逻辑功能,再通过和D触发器组合来实现任何时序逻辑。所以我们对FPGA的编程,实际上就是去修改这些真值表和连接关系,使他们组成一张专门的真值表,去实现特定的功能。这和软件编程一步步运行程序有本质的区别。要想玩转FPGA,就必须理解FPGA内部的工作原理,学习如何利用这些单元实现复杂的逻辑设计。

硬件设计思想是重中之重。学习FPGA,一定要有硬件设计思想。在软件编程的时候,比如1秒钟能实现5次乘法运算,那系统要求1秒钟实现50次乘法运算怎么办,我们会尽可能的优化代码,让代码更简洁更高效,或者提高系统主频,让系统跑的更快。但是在FPGA里面我们不是这种思维方式。在FPGA里实现一个乘法器不够用,那我就实现两个实现三个去满足系统要求;我可以进行流水线设计;串行运行方式不够快了,我可以先串并转换,再并行的做处理……只要FPGA的资源够用,我可以充分利用资源去满足系统要求。因为在我手里的就是一堆硬件资源,我要做的是把他们组合成一个好用的电路。评价硬件描述语言写的好坏的标准和其他软件编程语言的标准是完全不同的。因此一定要摒弃软件编程的一些固有思路,学会用硬件的方式去解决问题。时刻提醒自己正在设计的是一个电路,而不是一行行空洞的代码。这是很多做软件编程的人很难跨过的坎。FPGA学了很久还在纠结到底是用if_else语句好呢还是用case语句好?而不能透过这些语句表面看到他们所具体代表的电路。只有建立了硬件设计思想,才有更深入学习FPGA的可能。

FPGA入门简单精通难。要想入门,买一块开发板跟着例程走一遍,很多人都能在很短的时间内熟悉开发软件的操作方法并且点亮开发板上的LED或者再实现个跑马灯什么的。但是再往后进步往往就进展很慢。上面提到的这四条是玩转FPGA的基础,只有打好了坚实的基础后面才能一马平川。希望每个学习FPGA的人最后都能成为大牛,设计出自己的完美电路。

二、FPGA设计

1、设计定义

在FPGA设计项目开始之前,根据任务要求和系统的功能,对工作速度和器件本身的资源、成本等方面进行权衡,选择合适的设计方案和合适的器件类型,并根据功能需求来设计定义整个项目的架构设计。

架构设计的目的是将设计需求转化为硬件结构,确定模块划分、信号传输方式、时序关系等。在进行架构设计时,我们需要考虑到设计复杂度、资源利用率、功耗消耗等多个方面。

这块需要资深FPGA来设计,同时设计方案需要分析和验证,确保FPGA器件的资源和性能可以达到功能的要求,可能需要迭代多个版本,这部分需要经验积累。

2、HDL实现

这块主要是编写代码,按照设计需求和架构设计,将功能模块拆分为各个子模块,然后编写相应的模块代码,常用HDL语言是verilog HDL和VHDL。

这部分涉及到verilog开发,推荐使用Vivado+Visual Studio Code的开发环境,写起代码来还是很方便的。

3、功能仿真

功能仿真,是在编译之前进行逻辑功能验证的过程,主要用来验证。

此时的仿真没有考虑电路的延迟信息,只能对逻辑功能进行检测,并不能保证上板运行的正确性。

功能仿真需要编写测试激励,需要根据要测试的功能,来编写测试激励逻辑。

功能仿真是一种非常重要的验证手段,可以尽早发现设计中的问题和错误,从而减少后期的调试和修改工作。

常用的仿真软件有Vivado自带仿真器和modelsim仿真器,其中modelsim仿真速度比Vivado仿真速度快,推荐使用modelsim仿真。

4、 逻辑综合

综合(Synthesis)是将设计输入编译成由与门、或门、非门、RAM、触发器等基本逻辑单元组成的逻辑连接网表的过程。综合的目标是将较高级的抽象描述转化成较低层次的描述,并进行优化,以提高电路的性能和效率。

综合优化根据目标和要求来优化所生成的逻辑连接,使层次设计平面化,为FPGA布局布线软件提供实现支持。

综合的时间,与FPGA工程大小有关,工程越复杂,时间则越长。

5、综合后仿真

综合后仿真,主要是检查综合结果是否和原设计一致,但这个仿真很耗时和耗资源,一般可以跳过这个仿真,不如直接上板调试来的靠谱。

6、实现与布局布线

这步是FPGA设计流程中非常重要的一步,可以将综合生成的逻辑网表配置到具体的FPGA芯片,同时也是耗时特别长的一个阶段,电脑CPU单核性能越好,耗时越短。

布局布线根据时序约束条件,以及芯片内部各个逻辑单元的布局结构,通过连线资源,将逻辑网表中的硬件原语和底层单元合理地配置到芯片内部的固有硬件结构上,这部分往往需要在速度优化和面积优化之间找平衡。

可以在开发软件上,设置实现和布局布线策略,一般情况下使用默认设置即可。

7、 时序仿真

时序仿真,也称为后仿真,主要检测布局布线后的电路是否有时序不满足的情况。这块一般用的少,建议直接略过这一步,上板调试更好。

8、上板调试

一般是通过JTAG在线下在bit文件到FPGA芯片中,接入实际的输入信号,在线实时测试,这里在第一次测试时,大概率会运行异常。

我们调试的时候,要保持耐心,要根据现象大胆推荐可能的原因,并将存在问题的模块信号,加入ILA,抓取实时信号出来分析,如果实在是没哟头绪,那就只要一个个模块排查,猜测可能的原因。

上板调试经验,需要不断积累,做项目越多,越熟练,注意总结和复盘。

以上便是小编此次想要和大家共同分享的有关FPGA的内容,如果你对本文内容感到满意,不妨持续关注我们网站哟。最后,十分感谢大家的阅读,have a nice day!

声明:该篇文章为本站原创,未经授权不予转载,侵权必究。
换一批
延伸阅读

TWSC 2985系列SD6.0存储芯片 国内首颗支持4K LDPC纠错技术 增强纠错、耐久可靠、性能升级

关键字: 德明利 半导体 存储 芯片 国产存储企业

2024年4月11日,中国——意法半导体的ST25R100近距离通信(NFC)读取器芯片独步业界,集先进的技术功能、稳定可靠的通信连接和低廉的成本价格于一身,在大规模制造的消费电子和工控设备内,可以提高非接触式互动功能的...

关键字: 嵌入式 数据读取器 芯片

其最新一代开创性系统集成芯片及配套软件将为4600万辆汽车提供更多安全和便利功能 上海2024年4月17日 /美通社/ -- Mobileye今日宣布,其已向客户交付其最新的EyeQ™6 Lite (EyeQ...

关键字: 芯片 MOBILEYE ADAS 自动驾驶

随着2024年的到来,北斗系统建设已走过栉风沐雨、接续奋斗的30年,几代北斗人也走过了北斗系统建设从无到有,从有源定位到无源定位,从服务中国到服务亚太,再到全球组网的“三步走”发展历程。

关键字: 华大北斗 芯片

微控制单元(Microcontroller Unit;MCU) ,又称单片微型计算机(Single Chip Microcomputer )或者单片机,是一种针对特定应用的控制处理而设计的微处理器芯片,其工作频率(在1M...

关键字: MCU 芯片 半导体

今日凌晨,中国台湾东部的花莲县连续发生地震,最高强度为6.3级,震源深度10公里,据中国地震台网分析,本次地震均为4月3日台湾花莲县海域发生的7.3级地震的余震。中国台湾地区在全球半导体供应链中扮演者重要角色,其10nm...

关键字: 固态硬盘 芯片 存储

在科技飞速发展的今天,电子设备已经成为了我们日常生活中不可或缺的一部分。而在这些电子设备的内部,一个不可或缺的组成部分便是开关电源芯片。作为电源管理集成电路的核心,开关电源芯片在电子设备中发挥着至关重要的作用。本文将深入...

关键字: 开关电源 芯片

开关电源芯片作为电子设备中的重要组成部分,是实现电源转换和管理的核心器件。随着科技的不断进步,开关电源芯片的种类也在不断增加,各具特色,满足了不同设备和应用场景的需求。本文将深入探讨开关电源芯片的种类及其科技应用,带领读...

关键字: 开关电源 芯片

4月17日消息,Intel官方宣布,工程师内部研发了一种新的AI增强工具,可以让系统级芯片设计师原本需要耗费6个星期才能完成的热敏传感器设计,缩短到区区几分钟。

关键字: Intel 芯片 1.8nm

业内消息,昨天美国芯片设计公司 AMD 推出了锐龙PRO 8040/8000系列AI处理器芯片,为支持人工智能的PC提供动力,试图在与英伟达和英特尔等竞争对手的AI PC 竞争中获得领先地位。

关键字: AMD 锐龙 AI处理器 芯片
关闭