fpga入门学习之一:fpga简介
2015-08-24 13:44
344 查看
FPGA简介
作者:havi.houston 联系方式:havihouston@outlook.com
首先说说什么是FPGA,很多前辈都喜欢这么比喻,FPGA就像是一堆积木,你可以用它去搭建你想要的一些模块。对于电子工程师而言,可能手边少了某一种芯片,又没有办法即时购买,干脆就用FPGA自己搭建一个功能模块。对已芯片工程师而言,我可以将自己的想法先用FPGA实现并验证好了,在用它去指导我的芯片设计。
说到底,FPGA就是一个能够按照自己的意愿去实现一些功能模块的这么一种芯片。
那问题就来啦,DSP也好、单片机也好都能够实现你说的这些功能,那我为什么要选择FPGA呢?笔者认为选择FPGA的原因就在于,我如果想实现一个20个串口收发数据的模块怎么办,我如果想实现一个几百兆时钟的设计怎么办,如果你想灵活的实现也接口定义怎么办,我如果想做一个超级复杂的运算怎么办。这些问题在FPGA中就能很好的解决,因为FPGA内部的逻辑资源是很丰富的,你可以让他变成串口接口,可以让他利用并行运算来加快数据的处理,还可以在高速时钟下设计你的系统,这就是FPGA相对于其他的一些控制芯片的好处。
那FPGA是怎样实现逻辑的呢,优势通过什么方式来实现的呢。
说到底实现FPGA的逻辑编程,有两种方法,一种是通过VERILOG/VHDL语言来实现逻辑编程,另一种方法就是用图形来搭建。所以学习FPGA的一个重要步骤就是了解FPGA能看得懂的语言。
那写好了FPGA的语言,这些语言有时怎么映射到FPGA内部去的呢?这是另一个学习的方面,VERLOG语言的硬件映射和FPGA的内部结构。
知道了FPGA语言的映射,那怎样去验证我这个程序设计的是否正确呢?不正确那他的错误又在哪个地方呢?这个就是关于FPGA仿真和验证的步骤。
综上所述,就可以得到我们应该怎样却学习fpga以及一个FPGA设计的大致流程。如下所示:
1)熟悉FPGA编程语言
2)熟悉FPGA的内部结构
3)熟悉FPGA的开发工具
4)了解FPGA的开发流程
4)了解如何做代码的仿真和验证
5)了解工具应用和程序设计的技巧和细节
在以后的章节里我会和大家一些学习每一部分的内容,来一起学习FPGA。
作者:havi.houston 联系方式:havihouston@outlook.com
首先说说什么是FPGA,很多前辈都喜欢这么比喻,FPGA就像是一堆积木,你可以用它去搭建你想要的一些模块。对于电子工程师而言,可能手边少了某一种芯片,又没有办法即时购买,干脆就用FPGA自己搭建一个功能模块。对已芯片工程师而言,我可以将自己的想法先用FPGA实现并验证好了,在用它去指导我的芯片设计。
说到底,FPGA就是一个能够按照自己的意愿去实现一些功能模块的这么一种芯片。
那问题就来啦,DSP也好、单片机也好都能够实现你说的这些功能,那我为什么要选择FPGA呢?笔者认为选择FPGA的原因就在于,我如果想实现一个20个串口收发数据的模块怎么办,我如果想实现一个几百兆时钟的设计怎么办,如果你想灵活的实现也接口定义怎么办,我如果想做一个超级复杂的运算怎么办。这些问题在FPGA中就能很好的解决,因为FPGA内部的逻辑资源是很丰富的,你可以让他变成串口接口,可以让他利用并行运算来加快数据的处理,还可以在高速时钟下设计你的系统,这就是FPGA相对于其他的一些控制芯片的好处。
那FPGA是怎样实现逻辑的呢,优势通过什么方式来实现的呢。
说到底实现FPGA的逻辑编程,有两种方法,一种是通过VERILOG/VHDL语言来实现逻辑编程,另一种方法就是用图形来搭建。所以学习FPGA的一个重要步骤就是了解FPGA能看得懂的语言。
那写好了FPGA的语言,这些语言有时怎么映射到FPGA内部去的呢?这是另一个学习的方面,VERLOG语言的硬件映射和FPGA的内部结构。
知道了FPGA语言的映射,那怎样去验证我这个程序设计的是否正确呢?不正确那他的错误又在哪个地方呢?这个就是关于FPGA仿真和验证的步骤。
综上所述,就可以得到我们应该怎样却学习fpga以及一个FPGA设计的大致流程。如下所示:
1)熟悉FPGA编程语言
2)熟悉FPGA的内部结构
3)熟悉FPGA的开发工具
4)了解FPGA的开发流程
4)了解如何做代码的仿真和验证
5)了解工具应用和程序设计的技巧和细节
在以后的章节里我会和大家一些学习每一部分的内容,来一起学习FPGA。
相关文章推荐
- 线程有两种实现方法的具体区别
- poj-3580-SuperMemo-splay
- ssh免密码登录之ssh-keygen的用法
- 游戏中调用SDK提供的支付接口 头文件的包含
- Set Apache Password Protected Directories With .htaccess File
- uva 3713 Astronauts (2-sat)
- Linq 之 删除数据
- 分享:带波形的语音播放工具(wavesurfer-js)
- ubuntu编译airplay
- 【安卓学习问题日志】The project was not built due to "A resource exists with a different case
- 汇编语言学习(二)
- 好书推荐
- 【more effective c++读书笔记】【第1章】基础议题(1)
- [LeedCode OJ]#221 Maximal Square
- 【more effective c++读书笔记】【第1章】基础议题(1)
- 产品多规格
- Link Aggregation and LACP with Open vSwitch
- [转]float,double和decimal类型
- Objective-C之平铺导航、标签导航、树形结构导航
- WPF StimulSoft Reports 2014 初探。