Refactor KittCarPWM logic for improved LED direction handling and clean up Vivado project settings

This commit is contained in:
2025-03-21 17:47:28 +01:00
parent 038ea73291
commit f6c568b416
2 changed files with 16 additions and 18 deletions

View File

@@ -86,12 +86,13 @@ BEGIN
leds_sr <= (OTHERS => 0);
led_sig <= (OTHERS => '0');
counter := (OTHERS => '0');
up <= '1';
ELSIF rising_edge(clk) THEN
-- Kitt logic
IF leds_sr(TAIL_LENGTH - 1) = 15 THEN
-- Kitt logic: Update direction
IF leds_sr(TAIL_LENGTH - 1) = led'high THEN
up <= '0';
ELSIF leds_sr(TAIL_LENGTH - 1) = 0 THEN
ELSIF leds_sr(TAIL_LENGTH - 1) = led'low THEN
up <= '1';
END IF;
@@ -101,17 +102,17 @@ BEGIN
-- Calculate the number of periods
IF counter >= (MIN_KITT_CAR_STEP_NS * n_period) THEN
-- Shift the leds
IF up = '1' THEN
leds_sr <= (leds_sr(TAIL_LENGTH - 1) + 1) & leds_sr(TAIL_LENGTH - 2 DOWNTO 0);
ELSIF up = '0' THEN
leds_sr <= (leds_sr(TAIL_LENGTH - 1) - 1) & leds_sr(TAIL_LENGTH - 2 DOWNTO 0);
END IF;
-- Reset leg_sig
-- Reset led_sig
led_sig <= (OTHERS => '0');
-- Assign the leds
-- Shift the leds
IF up = '1' THEN
leds_sr <= (leds_sr(TAIL_LENGTH - 1) + 1) & leds_sr(TAIL_LENGTH - 1 DOWNTO 1);
ELSE
leds_sr <= (leds_sr(TAIL_LENGTH - 1) - 1) & leds_sr(TAIL_LENGTH - 1 DOWNTO 1);
END IF;
-- Assign the LEDs
FOR i IN 0 TO TAIL_LENGTH - 1 LOOP
led_sig(leds_sr(i)) <= leds_pwm(i);
END LOOP;