电子科技大学ASIC 秒表计时电路实验报告

2020-06-07 15:40

电子科技大学通信学院

秒表计时电路实验报告

班 级 学 生 学 号

实验时间 2015年11月27日

一、设计思路概述

设计要求:秒表计时功能,显示分、秒、0.01秒;具有启动、暂停、停

止和清空功能;增加有趣的流水灯;输入信号:4bit按键,50MHz时钟;输出信号:6位数码管

.设计分析:本设计要求秒表计时功能,显示分、秒、0.01秒,而这可

以由分频电路实现,将电路的输入时钟进行分频,得到1/60Hz,1Hz,和100Hz信号,就可以达到本设计要求的显示要求了;本设计要求具有启动、暂停、停止和清空功能,而这个可以由状态机实现,通过合理的配置状态转换,就可以达到要求。

流水灯的实现:单个灯从左到右逐步发光。相当于是一个移位寄存器,

我们可通过不同的时钟来驱动它,实现不同的流水速度。这里,我们实现了一个1Hz,和一个10Hz的流水灯电路。

二、总体设计框图及详细说明

状态机实现清零、暂停、停止等状态的切换由2比特的key信号控制,计数

器500000进制由输入时钟产生周期0.01s的时钟,这是显示时钟信号的最小单

位。计数器10进制可实现10分频,由他产生的输出时钟为输入时钟周期的10倍,并根据他的状态即计数量作为输出显示对应位的时间信号,6进制实现6分频,实现功能类似于计数器10进制,通过如框图中的组合可产生时钟信号的不同位。显示译码电路显示时钟,输出56位,因为时钟信号具有8位,输出信号连到相应的数码管即可。

三、模块设计框图、相关时序 1.6进制计数器(分频器)设计

//计数器实现6分频,计数到达2和5,输出始终翻转一次,且计数达到5时计

数清零

module count6(rst, clk, clkout, counter); input rst; input clk;

output reg clkout;

output reg [3:0]counter;

always @(negedge clk or negedge rst) begin if (~rst) begin clkout <= 0; counter <= 0; end

else if (counter == 2 )begin clkout <= ~clkout;

counter <= counter + 4'b1; end

else if (counter == 5) begin clkout <= ~clkout; counter <= 0; end else begin

counter <= counter + 4'b1; end end

endmodule

仿真结果为:

由图可知实现了6分频。

2、10进制计数器(分频器)设计

//计数器实现10分频,计数到达4和9,输出始终翻转一次,且计数达到9时计数清零

module count10(rst, clk, clkout, counter); input rst; input clk;

output reg clkout;

output reg [3:0]counter;

always @(negedge clk or negedge rst) begin if (~rst) begin clkout <= 0; counter <= 0; end

else if (counter ==4) begin clkout <= ~clkout;

counter <= counter + 4'b1; end

else if (counter == 9) begin clkout <= ~clkout; counter <= 0; end

else begin

counter <= counter + 4'b1; end end endmodule

仿真结果为:

由图可知实现了10分频。

3、500000进制计数器(分频器)设计:

//实现500000分频,目的是把50Mhz的系统时钟分频成为100Hz的 always @(negedge clk or negedge rst10ms) begin if (~rst10ms) begin

clk10ms<=0; clk10msreg<=0; end

else if (clk10msreg == 249999) begin

clk10ms<=~clk10ms ;

clk10msreg<=clk10msreg+1; end

else if (clk10msreg==499999) begin

clk10ms<=~clk10ms; clk10msreg<=0; end else begin

clk10msreg<=clk10msreg+1; end end

4、状态机设计

代码为:

//通过状态机实现复位信号的转换

always @(negedge clk or negedge clear) begin if (~clear) begin

state <= idlestate; rst <= 0; rst10ms <= 0; end else begin

case (state)

idlestate: begin if(~start)


电子科技大学ASIC 秒表计时电路实验报告.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:锚索锚杆工

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: