集成电路EDA的课程设计.docx
《集成电路EDA的课程设计.docx》由会员分享,可在线阅读,更多相关《集成电路EDA的课程设计.docx(9页珍藏版)》请在冰豆网上搜索。
集成电路EDA的课程设计
辽宁工程技术大学
集成电路EDA技术课程设计报告
题目自动售邮票机的设计
指导教师
院(系、部)电信学院
专业班级
学号
姓名
日期2013年6月8日
一、摘要
在当今这个以数字化和网络化为特征的信息技术革命大潮中,电子技术得到了飞速的发展,现代电子产品几乎渗透到了社会的各个领域。
现代电子设计技术的核心就是EDA技术,EDA是指以计算机为工作平台,融合应用电子技术、计算机技术、智能化技术最新成果而研制成的电子CAD通用软件包,主要能辅助进行三方面的设计工作,即IC设计、电子电路设计和PCB设计。
EDA代表了当今电子设计技术的最新发展方向,它的基本特征是:
设计人员按照“自顶向下”的设计方法,对整个系统进行方案设计和功能划分,系统的关键电路用一片或几片专用集成电路(ASIC)实现,然后采用硬件描述语言(HDL)完成系统行为级设计,最后通过综合器和适配器生成最终的目标器件,这样的设计方法被称为高层次的电子设计方法。
硬件描述语言(HDL)是一种用于设计硬件电子系统的计算机语言,它用软件编程的方式来描述电子系统的逻辑功能、电路结构和连接形式,与传统的门级描述方式相比,它更适合大规模系统的设计。
本设计利用Altera公司的开发软件Quartus II平台,采用VHDL硬件描述语言编程的设计方法设计系统核心电路的硬件程序,在Quartus II软件平台上进行编译和电路仿真,最后生成的目标文件下载到实验台内的FPGA芯片以实现该系统,并在实验台上对设计进行了验证。
二、综述
进入20世纪90年代以后,EDA技术的技术发展和普及给电子系统的设计带来了革命性的变化,并已渗透到电子系统设计的各个领域。
硬件描述语言(HardwareDescriptionLanguage,HDL)是EDA技术的重要组成部分,是电子系统硬件行为描述、结构描述、数据流描述的语言。
国外的硬件描述语言有很多,如VHDL、Verilog-HDL和ABEL-HDL等。
这些语言有的从PASCAL发展而来,也有一些从C语言发展而来。
【1】EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。
本次课程设计将运用VHDL设计一款自动售邮票机,培养EDA操作技巧。
【2】VHDL语言可描述一个数字电路的输入、输出以及相互间的行为与功能。
而其硬件关联性的语法与形式虽类似于一般程序语言,但是涵盖许多与硬件关联的语法构造。
【3】其特有的层次性一一由上而下的结构式语法结构适合大型设计项目的分包下去,各自独立运行。
从抽象的层次而言,VHDL的语句分成一下4个大类。
1、行为式
采用语言逻辑方式直接描述硬件电路的工作,表示一个设计的功能或算法,描述IC内部电路行为。
在此结构定义中可以同时包含并行描述与顺序语句。
2、数据流
从数据输入与输出的观点,大部分的并行语句都用于数据转换工作。
3、结构式
允许设计者以树状形式调用内置电路组件。
通常以引脚图方式调用并连接。
从硬件的角度说,调用组件就像在组合与连接电路元器件一样。
【4】
4、寄存器传输式
VHDL是一种类型化的语言,一种数据类型的数据内容不能指定给其他类型的数据,而且不同数据类型的数据需经过转换才能相互运算。
每一种电路的VHDL码都是实体与结构的成对组合,先用实体来定义一个IC电路引脚规格与基本参数,然后在用结构定义IC内部电路的功能运做,即构成一个完整的电路模块。
【5】
设计要求:
有一个自动售邮票机,出售面值为6角和8角的邮票。
售票机有1角,5角和1元三个硬币投放口,售票机每次只能售出一枚邮票。
当所投硬币达到或者超过购买者所选面值时,售出一枚邮票,并找回零钱,售票机回到初始状态;当所投硬币不足邮票面值时,可以通过一个复位键退回所投硬币,售票机回到初始状态。
三、方案设计与分析
1、大体设计思路:
(1)输入模块的设计:
①当投入的是五角的硬币时,输出的是‘0’信号。
②当投入的是一元硬币的时候,输出的是‘1'信号。
(2)销售模块的设计:
①前两次输入的硬币总和超过一元五角时,则不需要考虑第三次输入了;如:
"10"、"01"、"11","11"代表销售一枚邮票,还要找零五角。
②如果前两次只投入一元钱,即两枚五角硬币,则第三次输入的一定是五角硬币,故第三次投入五角硬币就售出一枚邮票,不用找零。
2、主要端口说明:
(1)输入识别模块端口:
第一次输入端口为m0,第二次输入端口为m1,第三次不加以识别,有硬币输入则售出一枚邮票。
若端口c为高电平,则输出,反之则售出邮票。
(2)销售机输入端口(即识别模块的输出端口):
输入端口m1的输出端口为y1,输入端口m0的输出端口为y0,外加第三个输入端口c。
(3)销售机输出端口:
①s为高电平代表有邮票输出;
②cout为代表需要找零五角。
3、整体设计方框图:
整体设计方框图如下:
输入硬币信号m1,m0,c为输入信号,售票信号s和找零信号cout为输出信号。
图3.1自动出售邮票机电路流程设计方框图
4、硬件电路的设计
(1)硬币识别模块的设计
设计原理是:
因为投入的硬币之有两种,一元的和五角的,所以为了简化处理,当检测到五角的硬币的时候就输出‘0’电平,其余的情况为高电平‘1’。
具体的vhdl编写程序如下:
Input:
libraryieee;
useieee.std_logic_1164.all;
entityinputis
port(m0:
instd_logic_vector(3downto0);
y0:
outstd_logic);
endinput;
architectureoneofinputis
begin
process(m0)
begin
ifm0="0101"theny0<='0';--输入为‘5’时输出为低电平
elsey0<='1';--输入1元时输出为高电平(因为只有两种硬币)
endif;--采用选择语句简单地设计
endprocess;
endone;
Input1:
--判断方式一样,因为输入输出名称不同而不同
libraryieee;--再次设计
useieee.std_logic_1164.all;
entityinput1is
port(m1:
instd_logic_vector(3downto0);
y1:
outstd_logic);
endinput1;
architectureoneofinput1is
begin
process(m1)
begin
ifm1="0101"theny1<='0';
elsey1<='1';
endif;
endprocess;
endone;
(2)邮票销售模块的设计
设计原理是:
根据输入信号的不同判别是否售出邮票。
具体vhdl编写程序如下:
Seller:
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityselleris
port(y0,c,y1:
instd_logic;
s,cout:
outstd_logic);
endseller;
architectureoneofselleris
signalx:
std_logic_vector(1downto0);
begin
x<=y1&y0;
process(y1,y0,x,c)
begin
ifx<="00"thens<='0';cout<='0';--输入两张5角硬币
ifc='1'thens<='1';cout<='0';--判断第三次是否输入
elses<='0';cout<='0';endif;
elsifx<="10"thens<='1';cout<='0';--输入一块五,售出邮票,不找零
elsifx<="01"thens<='1';cout<='0';
elsifx<="11"thens<='1';cout<='1';--输入两块,售出邮票,找零
elsenull;
endif;
endprocess;
endone;
(3)自动出售邮票机电路的设计
本部分采用原理图文件设计,把邮票机电路总框图整合在一起,完成自动出售邮票机的电路。
具体设计原理图如下:
stampseller2
图4.1自动出售邮票机电路原理图
m0,m1,c为输入信号,s和cout为输出信号。
根据输入信号及输出信号的结果可以判别此次设计是否成功。
5、系统仿真
(1)对自动出售邮票机电路设计原理图的编译
在quartus软件平台下对用vhdl语言编写的程序生成符号文件,再利用原件符号构成总体电路原理图,如图4.1所示。
将原理图stampseller2(图4.1)与vhdl程序在同一个工程内生成,设置stampseller2为顶层实体,对其进行编译可得如下图结果:
图5.1自动出售邮票机电路原理图编译结果
(2)对自动出售邮票机电路设计原理图的仿真
电路原理图编译成功以后,便需要对编译的文件进行仿真以验证设计的电路的功能是否正确,能否正常运行。
具体步骤如下:
(1)新建一个波形图文件(.vwf);
(2)在编辑菜单设置网格时间和仿真截止时间;
(3)导入节点,对节点进行参数设置,保存波形图文件;
最后对文件进行仿真(simulation),观察波形,验证设计是否正确。
仿真波形如下图所示:
图5.2自动出售邮票机电路原理图仿真结果
(1)
图5.3自动出售邮票机电路原理图仿真结果
(2)
图5.2是原理图仿真波形的仿真输出,图5.3是被仿真输出覆盖后的波形输入文件,由仿真波形可知:
当输入两个五角硬币后(m1和m0都是‘5’),机器会判断第三次的输入(即c是否输入为高电平),如果有高电平输入则有邮票出售,如果前两次的硬币总额已经达到票价,则不需要第三次输入便会自动出售邮票,并找零。
故自动出售邮票机电路设计成功。
6、使用说明
往自动出售邮票机里累积投入一元五角,则会售出一张邮票。
如果投入两元,则售邮票机会自动找回五角零钱。
四、方案综合评价与结论
这个设计实现了一个简单的自动出售邮票机的功能,程序由硬件描述语言vhdl编写。
程序中采用分块编写的方式,将一个本来复杂的体系用简单的逻辑表述出来。
各个模块产生不同的信号,以这些信号为桥梁分别控制各个模块,这样做设计显得很流畅,每个部分都不是独立存在的。
通过本次设计,让我更进一步的了解到QuartusII软件的使用以及它的编译,硬件调试,软件仿真。
也让我们认识到在此次课程设计中所存在的问题;而通过不断的努力去解决这些问题.在解决设计问题的同时自己也在其中有所收获。
五、体会与展望
1、体会
通过此次课程设计,使我更加扎实的掌握了有关EDA方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。
实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。
在这次的课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获龋最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。
这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后