From 049b9ad243ac6df93c6a88cb704b03b9a2f6bea7 Mon Sep 17 00:00:00 2001
From: Eric Kooistra <kooistra@astron.nl>
Date: Thu, 19 Aug 2021 11:37:28 +0200
Subject: [PATCH] Added IF example for avoiding latch.

---
 .../lofar2/doc/prestudy/vhdl_explained.txt    | 20 ++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

diff --git a/applications/lofar2/doc/prestudy/vhdl_explained.txt b/applications/lofar2/doc/prestudy/vhdl_explained.txt
index d8175f7f62..9140f745e4 100644
--- a/applications/lofar2/doc/prestudy/vhdl_explained.txt
+++ b/applications/lofar2/doc/prestudy/vhdl_explained.txt
@@ -10,7 +10,25 @@ IF x = 3 THEN
   y <= x;
 END IF;
 
-Maakt dat y een latch wordt. Je moet een ELSE y <= 0 END IF; toevoegen, of beginnen met een default assignment y <= 0; en dan de IF - END IF;
+Maakt dat y een latch wordt. Je moet een ELSE y <= 0 END IF; toevoegen, of beginnen met een default assignment y <= 0; en dan de IF - END IF; Dus:
+
+a <= 0
+IF b THEN
+  a<= 1
+END IF
+
+is hetzelfde als:
+
+IF b THEN
+  a<= 1
+ELSE
+  a <= 0
+END IF
+
+Mijn voorkeur is meestal om de eerste manier te gebruiken, omdat je dan daar al de default assignments doet.
+
+In process met IF of ELSIF rising_edge() moet juist geen ELSE, omdat je daar juist wel wilt dat er een flipflop gegenereerd zal worden. De synthesis compiler snapt dat.
+Een latch en een flipflop zin beide single bit geheugens, maar we moeten alleen flipflops maken.
 
   
 3) Complete sensitivity list
-- 
GitLab