随着微电子技术的迅猛发展,可编程逻辑器件从20世纪70年代发展至今,其结构、工艺、集成度、功能、速度、性能等方面都在不断的改进和提高;另外,电子设计自动化EDA技术的发展又为可编程逻辑器件的广泛应用提供了有力的工具。目前,在数字系统设计中,已经可以借助EDA工具通过软件编程对可编程逻辑器件的硬件结构和工作方式进行重构,从而使得硬件设计兼有软件设计的灵活性和便捷性。本文介绍一种用Altera公司的可编程逻辑器件EPM7032,在MAX+PlusⅡ开发环境下采用VHDL语言以及ByteBlaster在线可编程技术来实现自动交通控制系统的方法。该设计中采用的自顶向下的设计方法同样适用于复杂数字系统的设计。
1EPM7032器件的结构特点
1.1EPM7032器件的结构
可编程逻辑器件EPM7032是基于Altera公司第二代多阵列矩阵(MAX)结构,并采用先进的CMOSEEPROM技术制造的。该器件由逻辑阵列块(LAB)、可编程连线阵列(PIA)和I/O控制块等部分组成。其结构如图1所示。
EPM7032中的每个逻辑阵列块由16个宏单元阵列组成,其中多个逻辑阵列块通过可编程连线阵列连接在一起。PIA全局总线可由所有的专用输入、I/O引脚以及宏单元馈入信号之中。EPM7032的宏单元可以单独地配置成时序逻辑或组合逻辑工作方式。每个宏单元又由逻辑阵列、乘积项选择矩阵和可编程寄存器等三个功能块组成。
通过可编程连线阵列可把各个LAB相互连接起来以构成所需的逻辑。同时,通过在PIA上布线,也可把器件中任一信号源连接到其目的地。
I/O控制块允许每个I/O引脚单独地配置为输入、输出和双向工作方式。所有I/O引脚都有一个三态缓冲器。它们由两个专用的低电平有效的输出使能引脚OE1和OE2来控制。
1.2EPM7032器件的性能特点
可编程逻辑器件EPM7032的主要特点如下:
●逻辑密度为600个可用门;
●EPM7032器件可100%模仿TTL,并可将SSI、MSI和LSI的逻辑功能高密度的集成,它也可以集成从PAL、GAL、22V10到MACH和PLSI器件的多种可编程逻辑器件;
●引脚到引脚的逻辑延迟为5.0ns,计数器工作频率达178.6MHz;
●可编程宏单元触发器具有专用清除、置位、时钟和时钟使能控制;
●可编程的扩展乘积项分配允许向每个宏单元提供多达32个乘积项;
●电源电压为3.3V或5.0V;
●遵守PCI规定;
●采用CMOSEEPROM单元实现逻辑功能,可实现各种各样的、独立的组合逻辑和时序逻辑功能,在设计开发和调试阶段,可快速而有效地对该器件反复编程;
●可通过JTAG接口实现在线编程,并能保证可编程擦除100次以上;
●带有可编程保密位,可全面保护专利设计;
●Altera公司的MAX+PLUSⅡ(MulTIpleArrayMatrixandProgrammableLogicUserSystem)开发系统可对该器件提供软件设计支持。
2自动交通控制系统的设计与实现
2.1自动交通控制系统的设计
本设计采用自顶向下(TOP-TO-DOWN)的设计方法。该方法是一种从抽象到具体,从高层次到低层次逐步求精的分层次、分模块的设计方法,它是数字系统中最常用的一种设计方法,也是基于复杂可编程器件进行系统设计的主要方法。该方法首先从整体上规划了整个系统的功能和性能,然后对系统进行划分,以将其分解为规模较小、功能较为简单的局部模块,并确定他们之间的相互关系。这种划分过程可以不断地进行下去,直到划分所得到的单元可以映射到物理层为止。
本文通过自动交通控制系统的具体设计介绍了如何用该方法进行数字系统的设计,此设计方法同样适用于复杂数字系统的设计。
十字路口的交通灯指挥着行人和各种车辆的安全运行。实现交通灯的自动指挥是城市交通管理自动化的重要课题。本设计的自动交通控制系统的工作过程是:一般情况下,如果主干道和支干道均无车辆要求通行,应该保证主干道绿灯亮,支干道红灯亮。此时,若支干道有车辆要求通行,则应允许支干道车辆通行;若主干道和支干道均有车辆要求通行,则应先保证主干道通行30秒钟后,才允许支干道通行。在允许支干道车辆通行前,应先使主干道黄灯亮5秒钟,支干道红灯保持5秒钟后,才变成主干道红灯亮,同时使支干道绿灯亮。在支干道保持畅通时,若主干道无车辆要求通行,则支干道始终保持畅通;如果此时支干道无车辆要求通行,则应立刻准备使主干道通车,支干道禁止通行;若此时主干道有车辆要求通行,并且支干道通行时间已超过20秒,则应准备使主干道通行。在允许主干道通行前,应先使支干道的黄灯亮5秒,主干道红灯保持5秒钟后,变成主干道绿灯亮,同时使支干道红灯亮。
据此工作过程得出的系统框图如图2所示。其中传感器部分的作用是通过在主干道和支干道上所设的传感器来检测主、支干道上是否有车辆要求通过十字路口。主、支干道上的传感器发出的信号分别用Sa和Sb表示,Sa和Sb为‘1’,表示有车辆要求通行,否则无车辆通行要求。时钟电路用来为系统提供一个稳定的clk秒脉冲信号,以供计时和系统的同步控制。定时器电路在控制器提供的计时信号cnt和清零信号cr的作用下完成定时功能,并向控制器提供5s、20s和30s的计时信号。控制器的设计是本系统的核心,其作用是根据传感器和定时器提供的信号来判断、调整和控制整个系统的状态,并控制定时电路的工作,同时提供适当的灯光控制信号。其中控制主、支干道上红、黄、绿灯的信号分别用R、Y、G和r、y、g表示;其值为‘1’表示灯亮,为‘0’表示灯灭。
该自动交通控制系统实际上是一个控制型的数字系统,根据其工作过程得出的该系统的详细算法流程图如图3所示。
图3自动交通控制系统算法流程图
2.2自动交通控制系统的实现
本设计的开发环境采用Altera公司的MAX+PlusⅡ软件工具。MAX+PLUSⅡ是一种集设计输入、编译、仿真、综合、器件编程等功能于一体的完全集成化、易学易用的可编程逻辑设计软件。该软件允许设计人员自由选择设计输入的方法和工具,设计人员无需详细了解器件内部的复杂结构,只需选择自己熟悉的设计方法和工具就可进行设计输入。该软件提供了一种真正与结构无关的可编程逻辑设计环境,它支持不同结构的器件,如FLEX、MAX及CLASSIC系列器件等。这样,根据算法流程图就可很容易地设计出VHDL源文件,然后输入到MAX+PlusII软件中进行调试、仿真,其仿真结果如图4所示。通过仿真波形和时序分析等功能可以验证设计的正确性,并能迅速地在不改变硬件电路的情况下修改设计,因而可大大缩短设计周期,提高效率。当确认设计无误后,可将生成的可配置文件通过Altera公司的编程电缆ByteBlaster装入到可编程逻辑器件EPM7032,然后通过调试即可完成整个设计。