秒表的设计_Verilog_HDL.doc
文本预览下载声明
FPGA及数字系统设计
专
周
报
告
系别:XXXXXXXX
班级:XXXXX
学号:XX
姓名:XXXX
日期:XXXX年XX月XX日
专周设计课题
秒表的设计
专周实习目的
1、熟练利用Verilog HDL语言进行数字系统设计。
2、掌握数字系统的设计方法——自顶向下的设计思想。
3、掌握计数器的设计与使用。
4、根据秒表的功能要求设计一个秒表。
5、熟练掌握用Quartus II软件进行系统原理图设计、文本设计以及进行波形仿真。
专周实习所需器材
装有Quartus II软件的电脑一台、FPGA教学实验系统一台、下载 电缆一根。
专周实习要求
1、有秒、分计数,数码扫描显示输出。
2、有清零端和暂停端。
3、在功能允许的情况下,可自由发挥。
4、下载,检查结果是否正确。
专周实习原理
1、功能描述
秒表是一种计时的工具,有着很广泛的用途。本实验中的秒表要求有两个功能按钮:一个是计数和停止计数按钮,当第一次按下此按钮时,秒表开始计数,再一次按下时,秒表停止计数,并显示所计的数字;另一个是清零按钮,当按下此按钮时,秒表清零。在数码管上采用动态扫描显示输出。
基本原理:
本设计中用到的主要元件有计数器、分频器、数据选择器、译码器、位选信号发生器等。秒、分都是60进制计数,所以必须采用两个60进制的计数器,而百分秒择采用的是100进制;分频器主要将1KHZ的时钟信号经过10分频后,产生100HZ的单位时钟周期;数据选择器主要功能是将即将显示的数据送给译码器;译码器将BCD码转换为七段译码进行显示;位选信号发生器根据人眼暂留效应和显示的数码的个数,产生一段循环码。原理框图如下图。
3、自顶向下的设计方法
自顶向下的设计方法是数字系统设计中最常用的设计方法,也是基于芯片的系统设计的主要方法。
自顶向下的设计方法利用功能分割手段将设计由上到下进行层次话和模块化,及分层次、分模块进行设计和仿真。功能分割时,将系统功能分解为功能块,功能块再分解为逻辑块,逻辑块再分解为更少的逻辑块和电路。如此分割,逐步的将系统细化,将功能逐步的具体化,模块化。高层次设计进行功能和接口描述,说明模块的功能和接口,模块功能的更详细描述在下一设计层次说明,最底层的设计才涉及具体寄存器和逻辑门电路等实现方式的描述。
专周实习步骤
1、采用自顶向下的设计方法,首先将系统分块。
2、设计元件,及逻辑块。
3、一级一级向上进行元件例化,设计顶层文件。
4、把各模块连接起来,进行综合编译仿真。
5、下载到实验箱,以验证程序。
专周实习模块设计
分频模块
将输入1KHZ的系统时钟经过十分频分为100HZ的单位时钟。编程原理跟计数器原理相似。
定时模块
采用2个60进制、1个100进制的BCD码全加器作为定时器,分为分,秒,百分秒,输入时钟信号为分频器输出信号100HZ时钟,外界两个拨码开关作为清零按钮和暂停按钮。
位选发生器:
根据显示的数据位和人眼暂留效应,设计显示分为分、秒、百分秒位,每位需要2个数码管进行显示,因此变化频率至少为300HZ,为了方便则采用1KHZ,循环码则从000循环到101。
多路选择器
根据位选信号,输出对应位显示的数据。
译码器
将多路选择器输出端的数据对应的转换为七段二进制数,送给显示器。
总结
专周开始,自己就按照实验指导书挨着挨着的做实验,把前七个实验做完
后,自己对Quaetus II软件及Verilog HDL语言语法掌握得也比较熟练了,在前几个实验的铺垫下,秒表设计可以说是前几个小实验的系统集成,专周感觉比较顺利。遇到的问题主要就是,在进行原理图设计时,定时器原件块和多路选择器原件块输出、输入接错了,导致波形仿真失败。通过专周,自己学会了原理图设计法、文本输入设计法,同时也感受到了自顶而下和自下而上设计思路的优势。
附:设计模块Verilog HDL源程序
分频器
/*******************************
Function name:Frequency division 10
Function: 1KHZ clock divide to 100HZ clock
*******************************/
module fd10(clk,clk10);
input clk;
output clk10;
reg clk10;
reg[3:0] qout=0;
always@(posedge clk)
begin
if(qout==9)
begin
clk10=~clk10;
qout=0;
end
else
qout=qout+1;
end
endmodule
计时器
/**************************************
显示全部