标题 | 浅谈单片机与FPGA的异同 |
范文 | 黄金凤 摘要:对于普通高校电子与通信专业的学生,一般在大二、大三学期会学习关于单片机、嵌入式系统设计、DSP、EDA、FPGA、CPLD等相关课程。学生学习完这些课程后,对于这些硬件之间的异同掌握的不是很好,而对于程序设计语言却能熟练掌握。其实,单片机、嵌入式系统、DSP等硬件电路固定的芯片,它们是根据存储程序控制原理,由芯片执行一条条指令完成数据的输入、存储、处理、展现等功能;而FPGA、CPLD芯片属于可编程逻辑器件,它们的电路结构不是固定的,可以通过特定的描述方式得到不同的电路系统结构,从而完成不同的设计任务。本论文从内部逻辑结构和开发方式两方面简述单片机和FPGA芯片,旨在帮助学生理清电子电路系统设计中所应用的核心芯片之间的异同,更好的学习本专业相关课程,更早的认识到未来工作方向。 关键词:单片机; FPGA;异同 中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2016)23-0201-03 1 概述 信息技术正在快速发展,其应用已经深入到各个领域各个方面。如今越来越多的电子产品向着智能化、微型化、低功耗方向发展,其中有的产品还需要实时控制和信号处理。电子系统的复杂性在不断增加,它迫切要求电子设计技术也有相应的变革和飞跃。现在学校为了适应社会对于电子技术人才的需求,普通院校一般都开设关于单片机、嵌入式ARM、DSP、EDA、FPGA等相关课程,很多学生学完这些课程后,对这些芯片异同比较模糊,而对于程序设计语言却能熟练掌握。简单从定义上讲,单片机(MCU),又称为微控制器,在一块半导体芯片上集中了CPU,ROM,RAM,I/O Interface, timer/counter, interrupt system, 构成一台完整的数字计算机。FPGA,现场可编程逻辑阵列,本身没有什么功能,就像一张白纸,想要它有什么功能完全靠编程人员设计,你可以把它变成MCU,也可以变成DSP。论文主要从内部逻辑结构和开发方式两方面简述单片机和FPGA芯片,旨在帮助学生理清电子电路系统设计中所应用的核心芯片之间的异同,更好的学习本专业相关课程,更早的认识到未来工作方向。 2 内部逻辑结构 2.1 单片机 单片机其实是将微型计算机系统集成在了一块芯片上,由运算器、控制器、存储器、总线及输入输出设备接口构成,遵从计算机的工作原理——存储程序控制原理,所以单片机与外部输入输出设备的交流是通过程序来控制的,程序存入程序存储器ROM中,加电后ROM中的程序会像计算机内存中的程序一样逐条执行,执行需要的数据和生成的数据可以存入数据存储器中,单片机计算速度和性能有限,但用在一些基本控制上绰绰有余。 2.2 FPGA 每一块FPGA芯片都是由有限多个带有可编程连接的预定义源组成来实现一种可重构数字电路。FPGA内部主要分三块:可编程的逻辑单元、可编程的连线和可编程的I/O模块。可编程的逻辑单元的基本结构是某种存储器(SRAM、 FLASH等)制成的4输入1输出的“真值表”加上一个D触发器构成。可编程连线上有很多用存储器控制的链接点,通过改写对应存储器的值就可以确定哪些线是连上的,而哪些线是断开的,这就可以把很多可编程逻辑单元组合起来形成大型的逻辑电路。可编程的I/O可以任意的定义某个非专用引脚(FPGA中有专门的非用户可使用的测试、下载用引脚)为输入还是输出,还可以对I/O的电平标准进行设置。 通过单片机和FPGA的内部逻辑结构,我们可以看出,它们的内部结构完全不同,单片机可以看作是将功能固定的一些芯片连接起来,外部输入设备输入的程序和数据以二进制数据形式存放于各自存储器中,由CPU执行指令处理数据得到输出结果,并将输出结果传送给外部输出设备。对于FPGA芯片,每个不同的任务所设计的FPGA内部的元器件数目及其连线是不一样的,外部输入设备输入的二进制数据传送给FPGA内部的LUT得到输入数据的所有输出结果,并将输出结果传送给外部输出设备。 3 开发方式 3.1 单片机系统的开发 为完成某一任务的单片机应用系统需要包含硬件和软件系统。硬件和软件必须紧密结合,协调一致才能正常工作。单片机只是一块芯片而已,本身并无开发能力,要借助开发工具才能实现系统设计。开发工具主要包括电脑、编程器(又称写入器)、仿真机。单片机程序的编写、编译、调试等都是在一定的集成开发环境下进行的。集成开发环境仿真软件(ICE)将文件的编辑,汇编语言的汇编、连接,高级语言的编译、连接高度集成于一体,能对汇编程序和高级程序进行仿真调试。当我们编写好的程序在集成开发环境编译通过后,会形成一个二进制文件(文件名与源程序文件名相同,后缀名为“.BIN”)或十六进制文件(后缀名为“.HEX”),即形成所谓的目标程序。这个目标程序必须利用编程器才能将目标文件烧写到单片机的程序存储器中,从而让单片机系统的硬件和软件真正结合起来,组成一个完整的单片机系统。 3.2 FPGA系统的开发 FPGA是专用集成电路ASIC((Application Specific Integrated Circuits),但有其特殊性,是半定制的,可以通过编程的方式改变硬件电路结构。既然需要硬件编程,也需要集成开发环境,如Quartus II, Max+PlusII等。通过这些工具,可以完成软件平台的设计输入、编译、综合、适配、布局布线优化、仿真。集成开发软件将硬件描述语言等设计输入文件进行编译、综合、适配后得到可下载的二进制码流文件(.sof等)。通过编程器将二进制码流文件下载到FPGA芯片里,FPGA芯片内部的电路连接结构就由二进制码流文件确定下来,构成了ASIC,加上外围设备构成了一个完整的FPGA系统。 通过单片机系统和FPGA系统开发流程图,我们可以看出,它们都需要软件平台的设计、仿真、验证,最终都是生成可下载的二进制码流文件。在各自的集成开发环境里,每一步所需的编辑器、编译器、仿真器、下载器等是不一样的,FPGA系统里还需要综合器、适配器,而单片机系统不需要综合、适配。综合是把语言描述的抽象层次较高的设计描述转化成为抽象层次较低的电路网表,表现为一般的数字逻辑,能够对应到具体的门级逻辑。适配是把综合后的具体数字逻辑映射到具体的不同型号当中的FPGA器件中去,包括选择哪一些基本逻辑单元(主要包含LUT和寄存器单元等),以及布局布线等。FPGA需要通过软件编程改变其内部电路结构,所以需要综合、适配得到软件平台的具体电路结构的映射。 4 结语 单片机相当于一个微型的计算机,它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件;而FPGA却不能看作是一个微型的计算机,所以在结构上,单片机是基于CPU的冯·诺依曼器件,FPGA是基于并行逻辑单元的器件。相应的,单片机的开发是对指令的编程,FPGA的开发是对逻辑单元的连接。FPGA要比单片机底层很多,而且开发工具也要简陋很多。两者的主要应用场合也是不一样的。单片机适合通用任务、通用运算、标准接口。FPGA适合一些极端任务,同时做100个串口收发器、用几十个乘法器做算法的终极改进等。 参考文献: [1]王艳林,李东.单片机原理及应用教学项目设计[J],教育教学论坛, 2016(20). [2] 李广弟.单片机基础[M],北京航空航天出版社,2001. [3] 陈海宴.51单片机原理及应用[M],北京航空航天大学出版社,2010. [4] 刘守义.单片机技术基础[M].西安电子科技大学出版社,2007. [6] 郑利浩,王荃. FPGA数字逻辑设计教程,电子工业出版社,2010. [7]吴厚航.深入浅出玩转FPGA,北京航空航天大学出版社,2010. |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。