设计与开发

深入浅出AVR单片机 单片机,DSP,ARM,FPGA区别

小编 2024-10-05 设计与开发 23 0

单片机、DSP、ARM、FPGA区别

概述

首先,“嵌入式”这是个概念,准确的定义没有,各个书上都有各自的定义。但是主要思想是一样的,就是相比较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 设计验证的技术主流。嵌入式 是相对于台式电脑而言,系统可裁剪,形态各异,可能体积、功耗、成本受限、实时性要求高,如示波器,手机,平板电脑,全自动洗衣机,路由器、数码相机,这些设备中,虽然看不到台式机的存在,但是都有一个或多个嵌入式系统在工作。

根据对象体系的功能复杂性和计算处理复杂性,提供的不同选择。对于简单的家电控制嵌入式系统,采用简单的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、80C51

MSP430单片机

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、PIC16F877

AVR单片机

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、AT90S8515

STC单片机

说到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便宜,但是这些并并不重要,重要的是这属于国产单片机比较出色的单片机,但愿国产单片机能一路长虹…使用最多的器件:STC12C2052AD

Freescale单片机

主要针对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抽头计算需要256*3=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-

学IT的看过来,一万多门教程,50T海量学习资源,自学修炼成大神

本人是一名工作多年的IT程序员,主要给大家分享C 、C++ 、Java 、python、 linux 、HTML、Android、IOS、ARM、嵌入式、物联网、人工智能等学习资源

近期会陆续将上边提到的IT编程类、IT电子类等教程上传到头条主页或西瓜视频,点开头条搜索框输入“IT百科大学堂”即可看到本人目前已上传的部分学习资源(由于资料上传需要时间,建议大家先关注等待),头条框搜索如下

另外,重要的事情说三遍:

大家最想要什么教程的可以写在评论区,本人会根据反馈热度优先上传相应资源!

大家最想要什么教程的可以写在评论区,本人会根据反馈热度优先上传相应资源!

大家最想要什么教程的可以写在评论区,本人会根据反馈热度优先上传相应资源!

以下是一万多门教程资源目录,应该有你需要的(教程还在不断更新中,由于教程太多太多无法全部列举,以下只列举了五百多门教程的目录)

第一页

Ajax和Jquery基础入门视频-网络编程

嵌入式C语言全套教学视频

兄弟连PHP课堂实录-全132讲

iPhone与iPad开发实战-中级精通IOS软件开发

【实战】IOS软件开发之经典案例剖析视频教程

【基础】精通Objective-C视频教程

达内2013 windows内核编程视频教程

达内2013 MFC视频教程

达内2013 dcom视频教程

达内2013 STL模板视频教程

达内2013 unix环境高级编程视频教程

达内2013 数据结构和算法视频教程

达内2013 C编程视频教程

达内2013C++视频教程+课件

电气工程师公共基础专业基础-建设部电教中心 全71讲

西安交大 电工电子技术 全62讲

MySQL视频教程特级课 全36讲

MYSQL视频教程 2011 全8讲

郑莉-C++程序设计语言-清华大学 全45讲

51单片机与C语言技术 从零到项目开发学视频教程-慧净电子 全52讲...

Android开发视频教程从入门到精通(全69讲)

Android开发教程更新项目实战(全43讲)

fortran程序设计视频教程+源码(42讲)徐红波

C++语言程序设计视频教程(东南大学 何洁月)(全80讲)

2012年软考网络工程师视频教程(全72讲)

PLC特殊模块视频教程(全7讲)

PLC定位模块视频教程(全9讲)

HTML网站建设实录HTML网站开发事例教程-李炎恢(全55讲)

中华隐士联盟HTML语言系列视频教程(全61讲)

HTML视频教程-基础及应用(全26讲)

深度网赚中级seo培训视频教程(全14讲)

夜鹰seo视频教程(全11讲)

搜索引擎优化(SEO)-刘志军从入门到精通视频教程(全14讲)

酷网SEO入门到精通视频教程(全8讲)

(3天学会SEO)绝品SEO技术+实战排名视频教程

seo三人行视频教程(全11讲)

SeoWhy官方视频教程(全7讲)

HTML5游戏开发视频+ppt+源码开发手册(全11讲)

Proteus V7.5 SP3软件+视频+实例(全41讲)

慧静电子HJ-C52配套实验操作视频教程(全18讲)

慧净电子HJ-C52 10课单片机入门视频教程(全10讲)

曹鹏SEO视频教程(全55讲)

AVR 开发应用视频教程(全25讲)

AB PLC自动化工控综合视频教程(全20讲)

李金城编程与入门视频教程(全20讲)

通信基础及应用视频教程-李金城(全14讲)

电路电子技术 全76讲 吉林大学

三菱Q系列PLC基础视频教程(全27讲)

单片机经典视频教程(全42讲)

C语言程序设计 视频教程(258讲)-徐红波 谭浩强教材

2013软件设计师考试视频教程+试题及答案(全70讲)

JavaWeb-安卓开发视频教程(全)

植物大战僵尸+课件-安卓开发视频教程(全11讲)

