FPGA在时序逻辑电路设计中的应用*
2010-10-23艳饶华球汪木兰朱
许 艳饶华球,汪木兰朱 昊
1.宿迁学院 江苏宿迁 223800 2.南京工程学院 江苏南京 211167
FPGA在时序逻辑电路设计中的应用*
许 艳1饶华球1,2汪木兰2朱 昊2
1.宿迁学院 江苏宿迁 223800 2.南京工程学院 江苏南京 211167
介绍了FPGA器件的基本结构及设计特点,分析了采用FPGA进行电路设计的优势。选用Altera公司的Flex10K系列FPGA器件EPF10K10LC84-4,以交通信号灯控制系统为例,讨论了采用FPGA进行时序逻辑电路设计的思路与方法,使用硬件描述语言Verilog HDL作为输入,给出了核心部分的主要程序代码。最后进行了时序波形的仿真,并对相关波形中出现的毛刺现象进行了相应分析。
FPGA;时序逻辑电路;Verilog HDL;交通信号灯
可编程逻辑器件(Programmable Logic Device,PLD)是20世纪80年代发展起来的一种通用型可编程的数字逻辑电路。它是一种标准化、通用的数字电路器件,集门电路、触发器、多路选择开关、三态门等器件和电路连线于一身。PLD在制造工艺上,采用TTL、CMOS、ECL、静态RAM等技术,器件类型有PROM、PLA、PAL、GAL、EPLD、CPLD、FPGA等多种。作为一种理想的设计工具,PLD具有通用标准器件和半定制电路的许多优点,给数字系统设计者带来很多方便。特别在时序逻辑电路中获得了成功应用,下面以交通信号灯控制系统设计为例介绍具体的应用过程。
一、FPGA设计原理
1.PLD器件的设计特点
EDA技术出现以前,数字逻辑电路设计通常采用传统方法,即自下而上设计法。其主要思路是:根据系统对硬件的要求编制技术规格书,画出系统流程图;然后对系统功能进行分析,划分出多个功能模块,画出系统功能框图;进行各功能模块的细化和电路设计;各模块设计调试完毕以后,再连接起来,进行调试,最后完成整个系统的硬件设计。这种自下而上设计法的仿真和调试工作要在系统的硬件开发完成以后才能进行,因此存在的问题只有在后期才能发现,一旦考虑不周,就要重新设计,使得设计费用和设计周期大大增加。此外,由于设计输入文件是电原理图,当系统比较复杂时,大量的原理图文件会给存档、阅读和修改带来不便。
为了提高开发效率和增加已有开发成果的可继承性,缩短开发周期,各种新兴的EDA开发工具开始涌现,特别是硬件描述语言(HDL)的出现,使得传统的硬件电路设计方法发生了巨大的变革。基于PLD器件,采用HDL进行系统设计的思路是从系统总体的要求出发,自上而下地逐步将设计内容细化,最后完成系统的详细设计。这种设计方法的主要特点为:
(1)电路设计更趋合理
硬件设计人员在设计硬件电路时使用PLD器件,就可以自行设计所需的专用功能模块,而无需受通用元器件的限制,从而使电路设计更趋合理,其体积和功耗也大为减小。
(2)采用系统早期仿真
在自上而下的设计过程中,每级都进行仿真,从而可以在系统设计的早期发现设计中存在的问题,从而大大缩短系统设计周期,降低费用。
(3)降低了硬件电路设计难度
PLD使用HDL编程,避免编写逻辑表达式或真值表,使设计难度大幅度下降,从而也缩短了设计周期。
(4)主要设计文件使用HDL编写
采用HDL编写的源程序作为归档文件有多种好处。HDL程序资料量小,便于保存;其可继承性好,而且阅读方便。可编程逻辑器件的设计流程一般为设计准备、设计输入、功能仿真、设计处理、时序仿真、器件编程和测试等七个步骤。
2.FPGA的基本结构
FPGA是目前最为常用的复杂PLD器件。FPGA的发展非常迅速,形成了各种不同的结构。按逻辑功能块的大小,FPGA可分为细粒度FPGA和粗粒度FPGA。细粒度FPGA的逻辑功能块较小,资源可以充分利用,但连线和开关多,速度慢;粗粒度FPGA的逻辑功能块规模大,功能强,但资源不能充分利用。从逻辑功能块的结构上分类,可分为查找表结构、多路开关结构和多级与非门结构。根据FPGA内部连线的结构不同,可分为分段互联型和连续互联型。根据编程方式,FPGA可分为一次编程和可重复编程两种。FPGA一般可由三种可编程电路和一个用于存放编程数据的SRAM组成,这三种可编程电路是:可编程逻辑块CLB、输入/输出模块IOB和互联资源IR。CLB是FPGA的主要组成部分,是实现逻辑功能的基本单元。它主要是由逻辑函数发生器、触发器、数据选择器等电路组成。IOB提供了器件引脚和内部逻辑阵列之间的连接,通常排列在芯片的四周。其主要是由输入触发器、输入缓冲器、输出触发/锁存器和输出缓冲器组成。每一个IOB控制一个引脚,可被配置为输入、输出激活双向I/O功能。可编程互联资源IR包括各种长度的金属连线和一些可编程连接开关,它们将各个CLB之间和IOB之间互相连接起来,构成各种复杂功能的系统。FPGA的基本结构如图1所示。
3.采用FPGA设计逻辑电路的优点
相对于传统数字电路设计方法,采用FPGA进行电路设计具有如下优点:
(1) 简化设计
由于FPGA的可编程性和灵活性,电路设计结束后,可随意进行修改或删除,无需重新布线和生产印刷电路板,大大缩短了系统的设计周期。
(2) 高性能
现在市场上提供的FPGA器件的性能超过了最快的标准分立逻辑器件的性能,而且一片FPGA芯片的功耗比分立器件组合而成的电路功耗要小得多。
(3) 可靠性高
采用FPGA器件将使所用器件的数目减少,也使印刷电路板面积减少,密度下降,这些都大大提高了电路的可靠性,同时也将减少干扰和噪声,使系统的运行更可靠。
(4) 成本下降
采用FPGA设计数字系统,由于所用器件少,用于器件测试及装配的工作量也少,所以系统的成本将下降。
(5) 硬件加密
使用FPGA器件构成的数字系统,其内部结构是由设计者通过编程实现的。有些器件还提供一个能被编程的保密单元,可用来防止检验和读出芯片中的程序,这对于保持芯片设计的专利、防止他人抄袭具有很大好处。
二、FPGA在时序逻辑电路设计中的应用
由于FPGA具有集成度高、编程仿真方便、速度快等优点,使得FPGA在信号处理以及数字系统设计中得到了广泛应用。尤其在数字集成电路中,FPGA日益显现出它的优点。下面以FPGA在交通信号灯控制系统设计中的应用为例,说明FPGA在时序逻辑电路中的应用过程。
1.交通信号灯控制系统功能要求
本系统的基本功能为:位于十字路口的交通信号灯,在南北A方向和东西B方向各有红、黄、绿三盏灯,各个灯亮的时间相等(10s),按表2-1所示进行循环。假设输入时钟是1s。
表1 交通信号灯工作时序
由于A方向和B方向各盏灯亮的时间均为10s,因此程序使用两个并行执行的always模块来控制A方向和B方向两个方向各三盏灯,这两个always模块采用同一个频率为1Hz的clk时钟来触发,以进行同步,每盏灯采用一个减法计数器进行计数,该计数器采用同步预置法,这样只需修改预置数据,就可以改变计数器的模,因为每个方向只需一个计数器进行计时即可。为了便于显示灯亮的时间,计数器的输出均采用BCD码,显示由四个数码管来完成,A方向和B方向各用两个数码管,显时的时间为10~1秒的倒计时。
2.FPGA芯片选择
本系统采用的是Altera公司的Flex10K系列FPGA器件EPF10K10LC84-4。Flex10K系列是Altera应用非常广泛的产品,该系列器件具有比较高的集成度及丰富的寄存器资源,采用了快速、可预测延时的连续式布线结构,是一种将CPLD和FPGA的优点结合于一体的器件。
3.交通灯控制系统设计
本系统的输入-输出信号定义如下:
输入信号为:
CLK:同步时钟信号;
EN:使能信号,为高电平时系统工作。
输出信号为:
LIGHT_A[2..0]:3位信号灯开关信号;控制A方向红、绿、黄三盏灯开关;
LIGHT_B[2..0]:3位信号灯开关信号;控制B方向红、绿、黄三盏灯开关;
TIME_A[5..0]:6位数码管显示信号;用于A方向灯的时间显示,可控制两个数码管;
TIME_B[5..0]:6位数码管显示信号;用于B方向灯的时间显示,可控制两个数码管。
为此,设计出本系统输入-输出引脚信号的定义如图2所示。
本系统采用的硬件描述语言为Verilog HD。限于篇幅,本文给出系统核心部分的程序如下:
4.仿真波形及结果分析
为了验证系统功能的正确性,下面将进行仿真测试,获得的系统仿真波形如图3和图4所示,从仿真测试结果来看,整体技术方案是合理正确的,达到了预期的设计目的。
图3 A方向验证波形
图4 B方向验证波形
从图3和图4可见,在设计过程中,仿真输出波形出现了少许毛刺。信号在FPGA器件内部通过连线和逻辑门时,都有一定的延时。延时的大小与连线的长短和门单元的数目有关,同时还受器件的制造工艺、工作电压、温度等因素的影响。此外,信号的高/低电平转换也需要一定的过渡时间。由于存在这些因素的影响,多路信号的电平值发生变化时,在信号变化的瞬间,逻辑电路的输出有先后顺序,并不是同时变化,往往会出现一些非正常的“毛刺”,称为“冒险”现象。冒险往往会影响到逻辑电路的稳定性。时钟端口,清零和置位端口对毛刺信号十分敏感,任何一点毛刺都可能会使系统出错。为此,可以通过改进设计来破坏形成毛刺的条件,从而减小毛刺的影响。例如,在数字电路设计中,常常采用格雷码计数器取代普通二进制计数器,这是因为格雷码的输出每次只有一位跳变,消除了竞争冒险的发生条件,避免了毛刺的产生。
毛刺并不是对所有的输入都有危害,例如D触发器的D输入端,只要毛刺不出现在时钟的上升沿并且满足数据的建立和保持时间,就不会对系统造成影响,即D触发器的D输入端对毛刺不敏感,利用D触发器的这个特性,也可以有效地消除毛刺现象。
三、结束语
在数字系统设计中,编程语言最终只是一个开发工具,更多的是需要具有相关的专业知识背景,例如掌握数字电路与逻辑设计、线性与信号系统、数字信号处理和通信原理等这些专业理论课等。有了以上的知识作为基础,再加上对FPGA和verilogHDL的灵活运用,就可以设计出复杂的控制系统。FPGA是一种新型器件,通过实践,可以归纳出FPGA具有以下优点:可编程逻辑器件的集成度高、工作速度快、功耗低、可靠性好及功能强;易于开发、维护和扩展;加上编程方便、价格较低,因此广受电子工程设计人员和科研人员的欢迎。
[1]楮振勇,翁木云.FPGA设计及应用[M].陕西:西安电子科技大学出版社,2005
[2]汪国强.VerilogHDL设计[M].北京:机械工业出版社,2007
[3]邓元庆.数字设计基础与应用[M].北京:清华大学出版社,2005
[4]汪木兰,徐开芸.电工电子教学体系和实验平台的构建[J].中国现代教育装备,2005,11:5~8
[5]王令其,左健民,汪木兰.大工程观与应用型工科教学改革[J].理工高教研究,2009,28(2):130~132
[6]朱昊.数字电路EDA设计课程实践教学的改革与创新[J].中国现代教育装备,2006,7:60~62
Abstract:An introduction of the basic structures and design features of FPGA is provided, and an analysis of the advantages of the circuit design with the application of FPGA is conducted. EPF10K10LC84-4 -FPGA parts of an apparatus from Altera company’s Flex10K series are adopted, taking the traffic signal light as an example, the paper discusses the thoughts and approaches to sequential and logical circuit layout by using FPGA, Verilog HDL-hardware descriptive language is used, at the same time, main procedure codes are released. Finally, emulation of sequential wave form is carried out and phenomena of burrs in wave form are relatively analyzed.
Key words: FPGA;sequential and logical circuit layout;Verilog HDL;traffic signal light
Application of FPGA in the logic circuit design
Xu Yan1, Rao Huaqiu1, Wang Mulan2, Zhu Hao2
1.Suqian college, Suqian, 223800, China 2. Nanjing engineering colleges, Nanjing, 211167, China
2009-09-17
许艳,硕士,讲师。汪木兰,硕士,教授。朱昊,硕士,讲师。饶华球,硕士,教授。
*本文系江苏省教育科学“十一五”规划重点资助课题(B-a/2008/01/008);宿迁学院科研重点基资助项目(2009-KY33)。