例说FPGA之FPGA板级电路设计五要素
时间:09-18 11:23 阅读:937次
*温馨提示:点击图片可以放大观看高清大图
简介:和纯粹基于PC机的各种软件编程不同,FPGA器件的学习仅靠一台PC机是不够的。对于任何一个学习者而言,能够拥有一块板载FPGA器件的电路板平台是非常必要的。
和纯粹基于PC机的各种软件编程不同,FPGA器件的学习仅靠一台PC机是不够的。对于任何一个学习者而言,能够拥有一块板载FPGA器件的电路板平台是非常必要的。当然了,前期的开发调试肯定也还是离不开PC机。和基于PC机的软件编程(如在Visual C++工具上实现C/C++语言的编程,在各种网络编程工具上实现.net/java语言的编程)相同的是,可编程器件的开发也有专用的语言(目前主流的语言是Verilog和VHDL)和专用的开发工具(如Xilinx公司的开发工具ISE/Vivado,Altera公司的开发工具QuartusII以及其他的第三方工具)。不同点也显而易见,PC的软件编程由于最终就是实现在PC机本地或者网络上,那么它就不需要开发者配备额外的设备;而基于FPGA器件的开发,其最终的功能是需要实现在特定的FPGA器件内部的,因此开发者势必需要首先具备载有FPGA器件的一块电路板。除此以外,还需要具备一条用于连接PC机和可编程器件的用于传输配置数据流的连接线,我们通常称此连接线为“下载线”。
如图2.1所示,对于任何一个FPGA开发者而言,一条下载线和一块板载FPGA器件的电路板应该说是最基本的硬件配备了。电路板的作用不言而喻,我们设计的目的便是希望通过对板载的FPGA器件编程,以控制电路板上的其他外设按照我们既定的功能运转;而下载线是起到连接PC机和电路板的作用,它将协助开发人员将已经在PC机的软件工具上预先设计好的功能配置数据流固化到电路板的FPGA器件中(可用于前期的开发、调试以及产品化后的升级)。
既然需要一块板载FPGA器件的电路板,那么这块电路板该如何设计呢?如图2.2和图2.3所示,分别为Xilinx公司最新的的Zynq Soc FPGA开发板和Altera公司最新的Cyclone V Soc FPGA开发板。乍一看,整齐有序且美观大方,丰富的外设资源,恐怕大伙都要垂涎三尺了,而要咱们初学者也DIY一个,那真叫 “比骆驼穿过针的眼还难”。
别心慌,先抛开电路板各种各样复杂的外设功能,我们可以先探讨一下单纯实现一片FPGA器件的核心电路(即能让FPGA工作起来的最基本且元器件最少的电路)是如何设计的。相比于其它嵌入式系统芯片的电路设计,单纯的FPGA核心电路其实还算是非常简单的。根据过往的设计经验中,笔者简单的将FPGA核心电路归纳为五部分:电源电路、时钟电路、复位电路、配置电路和外设电路,我们姑且称之为五要素。下面我们将逐一探讨各个要素在FPGA器件的运行中扮演的角色及其常规电路的设计方式。