您的位置:通用技术>>可编程逻辑>>FPGA>>基础知识>>正文

FPGA开发板快速教程(一)

推荐给好友
打印
加入收藏
更新于2008-07-31 13:35:26

        前言 

        FPGA在复杂逻辑电路以及数字信号处理领域中扮演者越来越重要的角色,SOC(片上系统)以其低功耗,高性能,低成本,高可靠性等优点成为嵌入式系统的发展趋势。作为一个简明的教程,主要宗旨是让初学者快速地了解FPGA/SOPC(可编程片上系统)开发的流程。目前IT技术的发展可以说是一日千里,以本人的观点来讲,如果希望在电子设计领域有所作为,则必须具备快速掌握新技术的能力。电子设计最重要的是实践的积累,我们只要具备了一定的基础,应当马上投入实践,否则很多概念都无法真正理解。有不少人包括我,当下决心要成为一个合格的电子设计工程师的时候,总是想如果把有关电路方面的理论都掌握了才能所向披靡,有底气参加实际项目设计。当然如果能做到“把有关理论都掌握了”这样的境界,我想应该是很理想的,但经验发现这并不实际。据我所知,我所认识的不少电子设计牛人,他们的理论知识可能都比不上我们的本科生,但很多不错的产品都是从他们的手中开发出来的,有了实践的经验后,他们掌握新技术的速度相当惊人。有人跟我说:“新技术是拿来用的,不是拿来学的。”他们认为掌握新的设计技术应当尽快掌握它的设计流程。因此,我参考朋友给我的意见,写了这个简易的教程,以非常详细的实例来让初学者了解基于QuartusII和NiosII IDE的FPGA/SOPC开发的基本流程,目的是为了让初学者尽快上手FPGA/SOPC的开发流程,尽快投入到实践中。为了易于说明问题,本教程中的一些概念并不是很严谨,如果读者对某些提法有异议,请参考相关资料和教材,并以相关资料和教材为准。通过该简明教程,初学者能快速了解FPGA/SOPC的基本开发流程,很多技巧和深入理解都靠长期的经验积累,因此初学者应该在了解了基本流程以后,思维不能局限于此,应在实践中提高水平,并参考更全面和权威的资料。

        本教程配套CT-SOPCx系列FPGA/SOPC开发学习板套件(对于该套件的相关内容请参考附录。)以实践为基础,适合具备基本的数字电路设计基础的初学者。第一章是CPLD/FPGA的基本知识,这部分内容摘自互联网并稍加删改,对于CPLD/FPGA知识为零的初学者应先了解这部分内容;对于已经有了一定基础的同学可以跳过这部分内容。第二章以两个例子来让初学者了解FPGA的基本开发流程,并熟悉QuartusII软件的使用。第三章以一个例子来让初学者了解基于NiosII软CPU核的SOPC设计流程,并熟识SOPC Builder和NiosII IDE的基本使用。附录是本文所涉及的例子的学习板相关的内容。

       由于本人水平有限,错漏和不严谨之处在所难免,欢迎大家批评指正。 

                                                                                                                                      嵌入式控制研究室
                                                                                                         http://www.21control.com 
                                                                                                                                                              2006年4月20日







目 录



第一章PLD/FPGA的基本知识 ………………………………………………………………………



第二章 FPGA基本教程 ……………………………………………………………………………………

第一节 FPGA的基本开发流程 ………………………………………………………………………………

第二节 基于QuartusII的实例…………………………………………………………………………………

实验一 实验板上的KEY1按钮控制FPGA核心板上的第一个LED灯介绍 ………………………………

实验二 7段数码管实验 …………………………………………………………………………………

实验三 用FPGA设计串口数据收发 …………………………………………………………………………



第三章 SOPC的基本开发流程 …………………………………………………………………………………

第一节 SOPC vs MCU、DSP和FPGA ………………………………………………………………………

第二节 基于QuantusII和NiosII的SOPC基本开发流程 ……………………………………………………

第三节 基于QuantusII和NiosII的SOPC实例 ……………………………………………………………

实验一 核心板上的两个LED交替闪烁 …………………………………………………………………

实验二 4位7段数码管IP core设计以及flash的烧写教程 …………………………………

实验三 LCD设备驱动开发 ………………………………………………………………………

实验四 ALL_TEST综合设计 ……………………………………………………………………………



第四章 FPGA开发板V3.0中嵌入Uclinux的步骤和方法……………………………………………………





