ALtera DE2开发板学习04
FPGA则应该理解为可用电脑编辑的数字逻辑电路集成芯片,其实是在描绘一个数字逻辑电路。
关于两者的区别在于以下:
1、速度上(两者最大的差别)
因为FPGA是硬件电路,运行速度则取决于晶振速度,系统比较稳定,特别适合高速接口电路。
而单片机是单线程,所以,程序语句需要等待单片机周期后才能执行起来。
2、入门难易程度相比有差距
单片机相比于FPGA,会简单些,同样地,价格也会低一些。如果要做PID算法控制的用单片机就可以,STM32F4系列已经到300M+跑PID完全足够;如果是跑嵌入式的话,就可以上ARM芯片。
fpga是硬件实现逻辑,就是给你一堆与或非门,通过编写程序,让这一堆与或非门组合实现逻辑功能,而单片机,是内部已经被人写好了寄存器,与或非门,外部通过汇编语言转换成机器语言,即二进制码,让数据选择器决定数据进行什么样的运算,通过堆栈与物理地址决定数据位置,进行综合运算,求得输出值~换句话说,FPGA在层次上也相对更加底层~~
FPGA(现场可编程门阵列)主要是用于VLSI(超大规模集成电路)设计的,主要是数字系统,是一些逻辑电路的模块,通过可编程的布线网络来连接这些逻辑模块(可对硬件进行排列组合),从而实现不同的逻辑功能。
MCU(单片机)是一个微型的计算机,它的硬件电路是不能动的,主要是通过软件来描述指令在硬件电路上的执行步骤,从而实现功能。主要应用在处理事件上,比如外部有个中断信号,MCU检测到后,软件就指挥硬件进行某种处理。
FPGA偏向于快速逻辑。
MCU偏向于过程控制。
FPGA是空白的芯片,编程后可以实现各种各样的数字电路(功能与性能均可以远超单片机);单片机是成品数字电路芯片,功能固定,性能有限。
单片机是基于CPU的冯·诺依曼器件,FPGA是基于并行逻辑单元的器件。
1:架构上面,FPGA一般由DCM、IOB、CLB等组成,现在的FPGA还包含各种IPCORE。MCU要么是冯诺伊曼结构要么是哈佛结构,从结构上来说差异巨大。
2. 应用上,差别更大。MCU最终所有的指令在一个MCU中都是顺序执行的,而FPGA由于是逻辑单元,很容易做到并行执行。
来源:网络整理• 2018-04-18 09:51 • 169462次阅读
2
fpga简介
FPGA(Field-ProgrammableGateArray),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
fpga工作原理
FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个概念,内部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输出输入模块IOB(InputOutputBlock)和内部连线(Interconnect)三个部分。
fpga特点
1)采用FPGA设计ASIC电路(专用集成电路),用户不需要投片生产,就能得到合用的芯片。
2)FPGA可做其它全定制或半定制ASIC电路的中试样片。
3)FPGA内部有丰富的触发器和I/O引脚。
4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。
5)FPGA采用高速CMOS工艺,功耗低,可以与CMOS、TTL电平兼容。
单片机简介
单片机,全称为单片微型计算机(Single-ChipMicrocomputer),又称微控制器(Microcontroller),是把中央处理器、存储器、定时/计数器(Timer/Counter)、各种输入输出接口等都集成在一块集成电路芯片上的微型计算机。它的最大优点是体积小,可放在仪表内部,但存储量小,输入输出接口简单,功能较低。由于其发展非常迅速,旧的单片机的定义已不能满足,所以在很多应用场合被称为范围更广的微控制器。
单片机工作原理
单片机自动完成赋予它的任务的过程,也就是单片机执行程序的过程,即一条条执行的指令的过程,所谓指令就是把要求单片机执行的各种操作用的命令的形式写下来,这是在设计人员赋予它的指令系统所决定的,一条指令对应着一种基本操作;单片机所能执行的全部指令,就是该单片机的指令系统,不同种类的单片机,其指令系统亦不同。
为使单片机能自动完成某一特定任务,必须把要解决的问题编成一系列指令(这些指令必须是选定单片机能识别和执行的指令),这一系列指令的集合就成为程序,程序需要预先存放在具有存储功能的部件——存储器中。存储器由许多存储单元(最小的存储单位)组成,就像大楼房有许多房间组成一样,指令就存放在这些单元里,单元里的指令取出并执行就像大楼房的每个房间的被分配到了唯一一个房间号一样,每一个存储单元也必须被分配到唯一的地址号,该地址号称为存储单元的地址,这样只要知道了存储单元的地址,就可以找到这个存储单元,其中存储的指令就可以被取出,然后再被执行。
程序通常是顺序执行的,所以程序中的指令也是一条条顺序存放的,单片机在执行程序时要能把这些指令一条条取出并加以执行,必须有一个部件能追踪指令所在的地址,这一部件就是程序计数器PC(包含在CPU中),在开始执行程序时,给PC赋以程序中第一条指令所在的地址,然后取得每一条要执行的命令,PC在中的内容就会自动增加,增加量由本条指令长度决定,可能是1、2或3,以指向下一条指令的起始地址,保证指令顺序执行。
单片机特点
(1)体积小、结构简单、可靠性高
(2)控制能力强
(3)低电压、低功耗
(4)优异的性能/价格比
fpga和单片机的区别
1、结构上的区别
单片机是一种微处理器,类似于电脑CPU的,它一般采用的是哈佛总线结构,或者冯诺依曼结构,对单片机的编程很大程度上要考虑到它的结构和各个寄存器的作用,单片机用途比较广,一般用在控制流水线上,还有日常你看得到的东西上!
FPGA它的结构是查找表结构,其程序不用去太考虑芯片的结构,要注意的是时序上问题,它的结构比较复杂,功能也很强大,一般应用在通信领域等比较高端的场合,目前在国内FPGA还算是一个新兴的行业,当然它的价格也要比单片机贵得多!
单片机是一个微控制器,通过加载模块软件来实现某种功能,单片机是成型的芯片;FPGA是用来设计芯片的芯片。
2、速度上的区别
FPGA由于是硬件电路,运行速度直接取决于晶振速度,系统稳定,特别适合高速接口电路。单片机由于是单线程,哪怕是常用的M3系列流水线也是单线程执行,程序语句需要等待单片机周期才能执行。
3、本质区别
FPGA和单片机的区别,本质上是软件和硬件的区别,FPGA更偏向于硬件电路,而单片机更偏于软件。
单片机设计属软件范畴;它的硬件(单片机芯片)是固定的,通过软件编程语言描述软件指令在硬件芯片上的执行;
FPGA设计属硬件范畴,它的硬件(FPGA)是可编程的,是一个通过硬件描述语言在FPGA芯片上自定义集成电路的过程;
4、应用上的区别
应用上,差别更大。MCU最终所有的指令在一个MCU中都是顺序执行的,而FPGA由于是逻辑单元,很容易做到并行执行。
5、入门难易程度
单片机比FPGA简单些,价格也低一些。要做PID算法控制的用单片机可以,STM32F4系列已经到300M+跑PID完全足够,如果是跑嵌入式的话可以上ARM芯片。涉及通信、图像等高速部分可以采用单FPGA模块。
二者最大的区别:单片机(无论哈佛总线结构或者冯诺依曼结构)均为取出指令->执行,指令是顺序执行的(即使是中断,其发生后的中断服务程序也是顺序执行的);而FPGA(包括CPLD)是基于逻辑门和触发器的,它是并行执行方式,即当CLOCK上升沿到来时,所有的触发器都会动作,它没有取出指令->执行这种操作,数字电路中所有逻辑门和触发器(D,SR等)均可以实现,它适合真正意义上的并行任务处理。
嵌入式简介:
首先,“嵌入式”这是个概念,准确的定义没有,各个书上都有各自的定义。但是主要思想是一样的,就是相比较PC机这种通用系统来说,嵌入式系统是个专用系统,结构精简,在硬件和软件上都只保留需要的部分,而将不需要的部分裁去(可裁剪)。所以嵌入式系统一般都具有便携、低功耗、性能单一等特性。
然后,MCU、DSP、FPGA这些都属于嵌入式系统的范畴,是为了实现某一目的而使用的工具。
MCU : 俗称”单片机“经过这么多年的发展,早已不单单只有普林斯顿结构的51了,性能也已得到了很大的提升。因为MCU必须顺序执行程序,所以适于做控制,较多地应用于工业。而ARM本是一家专门设计MCU的公司,由于技术先进加上策略得当,这两年单片机市场份额占有率巨大。ARM的单片机有很多种类,从低端M0(小家电)到高端A8、A9(手机、平板电脑)都很吃香,所以也不是ARM的单片机一定要上系统,关键看应用场合。
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 设计验证的技术主流。
所以要通过学习成为硬件工程师,要从单片机开始,然后学习ARM和DSP之类。
市面上七大主流单片机的详细介绍
单片机现在可谓是铺天盖地,种类繁多,让开发者们应接不暇,发展也是相当的迅速,从上世纪80年代,由当时的4位8位发展到现在的各种高速单片机。
各个厂商们也在速度、内存、功能上此起彼伏,参差不齐~~同时涌现出一大批拥有代表性单片机的厂商:Atmel、TI、ST、MicroChip、ARM…国内的宏晶STC单片机也是可圈可点…
下面为大家带来51、MSP430、TMS、STM32、PIC、AVR、STC单片机之间的优缺点比较及功能体现……
51单片机
51单片机之所以成为经典,成为易上手的单片机主要有以下特点:
- 从内部的硬件到软件有一套完整的按位操作系统,称作位处理器,处理对象不是字或字节而是位。不但能对片内某些特殊功能寄存器的某位进行处理,如传送、置位、清零、测试等,还能进行位的逻辑运算,其功能十分完备,使用起来得心应手。
- 同时在片内RAM区间还特别开辟了一个双重功能的地址区间,使用极为灵活,这一功能无疑给使用者提供了极大的方便,
- 乘法和除法指令,这给编程也带来了便利。很多的八位单片机都不具备乘法功能,作乘法时还得编上一段子程序调用,十分不便。
- AD、EEPROM等功能需要靠扩展,增加了硬件和软件负担
- 虽然I/O脚使用简单,但高电平时无输出能力,这也是51系列单片机的最大软肋
- 运行速度过慢,特别是双数据指针,如能改进能给编程带来很大的便利
- 51保护能力很差,很容易烧坏芯片
MSP430单片机
- 强大的处理能力,采用了精简指令集(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单片机
STM32单片机
- 内核:ARM32位Cortex-M3CPU,最高工作频率72MHz,1.25DMIPS/MHz,单周期乘法和硬件除法。
- 存储器:片上集成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系列单片机的I/O口是双向的,其输出电路为CMOS互补推挽输出电路。I/O脚增加了用于设置输入或输出状态的方向寄存器,从而解决了51系列I/O脚为高电平时同为输入和输出的状态。
- 当置位1时为输入状态,且不管该脚呈高电平或低电平,对外均呈高阻状态;置位0时为输出状态,不管该脚为何种电平,均呈低阻状态,有相当的驱动能力,低电平吸入电流达25mA,高电平输出电流可达20mA。相对于51系列而言,这是一个很大的优点。
- 它可以直接驱动数码管显示且外电路简单。它的A/D为10位,能满足精度要求。具有在线调试及编程(ISP)功能。
AVR单片机
- 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、AT90S8515
STC单片机
- 下载烧录程序用串口方便好用,容易上手,拥有大量的学习资料及视频,最著名的要属于杜老师的那个视频了,好多对单片机有兴趣的朋友都是通过这个视频入门的,同时具有宽电压:5.5~3.8V,2.4~3.8V,
低功耗设计:空闲模式,掉电模式(可由外部中断唤醒)。 - STC单片机具有在应用编程,调试起来比较方便;带有10位AD、内部EEPROM、可在1T/机器周期下工作,速度是传统51单片机的8~12倍,价格也较便宜。
- 4通道捕获/比较单元,STC12C2052AD系列为2通道,也可用来再实现4个定时器或4个外部中断,2个硬件16位定时器,兼容普通8051的定时器。4路PCA还可再实现4个定时器,具有硬件看门狗、高速SPI通信端口、全双工异步串行口,兼容普通8051的串口,同时还具有先进的指令集结构,兼容普通8051指令集。
PS:STC单片机功能虽不及AVR、STM32强大,价格也不及51和ST32便宜,但是这些并并不重要,重要的是这属于国产单片机比较出色的单片机,但愿国产单片机能一路长虹…
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的不相上下。
ALtera DE2开发板学习04相关推荐
- ALtera DE2开发板学习03
在串行通讯时,要求通讯双方都采用一个标准接口,RS232的作用就是使不同的设备可以方便地连接起来进行通讯. RS-232接口 符合美国电子工业联盟(EIA)制定的串行数据通信的接口标准,原始编号全称是 ...
- ALtera DE2开发板学习
由于ROM具有断电后信息不丢失的特性,因而可用于计算机启动用的BIOS芯片.EPROM.EEPROM和Flash ROM(NOR Flash 和 NAND Flash),性能同ROM,但可改写,一般读 ...
- ALtera DE2开发板学习01
altera usb_blaster是Altera公司的CPLD下载线. Altera公司的CPLD或FPGA的下载线或Nios II 的下载或仿真线. 支持二种下载模式(AS和JTAG) 下载FPG ...
- 海思SD3403开发板学习(二)
海思SD3403开发板学习系列:二 配置基础环境 文章目录 海思SD3403开发板学习系列:二 配置基础环境 前言 一.交叉编译工具安装 1. 工具链名 1. 安装 二.NFS挂载 1.安装NFS 2 ...
- 海思SD3403开发板学习(三)
海思SD3403开发板学习系列:三 CANN和MindStudio安装 文章目录 海思SD3403开发板学习系列:三 CANN和MindStudio安装 前言 一.CANN安装 1.安装依赖项 2.C ...
- ITOP4412开发板学习前的准备--开发环境搭建
前些天买到了迅为公司的ITOP4412精英版的开发板,到货大概也有三四天了,硬件零基础-需要好好研究一下.以后就把一些学习中遇到的问题以及学习心得等记录下来,提醒自己注意和规避一些问题,也希望可以帮助 ...
- 用stm32开发时是直接买现成的开发板还是芯片?开发板学习,芯片硬件设计
视情况而言,买开发板用于评估和学习,然后买芯片做硬件设计 开发板 开发板上手即可使用,并附带很多模块. 拿到开发板后即可直接根据开发板提供的原理图进行程序编写,学习. 优点:简单快捷,上手快,拿到手就 ...
- 【STM32 .Net MF开发板学习-02】GPIO测试
前段时间我借用市面上现成的Corex-M3开发板,打造了最低价的.Net Micro Framework开发板(参见<免费发放firmwave,打造史上最低价.Net MF开发板>),在此 ...
- 阿里云HaaS100物联网开发板学习笔记(六)做个智能灯---一个完整的开发例子
摘要:本篇文章将前期几个专题综合起来,基于阿里云HaaS100的新固件设计制作一个智能灯.这个智能灯由云平台.手机APP端和设备端组成,基本上涵盖了一个物联网小项目所需的主要步骤. 目录 1.在阿里云 ...
- 阿里云HaaS100物联网开发板学习笔记(二)硬件控制初步--让小灯闪烁起来
摘要:无论是哪种开发板,要想开发特定的功能,必先从GPIO开始,HaaS100开发也是一样.如果仅仅利用HaaS100的联网功能,那简直是太浪费了.HaaS100拥有其他开发板所具备的所有的功能,比如 ...
最新文章
- mysql 不让读的锁_MySQL实战45讲阅读笔记-锁
- ICLR2020 NLP优秀论文分享(附源码)
- 利用BeanUtils在对象间复制属性
- 活动 | 优步首席产品官Jeff Holden携手百度总裁张亚勤,告诉你Uber高速增长的秘密...
- 阻塞非阻塞和同步异步
- 《软件工程》 教 学 大 纲
- 支持分布式数据库同步操作的一个设计点:主键问题
- python在路径里添加变量_想学Python?那就先从头开始吧!
- 在Eclipse中查看JDK类库的源代码
- Qt5制作icon图标文件和发布程序简易介绍
- Linux tcpdump
- spark TF-IDF入门
- c语言中mylist是什么参数,数据结构题集(C语言版)算法设计题解析-第二章
- 汽车VIN码超详细解析规则
- 追赶法源程序c语言,追赶法求三对角线方程组程序设计.doc
- linux ipk,openwrt下ipk生成过程及原理
- 大一上:计算机导论复习(每章分值、常考题型以及部分章节课后习题答案【网上没有,老师自己做的】)
- word 的使用 —— 快捷键(分节符 分页符 分栏符)
- AIX虚拟内存管理机制(转)
- Backtrader:用feather格式股票数据代替tushare进行数据回测