浅谈FPGA

前言

生活中永远都不会缺少「 为什么 」,于最近就被合胜学长了,问了一个看似简单却又极具意义的问题,为什么需要FPGA?FPGA与单片机的区别是什么?瞬间刷新了我入门三天FPGA的冲击感,虽然之前有一知半解,一时间竟无法回答上来,经历了一番查资料以及咨询建云学长,至此对此问题有一个浅显的认识,后续将会随着认识的提高,不断补充此篇博客。

FPGA

啥叫FPGA?「 Field Programmable Gate Array 」,领域可编程门阵列,依然是晦涩难懂,对于一个CS的学生来说,相对醒目的还是”Programmable“这个词。相对于以往的Python、PHP、C、C++、C#、Java、JavaScript,等等之类的编程语言来说,我们一直都是基于CPU在编程,由高级语言转换为汇编语言,再进一步转化为机器语言,最后才能成为让CPU看得懂的机器码。我们始终都是基于CPU编程,CPU内部的电路结构,顺序执行指令的方式永远都不会变化。

而FPGA则是基于电路编程,通过硬件描述语言,像Verilog HDL、VHDL对硬件的电路进行描述,通过各大公司的集成设计环境,如XilinX的ISE以及Vivado一样,转化为相应的电路,并烧写到FPGA板卡中,进而实现所需功能。

因而,可以总结类似Python、C等等之类的高级程序语言是软件编程,而Verilog HDL等硬件描述语言则为硬件编程。

FGPA之于单片机

FPGA 单片机
芯片 FPGA CPU
应用领域 通信、图像处理、 芯片验证等 控制
执行速度
串行/并行 并行 串行

小弟大胆设想,通过FPGA可以实现出CPU。深入解剖CPU来说,CPU内部无非是一些门电路,而通过FPGA恰巧可以设计出各种各样的电路,虽然通过FPGA实现的CPU性能方面肯定会比专用CPU性能差上几个级别,这也恰巧体现了FPGA可以用于芯片验证的特点。在设计芯片的过程中,之与以往直接上硬件的验证方式,成本消耗巨大,而FPGA的出现大大降低的研发成本,不得不说FPGA确实是改变世界的一项技术。

最新文章

  1. dbcp数据源配置杂谈
  2. Phonegap 之 iOS银联在线支付(js调用ios端银联支付控件)
  3. 翻译:Knockout 轻松上手 - 1 Knockout 是什么?
  4. CodeForces 176C Playing with Superglue 博弈论
  5. PAT (Basic Level) 1004. 成绩排名 (20)
  6. Android 避免APP启动闪黑屏的解决办法(Theme和Style)
  7. Python计算机视觉3:模糊,平滑,去噪
  8. 多项式ADT的数组实现
  9. bzoj 3594: [Scoi2014]方伯伯的玉米田
  10. 命令行的目录栈(pushd指令与popd指令)
  11. C#设计模式之二十二访问者模式(Visitor Pattern)【行为型】
  12. 可以让你神操作的手机APP推荐 个个都是爆款系列
  13. DIV内文字两端对齐
  14. L1-Day11
  15. 记一次nginx强制将https请求重定向http
  16. sql需注意事项
  17. 手机布局rem的使用(rem)
  18. spring3 hibernate4整合后无法查询数据库
  19. 如何量化考核技术人的 KPI?
  20. Android-startService后台运行

热门文章

  1. BZOJ 1208 宠物收养所 set+二分
  2. python第三十九课——面向对象(二)之初始化属性
  3. Django使用静态文件
  4. 网络嗅探与欺骗(FTP部分)——P201421410029
  5. Kubernetes1.91(K8s)安装部署过程(一)--证书安装
  6. k-center问题-学习
  7. odoo开发历史订单需求整体思路
  8. 20155331《网络对抗技术》Exp4:恶意代码分析
  9. WPF编程,使用WindowChrome实现自定义窗口功能的一种方法。
  10. 牛客网NOIP赛前集训营-提高组(第八场)-B-推箱子[最短路优化建图]