
CPLD(Complex Programmable Logic Device)是Complex PLD的简称,一种较PLD为复杂的逻辑元件。
CPLD是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆(“在系统”编程)将代码传送到目标芯片中,实现设计的数字系统。
发展历史及应用领域:
20世纪70年代,最早的可编程逻辑器件--PLD诞生了。其输出结构是可编程的逻辑宏单元,因为它的硬件结构
设计可由软件完成(相当于房子盖好后人工设计局部室内结构),因而它的设计比纯硬件的数字电路具有很强的灵活性,但其过于简单的结构也使它们只能实现规模较小的电路。为弥补PLD只能设计小规模电路这一缺陷,20世纪80年代中期,推出了复杂可编程逻辑器件--CPLD。目前应用已深入网络、仪器仪表、汽车电子、数控机床、航天测控设备等方面。
器件特点:
它具有编程灵活、集成度高、设计开发周期短、适用范围宽、开发工具先进、设计制造成本低、对设计者的硬件经验要求低、标准产品无需测试、保密性强、价格大众化等特点,可实现较大规模的电路设计,因此被广泛应用于产品的原型设计和产品生产(一般在10,000件以下)之中。几乎所有应用中小规模通用数字集成电路的场合均可应用CPLD器件。CPLD器件已成为电子产品不可缺少的组成部分,它的设计和应用成为电子工程师必备的一种技能。
如何使用:
CPLD是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆(“在系统”编程)将代码传送到目标芯片中,实现设计的数字系统。
这里以抢答器为例讲一下它的设计(装修)过程,即芯片的设计流程。CPLD的工作大部分是在电脑上完成的。打开集成开发软件(Altera公司 Max+pluxII)→画原理图、写硬件描述语言(VHDL,Verilog)→编译→给出逻辑电路的输入激励信号,进行仿真,查看逻辑输出结果是否正确→进行管脚输入、输出锁定(7128的64个输入、输出管脚可根据需要设定)→生成代码→通过下载电缆将代码传送并存储在CPLD芯片中。7128这块芯片各管脚已引出,将数码管、抢答开关、指示灯、蜂鸣器通过导线分别接到芯片板上,通电测试,当抢答开关按下,对应位的指示灯应当亮,答对以后,裁判给加分后,看此时数码显示加分结果是否正确,如发现有问题,可重新修改原理图或硬件描述语言,完善设计。设计好后,如批量生产,可直接复制其他CPLD芯片,即写入代码即可。如果要对芯片进行其它设计,比如进行交通灯设计,要重新画原理图、或写硬件描述语言,重复以上工作过程,完成设计。这种修改设计相当于将房屋进行了重新装修,这种装修对CPLD来说可进行上万次。
FPGA是Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
FPGA诞生于1985年,当时第一个FPGA采用2μm工艺,包含64个逻辑模块和85000个晶体管,门数量不超过1000个,由名为Ross Freema所发明,当时他所创造的FPGA被认为是一个不切实际发明,他的同事Bill Carter曾说:“这种理念需要很多晶体管,并且那时晶体管是非常珍贵的东西。”,所以人们认为Ross的想法过于脱离现实。但是Ross预计:根据摩尔定律(每18个月晶体管密度翻一翻),晶体管肯定会越来越便宜,因此它就越来越常见。在短短的几年内,正如Ross所预言的,出现了数十亿美元的现场可编程门阵列(FPGA)市场。但是可惜的是,他无法享受这一派欣欣向荣的景象,在1989年Ross Freeman就与世长辞了,但是它的发明却持续不断地促进电子行业的进步与发展。
我们都知道构成数字逻辑系统最基本的单元是与门、或门、非门等,而他们都是用三极管、二极管和电阻等元件构成,然后与门、或门、非门又构成了各种触发器,实现状态记忆,FPGA属于数字逻辑电路的一种,同样由这些最基本的元件构成。一个FPGA可以将上亿个门电路组合在一起,集成在一个芯片内,打破以往需要用庞大分立门电路元器件搭建的历史,不仅电路面积、成本大大减小,而且可靠性得到了大幅度的提升。
一般的FPGA内部是由最小的物理逻辑单位LE、布线网络、输入输出模块以及片内外设组成,所谓的最小物理逻辑单元是指用户无法修改的、固定的最小的单元,我们只能将这些单元通过互联线将其连接起来,然后实现用户特定的功能。一个LE由触发器、LUT以及控制逻辑组成,可以实现组合逻辑和时序逻辑;随着FPGA集成度的不断增加,其内部的片内外设也越来越多,内部可集成SRAM、Flash、AD、RTC等外设,真正实现单芯片解决整个系统功能的目的。所以我们所理解的FPGA最底层是一些实实在在的门电路构成,然后由门电路构成最小的物理逻辑单元,然后通过布线层将这些最小物理逻辑单元连接成用户需要的特定功能,我们所需要控制的是布线层之间的互连开关,这也是我们编程的对象,通过这些开关来改变功能。
当今的FGPA按工艺分主要有SRAM工艺和Flash工艺(工艺是针对它们的编程开关来说的)两类,SRAM工艺的FPGA最大的特点是掉电数据会丢失,无法保存,所以它们的系统除了一个FPGA以外,外部还需要增加一个配置芯片用于保存编程数据,每次上电的时候都需要从这个配置芯片将配置数据流加载到FPGA,然后才能正常的运行;但是Flash架构的FPGA掉电不会丢失数据,无需配置芯片,上电即可运行,它的特点非常类似ASIC,但是又比ASIC更加的灵活,可以重复编程。在一些小规模的公司或者产品量不是很大的时候往往更倾向于用FPGA来取代ASIC,不仅能够降低风险,而且能够降低成本。
12 为什么要学习FPGA?
FPGA从诞生以来,经历了从配角到主角的过程,从初期开发应用到限量生产应用再到大批量生产应用的发展历程。从技术上来说,最初只是逻辑器件,现在强调平台概念,加入数字信号处理、嵌入式处理、高速串行和其他高端技术,从而被应用到更多的领域,正因为其飞速的发展,让更多学FPGA的人看到了希望,其广阔的前景正是我们选择的原因之一。
1. 广阔的发展前景
据市场调研公司Gartner Dataquest预测,2010年FPGA和其它可编程逻辑器件(PLD)市场将从2005年的32亿美元增长到67亿美元,未来还将有不断往上增长的趋势。FPGA及PLD产业发展的最大机遇是替代ASIC和专用标准产品(ASSP),由ASIC和ASSP构成的数字逻辑市场规模大约为350亿美元。由于用户可以迅速对PLD进行编程,按照需求实现特殊功能,与ASIC和ASSP相比,PLD在灵活性、开发成本以及产品及时面市方面更具优势,所以未来FPGA将会是一个非常有前景的行业。
FPGA由于其结构的特殊性,可以重复编程,开发周期较短,越来越受人们的青睐,它的特点也更接近ASIC,ASIC比FPGA最大的优势是低成本,但是FPGA的价格现在也是越来越低,例如:Actel的Nano系列更是打破了FPGA的价格屏障,提供超过50种低于1美金的FPGA,在一定程度上已经可以与ASIC相抗衡。
根据当前发展的趋势,未来的FPGA势必将会取代一部分ASIC的市场,虽然根据摩尔定律(Moore’s Law):每18至24个月能在相同的单位面积内多挤入一倍的晶体管数,这意味着电路成本每18至24个月就可以减半,但这只是指裸晶(Die)的成本,并不表示整个芯片的成本减半,这是由于晶圆制造更前端的掩膜(Mask)成本、晶圆制造更后端的封装(也称为:构装、包装)成本、人力成本等都不会随摩尔定律而变化,反而芯片的成本有上升的趋势,所以过去许多中、小用量的芯片无法用先进的工艺来生产,对此不是持续使用旧工艺来生产,就是必须改用FPGA芯片来生产……
因此,未来的趋势告诉我们,FPGA将成为21世纪最重要的高科技产业之一,特别是国内的FPGA市场,更是一个“未开垦的处女地”,抓住现在的机遇意味着为我们将来的产品提供更多的竞争力。
2. 提供更多就业机会
虽然FPGA市场的广阔,但是FPGA的技术人员是极度地缺乏,其原因是还未得到高校的重视,很多学校都未开FPGA的课程,导致学生毕业后连什么是FPGA,什么是Verilog都不知道,失去了很多就业的机会。我们公司(广州单片机发展有限公司)这三年来跑遍了全国22个城市,每次宣讲会场里场外都站满了人,每个学生都渴望寻找一份好工作的心情由此可见一斑,但通过考试发现懂FPGA和Verilog的学生却寥寥无几,尽管我们每年都对招聘FPGA人才寄予了很大的希望,但每次都失望而归,深深地体会到招聘FPGA开发工程师困难重重。
由此可见在应届毕业生中熟练掌握FPGA的学生属于稀缺资源,然而企业为培养FPGA开发工程师无不付出沉重的代价,所以对于在校电类专业的学生来说,这就是打造个人差异化竞争力的机会,事实上只要掌握FPGA就能够找到一份薪水更好的工作。我们公司每次在考核员工时往往都会特别关注这些“特殊员工”的情况,一般来说这些员工的工作都会比其它岗位高500元,这就是学习FPGA的优势,但是很多人不曾完全意识到掌握FPGA技术的重要性。
当前受金融危机的影响,对学生的就业更是巨大的考验,据教育部的统计,2008年,全国普通高校毕业生达559万人,比2007年增加64万人,2009年高校毕业生规模达到611万人,比2008年增加52万人,如此多的大学生面临着就业的问题,如果不具备一定的技能,将会淹没在大学生的潮流之中而找不到理想的工作,而学习FPGA可以帮助学生多一技之长,大大提高就业的机会。
3.具有更大的技术扩展空间
我们都知道,以前IC半导体产业一直是国内比较薄弱的产业,与国外的发展步伐相比还差甚远,我们所用的IC大部分都来自欧美地区,国内拥有自主产品的IC技术不多,多半需要引进国外先进的IC设计技术,但是自2000年以来,中国大陆的IC设计企业如雨后春笋般迅速涌现,企业数量5年增加了4倍多,2005年已经达到500多家,销售收入过亿元人民币的设计企业达到17家,其中两家超过5亿元。概括地讲,中国的IC设计公司可以分为四类,第一类是国有IC设计公司,一般是承担政府研发任务的研究所转制后设立;第二类是由系统厂商的设计部门独立出来的IC设计公司;第三类是民营IC设计公司,以海归型为主;最后一类是外资IC设计公司。
所以IC设计也是未来发展的一个重点方向,将会是国家大力扶持的产业之一,而IC的设计人员所必须掌握的是FPGA的技术,在芯片流片之前都是通过FPGA来进行前期的设计验证,用的语言也是FPGA的设计语言,只是在后端的设计中才用到IC设计的特定技术,所以IC设计人员必定是懂得FPGA设计的人,掌握FPGA的技术是通往IC设计殿堂的必经之路,学习FPGA有助于给我们更大的技术扩展空间。
13 怎样学FPGA?
既然FPGA对我们如此的重要,那对于初学者的我们又应该如何去学呢?学习一样知识应该有好的老师教导,我们才能更快的掌握,可惜的是大部分的学校未开相关的课程,也缺少相关专业的老师,我们如何能够找到一个捷径或方法帮助我们学会这么极具竞争力的技术,让我们通向成功的殿堂呢?笔者觉得应该需要有步骤,有目的、循序渐进地掌握相关的技术,我们公司从原来的1人的FPGA团队,发展到如今30人左右的FPGA团队,有着一些成长的经历和经验,也希望在此能与大家一起分享。
1. 掌握FPGA编程语言
在学习一门技术之前我们往往从它的编程语言开始,就如学习单片机一样,我们从C语言开始,掌握了C语言,开发单片机就不是什么难事了。学习FPGA也是如此,FPGA的编程语言有两种:VHDL和Verilog,这两种都适合用于FPGA的编程,VHDL比Veirlog早出现,由美国的军方组织开发,在1987年成为了IEEE的标准;Verilog则是由民间一家普通的公司私有财产转化而来,基于其优越性,在1995成为了IEEE标准。VHDL在欧地区应用的较为广泛,而Verilog在中国、美国、日本、台湾等地应用较为广泛,笔者比较推崇的是Verilog,因为它非常易于学习,很类似于C语言,如果具有C语言基础的人,只需要花很少的时间便能掌握Verilog,而VHDL较为抽象,学习需要一段较长的时间。
如果是学生,学习Verilog最好的时期是在大学二年级,与数字电路同步学习,不仅能够理解数字电路实现的方式,更能通过FPGA将数字电路得以实现,笔者发现华中科技大学康华光教授主编的《电子技术基础(数字部分)》非常好,可以说是一本与时俱进的教材,在其中介绍了Verilog语言,并且在每一章的最后一节都介绍了如何使用Verilog建模实现相关数字电路的内容,非常适合大二学习FPGA的学生,本书同样以《电子技术基础(数字部分)》为背景,并与该书进行配套同步,在它的基础上进行了升华和改进,源于它而又高于它,所以也可以同步学习。大三、大四的学生还可以进一步将Verilog进行强化,学习北京航天航空大学的夏宇闻教授编写的《Verilog数字系统设计教程(第二版)》可以比较全面地、详细地掌握Verilog的基本语法,对大二学习的内容进一步的巩固和强化。
如果是其他初学者,可以直接借助《Verilog数字系统设计教程(第二版)》和本书即能对Verilog的语法进行全面的掌握。这是学习FPGA的第一步,也是必不可少的一步。
2. 一个易学易用的硬件平台是成功的一半
除了学习编程语言以外,更重要的是实践,将自己设计的程序能够在真正的FPGA里运行起来,这时我们需要一个硬件平台的支持,然后以前的FPGA硬件平台的价格让很多的初学者望而却步,上千元的价格并不是一般的初学者(特别是学生)能够承受的,而且不易学习。针对这样的现状,也是为了回馈社会,帮助更多想学FPGA又没有经济能力的爱好者,广州周立功单片机发展有限公司开发了一套低成本的FPGA开发套件,售价仅99元,即使是学生也是完全能够承受得起,这款开发套件可以说是根本不赚钱,我们不仅要提供硬件电路,我们还得配套提供一系列教程资料。
过去的一年来,我们一共投入了4位开发工程师围绕EasyFPGA030开展工作,翻译全部开发工具软件技术资料,先自己吃透然后再根据自己的理解、实践和多次讨论,将技术资料通俗化,并且录制了第一个“Actel FPGA快速入门视频教程”供初学者免费下载,便于初学者快速入门,当第一版做出来销售1000套之后,才发现初学者的焊接经验不足,于是又开始设计第二版,这就是目前大家在网站上见到的一体化EasyFPGA030开发学习板。为了能够带给大家最准备、最权威的知识,我们还请了国内第一个EDA创始人之一的夏宇闻教授给我们进行Veirlog的培训,培训完后我们制作一系列Veirlog视频教程和PPT供初学者学习,同样免费提供给大家。同时,我们和夏老师一起共同合作编写了本书,目的是希望能够以最快的速度帮助初学者入门,另外我们还有一个30人的团队全面的提供FPGA的技术支持和售后服务,解决用户的后顾之忧。
所以通过EasyFPGA030的平台学习,不仅节约了前期学习的成本,而且该套件详实的资料使得非常的易用易学,对于初学者来说是一个不可多得的FPGA开发平台。
3. 技术进行巩固和升华
对于初学者来说,有了一定基础后,应该将其继续的巩固和升华,笔者认为竞赛是学生进行验证所学知识很好的舞台,不仅能够锻炼学生的动手能力,而且能够发挥学生的创造力和想象力。
广州周立功公司已经成功举办了两届“Actel杯全国大学生FPGA电子竞赛”,参加的队伍分别是100队和300队,每支队伍都将免费获得价值1480元的一套FPGA开发套件作为竞赛的平台,竞赛完后该套件无需退回,而且设置了最高5000元的奖金,这种举措对公司来说只有投入,很难看到产出,但是我们还坚持做了,主要是想给学生提供施展才华的舞台,让更多的人了解FPGA,学会FPGA,2009年我们又将启动了第三届竞赛,将队伍扩大到1000支,给更多的人提供机会,我们的目标就是要将创新教育实践活动进行到底,培养出一批又一批适合企业发展的人才。
14 小结
综上所述,我们只有了解了什么是FPGA,为什么要学习FPGA,怎么学习FPGA后,我们才能非常有目的、有计划的去掌握这门技术,我相信通过我们的共同努力,一定能够培养出一批又一批优秀的FPGA人员。
FPGA学习重点
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遍别人的方案不如自己去实践一下。实践的动力一方面来自兴趣,一方面来自压力。有需求会容易形成压力,也就是说最好能在实际的项目开发中锻炼,而不是为了学习而学习。
为什么你会觉得FPGA难学?
1 不熟悉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输出的逻辑电路而已,通常逻辑电路的规模那是相当的大。
可编程连线
那怎么办呢?这个时候就需要用到可编程连线了。在这些连线上有很多用存储器控制的链接点,通过改写对应存储器的值就可以确定哪些线是连上的而哪些线是断开的。这就可以把很多可编程逻辑单元组合起来形成大型的逻辑电路。
可编程的IO
任何芯片都必然有输入引脚和输出引脚。有可编程的IO可以任意的定义某个非专用引脚(FPGA中有专门的非用户可使用的测试、下载用引脚)为输入还是输出,还可以对IO的电平标准进行设置。
总归一句话,FPGA之所以可编程是因为可以通过特殊的01代码制作成一张张 “真值表”,并将这些“真值表”组合起来以实现大规模的逻辑功能。
不了解FPGA内部结构,就不能明白最终代码如何变到FPGA里面去的,也就无法深入的了解如何能够充分运用FPGA。现在的FPGA,不单单是有前面讲的那三块,还有很多专用的硬件功能单元,如何利用好这些单元实现复杂的逻辑电路设计,是从菜鸟迈向高手的路上必须要克服的障碍。而这一切,还是必须先从了解FPGA内部逻辑及其工作原理做起。
2 错误理解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 FPGA本身不算什么,一切皆在FPGA之外
FPGA是给谁用的?很多学校是为给学微电子专业或者集成电路设计专业的学生用的,其实这不过是很多学校受资金限制,买不起专业的集成电路设计工具而用FPGA工具替代而已。其实FPGA是给设计电子系统的工程师使用的。这些工程师通常是使用已有的芯片搭配在一起完成一个电子设备,如基站、机顶盒、视频监控设备等。当现有芯片无法满足系统的需求时,就需要用FPGA来快速的定义一个能用的芯片。
前面说了,FPGA里面无法就是一些“真值表”、触发器、各种连线以及一些硬件资源,电子系统工程师使用FPGA进行设计时无非就是考虑如何将这些以后资源组合起来实现一定的逻辑功能而已,而不必像IC设计工程师那样一直要关注到最后芯片是不是能够被制造出来。
本质上和利用现有芯片组合成不同的电子系统没有区别,只是需要关注更底层的资源而已。要想把FPGA用起来还是简单的,因为无非就是那些资源,在理解了前面两点再搞个实验板,跑跑实验,做点简单的东西是可以的。而真正要把FPGA用好,那光懂点FPGA知识就远远不够了。因为最终要让FPGA里面的资源如何组合,实现何种功能才能满足系统的需要,那就需要懂得更多更广泛的知识。
4 数字逻辑知识是根本
无论是FPGA的哪个方向,都离不开数字逻辑知识的支撑。FPGA说白了是一种实现数字逻辑的方式而已。如果连最基本的数字逻辑的知识都有问题,学习FPGA的愿望只是空中楼阁而已。数字逻辑是任何电子电气类专业的专业基础知识,也是必须要学好的一门课。
如果不能将数字逻辑知识烂熟于心,养成良好的设计习惯,学FPGA到最后仍然是雾里看花水中望月,始终是一场空的。以上四条只是我目前总结菜鸟们在学习FPGA时所最容易跑偏的地方,FPGA的学习其实就像学习围棋一样,学会如何在棋盘上落子很容易,成为一位高手却是难上加难。要真成为李昌镐那样的神一般的选手,除了靠刻苦专研,恐怕还确实得要一点天赋。
荐读
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》,以便遇到一些语法问题的时候能查一下。
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》。
3 掌握设计方法和设计原则
你可能发现你综合出来的电路尽管没错,但有很多警告。这个时候,你得学会同步设计原则、优化电路,是速度优先还是面积优先,时钟树应该怎样设计,怎样同步两个异频时钟等等。
推荐的教材是《FPGA权威指南》、《IP核芯志-数字逻辑设计思想》、《Altera FPGA/CPLD设计》第二版的基础篇和高级篇两本。学会加快编译速度(增量式编译、LogicLock),静态时序分析(timequest),嵌入式逻辑分析仪(signaltap)就算是通关了。如果有不懂的地方可以暂时跳过,因为这部分还需要足量的实践,才能有较深刻的理解。
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。脚本,意味着一劳永逸。
5 增强理论基础
这个时候,你已经会使用FPGA了,但是还有很多事情做不了(比如,FIR滤波器、PID算法、OFDM等),因为理论没学好。我大概地分几个方向供大家参考,后面跟的是要掌握的理论课。
信号处理 —— 信号与系统、数字信号处理、数字图像处理、现代数字信号处理、盲信号处理、自适应滤波器原理、雷达信号处理
接口应用 —— 如:UART、SPI、IIC、USB、CAN、PCIE、Rapid IO、DDR、TCP/IP、SPI42(10G以太网接口)、SATA、光纤、DisplayPort
无线通信 —— 信号与系统、数字信号处理、通信原理、移动通信基础、随机过程、信息论与编码
CPU设计 —— 计算机组成原理、单片机、计算机体系结构、编译原理
仪器仪表 —— 模拟电子技术、高频电子线路、电子测量技术、智能仪器原理及应用
控制系统 —— 自动控制原理、现代控制理论、过程控制工程、模糊控制器理论与应用
压缩、编码、加密 —— 数论、抽象代数、现代编码技术、信息论与编码、数据压缩导论、应用密码学、音频信息处理技术、数字视频编码技术原理
现在你发现,原来FPGA会涉及到那么多知识,你可以选一个感兴趣的方向,但是工作中很有可能用到其中几个方向的知识,所以理论还是学得越多越好。如果你要更上一层,数学和英语是不可避免的。
6 学会使用MATLAB仿真
设计FPGA算法的时候,多多少少都会用到MATLAB,比如CRC的系数矩阵、数字滤波器系数、各种表格和文本处理等。此外,MATLAB还能用于调试HDL(用MATLAB的计算结果跟用HDL算出来的一步步对照,可以知道哪里出问题)。推荐的教材是《MATLAB宝典》和杜勇的《数字滤波器的MATLAB与FPGA实现》。
7 图像处理
Photoshop
花一、两周的时间学习PS,对图像处理有个大概的了解,知道各种格式、直方图、色相、通道、滤镜、拼接等基本概念,并能使用它。这部分是0基础,目的让大家对图像处理有个感性的认识,而不是一上来就各种各样的公式推导。推荐《Photoshop CS6完全自学教程》。
基于MATLAB或OpenCV的图像处理
有C/C++基础的可以学习OpenCV,否则的话,建议学MATLAB。这个阶段下,只要学会简单的调用函数即可,暂时不用深究实现的细节。推荐《数字图像处理matlab版》、《学习OpenCV》。
图像处理的基础理论
这部分的理论是需要高数、复变、线性代数、信号与系统、数字信号处理等基础,基础不好的话,建议先补补基础再来。看不懂的理论也可以暂时先放下,或许学到后面就自然而然地开窍了。推荐《数字图像处理》。
基于FPGA的图像处理
把前面学到的理论运用到FPGA上面,如果这时你有前面第七个阶段的水平,你将轻松地独立完成图像算法设计(图像处理是离不开接口的,上面第五个阶段有讲)。推荐《基于FPGA的嵌入式图像处理系统设计》、《基于FPGA的数字图像处理原理及应用》。
进一步钻研数学。要在算法上更上一层,必然需要更多的数学,所以这里建议学习实分析、泛涵分析、小波分析等。
1 基于FX2N-48MRPLC的交通灯控制 \x0d\2 西门子PLC控制的四层电梯毕业设计论文 \x0d\3 PLC电梯控制毕业论文 \x0d\4 基于plc的五层电梯控制 \x0d\5 松下PLC控制的五层电梯设计 \x0d\6 基于PLC控制的立体车库系统设计 \x0d\7 PLC控制的花样喷泉 \x0d\8 三菱PLC控制的花样喷泉系统 \x0d\9 PLC控制的抢答器设计 \x0d\10 世纪星组态 PLC控制的交通灯系统 \x0d\11 X62W型卧式万能铣床设计 \x0d\12 四路抢答器PLC控制 \x0d\13 PLC控制类毕业设计论文 \x0d\14 铁路与公路交叉口护栏自动控制系统 \x0d\15 基于PLC的机械手自动 *** 作系统 \x0d\16 三相异步电动机正反转控制 \x0d\17 基于机械手分选大小球的自动控制 \x0d\18 基于PLC控制的作息时间控制系统 \x0d\19 变频恒压供水控制系统 \x0d\20 PLC在电网备用自动投入中的应用 \x0d\21 PLC在变电站变压器自动化中的应用 \x0d\22 FX2系列PCL五层电梯控制系统 \x0d\23 PLC控制的自动售货机毕业设计论文 \x0d\24 双恒压供水西门子PLC毕业设计 \x0d\25 交流变频调速PLC控制电梯系统设计毕业论文 \x0d\26 基于PLC的三层电梯控制系统设计 \x0d\27 PLC控制自动门的课程设计 \x0d\28 PLC控制锅炉输煤系统 \x0d\29 PLC控制变频调速五层电梯系统设计 \x0d\30 机械手PLC控制设计 \x0d\31 基于PLC的组合机床控制系统设计 \x0d\32 PLC在改造z-3040型摇臂钻床中的应用 \x0d\33 超高压水射流机器人切割系统电气控制设计 \x0d\34 PLC在数控技术中进给系统的开发中的应用 \x0d\35 PLC在船用牵引控制系统开发中的应用 \x0d\36 智能组合秤控制系统设计 \x0d\37 S7-200PLC在数控车床控制系统中的应用 \x0d\38 自动送料装车系统PLC控制设计 \x0d\39 三菱PLC在五层电梯控制中的应用 \x0d\40 PLC在交流双速电梯控制系统中的应用 \x0d\41 PLC电梯控制毕业论文 \x0d\42 基于PLC的电机故障诊断系统设计 \x0d\43 欧姆龙PLC控制交通灯系统毕业论文 \x0d\44 PLC在配料生产线上的应用毕业论文 \x0d\45 三菱PLC控制的四层电梯毕业设计论文 \x0d\46 全自动洗衣机PLC控制毕业设计论文 \x0d\47 工业洗衣机的PLC控制毕业论文 \x0d\48 《双恒压无塔供水的PLC电气控制》 \x0d\49 基于三菱PLC设计的四层电梯控制系统 \x0d\50 西门子PLC交通灯毕业设计 \x0d\51 自动铣床PLC控制系统毕业设计 \x0d\52 PLC变频调速恒压供水系统 \x0d\53 PLC控制的行车自动化控制系统 \x0d\54 基于PLC的自动售货机的设计 \x0d\55 基于PLC的气动机械手控制系统 \x0d\56 PLC在电梯自动化控制中的应用 \x0d\57 组态控制交通灯 \x0d\58 PLC控制的升降横移式自动化立体车库 \x0d\59 PLC在电动单梁天车中的应用 \x0d\60 PLC在液体混合控制系统中的应用 \x0d\61 基于西门子PLC控制的全自动洗衣机仿真设计 \x0d\62 基于三菱PLC控制的全自动洗衣机 \x0d\63 基于plc的污水处理系统 \x0d\64 恒压供水系统的PLC控制设计 \x0d\65 基于欧姆龙PLC的变频恒压供水系统设计 \x0d\66 西门子PLC编写的花样喷泉控制程序 \x0d\67 欧姆龙PLC编写的全自动洗衣机控制程序 \x0d\68 景观温室控制系统的设计 \x0d\69 贮丝生产线PLC控制的系统 \x0d\70 基于PLC的霓虹灯控制系统 \x0d\71 PLC在砂光机控制系统上的应用 \x0d\72 磨石粉生产线控制系统的设计 \x0d\73 自动药片装瓶机PLC控制设计 \x0d\74 装卸料小车多方式运行的PLC控制系统设计 \x0d\75 PLC控制的自动罐装机系统 \x0d\76 基于CPLD的可控硅中频电源 \x0d\77 西门子PLC编写的花样喷泉控制程序 \x0d\78 欧姆龙PLC编写的全自动洗衣机控制程序 \x0d\79 PLC在板式过滤器中的应用 \x0d\80 PLC在粮食存储物流控制系统设计中的应用 \x0d\81 变频调速式疲劳试验装置控制系统设计 \x0d\82 基于PLC的贮料罐控制系统 \x0d\83 基于PLC的智能交通灯监控系统设计 \x0d\\x0d\1基于labVIEW虚拟滤波器的设计与实现 \x0d\2双闭环直流调速系统设计 \x0d\3单片机脉搏测量仪 \x0d\4单片机控制的全自动洗衣机毕业设计论文 \x0d\5FPGA电梯控制的设计与实现 \x0d\6恒温箱单片机控制 \x0d\7基于单片机的数字电压表 \x0d\8单片机控制步进电机毕业设计论文 \x0d\9函数信号发生器设计论文 \x0d\10110KV变电所一次系统设计 \x0d\11报警门铃设计论文 \x0d\1251单片机交通灯控制 \x0d\13单片机温度控制系统 \x0d\14CDMA通信系统中的接入信道部分进行仿真与分析 \x0d\15仓库温湿度的监测系统 \x0d\16基于单片机的电子密码锁 \x0d\17单片机控制交通灯系统设计 \x0d\18基于DSP的IIR数字低通滤波器的设计与实现 \x0d\19智能抢答器设计 \x0d\20基于LabVIEW的PC机与单片机串口通信 \x0d\21DSP设计的IIR数字高通滤波器 \x0d\22单片机数字钟设计 \x0d\23自动起闭光控窗帘毕业设计论文 \x0d\24三容液位远程测控系统毕业论文 \x0d\25基于Matlab的PWM波形仿真与分析 \x0d\26集成功率放大电路的设计 \x0d\27波形发生器、频率计和数字电压表设计 \x0d\28水位遥测自控系统 毕业论文 \x0d\29宽带视频放大电路的设计 毕业设计 \x0d\30简易数字存储示波器设计毕业论文 \x0d\31球赛计时计分器 毕业设计论文 \x0d\32IIR数字滤波器的设计毕业论文 \x0d\33PC机与单片机串行通信毕业论文 \x0d\34基于CPLD的低频信号发生器设计毕业论文 \x0d\35110kV变电站电气主接线设计 \x0d\36m序列在扩频通信中的应用 \x0d\37正弦信号发生器 \x0d\38红外报警器设计与实现 \x0d\39开关稳压电源设计 \x0d\40基于MCS51单片机温度控制毕业设计论文 \x0d\41步进电动机竹竿舞健身娱乐器材 \x0d\42单片机控制步进电机 毕业设计论文 \x0d\43单片机汽车倒车测距仪 \x0d\44基于单片机的自行车测速系统设计 \x0d\45水电站电气一次及发电机保护 \x0d\46基于单片机的数字显示温度系统毕业设计论文 \x0d\47语音电子门锁设计与实现 \x0d\48工厂总降压变电所设计-毕业论文 \x0d\49单片机无线抢答器设计 \x0d\50基于单片机控制直流电机调速系统毕业设计论文 \x0d\51单片机串行通信发射部分毕业设计论文 \x0d\52基于VHDL语言PLD设计的出租车计费系统毕业设计论文 \x0d\53超声波测距仪毕业设计论文 \x0d\54单片机控制的数控电流源毕业设计论文 \x0d\55声控报警器毕业设计论文 \x0d\56基于单片机的锁相频率合成器毕业设计论文 \x0d\57基于Multism/protel的数字抢答器 \x0d\58单片机智能火灾报警器毕业设计论 \x0d\59无线多路遥控发射接收系统设计毕业论文 \x0d\60单片机对玩具小车的智能控制毕业设计论文 \x0d\61数字频率计毕业设计论文 \x0d\62基于单片机控制的电机交流调速毕业设计论文 \x0d\63楼宇自动化--毕业设计论文 \x0d\64车辆牌照图像识别算法的实现--毕业设计 \x0d\65超声波测距仪--毕业设计 \x0d\66工厂变电所一次侧电气设计 \x0d\67电子测频仪--毕业设计 \x0d\68点阵电子显示屏--毕业设计 \x0d\69电子电路的电子仿真实验研究 \x0d\70基于51单片机的多路温度采集控制系统 \x0d\71基于单片机的数字钟设计 \x0d\72小功率不间断电源(UPS)中变换器的原理与设计 \x0d\73自动存包柜的设计 \x0d\74空调器微电脑控制系统 \x0d\75全自动洗衣机控制器 \x0d\76电力线载波调制解调器毕业设计论文 \x0d\77图书馆照明控制系统设计 \x0d\78基于AC3的虚拟环绕声实现 \x0d\79电视伴音红外转发器的设计 \x0d\80多传感器障碍物检测系统的软件设计 \x0d\81基于单片机的电器遥控器设计 \x0d\82基于单片机的数码录音与播放系统 \x0d\83单片机控制的霓虹灯控制器 \x0d\84电阻炉温度控制系统 \x0d\85智能温度巡检仪的研制 \x0d\86保险箱遥控密码锁 毕业设计 \x0d\8710KV变电所的电气部分及继电保护 \x0d\88年产26000吨乙醇精馏装置设计 \x0d\89卷扬机自动控制限位控制系统 \x0d\90铁矿综合自动化调度系统 \x0d\91磁敏传感器水位控制系统 \x0d\92继电器控制两段传输带机电系统 \x0d\93广告灯自动控制系统 \x0d\94基于CFA的二阶滤波器设计 \x0d\95霍尔传感器水位控制系统 \x0d\96全自动车载饮水机 \x0d\97浮球液位传感器水位控制系统 \x0d\98干簧继电器水位控制系统 \x0d\99电接点压力表水位控制系统 \x0d\100低成本智能住宅监控系统的设计 \x0d\101大型发电厂的继电保护配置 \x0d\102直流 *** 作电源监控系统的研究 \x0d\103悬挂运动控制系统 \x0d\104气体泄漏超声检测系统的设计 \x0d\105电压无功补偿综合控制装置 \x0d\106FC-TCR型无功补偿装置控制器的设计 \x0d\107DSP电机调速 \x0d\108150MHz频段窄带调频无线接收机 \x0d\109电子体温计 \x0d\110基于单片机的病床呼叫控制系统 \x0d\111红外测温仪 \x0d\112基于单片微型计算机的测距仪 \x0d\113智能数字频率计 \x0d\114基于单片微型计算机的多路室内火灾报警器 \x0d\115信号发生器 \x0d\116基于单片微型计算机的语音播出的作息时间控制器 \x0d\117交通信号灯控制电路的设计 \x0d\118基于单片机步进电机控制系统设计 \x0d\119多路数据采集系统的设计 \x0d\120电子万年历 \x0d\121遥控式数控电源设计 \x0d\122110kV降压变电所一次系统设计 \x0d\123220kv变电站一次系统设计 \x0d\124智能数字频率计 \x0d\125信号发生器 \x0d\126基于虚拟仪器的电网主要电气参数测试设计 \x0d\127基于FPGA的电网基本电量数字测量系统的设计 \x0d\128风力发电电能变换装置的研究与设计 \x0d\129电流继电器设计 \x0d\130大功率电器智能识别与用电安全控制器的设计 \x0d\131交流电机型式试验及计算机软件的研究 \x0d\132单片机交通灯控制系统的设计 \x0d\133智能立体仓库系统的设计 \x0d\134智能火灾报警监测系统 \x0d\135基于单片机的多点温度检测系统 \x0d\136单片机定时闹钟设计 \x0d\137湿度传感器单片机检测电路制作 \x0d\138智能小车自动寻址设计--小车悬挂运动控制系统 \x0d\139探讨未来通信技术的发展趋势 \x0d\140音频多重混响设计 \x0d\141单片机呼叫系统的设计 \x0d\142基于FPGA和锁相环4046实现波形发生器 \x0d\143基于FPGA的数字通信系统 \x0d\144基于单片机的带智能自动化的红外遥控小车 \x0d\145基于单片机AT89C51的语音温度计的设计 \x0d\146智能楼宇设计 \x0d\147移动电话接收机功能电路 \x0d\148单片机演奏音乐歌曲装置的设计 \x0d\149单片机电铃系统设计 \x0d\150智能电子密码锁设计 \x0d\151八路智能抢答器设计 \x0d\152组态控制抢答器系统设计 \x0d\153组态控制皮带运输机系统设计 \x0d\154基于单片机控制音乐门铃 \x0d\155基于单片机控制文字的显示 \x0d\156基于单片机控制发生的数字音乐盒 \x0d\157基于单片机控制动态扫描文字显示系统的设计 \x0d\158基于LMS自适应滤波器的MATLAB实现 \x0d\159D功率放大器毕业论文 \x0d\160无线射频识别系统发射接收硬件电路的设计 \x0d\161基于单片机PIC16F877的环境监测系统的设计 \x0d\162基于ADE7758的电能监测系统的设计 \x0d\163智能电话报警器 \x0d\164数字频率计 课程设计 \x0d\165多功能数字钟电路设计 课程设计 \x0d\166基于VHDL数字频率计的设计与仿真 \x0d\167基于单片机控制的电子秤 \x0d\168基于单片机的智能电子负载系统设计 \x0d\169电压比较器的模拟与仿真 \x0d\170脉冲变压器设计 \x0d\171MATLAB仿真技术及应用 \x0d\172基于单片机的水温控制系统 \x0d\173基于FPGA和单片机的多功能等精度频率计 \x0d\174发电机-变压器组中微型机保护系统 \x0d\175基于单片机的鸡雏恒温孵化器的设计 \x0d\176数字温度计的设计 \x0d\177生产流水线产品产量统计显示系统 \x0d\178水位报警显时控制系统的设计 \x0d\179红外遥控电子密码锁的设计 \x0d\180基于MCU温控智能风扇控制系统的设计 \x0d\181数字电容测量仪的设计 \x0d\182基于单片机的遥控器的设计 \x0d\183200电话卡代拨器的设计 \x0d\184数字式心电信号发生器硬件设计及波形输出实现 \x0d\185电压稳定毕业设计论文 \x0d\186基于DSP的短波通信系统设计(IIR设计) \x0d\187一氧化碳报警器 \x0d\188网络视频监控系统的设计 \x0d\189全氢罩式退火炉温度控制系统 \x0d\190通用串行总线数据采集卡的设计 \x0d\191单片机控制单闭环直流电动机的调速控制系统 \x0d\192单片机电加热炉温度控制系统 \x0d\193单片机大型建筑火灾监控系统 \x0d\194USB接口设备驱动程序的框架设计 \x0d\195基于Matlab的多频率FMICW的信号分离及时延信息提取 \x0d\196正弦信号发生器 \x0d\197小功率UPS系统设计 \x0d\198全数字控制SPWM单相变频器 \x0d\199点阵式汉字电子显示屏的设计与制作 \x0d\200基于AT89C51的路灯控制系统设计 \x0d\200基于AT89C51的路灯控制系统设计 \x0d\201基于AT89C51的宽范围高精度的电机转速测量系统 \x0d\202开关电源设计 \x0d\203基于PDIUSBD12和K9F2808简易USB闪存设计 \x0d\204微型机控制一体化监控系统 \x0d\205直流电机试验自动采集与控制系统的设计 \x0d\206新型自动装d机控制系统的研究与开发 \x0d\207交流异步电机试验自动采集与控制系统的设计 \x0d\208转速闭环控制的直流调速系统的仿真与设计 \x0d\209基于单片机的数字直流调速系统设计 \x0d\210多功能频率计的设计 \x0d\21118信息移频信号的频谱分析和识别 \x0d\212集散管理系统—终端设计 \x0d\213基于MATLAB的数字滤波器优化设计 \x0d\214基于AT89C51SND1C的MP3播放器 \x0d\215基于光纤的汽车CAN总线研究 \x0d\216汽车倒车雷达 \x0d\217基于DSP的电机控制 \x0d\218超媒体技术 \x0d\219数字电子钟的设计与制作 \x0d\220温度报警器的电路设计与制作 \x0d\221数字电子钟的电路设计 \x0d\222鸡舍电子智能补光器的设计 \x0d\223高精度超声波传感器信号调理电路的设计 \x0d\224电子密码锁的电路设计与制作 \x0d\225单片机控制电梯系统的设计 \x0d\226常用电器维修方法综述 \x0d\227控制式智能计热表的设计 \x0d\228电子指南针设计 \x0d\229汽车防撞主控系统设计 \x0d\230单片机的智能电源管理系统 \x0d\231电力电子技术在绿色照明电路中的应用 \x0d\232电气火灾自动保护型断路器的设计 \x0d\233基于单片机的多功能智能小车设计 \x0d\234对漏电保护器安全性能的剖析 \x0d\235解析民用建筑的应急照明 \x0d\236电力拖动控制系统设计 \x0d\237低频功率放大器设计 \x0d\238银行自动报警系统
以上就是关于请高人解释一下集成电路设计中 可编程逻辑器件设计(PLD)和现场可编程逻辑阵列设计(FPGA)和两者的区别全部的内容,包括:请高人解释一下集成电路设计中 可编程逻辑器件设计(PLD)和现场可编程逻辑阵列设计(FPGA)和两者的区别、FPGA现在学起来怎么样难不需要了解哪些基础课程、大学PLC课程设计一般有哪些题目等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)