1、 目 录摘 要I1 前言12 交通红绿灯控制电路的发展与技术现状22.1 交通控制系统以及交通红绿灯控制电路的发展现状22.2 智能交通红绿灯控制电路技术的现状33 VHDL、FPGA、Quartus ii简介43.1 VHDL简介43.1.1 VHDL简介43.1.2 VHDL语言的特点53.2 FPGA简介63.2.1 PLD器件的设计特点73.2.2 FPGA的基本结构83.2.3 采用FPGA设计逻辑电路的优点93.3 Quartus II 的简介104 具体方案论证与设计114.1 具体方案论证114.2系统算法设计134.3 具体电路原理图144.4 电路仿真图145 实验结果15
2、总 结15参考文献16附录:1819 基于FPGA的十字路口交通信号灯 摘 要 本文主要介绍十字路口交通灯控制器的设计。首先,介绍交通控制系统以及交通红绿灯控制电路的发展现状;然后采用硬件描述语言进行的交通灯控制器设计。重点介绍了控制系统各部分的设计,以及各个模块之间的同步处理。为了克服交通信号灯控制系统传统设计方法的弊端,更加适应城镇交通现状,利用VHDL语言、采用层次化混合输入方式,设计了具有3种信号灯和倒计时显示器的交通信号灯控制系统,在Quartus下进行仿真,并下载到FPGA中制作成实际的硬件电路进行了模拟运行.使用该方法设计的交通灯控制系统电路简单、运行可靠、易于实现,可实现对交通
3、信号的控制和显示功能。 关键词 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 ha
4、rdware description language designed for the traffic light controller.Focus on various parts of the control system design, and synchronization between various modules.In order to overcome the traffic signal control system of traditional design drawbacks, more responsive to urban traffic situation, t
5、he use of VHDL language, the use of hierarchical hybrid approach, designed with three kinds of lights and countdown display traffic light control system, in the Quartus under simulatedand downloaded to the FPGA, made into the actual hardware to run the simulation circuit. use this method of traffic
6、light control system design of the circuit is simple, reliable, easy to implement, can be realized on the traffic signal control and display functions. Key wordsHDPLD; Crossing traffic lights; Controller; Vehicle pedestrian safety 1 前言城市交通是一个集经济性与社会公益性于一体的领域,包括管理体制、城市规划布局、投融资体制、交通方式选择、公共交通运营组织、交通需求管
7、理、交通流量控制与管理等等方面的内容,涉及到管理、法规、规划、工程、TRANBBS技术、财政、教育、环境、能源、信息以及人文等社会经济诸多学科领域。这些方面集成在一起形成一个错综复杂的城市交通大系统。系统问题就必须通过系统方法来解决,解决系统问题的基本方法是建立有效的信息传导、控制和反馈机制,实现各子系统联动从而提高整体系统有效运行并实现其目标。从这个意义上讲,城市交通问题的核心就是如何建立一个有效的管理机制,保证各子系统及系统要素有机衔接与互动,从而实现城市交通系统的良性运转。随着社会经济发展和城市人口的膨胀,中国大中城市交通均面临着诸多问题,其中特别突出的是交通拥堵。拥堵的频繁发生和严重程
8、度已经严重影响了城市的正常运转,给城市居民带来生活不便,衍生交通事故,加剧了城市环境污染。引起拥堵的原因为交叉口运行不畅;路网布局不合理;交通结构不合理;交通秩序不佳。交通拥堵的发生使汽车被迫减速和加速,甚至停车,导致了汽车行驶油料消耗和废气排放增加,根据国外有关资料和国内环境专家研究成果表明,机动车在怠速状态下所排放的一氧化碳、氮氧化物是正常行驶状态下的35倍。因此拥堵加大了对城市环境的污染。通过采取有效措施的实行和实施交通新技术,将有利于缓解交通拥堵状况,从而节约城市能源和降低环境污染。2 交通红绿灯控制电路的发展与技术现状2.1 交通控制系统以及交通红绿灯控制电路的发展现状 随着社会经济
9、的发展,城市交通问题越来越引起人们的关注。出行交通的协调,已成为交通管理部门需要解决的重要问题之一。城市交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。 随着城市机动车量的不断增加,许多城市出现了交通超负荷运行的情况,因此,自80年代后期,这些城市纷纷修建城市高速道路,在高速道路建设完成的初期,它们也曾有效地改善了交通状况。然而,随着交通量的快速增长和缺乏对高速道路的系统研究和控制,高速道路没有充分发挥出预期的作用。而城市高速道路在构造上的特点,也决定了城市高速道路的交通状况必然受高速道路与普通道路耦合处交通状况
10、的制约。所以,如何采用合适的控制方法,最大限度利用好耗费巨资修建的城市高速道路,缓解主干道与匝道、城区同周边地区的交通拥堵状况,越来越成为交通运输管理和城市规划部门亟待解决的主要问题。 车辆的数量持续增加,不断新建道路已不能很好地解决交通拥堵的现状,这还需要好的交通疏导,但交通的问题日益突出,单单依靠人力来指挥交通已经不可行了,所以,设计交通灯来完成这个需求就显的越加迫切了.为了确保十字路口的行人和车辆顺利、畅通地通过,往往采用电子控制的交通信号来进行指挥。智能交通红绿灯控制电路是用于城市交通疏导的管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。智能的交通信号灯指挥着人和各种车辆的安
11、全运行,实现红、黄、绿灯的自动指挥是城乡交通管理现代化的重要课题.在城乡街道的十字交叉路口,为了保证交通秩序和行人安全,一般在每条道路上各有一组红、黄、绿交通信号灯.交通灯控制电路自动控制十字路口两组红、黄、绿交通灯的状态转换,指挥各种车辆和行人安全通行,实现十字路口城乡交通管理自动化.2.2 智能交通红绿灯控制电路技术的现状 通信号控制系统大体上分为三种类型:定周期的信号机、多时段且具有无电缆协调功能的微电脑型信号机以及联网式自适应多相位智能型信号机。具体采用哪种类型,应根据其应用场合及特点加以确定。其中,第一种类型以其成本低,设计简单,安装及维护方便等特点得到了广泛应用。本文讨论的城乡交通
12、灯控制系统就属于该种类型。而随着各种控制器件的推出,交通灯控制电路得以更易实现并趋向智能化。 交通灯控制系统主要由时间发生器电路、光电检测电路、控制电路等几个部分组成。 目前设计交通灯的方案有很多,有应用CPLD设计实现交通信号灯控制器方法;有应用PLC实现对交通灯控制系统的设计;有应用单片机实现对交通信号灯设计的方法。目前,国内的交通灯一般设在十字路门,在醒目位置用红、绿、黄三种颜色的指示灯。加上一个倒计时的显示计时器来控制行车。对于一般情况下的安全行车,车辆分流尚能发挥作用,但根据实际行车过程中出现的情况,还存在以下缺点:1两车道的车辆轮流放行时间相同且固定, 在十字路口,经常一个车道为主
13、干道,车辆较多,放行时间应该长些;另一车道为副干道,车辆较少,放行时间应该短些。2没有考虑紧急车通过时,两车道应采取的措施,臂如,消防车执行紧急任务通过时,两车道的车都应停止,让紧急车通过。这些控制方法的功能修改及调试都需要硬件电路的支持,在一定程度上增加了功能修改及系统调试的困难。3 VHDL、FPGA、Quartus ii简介3.1 VHDL简介3.1.1 VHDL简介VHDL 的英文全名是 Very-High-Speed Integrated Circuit Hardware Description Language,诞生于 1982 年。1987 年底,VHDL被 IEEE 和美国国防
14、部确认为标准硬件描述语言。 VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。 3.1.2 VHDL语言的特点VHDL 语言能够成为标准化的硬件描述语言并获
15、得广泛应用 , 它自身必然具有很多其他硬件描述语言所不具备的优点。归纳起来 ,VHDL 语言主要具有以下优点: (1)VHDL 语言功能强大 , 设计方式多样 VHDL 语言具有强大的语言结构, 只需采用简单明确的VHDL语言程序就可以描述十分复杂的硬件电路。同时, 它还具有多层次的电路设计描述功能。此外 ,VHDL 语言能够同时支持同步电路、异步电路和随机电路的设计实现, 这是其他硬件描述语言所不能比拟的。VHDL 语言设计方法灵活多样 , 既支持自顶向下的设计方式, 也支持自底向上的设计方法; 既支持模块化设计方法, 也支持层次化设计方法。 (2) VHDL 语言具有强大的硬件描述能力.V
16、HDL 语言具有多层次的电路设计描述功能,既可描述系统级电路 , 也可以描述门级电路;描述方式既可以采用行为描述、寄存器传输描述或者结构描述,也可以采用三者的混合描述方式。同时,VHDL 语言也支持惯性延迟和传输延迟,这样可以准确地建立硬件电路的模型。VHDL 语言的强大描述能力还体现在它具有丰富的数据类型。VHDL 语言既支持标准定义的数据类型,也支持用户定义的数据类型,这样便会给硬件描述带来较大的自由度。 (3)VHDL 语言具有很强的移植能力 VHDL 语言很强的移植能力主要体现在: 对于同一个硬件电路的 VHDL 语言描述 , 它可以从一个模拟器移植到另一个模拟器上、从一个综合器移植到
17、另一个综合器上或者从一个工作平台移植到另一个工作平台上去执行。 (4) VHDL 语言的设计描述与器件无关 采用 VHDL 语言描述硬件电路时, 设计人员并不需要首先考虑选择进行设计的器件。这样做的好处是可以使设计人员集中精力进行电路设计的优化, 而不需要考虑其他的问题。当硬件电路的设计描述完成以后 ,VHDL 语言允许采用多种不同的器件结构来实现。 (5)VHDL 语言程序易于共享和复用 VHDL 语言采用基于库 ( library) 的设计方法。在设计过程中 , 设计人员可以建立各种可再次利用的模块 , 一个大规模的硬件电路的设计不可能从门级电路开始一步步地进行设计 , 而是一些模块的累加
18、。这些模块可以预先设计或者使用以前设计中的存档模块, 将这些模块存放在库中 , 就可以在以后的设计中进行复用。 (6)由于 VHDL 语言是一种描述、模拟、综合、优化和布线的标准硬件描述语言 , 因此它可以使设计成果在设计人员之间方便地进行交流和共享, 从而减小硬件电路设计的工作量, 缩短开发周期。3.2 FPGA简介3.2.1 PLD器件的设计特点EDA技术出现以前,数字逻辑电路设计通常采用传统方法,即自下而上设计法。其主要思路是:根据系统对硬件的要求编制技术规格书,画出系统流程图;然后对系统功能进行分析,划分出多个功能模块,画出系统功能框图;进行各功能模块的细化和电路设计;各模块设计调试完
19、毕以后,再连接起来,进行调试,最后完成整个系统的硬件设计。这种自下而上设计法的仿真和调试工作要在系统的硬件开发完成以后才能进行,因此存在的问题只有在后期才能发现,一旦考虑不周,就要重新设计,使得设计费用和设计周期大大增加。此外,由于设计输入文件是电原理图,当系统比较复杂时,大量的原理图文件会给存档、阅读和修改带来不便。 为了提高开发效率和增加已有开发成果的可继承性,缩短开发周期,各种新兴的EDA开发工具开始涌现,特别是硬件描述语言(HDL)的出现,使得传统的硬件电路设计方法发生了巨大的变革。基于PLD器件,采用HDL进行系统设计的思路是从系统总体的要求出发,自上而下地逐步将设计内容细化,最后完
20、成系统的详细设计。这种设计方法的主要特点为:(1)电路设计更趋合理硬件设计人员在设计硬件电路时使用PLD器件,就可以自行设计所需的专用功能模块,而无需受通用元器件的限制,从而使电路设计更趋合理,其体积和功耗也大为减小。(2)采用系统早期仿真在自上而下的设计过程中,每级都进行仿真,从而可以在系统设计的早期发现设计中存在的问题,从而大大缩短系统设计周期,降低费用。(3)降低了硬件电路设计难度PLD使用HDL编程,避免编写逻辑表达式或真值表,使设计难度大幅度下降,从而也缩短了设计周期。(4)主要设计文件使用HDL编写采用HDL编写的源程序作为归档文件有多种好处。HDL程序资料量小,便于保存;其可继承
21、性好,而且阅读方便。可编程逻辑器件的设计流程一般为设计准备、设计输入、功能仿真、设计处理、时序仿真、器件编程和测试等七个步骤。3.2.2 FPGA的基本结构FPGA是目前最为常用的复杂PLD器件。FPGA的发展非常迅速,形成了各种不同的结构。按逻辑功能块的大小,FPGA可分为细粒度FPGA和粗粒度FPGA。细粒度FPGA的逻辑功能块较小,资源可以充分利用,但连线和开关多,速度慢;粗粒度FPGA的逻辑功能块规模大,功能强,但资源不能充分利用。从逻辑功能块的结构上分类,可分为查找表结构、多路开关结构和多级与非门结构。根据FPGA内部连线的结构不同,可分为分段互联型和连续互联型。根据编程方式,FPG
22、A可分为一次编程和可重复编程两种。FPGA一般可由三种可编程电路和一个用于存放编程数据的SRAM组成,这三种可编程电路是:可编程逻辑块CLB、输入/输出模块IOB和互联资源IR。CLB是FPGA的主要组成部分,是实现逻辑功能的基本单元。它主要是由逻辑函数发生器、触发器、数据选择器等电路组成。IOB提供了器件引脚和内部逻辑阵列之间的连接,通常排列在芯片的四周。其主要是由输入触发器、输入缓冲器、输出触发/锁存器和输出缓冲器组成。每一个IOB控制一个引脚,可被配置为输入、输出激活双向I/O功能。可编程互联资源IR包括各种长度的金属连线和一些可编程连接开关,它们将各个CLB之间和IOB之间互相连接起来
23、,构成各种复杂功能的系统。FPGA的基本结构如图1所示。3.2.3 采用FPGA设计逻辑电路的优点相对于传统数字电路设计方法,采用FPGA进行电路设计具有如下优点:(1) 简化设计由于FPGA的可编程性和灵活性,电路设计结束后,可随意进行修改或删除,无需重新布线和生产印刷电路板,大大缩短了系统的设计周期。(2) 高性能现在市场上提供的FPGA器件的性能超过了最快的标准分立逻辑器件的性能,而且一片FPGA芯片的功耗比分立器件组合而成的电路功耗要小得多。(3) 可靠性高采用FPGA器件将使所用器件的数目减少,也使印刷电路板面积减少,密度下降,这些都大大提高了电路的可靠性,同时也将减少干扰和噪声,使
24、系统的运行更可靠。(4) 成本下降采用FPGA设计数字系统,由于所用器件少,用于器件测试及装配的工作量也少,所以系统的成本将下降。(5) 硬件加密 使用FPGA器件构成的数字系统,其内部结构是由设计者通过编程实现的。有些器件还提供一个能被编程的保密单元,可用来防止检验和读出芯片中的程序,这对于保持芯片设计的专利、防止他人抄袭具有很大好处。3.3 Quartus II 的简介 Quartus II 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有
25、的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。 Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。 Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。 此外,Quartus II 通过和DSP Builder工具与Matlab/Simul
26、ink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。 Maxplus II 作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对Maxplus II 的更新支持,Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在Quartus II 中包含了许多诸如SignalTap II、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承
27、了Maxplus II 友好的图形界面及简便的使用方法。 Altera Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。4 具体方案论证与设计4.1 具体方案论证试用一片HDPLD和若干外围电路实现十字路口交通管理器。该管理器控制甲、乙两道的红、黄、绿三色灯,指挥车辆和行人安全通行。交通管理器示意图如图所示。途中r1、y1、g1是甲道红、黄、绿灯;R2、Y2、G2是已道红、黄、绿灯。 十字路口交通管理器示意图 该交通管理器由控制器和受其控制的三个定时器及六个交通灯组成。图中三个定时器分别确定甲道和乙道通行时间t3、t1
28、以及共同的停车(黄灯燃亮)时间t2.这三个定时器采用以秒信号为时钟的计数器来实现,C1、C2和C3分别是这些定时计数器的工作使能信号,即当C1、C2和C3为1时,相应的定时器计数的指示信号,计数器在计数过程中,相应的指示信号为0,计数结束时为1.4.2系统算法设计 十字路口交通管理器是一个控制类型的数字系统,其数据处理单元比较简单。在此直接按照功能要求,即常规的十字路口交通管理规则,给出交通管理器工作流程图,同时也可以看做系统控制器的ASM图,如图4.1所示 甲道禁止 乙道通行 S0 00 R1=1 C1=1 G2=1 W1 =1 N 甲道禁止 乙道停车S1 01 R1=1 C2=1 Y2=1
29、 W4 =1 W2 =1 W3 =1甲道通行 乙道禁止甲道停车 乙道禁止 S2 11 G1=1 C3=1 R2=1 S3 10 Y1=1 C2=1 R2=1 N Y 交通管理器工作流程图(控制器的ASM图) 4.3 具体电路原理图4.4 电路仿真图5 实验结果将程序下载到试验板后,将R置于高电平后,可以看见LED灯的显示情况为主干道绿灯亮,支干道红灯亮。主干道数码管倒计时显示为30s,支干道数码管倒计时显示为25s。在支干道数码管倒计时显示为0s后,可以看见LED灯的显示情况变为主干道黄灯亮,支干道红灯亮。此时主、支两干道的数码管倒计时显示均为5S。在支干道数码管倒计时显示为0s后,LED灯的
30、显示情况变为主干道红灯亮,支干道绿灯亮,主干道数码管倒计时显示为19s,支干道数码管倒计时显示为25s。在主干道数码管倒计时显示为0s后,可以看见LED灯的显示情况变为主干道红灯亮,支干道黄灯亮,此时主、支两干道的数码管倒计时显示均为5S。5S钟之后,交通灯重新进入主干道绿灯亮、支干道红灯亮的状态(即S0状态)。 总 结之前对FPGA和VHDL的了解仅局限于课本上的些许知识,而没有深入体会,缺乏实践经验。通过这次设计,我对FPGA和VHDL有了更深入的理解,熟悉了Quartus II基本的使用方法。并且现在我对VHDL语言产生了浓厚的兴趣。在选择毕设题目之后,我意识到自己对VHDL语言的掌握程
31、度远远不够,开始查阅VHDL教程。我依据交通灯控制器的要求划分模块,之后开始的是单元模块的设计。我在做这个设计之前对Quartus II的了解甚少,编写的程序也是到处有错,只有边编译边改程序。将每个单元模块完成之后再进行仿真,仿真过程也是困难重重。有时候设置的时钟频率过高,违反了setup/hold时间;有时候设置的END TIME过高,出现了仿真时间太长的问题。诸如此类的问题很多,通过自己查找资料和反复摸索,最终解决了问题。各个模块仿真成功之后,我开始编写顶层文件。在编写顶层文件时我也遇到了不少困难,各个模块的连接以及信号的定义老是出现错误,经过反复修改才成功。 本设计基于VHDL硬件描述语
32、言编程,在确立总体预期控制功能的前提下,分模块进行描述,其中所用到的数据均可依实际情况而设置,修改方便灵活。目标器件为FPGA芯片,运用层次化设计方法,完成各个模块的连接,实现了十字路口车辆的自动控制。VHDL程序在Quartus II环境下编译通过,功能仿真正确,将编程文件下载到FPGA芯片后实现了自动控制功能。本设计具有设计过程简化,设计周期短,工作稳定、性能可靠等优点,打破了传统的自下而上的设计方法,体现了基于FPGA技术和VHDL语言进行数字系统设计的优越性和广阔的前景。城市交通路口情况较为复杂,除十字路口之外,还有“T”型路口和圆形路口等类型的路口,本文仅简单分析了十字路口。且由于实
33、验板上的LED数码管和逻辑状态指示管数目有限,在设计十字路口交通灯控制器时,没有考虑左拐弯功能。该功能可通过在十字路口的每个方向各放置一个左拐信号灯和一组LED数码管(2个)来实现。 参考文献1 易铭PLC控制的交通信号灯控制系统的设计J工业控制计算机,2003,16(12):43452 刘焕成,刘智勇多单片机系统及分组式交通信号灯控制器J电子技术,2003(8):15一193 蒋璇,臧春华.数字系统设计与PLD技术M. 北京:电子电子工业出版社,20014 徐志军,王金明,伊廷辉等.EDA技术与VHDL设计M. 北京:电子工业出版社,2009:19赵艳华,曹丙霞,张睿基于Quartus II
34、的FPGACPLD设计与应用. 北京:电子工业出版社,2009:30585 侯伯亨VHDL硬件描述语言与数字逻辑电路设计M西安:西安电子技大学出版社,1999:42776 邢建平,曾繁泰.VHDL程序设计教程3版北京:清华大学出版社,2005:45467 徐春娇基于VHDL状态机设计的智能交通控制灯J国外电子元器2007(2):31358 张顺兴数字电路与系统设计M南京:东南大学出版社,2004:3045.9 杨晖,张风言大规模可编程逻辑器件与数字系统设计M北京:北京航空航天大学出版社,1998:17318810 蔡军,曹慧英智能交通灯控制系统的设计与实现J重庆:邮电学院学报,2004,16(
35、3):12913211 田瑞利,陈海滨基于VHDL有限状态机的交通信号灯控制系统设计J广州航海高等专科学校学报,2008,15(3)313312 刘欲晓,方强,黄宛宁等EDA技术与VHDL电路开发应用实践M北京:电子电子工业出版社,2009:12713113 曹昕燕,周凤臣,聂春燕.EDA技术实验与课程设计M北京:清华大学出版社,2006:108115 谭会生等.EDA技术基础M.长沙:湖南大学出版社,2004:113116.14 Altera Corporation. 2002. Altera Digital Library. Altera Mark Zwolinski. Digital S
36、ystem Design with VHDL M. 北京:电子工业出版社,2002:1118附录:ibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity count5 is port( clk : in std_logic; enable: in std_logic; c : out std_logic; q :out std_logic_vector(2 downto 0);end count5;architecture a of count5 is signal fp:std_logic_
37、vector(24 downto 0); signal f:std_logic; signal data: std_logic_vector(2 downto 0):=101; begin process(clk) begin if(clkevent and clk=1) then if fp=1011111010111100001000000 then fp=0000000000000000000000000; f=not f; else fp0 then data=data-1; else data=101; end if; end if; if data=0 then c=1; else c=0; end if; end process; q=data; end a;