|

楼主 |
发表于 2015-5-6 17:33:52
|
显示全部楼层
根据另一个帖子,liqz大神写的程序改的,
module Pulse_Width(
clk,
rst_n,
signal
pwcounter
);
input clk, rst_n, signal;
output signed [9:0] pwcounter;
reg [9:0] pwcounter;
reg signal_reg;
reg state;
always @ (posedge clk )
begin
if(!rst_n)
begin
pwcounter<=10'd0;
signal_reg<=1'd0;
state<=1'd0;
end
else
begin
signal_reg<=signal;
case(state)
1'd0:
begin
if(signal&(~signal_reg))
begin
state<=1'd1;
pwcounter<=pwcounter+1'd1;
end
end
1'd1:
begin
if(signal_reg&(~signal))
begin
state<=1'd0;
pwcounter <=10'd0;
end
else
counter<=counter+1'd1;
end
endcase
end
end
endmodule
求教其中state的作用是? |
|