From 90cc0d5f097e58239d899b660d2358eda21f2fda Mon Sep 17 00:00:00 2001 From: Jtcavi Date: Mon, 19 Apr 2021 13:34:07 -0400 Subject: [PATCH 1/2] full flashing control display.vhd changes --- db/SCOMP.db_info | 2 +- display.vhd | 97 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 98 insertions(+), 1 deletion(-) diff --git a/db/SCOMP.db_info b/db/SCOMP.db_info index fc55551..f096091 100644 --- a/db/SCOMP.db_info +++ b/db/SCOMP.db_info @@ -1,3 +1,3 @@ Quartus_Version = Version 19.1.0 Build 670 09/22/2019 SJ Lite Edition Version_Index = 503488000 -Creation_Time = Mon Apr 12 06:25:43 2021 +Creation_Time = Wed Apr 14 15:21:25 2021 diff --git a/display.vhd b/display.vhd index b1ecdb3..717b88a 100644 --- a/display.vhd +++ b/display.vhd @@ -27,6 +27,7 @@ END Display; ARCHITECTURE a OF Display IS SIGNAL Counter : integer; + SIGNAL Tracker : integer; TYPE state_type is (zero, one, two, three, four, five, six, seven, eight, nine, ten); SIGNAL state : state_type; @@ -57,7 +58,15 @@ ARCHITECTURE a OF Display IS WHEN zero => IF Counter < 540 THEN state <= zero; + IF Tracker = 1 THEN + LED0 <= '1'; + Tracker <= 0; + ELSE + LED0<='0'; + Tracker <= 1; + END IF; ELSE + Tracker <= 0; state <= one; LED0<='1'; END IF; @@ -66,9 +75,18 @@ ARCHITECTURE a OF Display IS IF Counter < 540 THEN state <= zero; LED0<='0'; + ELSE IF Counter < 1080 THEN state <= one; + IF Tracker = 1 THEN + LED1 <= '1'; + Tracker <= 0; + ELSE + LED1<='0'; + Tracker <= 1; + END IF; ELSE + Tracker <= 0; state <= two; LED1<='1'; END IF; @@ -78,9 +96,18 @@ ARCHITECTURE a OF Display IS IF Counter < 1080 THEN state <= one; LED1<='0'; + ELSE IF Counter < 1620 THEN state <= two; + IF Tracker = 1 THEN + LED2 <= '1'; + Tracker <= 0; + ELSE + LED2<='0'; + Tracker <= 1; + END IF; ELSE + Tracker<= 0; state <= three; LED2<='1'; END IF; @@ -90,9 +117,18 @@ ARCHITECTURE a OF Display IS IF Counter < 1620 THEN state <= two; LED2<='0'; + ELSE IF Counter < 2160 THEN state <= three; + IF Tracker = 1 THEN + LED3 <= '1'; + Tracker <= 0; + ELSE + LED3<='0'; + Tracker <= 1; + END IF; ELSE + Tracker <= 0; state <= four; LED3<='1'; END IF; @@ -102,9 +138,18 @@ ARCHITECTURE a OF Display IS IF Counter < 2160 THEN state <= three; LED3<='0'; + ELSE IF Counter < 2700 THEN state <= four; + IF Tracker = 1 THEN + LED4 <= '1'; + Tracker <= 0; + ELSE + LED4<='0'; + Tracker <= 1; + END IF; ELSE + Tracker <= 0; state <= five; LED4<='1'; END IF; @@ -114,9 +159,18 @@ ARCHITECTURE a OF Display IS IF Counter < 2700 THEN state <= four; LED4<='0'; + ELSE IF Counter < 3240 THEN state <= five; + IF Tracker = 1 THEN + LED5 <= '1'; + Tracker <= 0; + ELSE + LED5<='0'; + Tracker <= 1; + END IF; ELSE + Tracker <= 0; state <= six; LED5<='1'; END IF; @@ -126,9 +180,18 @@ ARCHITECTURE a OF Display IS IF Counter < 3240 THEN state <= five; LED5<='0'; + ELSE IF Counter < 3780 THEN state <= six; + IF Tracker = 1 THEN + LED6 <= '1'; + Tracker <= 0; + ELSE + LED6<='0'; + Tracker <= 1; + END IF; ELSE + Tracker <= 0; state <= seven; LED6<='1'; END IF; @@ -138,9 +201,18 @@ ARCHITECTURE a OF Display IS IF Counter < 3780 THEN state <= six; LED6<='0'; + ELSE IF Counter < 4320 THEN state <= seven; + IF Tracker = 1 THEN + LED7<= '1'; + Tracker <= 0; + ELSE + LED7<='0'; + Tracker <= 1; + END IF; ELSE + Tracker <= 0; state <= eight; LED7<='1'; END IF; @@ -150,9 +222,18 @@ ARCHITECTURE a OF Display IS IF Counter < 4320 THEN state <= seven; LED7<='0'; + ELSE IF Counter < 4860 THEN state <= eight; + IF Tracker = 1 THEN + LED8<= '1'; + Tracker <= 0; + ELSE + LED8<='0'; + Tracker <= 1; + END IF; ELSE + Tracker <= 0; state <= nine; LED8<='1'; END IF; @@ -162,9 +243,18 @@ ARCHITECTURE a OF Display IS IF Counter < 5400 THEN state <= eight; LED8<='0'; + ELSE IF Counter < 5940 THEN state <= nine; + IF Tracker = 1 THEN + LED9<= '1'; + Tracker <= 0; + ELSE + LED9<='0'; + Tracker <= 1; + END IF; ELSE + Tracker <= 0; state <= ten; LED9<='1'; END IF; @@ -175,6 +265,13 @@ ARCHITECTURE a OF Display IS state <= nine; LED9<='0'; ELSE + IF Tracker = 1 THEN + LED9<= '1'; + Tracker <= 0; + ELSE + LED9<='0'; + Tracker <= 1; + END IF; state <= ten; END IF; WHEN OTHERs => From c288b1dc91824403eeb854b37725e3386f183c7a Mon Sep 17 00:00:00 2001 From: Jtcavi Date: Tue, 20 Apr 2021 14:43:00 -0400 Subject: [PATCH 2/2] slowed flashing to counteract flicker fusion --- display.vhd | 150 +++++++++++++++++++++++++++++----------------------- 1 file changed, 83 insertions(+), 67 deletions(-) diff --git a/display.vhd b/display.vhd index 717b88a..002de57 100644 --- a/display.vhd +++ b/display.vhd @@ -49,7 +49,8 @@ ARCHITECTURE a OF Display IS LED6 <= '0'; LED7 <= '0'; LED8 <= '0'; - LED9 <= '0'; + LED9 <= '0'; + Tracker <= 0; ELSIF RISING_EDGE(CLK) THEN @@ -58,12 +59,15 @@ ARCHITECTURE a OF Display IS WHEN zero => IF Counter < 540 THEN state <= zero; - IF Tracker = 1 THEN + Tracker <= Tracker + 1; + IF Tracker < 5000 THEN LED0 <= '1'; - Tracker <= 0; - ELSE + ELSE IF Tracker < 10000 THEN LED0<='0'; - Tracker <= 1; + END IF; + END IF; + IF Tracker > 10000 THEN + Tracker <= 0; END IF; ELSE Tracker <= 0; @@ -76,14 +80,15 @@ ARCHITECTURE a OF Display IS state <= zero; LED0<='0'; - ELSE IF Counter < 1080 THEN - state <= one; - IF Tracker = 1 THEN + Tracker <= Tracker + 1; + IF Tracker < 5000 THEN LED1 <= '1'; - Tracker <= 0; - ELSE + ELSE IF Tracker < 10000 THEN LED1<='0'; - Tracker <= 1; + END IF; + END IF; + IF Tracker > 10000 THEN + Tracker <= 0; END IF; ELSE Tracker <= 0; @@ -97,14 +102,15 @@ ARCHITECTURE a OF Display IS state <= one; LED1<='0'; - ELSE IF Counter < 1620 THEN - state <= two; - IF Tracker = 1 THEN - LED2 <= '1'; - Tracker <= 0; - ELSE + Tracker <= Tracker + 1; + IF Tracker < 5000 THEN + LED2<= '1'; + ELSE IF Tracker < 10000 THEN LED2<='0'; - Tracker <= 1; + END IF; + END IF; + IF Tracker > 10000 THEN + Tracker <= 0; END IF; ELSE Tracker<= 0; @@ -118,14 +124,15 @@ ARCHITECTURE a OF Display IS state <= two; LED2<='0'; - ELSE IF Counter < 2160 THEN - state <= three; - IF Tracker = 1 THEN + Tracker <= Tracker + 1; + IF Tracker < 5000 THEN LED3 <= '1'; - Tracker <= 0; - ELSE + ELSE IF Tracker < 10000 THEN LED3<='0'; - Tracker <= 1; + END IF; + END IF; + IF Tracker > 10000 THEN + Tracker <= 0; END IF; ELSE Tracker <= 0; @@ -139,14 +146,15 @@ ARCHITECTURE a OF Display IS state <= three; LED3<='0'; - ELSE IF Counter < 2700 THEN - state <= four; - IF Tracker = 1 THEN + Tracker <= Tracker + 1; + IF Tracker < 5000 THEN LED4 <= '1'; - Tracker <= 0; - ELSE + ELSE IF Tracker < 10000 THEN LED4<='0'; - Tracker <= 1; + END IF; + END IF; + IF Tracker > 10000 THEN + Tracker <= 0; END IF; ELSE Tracker <= 0; @@ -160,14 +168,15 @@ ARCHITECTURE a OF Display IS state <= four; LED4<='0'; - ELSE IF Counter < 3240 THEN - state <= five; - IF Tracker = 1 THEN + Tracker <= Tracker + 1; + IF Tracker < 5000 THEN LED5 <= '1'; - Tracker <= 0; - ELSE + ELSE IF Tracker < 10000 THEN LED5<='0'; - Tracker <= 1; + END IF; + END IF; + IF Tracker > 10000 THEN + Tracker <= 0; END IF; ELSE Tracker <= 0; @@ -181,14 +190,15 @@ ARCHITECTURE a OF Display IS state <= five; LED5<='0'; - ELSE IF Counter < 3780 THEN - state <= six; - IF Tracker = 1 THEN + Tracker <= Tracker + 1; + IF Tracker < 5000 THEN LED6 <= '1'; - Tracker <= 0; - ELSE + ELSE IF Tracker < 10000 THEN LED6<='0'; - Tracker <= 1; + END IF; + END IF; + IF Tracker > 10000 THEN + Tracker <= 0; END IF; ELSE Tracker <= 0; @@ -202,14 +212,15 @@ ARCHITECTURE a OF Display IS state <= six; LED6<='0'; - ELSE IF Counter < 4320 THEN - state <= seven; - IF Tracker = 1 THEN - LED7<= '1'; - Tracker <= 0; - ELSE + Tracker <= Tracker + 1; + IF Tracker < 5000 THEN + LED7 <= '1'; + ELSE IF Tracker < 10000 THEN LED7<='0'; - Tracker <= 1; + END IF; + END IF; + IF Tracker > 10000 THEN + Tracker <= 0; END IF; ELSE Tracker <= 0; @@ -223,14 +234,15 @@ ARCHITECTURE a OF Display IS state <= seven; LED7<='0'; - ELSE IF Counter < 4860 THEN - state <= eight; - IF Tracker = 1 THEN - LED8<= '1'; - Tracker <= 0; - ELSE + Tracker <= Tracker + 1; + IF Tracker < 5000 THEN + LED8 <= '1'; + ELSE IF Tracker < 10000 THEN LED8<='0'; - Tracker <= 1; + END IF; + END IF; + IF Tracker > 10000 THEN + Tracker <= 0; END IF; ELSE Tracker <= 0; @@ -244,14 +256,15 @@ ARCHITECTURE a OF Display IS state <= eight; LED8<='0'; - ELSE IF Counter < 5940 THEN - state <= nine; - IF Tracker = 1 THEN - LED9<= '1'; - Tracker <= 0; - ELSE + Tracker <= Tracker + 1; + IF Tracker < 5000 THEN + LED9 <= '1'; + ELSE IF Tracker < 10000 THEN LED9<='0'; - Tracker <= 1; + END IF; + END IF; + IF Tracker > 10000 THEN + Tracker <= 0; END IF; ELSE Tracker <= 0; @@ -265,11 +278,14 @@ ARCHITECTURE a OF Display IS state <= nine; LED9<='0'; ELSE - IF Tracker = 1 THEN - LED9<= '1'; - Tracker <= 0; - ELSE + Tracker <= Tracker + 1; + IF Tracker < 5000 THEN + LED9 <= '0'; + ELSE IF Tracker < 10000 THEN LED9<='0'; + END IF; + END IF; + IF Tracker > 10000 THEN Tracker <= 1; END IF; state <= ten;