I have this code:
1 | `timescale 1ns / 1ps |
2 | |
3 | module blacks(input [31:0] b, |
4 | input left, |
5 | output [3:0] nr_black); |
6 | |
7 | integer i = 0; |
8 | integer nr; |
9 | assign nr_black = 4'b0000; |
10 | |
11 | always @ (*) begin |
12 | if(left==0) |
13 | begin
|
14 | while (i < 31) |
15 | begin
|
16 | if (b[i] == 0) |
17 | i=i+1; |
18 | else
|
19 | begin
|
20 | nr=0; |
21 | while (b[i] == 1) |
22 | begin
|
23 | i=i+1; |
24 | nr=nr+1; |
25 | end
|
26 | if (nr >= 2) |
27 | nr_black = nr_black + 4'b0001; |
28 | end
|
29 | end
|
30 | end
|
31 | else; |
32 | end
|
33 | |
34 | endmodule
|
It gives me this error: "Procedural assignment to a non-register nr_black is not permitted, left-hand side should be reg/integer/time/genvar" on line 46 line 46 is this one: nr_black = nr_black + 4'b0001. How can i fix this program? My nr_black is the output on 4 bits, and whenever nr is higher or equal than 2, i want to increment nr_black with 1. How do i do that? TY