









Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
An overview of sequential design in vhdl, focusing on processes, if-else statements, case statements, and loops. Processes are characterized by the presence of if, wait, case, and loop statements. A process must be installed in the main code and is executed every time a signal in the sensitivity list changes. The syntax of processes, if-else statements, and case statements, as well as the use of the null keyword and the others construct. Additionally, it covers the for and while loops, which are useful for instantiating code several times and repeating a loop until a condition is no longer met, respectively.
Typology: Slides
1 / 15
This page cannot be seen from the preview
Don't miss anything!










is executed every time a signal in the sensitivity list changes (or the condition related to WAIT is fulfilled).
[label:] Process (sensitivity list) [variable name type [range] [:=initial value;]] Begin (sequential code) End Process [label];
assignments; elsif condition then assignments; ………………….. ………
else assignments;
end if;
e.g. When OTHERS => NULL;
entity MUX is port (A, B, C, D: in BIT; CTRL: in BIT_VECTOR(0 to 1); Z: out BIT); end MUX; architecture MUX_BEHAVIOR of MUX is constant MUX_DELAY: TIME := 10 ns; begin PMUX: process (A, B, C, D, CTRL) variable TEMP: BIT; begin case CTRL is when "00" => TEMP := A: when "01" => TEMP := B; when "10" = > TEMP := C; when "11" => TEMP := D; end case ; Z <= TEMP after MUX_DELAY; end process PMUX; end MUX_BEHAVIOR;
[label:] WHILE condition LOOP
(sequential statements); end LOOP [label];
L3: loop
J:=J+21;
SUM := SUM* 10;
if (SUM > 100) then
exit L3; -- "exit;" also would have been sufficient.
end if;
end loop L3;