基于FPGA任意倍数分频器设计

基于FPGA任意倍数分频器设计
基于FPGA任意倍数分频器设计

目录

1 绪论 (1)

1.1课题分析 (1)

1.2FPGA概述 (2)

1.3VHDL语言和QUARTUS II简介 (4)

1.3.1 VHDL语言简介 (4)

1.3.2 QUARTUS II简介 (6)

2 分频基本原理 (8)

2.1等占空比偶数分频方法 (8)

2.2等占空比的奇数分频方法 (8)

2.3分数分频方法 (9)

2.4小数分频方法 (9)

2.5任意倍数分频器 (10)

3 任意倍数分频器设计 (12)

3.1设计思想 (12)

3.2顶层框图设计 (13)

3.3顶层文件设计 (13)

3.4 模块设计 (14)

3.4.1 偶数分频模块的设计 (14)

3.4.2 奇数分频模块的设计 (15)

3.4.3 半整数模块设计 (16)

3.4.4 占空比可调的分频模块设计 (17)

3.4.5 小数分频模块设计 (18)

3.4.6 encoder_35模块的设计 (19)

3.4.7 led模块的设计 (20)

3.4.8 mux51模块的设计 (21)

结论 (22)

致谢 (24)

参考文献 (25)

附录A VHDL源程序 (26)

附录A1:偶数分频实现的程序 (26)

附录A2奇数分频实现的程序 (28)

附录A3半整数分频实现的程序 (30)

附录A4占空比可调的分频实现的程序 (32)

附录A5小数分频实现的程序 (34)

附录A6 ENCODER_35模块实现的程序 (42)

附录A7 LED的实现程序 (43)

附录A8 MUX51模块的实现程序 (47)

附录B顶层文件设计原理图 (48)

1 绪论

1.1 课题分析

随着电子技术的高速发展,FPGA/CPLD以其高速、高可靠性、串并行工作方式等突出优点在电子设计中受到广泛的应用,而且代表着未来EDA设计的方向。FPGA/CPLD 的设计采用了高级语言,如VHDL语言AHDL语言等,进一步打破了软件与硬件之间的界限,缩短了产品的开发周期。所以采用先进的FPGA/CPLD取代传统的标准集成电路、接口电路已成为电子技术发展的必然趋势[1]。

EDA技术代表了当今电子设计技术的最新发展方向,采用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程在计算机上自动处理完成。由于现代电子产品的复杂度和集成度的日益提高,一般分离的中小规模集成电路组合已不能满足要求,电路设计逐步地从中小规模芯片转为大规模、超大规模芯片,具有高速度、高集成度、低功耗的可编程朋IC器件已蓬勃发展起来[2]。

分频器是数字系统设计中的一种基本电路,我们往往需要通过分频器得到我们所需要的时钟频率,在FPGA的设计中也是使用频率非常高的一种基本设计。基于FPGA实现的分频电路一般有两种方法:一种是使用FPGA芯片内部提供的锁相环电路进行分频,如ALTERA提供的PLL(Phase Locked Loop),Xilinx提供的DLL(Delay Locked Loop);第二种是使用硬件描述语言,如VHDL、Verilog HDL等。使用锁相环电路进行分频有许多的优点,例如可以实现倍频、相位偏移以及占空比可调等。但是由于FPGA 内部提供的锁相环个数极为有限,不能满足使用时的要求。因此使用硬件描述语言实现分频电路在数字电路设计较为常用,因为它消耗不多的逻辑单元就可以实现对时钟的操作,具有成本低、可编程等优点[3]。

在数字系统的设计中,设计人员会遇到各种形式的分频需求,如整数、小数、分数分频等。在某些数字系统设计中,系统不仅对频率有要求,而且对占空比也有着很严格的要求。由计数器或计数器的级联构成各种形式的偶数分频及非等占空比的奇数分频实现起来较为简单,但对半整数分频及等占空比的奇数分频实现较为困难,小数分

频和分数分频更困难。

本论文利用VHDL硬件描述语言,通过QuartusⅡ7.2开发平台,设计了一种能满足偶数分频,奇数分频,半整数分频,占空比可调的分频,小数分频的任意倍数分频器,并可以通过按钮来选择具体由哪一种分频器进行操作,而拨码开关则可以预置一些分频系数,发光二极管则显示具体由那种分频实现,数码管显示分频的系数。分频系数设置:偶数分频:2,4,6,8,10,12,14

奇数分频:1,3,5,7,9,11,13,15

半整数分频:1.5—15.5

占空比可调的分频:1:1,1:2,1:3,2:1,2:2,2:3,3:1,3:2,3:3

小数分频:1.1—3.3

1.2 FPGA概述

FPGA(Field Programmable Gate Array)现场可编程逻辑门阵列,它是在PAL (Programmable Array Logic)、GAL(generic array logic)、CPLD(Complex Programmable Logic Device)等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(Application Specific Integrated Circuit)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。它是当今数字系统设计的主要硬件平台,其主要特点就是完全由用户通过软件进行配置和编程,从而完成某种特定的功能,且可以反复擦写。在修改和升级时,不需额外地改变PCB 电路板,只是在计算机上修改和更新程序,使硬件设计工作成为软件开发工作,缩短了系统设计的周期,提高了实现的灵活性并降低了成本

以硬件描述语言(Verilog或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至FPGA上进行测试,是现代IC设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)或者其他更加完整的记忆块。

系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。

FPGA一般来说比ASIC(专用集成芯片)的速度要慢,无法完成复杂的设计,但是功耗较低。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差的FPGA。因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。另外一种方法是用CPLD(复杂可编程逻辑器件备)。

FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。目前主流的FPGA仍是基于查找表技术的,已经远远超出了先前版本的基本性能,并且整合了常用功能(如RAM、时钟管理和DSP)的硬核(ASIC型)模块:FPGA芯片主要由6部分完成,分别为:可编程输入输出单元、基本可编程逻辑单元、完整的时钟管理、嵌入块式RAM、丰富的布线资源、内嵌的底层功能单元和内嵌专用硬件模块。FPGA的基本特点有:1、采用FPGA设计ASIC电路(专用集成电路),用户不需要投片生产,就能得到合用的芯片。

2、FPGA可做其它全定制或半定制ASIC电路的中试样片。

3、FPGA内部有丰富的触发器和I/O引脚。

4、FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。

5、FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。

FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。

加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA 能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。

早在1980年代中期,FPGA已经在PLD设备中扎根。CPLD和FPGA包括了一些相对大数量的可编辑逻辑单元。CPLD逻辑门的密度在几千到几万个逻辑单元

之间,而FPGA通常是在几万到几百万。

CPLD和FPGA的主要区别是他们的系统结构。CPLD是一个有点限制性的结构。这个结构由一个或者多个可编辑的结果之和的逻辑组列和一些相对少量的锁定的寄存器。这样的结果是缺乏编辑灵活性,但是却有可以预计的延迟时间和逻辑单元对连接单元高比率的优点。而FPGA却是有很多的连接单元,这样虽然让它可以更加灵活的编辑,但是结构却复杂的多。

CPLD和FPGA另外一个区别是大多数的FPGA含有高层次的内置模块(比如加法器和乘法器)和内置的记忆体。因此一个有关的重要区别是很多新的FPGA 支持完全的或者部分的系统内重新配置。允许他们的设计随着系统升级或者动态重新配置而改变。一些FPGA可以让设备的一部分重新编辑而其他部分继续正常运行。

CPLD和FPGA还有一个区别:CPLD下电之后,原有烧入的逻辑结构不会消失;而FPGA下电之后,再次上电时,需要重新加载FLASH里面的逻辑代码,需要一定的加载时间。

FPFA的主要生产商有:Altera,Xilinx,Actel,Lattice。其中Altera作为世界老牌可编程逻辑器件的厂家,是当前世界范围内市场占有率最大的厂家,它和Xilinx主要生产一般用途FPGA,其主要产品采用RAM工艺。Actel主要提供非易失性FPGA,产品主要基于反熔丝工艺和FLASH工艺。

1.3 VHDL语言和QUARTUS II简介

