§ Код модуля
Модуль получает компоненту цвета, от
0
до
63
и выдает либо
0
, либо
1
- ближайший цвет.
module dither
(
input wire [5:0] I,
output wire R
);
assign R = (I + P >= 32);
wire [ 5:0] G = {Y[2:0], X[2:0]};
wire [ 5:0] P =
G == 8'h00 ? 0 : G == 8'h01 ? 32 : G == 8'h02 ? 8 : G == 8'h03 ? 40 :
G == 8'h04 ? 2 : G == 8'h05 ? 34 : G == 8'h06 ? 10 : G == 8'h07 ? 42 :
G == 8'h08 ? 48 : G == 8'h09 ? 16 : G == 8'h0A ? 56 : G == 8'h0B ? 24 :
G == 8'h0C ? 50 : G == 8'h0D ? 18 : G == 8'h0E ? 58 : G == 8'h0F ? 26 :
G == 8'h10 ? 12 : G == 8'h11 ? 44 : G == 8'h12 ? 4 : G == 8'h13 ? 36 :
G == 8'h14 ? 14 : G == 8'h15 ? 46 : G == 8'h16 ? 6 : G == 8'h17 ? 38 :
G == 8'h18 ? 60 : G == 8'h19 ? 28 : G == 8'h1A ? 52 : G == 8'h1B ? 20 :
G == 8'h1C ? 62 : G == 8'h1D ? 30 : G == 8'h1E ? 54 : G == 8'h1F ? 22 :
G == 8'h20 ? 3 : G == 8'h21 ? 35 : G == 8'h22 ? 11 : G == 8'h23 ? 43 :
G == 8'h24 ? 1 : G == 8'h25 ? 33 : G == 8'h26 ? 9 : G == 8'h27 ? 41 :
G == 8'h28 ? 51 : G == 8'h29 ? 19 : G == 8'h2A ? 59 : G == 8'h2B ? 27 :
G == 8'h2C ? 49 : G == 8'h2D ? 17 : G == 8'h2E ? 57 : G == 8'h2F ? 25 :
G == 8'h30 ? 15 : G == 8'h31 ? 47 : G == 8'h32 ? 7 : G == 8'h33 ? 39 :
G == 8'h34 ? 13 : G == 8'h35 ? 45 : G == 8'h36 ? 5 : G == 8'h37 ? 37 :
G == 8'h38 ? 63 : G == 8'h39 ? 31 : G == 8'h3A ? 55 : G == 8'h3B ? 23 :
G == 8'h3C ? 61 : G == 8'h3D ? 29 : G == 8'h3E ? 53 : 21;
end