首页 » 智能 » 单片机、DSP、ARM、FPGA差异_单片机_芯片

单片机、DSP、ARM、FPGA差异_单片机_芯片

神尊大人 2024-08-30 19:33:50 0

扫一扫用手机浏览

文章目录 [+]

然后,MCU、DSP、FPGA这些都属于嵌入式系统的范畴,是为了实现某一目的而利用的工具。

MCU俗称”单片机“经由这么多年的发展,早已不单单只有普林斯顿构造的51了,性能也已得到了很大的提升。
由于MCU必须顺序实行程序,以是适于做掌握,较多地运用于工业。
而ARM本是一家专门设计MCU的公司,由于技能前辈加上策略得当,这两年单片机市场份额霸占率巨大。

单片机、DSP、ARM、FPGA差异_单片机_芯片 单片机、DSP、ARM、FPGA差异_单片机_芯片 智能

ARM的单片机有很多种类,从低端M0(小家电)到高端A8、A9(手机、平板电脑)都很吃喷鼻香,以是也不是ARM的单片机一定要上系统,关键看运用处所。

单片机、DSP、ARM、FPGA差异_单片机_芯片 单片机、DSP、ARM、FPGA差异_单片机_芯片 智能
(图片来自网络侵删)

DSP叫做数字旗子暗记处理器,它的构造与MCU不同,加快了运算速率,突出了运算能力。
可以把它算作一个超级快的MCU。
低真个DSP,如C2000系列,紧张是用在电机掌握上,不过TI公司彷佛称其为DSC(数字旗子暗记掌握器)一个介于MCU和DSP之间的东西。
高真个DSP,如C5000/C6000系列,一样平常都是做视频图像处理和通信设备这些须要大量运算的地方。

FPGA叫做现场可编程逻辑阵列,本身没有什么功能,就像一张白纸,想要它有什么功能完备靠编程职员设计(它的所有过程都是硬件,包括VHDL和Verilog HDL程序设计也是硬件范畴,一样平常称之为编写“逻辑”。
)。

如果你够NB,你可以把它变成MCU,也可以变成DSP。
由于MCU和DSP的内部构造都是设计好的,以是只能通过软件编程来进行顺序处理,而FPGA则可以并行处理和顺序处理,以是比较而言速率最快。

那么为什么MCU、DSP和FPGA会同时存在呢?那是由于MCU、DSP的内部构造都是由IC设计职员精心设计的,在完成相同功能时功耗和价钱都比FPGA要低的多。
而且FPGA的开拓本身就比较繁芜,完成相同功能耗费的人力财力也要多。

以是三者之间各有各的长处,各有各的用武之地。
但是目前三者之间已经有领悟的态势,ARM的M4系列里多加了一个精简的DSP核,TI的达芬奇系列本身便是ARM+DSP构造,ALTERA和XINLIX新推出的FPGA都包含了ARM的核在里面。
以是三者之间的关系是越来越像三基色的三个圆了。

一言以蔽之“你中有我,我中有你”。

硬件工程师学习从何开始?单片机:常日无操作系统,用于大略的掌握,如电梯,空调等。
dsp:用于繁芜的打算,像离散余弦变换、快速傅里叶变换,常用于图像处理,在数码相机等设备中利用。
arm:一个英国的芯片设计公司,但是不生产芯片。
只卖知识产权。
fpga:现场可编程门阵列,以硬件描述措辞(Verilog 或 VHDL)所完成的电路设计,可以经由大略的综合与布局,快速的烧录至 FPGA 上进行测试,是当代 IC 设计验证的技能主流。
嵌入式 是相对付台式电脑而言,系统可裁剪,形态互异,可能体积、功耗、本钱受限、实时性哀求高,如示波器,手机,平板电脑,全自动洗衣机,路由器、数码相机,这些设备中,虽然看不到台式机的存在,但是都有一个或多个嵌入式系统在事情。

根据工具体系的功能繁芜性和打算处理繁芜性,供应的不同选择。
对付大略的家电掌握嵌入式系统,采取大略的8位单片机就足够了,价廉物美,对付手机和游戏机等,就必须采取32位的ARM和DSP等芯片了。
FPGA是一种更倾向硬件的实现办法。

以是要通过学习成为硬件工程师,要从单片机开始,然落后修ARM和DSP之类。

市情上七大主流单片机的详细先容

单片机现在可谓是铺天盖地,种类繁多,让开发者们应接不暇,发展也是相称的迅速,从上世纪80年代,由当时的4位8位发展到现在的各种高速单片机。

各个厂商们也在速率、内存、功能上此起彼伏,参差不齐~~同时呈现出一大批拥有代表性单片机的厂商:Atmel、TI、ST、MicroChip、ARM…海内的宏晶STC单片机也是可圈可点…

下面为大家带来51、MSP430、TMS、STM32、PIC、AVR、STC单片机之间的优缺陷比较及功能表示……

51单片机

运用最广泛的8位单片机当然也是初学者们最随意马虎上手学习的单片机,最早由Intel推出,由于其范例的构造和完善的总线专用寄存器的集中管理,浩瀚的逻辑位操作功能及面向掌握的丰富的指令系统,堪称为一代“经典”,为往后的其它单片机的发展奠定了根本。

51单片机之以是成为经典,成为易上手的单片机紧张有以下特点:

特性:

从内部的硬件到软件有一套完全的按位操作系统,称作位处理器,处理工具不是字或字节而是位。
不但能对片内某些分外功能寄存器的某位进行处理,如传送、置位、清零、测试等,还能进行位的逻辑运算,其功能十分完备,利用起来得心应手。
同时在片内RAM区间还特殊开辟了一个双重功能的地址区间,利用极为灵巧,这一功能无疑给利用者供应了极大的方便,乘法和除法指令,这给编程也带来了便利。
很多的八位单片机都不具备乘法功能,作乘法时还得编上一段子程序调用,十分不便。

缺陷:(虽然是经典但是缺陷还是很明显的)

AD、EEPROM等功能须要靠扩展,增加了硬件和软件包袱虽然I/O脚利用大略,但高电平时无输出能力,这也是51系列单片机的最大软肋运行速度过慢,特殊是双数据指针,如能改进能给编程带来很大的便利51保护能力很差,很随意马虎烧坏芯片

运用范围:

目前在传授教化场合和对性能哀求不高的场合大量被采取利用最多的器件:8051、80C51MSP430单片机

MSP430系列单片机是德州仪器1996年开始推向市场的一种16位超低功耗的稠浊旗子暗记处理器,给人们留下的最大的亮点是低功耗而且速率快,汇编措辞用起来很灵巧,寻址办法很多,指令很少,随意马虎上手。

紧张是由于其针对实际运用需求,把许多仿照电路、数字电路和微处理器集成在一个芯片上,以供应“单片”办理方案。
其迅速发展和运用范围的不断扩大,紧张取决于以下的特点…

特性:

强大的处理能力,采取了精简指令集(RISC)构造,具有丰富的寻址办法( 7 种源操作数寻址、 4 种目的操作数寻址)、简洁的 27 条内核指令以及大量的仿照指令;大量的寄存器以及片内数据存储器都可参加多种运算;还有高效的查表处理指令;有较高的处理速率,在 8MHz 晶体驱动下指令周期为 125 ns 。
这些特点担保了可体例出高效率的源程序在运算速率方面,能在 8MHz 晶体的驱动下,实现 125ns 的指令周期。
16 位的数据宽度、 125ns 的指令周期以及多功能的硬件乘法器(能实现乘加)相合营,能实现数字旗子暗记处理的某些算法(如 FFT 等)。
超低功耗方面,MSP430 单片机之以是有超低的功耗,是由于其在降落芯片的电源电压及灵巧而可控的运行时钟方面都有其独到之处。
电源电压采取的是 1.8~3.6V 电压。
因而可使其在 1MHz 的时钟条件下运行时, 芯片的电流会在 200~400uA 旁边,时钟关断模式的最低功耗只有 0.1uA

