Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Beginner
104 Views

Getting an error :object "led" on left-hand side of assignment must have a variable data type

module test (clk,led);

input clk;

output led;

 

reg [7:0] counter;

always@(posedge clk) begin

    if (counter < 100) counter <= counter +1;

    else counter <= 0;

end

 

always @ (counter) begin

     if (counter>0) led = 1;

     else if (counter<20) led = 1;

     else led = 0;

     end

endmodule 

 

trying to make sure that the value of led turns 1 only when the value of counter varies from 1 to 20. I want led to be zero when counter is zero. any workaround this or am i doing something wrong?

0 Kudos
1 Reply
Highlighted
New Contributor III
4 Views

Re: Getting an error :object "led" on left-hand side of assignment must have a variable data type

You need to declare 'led' as a reg, in the same way you've declared counter. Declaring it as an output to the module isn't enough (as it is in other languages).

 

You can either add:

reg led;

 

or change the output declaration to:

output reg led;

 

Cheers,

Alex

0 Kudos