1、利用EDA技术进行电子系统的设计,具有以下几个特点: 用软件的方式设计硬件; 用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的; 设计过程中可用有关软件进行各种仿真; 系统可现场编程,在线升级; 整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。因此,EDA技术是现代电子设计的发展趋势。EDA技术伴随着计算机、集成电路、电子系统设计的发展,经历了计算机辅助设计(Computer Assist Design,简称CAD)、计算机辅助工程设计(Computer Assist Engineering Design,简称CAE)和电子设计自动化(Electronic Design
2、Automation,简称EDA)三个发展阶段。常用的硬件描述语言有VHDL、Verilog、ABEL。1 EDA技术是随着集成电路和计算机技术的飞速发展应运而生的一种高级、快速、有效的电子设计自动化工具。它是为解决自动控制系统设计而提出的,从70年代经历了计算机辅助设计(CAD),计算机辅助工程(CAE),电子系统设计自动化(ESDA)3个阶段。前两个阶段的EDA产品都只是个别或部分的解决了电子产品设计中的工程问题;第三代EDA工具根据工程设计中的瓶颈和矛盾对设计数据库实现了统一管理,并提出了并行设计环境概念,提供了独立于工艺和厂家的系统级的设计工具。EDA关键技术之一就是采用硬件描述语言对
3、硬件电路进行描述,且具有系统级仿真和综合能力。目前应用比较广泛的硬件描述语言就是Verilog HDL。2 Verilog HDL简介Verilog HDL是目前大规模集成电路设计中最具代表性、使用最广泛的硬件描述语言之一。具有如下特点:(1)能够在不同的抽象层次上,如系统级、行为级、RTL级、门级和开关级,对设计系统进行精确而简练的描述。(2)能够在每个抽象层次的描述上对设计进行仿真验证,及时发现及时发现可能存在的错误,缩短设计周期,并保存整个设计过程的正确性。(3)由于代码描述与工艺过程实现无关,便于设计标准化,提高设计的可重用性。如国有C语言的编程基础经验,只需很短的时间就能学会和掌握V
4、erilog HDL,因此,Verilog HDL可以作为学习HDL设计方法的入门和基础。1.2 设计思路1 设计要求1、设计简易的一分钟闹钟;2、可手动输入定时时间(059s),如30s;3、两个动态数码管上跟踪显示时间的变化:如30,29,28到了指定时间蜂鸣器发出5s的提示音;4、采用2个动态数码管显示时间;5、用蜂鸣器发出提示音;6、拨码开关设置定时时间。2 设计思路根据上述的设计要求,整个系统大致包括如下几个组成部分:它包括以下几个组成部分:1、 显示屏,由2个七段动态数码管组成,用于显示当前设置的闹钟时间并进行跟踪显示;2、 6个拨码开关,用于输入闹钟时间;3)复位键,确定新的闹钟
5、时间设置,或显示已设置的闹钟时间;4)蜂鸣器,在当前时钟时间与闹钟时间相同时,发出报警声。第二章 模块介绍2.1 计时模块此模块共有6个拨码开关作为输入信号,当开关无输入时,都处于低电平状态,D5、D4、D3、D2、D1和D0是并行数据输入端,CRN是异步复位输入端,LDN是预置控制输入端。当开关有输入时,会产生一个六位的二进制输出信号num,此信号表示动作的开关序号,它是作为动态显示模块的输入信号。2.2 数码显示模块这个模块有两个输入信号和两个输出信号。其中一个是信号输入模块的输出num作为输入,另外一个是时钟输入端,作为扫描数码管的频率信号,采用1024HZ的中高频信号。输出信号为SS0
6、、SS1、SS2,是动态数码管的片选段。2.3 报警模块报警模块共有两个输入信号ET和CLK1,一个输出信号COUT。当从信号输入模块检测到有开关输入时,ET信号已置1,CLK上升沿到来时,程序将COUT置1,蜂鸣器发出时间为10s的报警信号,时间到达后,跳出循环,蜂鸣器停止报警。2.4 顶层模块顶层模块的作用是将各个模块组合到一起,从而实现最终的功能。其输入即为各个模块的输入,一个时钟信号,还有6个拨码开关的输入,其输出为数码管显示和报警器。第三章Verilog HDL设计源程序3.1 计时模块程序module counter(LDN,D5,D4,D3,D2,D1,D0,CLK,CRN,Q,
7、OC);input LDN,D5,D4,D3,D2,D1,D0,CLK,CRN;output5:0 Q;output OC;reg OC;reg5:0 Q_TEMP;reg3:0 NUM;always(posedge CLK or negedge CRN)begin if(CRN) Q_TEMP=6b000000;else if(LDN) beginQ_TEMP=D5,D4,D3,D2,D1,D0;NUM=4b0000;endelse if(Q_TEMPb000000) if(NUM=4b0000)NUM=NUM+1;else NUM=4b0001;if(NUM=4b1000)Q_TEMP=Q
8、_TEMP-1;else Q_TEMP=6alwaysif(Q_TEMP=6b000000&LDN) OC=1b1;else OC=1b0;Q=Q_TEMP;endmodule3.2 数码显示模块程序module showtime(A,Q,CLKM,SS0,SS1,SS2);input5:0 A;input CLKM;output6:output SS0,SS1,SS2;reg6:reg SS0,SS1,SS2;reg M;0 B;0 C;always(posedge CLKM)M=M+1;if(Ab001001&Ab10011)B=A-10;C=1;b10011&b11101)B=A-20;
9、C=2;b11101&b100111)B=A-30;C=3;b100111&b110001)B=A-40;C=4;b110001&b111011)B=A-50;C=5;else if(A=b111100)B=0;C=6;if(M=b1)SS0=1;SS1=0;SS2=0;case(B)b000000:Q=b0111111;b000001:b0000110;b000010:b1011011;b000011:b1001111;b000100:b1100110;b000101:b1101101;b000110:b1111101;b000111:b0000111;b001000:b1111111;b0
10、01001:b1101111;default:endcaseelse if(M=b0)SS0=0;case(C)3.3 报警模块程序module speaker(CLK1,ET,COUT);input CLK1,ET;output COUT;reg COUT;0 TEMP;always(posedge CLK1)if(ET) TEMP=6else if(TEMP=6b000000) TEMP=TEMP+1;else TEMP=6b101001;if(TEMPchip=timer;Input Pin=75CLKMchip=timer:Input Pin=83CLK1 chip=timer;Inp
11、ut Pin=85COUTOutput Pin=38CRNInput Pin=39DOInput Pin=53D1Input Pin=47D2Input Pin=46D3Input Pin=45D4Input Pin=44D5Input Pin=41LDNInput Pin=40LED0Output Pin=173LED1Output Pin=174LED2Output Pin=175LED3Output Pin=176LED4Output Pin=177LED5Output Pin=179LED6Output Pin=187SSOOutput Pin=191SS1Output Pin=192
12、SS2Output Pin=1935.2 引线说明拨码开关使用数字开关组A,需外接引线。第六章 总结通过这次设计,初步对EDA有一个新了解。课程设计之初是做了一个简单的培训,关于软件和硬件的设计,算是入门训练吧。通过前两天的课程讲解,我对其有了初步的了解。之后就开始按照指导书中的例题就行练习,仿真,有进一步的掌握后就开始了自己的课程设计。由于我C+程序设计知识不扎实,所以导致这次软件设计困难重重,也让我明白了在这个领域知识的串联是非常普遍的,学好学扎实是我们必须要做到的要求。参考文献1阎石主编. 数字电子技术基础(第五版).高等教等育出版社.2006.5,168-175页 ;2李国丽、朱维勇、何剑春主编 .EDA与数字系统设计(第2版).机械工业出版社.2009.3,105-146页致谢通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能提高自己的实际动手能力。在设计的过程中,可以说得是困难重重,同时在设计的过程中发现了自己的不足之处。 在此还需要感谢老师耐心的指导与帮助,使课设能够更加顺利的完成。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1