1.3.1 VHDL语言简介

VHDL(VHSIC(Very High Speed Integrated Circuit)Hardware Description Language)是超高速集成电路硬件描述语言,是一种用于电路设计的高级语言。它出现于80年代后期,刚开始时它是由美国国防部开发出来的,是为了供美军用来提高设计的可靠性和缩减开发周期的一种使用范围比较小的设计语言。VHDL语言主要应用于数字电路系统的设计。目前,国内对它的应用多数集中在FPGA/CPLD/EPLD的设计当中,除此之外,一些较为有实力的单位,也将它用来设计ASIC。

VHDL语言具有多层次描述系统硬件功能的能力,既可以描述系统级电路,又可以描述门级电路。而描述既可以采用行为描述、寄存器传输描述或结构描述,也

可以采用三者混合的混合级描述。另外,VHDL还支持惯性延迟和传输延迟,还可以准确地建立硬件电路模型。VHDL支持预定义的和自定义的数据类型,给硬件描述带来较大的自由度,使设计人员能够方便地创建高层次的系统模型。VHDL 语言具有自顶向下和基于库的设计特点。其开发流程:在顶层用方框图或硬件语言对电路的行为进行描述后,进行系统仿真验证和纠错,再用逻辑综合优化工具生成具体的门级逻辑电路的网表,然后通过适配器将网表文件配置于指定的目标器件,产生最终下载文件或配置文件。最后把适配后生成的下载或配置文件通过编程器或编程电缆下载到具体的FPGA/CPLD器件中去,以便进行硬件调试和验证,从而实现可编程的专用集成电路ASIC的设计。

VHDL主要用于描述数字系统的结构,行为,功能和接口,除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL系统设计与其他硬件描述语言相比,具有比较强的行为描述能力,从而决定了它成为系统设计领域最佳的硬件描述语言之一。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证[4]。

VHDL语言能够成为标准化的硬件描述语言并获得广泛应用,它自身必然具有很多其他硬件描述语言所不具备的优点。归纳起来,VHDL 语言主要具有以下优点:

1、VHDL语言功能强大,设计方式多样

VHDL语言具有强大的语言结构,只需采用简单明确的VHDL语言程序就可以描述十分复杂的硬件电路。同时,它还具有多层次的电路设计描述功能。此外,VHDL语言能够同时支持同步电路、异步电路和随机电路的设计实现,这是其他硬件描述语言所不能比拟的。VHDL语言设计方法灵活多样,既支持自顶向下的设计方式,也支持自底向上的设计方法;既支持模块化设计方法,也支持层次化设计方法[5]。

2、VHDL语言具有强大的硬件描述能力

VHDL语言具有多层次的电路设计描述功能,既可描述系统级电路,也可以描述门级电路;描述方式既可以采用行为描述、寄存器传输描述或者结构描述,也可以采用三者的混合描述方式。同时,VHDL语言也支持惯性延迟和传输延迟,这样可以准确地建立硬件电路的模型。VHDL语言的强大描述能力还体现在它具有丰富的数据类型。VHDL 语言既支持标准定义的数据类型,也支持用户定义的数据类型,这样便会给硬件描述带来较大的自由度。

3、VHDL语言具有很强的移植能力

VHDL语言很强的移植能力主要体现在:对于同一个硬件电路的VHDL语言描述,它可以从一个模拟器移植到另一个模拟器上、从一个综合器移植到另一个综合器上或者从一个工作平台移植到另一个工作平台上去执行[6]。

4、VHDL 语言的设计描述与器件无关

采用VHDL语言描述硬件电路时,设计人员并不需要首先考虑选择进行设计的器件。这样做的好处是可以使设计人员集中精力进行电路设计的优化,而不需要考虑其他的问题。当硬件电路的设计描述完成以后,VHDL语言允许采用多种不同的器件结构来实现[7]。

5、VHDL语言程序易于共享和复用

VHDL语言采用基于库( library) 的设计方法。在设计过程中,设计人员可以建立各种可再次利用的模块,一个大规模的硬件电路的设计不可能从门级电路开始一步步地进行设计,而是一些模块的累加。这些模块可以预先设计或者使用以前设计中的存档模块,将这些模块存放在库中,就可以在以后的设计中进行复用。

由于VHDL语言是一种描述、模拟、综合、优化和布线的标准硬件描述语言,因此它可以使设计成果在设计人员之间方便地进行交流和共享,从而减小硬件电路设计的工作量,缩短开发周期[8]。

1.3.2 QUARTUS II简介

Quartus II是Altera公司设计的综合性PLD开发软件,它支持原理图、VHDL、VerilogHDL以及AHDL等多种设计输入形式,内嵌有综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程[9]。

Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。

此外,Quartus II通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台[10]。

Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,这样可

以使用户充分的利用成熟的模块,从而简化了设计的复杂性,进而加快了设计的速度。Quartus II支持的器件类型非常丰富,其图形界面也易于操作。Altera在Quartus II中包含了许多诸如SignalTap II、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC 和HardCopy的设计流程,并且继承了Maxplus II友好的图形界面及简便的使用方法。Quartus II作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的喜爱和欢迎[11]。

Quartus II提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:

1、可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件;

2、芯片(电路)平面布局连线编辑;

3、LogicLock增量设计方法,用户可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块;

4、功能强大的逻辑综合工具;

5、完备的电路功能仿真与时序逻辑仿真工具;

6、定时/时序分析与关键路径延时分析;

7、可使用SignalTap II逻辑分析工具进行嵌入式的逻辑分析;

8、支持软件源文件的添加和创建,并将它们链接起来生成编程文件;

9、使用组合编译方式可一次完成整体设计流程;

10、自动定位编译错误;

11、高效的期间编程与验证工具;

12、可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件;

13、能生成第三方EDA软件使用的VHDL网表文件和Verilog网表文件。

Altera的Quartus II可编程逻辑软件属于第四代PLD开发平台。该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。Quartus平台与Cadence、ExemplarLogic、MentorGraphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容。改进了软件的LogicLock模块设计功能,增添了FastFit编译选项,推进了网络编辑性能,而且提升了调试能力。支持MAX7000/MAX3000等乘积项器件[12]。

2分频基本原理

2.1 等占空比偶数分频方法

在设计偶数倍分频器时,常用的方法是:通过一个由待分频时钟上升沿所触发的计数器循环计数来实现N倍(N为偶数)分频的实现方法:通过由待分频的时钟触发的模为(N/2)-1的计数器计数,当计数器从0计数到(N/2)-1时,输出时钟信号进行翻转,同时给计数器一个复位信号,使得计数器在下一个时钟重新开始计数,采用这种方法不断循环,就可得到所需的N倍分频器。这种方法可以实现占空比为50%的任意偶数分频

2.2等占空比的奇数分频方法

占空比为50%的N倍(N为奇数)分频的实现方法:首先通过时钟的上升沿触发进行计数,当计数到某一个特定值时对计数输出进行翻转,然后经过(N-1)/2个输入时钟,再次对计数输出进行翻转,从而得到一个占空比非50%的N倍奇数分频时钟。在此同时进行时钟的下降沿触发进行计数,当计数到和上升沿触发输出时钟翻转时所选的特定值相同时,对计数输出进行翻转,同样经过(N-1)/2个时钟时,再次对计数输出进行翻转,从而得到另一个占空比非50%的N倍奇数分频时钟。然后对两个占空比非50%的N倍奇数分频时钟进行逻辑或运算,就能得到一个占空比为50%的N倍奇数分频时钟。如进行三倍分频时钟设计时,先通过待分频时钟上升沿触发计数器进行模三计数,当计数器计数到特定值时进行翻转,比如可以在计数器计数到时,输出时钟进行翻转,当计数到2时再次进行翻转,这样实际上实现一个占空比为1/3的三分频时钟。然后通过待分频时钟下降沿触发计数,采用和上升沿触发的计数相似的方法,可以产生另外一个三分频的时钟,然后下降沿产生的三分频时钟和上升沿产生的时钟进行逻辑或运算,就可得到占空比为50%的三分频时钟[6]。

2.3 分数分频方法