Ajax-安卓开发视频教程(全17讲)

11-手机流媒体视频播放客户端-安卓开发视频教程(全)

UML和红孩子客户端-安卓开发视频教程+素材(全14讲)

豆瓣客户端-安卓开发视频教程+素材(全7讲)

豆瓣-安卓开发视频教程(全31讲)

安卓JNI-安卓开发视频教程+素材(全31讲)

321手机视频讲解-安卓开发教程+素材(全15讲)

安卓基础视频教程+素材(全92讲)

Linux环境下C语言编程入门 视频教程 全52讲

云计算视频教程-安卓开发(全7讲)

guessWho_3G游戏(郭大平)-安卓开发教程(全28讲)

模拟电路视频-清华大学(全56讲)

三菱PLC-变频器视频(全13讲)

三菱PLC 基本指令视频教程

第二页

PLC-FX2NPL功能指令应用详解(全99讲)

山东大学欧姆龙-plc视频教程(全40讲)

机电一体化专业课程合集

信号与系统本科视频教程 全45讲 电子科技大学

信号与系统视频教程 全58讲 西安电子科技大学

C语言程序设计 全51讲 吉林大学 视频教程

信号检测与估计二视频教程 全32讲 中科院

软件开发方法学视频教程 全10讲 中科院

从零学PROTEL99SE 8小时 视频教程

Pascal语言视频教程合集 全94讲 北京邮电大学

松下PLC视频教程全34集 打包下载

三菱PLC视频教程全70集 打包下载

AB变频器 PLC AB上位机 RSLogix5000视频教程合集 全50讲 打包下载...

PASCAL语言程序设计视频教程合集 全88讲 中国科技大学

软件水平考试-系统分析师视频教程 全18章

先进计算机和软件技术系列讲座四视频教程 全4讲 中科院

软件水平考试-数据库系统工程师 视频教程全17章

网络用户行为分析视频教程 全3讲 中科院

统计学习理论与应用视频教程 全6讲 中科院

通信工程与电子技术系列讲座一视频教程 全4讲 中科院

软件水平考试-系统架构设计师视频 共20章+资料

手把手教你学单片机之AVR入门篇视频教程 全6讲 社会培训 中科院 ...

智能科学一视频教程 全10讲 中科院

信道编码基础视频教程 全2讲 中科院

现代数字信号处理二视频教程 全26讲 中科院

计算机系统性能评价视频教程 全18讲 中科院 视频教程

计算机网络视频教程 全12讲 中科院 视频讲座

计算机网络设计与性能分析一视频教程 全25讲 中科院

HHT的方法原理及应用视频教程 全9讲 中科院 视频教程

可视化计算 全32讲+导学+复习视频教程 浙江大学 最新 刘加海

计算机网络基础全32讲+导学+复习视频教程 浙江大学 最新 周建平 ...

Cisco AWLF4.0教程 全11章 doc ppt pdf格式

郝斌老师C语言自学教程 专讲 全180讲 视频教程

C语言程序设计(全33讲)谭浩强教材-石油大学

Web 2.0技术系列讲座二视频教程 全5讲 中科院 视频教程

数据结构C++版(全41讲) 复旦大学 本科视频

网络教育IT培训连续剧CCNP 全55讲 视频教程

C语言 视频教程 白云、王世元 全19讲 西南大学 打包下载

通信原理 西安电子科技大学 全48讲 免费

国嵌6410-2011共享版-6(嵌入式LINUX内核驱动进阶班-下)视频教程...

国嵌6410-2011共享版-5(内核驱动进阶班-上)视频教程 含实验pdf...

国嵌6410-2011共享版-4(ARM系统进阶班)视频教程 含pdf

国嵌6410-2011共享版-3(嵌入式LINUX应用开发班)视频教程 含实验...

国嵌6410-2011共享版-2(嵌入式体验入门班)含实验pdf

国嵌6410-2011共享版-1(培训专用软件)学习方法视频

国嵌2440共享版5-2011新版-内核驱动进阶班 视频教程含pdf

国嵌2440共享版4-2011新版 (嵌入式Linux内核驱动进阶班)视频教...

国嵌2440共享版3-2011新版-嵌入式LINUX应用开发班 视频教程含pdf...

国嵌2440共享版2-2011新版 嵌入式Linux国嵌体验入门班 视频教程含...

国嵌2440共享版1-2011新版 嵌入式Linux学习方法 视频教程含pdf

第三页

dedecms仿站视频教程

JAVA WEB整合王者归来 全13讲 视频教程

织梦仿站学习 全15讲 视频教程

JDPaint2010精雕视频教程 全套12DVD

微机接口及应用视频教程 授课教师:杨照芳 全17讲 西南大学 最新...

单片机与接口技术视频教程 授课教师:段书凯 全19讲 西南大学 最新...

系统工程视频教程 授课教师潘东波 全10讲 西南大学 最新

计算机图象处理基础视频教程 授课教师:张元平 全18讲 西南大学 ...

面向对象设计Java视频教程 授课教师:王柯 全16讲 西南大学 最新...