缺陷:

个人觉得不随意马虎上手,不适宜初学者入门,资料也比较少,只能网去找占的指令空间较大,由于是16位单片机,程序以字为单位,有的指令竟然占6个字节。
虽然程序表面上简洁, 但与pic单片机比较空间占用很大

运用范围:

在低功耗及超低功耗的工业场合运用的比较多利用最多的器件:MSP430F系列、MSP430G2系列、MSP430L09系列TMS单片机

这里也提一下TMS系列单片机,虽不算主流。
由TI推出的8位CMOS单片机,具有多种存储模式、多种外围接口模式,适用于繁芜的实时掌握场合。
虽然没STM32那么精良,也没MSP430那么张扬,但是TMS370C系列单片机供应了通过整合前辈的外围功能模块及各种芯片的内存配置,具有高性价比的实时系统掌握。

同时采取高性能硅栅CMOS EPROM和EEPROM技能实现。
低事情功耗CMOS技能,宽事情温度范围,噪声抑制,再加上高性能和丰富的片上外设功能,使TMS370C系列单片机在汽车电子,工业电机掌握,电脑,通信和消费类具有一定的运用。

STM32单片机

由ST厂商推出的STM32系列单片机,行业的朋友都知道,这是一款性价比超高的系列单片机,该当没有之一,功能及其强大。
其基于专为哀求高性能、低本钱、低功耗的嵌入式运用专门设计的ARM Cortex-M内核。

同时具有一流的外设:1μs的双12位ADC,4兆位/秒的UART,18兆位/秒的SPI等等,在功耗和集成度方面也有不俗的表现,当然和MSP430的功耗比起来是轻微逊色的一些,但这并不影响工程师们对它的热捧程度,由于其大略的构造和易用的工具再合营其强大的功能在行业中赫赫有名…

特性:

内核:单周期乘法和硬件除法存储器:片上集成32-512KB的Flash存储器。
6-64KB的SRAM存储器时钟、复位和电源管理:2.0-3.6V的电源供电和I/O接口的驱动电压。
POR、PDR和可编程的电压探测器(PVD)。
4-16MHz的晶振。
内嵌出厂前调校的8MHz RC振荡电路。
内部40 kHz的RC振荡电路。
用于CPU时钟的PLL。
带校准用于RTC的32kHz的晶振调试模式:串行调试(SWD)和JTAG接口。
最多高达112个的快速I/O端口、最多多达11个定时器、最多多达13个通信接口利用最多的器件:STM32F103系列、STM32 L1系列、STM32W系列PIC单片机

PIC单片机系列是美国微芯公司(Microship)的产品,共分三个级别,即基本级、中级、高等,是当前市场份额增长最快的单片机之一,CPU采取RISC构造,分别有33、35、58条指令,属精简指令集。

同时采取Harvard双总线构造,运行速率快,它能使程序存储器的访问和数据存储器的访问并行处理,这种指令流水线构造,在一个周期内完成两部分事情,一是实行指令,二是从程序存储器取出下一条指令,这样总的看来每条指令只需一个周期,这也是高效率运行的缘故原由之一,此外PIC单片机之以是成为一时非常热的单片机不外乎以下特点:

特点:

具有低事情电压、低功耗、驱动能力强等特点。
PIC系列单片机的I/O口是双向的,其输出电路为CMOS互补推挽输出电路。
I/O脚增加了用于设置输入或输出状态的方向寄存器,从而办理了51系列I/O脚为高电平时同为输入和输出的状态。
当置位1时为输入状态,且不管该脚呈高电平或低电平,对外均呈高阻状态;置位0时为输出状态,不管该脚为何种电平,均呈低阻状态,有相称的驱动能力,低电平吸入电流达25mA,高电平输出电流可达20mA。
相对付51系列而言,这是一个很大的优点。
它可以直接驱动数码管显示且外电路大略。
它的A/D为10位,能知足精度哀求。
具有在线调试及编程(ISP)功能。

不敷之处:

其专用寄存器(SFR)并不像51系列那样都集中在一个固定的地址区间内(80~FFH),而是分散在四个地址区间内。
只有5个专用寄存器PCL、STATUS、FSR、PCLATH、INTCON在4个存储体内同时涌现,但是在编程过程中,少不了要与专用寄存器打交道,得反复地选择对应的存储体,也即对状态寄存器STATUS的第6位(RP1)和第5位(RP0)置位或清零。
数据的传送和逻辑运算基本上都得通过事情寄存器W(相称于51系列的累加器A)来进行,而51系列的还可以通过寄存器相互之间直接传送,因而PIC单片机的瓶颈征象比51系列还要严重,这在编程中的朋友该当深有体会。
利用最多的器件:PIC16F873、PIC16F877AVR单片机

AVR单片机是Atmel公司推出的较为新颖的单片机,其显著的特点为高性能、高速率、低功耗。
它取消机器周期,以时钟周期为指令周期,实施流水作业。

AVR单片机指令以字为单位,且大部分指令都为单周期指令。
而单周期既可实行本指令功能,同时完成下一条指令的读取。
常日时钟频率用4~8MHz,故最短指令实行韶光为250~125ns。

特点:

AVR系列没有类似累加器A的构造,它紧张是通过R16~R31寄存器来实现A的功能。
在AVR中,没有像51系列的数据指针DPTR,而是由X(由R26、R27组成)、Y(由R28、R29组成)、Z(由R30、R31组成)三个16位的寄存器来完成数据指针的功能(相称于有三组DPTR)。
而且还能作后增量或先减量等的运行,而在51系列中,所有的逻辑运算都必须在A中进行;而AVR却可以在任两个寄存器之间进行,省去了在A中的来回折腾,这些都比51系列出色些AVR的专用寄存器集中在00~3F地址区间,无需像PIC那样得前辈行选存储体的过程,利用起来比PIC方便。
AVR的片内RAM的地址区间为0~00DF(AT90S2313) 和0060~025F(AT90S8515、AT90S8535),它们占用的是数据空间的地址,这些片内RAM仅仅是用来存储数据的,常日不具备通用寄存器的功能。
当程序繁芜时,通用寄存器R0~R31就显得不足用;而51系列的通用寄存器多达128个(为AVR的4倍),编程时就不会有这种觉得。
AVR的I/O脚类似PIC,它也有用来掌握输入或输出的方向寄存器,在输出状态下,高电平输出的电流在10mA旁边,低电平吸入电流20mA。
这点虽不如PIC,但比51系列还是要精良的…

缺陷:

没有位操作,都因此字节形式来掌握和判断干系寄存器位。
C措辞与51的C措辞在写法上存在很大的差异,这让从开始学习51单片机的朋友很不习气。
通用寄存器一共32个(R0~R31),前16个寄存器(R0~R15)都不能直接与立即数打交道,因而通用性有所低落。
而在51系列中,它所有的通用寄存器(地址00~7FH)均可以直接与立即数打交道,显然要优于前者。
利用最多的器件:ATUC64L3U、ATxmega64A1U、AT90S8515STC单片机

说到STC单片机有人会说到,STC也能算主流,估计要被喷了~~我们基于它是海内还算是比较不错的单片机来说。

STC单片机是宏晶生产的单时钟/机器周期的单片机,说白了STC单片机是51与AVR的结合体,有人说AVR是51的替代单片机,但是AVR单片机在位掌握和C措辞写法上存在很大的差异。
而STC单片机洽洽结合了51和AVR的优点,虽然功能不及AVR那么强大,但是在AVR能找到的功能,在STC上基本都有,同时STC单片机是51内核,这给以51单片机为根本的工程师们供应了极大的方便,省去了学习AVR的韶光,同时也不失落AVR的各种功能…

STC单片机是高速、低功耗、超强抗滋扰的新一代8051单片机51单片机,指令代码完备兼容传统8051,但速率快8~12倍,内部集成MAX810专用复位电路。
4路PWM 、8路高速10位A、D转换,针对电机电机 的供应商掌握,强滋扰场合,成为继51单片机后一个全新系列单片机…

