
(1)定时时间为24秒,按递减方式计时,每隔1秒,定时器减1;
(2)定时器的时间用两位数码管显示;
(3)设置两个外部控制开关,开关K1控制定时器的直接复位/启动计时,开关K2控制定时器的暂停/连续计时;当定时器递减计时到零(即定时时间到)时,定时器保持零不变,同时发出报警信号,报警信号用一个发光二极管指示。
(4)输入时钟脉冲的频率为1kHz。
(5)用Verilog HDL语言设计,用Modelsim软件做功能仿真,用Quartus II综合。
(6)将设计代码和仿真代码写在作业本上。
module gcount(out,sel,clock_1k,clear,pause,gcon);
input clock_1k,clear,pause;
output [6:0] out;
output sel,gcon;
reg [3:0] cnt_sl,cnt_sh,count;
wire clock_1 = fenpin[9]; // 1Hz;
always @(posedge clock_1k or negedge clear)
begin
end
//cnt_sl
//cnt_sh
always@(posedge clock_1 or negedge clear)
//always@(posedge clock_1 or negedge clear or posedge pause)
begin
if(!clear)
else if (!pause)
else if (cnt_sh == 0 && cnt_sl == 0)
else if (cnt_sl == 0)
else
end
//gcon
//always@(posedge clock_1 or negedge clear)
always@(cnt_sh or cnt_sl)
begin
if (cnt_sh == 0 && cnt_sl == 0)
else
end
//reg
always@(posedge clock_1k or negedge clear)
begin
end
always @(sel)
count = (sel == 0)?cnt_sh:cnt_sl;
always @(count)
begin
end
endmodule
`timescale 1ns/1ns
`include"./gcount.v"
module test;
reg Clock_1k,Clear,Pause;
wire [6:0] Out;
initial
begin
end
always #1 Clock_1k<=~Clock_1k;
gcount m(.out(Out),.sel(Sel),.clock_1k(Clock_1k),.clear(Clear),.pause(Pause),.gcon(Gcon));
endmodule
