Forum Discussion
AKhan8
New Contributor
7 years agoThis is my code and still i got no success. Plz help me . Thanks
module test1
(
input fr,en,clk, //input light value
output reg M1, M2, M3,s2,s3,
output s0,s1);
//parameter frequency = 1'b0;
//setting frequency-scaling to 20%
//states
assign s0 = 1'b1;
assign s1 = 1'b0;
reg [15:0]count,count_next;
reg [15:0]counter,counter_next;
wire [20:0]interval;
reg [20:0] interval_next;
wire [15:0] div;
always@(*)
if(interval=='d24000)
begin
s2<=1'b0; //red
s3<=1'b0;
end
else if(interval=='d48000)
begin
s2<=1'b0;
s3<=1'b1; //blue
end
else if(interval=='d96000)
begin
s2<=1'b1; //clear
s3<=1'b0;
end
else if(interval=='d120000)
begin
s2<=1'b1;
s3<=1'b1;
end
always@(posedge clk)
if(interval <='d120000)
interval_next = interval+1;
else
interval_next = 0;
assign interval = interval_next;
always@(posedge clk)
if(div < 'd4545 && en == 1'b0)
count_next = count + 1;
else
count_next = 0;
always@(posedge fr)
if(div < 'd4545 && en == 1'b0)
counter_next = counter + 1;
else
counter_next = 0;
assign div= count/counter;
always@(*)
begin
M1=0;
M2=0;
M3=0;
if( (div >= 'd3125) && (div <= 'd2083) && (s2 == 0) && (s3 == 0) )
M1 = 1'b1;
else if( (div >= 'd4545) && (div <= 'd2380) && (s2 == 0) && (s3 == 1) )
M2 = 1'b1;
else if( (div >= 'd3571) && (div <= 'd2083) && (s2 == 1) && (s3 == 1) )
M3 = 1'b1;
end
endmodule