EDA技术的主要内容一般包括硬件描述语言、大规模可编程逻辑器件、软件开发工具实验开发系统。
1.2.2 大规模可编程逻辑器件
可编程逻辑器件是指一切通过软件手段更改、配置器件内部连接结构和逻辑单元,完成既定设计功能的数字集成电路。目前常用并流行的可编程逻辑器件主要有复杂可编程逻辑器(CPLD)件和复杂可编程逻辑器件(FPGA)等[7]。
CPLD是Complex Programmable Logic Devices的缩写。CPLD是在PAL、GAL的基础上发展起来的,一般也采用CMOS工艺。CPLD可实现的逻辑功能比PAL、GAL有了大幅度的提升,一般可以完成设计中较复杂、较高速度的逻辑功能。CPLD可实现CPLD的基本组成部分由可编程I/O单元。基本逻辑单元、布线池和其他辅助功能模块构成。CPLD的主要供应商有Xilinx 、Altera、Lattice等[8]。
FPGA是Filed Programmable Gate Array的缩写,FPGA是在CPLD的基础上发展起来的新型高性能可编程逻辑器件,它一般采用SRAM工艺。FPGA的集成度很高,其器件密从数万系统门到数千万门等,可以完成及其复杂的时序与组合逻辑电路功能,适用于高速、高密度的高端数字逻辑电路设计领域。FPGA的基本组成部分由基本可编程逻辑单元、可编程输入/输出单元、可编程连线、嵌入式RAM等功能模块构成。FPGA的主要供应商有Xilinx 、Altera、Lattice、Actel和Atmel等[9]。
1.2.3 EDA工具软件
集成的CPLD/FPGA开发环境主要有Altera公司的MaxplusⅡ、QuartusⅡ,Xilinx公司的ISE,Lattice公司的ispDesignExpert等。由半导体公司提供,基本上可以完成从设计输入、仿真、综合、布线、下载到器件等囊括所有PLD开发流程的所有工作。其优点是功能全集成化,可以加快动态调试,缩短开发周期;缺点是在综合和仿真环节与专业的软件相比,都不是非常优秀的[10]。
Synplicity公司的Synplify、Synopsys公司的FPGAexpress、FPGA Compiler Ⅱ等综合类的软件的功能是对设计输入进行逻辑分析、综合和优化,将硬件描述语句(通常是系统级的行为描述语句)翻译成最基本的与或非门的连接关系(网表),导出给PLD/FPGA厂家的软件进行布局和布线。为了优化结果,在进行较复杂的设计时,基本上都使用这些专业的逻辑综合软件,而不采用厂家提供的集成PLD/FPGA开发工具[11]。
Model Technology公司的Modelsim,Cadence公司的NC-Verilog/NC-VHDL/NC等这类软件的功能是对设计进行模拟仿真,包括布局布线(P&R)前的“功能仿真”(也叫“前仿真”)和P&R后的包含了门延时、线延时等的“时序仿真”(也叫“后仿真”)。复杂一些的设计,一般需要使用这些专业的仿真软件。因为同样的设计输入,专业软件的仿真速度比集成环境的速度快得多[12]。
以上的具代表性的EDA工具软件。它们在性能上各有所长,有的综合优化能力突出,有的仿真模拟功能强,好在多数工具能相互兼容,具有互操作性。比如Altera公司的Quartus II集成开发工具,就支持多种第三方的EDA软件,用户可以在Quartus II软件中通过设置直接调用Modelsim和Synplify进行仿真和综合。如果设计的硬件系统不是很大,对综合和仿真的要求不是很高,那么可以在一个集成的开发环境中完成整个设计流程。如果要进行复杂系统的设计,则常规的方法是多种EDA工具协调工作,集各家之所长来完成设计流程[13]。
1.3 主要工作
在Quartus II软件平台上采用VHDL语言对各模块进行设计,主要完成里程数、里程费用的计算。
根据设计要求采用自定向下的设计方法对本系统进行模块划分,在根据模块功能,用VHDL进行编码。对已编的程序模块在Quartus II软件环境下进行设计输入、综合、布局布线、仿真。Quartus II仿真结果达到预期结果,仿真成功则配置Altera FPGA,器件成功编程和配置后,就可以进行板级调试。
2 需求分析
2.1 交通灯系统设计要求
随着城市的社会经济的高速发展,城市道路交通供给和需求的矛盾日益突出,并引发了很多交通问题和事故。而在现有城市道路交通供给不会出现很大变动时,解决好公路交通信号灯控制问题将是保证交通有序、安全、快速运行的重要环节。但是现有的交通信号灯控制系统都是单一的固定时序控制,不能根据实际交通状况进行调节控制。而采用VHDL设计交通灯控制器具有体积小、功耗低等优点,特别是能够方便的根据具体道路情况重新编码、下载,使得交通灯控制器能够较快的适应新的道路情况而不必增加硬件或软件开销。本系统采用VHDL语言设计并实现设计一个十字路口的交通灯控制器, 要求两条干道各设有一个绿、黄、红指示灯,绿灯持续时间为20秒,红灯持续时间为25秒,每次由绿灯向红灯转换的过程中,要亮 5 秒的黄灯作为过渡。两个显示数码管显示剩余时间。具有特殊情况控制键,当任一条路上出现特殊情况,如消防车、救护车通过时,各方向均亮红灯,倒计时停止,当特殊状态结束后,控制器恢复原来状态。
2.2 设计基本思想
本系统设计基本思想,通过计数模块NUM值的改变,来改变控制模块的状态,同时通过对NUM值的计算输出A和B方向倒计时间。在分位模块中则对A和B方向的倒计时间分解为个位和十位,将分解完的数据输入到译码模块中,转换为数码管相应显示2进制数,并设置扫描数码管的选位显示。
本设计使用层次化的核心思想设计模块,在以后的设计中可以直接调用而无需重新设计。使整个设计更结构化,程序具有更高的可读性,顶层文件只将一些模块整合在一起,这使整个系统的设计思想更容易被理解。将一个大系统划分为几个子模块,这些子模块又由更小的子模块组成,如此往下,直至不可再分。这种用层次化设计思想设计数字系统已经变成设计数字系统的主流设计方法[14]。
2.3 设计总体框图
本设计采用自定向下的设计方法进行设计的。所谓自上向下的设计方法,就是从系统总体要求出发,自上而下地逐步将设计内容细化,最后完成系统硬件的整体设计[15]。与传统设计的方法相比,可大大缩短系统的设计周期,节约大量的人力和物力。在采用传统的硬件电路设计方法时,往往要求设计者在设计电路中应写出该电路的逻辑表达式、真值表、时序电路的状态表。这一工作是相当困难和繁杂的,特别是在系统比较复杂时更是如此[16]。
按照自顶向下的设计方法,对整个系统进行方案设计和功能划分,由硬件描述语言完成系统行为级设计,在Quartus II开发工具上进行编译、仿真等工作。根据系统设计要求,对整个系统进行划分细分。交通灯控制系统要输出信号灯倒计时间和交通信号灯状态,则必有计数模块和控制模块。并且要求在特殊情况下,即消防车、救护车通过时,各方向均亮红灯,倒计时间停止时恢复原来状态。由于控制模块输出的数据不能直接在数码管上显示,所以还必须增加分位模块和译码模块。从以上的分析可以看出,系统可分为计数模块、控制模块、分位模块、译码模块。也可以略得出各个模块的输入/输出模块,从而得到本系统设计总体框图如图1所示。
转贴于 酷文网-论文下载中心 http://www.coolwen.net
共8页: 上一页 [1] 2 [3] [4] [5] [6] [7] [8] 下一页
网摘收藏: