verilog秒表设计.doc
- 文档编号:137364
- 上传时间:2022-10-04
- 格式:DOC
- 页数:16
- 大小:1.72MB
verilog秒表设计.doc
《verilog秒表设计.doc》由会员分享,可在线阅读,更多相关《verilog秒表设计.doc(16页珍藏版)》请在冰豆网上搜索。
深圳大学实验报告
课程名称:
数字系统设计
实验项目名称:
Verilog秒表设计
学院:
信息工程学院
专业:
电子信息工程
指导教师:
邓小莺
报告人:
陈耀省学号:
2010130267班级:
电子三班
实验时间:
2012年11月
实验报告提交时间:
2012年11月28日
教务部制
一、实验目的
1、进一步熟悉ISE软件的使用,熟悉FPGA开发流程;
2、掌握编写Verilog代码的步骤,学会绘制ASM图;
3、学会自顶向下的设计方法,使用不同的模块实现系统的设计。
二、实验设备
1、装有ISE软件的PC机一台;2、Nexys3开发板一块。
三、实验内容与要求
设计一个秒表
它具有计时功能。
此秒表有两个按键(reset,start)按下reset键后,秒表清零。
开始默认秒表计时,按下start键后,停止计时,再次按下start键后,又开始计时,如此反复。
用FPGA开发板上的两个七段数码管显示时间(以秒为单位),计时由0到59循环。
三、实验步骤
1、设计系统框图,设计采取自顶向下的设计方案,整个秒表系统的原理图如下所示。
主要包括五个模块——按键消抖模块、分频模块、按键功能控制模块、计数模块、数码管驱动显示模块。
2、根据系统的原理图,画出各个模块的ASM图。
(1)利用D触发器对按键进行消抖处理,其电路图如下。
利用下面这个电路即可实现对start键和reset键的消抖。
只有连续输入三个周期的高电平时,按键才有效。
(2)分频模块的ASM图。
此ASM图将100MHz的信号分频为100Hz的信号,用于计数和数码管的扫描。
(3)start键与reset键功能控制模块的ASM图。
图中rst为复位信号,sta为计时信号。
利用状态机实现不同状态之间的转换并输出复位信号与计时信号。
默认状态是start_time,即计时状态。
(4)计数模块的ASM图。
输入100Hz的时钟用于计数,当复位信号有效时,将所有的数全部置0。
否则sta信号有效时开始计数。
最后输出秒位与十秒位。
(5)数码管驱动模块的ASM图。
使用100Hz的信号扫描数码管,并将对应的数字以十进制形式显示在数码管上。
因为只用到两个数码管,所以前两个数码管置1,即保持不亮,只点亮后两个数码管。
3、根据所绘制各个模块的ASM图和系统的原理图,编写Verilog代码。
所编写的代码如下。
/***********************秒表顶层模块**************************/
modulestopwatch(clk,reset,start,led,outdata);
inputclk,reset,start;
outputled;
outputoutdata;
wireclk_100,freset,fstart,rst,sta;
wire[3:
0]data_s,data_g;
wire[3:
0]led;
wire[6:
0]outdata;
xiaodoum1(.reset(reset),.start(start),.clk(clk),
.freset(freset),.fstart(fstart));
fenpinm2(.clk(clk),.clk_100(clk_100));
f_startm3(.clk(clk),.reset(reset),.start(start),
.freset(freset),.fstart(fstart),.rst(rst),.sta(sta));
jishum4(.clk_100(clk_100),.rst(rst),.sta(sta),
.data_s(data_s),.data_g(data_g));
qudongm5(.clk_100(clk_100),.data_s(data_s),
.data_g(data_g),.outdata(outdata),.led(led));
endmodule
/***************************************************************/
/****************分频模块***************************************/
modulefenpin(clk,clk_100);
inputclk;
outputclk_100;
regclk_100=0;
reg[18:
0]temp=0;
always@(posedgeclk)
begin
if(temp==499999)
begin
temp<=0;
clk_100<=~clk_100;
end
elsebegin
temp<=temp+1;
endend
endmodule
/***************************************************************/
/***************按键消抖****************************************/
modulexiaodou(reset,start,clk,freset,fstart);
inputreset,start,clk;
outputfreset,fstart;
wirefreset,fstart;
regflag_reset,flag_start;
regresetA,startA,resetB,startB;
assignfreset=(resetA&resetB&flag_reset);
assignfstart=(startA&startB&flag_start);
always@(posedgeclk)
begin
resetA<=reset;startA<=start;
resetB<=resetA;startB<=startA;
flag_reset<=resetB;flag_start<=startB;
end
endmodule
/*****************************************************************/
/*************start与reset键功能控制***************************/
modulef_start(clk,reset,start,freset,fstart,rst,sta);
inputclk,reset,start,freset,fstart;
outputrst,sta;
reg[1:
0]state=2'b01;//默认是计时状态,即start_time
regrst=1;
regsta=0;
parameterreset_time=2'b00,
start_time=2'b01,
stop_time=2'b10;
always@(posedgeclk)
if(freset&&!
reset)//按键按下放开后的第一个时钟周期有效
begin
state<=reset_time;
rst<=0;
end
else
case(state)
reset_time:
if(fstart&&!
start)
begin
state<=start_time;
rst<=1;
sta<=0;
end
else
begin
state<=reset_time;
rst<=0;
end
start_time:
if(fstart&&!
start)
begin
state<=stop_time;
rst<=1;
sta<=1;
end
else
begin
state<=start_time;
rst<=1;
sta<=0;
end
stop_time:
if(fstart&&!
start)
begin
state<=start_time;
rst<=1;
sta<=0;
end
else
begin
state<=stop_time;
rst<=1;
sta<=1;
end
default:
state<=2'bxx;
endcase
endmodule
/**************************************************************/
/**********************计数模块********************************/
modulejishu(clk_100,rst,sta,data_s,data_g);
inputclk_100,rst,sta;
output[3:
0]data_s,data_g;
reg[3:
0]data_s=4'b0000;
reg[3:
0]data_g=4'b0000;
reg[3:
0]temp1=4'b0000;
reg[3:
0]temp2=4'b0000;
always@(posedgeclk_100)
if(!
rst)
begin
temp1<=4'b0000;temp2<=4'b0000;
data_s<=4'b0000;data_g<=4'b0000;
end
elseif(!
sta)
begin
if(temp1==9)begintemp1<=0;
if(temp2==9)begintem
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- verilog 秒表 设计