数分频器的设计思想与小数分频器类似。假设进行j n

m.分频,总分频次数由分母m

决定,规律是进行n次j+1分频和m-n次j分频。两种分频交替进行的计算方法也和小数分频类似。究竟是进行j+1分频还是j分频就看累加的结果是大于等于分母还是小于

分母。

6

3

11

的分频计算过程见表2.1可见要进行6次4分频,5次3分频,满足上面的

规律。分数分频器,其中j、m、n分别取3、11、6,故实现了

6

3

11

分频,参数n1、n2

用来调节占空比。

表2.1

6

3

11分频序列

分频次数累加器分频系数

1 6 3

2 12 4

3 8 3

4 14 4

5 10 4

6 16 3

7 12 4

8 8 3

9 14 4

10 10 3

11 16 4

2.4 小数分频方法

小数分频器是通过可变分频和多次平均的方法得到的[4-5]。假设要进行m,n分频(m、n都是整数,且n<10),因为只有一位小数,所以总共要进行10次分频,总的规律是进行n次m+1分频,10-n次m分频。假设要进行j,m,n分频(j、m、n都足整数且m、

n<10),由于小数是2位,所以总共要进行100次分频,分频的规律是进行行mn次j+1分频,100-mn次j分频。不管是几位小数总要进行两种系数的分频,两种分频究竟如何交义进行,可以根据一定的规律计算出来,下面以3.6分频为例进行讲解。由上面的分析知道3.6分频要进行6次4分频,4次3分频。将小数部分6按倍累加,假设累加的值为a,如果a<10则进行3分频,a<10的话下一次则加上6,此后,如果a≥10则进行4分频,4分频过后再将累加值减去4后与10比较以决定下一次分频是4分频还是3分频,计算过程见表2.2。

表2.2 3.6分频序列

分频次数累加器分频系数

1 6 3

2 12 4

3 8 3

4 14 4

5 10 4

6 6 3

7 12 4

8 8 3

9 14 4

10 10 4

从表2.2中看出分频规律是:首先进行3分频,然后进行4分频,接着1次3分频和2次4分频,如此循环下去。

2.5 任意倍数分频器

加入控制模块就可以将上述4种分频器集成到一起,变成任意数值分频器,顶层原理见图2.1

图2.1 任意倍数分频器框图

当输入的二进制数a=00时实现偶数和占空比不等于50%的奇数分频,a=01时实现占空比为50%的奇数分频,a=10和ll时分别实现小数和分数分频。其中m、j分别控制整数分频的分频系数和占空比。小数分频时m、n分别调整整数部分和小数部分;分数分频时j调整整数部分,而m、n分别控制分母和分子值。nl和n2用于调节分数和小数分频的占空比。因为有小数和分数分频,所以预置端口较多,但是可调性也达到了最大。

3任意倍数分频器设计

3.1 设计思想

本设计的设计思想是:把偶数分频,奇数分频,半整数分频,占空比可调的分频,小数分频这5种比较常见的分频器集成在一块芯片之上,并可以通过按钮来选择具体由哪一种分频器进行操作,而拨码开关则可以预置一些分频系数,发光二极管则显示具体由那种分频实现,数码管显示分频的系数。具体功能如下:

1、p,q,v:功能选择按钮。f1,f2,f3,f4,f5:表明功能的序号。

P=0,q=0 ,v =0 :偶数分频,f1=1,f2=f3=f4=f5=0;

P=0,q=0,v =1 :奇数分频,f2=1,f1=f3=f4=f5=0;

P=0,q=1 ,v =0:半整数分频,f3=1,f1=f2=f4=f5=0;

P=0,q=1 ,v =1:可预置占空比分频,f4=1,f1=f2=f3=f5=0;

P=1,q=0 ,v =0:小数分频,f5=1,f1=f2=f3= f4=0;

2、clk:时钟信号。Rst:复位信号。

3、a,b,c,d:表明分频系数

偶数分频:2,4,6,8,10,12,14

奇数分频:1,3,5,7,9,11,13,15

半整数分频:1.5—15.5

占空比分频:1:1,1:2,1:3,2:1,2:2,2:3,3:1,3:2,3:3

小数分频:1.1—3.6

4、y:输出信号。

y5:段选择信号。

y6:位选择信号。

5、y6=fb 选中第三个数码管y6=fd 选中第二个数码管y6=fe选中第一个数码管,数码管显示分频系数。

3.2 顶层框图设计

图3.1 顶层框图设计原理图

该顶层框图主要由六个部分组成:选择按钮,拨码开关,二极管,分频器种类选择,信号输出。各部分的功能如下:

选择按钮:设置输入的方式,选择需要实现何种分频。

拨码开关:提供分频的系数。

发光二极管:显示第几种分频被选择。

FPGA:根据前面的输入来确定何种分频器进行工作。

数码管:显示分频系数。

信号输出:把分频后的信号进行输出。

3.3 顶层文件设计

分频器的顶层文件是一个原理图文件,它包含8个模块8个模块encoder-35模块,led模块,fenpin-e模块,fenpin-o模块,fenpin-m模块,fenpin-h模块,fenpin-x模块,mux51模块。模块的正确性已在上面的介绍中进行验证了。通过将各个模块用具有电气性质的导线将各个模块连接起来,这样原理图文件就建好了。保存编译。在建立一个.vwf 波形文件,保存并仿真。原理图见附录B所示,以8分频为例子进行仿真,其仿真结果如图3.3所示:

图3.3 顶层文件波形仿真结果图

P=0,q=0 ,v =0:偶数分频,f1=1(表明第一个发光二极管亮),f2=f3=f4=f5=0;Rst=0时,不分频。

Rst=1时:

当y5=99时,数码管1显示4。

当y5=ff时,数码管2不显示。

当y5=c0时,数码管3显示0。

最终结果为:

三个数码管显示为:0,不显示,4。

3.4 模块设计

3.4.1 偶数分频模块的设计

偶数分频模块根据拨码开关选择分频系数(count),对输入的clk信号进行偶数分频。本设计偶数分频的关键是对clk信号的上升信号进行计数(temp)。当temp小于count/2时clout输出1,否则输出0,从而实现偶数分频。只有当35译码器的输出选中偶数分频且rst=1时偶数分频才工作。偶数分频实现的程序见附录A1。

偶数分频(4分频)模块程序仿真结果如图3.4所示:

图3.4 偶数分频

从仿真结果可以看出:

本设计的优点是:当rst=0,sel=0时,输出信号为低电平;当rst或者sel中有一个为低电平时,计数器停止计数,但保持上一状态继续输出,当恢复rst=1,sel=1时继续计数,执行分频。

3.4.2 奇数分频模块的设计

奇数分频模块根据拨码开关选择分频系数(count1),对输入的clk信号进行偶数分频。本设计奇数分频的关键是对clk信号的上升沿信号进行计数(p)和对clk信号的下降沿信号进行计数(q)。当p <(count1-1)/2 或者q<(count1-1)/2时clout输出1,否则输出0,从而实现奇数分频。只有当35译码器的输出选中偶数分频且rst=1时奇数分频才工作。奇数分频实现的程序见附录A2。

奇数分频(7分频)模块程序仿真结果如图3.5所示:

图3.5 奇数分频

从仿真结果可以看出:

这种设计的优点是:当rst 与sel 当中任意一个为0时,即放弃对本次的计数并保持输出为低电平,在下一次rst 与sel 都等于1时,重新开始计数,执行分频。 3.4.3 半整数模块设计

半整数分频模块根据拨码开关选择分频系数(count1),对输入的clk 信号进行偶数分频。本设计偶数分频的思想如图3.6所示:

图3.6 半整数分频原理图

只有当35译码器的输出选中偶数分频且rst=1时半整数分频才工作。半整数分频实现的程序见附录A3。

半整数分频(6.5分频)模块程序仿真结果如图3.7所示:

图3.7半整数分频

从仿真结果可以看出:

本设计的优点是:在rst或者sel有一个为低电平时,计数器停止计数,维持上一状态输出,当rst和sel都为高电平的时,重新开始计数,执行分频。

3.4.4 占空比可调的分频模块设计

