APP下载

基于FPGA的EDA技术课程设计研究

2014-05-30杨祖芳汪淳

科教导刊 2014年7期
关键词:EDA技术课程设计实践教学

杨祖芳 汪淳

摘 要 EDA技术课程设计是EDA技术学习的一个重要环节,为培养学生的实际动手能力及设计创新能力,从教学改革的实践出发,文章详细介绍了课程设计的教学安排,给出了课程设计的具体方法。

关键词 EDA技术 课程设计 实践教学

中图分类号:G424 文献标识码:A

0 引言

随着微电子技术的不断发展和制造工艺水平的提高,现代电子产品正在以前所未有的革新速度,朝着功能多样化、体积最小化、功耗最低化的方向迅速发展。EDA(Electronic Design Automation,电子设计自动化)技术正是为了适应这种现状,以缩短电子产品的开发周期,降低开发成本,提高产品竞争力为目的,吸收多学科最新成果而形成的一门新技术。日趋完善的EDA技术正在逐步取代传统的电子设计方法,广泛应用于工业生产、消费电子、医药卫生、汽车电子、无线通信、仪器仪表等领域。

1 EDA技术课程概述

EDA技术是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,由计算机自动完成逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、布局布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术,或称为IES/ASIC自动设计技术。①

EDA技术是一门应用性和实践性很强的课程。需要掌握四个方面:大规模可编程逻辑器件,硬件描述语言,软件开发工具,实验开发系统。大规模可编程逻辑器件主要是了解主流的FPGA/CPLD厂商及其主要器件,对器件的内部结构可以少讲,不作深入的剖析。常用的硬件描述语言包括VHDL和Verilog HDL两种,在教学中应让学生至少掌握一种。选用不同厂家的可编程逻辑器件需要使用不同的EDA软件开发工具。目前比较流行的、主流厂家的EDA 软件工具有Altera公司的QuartusⅡ,Xilinx的ISE/ISE-WebPACK Series 和Lattice公司的ispLEVER。实验开发系统是硬件验证工具。②

EDA技术课程设计作为EDA技术理论课程的后续实践教学环节,主要教学目的是提高学生的实践动手能力,注重学生的自主设计能力和创新能力的培养,比较全面的掌握EDA技术的设计方法和工程开发流程,为毕业后能适应工作岗位打下基础。

2 EDA课程设计教学实践

2.1 教学安排

我校学生在上EDA课程设计之前已经学习了EDA技术理论课,并进行了18学时的EDA技术实验,已经具备一定的理论基础,掌握QuartusⅡ软件的使用,能够进行一些基本的组合逻辑电路及时序逻辑电路的设计,并下载到实验箱上面观察硬件现象。课程设计的教学安排主要包括下面几个阶段。

图1 系统组成框图

选题:学生3人一组,根据分发的题目,通过查找资料,选择自己感兴趣的课题或者自由定题,如果是自由定题需经过指导教师批准后方可进行后续设计。

具体设计:主要包括设计方案的确定,各模块程序设计,仿真,硬件测试。学生在完成设计之后,需在实验箱上演示硬件现象并进行讲解,提交项目文件。指导教师根据学生的设计成果进行验收。主要考察学生设计中所用的基础理论、基本知识、基本技能的掌握程度,以及学生在实验箱实验过程中遇到的问题和解决方案。

课程设计报告撰写:对设计过程进行归纳总结,按照规定的格式要求完成设计报告的撰写,每人一份,不得抄袭。主要是培养学生的论文写作能力。

答辩:学生对其设计内容进行讲解并回答指导教师的提问。

2.2 电路系统的设计方法

EDA技术课程设计的题目一般比较复杂,需要综合运用所学的知识。采用自上而下的设计方法进行设计,主要包括下面几个步骤:(1)分析课程设计任务书的题目及要求;(2)通过查找资料,确定系统方案,将整个系统进行模块划分;(3)利用Altera公司的QuartusⅡ软件,采用VHDL语言或原理图的输入方式进行具体模块设计;(4)功能仿真、时序仿真,功能仿真是为了验证系统是否能够完成要求的逻辑功能,时序仿真是考虑了器件延时特性之后的仿真。(5)硬件测试。下面以汽车尾灯控制器的设计为例介绍数字电路系统的设计方法。

设计任务:设计一个汽车尾灯控制器,假设汽车尾部左右两侧各有3盏指示灯,其控制功能应包括:(1)汽车正常行驶时指示灯都不亮;(2)汽车右转弯时,右侧的一盏指示灯亮且闪烁;(3)汽车左转弯时,左侧的一盏指示灯亮且闪烁;(4)汽车刹车时,左右两侧的一盏指示灯同时亮;(5)汽车在夜间行驶,左右两侧的一盏指示灯同时一直亮,供照明使用。

按照设计要求,采用自顶向下的设计方式,将整个系统分为时钟分频模块、主控模块、汽车左灯控制模块及汽车右灯控制模块等四个模块。其系统组成框图如图1所示。系统的输入信号包括系统时钟信号CLK、刹车信号BRAKE、夜间行驶信号NIGHT、汽车左转弯控制信号LEFT及汽车右转弯控制信号RIGHT,系统的输出信号包括左侧3盏指示灯LD1(左转弯信号灯)、LD2(左刹车灯)、LD3(左夜灯)及RD1(右转弯信号灯)、RD2(右刹车灯)、RD3(右夜灯)。