文献检索与应用视频教程 授课教师:胡蓉 全11讲 西南大学 最新

计算机教育教学方法论视频教程 授课教师:钟晓燕、李倩 全13讲 西...

C语言视频教程 授课教师:邹显春 全25讲 西南大学 最新

分布式数据库系统及其应用视频教程 全34讲 中科院 视频教程

高级Windows程序设计 全30讲 中科院 视频教程

李炎恢讲师视频教程:PHP第一季(1-136)+项目视频

CBT Nuggets Cisco CCNP642-901-BSCI-n717教程全27讲 视频教程

CBT Nuggets Cisco CCNP Examn 716教程全22讲 视频教程

CISCO路由器和交换机设置教程 全13讲 视频教程

Cisco网络设备互连考试640-822全86讲 视频教程

基于J2EE架构的数据采集surveydoor调查系统 全33讲 视频教程

路由器和交换机设置教程 全13讲(Train Signal Lab 26 Cisco CCNP...

操作系统 全40讲 国防科学技术大学

Sundy's Android深入浅出23讲 mp4

c++ template 视频教程 下

c++ template 视频教程 上

Android应用实战 淘宝网手机客户端全程实录第一季

CJ讲师JavaScript视频课程共150课时 下 081-150讲

CJ讲师JavaScript视频课程共150课时上 001-080讲

信号统计分析 全51讲 中科大 视频教程

朱明-数据结构及应用算法 全49讲 中科大 视频教程

轮机自动化 全40讲 上海交通大学 视频教程

微机接口技术视频教程 全26讲 电子科技大学

工程力学视频教程 全48讲 电子科技大学

电子金融概论(网络金融)视频教程 全25讲 电子科技大学

电路分析基础视频教程 全16讲 北京邮电大学

计算机组成原理(49讲)视频教程 哈工大

遥感图像处理A视频教程 全23讲 中科院

模拟电子技术视频教程 全37讲 西南交大

信号检测与估计一视频教程 全31讲 中科院

微光机电系统导论(全29讲)-上海交大

电工电子技术视频教程 全32讲 上海交大

计算机系统结构视频教程 全34讲 电子科技大学

随机滤波理论简介视频教程 全10讲 中科院

随机过程一视频教程 全30讲 中科院

随机过程四视频教程 全18讲 中科院

随机过程三视频教程 全12讲 中科院

水轮机、水泵及辅助设备视频教程 全12讲 本科

数字信号处理II视频教程 全30讲 中科院

VC++语言程序设计 视频教程 全56讲 哈工大 张卫

2008系统分析师 [真题解析]

盆地与能源研究系列进展视频教程 全14讲 中科院

第四页

光电子技术基础视频教程 全18讲 中科院

贝叶斯网络视频教程 全20讲 中科院

GIS在资源环境研究中的应用视频教程 全16讲 中科院

GIS空间分析方法 全33讲 中科院 视频教程

形式语言与自动机理论视频教程 全37讲 中科院

小波与滤波器设计一视频教程 全25讲 中科院

小波与滤波器设计三视频教程 全28讲 中科院

小波与滤波器设计二视频教程 全24讲 中科院

现代通信原理一视频教程 全50讲 中科院

网络攻击与防范视频教程 全37讲 中科院

天线理论与技术一视频教程 全22讲

天线理论与技术二视频教程 全30讲 中科院

普适计算 全9讲 中科院 视频地址

互联网运营智慧 网络运营 高可用可扩展网站技术实战 全9讲 视频教...

互联网运营智慧 Linux进阶视频 高可用可扩展网站技术实战 全13讲...

互联网运营智慧 LinuxUnix基础 高可用可扩展网站技术实战 全7讲 ...

北风网李炎恢老师 Xhtml视频教程 90课时

北风网李炎恢老师 Flash 全59课时 视频教程

制图类课件源文件大全

有限元方法 全25讲 中科院 视频教程

数字图像处理视频教程 全28讲 中科院

数据挖掘高级技术 视频教程 全39讲 中科院

数据仓库一 视频教程 全45讲 中科院

面向对象程序设计CPP 全29讲 中科院 视频教程

科学计算可视化基础视频教程 全26讲 中科院

矩阵分析二视频教程 全52讲 中科院

计算机算法设计与分析B视频教程 全20讲 中科院

计算机算法设计与分析A视频教程 全13讲 中科院

高级软件工程一视频教程 全37讲 中科院

高级软件工程视频教程 全21讲 中科院

高级软件工程三视频教程 全22讲 中科院

传感器网络系列讲座 全17讲 中科院 视频教程

WAMP中文视频教程 (Wamp FAQ)全4讲

Ubuntu Linux 基础 全36讲 视频教程

Godaddy主机中文视频教程 全32讲 中科院

CBT Nuggets CWTS认证无线技术考试教程 全18讲 视频教程

计算机网络设计与性能分析视频教程 全31讲 中科院

计算机算法设计与分析一视频教程 全30讲 中科院

计算机算法设计与分析三视频教程 全15讲 中科院

计算机算法设计与分析二视频教程 全18讲 中科院

东学 统计学 全49讲 视频教程

北京圣思园Hibernate 全39讲 视频教程

爱闪2小时学会五笔视频教程

Wordpress 3.1页面设计培训视频教程 全99讲

VC++深入详解教学视频 全20讲 视频教程

CBT Nuggets VCP认证考试培训教程 全20讲 视频教程

CBT Nuggets考试教程70-433 SQL Server 2008 Database Developme...

高级计算机网络 视频教程 全18讲 中科院

分布式数据库系统及其应用视频教程 全34讲 中科院 视频教程

电工理论与新技术视频教程 全10讲 中科院 视频教程

电工理论与新技术 全9讲 中科院 视频教程

超大规模集成电路基础视频教程 全24讲 中科院 视频教程

韩顺平 循序渐进学 java从入门到精通 全94讲 视频教程

韩顺平 linux视频教程 全21讲 视频教程

韩顺平 j2ee视频实战教程servlet 全8讲 视频教程

韩顺平 j2ee视频实战教程jsp 全9讲 视频教程

火星时代CGTop系列讲座

织梦A5dedecms织梦建站培训 雪毅 全28讲 视频教程

网站重构与Web标准设计 第一版 全60讲 视频教程

存储过程在企业级开发中的应用 全11讲 视频教程

Wordpress中文视频教程 全11讲 视频教程

最优化算法视频教程 全21讲 中科院 视频教程

网络营销 全32学时 卓骏 浙江大学 视频教程

网上支付与结算 全24学时 汪蕾 浙江大学 视频教程

谈判与沟通 全42学时 戴文标 浙江大学 视频教程

中科大_微机原理与系统 全63讲 第31-63讲 视频教程

中科大_微机原理与系统 全63讲 第01-30讲 视频教程

中科大_数理方程 全52讲 第01-26讲 视频教程

杨维紘-力学 全61讲 第32-61讲 视频教程 中科大

杨维紘-力学 全61讲 第01-31讲 视频教程

工程技术基础程绍明 全32讲 浙江大学 视频教程

电工与电子技术 全32学时 鲍一丹 浙江大学 视频教程

陈意云 编译原理和技术 全25讲 中科大视频教程

斯坦福大学开放课程:法学 全6讲 视频教程

斯坦福大学开放课程:iPhone开发教程 全18讲 视频教程

斯坦福大学开放课程:iPhone开发教程2010年冬 全28课 下 全14讲 ...

斯坦福大学开放课程:iPhone开发教程2010年冬 全28课 上 全14讲 ...

第五页

以用户设计为中心视频教程 全10讲 视频教程

大地SEO视频教程 全19讲 视频教程

麻省理工开放课程:8.02SC电和磁 全59讲 视频教程

斯坦福大学开放课程:iOS开发教程2010年秋 全18讲+6讲 共25讲 视...

斯坦福大学开放课程 人机交互研讨Winter 全10讲 视频教程

SEO经典之作-2011最新搜索引擎优化实战 全57讲 视频教程

斯坦福大学开放课程 傅立叶变换及应用 全30讲 视频教程

斯坦福大学开放课程 编程方法学 全28讲 视频教程

坦福大学开放课程 :网络视频课程之机器人学 全16讲 视频教程

马里兰大学 小波理论与时频分析方法 全28讲(下) 第15-28讲 视频教...

马里兰大学 小波理论与时频分析方法 全28讲(上)第01-14讲 视频教...

系统学习Java Web项目 动力节点Java培训视频-王勇主讲 中国电信客...

系统学习Java Web项目 动力节点Java培训视频-王勇主讲 DRP项目完...

系统学习Java Web 动力节点Java培训-王勇主讲 DRP项目完整版 第2...

系统学习Java Web 动力节点Java培训-王勇主讲 DRP项目完整版 第1...

系统学习Java Web 动力节点Java培训王勇主讲 DRP项目完整版 第06...

系统学习Java Web 动力节点Java培训-王勇主讲 DRP项目完整版 第0...

腾讯微博Android客户端开发课程 全9讲 视频教程

妙趣横生的算法教学视频 全10讲 视频教程

郝斌 数据库MSSQL Server2005 自学视频 全99讲 视频教程

郝斌 数据结构自学视频 全79讲 视频教程

Visual C++从入门到实践教学视频 全135讲 视频教程

Linux环境C程序设计 全46讲 视频教程

C++程序员面试宝典 全382讲 视频教程

C++从入门到实践教学视频 全161讲 视频教程

电子科技大 程序设计语言与编译 全37讲 视频教程

Debian5从入门到精通 全67讲 视频教程

CBT Nuggets CompTIA A 2009考试认证培训 全44讲 视频教程

51单片机视频教程wang1jin带您从零学单片机 视频教程

21天学通51单片机开发 全21讲 视频教程

Android开发从零开始视频教程 全36讲 视频教程

华为H3CNE视频教材 华为认证 全19讲 视频教程

Android开发视频教学 全61讲 视频教程

基于Android的通讯录开发教学视频 全23讲 视频教程

手把手《Android视频教程》-手机防盗的简单实现 全8讲 视频教程 ...

手把手《Android视频教程》通讯录的开发 全26讲 视频教程

Android的新浪微博客户端开发教程 全8课时 视频教程

考试认证培训:使用Microsoft Exchange Server 2010设计和部署通...

微软专业Windows7企业级桌面系统支持技术员考试教程 全19讲 视频...

微软认证考试:Windows Server2008培训 视频教程 CBT Nuggets MC...

厦门电视大学:数字电子电路 全12讲 视频教程

程序设计基础(C) 全27讲 视频教程 上海交大

哈工程大学 MSP430单片机教程 全8讲 视频教程

中科院考研试卷

信号与系统考研试卷

清华信号与系统课件 ppt打包

Endorphin2.5中文极品视频教程 全13讲 视频教程

2011年Autodesk大师班教程 全32讲 视频教程

微机原理及应用 全32学时 裘正军 浙江大学 视频教程

系统工程导论 全16学时 冯雷 浙江大学 视频教程

试验设计与统计分析 全64学时 祝水金 浙江大学 视频教程

计算机辅助数控编程技术 全24学时 王卫兵 浙江大学 视频教程

材料成型与仿真 全24学时 吴纬纬 浙江大学 视频教程

塑料制品设计 全24学时 徐志扬 浙江大学 视频教程

工程力基础 全24学时 陈乃立 浙江大学 视频教程

计算机辅助工程 全24讲 马宇山 浙江大学 视频教程

电子技术基础 全36学时 王小海 浙江大学 视频教程

电路原理 全48学时范承志 浙江大学 视频教程

电路原理 全32学时 范承志 浙江大学 视频教程

微机原理与接口技术 全32学时(少第13讲)高锋 浙江大学 视频教程...

信号分析与处理 全32学时孙晖 浙江大学 视频教程

第六页

电子测量与智能仪器 全32学时陈敏 浙江大学 视频教程

程序设计基础(VB) 全36学时何鸿声 浙江大学 视频教程

计算机应用基础 全24学时1009 浙江大学 视频教程

计算机应用基础 全24学时周建平0909 浙江大学 视频教程

计算机应用基础(A) 全24学时 1009 浙江大学 视频教程

计算机应用基础(A) 全24学时 周建平0909 浙江大学 视频教程

数据结构与算法 全40学时徐镜春 浙江大学 视频教程

程序设计基础(C) 全32学时 刘加海 浙江大学 视频教程

高级程序设计(JAVA) 全32学时 张明敏 浙江大学 视频教程

嵌入式系统 全32学时胡威、施青松 浙江大学 视频教程

信息系统的设计与实现 全24学时 吴志航 浙江大学 视频教程

Web程序设计 全32学时胡晓军 浙江大学 视频教程

网络系统设计与工程 全36学时 邱劲松 浙江大学 视频教程

软件工程基础 全24学时1009 浙江大学 视频教程

软件工程基础 全32学时 金波0909 浙江大学 视频教程

数据库技术 全24学时1009 浙江大学 视频教程

数据库技术 全24学时 张军0909 浙江大学 视频教程

LINUX操作系统 全32学时 宋广华 浙江大学 视频教程

计算机网络基础 全32学时1002 浙江大学 视频教程

计算机网络基础 全32学时 陆魁军0909 浙江大学 视频教程

操作系统原理 全32学时 徐宗元 浙江大学 视频教程

面向对象程序设计 全32学时 1002 浙江大学 视频教程

面向对象程序设计 全33学时 毛根生0909 浙江大学 视频教程

通讯与计算机网络 全32学时 邱劲松 浙江大学 视频教程

软件体系结构 全24学时 浙江大学 视频教程

计算机前沿技术讲座 全16学时 浙江大学 视频教程

数据挖掘 全24学时王灿 浙江大学 视频教程

中间件技术 全24学时 胡晓军 浙江大学 视频教程

VTC.COM出品Steinberg WaveLab 7培训视频教程

Microsoft Expression Blend 4基础视频 全11章 视频教程

AVR 51单片机学习板 完全兼容TX-IC 手工焊接视频 电焊

Altium Designer FPGA设计指导 全33讲 视频教程

Altera FPGA入门及提高教程 中文教程 全43讲 视频教程

新概念51单片机C语言教程 入门 提高 开发 拓展 全13讲 视频教程 ...

郝斌Java自学视频 全107讲 视频教程

高级操作系统 全18讲 视频教程 中科院

学ARM和学单片机一样简单 共9讲

Proteus入门到精通 全29讲 视频教程

Visual C++范例开发大 全17章 视频教程

MSSQL Server范例开发大全 视频教程

中科院 信息系统设计与开发 全19讲 视频教程

Visual C++从初学到精通 全61讲 视频教程

Linux从入门到精通 视频教程

郭天祥十天学会PIC单片机 全13讲 视频教程

Google Android开发入门与实战随书视频

C语言好爽 全50讲 视频教程

C#范例开发大全 视频教程

iPhone与iPod Touch基础训练视频教程 全117讲 视频教程

网站重构与Web标准设计视频教程第二版 全145讲 视频教程

手把手教你学单片机 51单片机 C语言 全64讲 入门到精通

十天学会单片机和C语言编程 全13讲 视频教程

零基础一周学会PIC单片机视频教程 全31讲 视频教程

Visual C++范例开发大全 全420讲 视频教程

手把手教你学单片机C语言单片机开发教程 全16讲 视频教程

Java范例开发大全 全379讲 视频教程

Altium Designer6.9 PCB设计教程 郭天祥 全31讲 视频教程

天狼星51单片机到ARM征服嵌入式 全41讲 视频教程

Java从入门到实践教学视频 全46讲 视频教程

Java Web开发技术大全教学 全8讲 视频教程

Java Web编程从入门到实践教学视频 全109讲 视频教程

Visual Basic从入门到实践 全187讲 视频教程

Visual Basic范例开发大全 全482讲 视频教程

ARM嵌入式Linux系统开发详解一书附带的光盘 视频教程

ARM嵌入式Linux系统开发详解 全40讲 视频教程

第七页

Visual Basic从初学到精通 全30讲 视频教程

C#4.0中文视频教程 全20课 视频教程

Adobe Acrobat X Pro基础培训 全79讲 视频教程

聚光制造 ketchUp草图大师 piranesi彩绘大师基础与案例剖析1 全2...

北京圣思园Java培训教学视频 XML视频 全21讲

北京圣思园Java培训教学视频 OOAD与UML 全14讲

北京圣思园Java培训教学视频 Java SE 全131讲

数字图像处理 韩春梅主讲 全23讲 同济大学 视频教程

北京圣思园OOAD与UML教学 全14讲 视频教程

斯坦福大学开放课程 抽象编程 全27讲 视频教程

斯坦福大学开放课程 线性动力系统绪论 全20讲 视频教程

电动力学 西南师范大学 全19讲 视频教程

麻省理工学院 算法导论(MIT Introduction to Algorithms)全24讲视...

北京圣思园JAVA视频教程 全47讲 中国人民银行企培

数字通信原理 全49讲 视频教程 麻省理工学院

硬盘分区、多操作系统共存全攻略 视频教程

深入浅出玩转FPGA视频学习课程 全35讲

Java实例精通视频教程 全40讲

手把手教你学ARM之LPC2148 全29讲 视频教程

DSP5509 HX-5509开发板 全9讲 视频教程

MLDN魔乐2009全新JAVA核心课堂 全79讲 视频教程

iPhone SDK 4应用程序开发新功能教程 全29讲 视频教程

国防科技大学嵌入式视频教程 全48讲 视频教程

Adobe Audition 3快速入门教程 全26讲

DT_NUKE视频教程及NUKE6.0_V5&V6 全177讲

跟我学Java26日通 视频教程

高级人工智能(Advanced Artificial Intelligence)研究生课程 全1...

优尼克斯郭宏志JAVA培训系列视频 全16讲 视频教程

优尼克斯郭宏志JAVA培训系列视频 全16讲 视频教程

清华大学C++面向对象与程序设计 全35讲 视频教程

成都国嵌专业嵌入式Linux视频培训教程 全69讲 视频教程

v512工作室_Java高端培训系列视频 全29讲 视频教程

XNA3.0游戏开发2D入门视频教程八课完结

RealFlow 5初级视频教程 全15讲(全英版) 视频教程

Z.CLASS首期在线插画班教学实录 全28讲 视频教程

嵌入式Linux C编程入门 全41讲 视频教程

华清远见FPGA入门视频教程

Hibernate开发与实战 视频教程 全23讲

Altium Designer 8.0中文版电路设计标准教程全3讲 视频教程

AE7完全使用手册之操作篇 全228讲 视频教程

苹果官方iPhone应用高级开发课程 全16讲

网站建设策略与规划 视频教程 全24讲

Small Business Server 2008视频教程 全23讲

第八页

一步步学BIOS设置 视频教程 全8讲

C#从入门到精通 视频教程 全112讲

SQL Server 2008视频教程 全69讲

使用CINEMA 4D设计制作宣传短片 全70讲 视频教程

网站设计基础教程 视频教程 全36讲 英文版

Python3基础教程 视频教程 全87讲 英文版

Flash 8入门与提高实例 视频教程 全8讲

AJAX 4使用Visual C# 2010服务器端 全27讲 视频教程 英文版

PHP100视频教程 全89讲 最好的PHP新手入门视频教程

oeasy教你玩转电脑系列之audition 共48讲 视频教程

oeasy教你玩转实用网站 全41讲 视频教程

Java开发实战经典 视频教程 全164讲

Java Web开发实战宝典 视频教程 全112讲

Java Web开发实战宝典 视频教程 全20讲

AVR开发板 实验板(单片机) C语言 全11讲 视频教程

巧夺天工 PageMaker入门与进阶实例 视频教程

从新手到高手C++ 全方位学习(范磊) 全378讲 视频教程

[数据结构导论] 全41讲[自考][计算机专]自学考试

MIT计算机科学及编程导论 全25讲 视频教程

手把手教你学ARM之LPC2103入门篇 全19讲 视频教程

ExtJs视频教程 全54讲

Nuke基础入门教学 视频教程 全19讲

VFP6.0及其应用(高起专) (visual foxpro)视频教程 全26讲 西学...

数据结构视频教程 全48讲 西学课程

软件工程视频教程 全54讲 西学课程

Vegas火星课堂视频教程 全33讲+源码

微机原微机原理与接口技术 视频教程 全54讲 西学课程

数字逻辑电路视频教程 全54讲 西学课程

面向对象程序设计视频教程 全36讲 西学课程

计算机法视频教程 全32讲 西学课程

Visual FoxPro程序设计(vfp视频教程)全33讲 徐红波

21天学通C语言 视频教程 全21讲

信号与系统(电气)视频教程 全59讲 本科西南交大

AVR单片机软硬件设计 全12讲 入门篇:手把手教你入门单片机

Realflow4从入门到精通《火星时代》视频教程 全13讲

MSP430 C语言 视频教程 全11讲

SPSS视频教程(经典讲解 案例分析 共八大部分)

光影魔术手 视频教程 全31讲 千术

高频电子线路视频教程 全45讲 电子科大

电路原理 视频教程 全42讲 清华大学

ASP系列视频教程 200课时 从入门到精通 李炎恢讲师

战略HR 视频教程 全6讲 姜汝祥

FreehandMX 即学即会视频教程 全9讲

Java Web开发与实战 视频教程 全27讲

Java高端培训 Hibernate开发与实战视频教程(共22章)

SQL Server 2008视频教程wmv+iPods 两种格式

VTC Windows7 视频教程 74讲 英文版

数字电子技术视频教程 全69讲 西学课程

模拟电子技术视频教程 全70讲 西学课程

电路学视频教程 全100讲 西学课程

电路视频教程 全63讲 (高起专) 西学课程

操作系统应用视频教程 全32讲 东学课程

操作系统原理视频教程 全64讲 东学课程

C++程序设计视频教程 全34讲 东学课程

c++语言程序设计(上)视频教程 全48讲 东学课程

c++语言程序设计(下)视频教程 全32讲 东学课程

WEB应用系统设计视频教程 全32讲 东学课程

C语言课程设计视频教程 全4讲 东学课程

WEB创意设计视频教程 全32讲 东学课程

第九页

单片机原理及应用视频教程 全32讲 东学课程

机器人原理及应用视频教程 全48讲 东学课程

数字逻辑电路视频教程 全48讲 东学课程

电工与电子技术基础视频教程 全76讲 东学课程

编译原理视频教程 全64讲 东学课程

电工电子技术视频教程 全76讲 东学课程

电路基础视频教程 全33讲 东学课程

关系数据库视频教程 全48讲 东学课程

汇编语言视频教程 全32讲 东学课程

机器人技术视频教程 全64讲 东学课程

计算方法视频教程 全48讲 东学课程

计算机辅助设计与制造视频教程 全40讲 东学课程

计算机网络概论 全46讲 东学课程

计算机组成原理视频教程 全64讲 东学课程

接口技术与应用视频教程 全42讲 东学课程

人工智能视频教程 全32讲 东学课程

软件工程视频教程 全32讲 东学课程

数据结构视频教程 全72讲 东学课程

数据结构视频教程 全64讲 东学课程

数据库原理与设计视频教程 全64讲 东学课程

sql数据库基础视频教程 全42讲 东学课程

数控技术视频教程 全40讲 东学课程

数字逻辑电路视频教程 全64讲 东学课程

数据结构视频教程(严蔚敏)C语言版 全48讲 清华大学

SONY Vegas pro8.0标准版 视频教程

模拟电子线路基础 视频教程 全60讲 西安电子科技大学

Java项目开发过程实录 视频教程 全97讲

电子元器件与实用电路基础 视频教程 天津电大

各种工具软件详细使用讲解 视频教程 全213讲

《电脑上网》视频教程 全177讲

[chinaunix][LINUX视频教程] 全21讲

数字色彩 视频教程 全15讲 中央电大

微型计算机技术 全48讲 赵雁南(教授)本科 清华大学

PowerBuilder(Power Builder ) 视频教程 大连理工大学 全16讲

平面构成视频教程 全17讲 上海交大

Windows7中文版入门到精通 视频教程 完整版

现代通信原理视频教程 全33讲 电子科技大学

SQL Server 全34讲(SQLSERVER) 电子科技大学

弱电工程培训 视频教程 24讲打包

IT播吧 段誉老师 Solaris系统视频教程 全16讲

IT播吧-阿牛哥老师面向对象设计C++实现系列培训视频教程 全45讲 ...

IT播吧-播布客小布老师Oracle 9i DBA Fundamentals I 全77讲

IT播吧-赶星老师-自由飞翔Linux系列培训视频教程 全45讲

IT播吧海明老师Ubuntu Linux系列培训 全26讲

电路与模拟电子技术视频教程 全8讲 北京邮电大学

编译原理视频教程 全43讲 北京科技大学

操作系统视频教程 全52讲 北京科技大学

机电系统组成原理视频教程 全54讲 北京科技大学

计算机组成原理视频教程 全43讲 北京科技大学

应用电子技术视频教程 全52讲 北京科技大学

AE后期特效制作教程 (After effect-)2008基础版 全80讲

计算机应用基础视频教程 全16讲 上海外国语

汇编语言程序设计视频教程 全57讲 西南交大

数字逻辑与数字系统视频教程 全41讲 西南交大

通信原理概论视频教程 全37讲 西南交大

微机接口技术视频教程 全63讲 西南交大

数据库原理与应用视频教程 全47讲 西南交大

信号处理原理视频教程 全68讲 西南交大

线路基础视频教程 全37讲 西南交大

第十页

编译原理视频教程 全31讲 西南交大

操作系统视频教程 全64讲 西南交大

高电压技术视频教程 全57讲 西南交大

供电系统视频教程 全44讲 西南交大

视觉传达设计视频教程 全6讲 武汉理工大学

MIT教授与Intel高级工程师2007年在清华大学关于现代计算机系统结...

IT播吧-寒冰老师-零起点学习Linux系列培训视频教程 全61讲

面向对象C++ 视频教程 全40讲 电子科技大学

网站全程设计技术视频教程 全25讲 电子科技大学

数控技术视频教程 全43讲 西北工大

李涛主讲AE最新视频教程 全19讲

汇编与微机接口视频教程 全64讲 西北工大

VB程序设计视频教程 全40讲 电子科技大学

Java语言程序设计视频教程 全22讲 电子科技大学

VF程序设计视频教程 全40讲 电子科技大学

互联网原理及应用视频教程 全30讲 电子科技大学

配网自动化(全32讲) 视频教程

信息论与编码视频教程 全26讲 上海交大

电工技术视频教程 全54讲 西北工大

信息编码与加密视频教程 全34讲 电子科大

Adobe认证基础视频教程 全24讲 电子科大

信息系统分析与开发视频教程 全36讲 电子科大

C语言程序设计视频教程 全10讲 北京邮电大学

VisualBasic程序设计视频教程 全36讲 上海交大

电子金融概论视频教程 全25讲 电子科大

计算机通信网视频教程 全41讲 电子科大

模拟电子线路(模拟电子技术基础) 视频教程 全56讲 清华大学 含pp...

Java初级编程基础视频教程 全46讲 上海交大

光纤通信视频教程 全30讲 电子科大

现代交换原理视频教程 全36讲 华中科技大学

通信原理视频教程 全28讲 华中科技大学

移动通信视频教程 全16讲 华中科大

程序设计vb视频教程 全16讲 上海交大

数字逻辑与数字电子(52讲)视频教程-哈工大

并行计算视频教程 全29讲 中科大

微机原理及接口技术视频教程 全51讲 郑州大学

数据挖掘技术视频教程 全22讲 北京大学

计算机网络视频教程 全60讲 郑州大学

linux基础与应用视频教程 全25讲 郑州大学

玩转oracle视频教程(31讲)韩顺平

因特网软件开发技术视频教程 全14讲 本科 南开大学

组网技术与应用视频教程 全15讲 本科 南开大学

软件工程视频教程 全36讲 东北大学

数据结构视频教程 全16讲 南开大学

数据库系统基础视频教程 全14讲 南开大学

数字电路基础视频教程 全16讲 南开大学

网络信息文献检索视频教程 全12讲 南开大学

网络与通信视频教程 全12讲 南开大学

面向对象编程技术视频教程 全17讲 南开大学

软件工程视频教程 全14讲 南开大学

操作系统 计算机组成原理与体系 可视化程序(VB) 面向对象技术 ...

微机接口技术视频教程 北京邮电

台湾培亚RHCE培训视频教程 全34讲

计算机网络视频教程 全48讲 东北大学

基于Web的程序设计视频教程 全23讲 东北大学

《电子技术基础》视频教程 全56讲 清华大学

可视化编程视频教程 全15讲 本科 南开大学

汇编语言视频教程 全15讲 南开大学

计算机基础视频教程 全18讲 南开大学

计算机图形学视频教程 全15讲 南开大学

计算机原理视频教程 全34讲 南开大学

高级程序语言设计 视频教程 全34讲 南开大学

操作系统视频教程 全15讲 本科 南开大学

数据库应用基础 全35讲视频教程 上交

计算机应用基础 全22讲视频教程 上交

数字信号处理 视频教程全15讲 上交

嵌入式系统及应用 视频教程全43讲 上交

网络攻击与防御技术 视频教程全26讲 上交

基于WEB的程序设计 视频教程全32讲 上交

微型计算机组成原理 视频教程全37讲 (高/专) 上交

程序设计视频教程 全32讲 上交

教程截图样张如下:(看到了吗,这只是其中一个网盘的,都爆掉了,还有好多个云盘账号哦!!

相关问答

你能回答!!2023专业的央财MBA辅导班推荐,央财MBA费用高不高?

[回答]学费一年一万,住宿费1600.每月300-400元补助,这在北京院校里是学费最少,补助最多了的。央财都没有补助,学费还好几万现在找工作的门槛都提高了。是...

猜你喜欢