电子设计自动化.doc

上传人:豆**** 文档编号:19578548 上传时间:2022-06-09 格式:DOC 页数:18 大小:218.50KB
返回 下载 相关 举报
电子设计自动化.doc_第1页
第1页 / 共18页
电子设计自动化.doc_第2页
第2页 / 共18页
点击查看更多>>
资源描述

《电子设计自动化.doc》由会员分享,可在线阅读,更多相关《电子设计自动化.doc(18页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流电子设计自动化.精品文档.目录一、设计任务及要求-3(一)具体要求-3(二)输入输出资源说明-3二、设计原理与方案-5 (一)顶层设计方案-5(二)分频器设计方案-5(三)控制器设计方案-5(四)洗涤倒计时计数器设计方案-6(五)60秒计数器设计方案-6(六)显示器设计方案-6三、电路设计、仿真与实现-7(一)分频器的设计实现-7(二)控制器设计实现-8(三)洗涤倒计时计数器的设计实现-13(四)60秒计数器设计方案-17(五)显示器设计实现-18(六)总体设计实现-21(七)Fit Design 结果-22四、分析与讨论-23五、参考文献-

2、24一、设计任务及要求:洗衣机是家庭常用电器,一般可以有多种工作模式可供选择。在此要求设计具有两种工作模式的简易洗衣机控制电路,具有复位、模式设置、启动、暂停功能,并能显示洗衣机的工作状态(如洗涤时间倒计时,电动机的正反转、暂停)。(一)具体要求:1、设置为复位按钮S0,按钮状态S00时,对系统状态进行复位,计数器清零。S01时,进入模式选择。2、设置模式选择按钮S1。按钮状态S10时,执行洗衣模式一,控制洗衣机的电机按照图1的规律循环运转;S11执行洗衣模式二,控制洗衣机的电机按照图2规律循环运转。启动正转(20s)反转(20s)间歇(10s)间歇(10s)停止定时到图1 洗衣模式一启动正转

3、(25s)反转(25s)间歇(5s)间歇(5s)停止定时到图2 洗衣模式二3、设置启动按钮S2。洗衣模式设定后,按钮状态S21时,设定洗衣时间为10分钟,按钮状态S20时,设定洗衣时间为5分钟。在洗衣过程中分别用3个LED灯来显示电动机的正转、翻转,间歇等状态。4、设置暂停按钮S3。当按钮状态S30时,洗衣暂停,计数器状态、显示均保持,并点亮1个LED灯显示暂停状态。S31时正常运转。(二)输入输出资源说明:1、输入信号:四个控制按钮S0、S1、S2、S3(按钮按下时S0,松开时S1)。2、外部输入脉冲信号时钟源clk(50MHz),应设计一分频器得到5Hz信号供计数器使用。3、输出3组显示译

4、码信号,并在FPGA内部经过译码后获得7段LED显示码,并通过扫描方式在三个发光LED显示数码管上显示当前洗衣时间的倒计时(分钟)、每个洗衣循环的60s倒计时的十位和个位。4、输出4个高低电平信号,分别接到外部的4个LED灯指示电机的正转、间歇、反转和系统的暂停。(输出高电平时,对应的LED灯亮)其具体框图如下:(此图只是大概结构,设计时可根据自己的思路稍微改动电路图)正转指示灯LED1S0S2S3控 制器洗涤时间倒计时计数器七段LED数码管译 码扫描显示50MHz反转指示灯LED3暂停指示灯LED4间歇指示灯LED2CLKS1分频器1Hz60s倒计时计数器图3 洗衣机控制器结构框图根据如上说

5、明,本设计的主要任务和设计要求是:1、 按照现代数字系统的Top-Down模块化设计方法,提出简易洗衣机控制电路设计系统的整体设计方案,并进行正确的功能划分,分别提出并实现控制器、计数器、输出译码等模块化子系统的设计方案。2、 在Quartus的EDA设计环境中,采用原理图和Verilog语言混合输入的方法,完成系统的顶层设计、各子系统的模块化设计。分别完成各个基于Verilog语言实现的子模块(包括分频器、计数器、主控制器、扫描显示译码四部分)的逻辑功能仿真,并对顶层设计进行功能仿真。 3、 在2步的基础上,采用Altera公司的CPLD器件EP1C12F324C8对顶层设计进行适配(Fit

6、 Design),生成下载文件。4、 采用DownLoad软件将设计的JED文件烧录到试验板的芯片上,实际测试。二、设计原理与方案:(一)、顶层设计方案: 本系统总共分分频器,控制器,洗涤倒计时器,,60S倒计时器和显示器五大部分。其中提结果如下图图一 总体电路结果图即顶层结果图其中,分频器为其他模块提供合适的脉冲信号,控制器接收外部控制信号并且产生相对应的控制其他模块的信号,洗涤倒计时器和60S倒计器负责洗衣时间得倒计时并且根据倒计时的时间控制电机(四个LED灯)的运转以及将倒计时结束的信号返回给控制器,显示器将倒计时的现态时间显示。(二)、分频器设计方案: 分频器一输入两输出,输入为50M

7、HZ的原脉冲信号,输出clkout1为1kHZ脉冲信号(用于扫描数码管),输出clkout2为1KHZ脉冲信号(给计数器)(给控制器及显示器)。(三)、控制器设计方案: 控制器的输入信号及作用:有10个输入s0,s1,s2,s3, t0,t1,t2,t3, clk, s60 .其中s0,s1,s2,s3为四个按键的输入; t0,t1,t2,t3为洗涤倒计时计数器的反馈输入; clk为频率信号输入; s60为60秒倒计时的输出信号控制器的输出信号及作用:有12个输出信号: d0,d1,d2,d3,t10,t11,t12,t13,t20,t21,t22,t23.其中d0,d1,d2,d3是s0,s

8、1,s2,s3赋值. t10,t11,t12,t13为模式一的输出控制信号; t20,t21,t22,t23为模式二的输出控制信号.(四)、洗涤倒计时计数器设计方案: 洗涤倒计时计时器的输入信号及作用有:clk, d0,d1,d3,t10,t11,t12,t13,t20,t21,t22,t23。其中clk为频率信号输入;d0,d1,d2,d3为s0,s1,s2,s3所赋值的信号输入;t10,t11,t12为控制器输出的控制洗衣模式一得输入信号;t20,t21,t22,t23为控制器输出的控制洗衣模式二得输入信号;洗涤倒计时计数器的输出信号及作用:t0,t1,t2,t3,LED1,LED2,LE

9、D3,LED4。其中t0,t1,t2,t3为反馈给控制器的四个信号,已达到让控制器对在不同的洗衣时间里做出不同的控制;LED1,LED2,LED3,LED4分别为洗衣时正传,间歇,反转,暂停的指示输出信号,用来控制四个指示灯。(五)、60秒计数器设计方案:60秒计数器的输入信号及作用:clk, d0,d1,d2,d3。其中clk为频率输入信号;d0,d1,d2,d3为s0,s1,s2,s3所赋值的输入信号。60秒计数器的输出信号及作用:只有一个输出信号s60,s60是一个周期为一分钟的频率信号。(六)、显示器的设计方案: 将输入的倒计时现态时间以七段码的形式通过数码管输出,数码管的扫描信号de

10、l。三、电路设计、仿真与实现:(一)、分频器的设计实现:分频器的源程序:module fenpinqi(Clk,clkout1,/1hz clkout2/1khzinput Clk;output clkout1;output clkout2;reg clkout1;reg clkout2;reg 31:0 Cout1;reg31:0 Cout2;reg Clk_En1;reg Clk_En2;initial beginclkout1=0;clkout2=0;endalways (posedge Clk )beginCout1 = (Cout1= 32d10) ? 32d0 : (Cout1 +

11、 32d1);Cout2 = (Cout2= 32d5) ? 32d0 : (Cout2 + 32d1);Clk_En1 = (Cout1 = 32d10) ? 1d1 : 1d0;Clk_En2 = (Cout2 = 32d5) ? 1d1 : 1d0;clkout1=Clk_En1;clkout2=Clk_En2; endendmodule分频器的仿真结果: 为了使仿真结果能还好地显示出来,在仿真时把分频器的两个输出信号分别使其输出5MHZ的和10MHZ的频率信号。(三)、控制器设计实现: 控制器的源程序:module kongzhiqi ( s0,s1,s2,s3, t0,t1,t2,t

12、3, clk,/1khz s60, d0,d1,d2,d3, t10,t11,t12,t13, t20,t21,t22,t23);input t0,t1,t2,t3,s0,s1,s2,s3,clk,s60;output d0,d1,d2,d3,t10,t11,t12,t13,t20,t21,t22,t23;reg d0,d1,d2,d3;reg t10,t11,t12,t13,t20,t21,t22,t23;reg5:0i;initialbegini=0;endalways(clk)/ zhan ting beginif(s0=1) begin d0=s0; d1=s1; d2=s2; d3=

13、s3;endif(s0=0)/fu wei begin d0=0; d1=0; d2=0; d3=0; end endalways (posedge s60) begini=i+1b1;if(d2=1&i=15)begin if(d0=1&d1=0&d3=0) begin if(t0=0&t1=0&t2=0) begin t10=1; t11=0; t12=0; t13=0; end if(t0=1&t1=0&t2=0&t3=0) begin t10=0; t11=1; t12=0; t13=0; end if(t0=0&t1=1&t2=0&t3=0) begin t10=0; t11=0;

14、t12=1; t13=0; end if(t0=0&t1=0&t2=1&t3=0) begin t10=0; t11=0; t12=0; t13=1; end end if(d0=1&d1=1&d3=0) begin if(t0=0&t1=0&t2=0) begin t20=1; t21=0; t22=0; t23=0; end if(t0=1&t1=0&t2=0&t3=0) begin t20=0; t21=1; t22=0; t23=0; end if(t0=0&t1=1&t2=0&t3=0) begin t20=0; t21=0; t22=1; t23=0; end if(t0=0&t1

15、=0&t2=1&t3=0) begin t20=0; t21=0; t22=0; t23=1; end end endif(d2=0&i=30)begin if(d0=1&d1=0&d3=0) begin if(t0=0&t1=0&t2=0) begin t10=1; t11=0; t12=0; t13=0; end if(t0=1&t1=0&t2=0&t3=0) begin t10=0; t11=1; t12=0; t13=0; end if(t0=0&t1=1&t2=0&t3=0) begin t10=0; t11=0; t12=1; t13=0; end if(t0=0&t1=0&t2=

16、1&t3=0) begin t10=0; t11=0; t12=0; t13=1; end end if(d0=1&d1=1&d3=0) begin if(t0=0&t1=0&t2=0) begin t20=1; t21=0; t22=0; t23=0; end if(t0=1&t1=0&t2=0&t3=0) begin t20=0; t21=1; t22=0; t23=0; end if(t0=0&t1=1&t2=0&t3=0) begin t20=0; t21=0; t22=1; t23=0; end if(t0=0&t1=0&t2=1&t3=0) begin t20=0; t21=0;

17、t22=0; t23=1; end end end end /alwaysendmodule控制器的仿真结果:洗衣模式一的仿真结果:洗衣模式二的仿真结果:(四)、洗涤倒计时的设计实现:洗涤倒计时的源程序module xididaojishi( clk,/1hz d0,d1,d3, t10,t11,t12,t13, t20,t21,t22,t23, t0,t1,t2,t3, LED1,LED2,LED3,LED4input clk,d0,d1,d3,t10,t11,t12,t13,t20,t21,t22,t23;output t0,t1,t2,t3,LED1,LED2,LED3,LED4;reg

18、 LED1,LED2,LED3,LED4;reg5:0 i;reg t0,t1,t2,t3;always(posedge clk)beginif(d0=0)/fu weibegini=0;t0=0;t1=0;t2=0;t3=0;endif(d0=1&d3=1)/zhan tingbeginLED1=0;LED2=0;LED3=0;LED4=1;endif(d1=0&d0=1&d3=0)beginif(t10=1&t11=0)beginLED1=1;LED2=0;LED3=0;LED4=0;i=i+1b1;if(i=5d20) begin t3=0; t0=1; i=0; endendif(t1

19、1=1&t12=0)beginLED1=0;LED2=1;LED3=0;LED4=0;i=i+1b1;if(i=5d10) begin t0=0; t1=1; i=0; endendif(t12=1&t13=0)beginLED1=0;LED2=0;LED3=1;LED4=0;i=i+1b1;if(i=5d20) begin t1=0; t2=1; i=0; endendif(t13=1&t10=0)beginLED1=0;LED2=1;LED3=0;LED4=0;i=i+1b1;if(i=5d10) begin t2=0; t3=1; i=0; endendendif(d1=1&d0=1&d

20、3=0)beginif(t20=1&t21=0)beginLED1=1;LED2=0;LED3=0;LED4=0;i=i+1b1;if(i=5d25) begin t3=0; t0=1; i=0; endendif(t21=1&t22=0)beginLED1=0;LED2=1;LED3=0;LED4=0;i=i+1b1;if(i=5d5) begin t0=0; t1=1; i=0; endendif(t22=1&t23=0)beginLED1=0;LED2=0;LED3=1;LED4=0;i=i+1b1;if(i=5d25) begin t1=0; t2=1; i=0; endendif(t

21、23=1&t20=0)beginLED1=0;LED2=1;LED3=0;LED4=0;i=i+1b1;if(i=5d5) begin t2=0; t3=1; i=0; endendendend/alwaysendmodule洗涤倒计时的仿真结果:(四)60秒倒计时计数器的实现60秒倒计时计数器的源程序:module s60daojishi (clk, /1hz d0,d1,d2,d3, s60input clk,d0,d1,d2,d3;output s60;reg s60;reg9:0 cout;always(posedge clk)/zhan ting begin if(d0=0)/fu

22、wei begin cout=0; endif(d0=1&d3=0)begin cout=(cout=10d6)? 0:(cout+1b1); s60=(cout=10d6)? 1:0;end endendmodule60秒倒计时计数器的仿真波形:为了使仿真结果能还好地显示出来,60S倒计时的输出改为输出周期为6S的频率信号。(五)、显示器设计实现: 显示器的源程序:module xianshi( clk1,/1khz clk2,/1hz clk3,/1 fen zhong d0,d1,d2,d3, del,sevinput clk1,clk2,clk3,d0,d1,d2,d3;output2

23、:0del;output6:0sev;reg4:0 fen,miao;reg5:0k1,k2;reg1:0m;reg3:0g1,g2,g3,g4;reg6:0sev,ss;reg2:0del,i;always(posedge clk1)begini=i+d1;g1=k1/10;g2=k1%10;g3=k2/10;g4=k2%10;case(i)3d0:m=0;3d1:m=1;3d2:m=2;3d3:m=3;3d4:m=0;3d5:m=1;3d6:m=2;3d7:m=3;endcasedel=m; case(del) d0:ss=g3; d1:ss=g4; d2:ss=g1; d3:ss=g2;

24、 endcaseendalways(ss) begin case(ss) 0:sev=b0111111; 1:sev=b0000110; 2:sev=b1011011; 3:sev=b1001111; 4:sev=b1100110; 5:sev=b1101101; 6:sev=b1111101; 7:sev=b0000111; 8:sev=b1111111; 9:sev=b1101111; endcase endalways(posedge clk2)beginif(d0=0)beginmiao=0;endif(d0=1&d3=0)beginmiao=miao+1b1;k1=32d60-mia

25、o;if(k1=0)miao=0;end/ifend/alwaysalways(posedge clk3)beginif(d0=0)beginfen=0;endfen=fen+1;if(d0=1&d2=1&d3=0)begink2=5d30-fen;if(k2=0)fen=0;endif(d0=1&d2=0&d3=0)begink2=5d15-fen;if(k2=0)fen=0;endend/alwaysendmodule显示器的仿真结果:洗衣模式一:洗衣模式二:(六)总体的设计实现:总体顶层的原理图:生成的电路图如图二所示图二 顶层电路的实现总体仿真结果:为了使仿真结果能还好地显示出来,在仿

26、真时把分频器的两个输出信号分别使其输出5MHZ的和10MHZ的频率信号;60S倒计时的输出改为输出周期为6S的频率信号。洗衣模式一的仿真结果:洗衣模式二的仿真结果:(六)、Fit Design 结果: 实际下载运行结果符合设计要求。四、分析与讨论:在几天的课程设计过程中,从自己编程仿真,到自己下箱硬件实验成功,在这期间,学会了不少东西。在课程设计之前,我自学了EDA的相关东西,MAX+plus II软件的使用,verilog HDL语言的使用,课程设计时在拿到自己的任务书之后,开始设计完成自己的课题。在设计过程中,遇到了不少麻烦,首先是看到自己的任务书后觉得很简单,但是却不知道如何下手;再次是

27、每次程序编译都会出错,有些错误不知道是怎么回事,由什么原因引起,经过两周的学习,在老师和周围同学的帮助下,对verilog HDL语言慢慢熟悉,编程思路越来越清晰,从开始的不知所措到最后完成任务要求并附加功能,第一个下箱仿真成功,品尝到成功的喜悦。几天的课设让我深深的懂得,不管做什么事情,一定要踏踏实实,切忌浮躁,尤其是在自己遇到困难的时候。其次,要养成良好的习惯。在这次编程过程中,如果有良好的编程习惯,对于自己的思路有良好的促进作用。最后,感谢吕宏诗老师和张强老师在这次EDA课程设计中对我的指导和帮助。五、参考文献1.阎石主编. 数字电子技术基础(第五版).高等教等育出版社.2.郑兆兆 李艳艳 周莲莲 吕宏诗 EDA课程设计A指导书3.李国丽、朱维勇、何剑春主编 EDA与数字系统设计(第2版).机械工业出版社.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com