特性:

下载烧录程序用串口方便好用,随意马虎上手,拥有大量的学习资料及视频,最著名的要属于杜老师的那个视频了,好多对单片机有兴趣的朋友都是通过这个视频入门的,同时具有宽电压:5.5~3.8V,2.4~3.8V, 低功耗设计:空闲模式,掉电模式(可由外部中断唤醒)STC单片机具有在运用编程,调试起来比较方便;带有10位AD、内部EEPROM、可在1T/机器周期下事情,速率是传统51单片机的8~12倍,价格也较便宜STC12C2052AD系列为2通道,也可用来再实现4个定时器或4个外部中断,2个硬件16位定时器,兼容普通8051的定时器。
4路PCA还可再实现4个定时器,具有硬件看门狗、高速SPI通信端口、全双工异步串行口,兼容普通8051的串口,同时还具有前辈的指令集构造,兼容普通8051指令集。
PS:STC单片机功能虽不及AVR、STM32强大,价格也不及51和ST32便宜,但是这些并并不主要,主要的是这属于国产单片机比较出色的单片机,但愿国产单片性能一起长虹…利用最多的器件:STC12C2052ADFreescale单片机

紧张针对S08,S12这类单片机,当然Freescale单片机远非于此。
Freescale系列单片机采取哈佛构造和流水线指令构造,在许多领域内都表现出低本钱,高性能的的特点,它的体系构造为产品的开拓节省了大量韶光。
此外Freescale供应了多种集成模块和总线接口,可以在不同的系统中更灵巧的发挥浸染!Freescale单片机的特有的特点如下:

全系列:从低端到高端,从8位到32位全系列搜罗万象,其推出的8位/32位管脚兼容的QE128,可以从8位直接移植到32位,填补单片机业界8/32 位兼容架构中缺失落的一环多种系统时钟模块:三种模块,七种事情模式。
多种时钟源输入选项,不同的mcu具有不同的时钟产生机制,可以是RC振荡器,外部时钟或晶振,也可以是内部时钟,多数CPU同时具有上述三种模块!可以运行在FEI,FEE,FBI,FBILP,FBE,FBELP,STOP这七种事情模式多种通讯模块接口:Freescale单片机险些在内部集成各种通信接口模块:包括串行通信接口模块SCI,多主I2C总线模块,串行外围接口模块 SPI,MSCAN08掌握器模块,通用串行总线模块(USB/PS2)具有更多的可选模块:具有LCD驱动模块,带有温度传感器,具有超高频发送模块,含有同步处理器模块,含有同步处理器的MCU还具有屏幕显示模块OSD,还有少数的MCU具有响铃检测模块RING和双音多频/腔调发生器DMG模块可靠性高,抗滋扰性强,多种引脚数和封装选择低功耗、大概Freescale系列的单片机的功耗没有MSP430的低,但是他具有全静态的“等待”和“停滞”两种模式,从总体上降落您的功耗!新近推出的几款超低功耗已经与MSP430的不相上下!利用最多的器件:MC9S12G系列

如果真要在这些单片机等分个一二三等,那么如果你想跟随大众,无可厚非51单片机还是首选;如果你追求超高性价比,STM32将是你空想选择;如果你渴望超低功耗,MSP430肯定不会让你失落望;如果你想支持国产,STC会让你愉快…

已剪辑自: https://zhuanlan.zhihu.com/p/106985266

一、什么是DSP

DSP,Digital Signal Processor,也便是数字旗子暗记处理器。
这是一种具有分外构造的微处理器,因此数字旗子暗记来处理大量信息的微处理器。
将仿照旗子暗记转换成数字旗子暗记,用于专用途理器的高速实时处理。

DSP的事情事理:吸收外部输入的仿照旗子暗记,然后将其转换为数字旗子暗记(为0或1),再对数字旗子暗记进走运算处理,并在其他系统芯片中把数字数据解译回仿照数据或实际环境格式。

DSP芯片的内部采取程序和数据分开的哈佛构造,具有专门的硬件乘法器,广泛采取流水线操作,供应分外的DSP 指令,可以用来快速地实现各种数字旗子暗记处理算法。
它不仅具有可编程性,而且其实时运行速率可达每秒数以千万条繁芜指令程序,远远超过通用微处理器,是当前越来越热门、运用越来越广泛的微处理器芯片。

二、 DSP的发展

1.天下上第一个单片DSP芯片是1978年AMI公司宣告的S2811

2.1979年,美国Iintel公司发布的商用可编程期间2920是DSP芯片的一个紧张里程碑。

以上两种芯片内部都没有当代DSP芯片所必须的单周期芯片。

3.1980年,日本NEC公司推出的μPD7720,这是第一个具有乘法器的商用DSP 芯片。

4.1982年,日本Hitachi 公司推出浮点DSP芯片,是第一个采取CMOS工艺生产浮点DSP芯片。

5.1983年,日本的Fujitsu公司推出的MB8764,其指令周期为120ns ,且具有双内部总线,从而处理的吞吐量发生了一个大的飞跃。

6.1984年,AT&T公司推出的DSP32,是第一个高性能的浮点DSP芯片。

在这么多的DSP芯片种类中,最成功的是美国德克萨斯仪器公司(Texas Instruments,简称TI)的一系列产品。

TI是DSP领域的的老大。

TI公司1982年成功推出启迪一代DSP芯片TMS32010及其系列产品TMS32011、TMS32C10/C14/C15/C16/C17等,之后相继推出了:

第二代DSP芯片TMS32020、TMS320C25/C26/C28,

第三代DSP芯片TMS32C30/C31/C32,

第四代DSP芯片TMS32C40/C44,

第五代DSP芯片TMS32C50/C51/C52/C53以及集多个DSP于一体的高性能DSP芯片TMS32C80/C82等。

自1980年以来,DSP芯片得到迅猛发展:

1.从运算速率来看,MAC(一次乘法和一次加法)韶光已经从80年代初的400ns(如TMS32010)降落到40ns(如TMS32C40),处理能力提高了10多倍。
DSP芯片内部关键的乘法器部件从1980年的占模区的40旁边低落到5以下,片内RAM增加一个数量级以上。

2.从制造工艺来看,1980年采取4μ的N沟道MOS工艺,而现在则普遍采取亚微米CMOS工艺。

3.从封装工艺来看,DSP芯片的引脚数量从1980年的最多64个增加到现在的200个以上,引脚数量的增加,意味着构造灵巧性的增加。

此外,DSP芯片的发展,是DSP系统的本钱、体积、重量和功耗都有很大程度的低落。

三、DSP芯片的类型

\1. 根据根本特性

根据DSP芯片的事情时钟和指令类型来分类的。
如果DSP芯片在某时钟频率范围内的任何频率上能正常事情,除打算速率有变革外,没有性能的低落,这类DSP芯片一样平常称之为静态DSP芯片。
如果有两种或两种以上的DSP芯片,它们的指令集和相应的机器代码机管脚构造相互兼容,则这类DSP芯片称之为同等性的DSP芯片。

\2. 根据数据格式

数据以定点格式事情的DSP芯片称之为定点DSP芯片。
以浮点格式事情的称为浮点DSP芯片。
不同的浮点DSP芯片所采取的浮点格式不完备一样,有的DSP芯片采取自定义的浮点格式,有的DSP芯片则采取IEEE的标准浮点格式。

\3. 根据用场

可分为通用型DSP芯片和专用型的DSP芯片。
通用型DSP芯片适宜普通的DSP运用,如TI公司的一系列DSP芯片。
专用型DSP芯片市为特定的DSP运算而设计,更适宜分外的运算,如数字滤波,卷积和FFT等。

四、DSP芯片的基本构造

DSP芯片的基本构造包括:

(1)哈佛构造;

(2)流水线操作;

(3)专用的硬件乘法器;