占空比可调的分频模块根据拨码开关选择占空比(m1:n1),对输入的clk信号进行占空比可调的分频。本设计占空比可调的分频的关键是对clk信号的上升沿信号进行计数temp。当temp

占空比可调的分频(1:3分频)模块程序仿真结果如图3.8所示:

图3.8占空比可调分频

从仿真结果可以看出:

这种设计的优点是:在rst或者sel有一个为低电平时,可以保持前一状态和计数结果,使其具有记忆功能。在恢复工作时,继续计数,具有有良好的性能。

3.4.5 小数分频模块设计

小数分频模块根据拨码开关选择分频系数(n.x),对输入的clk信号进行小数分频。本设计小数分频的关键是实现(10-x)次n分频和x次的n+1分频的交替进行,从而实现小数的分频。只有当35译码器的输出选中偶数分频且rst=1时占空比可调的分频才工作。小数分频实现的程序见附录A5.

小数分频(1.3分频)模块程序仿真结果如图3.9所示:

图3.9 小数分频

(完整版)基于FPGA的智能交通灯的设计毕业设计

目录 摘要 ............................................................. I 1 前言 (1) 2 交通红绿灯控制电路的发展与技术现状 (2) 2.1 交通控制系统以及交通红绿灯控制电路的发展现状 (2) 2.2 智能交通红绿灯控制电路技术的现状 (3) 3 VHDL、FPGA、Quartus ii简介 (5) 3.1 VHDL简介 (5) 3.1.1 VHDL简介 (5) 3.1.2 VHDL语言的特点 (6) 3.2 FPGA简介 (8) 3.2.1 PLD器件的设计特点 (8) 3.2.2 FPGA的基本结构 (10) 3.2.3 采用FPGA设计逻辑电路的优点 (11) 3.3 Quartus II 的简介 (12) 4 具体方案论证与设计 (13) 4.1 具体方案论证 (13) 4.2系统算法设计 (15) 4.3 具体电路原理图 (16) 4.4 电路仿真图 (16) 5 实验结果 (17) 总结 (18) 参考文献 ......................................... 错误!未定义书签。附录: .. (19)

基于FPGA的十字路口交通信号灯 摘要 本文主要介绍十字路口交通灯控制器的设计。首先,介绍交通控制系统以及交通红绿灯控制电路的发展现状;然后采用硬件描述语言进行的交通灯控制器设计。重点介绍了控制系统各部分的设计,以及各个模块之间的同步处理。为了克服交通信号灯控制系统传统设计方法的弊端,更加适应城镇交通现状,利用VHDL语言、采用层次化混合输入方式,设计了具有3种信号灯和倒计时显示器的交通信号灯控制系统,在 QuartusⅡ下进行仿真,并下载到FPGA中制作成实际的硬件电路进行了模拟运行.使用该方法设计的交通灯控制系统电路简单、运行可靠、易于实现,可实现对交通信号的控制和显示功能。 关键词 FPGA;QUARTUS ii;HDPLD;十字路口交通灯控制器; Based on FPGA intersection traffic lights Abstract This paper describes the design of intersection traffic signal controller.First, the introduction of traffic control systems and traffic light control circuit of the development status; then using language designed for the traffic light controller.Focus on various parts of the control system

基于FPGA下的交通灯控制器设计

引言 随着城乡的经济发展,车辆的数量在迅速的增加,交通阻塞的问题已经严重影响了人们的出行。 现在的社会是一个数字化程度相当高的社会,很多的系统设计师都愿意把自己的设计设计成集成电路芯片,芯片可以在实际中方便使用。随着EDA技术的发展,嵌入式通用及标准FPGA器件的呼之欲出,片上系统(SOC)已经近在咫尺。FPGA/CPLD 以其不可替代的地位及伴随而来的极具知识经济特征的IP芯片产业的崛起,正越来越受到业内人士的密切关注。FPGA就是在这样的背景下诞生的,它在数字电路中的地位也越来越高,这样迅速的发展源于它的众多特点。交通等是保障交通道路畅通和安全的重要工具,而控制器是交通灯控制的主要部分,它可以通过很多种方式来实现。在这许许多多的方法之中,使用FPGA和VHDL语言设计的交通灯控制器,比起其他的方法显得更加灵活、易于改动,并且它的设计周期性更加短。 城市中的交通事故频繁发生,威胁着人们的生命健康和工作生活,交通阻塞问题在延迟出行时间的同时,还会造成更多的空气污染和噪声污染。在这种情况下,根据每个道路的实际情况来设置交通灯,使道路更加通畅,这对构建和谐畅通的城市交通有着十分重要的意义。

第一章软件介绍 1.1 QuartusⅡ介绍 本次毕业设计是基于FPGA下的设计,FPGA是现场可编程门阵列,FPGA开发工具种类很多、智能化高、功能非常的强大。可编程QuartusⅡ是一个为逻辑器件编程提供编程环境的软件,它能够支持VHDL、Verilog HDL语言的设计。在该软件环境下,设计者可以实现程序的编写、编译、仿真、图形设计、图形的仿真等许许多多的功能。在做交通灯控制器设计时选择的编程语言是VHDL语言。 在这里简单的介绍一下QuartusⅡ的基本部分。图1-1-1是一幅启动界面的图片。在设计前需要对软件进行初步的了解,在图中已经明显的标出了每一部分的名称。 图 1-1-1 启动界面 开始设计前我们需要新建一个工程,首先要在启动界面上的菜单栏中找到File,单击它选择它下拉菜单中的“New Project Wizard”时会出现图1-1-2所显示的对话框,把项目名称按照需要填好后单击Next,便会进入图 1-1-3 显示的界面。

通过Verilog实现交通灯设计实验报告

电子科技大学 实 验 报 告 一、实验室名称:虚拟仪器实验室 二、实验项目名称:交通灯设计实验 三、实验学时:4学时 四、实验原理

假设交通灯处于南北和东西两条大街的“十”字路口,如图1所示。用FPGA 开发板的LED 灯来模拟红、黄、绿3种颜色信号,并按一定顺序、时延来点亮LED ,如图2所示。图3给出了交通灯的状态转移图。设计使用频率为1Hz 的时钟来驱动电路(注1:仿真时采用1MHz 的时钟来驱动电路),则停留1个时钟可得到1S 的延时,类似停留3个时钟可得到3S 的延时,停留15个时钟可得到15S 的延时(注2:开发板工作时钟为50MHz )。 北 南 西东 图1. 六个彩色LED 可以表示一组交通信号灯 图2. 交通灯状态 南北 东西 红 黄 绿 红 黄 绿 S0 1 0 0 0 0 1 S1 1 0 0 0 1 0 S2 1 0 0 1 0 0 S3 0 0 1 1 0 0 S4 0 1 0 1 0 0 S5 1 0 0 1 0 0

图3. 交通灯的状态转移图 顶层模块 时钟分频模块状态机跳转模块 图4. 交通灯的原理框图 五、实验目的 本实验是有限状态机的典型综合实验,掌握如何使用状态转移图来定义Mealy状态机和Moore状态机,熟悉利用HDL代码输入方式进行电路的设计和仿真的流程,掌握Verilog语言的基本语法。并通过一个交通灯的设计掌握利用EDA软件(Xilinx ISE 13.2)进行HDL代码输入方式的电子线路设计与仿真的详细流程。。 六、实验内容 在Xilinx ISE 13.2上完成交通灯设计,输入设计文件,生成二进制码流文件下载到FPGA开发板上进行验证。 七、实验器材(设备、元器件)

基于FPGA的交通灯课程设计报告

总体设计要求和技术要点 1.任务及要求 (1)设计一个交通信号灯控制器,由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。 (2)红、绿、黄发光二极管作信号灯,用传感器或逻辑开关作检测车辆是否到来的信号。 (3)主干道处于常允许通行的状态,支干道有车来时才允许通行。主干道亮绿灯时,支干道亮红灯;支干道亮绿灯时,主干道亮红灯。 (4)主、支干道均有车时,两者交替允许通行,主干道每次放行45秒,支干道每次放行25秒,设立45秒、25秒计时、显示电路。 (5)在每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡,使行驶中的车辆有时间停到禁行线外,设立5秒计时、显示电路。 (6)按《湖南涉外经济学院课程设计管理办法》要求提交课程设计报告。 工作内容及时间进度安排 第17周:周1---周2 :立题、论证方案设计 周3---周5 :程序设计与调试 第18周:周1---周3 :硬件调试与测试、撰写课程设计报告 周4---周5 :验收答辩 课程设计成果 1.与设计内容对应的软件程序 2.课程设计总结报告