第一章 CPLD/FPGA的基本知识

       (一)可编程逻辑器件的历史和概述
        随着数字电路应用越来越广泛,传统通用的数字集成芯片已经难以满足系统的功能要求,而且随着系统复杂程度的提高,所需通用集成电路的数量呈爆炸性增值,使得电路的体积膨大,可靠性难以保证。此外,现代产品的生命周期都很短,一个电路可能需要在很短的周期内作改动以满足新的功能需求,对于采用通用的数字集成电路设计的电路系统来说即意味着重新设计和重新布线。因此,系统设计师们希望自己设计专用集成电路(ASIC)芯片,而且希望ASIC的设计周期尽可能短,最好是在实验室里就能设计出合适的ASIC芯片,并且立即投入实际应用之中,因而出现了现场可编程逻辑器件(FPLD),其中应用最广泛的当属现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。

         早期的可编程逻辑器件只有可编程只读存贮器(PROM)、紫外线可按除只读存贮器(EPROM)和电可擦除只读存贮器(EEPROM)三种。由于结构的限制,它们只能完成简单的数字逻辑功能。

          其后,出现了一类结构上稍复杂的可编程芯片,即可编程逻辑器件(PLD),它能够完成各种数字逻辑功能。典型的PLD由一个“与”门和一个“或”门阵列组成,而任意一个组合逻辑都可以用“与一或”表达式来描述,所以, PLD能以乘积和的形式完成大量的组合逻辑功能。

          这一阶段的产品主要有PAL(可编程阵列逻辑)和GAL(通用阵列逻辑)。PAL由一个可编程的“与”平面和一个固定的“或”平面构成,或门的输出可以通过触发器有选择地被置为寄存状态。 PAL器件是现场可编程的,它的实现工艺有反熔丝技术、EPROM技术和EEPROM技术。还有一类结构更为灵活的逻辑器件是可编程逻辑阵列(PLA),它也由一个“与”平面和一个“或”平面构成,但是这两个平面的连接关系是可编程的。 PLA器件既有现场可编程的,也有掩膜可编程的。 在PAL的基础上,又发展了一种通用阵列逻辑GAL (Generic Array Logic),如GAL16V8,GAL22V10 等。它采用了EEPROM工艺,实现了电可按除、电可改写,其输出结构是可编程的逻辑宏单元,因而它的设计具有很强的灵活性,至今仍有许多人使用。 这些早期的PLD器件的一个共同特点是可以实现速度特性较好的逻辑功能,但其过于简单的结构也使它们只能实现规模较小的电路。 

         为了弥补这一缺陷,20世纪80年代中期。 Altera和Xilinx分别推出了类似于PAL结构的扩展型 CPLD(Complex Programmab1e Logic Dvice)和与标准门阵列类似的FPGA(Field Programmable Gate Array),它们都具有体系结构和逻辑单元灵活、集成度高以及适用范围宽等特点。这两种器件兼容了PLD和通用门阵列的优点,可实现较大规模的电路,编程也很灵活。与门阵列等其它ASIC(Application Specific IC)相比,它们又具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检验等优点,因此被广泛应用于产品的原型设计和小批量产品生产(一般在10,000件以下)之中。几乎所有应用门阵列、PLD和中小规模通用数字集成电路的场合均可应用FPGA和CPLD器件。

         (二)FPGA、CPLD 概述

         FPGA(现场可编程门阵列)与 CPLD(复杂可编程逻辑器件)都是可编程逻辑器件,它们是在PAL,GAL等逻辑器件的基础之上发展起来的。同以往的PAL,GAL等相比较,FPGA/CPLD的规模比较大,它可以替代几十甚至几千块通用IC芯片。这样的FPGA/CPLD实际上就是一个子系统部件。这种芯片受到世界范围内电子工程设计人员的广泛关注和普遍欢迎。经过了十几年的发展,许多公司都开发出了多种可编程逻辑器件。比较典型的就是Altera公司和Xilinx公司的CPLD器件系列和FPGA器件系列,它们开发较早,占用了较大的PLD市场。通常来说,在欧洲用Xilinx的人多,在日本和亚太地区用ALTERA的人多,在美国则是平分秋色。全球PLD/FPGA产品60%以上是由Altera和Xilinx提供的。可以讲Altera和Xilinx共同决定了PLD技术的发展方向。当然还有许多其它类型器件,如:Lattice,Vantis,Actel,Quicklogic,Lucent等。 (99年Lattice收购了Vantis,成为第三大PLD供应商。