Verilog数字钟课程设计.docx

上传人:b****1 文档编号:481203 上传时间:2022-10-10 格式:DOCX 页数:10 大小:96.93KB
下载 相关 举报
Verilog数字钟课程设计.docx_第1页
第1页 / 共10页
Verilog数字钟课程设计.docx_第2页
第2页 / 共10页
Verilog数字钟课程设计.docx_第3页
第3页 / 共10页
Verilog数字钟课程设计.docx_第4页
第4页 / 共10页
Verilog数字钟课程设计.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

Verilog数字钟课程设计.docx

《Verilog数字钟课程设计.docx》由会员分享,可在线阅读,更多相关《Verilog数字钟课程设计.docx(10页珍藏版)》请在冰豆网上搜索。

Verilog数字钟课程设计.docx

Verilog数字钟课程设计

课程设计报告

 

课程设计题目:

数字钟系统设计

 

学号:

7

学生:

新强

专业:

通信工程

班级:

1421302

指导教师:

钟凯

2016年1月4日

摘要

FPGA(FieldProgrammableGateArray,现场可编程门阵列),一种可编程逻辑器件,是目前数字系统设计的主要硬件基础。

可编程逻辑器件的设计过程是利用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(ComplexProgrammableLogicDevice,复杂可编程逻辑器件)。

2、VHDL简介

硬件描述语言已经有几十年的发展历史,并且在系统的仿真、验证和设计、综合等方面得到成功的应用。

目前常用的硬件描述语言有VHDL、VerilogHDL、ABEL等[2][3][4]。

VHDL则起源于20世纪70年代末和80年代初,美国国防部提出的VHSIC计划,目标是为下一代集成电路的生产、实践阶段性的工艺极限和完成10万门级以上的电路设计而建立一种新的描述方法[5]。

VHDL的英文全称为Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage,是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]福奇.VerilogHDL设计与实践.:

航天航空大学,2012.9

[2]王金明.数字系统设计与VerilogHDL(第5版).:

电子工业,2011

七、代码:

1、digital_clock:

moduledigital_clock(clk,reset,button_hour,button_minute,second,minute,hour,alarm_1,alarm_2);

inputclk,reset,button_hour,button_minute;

outputreg[5:

0]second,minute;

outputreg[4:

0]hour;

outputregalarm_1=1,alarm_2=0;

always(posedgeclk,negedgereset)

begin

if(~reset)//复位

beginsecond<=6'b0;minute<=6'b0;hour<=5'b0;alarm_1<=1;alarm_2<=0;end

else

begin

if(minute==6'd59)

begin

if(second==49||second==51||second==53||second==55||second==57)//报时

alarm_1<=0;

elsealarm_1<=1;

end

if(minute==6'd59&&second==6'd59)alarm_2<=1;elsealarm_2<=0;//报时

if(button_minute==1)beginminute<=minute+1;if(minute==6'd59)minute<=0;end

if(button_hour==1)beginhour<=hour+1;if(hour==5'd23)hour<=0;end//校时

if(second!

=6'd59)second<=second+1;//秒计时

elseif(second==6'd59)

begin

second<=0;minute<=minute+1;//分计时

if(minute==6'd59)

begin

minute<=0;hour<=hour+1;//时计时

if(hour==5'd23)hour<=0;

end

end

end

end

endmodule

2、测试平台文件:

`timescale1ps/1ps

moduledigital_clock_test();

regclk,reset,button_hour,button_minute;

wire[5:

0]second,minute;

wire[4:

0]hour;

wirealarm_1,alarm_2;

digital_clocku(clk,reset,button_hour,button_minute,second,minute,hour,alarm_1,alarm_2);

always#10clk=~clk;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1