题目描述;
以clk为基准,设计一个秒计数器,在指定的计数值产生中断,实时输出当前的秒计数值
(1) clk时钟输入,频率为32.768KHz
(2) rst_n是异步复位输入,低电平有效,复位整个系统,为高则整个系统开始工作,其上升沿易同步于clk
(3) statr是启动信号,一个clk时钟周期的正脉冲,同步于clk。alarm[7:0]是配置信息,单位为秒,同步于clk
(4) 工作模式:收到start后,秒计数器sec_cnt从零开始以秒为单位来计数,计数到alarm[7:0]指定的数值时,产生一个int pulse(一个时钟周期的正脉冲),秒计数器回0并停止
module timer(
input clk,
input rst_n,
input start,
input [7:0] alarm,
output reg [31:0] sec_cnt,
output int_pulse
);
reg [14:0] one_sec_cnt; //时钟翻转计数器
reg state; //计数状态
parameter TIMES=32767; //时钟计数器计数值,计数32767次