兼顾FPGA和单片机

当今,FPGA和单片机的应用非常广泛,在有FPGA知识的基础上,笔者认为可以把FPGA作为主要的学习目标,单片机作为辅助技能。其实二者是相互促进的。不管是FPGA还是单片机的开发其实都是基于较强的逻辑性,在这一点上二者是有共同之处的,但是在程序编写的逻辑性上,FPGA所用的硬件描述语言是要超出C语言不少的。
FPGA编写出一个完整的功能是需要对整个工程架构非常熟悉才能完成的,要先学好状态机,然后各种组合、时序逻辑,折腾起来对于个人的逻辑思维能力有着很强的锻炼效果,而这种锻炼是每一个逻辑设计人员都要有的,当你的逻辑思维能力很出色的时候,学习单片机也就非常容易了。
FPGA其实是硬件系统,FPGA的开发过程能使开发人员对很多的硬件底层都有接触和了解,比如简单的一个串口,可能在单片机上直接使用几个库函数就搞定,但是FPGA将会接触到数据接收的模式,波特率和系统时钟的设置算法以及数据的移位,使能,各种标记位的设置等等。一个熟知底层架构的嵌入式工程师才能走的更远。
单片机和FPGA的应用方面,虽然现在SOC很火热,Xilinx和intel都将ARM核嵌入到FPGA内部,但也有很多公司用单片机和FPGA架构。将单片机作为FPGA的上位机,向FPGA发送指令,FPGA去做各种算法实现和逻辑控制。因为FPGA的工作频率可以很高,IO翻转速度也相当快,然后对于数字信号处理等的算法方面也有很多的优势,所以在射频微波领域有着广泛的应用。
FPGA真的可以说是一个很强大的系统,它的灵活性很强,虽然对于很多功能上可能没有单片机使用起来那么方便,但是当你对这两个都有一定的了解认识以后发现,同时能将他们玩转是一件很有趣的事情。
版权所有权归卿萃科技 杭州FPGA事业部,转载请注明出处
作者:杭州卿萃科技ALIFPGA
原文地址:杭州卿萃科技FPGA极客空间 微信公众号

扫描二维码关注杭州卿萃科技FPGA极客空间
兼顾FPGA和单片机的更多相关文章
- FPGA学习笔记(一)——初识FPGA
###### [该随笔部分内容转载自小梅哥] ######### FPGA(Field-Programmable Gate Array,现场可编程门阵列),正如其名,FPGA内部有大量的可 ...
- 浅谈FPGA
浅谈FPGA 前言 生活中永远都不会缺少「 为什么 」,于最近就被合胜学长了,问了一个看似简单却又极具意义的问题,为什么需要FPGA?FPGA与单片机的区别是什么?瞬间刷新了我入门三天FPGA的冲击感 ...
- FPGA与嵌入式一点见解
FPGA:即现场可编程门阵列,它是在PAL.GAL.CPLD等可编程器件的基础上进一步发展的产物.它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可 ...
- 初始FPGA
FPGA和单片机的区别 单片机 FPGA 哈佛总线结构,或者冯诺依曼结构 查找表 串行执行 并行执行 软件范畴 硬件范畴 C/汇编语言编程 Verilog HDL/ VHDL硬件描述语言编程 FPGA ...
- FPGA内部硬件结构简介
我们知道FPGA内部有很多可供用户任意配置的资源,其中包括:可编程逻辑.可编程I/O.互连线.IP核等资源,很多学过数字电路的人都知道与或非门可以构成几乎所有的数字电路,但是FPGA内部最基本的主要单 ...
- 基于basys2驱动LCDQC12864B的verilog设计图片显示
话不多说先上图 前言 在做这个实验的时候在网上找了许多资料,都是关于使用单片机驱动LCD显示,确实用单片机驱动是要简单不少,记得在FPGA学习交流群里问问题的时候,被前辈指教,说给我最好的指教便是别在 ...
- 全网首创ISE入门级教程
转眼间我已经大三了,现在成为了实验室的负责人,对于下一届学生的纳新重任就交到了我的手上,想采取不同的方法暑假尽可能对他们进行一些培训,所以制作了此教程,说实话,在网上还没有找到关于ISE的入门级使用教 ...
- 蚁视新家show,小伙伴们快来增加有范儿有爱的蚁视大家庭吧!
蚁视搬新家啦.新家在学院路上,离中关村非常近.离宇宙的中心非常近,离好多同学也非常近有木有! 新家绝对是超级创客范儿,绝对理想中的工作环境有木有!愿意增加蚁视的小伙伴们.快快来吧! 以下是蚁视新办公室 ...
- 【第一季】CH04_FPGA设计Verilog基础(一)Enter a post title
[第一季]CH04_FPGA设计Verilog基础(一) 4.1 Verilog HDL 代码规范 u 项目构架设计 项目的构架用于团队的沟通,以及项目设计的全局把控 u 接口时序设计规范 模块和模块 ...
随机推荐
- 重温ASP.NET WebAPI(一)初阶
重温ASP.NET WebAPI(一)初阶 前言 本文为个人对WebApi的回顾无参考价值.主要简单介绍WEB api和webapi项目的基本结构,并创建简单地webaapi项目实现CRUD操作. ...
- Prism 4 文档 ---第10章 Silverlight和WPF之间共享代码
本主题帮助你理解来自Prism的多目标和它的优缺点.多目标的代码针对两个不同的平台有大致相同的代码库.这允许同时保持代码尽可能多一样能够产生针对两种不同技术的二进制文件.在这种情况下,本节介绍 ...
- Python3 数字Number(六)
Python 数字数据类型用于存储数值. 数据类型是不允许改变的,这就意味着如果改变数字数据类型得值,将重新分配内存空间. 以下实例在变量赋值时 Number 对象将被创建: var1 = 1 var ...
- 今天开始写些随笔,就从Jplayer开始吧
今天才开始用Jplayer,可能有点落伍了,但是看到网上千篇一律的使用说明,开始决定把自己的使用心得分享一下,废话不多说,开始吧. Step1: 官网上有具体的搭建顺序,URL:http://www. ...
- Code Cache相关知识总结
codecache代码缓存区,主要存放JIT所编译的代码,同时还有Java所使用的本地方法代码也会存储在codecache中.不同的jvm.不同的启动方式codecache的默认值大小也不尽相同. J ...
- TeamView
1.TeamView TeamViewer是一个能在任何防火墙和NAT代理的后台用于远程控制,桌面共享和文件传输的简单且快速的解决方案.为了连接到另一台计算机,只需要在两台计算机上同时运行 TeamV ...
- iOS - 正则表达式判断邮箱、身份证,车牌,URL等..是否正确:
//邮箱 + (BOOL) validateEmail:(NSString *)email { NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Z ...
- Web框架Django
Django是一个开放源代码的Web应用框架,由Python写成. 1. Ubuntu Django安装: pip install django 2. django-admin.py创建一个项目 dj ...
- Android学习问题记录之java.lang.UnsatisfiedLinkError
1.问题描述 Android Studio引入第三方类库时,出现错误java.lang.UnsatisfiedLinkError: 11-09 14:58:05.500 13280-13280/cn. ...
- threejs Object的点击(鼠标)事件(获取点击事件的object)
objects=[]; raycaster = new THREE.Raycaster(); mouse = new THREE.Vector2(); //监听全局点击事件,通过ray检测选中哪一个o ...