| module top( | 
 |   output RGB0, RGB1, RGB2 | 
 | ); | 
 |  | 
 | wire clk; | 
 |  | 
 | SB_HFOSC inthosc ( | 
 |   .CLKHFPU(1'b1), | 
 |   .CLKHFEN(1'b1), | 
 |   .CLKHF(clk) | 
 | ); | 
 |  | 
 | localparam  counter_width = 32; | 
 |  | 
 | reg [counter_width-1:0] ctr; | 
 |  | 
 | always@(posedge clk) | 
 | begin | 
 |   ctr <= ctr + 1; | 
 | end | 
 |  | 
 | localparam  pwm_width = 12; | 
 |  | 
 | localparam pwm_max = (2**pwm_width) - 1; | 
 | localparam pwm_max_div4 = (2**(pwm_width-2)) - 1; | 
 |  | 
 |  | 
 | wire [1:0] phase = ctr[counter_width - 1 : counter_width - 2]; | 
 | wire [pwm_width-1:0] fade = ctr[counter_width - 3 : counter_width - (2 + pwm_width)]; | 
 | wire [pwm_width-1:0] fade_div4 = ctr[counter_width - 3 : counter_width - (pwm_width)]; | 
 |  | 
 | wire [pwm_width-1:0] r_val, g_val, b_val; | 
 |  | 
 | //  Fade R->G->B->W-> | 
 | assign r_val = (phase == 0) ? pwm_max_div4 + (3 * fade_div4) : | 
 |                (phase == 1) ? pwm_max - fade : | 
 |                (phase == 3) ? fade_div4 : | 
 |                0; | 
 |                | 
 | assign g_val = (phase == 0) ? pwm_max_div4 - fade_div4: | 
 |                (phase == 1) ? fade : | 
 |                (phase == 2) ? pwm_max - fade : | 
 |                (phase == 3) ? fade_div4 : | 
 |                0; | 
 |  | 
 | assign b_val = (phase == 0) ? pwm_max_div4 - fade_div4: | 
 |                (phase == 2) ? fade : | 
 |                (phase == 3) ? pwm_max - (3 * fade_div4) : | 
 |                0; | 
 |  | 
 | reg [pwm_width-1:0] pwm_ctr; | 
 |  | 
 | reg pwm_r, pwm_g, pwm_b; | 
 |  | 
 | always@(posedge clk) | 
 | begin | 
 |   pwm_ctr <= pwm_ctr + 1; | 
 |   pwm_r <= (pwm_ctr < r_val) ? 1'b1 : 1'b0; | 
 |   pwm_g <= (pwm_ctr < g_val) ? 1'b1 : 1'b0; | 
 |   pwm_b <= (pwm_ctr < b_val) ? 1'b1 : 1'b0; | 
 | end | 
 |  | 
 | SB_RGBA_DRV RGBA_DRIVER ( | 
 |   .CURREN(1'b1), | 
 |   .RGBLEDEN(1'b1), | 
 |   .RGB0PWM(pwm_g), | 
 |   .RGB1PWM(pwm_b), | 
 |   .RGB2PWM(pwm_r), | 
 |   .RGB0(RGB0), | 
 |   .RGB1(RGB1), | 
 |   .RGB2(RGB2) | 
 | ); | 
 |  | 
 |  | 
 | defparam RGBA_DRIVER.CURRENT_MODE = "0b1"; | 
 | defparam RGBA_DRIVER.RGB0_CURRENT = "0b000111"; | 
 | defparam RGBA_DRIVER.RGB1_CURRENT = "0b000111"; | 
 | defparam RGBA_DRIVER.RGB2_CURRENT = "0b000111"; | 
 |  | 
 |  | 
 | endmodule |