(4)分外的DSP指令;

(5)快速的指令周期。

哈佛构造

哈佛构造的紧张特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编址,独立访问。
与两个存储器相对应的是系统中设置了程序总线和数据总线,从而使数据的吞吐率提高了一倍。
由于程序和存储器在两个分开的空间中,因此取指和实行能完备重叠。

流水线与哈佛构造干系,DSP芯片广泛采取流水线以减少指令实行的韶光,从而增强了处理器的处理能力。
处理器可以并行处理二到四条指令,每条指令处于流水线的不同阶段。

专用的硬件乘法器

乘法速率越快,DSP处理器的性能越高。
由于具有专用的运用乘法器,乘法可在一个指令周期内完成。

分外的DSP指令DSP芯片是采取分外的指令。

快速的指令周期哈佛构造、流水线操作、专用的硬件乘法器、分外的DSP指令再加上集成电路的优化设计可使DSP芯片的指令周期在200ns以下。

TMS320F28335 嵌入式DSP内部构造框图:

TMS320F28335 嵌入式DSP 来自网上 侵删

SEED-DEC28335紧张集成了150M系统时钟的DSP、64K x 16 位的片外SRAM、16 路片内12 位A/D、12 路PWM、2 路UART、1 路CAN、一起高速USB、片外4 通道12-位D/A 和串行EEPROM+RTC 实时时钟等外设。
这样使其能够运用在电机、电力等工业掌握领域。

五、如何选择DSP芯片

一样平常来说,我们选择DSP芯片时,须要考虑如下成分:

TI系列推举:

如果用于掌握,紧张是选择TMS320C2000系列;

如果用于通信,紧张是选择TMS320C5000系列;

如果用于图像处理,那就选择6000系列。

详细指标:

1.运算速率。
运算速率是芯片的一个最主要的性能指标,也是选择芯片时所须要考虑的一个紧张成分。
运算速率可以用以下几种性能指标来衡量:

(1) 指令周期。
便是实行一条指令所须要的韶光,常日以纳秒(ns)为单位。

(2) MAC韶光。
即一次乘法加上一次加法的韶光。

(3) FFT实行韶光。
即运行一个N点FFT程序所需的韶光。

(4) MIPS。
即每秒实行百万条指令。

(5) MOPS。
即每秒实行百万次操作。

(6) MFLOPS。
即每秒实行百万次浮点操作。

(7) BOPS。
即每秒实行十亿次操作。

2.价格。
根据实际运用,确定一个价格适中的芯片。

3.硬件资源。

4.运算速率。

5.开拓工具。

6.功耗。

其余还要考虑一些其它的成分,如封装的形式等等。

DSP运用系统的运算量是确定选用途理能力多大的DSP芯片的根本。
确定一个DSP系统的运算量以选择DSP芯片的方法:

1. 按样点处理

便是DSP算法对每一个输入样点循环一次。
比如:设计一个采取LMS算法的256抽头的自适应FIR滤波器,假定每个抽头的打算须要3个MAC周期,则256抽头打算须要2563=768个MAC周期。
如果采样频率为8KHz,即样点之间的间隔为125μs的韶光,DSP芯片的MAC周期为200μs,则768个周期须要153.6μs的韶光,显然无法实时处理,须要选用速率更快的芯片。

2. 按帧处理

有些数字旗子暗记处理算法不是每个输入样点循环一次,而是每隔一定的韶光间隔(常日称为帧)循环一次。
以是选择DSP芯片该当比较一帧内DSP芯片的处理能力和DSP算法的运算量。
假设DSP芯片的指令周期为P(ns),一帧的韶光为⊿τ(ns),则该DSP芯片在一帧内所供应的最大运算量为⊿τ/ P 条指令。

六、DSP系统

三大特色:强大数据处理能力、数字旗子暗记处理的实时性和高运行速率,最值得称道。
一样平常具有如下的一些紧张特点:

(1) 在一个指令周期内可完成一次乘法和一次加法。

(2) 程序和数据空间分开,可以同时访问指令和数据。

(3) 片内具有快速RAM,常日可通过独立的数据总线在两块中同时访问。

(4) 具有低开销或无开销循环及跳转的硬件支持。

(5) 快速的中断处理和硬件I/O支持。

(6) 具有在单周期内操作的多个硬件地址产生器。

(7) 可以并行实行多个操作。

(8) 支持流水线操作,使取指、译码和实行等操作可以重叠实行。

与通用微处理器比较,DSP芯片的其他通用功能相对较弱些。

数字旗子暗记处理系统因此数字旗子暗记处理为根本,因此具有数字处理的全部特点:

(1) 接口方便。
DSP系统与其它以当代数字技能为根本的系统或设备都是相互兼容,这样的系统接口以实现某种功能要比仿照系统与这些系统接口要随意马虎的多。

(2) 编程方便。
DSP系统种的可编程DSP芯片可使设计职员在开拓过程中灵巧方便地对软件进行修正和升级。

(3) 稳定性好。
DSP系统以数字处理为根本,受环境温度以及噪声的影响较小,可靠性高。

(4) 精度高。
16位数字系统可以达到的精度。

(5) 可重复性好。
仿照系统的性能受元器件参数性能变革比较大,而数字系统基本上不受影响,因此数字系统便于测试,调试和大规模生产。

(6) 集成方便。
DSP系统中的数字部件有高度的规范性,便于大规模集成。

目前广泛运用的是TMS320F28335芯片系列。

DSP芯片实例TMS320C542:

TMS320C542属于TI公司C5000系列。
C5000系列具有以下特点:

·改进的哈佛构造,包含一条程序总线,三条数据总线和四条地址总线

·高度并行的CPU和针对运用优化的硬件

·针对算法和高等措辞优化的指令集

·前辈的IC技能使其既高性能又低功耗。

C5000系列DSP微处理器内部构造功能框图,如图1所示。
包括:40bit算数逻辑单元(ALU);2个40bit累加器A和B;17×17bit乘加单元、40bitMAC ,可作64级FIR运算而不必考虑溢出;打算、选择、存储单元(CCSU),特殊适宜Viterbi等算法;40bit桶型移位寄存器;片上双存取RAM,每机器周期可存取两次;片上单存取RAM,可同时访问两块片上存储区;片上外围接口,包括串口、定时器、PLL、HPI接口等。

TMS320C542自身特点如下:

·25ns单周期定点指令实行韶光,5V供电

·10K Words16bit 片上双存取RAM

·64K Words程序,64K Words数据,64K Words I/O存储空间

·2K Words HPI接口,可通过此接口方便地与主设备进行信息交流,主设备也可通过此接口下载DSP程序

·一个自动缓冲的串口和一个TDM串口,且都可用作标准同步串口

此外,C5000系列DSP可利用JTAG接口进行调试,可完备掌握DSP上的所有资源,利用方便可靠。

学习辅导

一本非常好用的DSP教材:手把手教你学DSP。

这本书以TMS320X281x的开拓为主线,先容与DSP开拓干系的知识:DSP开拓环境的搭建、新工程的建立、CCS6.0的利用、CMD文件的编写、硬件电路的设计、存储器的映像、三级中断系统以及TMS320X281X各个外设模块的功能和利用。

每部分内容都有运用实例,并手把手地讲解例程的编写过程。
所有代码都标注有详细的中文注释,为读者快速熟习并节制DSP的开拓方法和技巧供应了方便。

基于CCS6.0,生活化措辞,浅近易懂,深入浅出,非常适宜新手学习。

出版社: 北京航空航天算夜学出版社 出版韶光:2019-02-01

第1章如何开始DSP的学习和开拓第2章TMS320X2812的构造、资源及性能第3章TMS320X281x的硬件设计第4章创建一个新工程第5章CCS的常用操作第6章利用C措辞操作DSP的寄存器第7章存储器的构造、映像及CMD文件的编写第8章X281x的时钟和系统掌握第9章通用输入/输出多路复用器GPIO第10章CPU定时器第11章X2812的中断系统第12章事宜管理器EV第13章模/数转换器ADC第14章串行通信接口SCI第15章串行外设接口SPI第16章增强型掌握器局域网通信接口eCAN第17章基于HDSPSuper2812的开拓实例

