6,125
社区成员
发帖
与我相关
我的任务
分享
module myModule(sysclk,sysreset,signal,led);
//IO口定义
input sysclk; //系统时钟周期40nS
input sysreset; //系统复位,低电平有效
input signal; //999Hz信号
output reg led; //led灯
//内部寄存器
reg flgLow; //低电平标志
//检测信号上跳变
always @(posedge sysclk or negedge sysreset)
begin
if (!sysreset)
begin
led<=0;
flgLow<=0;
end
else
begin
if(!signal)flgLow<=1;
if(signal && flgLow )//被测信号上升沿
begin
led<=~led;//每当检测到信号上跳变时,让led亮灭变化
flgLow<=0;
end
end
end
endmodule
module myModule(sysclk,sysreset,signal,led);
//IO口定义
input sysclk; //系统时钟周期40nS
input sysreset; //系统复位,低电平有效
input signal; //999Hz信号
output reg led; //led灯
//内部寄存器
//reg flgLow; //低电平标志
reg signal_r1;
reg signal_r2;
always @(posedge sysclk or negedge sysreset)
begin
if (!sysreset)
begin
signal_r1 <=0;
signal_r1 <=0;
end
else
begin
signal_r1 <= signal;
signal_r2 <= signal_r1;
end
end
//检测信号上跳变
always @(posedge sysclk or negedge sysreset)
begin
if (!sysreset)
begin
led<=0;
end
// else if(signal_r1 != signal_r2 && signal_r1 == 1'b0) //判断下降沿
else if(signal_r1 != signal_r2 && signal_r1 == 1'b1) //判断上升沿
begin
led<=~led;//每当检测到信号上跳变时,让led亮灭变化
end
end
endmodule