分频模块:输入系统时钟信号CLK(16Hz)进行16分频得到1Hz的时钟信号CP,CP的电平信号分别和LEDL、LEDR电平相与,用于控制左转弯信号灯LD1及右转弯信号灯RD1的闪烁。

主控模块:此模块用于整体控制,当输入左转弯信号LEFT时,输出左灯控制信号LP,当输入右转弯信号RIGHT时,输出右灯控制信号RP,当输入刹车信号BRAKE时,输出刹车灯控制信号BRAKE_LED,当输入夜间行驶信号NIGHT时,输出夜灯控制信号NIGHT_LED,其它情况输出错误控制信号LR。主控模块的VHDL源程序如下:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY CTRL IS

PORT(LEFT,RIGHT,BRAKE,NIGHT: IN STD_LOGIC;

LP,RP,LR,BRAKE_LED,NIGHT_LED: OUT STD_LOGIC);

END ENTITY CTRL;

ARCHITECTURE ART OF CTRL IS

BEGIN

NIGHT_LED<=NIGHT;

BRAKE_LED<=BRAKE;

PROCESS(LEFT,RIGHT)

VARIABLE TEMP:STD_LOGIC_VECTOR(1 DOWNTO 0);

BEGIN

TEMP:=LEFT&RIGHT;

CASE TEMP IS

WHEN "00"=>LP<='0';RP<='0';LR<='0';

WHEN "01"=>LP<='0';RP<='1';LR<='0';

WHEN "10"=>LP<='1';RP<='0';LR<='0';

WHEN OTHERS=>LP<='0';RP<='0';LR<='1';

END CASE;

END PROCESS;

END ARCHITECTURE ART;

汽车左灯控制模块:用于控制左侧尾灯的亮、灭和闪烁情况。在时钟信号上升沿的控制下,左灯控制信号LP有效时,左灯LEDL输出有效电平,输出的LEDL信号与CP信号相与,使得左转弯信号灯LD1闪烁。刹车控制信号有效时,LEDB输出高电平,使得左边刹车灯LD2点亮;夜间行驶信号有效时,LEDN输出高电平,使得左边夜灯LD3点亮。当错误控制信号出现时,左侧三盏灯都不亮。源程序如下:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY LC IS

PORT(CLK,LP,LR,BRAKE,NIGHT: IN STD_LOGIC;

LEDL,LEDB,LEDN: OUT STD_LOGIC);

END ENTITY LC;

ARCHITECTURE ART OF LC IS

BEGIN

LEDB<=BRAKE;

LEDN<=NIGHT;

PROCESS(CLK,LP,LR)

BEGIN

IF CLK'EVENT AND CLK='1' THEN

IF(LR='0') THEN

IF(LP='0')THEN

LEDL<='0';

ELSE

LEDL<='1';

END IF;

ELSE

LEDL<='0';

END IF;

END IF;

END PROCESS;

END ARCHITECTURE ART;

汽车右灯控制模块:此模块与左灯控制模块类似,在这里不作详细介绍。

顶层电路:各模块设计仿真实现后,可以分别创建各个模块的元件符号,然后将各子模块采用原理图的输入方式连接起来建立顶层文件,或者用VHDL语言编写顶层文件实现系统电路。图2是顶层VHDL文件编译后生成的RTL电路图。

系统设计完成后,对整个系统进行功能仿真,根据设计要求添加测试输入条件,观察仿真后的输出结果是否与理论结果相符,如果不符,则必须修改源程序,直到相符为止。图3为系统仿真图,由仿真现象可知,当刹车信号Brake为高电平时,不管时钟信号如何,左右两盏灯ld2及rd2同时点亮。当夜灯Night为高电平时,不管时钟信号如何,左右两盏灯ld3及rd3同时点亮。当左转信号Left及右转信号Right同时有效时,这是一种错误输入,左右三盏灯均不亮,而当左转信号Left单独有效时,在时钟CLK的上升沿到来后,相应尾灯Ld1开始闪烁。仿真结果与预期结果相符,验证了设计的正确性。

电路仿真正确后,进行硬件验证。根据实验室的实验箱,选择Altera公司的EP1K30TC144-3芯片,正确分配好引脚,进行全编译,生成编程文件,连接好实验箱,将编程文件通过编程器下载到实验箱上面,然后拨动开关,观察实验现象是否符合设计要求。

3 结束语

通过课程设计,同学们对EDA技术表现出浓厚的学习兴趣,逐渐从被动学习转变成了主动学习。同学们掌握了如何基于FPGA器件进行系统电路设计,学会了应用编程技术设计专用集成电路芯片的方法,实践动手能力、综合设计能力得到很大的提高,为将来的就业奠定了基础。

注释

① 谭会生,张昌凡.EDA技术及应用(第三版)[M].西安:西安电子科技大学出版社,2011.

② 刘娅琴,林霖.EDA课程教学探索与实践[J].电气电子教学学报,2010.8.32(4).

猜你喜欢

EDA技术课程设计实践教学
龙凤元素系列课程设计
EDA技术在数字电子技术教学中的探索
基于EDA技术的计算机硬件实验教学体系构建
茶学专业校企合作实践教学探索
《电气工程毕业设计》 课程的教学设计
高职院校商务礼仪课程教学改革探索刍议
《数据库高级应用》教学创新方法研究
基于Articulate Storyline的微课程设计与开发
EDA技术与数电课程教学结合的探讨
基于自动化系统的PLC课程设计