B站上 手把手教你学DSP视频教程DSP281X

参考^如有陵犯您的权柄,请联系作者删除。

已剪辑自: https://dongka.github.io/2018/11/17/cpu/arm%E4%BD%93%E7%B3%BB%E6%9E%B6%E6%9E%84%E7%9A%84%E5%8F%91%E5%B1%95/

ARM体系架构的发展

本文将从以下几点去展开先容arm体系架构的发展:

指令集架构arm公司的发展历史以及授权模式arm的体系架构arm公司的发展历史

arm的发展进程在此文章讲的非常详细,故不再赘述一文带你理解ARM的发展进程

arm授权模式

在传统PC领域,半导体有两种路子可以走,一种是Intel这种,从头到尾一条龙,架构和芯片设计,生产一律不靠任何人; 这样做须要极其雄厚,全方位的实力做保障,得有钱,有人,有技能,在半导体技能日益繁芜的本日,能这么做屈指可数;好处便是利润率比较高,想卖多少钱就多少;当然技能上得做到领先乃至于垄断的地位上风才比较明显;

其余一种则无工厂模式(Fabless),NVIDIA,AMD,这类企业都是自己设计芯片,制造交给代工厂,比如台积电,联电,GlobalFoundries,三星电子。
好处很明显,包袱轻,但是在半导体这种工艺在功耗与性能中扮演主要角色的行业,你设计出来的是否能设计出来,怎么设计出来,很大程度看代工厂的能耐;幸好这些代工厂也十分给力,不断的逼近物理极限;使得AMD最近也能逐步的遇上挤牙膏的Intel;

arm就不一样了,它不制造,不发卖芯片,只是自己设计IP,包括指令集,微处理器,GPU,总线,然后谁要的话就买arm的授权;授权模式分为此三种:

处理器授权

ARM设计好一颗CPU或者GPU,armv7架构对应的IP为Cortex-A5/A7/A9/A12/A15/A17这几个核心架构,对应armv8-A就有Cortext-A35/A53/A57/A72/A73;ARMv8.2A指令集:Cortext-A55/A75;然后授权卖给伙伴,买下它们后,只能按照图纸实现,能发挥的不多,如何实现就比较随便,如配置哪些模块,几个核心,多少缓存,多高频率,什么工艺,谁来代工等等;

如果想优化,但是技能有限,那么可以买arm的处理器优化包/物理IP包授权(POP)如果只是想更快速搞出产品,那么更干脆了,arm已经帮你制订好代工厂处理器类型和工艺了;代表商家有联发科,展讯,联芯,全志,瑞芯微,炬力等;这些设计公司得到的是软核或者这点硬核授权,通过购买的CPU核,与GPU核,以及通过一定的流程,集成出SOC;

购买处理器授权的实质上就大同小异了,可以做出差异化的只能在一些IP上做出差异化;

架构/指令授权

这种授权办法价格比较贵,为防止碎片化的情形涌现还有可能处于技能上的保护,arm禁止对指令集进行修正或者添加,但其他公司是否确切遵守了,这个就不得而知了;总之这种授权须要具有非常强的技能实力,也不过15家,如我们熟知的高通,苹果,三星,华为等公司;

除了版税,那些购买了arm IP授权的,还须要为每一个芯片支付版税;

在这里有些问题就该当提出来思考了,为什么都是arm的指令集,苹果的芯片却可以吊打现在的Android厂商的芯片呢?评价CPU性能指标在以下几个方面:

一:指令集宽度(ISSUE)6

二:乱序指令实行缓冲区(Recorder Buffer)(192)

三:内存加载延迟(Load Latency):4

四:分支预测缺点代价(Misprediction Penalty):16(一样平常介于14~19)

不得不说,苹果很早就开始布局CPU的设计之路,具有极强的芯片设计能力,在厂家都是基于arm的公版进行设计,苹果就已经通过购买arm指令集,然后进行自己的CPU设计,在14年的时候A7处理器,作为第一个ARM 64位CPU商用,而且将指令集宽度位6,作为比拟arm目前的指令集为3;由于封闭式的开拓,不像高通,须要考虑各个厂家的需求和本钱,苹果有更高的溢价能力,可以用面积去换取性能与功耗,并根据自己的系统去做定制化;

指令集架构(ISA)

CPU实行打算任务时都须要屈服一定的规范,程序在被实行时都须要先翻译成CPU可以理解的措辞。
这种规范便是指令集(ISA,Intruction Set Architecrure);

例如以下的机器码:1110 0001 1010 0000 0010 0000 0000 0001

比如有个CPU定位1110 0001便是ADD指令,1010 0000对应的是存储数据的寄存器R2;0010 0000对应的寄存器R0;0000 0001对应是寄存器R1,故意思可以是ADD R2 R0 R1,将R0,R1的值加起来放到R2;指令集便是定义一套约定俗成的CPU运行规则,对付编程职员,面对的汇编指令;而对付CPU来说,便是怎么去理解这段二进制码,不同的CPU对这段二进制代码不同,故就有了不同的指令集架构;

指令集一样平常分为两种:精简指令集(RISC:reduced instruction set computer)和繁芜指令集(CISC:Complex Instrution Set Computer),以洗衣机洗衣服为例,RISC架构为,加水->漂洗->风干;而繁芜指令集则可以发出洗衣服的指令,从而让洗衣机自动帮忙做这一整套的流程;CISC可以通过一条繁芜的指令来完成许多事情,性能在处理繁芜的任务时,会比RISC更为高效;但随之而来的是面积和功耗的提升;基于2/8理论,程序大部分韶光(80%)都是在做重复而大略的事情;以是RISC架构就应运而生,更为精简的指令,将任务更多的放在了编译器这块,通过繁芜的指令转化成大略指令的组合,在一定程度上增加了代码量,但使其大部分场合能比CISC取得更小的面积和功耗;

采取精简指令集的微处理,常见为ARM,MIPS,Power Architecture(包括PowerPC,PowerXCell),SPARC,RISC-V等而采取CISC则为X86和AMD

至于arm为代表RISC架构与以X86为代表的CISC之间的利害比较还有是否存在替代一说,笔者认为,不会,而且从目前的发展来看,已经涌现了你中有我,我中有你的局势;更进一步的磋商可以看下知乎上关于精简指令集与负杂指令集的谈论,我也很赞许个中一个答主的不雅观点,这已经不是个技能问题了,而是一个商业的问题

总结完RISC和CISC之间的关系,再讲讲基于RISC阵营里面的ARM和最近比较火热的RISC-V,arm大家都熟习,而RISC-V又是个什么东西呢?

RISC-V是加州大学伯克利分校的开源指令集,由打算机架构的宗师级任务David Patterson领衔打造,通过将核心指令集以及关键IP开源,意图改变半导体生态;详细的可以看这篇文档;名家专栏丨一文看懂RISC-V

总结如下:RISC-V具有以下优点:1.可模块化配置的指令集。
2.支持可扩展的指令集 3.一套指令集支持所有架构,基本指令集仅40余条指令,以此为共用根本,加上其他常用模块子集指令总指令集也仅几十条 4.硬件设计和编译器非常大略

笔者认为,RISC-V目前作为一个像linux看齐的硬件开源组织,linux之以是能康健长足发展,在于社区成千上万的内核爱好者的不断贡献,使得linux能够发达发展;而硬件则不同,在这动辄上百万的流片费的无数摆在硬件设计者面前的坎,是否会有公司或者团体乐意将自己用血与泪验证的IP,贡献到社区,如果没有做到这一点,即将面临由于厂家扩展指令不同的碎片化问题办理,还有RISC-V后面的长足发展,将付之空谈;这样RISC-V架构只能作为几个大厂找到的低廉的替代arm方案的选择,而无法真正做到普惠;

