diff --git a/applications/lofar2/doc/prestudy/vhdl_explained.txt b/applications/lofar2/doc/prestudy/vhdl_explained.txt index d8175f7f62c5d9ccca751e0fd32cc5e760649c3d..9140f745e434b49e9a814b4830dc5f8eb27e751f 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