摘要 本实验为自主选题设计实验,实验选择具有倒计时显示功能的红黄绿三色交通设计,实验中采用VHDL 作为设计功能描述语言,选用Altera公司的EP1K30144-PIN TQFP最为主控芯片,实验报告中简要介绍了FPGA器件,并给出了设计原理图,详细的介绍了交通灯的设计流程,实验报告中还附有实验代码实验结果照片图。 Abstract This experiment designed for independent choice experiment, experiment choice which has the function of the countdown display red yellow green traffic design, description language (VHDL as design function is applied in the experiments, the most main control chip select MAX II EPM240T100C5 Altera company, experiment report, this paper briefly introduces the MAX II device series, and gives the design diagram, detailed introduces the traffic lights of the design process, the experiment report with the code results photo graph.

基于FPGA的交通灯设计说明

交通信号灯控制器

目录 第一章系统设计 1.1设计要求 (3) 1.2 方案比较 (3) 1.3方案论证 (3) 1.3.1总体思路 (4) 1.3.2设计方案 (5) 第二章单元电路设计 2.1 4位二进制计数器 (6) 2.2 两位二进制计数器 (6) 2.3定时时间到检测电路 (6) 2.4红黄绿灯输出控制电路 (6) 2.5计时器 (6) 第三章软件设计 3.1用VHDL编写程序 (6) 3.2 程序流程 (7) 3.3程序清单及仿真 (7) 第四章系统测试 (7) 第五章结论 (8) 参考文献 (9) 附录 (10)

0 引言 随着经济的飞速发展,现代化交通管理成了当今的热点问题。一个完善的交通控制功能,可使混乱的交通变得井然有序,从而保障了人们的正常外出。本系统通过设计一交通信号灯控制器,达到交通控制的目的。除实现交通灯基本的控制功能外,系统还可显示该灯本次距灯灭所剩的时间,具有更完善的控制功能,使行人提前做好起、停准备,具有更强的实用性。 第1章 系统设计 1.1设计要求 (1) 交通灯从绿变红时,有4秒黄灯亮的间隔时间。 (2) 交通灯红变绿是直接进行的,没有间隔时间。 (3) 主干道上的绿灯时间为20秒,支干道的绿灯时间为10秒。 (4) 在任意时间,显示每个状态到该状态结束所需要的时间。 1.2方案比较 要实现对交通灯的控制,有很多的方案可供选择。 方案一:由两块CMOS 集成电路完成定时和序列控制功能,三只双向晶体管完成实际的电源切换功能。电路中采用10V 负电源(可由市电电压经降压、整流、滤波、稳压而得)、CD4049集成电路、计数器CD4017等器件。其中双向晶闸管选用400V 、4A 的,二极管选用BY127型和1N4148型,稳压管选用10V 、1W 的。因直接使用市电工作,故在安装和使用时安全系数较低,且硬件电路复杂,所用器件多。 方案二:运用VHDL 语言分别控制分频和状态机两个模块, 即信号源经分频器分频后得到1Hz 脉冲,输出脉冲控制状态机中预置四个状态的循环,从而达到交通控制作用.该方案电路结构简单,使用器件少,易于安装和使用.但不宜于电路扩展,适用围小,应用不广泛. 方案三:采用VHDL 语言输入的方式实现交通信号灯控制器,并灵活运用了通用元件CBU14和CBU12作为4位二进制计数器和两位二进制计数器,简化了硬件电路,同时也给调试、维护和功能的扩展、性能的提高带来了极大的方便。 分析以上三种方案的优缺点,显然第三种方案具有更大的优越性、灵活性,所以采用第三种方案进行设计。 1.3 方案论证 1.3.1 总体思路 系统交通管理示意图如图1.3.1. 主干道 支干道 图1.3.1 路口交通管理示意图 由此可得出交通信号灯A 、B 、C 、D 的4种状态:

基于FPGA的交通灯(verilog)

基于同步FSM交通信号控制器 试验目的 1、进一步熟悉FSM原理; 2、交通信号控制逻辑的抽象建模方法; 3、掌握同步有限状态机的置位与复位方法; 3、掌握编写可综合的FSM一般指导原则; 试验原理 Verilog HDL和VHDL亍为描述用于综合还只有十年的历史,可综合风格的VerilogHDL和VHD啲语法只是它们各自语言的一个子集;HDL的可综合性研究近年来非常活跃,可综合子集的国际标准目前尚未最后形成,因此,各厂商的综合器所支持的HDL子集也略有不同;对于有关可综合的VerilogHDL的内容我们只着重于介绍RTL算法级和门级结构的描述;把一个时序逻辑抽象成一个同步有限状态机是设计可综合VerilogHDL 模块的关键。有限状态机是设计各种时序逻辑电路的关键。具体的有限状态机的原理可以参看试验七有关原理的介绍。下面介绍一般的可综合有限状态机的编写原则 每个always 块只能有一个事件控制@(event_expression) ,而且要紧跟在 always 关键字后面; always 可以表示时序逻辑或者组合逻辑;也可以用always 块既表示电平敏感的锁存器又同时表示组合逻辑; 带有posedge或negedge关键字的事件表达式表示边沿触发的时序逻辑,没有posedge或negedge关键字的表示组合逻辑或者电平敏感的锁存器,或者两者都表示; 每个表示时序的always 块只能由一个时钟跳变沿触发,置位和复位最好也由该始终跳变沿触发; 每个在always 块中赋值的信号必须定义为reg 类型或者整型; Always 块中应该避免组合反馈回路; 实验步骤和实验内容 1、本试验交通信号控制灯的逻辑关系该交通信号灯控制器用于控制一条主干道与一 条乡村公路的交叉口的交通 ( 如图8-1 所示) ,它必须具有下面的功能;由于主干道上来往的车辆较多,因此控制主干道的交通信号灯具有最高优先级,在默认情况下,主干道的绿灯点亮;乡村公路间断性地有车经过,有车来时乡村公路的交通灯必须变为绿灯,只需维持一段足够的时间,以便让车通过。只要乡村公路上不再有车辆,那么乡村公路上的绿灯马上变为黄灯,然后变为红灯;同时,主干道上的绿灯重新点亮;一传感器用于监视乡村公路上是否有车等待,它向控制器输入信号X;如果X=1,则

基于FPGA的交通灯设计报告

合肥学院综合课程设计报告 题目:基于FPGA的交通灯设计 专业:电子信息工程 班级:09电子(2)班 姓名:周峰 导师: 成绩: 2012年12月11日

基于FPGA的交通灯设计 一:题目要求 1:主干道绿灯时,支干道红灯亮,反之亦然,两者交替允许通行。主干道每次放行40秒,支干道每次放行30秒。每次路灯亮,前10秒为左转灯亮,后5秒为黄灯亮。余下为直行灯亮、 2:能实现正常的倒计时显示功能。 3:能实现总体清零功能;计数器由初始状态开始计数,对应状态的指示灯亮。二:题目分析 1:在十字路口东西方向和南北方向各设一组左转灯、;显示的顺序为:左转灯绿灯黄灯红灯。 2:设计一个倒计时显示器。倒计时只显示总体时间。主干道左转灯、红灯、绿灯和黄灯亮的时间分别是10秒、30秒、25秒、5秒。支干道左转灯、红灯、绿灯和黄灯亮的时间分别是10秒、40秒、15秒、5秒状态表如表3-1所示:3 三:选择方案 1:方案一 在VHDL设计描述中,采用自顶向下的设计思路,该思路在自顶向下的VHDL 设计描述中,通常把整个设计的系统划分为几个模块,然后采用结构描述方式对整个系统进行描述。根据实验设计的结构功能,来确定使用哪些模块以及这些模块之间的关系。通过上面的分析,不难得知可以把交通灯控制系统划分为3个模块:时钟模块、控制模块、分频模块。 2:方案二 不采用方案一的分模块设计,直接用进程写程序。该程序由7个进程组成,进程P1将CLK信号分频后产生1秒信号,P2形成0-49的计数器,进程P3、P4用来控制的信号灯亮灭的,其中P5、P6产生数码管显示的倒数的十进制形式。进程P7实现状态转换和产生状态转换的控制信号,进而控制数码管显示。 由于方案一中使用进程会使程序变得很复杂,不易理解,所以我采用了方案二。

基于FPGA的交通灯设计(状态机)

基于FPGA的交通灯设计规范 一、功能描述: 本设计实现一个交通信号灯,具体功能如下: 1.异步信号复位,复位后1组为红灯亮2组为绿灯亮,数码管显示从24开始 依次递减计数 2.实现红黄绿灯的延时交替亮灭,分两组灯,1组红灯亮时,2组为黄灯,5 秒后,1组红灯亮,2组绿灯亮;25秒后,1组黄灯亮,2组红灯亮;5秒后,1组绿灯亮,2组红灯亮。如此交替重复 3.计时时间25秒、5秒显示在数码管上。分别为:从24依次递减到0,从4 依次递减到0 二、输入输出信号描述:

系统结构框图 顶层模块说明: 1、fenpin:将50MHz晶振转为1Hz作为时钟频率; 2、delay:计数延时; 3、state:指出状态转移顺序; 4、shuma:将计数延时用数码管输出显示。 设计说明: 设计分为分频、延时、状态机、数码管显示四个模块。分频,将50MHz的系统时钟转为1Hz。计数延时,让状态机能在合适的时间点进行状态切换。状态机,完成状态间的切换,输出。数码管显示,将延时模块的计时输出值转换为数码管输出显示。 状态机的输出状态信号标志flag=out[1]|out[4],即为:判断此时的两组输出是否有黄灯亮。flag_data=flag,作为计数延时模块的输入,用状态信号标志flag_data和计数值cnt来共同控制计数模块是5秒还是25秒。 四、子模块描述: 4.1、fenpin:分频模块 1、功能描述 将实验板上的50MHz的石英晶振频率转为1Hz。 2、管脚描述

每当clock时钟上升沿来临时,内部寄存器sum从0递加,加至25000000时,对clk进行取反操作,则可得到频率为1Hz的clk时钟 4.2、delay:延时模块 1、功能描述 计数延时,让状态机能在合适的时间点进行状态切换。 用计数值和状态信号标志的与结果(cnt==0 && flag_data)来判断计数延时的初始值应为24还是4 4.3、state:状态机模块 1、功能描述 完成状态间的切换,输出。 状态信号标志flag=out[1]|out[4]。即为检测当前是否有黄灯亮。 注:out[5:3]对应1组灯的:红黄绿 out[2:0]对应2组灯的:红黄绿 4.4、shuma:数码管显示模块 1、功能描述 将延时模块的计时输出值转换为数码管输出显示。

基于FPGA的交通灯设计开题报告

西京学院 本科毕业设计(论文)开题报告题目:基于FPGA的交通灯设计 教学单位:xxx 专业:xxx 学号: xxx 姓名: xxx 指导教师:xxx xxxx年xx月 开题报告填写要求

1.开题报告作为毕业设计(论文)答辩委员会对学生答辩资格审查的依据材料之一。此报告应在指导教师指导下,由学生在毕业设计(论文)工作前期内完成,经指导教师签署意见及所在院(系)审查后生效。 2.开题报告内容必须按教务处统一设计的电子文档标准格式(可从教务处网页上下载)填写并打印(禁止打印在其它纸上后剪贴),完成后应及时交给指导教师签署意见。 3.开题报告字数应在1500字以上,参考文献应不少于15篇(不包括辞典、手册,其中外文文献2篇),文中引用参考文献处应标出文献序号,“参考文献”应按照国标GB 771至少4—87《文后参考文献著录规则》的要求书写。 4.指导教师意见和所在院(系)意见用黑墨水笔书写,并亲笔签名。 5. 年、月、日的日期一律用阿拉伯数字书写,例:“2005年11月26日”或“2005-11-26”。

1.毕业设计(论文)题目背景、研究意义及国内外相关研究情况。 1、课题背景和意义: 今年来,随着汽车数量的猛增,我国中大型城市的城市交通,正面临着严峻的考验,从而导致交通问题的日益严重,其主要表现如下:交通事故的频发,对人类生命安全造成极大威胁;交通拥堵严重,导致出行时间增加,能源消耗加大;空气污染和噪声污染程度日益增加等。日常的交通堵塞成为人们司空见惯而有不得不忍受的问题。在这种背景字儿,结合我国城市道路交通的实际情况,开发出真正适合我们自身特点的智能信号灯控制系统已经成为当前的主要任务。 和谐的城市交通具有很重要的现实意义,城市交通是城市经济生活的命脉,是衡量一个城市文明进步的标志,对于城市经济的发展和人民生活水平的提高起着十分重要的作用。作为城市交通网的重要组成部分。交叉口是道路通行能力的瓶颈和交通阻塞及事故的多发地。城市的交通拥堵,大部分是由于交叉口的通行能力不足或没有充分利用造成的,这导致车流中断、事故增多、延误严重。对交叉实行科学的管理与控制是交通控制工程的重要研究课题,是保障交叉口的交通安全和充分发挥交叉口的通行能力的重要措施,是解决城市交通问题的有效途径。所以,改变和完善我国现有的交通系统已成为当务之急。 2、国内外研究情况: 目前设计交通灯的方案有很多,有应用CPLD设计实现交通灯控制方法;有应用PLC实现对交通灯控制系统的设计;有应用单片机实现对交通灯设计的方法;还有用FPGA实现交通灯的设计;目前国内的交通灯一半设计在十字路口,在醒目位置用红、绿、黄三种颜色的指示灯,加上一个倒计时的显示计时器来控制行车,对于一般情况下的安全行车,车辆分流尚能发挥作用,但根据实际行车过程中出现的情况,还存在以下缺点:1、两车道的车辆轮流放行时间相同,在十字路口,经常一个车道为主干道,车辆较多,放行时间应长些;另一车道为副干道,车辆较少,放行时间应短些。2、两条干道的红绿时间不能随时间改变而修改。

基于FPGA的交通灯控制器设计

交通灯控制器设计 专业:计算机应用技术 班级:计应2 班 学号:147030201 姓名:蔡利军

基于FPGA的交通灯控制器设计 摘要 超高速硬件描述语言VHDL,是对数字系统进行抽象的行为与功能描述到具体的内部线路结构描述,利用EDA工具可以在电子设计的各个阶段、各个层系进行计算机模拟验证,保证设计过程的正确性,可大大降低设计成本,缩短设计周期。本文介绍的数字秒表设计,利用基于VHDL的EDA设计工具,采用大规模可编程逻辑器件FPGA,通过设计芯片来实现系统功能。 交通灯控制系统可以实现路口红绿灯的自动控制。基于FPGA设计的交通灯控制系统具有电路简单、可靠性强、实时快速擦写、运算速度高、故障率低、可靠性高,而且体积小的特点。本设计采用Altera公司Cyclone系列的EPlC3T1444C8芯片,在Quartus II软件平台上使用VHDL语言,采用自顶向下的设计方法对系统进行了模块化设计和综合,并进行了仿真。该系统可实现十字路口红绿灯及左转弯控制和倒计时显示,仿真结果结果表明系统能够自动控制交通灯转变。 关键词:VHDL,交通灯,EDA

目录 前言 (1) 第1章 FPGA概述 (2) 1.1 FPGA的简介 (2) 1.2 FPGA的应用 (2) 第2章 VHDL硬件描述语言 (3) 2.1 VHDL程序基本结构 (3) 2.1.1 实体 (4) 2.1.2 结构体 (4) 2.1.3 库 (5) 2.2 VHDL语言 (5) 2.2.1 VHDL文字规则 (5) 2.2.2 VHDL数据对象 (5) 2.2.3 VHDL数据类型 (6) 2.2.4 VHDL 顺序语句 (6) 2.2.5 VHDL并行语句 (6) 第3章系统设计与仿真 (7) 3.1 系统介绍 (7) 3.1.1 设计任务 (7) 3.1.2 设计要求 (7) 3.2 系统设计仿真 (8) 3.2.1 顶层框图的设计 (8) 3.2.2 时序状态图的设计 (9) 3.2.3 工程设计流程框图: (10) 3.2.4 芯片的选择 (10) 3.2.5 各个模块的设计与仿真 (11) 结论 (27) 附录..................................... 错误!未定义书签。

基于FPGA的交通灯控制器设计_课程设计报告

《EDA技术》课程实验报告 课程名称:EDA技术及应用 报告题目:交通灯控制器设计 学部:信息科学与工程 姓名: 学号: 班级: 同组者: 指导教师:

信息科学与工程学院2012-2013学年第二学期

课程设计任务书 报告题目交通灯控制器的设计完成时间 6.19 学生姓名陈外流专业 班级 电信 1002班 指导教师曹铁军职称教授总体设计要求和技术要点 1.任务及要求 (1)设计一个交通信号灯控制器,由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。 (2)红、绿、黄发光二极管作信号灯,用传感器或逻辑开关作检测车辆是否到来的信号。 (3)主干道处于常允许通行的状态,支干道有车来时才允许通行。主干道亮绿灯时,支干道亮红灯;支干道亮绿灯时,主干道亮红灯。 (4)主、支干道均有车时,两者交替允许通行,主干道每次放行45秒,支干道每次放行25秒,设立45秒、25秒计时、显示电路。 (5)在每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡,使行驶中的车辆有时间停到禁行线外,设立5秒计时、显示电路。 (6)按《湖南涉外经济学院课程设计管理办法》要求提交课程设计报告。 工作内容及时间进度安排 第17周:周1---周2 :立题、论证方案设计 周3---周5 :程序设计与调试 第18周:周1---周3 :硬件调试与测试、撰写课程设计报告 周4---周5 :验收答辩 课程设计成果 1.与设计内容对应的软件程序 2.课程设计总结报告

摘要 本实验为自主选题设计实验,实验选择具有倒计时显示功能的红黄绿三色交通设计,实验中采用VHDL 作为设计功能描述语言,选用Altera公司的EP1K30144-PIN TQFP最为主控芯片,实验报告中简要介绍了FPGA器件,并给出了设计原理图,详细的介绍了交通灯的设计流程,实验报告中还附有实验代码实验结果照片图。 Abstract This experiment designed for independent choice experiment, experiment choice which has the function of the countdown display red yellow green traffic design, description language (VHDL as design function is applied in the experiments, the most main control chip select MAX II EPM240T100C5 Altera company, experiment report, this paper briefly introduces the MAX II device series, and gives the design diagram, detailed introduces the traffic lights of the design process, the experiment report with the code results photo graph.

基于FPGA设计——交通灯

FPGA课程设计——交通灯控制器 通信工程学院 电科0701班 罗超(17)

第一部分技术规范 1.1功能描述: 实现一个由一条主干道和一条支干道的汇合点形成的十字路口的交 通灯控制器,具体功能: (1) 主、支干道各设有一个绿、黄、红指示灯,两个显示数码管。 (2) 主干道处于长允许通行状态,而支干道有车来时才允许通行。当主干道允许通行亮绿灯时,支干道亮红灯。而支干道允许通行亮绿灯时,主干道亮红灯。 (3) 当主干道、支干道均有车时,两者交替允许通行,主干道每次通行45 秒,支干道每次通行25 秒,在每次由绿灯向红灯转换的过程中,要亮5 秒的黄灯作为过渡,并进行减计时显示。每个周期结束时都要进行支干道是否有车的检测,若有车则进行下一个周期,若没有,则主干道亮绿灯,支干道亮红灯,直到检测到支干道有车。 1.2系统总体框图: 根据设计要求和系统所具有的功能,并参考相关的文献资料,经行方案设计,可以画出如下图所示的交通信号灯控制器的系统框图。

I/O 管脚的描述 名称 方向 电平 位宽 功能 clk Input 3.3V 1 系统时钟信号(10KHZ ) carsignal Input 3.3V 1 检测支路是否有车 rst Input 3.3V 1 复位信号 led Output 3.3V 6 LED 灯 sel Output 3.3V 7 数码管段码 seg Output 3.3V 4 数码管位码 时钟分频模块 交通灯控制模块 扫描显示译码模块 clk rst carsignal 计时模块 数码管段码 sel 数码管位码 seg LED 灯

基于FPGA交通灯设计

河南科技学院新科学院数字系统课程设计报告书 课题名称基于FPGA的交通灯设计 院系新科学院 姓名学号夏文平、2013280218 专业班级通信工程、通信132 指导教师刘艳昌、雷进辉 设计时间2014-2015学年第2学期12、13周 2015年 6月 5 日

摘要 (1) 关键词 (1) Ⅰ课程设计目的 (1) Ⅱ设计任务及要求 (1) Ⅲ系统设计总体方案 (2) Ⅳ各模块具体实现 (2) ㈠分频模块 (2) ㈡倒计时模块 (3) ㈢转码模块 (5) ㈣交通控制模块 (6) Ⅴ系统仿真及硬件下载 (10) Ⅵ遇到的问题及分析 (12) Ⅶ结论与心得 (12) 参考文献 (13)

摘要 交通灯信号控制器通常要实现自动控制和手动控制其红绿灯的变化,基于FPGA设计的交通灯信号控制器电路简单、可靠性好。 本设计可控制2个路口的红、黄、绿三盏灯.让其按特定的规律进行变化。利用QuartusⅡ对设计结果进行仿真,发现系统工作性能良好。据此设计而成的硬件电路,也实现了控制要求。 关键词:交通灯自动控制手动控制 Ⅰ课程设计目的。 巩固加深所学电子技术课程的基本知识,提高综合运用所学知识的能力。同时培养学生选用参考书、查阅手册、图表和文献资料的能力,提高解决实际问题的能力。并且,在设计方案分析比较、设计计算、电路安装等缓解掌握使用电路的设计方法。然后提高学生的动手能力,掌握仪器设备的正确使用方法。最后了解与课题有关的电路以及元器件的工程技术规范,能按课程设计任务数的要求编写设计说明书,可以正确反映设计和实验成果,能正确绘制电路图等。 Ⅱ设计任务及要求。 设计一个十字路口的交通灯控制电路,要求甲车道和乙车道两条交叉道路上的车辆交替运行,每次的通行时间都设为25秒。要求黄灯先亮5秒,才能变换运行车道并且黄灯亮时另一干道的红灯按1Hz 的频率闪烁。要求通行时间及黄灯亮的时间均可在60秒内任意设定。

(完整版)基于FPGA的交通灯毕业设计论文

基于FPGA的交通灯设计 摘要EDA工具对于电子设计人员来说极其重要,它可以在电子设计的各个阶段、层次进行计算机模拟验证,确保设计的准确性,可缩短设计周期,降低设计成本。本文介绍的是数字信号交通灯,利用EDA设计工具,采用VHDL语言开发设计,并通过FPGA(即现场可编程门阵列)芯片设计来实现系统控制功能。 数字信号交通灯可以实现十字路口红绿灯的自动控制。基于FPGA的交通灯设计系统具有可靠性强、实时快速擦写、运算速度高、故障率低、电路简单,且体积小的特点。本毕业设计采用的是Altera公司CycloneII系列的EP2C5T144芯片作为核心最小系统,它可以方便嵌入到实际的交通灯应用系统中,可以完成简单的逻辑控制、数据采集、信号处理、数学计算等功能;使用QuartusII软件作为开发平台;采用自顶向下的设计思路对系统进行模块化设计和综合,并通过波形仿真和硬件实现两种方式实现并验证数字信号交通灯的功能。 关键词VHDL,交通灯,EDA ABSTRACT

EDA tools is extremely important to electronic designers, to ensure the accuracy of the design ,it can verify computer simulations in all stages and levels of electronic design ,it can also shorten the design cycle and reduce design costs .This article describes a digital signal traffic lights ,using EDA design tools ,and VHDL ,and FPGA(the Field Programmable Gate Arrays),through the chip to design system control functions. Digital signal traffic light traffic lights can achieve automatic control of the crossroads .The design of FPGA-based traffic light system , lower rate of fault, simple circuit and small volume. During this graduation project, I take the Altera Corporation CycloneII series EP2C5T144 chip as the minimum system core, it can be easily embedded in the actual application of the traffic light system, it can do simple logic control, data acquisition, signal processing, mathematical calculations and other functions;using QuartusII as development platform; using top-down design ideas to system modular design and synthesis, and through waveform simulation and two ways to complete and verify the function of digital signal traffic lights.

基于FPGA交通灯控制器设计

基于F P G A交通灯控制 器设计 This model paper was revised by the Standardization Office on December 10, 2020

摘要 随着现代城市及交通工具的发展,交通事故也急剧增加,为了改善交通秩序及减少交通事故,交通灯起着越来越重要的作用。在越来越多的城市的各个路口上安装了交通灯,来改善交通秩序。 现代城市在日常运行控制中,越来越多的使用红绿灯对交通进行指挥和管理。而一套完整的交通灯控制系统通常要实现自动控制和手动控制去实现其红绿灯的转换。基于FPGA 设计的交通灯控制系统电路简单、可靠性好。本设计利用Verilog HDL 语言、采用层次化混合输入方式,可控制4个路口的红、黄、绿、左转四盏信号灯,让其按特定的规律进行变化。在QuartusⅡ下对系统进行了综合与仿真。仿真结果表明系统可实现十字路口红绿灯及左转弯控制和倒计时显示,并能够自动控制交通灯转变。 关键词:FPGA,交通灯控制器,QuartusⅡ,Verilog HDL

Abstract With the development of modern cities and transport, traffic accidents also increased dramatically, plays an increasingly important role in order to improve traffic order and reduce traffic accidents and traffic lights. More and more all the roads of the city to install traffic lights to improve traffic city, more and more control of the day-to-day running of the traffic light traffic command and management. And a complete set of traffic light control system is usually to achieve automatic control and manual control to achieve the conversion of its traffic lights. FPGA design-based traffic light control system circuit is simple and good reliability. The design using Verilog HDL language using hierarchical mixed input, and can control the four junctions of red, yellow, green, and turn left at the four signal lights, so that a particular law of change. QUARTUS Ⅱ system synthesis and simulation. The simulation results show that the system can achieve the crossroads of traffic lights and turn left control and countdown display and can automatically control the traffic lights into. Key Words:FPGA ,traffic light controller, Quartus II, The Verilog HDL

基于VHDL的交通灯设计(EDA课程设计报告)

EDA课程设计实验报告 交通信号控制器的VHDL的设计 一、设计任务及要求: 设计任务:模拟十字路口交通信号灯的工作过程,利用实验板上的两组红、黄、绿LED作为交通信号灯,设计一个交通信号灯控制器。要求: (1)交通灯从绿变红时,有4秒黄灯亮的间隔时间; (2)交通灯红变绿是直接进行的,没有间隔时间; (3)主干道上的绿灯时间为40秒,支干道的绿灯时间为20秒; (4)在任意时间,显示每个状态到该状态结束所需的时间。 支干道 主干道 图1 路口交通管理示意图 设计要求: (1)采用VHDL语言编写程序,并在QUARTUSII工具平台中进行仿真,下载到EDA实验箱进行验证。 (2)编写设计报告,要求包括方案选择、程序清单、调试过程、测试结果及心得体会。 二设计原理

1、设计目的: 学习DEA开发软件和QuartusII的使用方法,熟悉可编程逻辑器件的使用。通过制作来了解交通灯控制系统,交通灯控制系统主要是实现城市十字交叉路口红绿灯的控制 2’设计说明 (1)第一模块:clk时钟秒脉冲发生电路 在红绿灯交通信号系统中,大多数情况是通过自动控制的方式指挥交通的。因此为了避免意外事件的发生,电路必须给一个稳定的时钟(clock)才能让系统正常运作。 模块说明: 系统输入信号: Clk: 由外接信号发生器提供256的时钟信号; 系统输出信号: full:产生每秒一个脉冲的信号; (2)第二模块:计数秒数选择电路 计数电路最主要的功能就是记数负责显示倒数的计数值,对下一个模块提供状态转换信号。 模块说明: 系统输入:full: 接收由clk电路的提供的1hz的时钟脉冲信号; 系统输出信号:tm:产生显示电路状态转换信号 tl:倒计数值秒数个位变化控制信号 th:倒计数值秒数十位变化控制信号 (3)第三模块:红绿灯状态转换电路 本电路负责红绿灯的转换。 模块说明: 系统输入信号:full: 接收由clk电路的提供的1hz的时钟脉冲信号; tm: 接收计数秒数选择电路状态转换信号; 系统输出信号:comb_out: 负责红绿灯的状态显示。 (4)第四模块:时间显示电路 本电路负责红绿灯的计数时间的显示。 模块说明: 系统输入信号:tl:倒计数值秒数个位变化控制信号; th:倒计数值秒数十位变化控制信号;

基于FPGA的交通灯控制器设计

数字系统课程设计基于FPGA的交通控制灯设计 姓名: 学号: 班级:

摘要 随着社会的发展,城市规模的不断扩大,城市交通成为制约城市发展的一大因素。人口和汽车日益增长,市区交通也日益拥挤,人们的安全问题当然也日益重要。因此,红绿交通信号灯成为交管部门管理交通的重要工具之一。有了交通灯,人们的安全出行也有了很大的保障。自从交通灯诞生以来,其内部的电路控制系统就不断的被改进,设计方法也开始多种多样,从而使交通灯显得更加智能化。尤其是近几年来,随着电子与计算机技术的飞速发展,电子电路分析和设计方法有了很大的改进,电子设计自动化也已经成为现代电子系统中不可或缺的工具和手段,这些都为交通灯控制系统的设计提供了一定的技术基础。本课程设计运用erilog HDL语言描述交通控制器,通过状态机计数法,实现设计所要求的交通灯控制及时间显示,并最后进行了软件实现,达到了系统要求的功能。

设计原理 1.1设计要求 设计一个交通控制器,用LED 显示灯表示交通状态,并以7段数码显示器显示当前状态剩余秒数 主干道绿灯亮时,支干道红灯亮;反之亦然,二者交替允许通行,主干道每次放行35s ,支干道每次放行25s 。每次由绿灯变为红灯的过程中,亮光的黄灯作为过渡,黄灯的时间为5s 。能进行特殊状态显示,特殊状态时东西、南北路口均显示红灯状态。用LED 灯显示倒计时,并且能实现总体清零功能,计数器由初始状态开始计数,对应状态的显示灯亮。能实现特殊状态的功能显示, 1.2设计思路和原理 本次设计是针对十字路口,进行南北和东西直行情况下交通灯控制。设定东西方向为主干道方向,根据交通灯的亮的规则,在初始状态下四个方向的都为红灯亮启,进入正常工作状态后,当主干道上绿灯亮时,支干道上红灯亮,持续35S 后,主干道和支干道上的黄灯都亮启,持续5S 后,主干道上红灯亮启,支干道上绿灯亮启持续25S ,之后主干道和支干道上的黄灯都亮启5s ,一个循环完成。循环往复的直行这个过程。其过程如下图所示: 0s 30s 25s 主干道方向 支干道方向 图1.交通灯点亮时间控制说明 1.3实现方法 本次采用文本编辑法,即利用Verilog HDL 语言描述交通控制器,通过状态机计数法,实现设计所要求的交通灯控制及时间显示。设计中用两组红黄绿LED 模拟两个方向上的交通灯,用4个7段数码管分别显示两个方向上的交通灯剩余时间,控制时钟由试验箱上频率信号提供。

相关文档
最新文档