课程设计报告课程设计题目:数字钟系统设计学号:2学生姓名:刘新强专业:通信工程班级:1421302指导教师:钟凯2016年1月4日FPGA( Field Programmable Gate Array,现场可编程门阵列),一种可编程逻辑器件,是目前数字系统设计的主要硬件基础。
可编程逻辑器件的设计过程是利用EDA 开发软件和编程和编程工具对器件进行开发的过程。
通过modelsim软件下采用verilog语言实现数字钟系统设计,实现了以下几个方面的功能:1.数字钟基本计时功能2.数字钟校时功能3.数字钟系统报时功能关键词:FPGA ;VHDL;数字钟一、FPGA与VHDL简介 (1)1、FPGA与简介 ...........................................................................................2、VHDL简介 ...............................................................................................二、课程设计的目的与要求 (2)1、教学目的....................................................................................................................2、教学要求....................................................................................................................3、数字钟系统设计要求................................................................................................三、设计方案 (2)1、系统框图....................................................................................................................2、模块说明....................................................................................................................四、仿真与实现 (3)1、数字钟基本计时功能实现........................................................................................2、数字钟校时功能实现................................................................................................3、数字钟系统报时功能实现........................................................................................五、实验心得 (4)六、参考文献 (4)七、代码 (5)一、FPGA与VHDL简介1、FPGA简介以硬件描述语言(Verilog 或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至FPGA 上进行测试,是现代IC 设计验证的技术主流。
这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。
在大多数的FPGA 里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)或者其他更加完整的记忆块。
系统设计师可以根据需要通过可编辑的连接把FPGA 内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。
一个出厂后的成品FPGA 的逻辑块和连接可以按照设计者而改变,所以FPGA 可以完成所需要的逻辑功能。
FPGA 一般来说比ASIC(专用集成电路)的速度要慢,无法完成复杂的设计,但是功耗较低。
但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。
厂商也可能会提供便宜的但是编辑能力差的FPGA。
因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA 上完成的,然后将设计转移到一个类似于ASIC 的芯片上。
另外一种方法是用CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)。
2、VHDL简介硬件描述语言已经有几十年的发展历史,并且在系统的仿真、验证和设计、综合等方面得到成功的应用。
目前常用的硬件描述语言有VHDL、Verilog HDL 、ABEL 等[2][3][4]。
VHDL则起源于20 世纪70 年代末和80 年代初,美国国防部提出的VHSIC 计划,目标是为下一代集成电路的生产、实践阶段性的工艺极限和完成10 万门级以上的电路设计而建立一种新的描述方法[5]。
VHDL 的英文全称为Very-High-Speed Integrated Circuit Hardware Description Language,是IEEE 标准化的硬件描述语言,并且已经成为系统描述的国际公认标准,得到众多EDA 公司的支持。
VHDL 具有很多的优点使它能够被大多数人认可,被广泛应用在逻辑电路的设计方面,并且成为了标准化的硬件描述语言,其优点如下:(1)功能强大和设计灵活。
一个简洁的使用VHDL 语言编写的程序就可以描述一个复杂的逻辑电路,因为VHDL 拥有强大的语言结构[6]。
VHDL 多层次的设计描述功能可以有效地控制设计的实现,支持设计库和可重复使用的元件生成,还支持多种设计方式,如层次化设计、模块化设计和同步、异步和随机电路设计。
(2)与具体器件无关。
用VHDL 设计硬件电路时不用先确定设计要用到哪种器件,也不用特别熟悉器件的内部结构,这样可以使设计人员专注于进行系统设计。
设计完成后,可以根据消耗的资源选择合适的器件,而不造成资源的浪费。
(3)很强的移植能力。
VHDL 由很多不同的工具支持,同一个设计的程序可以在包括综合工具、仿真工具、系统平台等工具中使用。
(4)强大的硬件描述能力。
VHDL 可以描述系统级电路和门级电路,而且描述方式多样,可以采用行为描述、寄存器传输描述或者结构描述,也可以用其混合描述方式。
同时,VHDL可以准确地建立硬件电路模型,因为它支持惯性延迟和传输延迟。
VHDL 的数据类型很丰富,支持标准定义的数据类型,当标准定义的数据类型不能满足用户的需求时,用户可以自己定义的所需要的数据类型,增加了设计的自由度。
(5)语法规范,易于共享。
当把用VHDL 编写的代码文件看作是程序时,它可以作为设计人员之间的交流内容;当把它看作是文档时,可以作为签约双方的合同文本。
VHDL 易于共享的特点,使得大规模的协作开发容易实现。
同时,这些特点也促进了VHDL 的发展和完善。
综上所述,VHDL 有很多其他的硬件描述语言所不具备的优点。
但是,VHDL 仍然存在一些缺点,主要是3 个方面。
(1)要求设计者对硬件电路知识甚至是芯片结构方面的知识了解较多。
应该摆脱一般的高级语言程序设计思路,因为在电路世界里的事件很多是并行发生的,并且硬件电路系统内部的模块可以是互相独立的,也可以是互为因果的,所以,在用VHDL 设计硬件电路时应摆脱一般的高级语言程序设计思路。
在设计电路时,应先构思电路,然后才能描述。
(2)不能进行太抽象的系统描述。
因为EDA 工具无法综合抽象性太强的系统,故用VHDL描述系统电路时不能太抽象。
目前的VHDL 很难综合实际的硬件电路,只能适用于系统建模。
(3)不能描述模拟电路。
对于模拟电路而言,VHDL 并不是一种理想的硬件描述语言。
但可以预见,未来硬件描述语言的发展方向是模拟电路和数模混合电路的描述方式。
二、课程设计的目的与要求1、教学目的《通信系统FPGA开发》是通信工程专业教学计划中的一门重要专业实践课程,通过进行《通信系统FPGA开发》课程设计的训练,使学生全面掌握FPGA开发的基本操作,巩固verilog硬件描述语言的编写,培养学生正确的设计思想,严肃认真、实事求是的科学态度和勇于探索的创新精神。
注意与生产劳动相结合,重视工艺规程,促进理论联系实际,为毕业设计打下良好的基础。
2、教学要求从课程设计的目的出发,通过设计工作的各个环节,达到以下教学要求:(1)了解EDA软件设计的一般操作流程。
(2)掌握FPGA设计系统的一般方法。
(3)熟练掌握使用modelsim和QuartusII软件设计较复杂的数字逻辑电路。
(4)通过查阅手册和文献资料,培养学生独立分析问题和解决实际问题的能力。
3、数字钟系统设计要求(1) 有基础的实时数字钟功能,即时,分,秒的正常显示模式。
(24小时制)(2) 可对系统用手动方式校准,设计两个按键,按动校时键,时计数器加一,按动校分键,则电路处于校分状态。
(3) 整点报时,要求在59分50秒,52秒,54秒,56秒和58秒发出一个低音信号,00分00秒发出一个高音信号。
三、设计方案1、系统框图:2、模块说明秒计时:60进制计数器,在59秒产生进位信号,并在下一个上升沿清零分计时:60进制计数器,在59分产生进位信号,并在下一个上升沿清零时计时:24进制计数器,在23H59Min59S产生进位信号,并在下一个上升沿清零报时模块:在59分50秒,52秒,54秒,56秒和58秒发出一个低音信号,00分00秒发出一个高音信号。
校时模块四、仿真与实现1、数字钟基本计时功能实现:2、数字钟校时功能实现:3、数字钟系统报时功能实现:五、实验心得经过两周的课程设计,在老师的指导下和同学的帮助下,通过查阅图书馆资料和互联网资源,完成了本次课程设计,期间收获了很多。
做课程设计前,应该先画流程图,做个整体框架结构设计,然后去分别完成各个子模块,由繁入简,简化难度。
及时查阅资料是必要的,有时苦于某一问题时,就应该去看书。
通过本次课程设计,更加熟悉了modelsim软件、verilog硬件描述语言以及EDA设计一般流程,增强了我的动手查阅手册和文献资料的能力,以及培养独立分析问题和解决实际问题的能力。
六、参考文献[1]刘福奇.Verilog HDL设计与实践.北京:北京航天航空大学出版社,2012.9[2]王金明.数字系统设计与Verilog HDL(第5版).北京:电子工业出版社,2011七、代码:1、digital_clock:module digital_clock(clk,reset,button_hour,button_minute,second,minute,hour,alarm_1,alarm_2); input clk,reset,button_hour,button_minute;output reg[5:0] second,minute;output reg[4:0] hour;output reg alarm_1=1,alarm_2=0;always@(posedge clk,negedge reset)beginif(~reset)//复位begin second<=6'b0;minute<=6'b0;hour<=5'b0;alarm_1<=1;alarm_2<=0;endelsebeginif(minute==6'd59)beginif(second==49||second==51||second==53||second==55||second==57) //报时alarm_1<=0;else alarm_1<=1;endif(minute==6'd59&&second==6'd59) alarm_2<=1;else alarm_2<=0; //报时if(button_minute==1) begin minute<=minute+1;if(minute==6'd59) minute<=0; endif(button_hour==1) begin hour<=hour+1;if(hour==5'd23) hour<=0;end//校时if(second!=6'd59) second<=second+1;//秒计时else if(second==6'd59)beginsecond<=0;minute<=minute+1;//分计时if(minute==6'd59)beginminute<=0;hour<=hour+1;//时计时if(hour==5'd23) hour<=0;endendendendendmodule2、测试平台文件:`timescale 1ps/1psmodule digital_clock_test();reg clk,reset,button_hour,button_minute;wire[5:0] second,minute;wire[4:0] hour;wire alarm_1,alarm_2;digital_clock u(clk,reset,button_hour,button_minute,second,minute,hour,alarm_1,alarm_2); always #10 clk=~clk;initialbeginclk=0;reset=0;button_minute=0;button_hour=0;#10 reset=1;#500 button_minute=1;#50 button_minute=0;button_hour=1;#50 button_hour=0;endendmodule东华理工大学课程设计评分表学生姓名:班级:学号:课程设计题目:。