arm的体系架构

韶光 架构 紧张更新

1985

ARMv1

只有26位的寻值空间,没有用于商业产品

1986

ARMv2

首颗量产的ARM处理器,包括32位乘法指令和协处理器指令

1990

ARMv3

具有片上高速缓存,MMU和写缓冲,寻址空间增大到32位

1993

ARMv4

ARM7,ARM8,ARM9和Strong ARM采取这种架构。
增加了16 Thumb指令集

1998

ARMv5

ARM7(EJ),ARM9(E),ARM10(E)和Xscale采取这种了该架构,改进了ARM/Thumb状态之间的切换效率,此外还引入DSP指令和支持JAVA

2001

ARMv6

ARM11,强化了图形处理性能,通过追加有效进行多媒体处理的SIMD将语音及图像的处理功能大大提高。
此外ARM在这个系列中引入稠浊16位/32位的Thumb-2指令集

2004

ARMv7

Cortex-M3/4/7,Cortex-R4/5/6/7,Cortex-A8/9都是基于该架构,该架构包括NEON技能扩展,可将DSP和媒体处理吞吐量高达400%,并供应改进的浮点支持以知足下一代3D图形和游戏以及传统嵌入式掌握运用的须要

2007

ARMv6-M

专门为低本钱,高性能的设备而设计,Cortex-M0/1即采取该架构

2011

ARMv8

Cortex-A32/35/53/57/72/73采取此架构,第一款支持64位的处理器架构

ARM架组成长图:

