如何学习FPGA?
牛人牛语录:关于FPGA、DSP和ARM这世界真是疯了,貌似有人连FPGA原理是什么都不知道就开始来学习FPGA了。DSP就是一个指令比较独特的处理器。它虽然是通用处理器...
牛人牛语录:关于FPGA、DSP和ARM
这世界真是疯了,貌似有人连FPGA原理是什么都不知道就开始来学习FPGA了。
DSP就是一个指令比较独特的处理器。它虽然是通用处理器,但是实际上不怎么“通用”。技术很牛的人可以用DSP做一台电脑出来跑windows,而实际上真正这么干的肯定是蠢材。用DSP做信号处理,比其他种类的处理器要厉害;用DSP做信号处理之外的事情,却并不见长。而且信号处理的代码一般需要对算法很精通的人才能真正写好。数据结构里面的时间复杂度和空间复杂度在这里是一把很严酷的尺子。
FPGA只不过披着软件的外衣,实际上是硬件。
FPGA内部有两层相对独立的电路。
使用者“编码->编译”后生成一个映像,这个映像作用于第一层电路。这层电路之际上就是一个0,1的开关矩阵,这个开关矩阵用来控制第二层工作电路,将第二层工作电路配置成一个相应的处理器。理论上FPGA可以配置成任何需要的处理器,而实际上为了尽量少出bug,FPGA开发都使用已经开发好的“库文件”,也就是把人家能稳定工作的电路图拿过来。因此,对大多数FPGA开发者来说,FPGA内部有几个核基本上只能从库文件里面选——除非你有能力自己设计核心内部的电路和核间总线——ram和rom也是用宏来配置,自己只需要改改外部的专用电路和接线方式等等。甚至外部的专用电路都有库文件,搭个积木就完事了。玩FPGA真正挣钱的人是做积木的人,你原创几个积木并且能申请专利,迫使人家给你交专利费,那你这辈子可以衣食无忧了。
FPGA 区别于ASIC设计 属于硬件设计的范畴 ASIC是硬件全定制 FPGA是硬件半定制。
具体来说 ASIC整个电路都由设计师设计的 用多少资源设计多少资源 一般多用于产品设计。
FPGA资源事先由厂商给定 例如Altera Xilinx等都提供不同系列的FPGA芯片 设计师可以在给定资源下做硬件设计开发。
DSP 主要用于处理信号 事先算法 特点是多级流水 可以加快数据处理的速度 开发环境主要是C语言 可以说DSP应用的范围更专 DSP的设计
可以理解为软件设计 设计师不需要太了解DSP的结构
补充几个小概念
DSP愿意就是指数字信号处理 只不过DSP芯片由于主要功能是实现数字信号处理 实现各种算法 所以简称为DSP(数字信号处理器)
FPGA一样可以做DSP(数字信号处理),就意味着可以用FPGA做硬件设计来实现DSP芯片的功能,当然,相比较专业的DSP芯片 成本太高。
现在除了FPGA和DSP之外还有一个近几年热门的产品 ARM
ARM主要应用与手持设备和嵌入式产品 几乎笼罩了90%的市场份额 可以说ARM开发也偏向于软件开发 设计者主要是讲wince系统或者linux系统移植到ARM开发平台上,然后做各种软件应用开发。
所以 这三个方向都有其不同的应用场合 很难讲谁更有前途 不过 作为我个人而言 更喜欢做硬件设计 所以我选择FPGA作为自己的方向 FPGA。
主要是给设计者提供了一个硬件平台 开发的核心还是需要独立的应用设计和高效的算法设计 所以设计者应该处理好工具的掌握和具体设计的区别。
FPGA:
并行处理,内部资源多
DSP:成本低,低功耗,高性能的处理能力。具有强大的外部通信接口(SCI,SPI,CAN)便于构成大的控制系统。
特点:(1)在一个指令周期内可完成一次乘法和一次加法;
(2)程序和数据空间分开,可以同时访问指令和数据;
(3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问; (4)具有低开销或无开销循环及跳转的硬件支持;
(5)快速的中断处理和硬件I/O支持;
(6)具有在单周期内操作的多个硬件地址产生器;
(7)可以并行执行多个操作;
(8)支持流水线操作,使取指、译码和执行等操作可以重叠执行。 展开
这世界真是疯了,貌似有人连FPGA原理是什么都不知道就开始来学习FPGA了。
DSP就是一个指令比较独特的处理器。它虽然是通用处理器,但是实际上不怎么“通用”。技术很牛的人可以用DSP做一台电脑出来跑windows,而实际上真正这么干的肯定是蠢材。用DSP做信号处理,比其他种类的处理器要厉害;用DSP做信号处理之外的事情,却并不见长。而且信号处理的代码一般需要对算法很精通的人才能真正写好。数据结构里面的时间复杂度和空间复杂度在这里是一把很严酷的尺子。
FPGA只不过披着软件的外衣,实际上是硬件。
FPGA内部有两层相对独立的电路。
使用者“编码->编译”后生成一个映像,这个映像作用于第一层电路。这层电路之际上就是一个0,1的开关矩阵,这个开关矩阵用来控制第二层工作电路,将第二层工作电路配置成一个相应的处理器。理论上FPGA可以配置成任何需要的处理器,而实际上为了尽量少出bug,FPGA开发都使用已经开发好的“库文件”,也就是把人家能稳定工作的电路图拿过来。因此,对大多数FPGA开发者来说,FPGA内部有几个核基本上只能从库文件里面选——除非你有能力自己设计核心内部的电路和核间总线——ram和rom也是用宏来配置,自己只需要改改外部的专用电路和接线方式等等。甚至外部的专用电路都有库文件,搭个积木就完事了。玩FPGA真正挣钱的人是做积木的人,你原创几个积木并且能申请专利,迫使人家给你交专利费,那你这辈子可以衣食无忧了。
FPGA 区别于ASIC设计 属于硬件设计的范畴 ASIC是硬件全定制 FPGA是硬件半定制。
具体来说 ASIC整个电路都由设计师设计的 用多少资源设计多少资源 一般多用于产品设计。
FPGA资源事先由厂商给定 例如Altera Xilinx等都提供不同系列的FPGA芯片 设计师可以在给定资源下做硬件设计开发。
DSP 主要用于处理信号 事先算法 特点是多级流水 可以加快数据处理的速度 开发环境主要是C语言 可以说DSP应用的范围更专 DSP的设计
可以理解为软件设计 设计师不需要太了解DSP的结构
补充几个小概念
DSP愿意就是指数字信号处理 只不过DSP芯片由于主要功能是实现数字信号处理 实现各种算法 所以简称为DSP(数字信号处理器)
FPGA一样可以做DSP(数字信号处理),就意味着可以用FPGA做硬件设计来实现DSP芯片的功能,当然,相比较专业的DSP芯片 成本太高。
现在除了FPGA和DSP之外还有一个近几年热门的产品 ARM
ARM主要应用与手持设备和嵌入式产品 几乎笼罩了90%的市场份额 可以说ARM开发也偏向于软件开发 设计者主要是讲wince系统或者linux系统移植到ARM开发平台上,然后做各种软件应用开发。
所以 这三个方向都有其不同的应用场合 很难讲谁更有前途 不过 作为我个人而言 更喜欢做硬件设计 所以我选择FPGA作为自己的方向 FPGA。
主要是给设计者提供了一个硬件平台 开发的核心还是需要独立的应用设计和高效的算法设计 所以设计者应该处理好工具的掌握和具体设计的区别。
FPGA:
并行处理,内部资源多
DSP:成本低,低功耗,高性能的处理能力。具有强大的外部通信接口(SCI,SPI,CAN)便于构成大的控制系统。
特点:(1)在一个指令周期内可完成一次乘法和一次加法;
(2)程序和数据空间分开,可以同时访问指令和数据;
(3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问; (4)具有低开销或无开销循环及跳转的硬件支持;
(5)快速的中断处理和硬件I/O支持;
(6)具有在单周期内操作的多个硬件地址产生器;
(7)可以并行执行多个操作;
(8)支持流水线操作,使取指、译码和执行等操作可以重叠执行。 展开
展开全部
学习CPLD可以分为几个方面:
1、软件相如quartusⅡ;
2、语言 Verilog HDL接近C语言更加形象易学(本人观点);
3、数电基础;
4、然后再有一个学习板就可以开始做实验了。
学习FPGA可以分为几个方面:
第一步:学习了解FPGA结构,FPGA到底是什么东西,芯片里面有什么,不要开始就拿个开发板照着别人的东西去编程;
第二步:掌握FPGA设计的流程;
第三步:开始学习代码了。
书籍建议:《Altera FPGA/CPLD 设计》(基础篇)
《Verilog 数字系统设计教程》夏宇闻编
电子技术基础(数字部分)第五版
1、软件相如quartusⅡ;
2、语言 Verilog HDL接近C语言更加形象易学(本人观点);
3、数电基础;
4、然后再有一个学习板就可以开始做实验了。
学习FPGA可以分为几个方面:
第一步:学习了解FPGA结构,FPGA到底是什么东西,芯片里面有什么,不要开始就拿个开发板照着别人的东西去编程;
第二步:掌握FPGA设计的流程;
第三步:开始学习代码了。
书籍建议:《Altera FPGA/CPLD 设计》(基础篇)
《Verilog 数字系统设计教程》夏宇闻编
电子技术基础(数字部分)第五版
上海矽旭微电子
2024-04-10 广告
2024-04-10 广告
IC后端学习是微电子领域中的关键环节,涉及将前端设计转化为可生产的芯片版图。这一过程要求学习者掌握复杂的布局、布线技术和相关软件工具,同时了解各种制造工艺约束和可靠性要求。通过学习,不仅能够提升个人的专业技能,还能为公司的产品研发和技术创新...
点击进入详情页
本回答由上海矽旭微电子提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询