FPGA实现UART和MCU一体化设计
摘要:现代数字电子系统设计正在朝着新的方向发展,即利用FPGA技术进行系境设计。介绍了一种利用FPGA来实现通用串行异步收发器(UA-RT)和控制通信的MCU的数字系统,底层设计模块采用VHDL硬件描述语言实现,并进行了仿真验证。该设计方法和理念为以后的计算机系统以及其他的数字电子系统提供了一个新的思路,应用此技术可以使系统设计更加紧凑、可靠。
关键词:计算机系统;FPGA;VHDL;UART;MCU;有限状态机
计算机技术和微电子技术的发展为现代电子设计提供了新的方法和途径。传统的电子设计采用功能独立的分立元件进行功能组合从而实现特定的功能,计算机设计初期也一直采用这种模式。但是随着近代电子技术的进步,尤其是FPGA(Field Programmable Gate Array)的出现,使得电子设计和计算机设计都发生了很大的变化,尤其是在数字电子系统的设计领域。利用现场可编程门阵列FPGA可以实现任何数字器件的功能,而且还可以大大缩短设计时间,减少PCB的面积,提高信号的传输质量,提高系统的可靠性,增加设计的灵活性和可维护性。本文采用FPGA技术实现一个MCU与串行通信外设进行简易通信的平台,一方面了解了计算机的一些控制原理和工作流程;另一方面可以了解利用FPGA进行电子设计的优越性。
1 FPGA与电子设计
用FPGA进行计算机I/O通信设备的开发设计,实现了功能类似Intel 8250及8251,美国半导体公司的16550串行通信接口的功能,同时实现了带有简单类忙编指令的微控制单元MCU来控制与外围I/O设备的通信。整个设计采用VHDL在Altera的QuartusⅡV6.0进行设计实现,并进行仿真验证。
1.1 FPGA的原理及其开发平台
通常的FPGA由布线资源分隔的可编程逻辑单元构成阵列,又由司编程I/O单元围绕阵列构成整个芯片,排成这列的逻辑单元由布线通道中可编程内连线连接来实现一定的逻辑功能,也就是说分段的互连线可以通过可编程开关以任意方式连接起来形成逻辑单元的信号线。一个FPGA主要由逻辑阵列块(LAB)、I/O块、RAM块和可编程的行/列线等组成。
1.2 FPGA的开发软件及设计流程
FPGA的开发软件一般由生产FPGA的厂商根据自己的产品特性提供专门的开发工具,目前主要流行的是Xilinx的ISE平台和Altera的Quar-tus平台。本文使用的是后者。使用该设计开发软件能够完成FPGA系统设计的流程基本包括了设计输入(原理图输入或HDL语言描述输入)、综合、布线、下载等工作。本文所设计的电子系统设计输入采用VHDL语言。
选定了设计平台后,只要考虑所要设计系统的功能,借助集成开发环境即可完成想要的设计。一般来说,利用FPGA进行电子设计的完整的设计流程分为电路的设计与输入、功能仿真、综合、综合后仿真、实现、布局布线后仿真、配置下载与调试等步骤。由于FPGA的灵活性和设计的可重复性,可以保证在任何仿真或者验证步骤出现问题时都能根据错误定位返回相应的步骤,以进行更改或者重新设计。这是传统电子设计方法无法比拟的。
2 系统设计与实现
本文所设计的系统实现了一个可简易汇编指令的微控制器MCU和一个计算机组成中的外围串行通信I/O设备。通过实现的一部分I/O输入/输出指令和条件跳转指令可实现与外设的通信控制。系统功能模块划分如图1所示。
2.1 串行通信外设的设计与实现
在计算机系统组成中,串行通信占据重要地位,它的使用范围包括计算机与外部设备之间,计算机与计算机之间、甚至在进行前期CPU设计时都会用到。传统的设计方法是应用Intel公司的8250/8251或者美国半导体的16550等芯片,但因设计复杂,占用电路体积大,而且出现问题不容易跟踪定位,所以本文采用FPGA实现。将串行通信的关键器件UART集成到FPGA内部,增加系统的可靠性,缩小PCB板体积,使得系统更加紧致,且能根据需要进行适当的设计、扩充和裁剪。实现的该I/O设备功能划分如图2所示。
评论