[外链图片转存失落败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KLo8uaGM-1666278819947)(http://yoursite.com/2018/11/17/cpu/arm%E4%BD%93%E7%B3%BB%E6%9E%B6%E6%9E%84%E7%9A%84%E5%8F%91%E5%B1%95/arm_develop.png)]

arm体系的CPU事情模式:

1.用户模式(usr):正常的程序实行状态2.快速中断模式(fiq):用于支持高速数据传输或者通道处理3.中断模式(irq):用于普通中断处理4.管理模式(svc):操作系统利用的保护模式5.系统模式(sys):运行具有特权的操作系统的任务;6.数据访问终止模式(abt):数据或指令与预取终止时进入该模式7.未定义指令终止模式(und):未定义的指令实行时进入该模式;

linux如何从用户态进入内核态分为两种:主动式和被动式、

1.主动式:便是linux用户在(ARM在用户模式下)事情,通过发起用户态程序发起命令要求,ARM相应进入特权模式进而Linux切入内核态,便是系统调用;系统调用可被堪称一个内核与用户空间程序交互的接口;把用户进程的要求传达 给内核,待内核把要求处理完毕后再将处理结果送回给用户空间;系统调用的紧张用场:

一:掌握硬件-系统调用每每作为硬件资源和用户空间的抽象接口,比如读写文件用到的write/read调用

二:设置系统状态或读取内核数据;

2.被动式:便是Linux在用户态(ARM在用户模式)事情,没有主动发起要求,而被动地进入内核态,包括硬件中断和程序非常;

参考资料:

arm汇编根本教程

给开源架构泼泼冷水

ARMv8-a

ARM先容1:发展史ARM先容2:授权模式

ARMV8

从arm到三星,苹果是如何走向自研芯片的

一样是ARM架构,为何苹果处理器效能便是压下其他人浅析arm的非常,中断和arm事情模式的联系

如何零根本入门FPGA?这篇文章让你吃透!

已剪辑自: https://www.eet-china.com/mp/a124380.html

1. 看代码,建模型

只有在脑海中建立了一个个逻辑模型,理解FPGA内部逻辑构造实现的根本,才能明白为什么写Verilog和写C整体思路是不一样的,才能理解顺序实行措辞和并行实行措辞的设计方法上的差异。
在看到一段大略程序的时候该当想到是什么样的功能电路。

2. 用数学思维来简化设计逻辑

学习FPGA不仅逻辑思维很主要,好的数学思维也能让你的设计化繁为简,以是啊,那些瞥见高数就头疼的童鞋须要重视一下这门课哦。
举个大略的例子,比如有两个32bit的数据X[31:0]与Y[31:0]相乘。

当然,无论Altera还是Xilinx都有现成的乘法器IP核可以调用,这也是最大略的方法,但是两个32bit的乘法器将耗费大量的资源。
那么有没有节省资源,又不太繁芜的办法来实现呢?我们可以稍做修正:

将X[31:0]拆成两部分X1[15:0]和X2[15:0],令X1[15:0]=X[31:16],X2[15:0]=X[15:0],则X1左移16位后与X2相加可以得到X;同样将Y[31:0]拆成两部分Y1[15:0]和Y2[15:0],令 Y1[15:0]=Y[31:16],Y2[15:0]=Y[15:0],则Y1左移16位后与Y2相加可以得到Y,则X与Y的相乘可以转化为X1和X2 分别与Y1和Y2相乘,这样一个32bit32bit的乘法运算转换成了四个16bit16bit的乘法运算和三个32bit的加法运算。
转换后的占用资源将会减少很多,有兴趣的童鞋,不妨综合一下看看,看看两者差多少。

3. 时钟与触发器的关系

“时钟是时序电路的掌握者”这句话太经典了,可以说是FPGA设计的圣言。
FPGA的设计紧张因此时序电路为主,由于组合逻辑电路再怎么繁芜也变不出太多花样,理解起来也不没太多困难。

但是时序电路就不同了,它的所有动作都是在时钟一拍一拍的节奏下转变触发,可以说时钟便是全体电路的掌握者,掌握不好,电路功能就会混乱。

打个比方,时钟就相称于人体的心脏,它每一次的跳动便是触发一个 CLK,向身体的各个器官供血,坚持着机体的正常运作,每一个器官体统正常事情少不了组织细胞的构成,那么触发器就可以比作基本单元组织细胞。

时序逻辑电路的时钟是掌握时序逻辑电路状态转换的“发动机”,没有它时序逻辑电路就不能正常事情。

由于时序逻辑电路紧张是利用触发器存储电路的状态,而触发器状态变换须要时钟的上升或低落沿,由此可见时钟在时序电路中的核心浸染。

末了大略说一下体会吧,归结起来便是多实践、多思考、多问。
实践出真知,看100遍别人的方案不如自己去实践一下。
实践的动力一方面来自兴趣,一方面来自压力。
有需求会随意马虎形成压力,也便是说最好能在实际的项目开拓中磨炼,而不是为了学习而学习。

02

为什么你会以为FPGA难学?

不熟习FPGA的内部构造

FPGA为什么是可以编程的?

恐怕很多初学者不知道,他们也不想知道。

由于他们以为这是无关紧要的。
他们潜意识的认为可编程嘛,肯定便是像写软件一样啦。

软件编程的思想根深蒂固,看到Verilog或者VHDL就像看到C措辞或者其它软件编程措辞一样。
一条条的读,一条条的剖析。

谢绝去理解为什么FPGA是可以编程的,不去理解FPGA的内部构造,要想学会FPGA 恐怕是天方夜谭。

那么FPGA为什么是可以“编程”的呢?首先来理解一下什么叫“程”。

启迪 “程”只不过是一堆具有一定含义的01编码而已。

编程,实在便是编写这些01编码。
只不过我们现在有了很多开拓工具运算或者是其它操作。

以是软件是一条一条的,常日都不是直接编写这些01编码,而因此高等措辞的形式来编写,末了由开拓工具转换为这种01编码而已。

对付软件编程而言,处理器会有一个专门的译码电路逐条把这些01编码翻译为各种掌握旗子暗记,然后掌握其内部的电路完成一个个的读,由于软件的操作是一步一步完成的。

而FPGA的可编程,实质也是依赖这些01编码实现其功能的改变,但不同的是FPGA之以是可以完身分歧的功能,不是依赖像软件那样将01编码翻译出来再去掌握一个运算电路,FPGA里面没有这些东西。

FPGA内部紧张三块:可编程的逻辑单元、可编程的连线和可编程的IO模块。

其基本构造某种存储器(SRAM、 FLASH等)制成的4输入或6输入1输出地“真值表”加上一个D触发器构成。

任何一个4输入1输出组合逻辑电路,都有一张对应的“真值表”,同样的如果用这么一个存储器制成的4输入1输出地“真值表”,只须要修正其“真值表”内部值就可以等效出任意4输入1输出的组合逻辑,这些“真值表”内部值便是那些01编码。

如果要实现时序逻辑电路怎么办?任何的时序逻辑都可以转换为组合逻辑+D触发器来完成。
但这毕竟只实现了4输入1输出的逻辑电路而已,常日逻辑电路的规模那是相称的大。

3.1 可编程连线

那怎么办呢?这个时候就须要用到可编程连线了。
在这些连线上有很多用存储器掌握的链接点,通过改写对应存储器的值就可以确定哪些线是连上的而哪些线是断开的。
这就可以把很多可编程逻辑单元组合起来形成大型的逻辑电路。

3.2 可编程的IO

任何芯片都一定有输入引脚和输出引脚。
有可编程的IO可以任意的定义某个非专用引脚(FPGA中有专门的非用户可利用的测试、下载用引脚)为输入还是输出,还可以对IO的电平标准进行设置。

总归一句话,FPGA之以是可编程是由于可以通过分外的01代码制作成一张张 “真值表”,并将这些“真值表”组合起来以实现大规模的逻辑功能。

不理解FPGA内部构造,就不能明白终极代码如何变到FPGA里面去的,也就无法深入的理解如何能够充分利用FPGA。
现在的FPGA,不单单是有前面讲的那三块,还有很多专用的硬件功能单元,如何利用好这些单元实现繁芜的逻辑电路设计,是从菜鸟迈向高手的路上必须要战胜的障碍。
而这统统,还是必须先从理解FPGA内部逻辑及其事情事理做起。

3.3 缺点理解HDL措辞,怎么看都看不出硬件构造

HDL措辞的英语全称是:Hardware Deion Language,把稳这个单词Deion,而不是Design。
老外为什么要用Deion这个词而不是Design呢?由于HDL确实不是用用来设计硬件的,而仅仅是用来描述硬件的。

描述这个词精确地反响了HDL措辞的实质,HDL措辞不过是已知硬件电路的文本表现形式而已,只是将往后的电路用文本的形式描述出来而已。
而在编写措辞之前,硬件电路该当已经被设计出来了。
措辞只不过是将这种设计转化为笔墨表达形式而已。

硬件设计也是有不同的抽象层次,每一个层次都须要设计。
最高的抽象层次为算法级、然后依次是体系构造级、寄存器传输级、门级、物理版图级。

利用HDL的好处在于我们已经设计好了一个寄存器传输级的电路,那么用HDL描述往后转化为文本的形式,剩下的向更低层次的转换就可以让EDA工具去做了,这就大大的降落了事情量。
这便是可综合的观点,也便是说在对这一抽象层次上硬件单元进行描述可以被EDA工具理解并转化为底层的门级电路或其他构造的电路。

在FPGA设计中,便是在将这以抽象层级的见地描述成HDL措辞,就可以通过FPGA开拓软件转化为上一点中所述的FPGA内部逻辑功能实现形式。

HDL也可以描述更高的抽象层级如算法级或者是体系构造级,但目前受限于EDA软件的发展,EDA软件还无法理解这么高的抽象层次,以是HDL描述这样抽象层级是无法被转化为较低的抽象层级的,这也便是所谓的不可综合。

以是在阅读或编写HDL措辞,尤其是可综合的HDL,不应该看到的是措辞本身,而是要看到措辞背后所对应的硬件电路构造。

3.4 FPGA本身不算什么,统统皆在FPGA之外

FPGA是给谁用的?很多学校是为给学微电子专业或者集成电路设计专业的学生用的,实在这不过是很多学校受资金限定,买不起专业的集成电路设计工具而用FPGA工具替代而已。
实在FPGA是给设计电子系统的工程师利用的。

这些工程师常日是利用已有的芯片搭配在一起完成一个电子设备,如基站、机顶盒、视频监控设备等。
当现有芯片无法知足系统的需求时,就须要用FPGA来快速的定义一个能用的芯片。

前面说了,FPGA里面无法便是一些“真值表”、触发器、各种连线以及一些硬件资源,电子系统工程师利用FPGA进行设计时无非便是考虑如何将这些往后资源组合起来实现一定的逻辑功能而已,而不必像IC设计工程师那样一贯要关注到末了芯片是不是能够被制造出来。

实质上和利用现有芯片组合身分歧的电子系统没有差异,只是须要关注更底层的资源而已。

要想把FPGA用起来还是大略的,由于无非便是那些资源,在理解了前面两点再搞个实验板,跑跑实验,做点大略的东西是可以的。

而真正要把FPGA用好,那光懂点FPGA知识就远远不足了。
由于终极要让FPGA里面的资源如何组合,实现何种功能才能知足系统的须要,那就须要懂得更多更广泛的知识。

3.5 数字逻辑知识是根本

无论是FPGA的哪个方向,都离不开数字逻辑知识的支撑。
FPGA说白了是一种实现数字逻辑的办法而已。
如果连最基本的数字逻辑的知识都有问题,学习FPGA的欲望只是空中楼阁而已。
数字逻辑是任何电子电气类专业的专业根本知识,也是必须要学好的一门课。

如果不能将数字逻辑知识烂熟于心,养成良好的设计习气,学FPGA到末了仍旧是雾里看花水中望月,始终是一场空的。

以上几条只是我目前总结菜鸟们在学习FPGA时所最随意马虎跑偏的地方,FPGA的学习实在就像学习围棋一样,学会如何在棋盘上落子很随意马虎,成为一位高手却是难上加难。
要真成为李昌镐那样的神一样平常的选手,除了靠刻苦专研,恐怕还确实得要一点天赋。

4.1 入门首先要节制HDL(HDL=verilog+VHDL)

第一句话是:还没学数电的先学数电。
然后你可以选择verilog或者VHDL,有C措辞根本的,建议选择VHDL。
由于verilog太像C了,很随意马虎稠浊,末了你会创造,你花了大量韶光去区分这两种措辞,而不是在学习如何利用它。
当然,你思维能转得过来,也可以选verilog,毕竟在海内verilog用得比较多。

接下来,首先找本实例抄代码。

抄代码的意义在于熟习语法规则和编译器(这里的编译器是硅编译器又叫综合器,常用的编译器有:

Quartus、ISE、Vivado、Design Compiler 、Synopsys的VCS、iverilog、Lattice的Diamond、Microsemi/Actel的Libero、Synplify pro),然后再模拟着写,末了不看书也能写出来。

编译完代码,就打开RTL图,看一下综合出来是什么样的电路。

HDL是硬件描述措辞,突出硬件这一特点,以是要用数电的思维去思考HDL,而不是用C措辞或者其它高等措辞,如果不能理解这句话的,可以看《什么是硬件以及什么是软件》。

在这一阶段,推举的教材是《Verilog传奇》、《Verilog HDL高等数字设计》或者是《用于逻辑综合的VHDL》。
不看书也能写出个三段式状态机就可以进入下一阶段了。

此外,你手上必须准备Verilog或者VHDL的官方文档,《verilog_IEEE官方标准手册-2005_IEEE_P1364》、《IEEE Standard VHDL Language_2008》,以便碰着一些语法问题的时候能查一下。

4.2 独立完成中小规模的数字电路设计

现在,你可以设计一些数字电路了,像交通灯、电子琴、DDS等等,推举的教材是夏老《Verilog 数字系统设计教程》(第三版)。
在这一阶段,你要做到的是:给你一个指标哀求或者时序图,你能用HDL设计电路去实现它。
这里你须要一块开拓板,可以选Altera的cyclone IV系列,或者Xilinx的Spantan 6。

还没节制HDL之前千万不要买开拓板,由于你买回来也没用。
这里你没必要每次编译通过就下载代码,咱们用modelsim仿真(此外还有QuestaSim、NC verilog、Diamond的Active-HDL、VCS、Debussy/Verdi等仿真工具),如果仿真都不能通过那就不用下载了,肯定弗成的。

在这里先节制大略的testbench就可以了。
推举的教材是《WRITING TESTBENCHES Functional Verification of HDL Models》。

4.3 节制设计方法和设计原则

你可能创造你综合出来的电路只管没错,但有很多警告。
这个时候,你得学会同步设计原则、优化电路,是速率优先还是面积优先,时钟树该当若何设计,若何同步两个异频时钟等等。

推举的教材是《FPGA威信指南》、《IP核芯志-数字逻辑设计思想》、《Altera FPGA/CPLD设计》第二版的根本篇和高等篇两本。
学会加快编译速率(增量式编译、LogicLock),静态时序剖析(timequest),嵌入式逻辑剖析仪(signaltap)就算是通关了。
如果有不懂的地方可以暂时跳过,由于这部分还须要足量的实践,才能有较深刻的理解。

4.4 学会提高开拓效率

由于Quartus和ISE的编辑器功能太弱,影响了开拓效率。
以是建议利用Sublime text编辑器中代码片段的功能,以减少重复性劳动。
Modelsim也是常用的仿真工具,学会TCL/TK以编写适宜自己的DO文件,使得仿真变得自动化,推举的教材是《TCL/TK入门经典》。

你可能会手动备份代码,但是专业人士都是用版本掌握器的,以是,为了提高事情效率,必须节制GIT。

文件比较器Beyond Compare也是个比较常用的工具。
此外,你也可以利用System Verilog来替代testbench,这样效率会更高一些。
如果你是做IC验证的,就必须节制System Verilog和验证方法学(UVM)。
推举的教材是《Writing Testbenches using SystemVerilog》、《The UVM Primer》、《System Verilog1800-2012语法手册》。

节制了TCL/TK之后,可以学习虚拟Jtag(ISE也有类似的工具)制作属于自己的调试工具,此外,有韶光的话,最好再学个python。
脚本,意味着一劳永逸。

4.5 增强理论根本

这个时候,你已经会利用FPGA了,但是还有很多事情做不了(比如,FIR滤波器、PID算法、OFDM等),由于理论没学好。
我大概地分几个方向供大家参考,后面跟的是要节制的理论课。

旗子暗记处理 —— 旗子暗记与系统、数字旗子暗记处理、数字图像处理、当代数字旗子暗记处理、盲旗子暗记处理、自适应滤波器事理、雷达旗子暗记处理接口运用 —— 如:UART、SPI、IIC、USB、CAN、PCIE、Rapid IO、DDR、TCP/IP、SPI4.2(10G以太网接口)、SATA、光纤、DisplayPort无线通信 —— 旗子暗记与系统、数字旗子暗记处理、通信事理、移动通信根本、随机过程、信息论与编码CPU设计 —— 打算机组成事理、单片机、打算机体系构造、编译事理仪器仪表 —— 仿照电子技能、高频电子线路、电子丈量技能、智能仪器事理及运用掌握系统 —— 自动掌握事理、当代掌握理论、过程掌握工程、模糊掌握器理论与运用压缩、编码、加密 —— 数论、抽象代数、当代编码技能、信息论与编码、数据压缩导论、运用密码学、音频信息处理技能、数字视频编码技能事理

现在你创造,原来FPGA会涉及到那么多知识,你可以选一个感兴趣的方向,但是事情中很有可能用到个中几个方向的知识,以是理论还是学得越多越好。
如果你要更上一层,数学和英语是不可避免的。

4.6 学会利用MATLAB仿真

设计FPGA算法的时候,多多少少都会用到MATLAB,比如CRC的系数矩阵、数字滤波器系数、各种表格和文本处理等。

此外,MATLAB还能用于调试HDL(用MATLAB的打算结果跟用HDL算出来的一步步对照,可以知道哪里出问题)。
推举的教材是《MATLAB宝典》和杜勇的《数字滤波器的MATLAB与FPGA实现》。

4.7 图像处理

Photoshop

花一、两周的韶光学习PS,对图像处理有个大概的理解,知道各种图片格式、直方图、色相、通道、滤镜、拼接等基本观点,并能利用它。
这部分是0根本,目的让大家对图像处理有个感性的认识,而不是一上来就各种各样的公式推导。
推举《Photoshop CS6完备自学教程》。

基于MATLAB或OpenCV的图像处理

有C/C++根本的可以学习OpenCV,否则的话,建议学MATLAB。
这个阶段下,只要学会大略的调用函数即可,暂时不用穷究实现的细节。
推举《数字图像处理matlab版》、《学习OpenCV》。

图像处理的根本理论

这部分的理论是须要高数、复变、线性代数、旗子暗记与系统、数字旗子暗记处理等根本,根本不好的话,建议先补补根本再来。
看不懂的理论也可以暂时先放下,或许学到后面就自然而然地开窍了。
推举《数字图像处理》。

基于FPGA的图像处理

把前面学到的理论利用到FPGA上面,如果这时你有前面第七个阶段的水平,你将轻松地独立完成图像算法设计(图像处理是离不开接口的,上面第五个阶段有讲)。
推举《基于FPGA的嵌入式图像处理系统设计》、《基于FPGA的数字图像处理事理及运用》。

进一步研讨数学。
要在算法上更上一层,一定须要更多的数学,以是这里建议学习实剖析、泛涵剖析、小波剖析等。

5.1 为什么不推举学习MicroBlaze等软核?

性价比不高,一样平常的软核性能大概跟Cortex M3或M4差不多,用FPGA那么贵的东西去做一个性能一样平常的CPU,在工程上是非常不划算的。
不如其余加一块M3。

加上软核,可能会影响到其它的逻辑的功能。
这是在资源并不十分充足的情形下,再加上软核,导致布局布线变得相称困难。
软核不开源,涌现Bug的时候,不随意马虎调试。
工程上很少利用,极有可能派不上用场。

5.2 为什么不推举0根本学习ZYNQ或SOC?

入门该当学习只管即便大略的东西,要么专心学习ARM,要么专心学习FPGA。
这样更随意马虎有造诣感,增强信心。

ZYNQ和SOC的运用领域并不广,还有很多人没听过这种东西,导致求职的不利。
开拓工具编译韶光长,摧残浪费蹂躏较多韶光。
绝大多数事情,都只是卖力一方面,也便是说另一方面,很有可能派不上用场。

5.3 为什么已经存在那么多IP核,仍需写HDL?

问这种问题的,一样平常是学生,他们没有做过产品,没有碰着过工程上的问题。
IP核并非万能,不能知足所有需求。
只管即便少用闭源IP核,一旦出问题,这种黑匣子很可能让产品难产。

深入理解底一层次,可以更好地利用高一层次。
该法则可以适用于所有编程措辞。

-END-

相关文章

游戏新体验——罗技G502 Hero_鼠标_罗技

从G402第一回跟罗技打交道,中间利用的感想熏染挺多,鼠标很舒畅,浏览网页、玩游戏都有着不错的体验。以是入手了这款G502 HER...

智能 2025-01-16 阅读0 评论0

压力设备EAC认证危险类别分类_工作_情况

产品上有EAC标志,也意味着它符合干系法规哀求,匆匆使联盟国之间的贸易更随意马虎,可以打开干系国家的市场,避免货色在海关耽误或者被...

智能 2025-01-16 阅读0 评论0

车用IGBT模块_模块_工作

这是一种复合全控型电压驱动式功率半导体器件,具有输入阻抗大、驱动功率小、开关速率快、事情频率高、饱和压降落、安全事情区大和可耐...

智能 2025-01-16 阅读0 评论0