25-Comp-A2 Digital Systems Design · Undated paper
Nivaar worked solution (AI-drafted; not reviewed by a licensed engineer)
17-Comp-A2, Digital Systems Design — National Exams, May 2019. Closed-book, 3 hours; six 20-mark questions, FIVE constitute a complete exam (all six answered below as a complete study resource).
Reference texts: Mano & Ciletti, Digital Design, 6th ed. — VHDL concepts, multiplexer-based realization, Boolean-algebra/K-map minimization, synchronous counter design, and memory/interfacing, covering Questions 1–5; Patterson & Hennessy, Computer Organization and Design, 6th ed. — interrupt-driven I/O, covering Question 6.
Question text not reproduced: the examination questions are © Engineers and Geoscientists BC. Open the official past paper (linked at the top of this page) to read the question, then follow the worked solution below.
Find. The single best answer, with reasoning, for each of the ten 2-mark sub-questions on VHDL/digital-design terminology.
1.1 — Answer: C. RTL stands for Register Transfer Level — a design abstraction that describes a circuit as data moving between registers through combinational logic, one clock transfer at a time. "Relational Timing Logic" (A) and "Relative Transfer Latches" (B) are invented distractors with no standard meaning.
1.2 — Answer: B. XOR is the "difference detector": $A\oplus B=1$ iff $A\ne B$. Its truth table is $0\oplus0=0,\ 0\oplus1=1,\ 1\oplus0=1,\ 1\oplus1=0$ — true precisely when the two inputs differ, so B is correct (A describes XNOR; C describes OR).
1.3 — Answer: C. Within an architecture body, a process is placed alongside concurrent signal assignments and component instantiations — it is itself one of the concurrent statements, evaluated whenever an event occurs on a signal in its sensitivity list. The statements written INSIDE a process (variable assignment, if/case, loop) are sequential; the process construct as a whole is not.
1.4 — Answer: C. "Sequential" is the direct opposite of "concurrent": happening in steps, one after the other, exactly how statements inside a VHDL process execute (top to bottom, in program order). (A) confuses it with speed; (B) describes repetition, not order.
1.5 — Answer: B. Syntax is a language's legal structure/grammar (how statements may be written); semantics is what those statements mean (their effect). Together they refer to grammar and meaning. (A) restates syntax alone under a different name; (C) is unrelated.
1.6 — Answer: B. Propagation delay $t_{pd}$ is the real, physical delay through combinational logic or a gate: the time between an input changing and the corresponding output settling to its new value. It is unrelated to flip-flop initialization (A) and is not the clock period (C, which is instead bounded below by the sum of propagation delays around the slowest path).
1.7 — Answer: B. A process's sensitivity list names the signals whose events re-trigger it — for a combinational process this must be every signal the process READS, i.e. process inputs. Including outputs (C) is unnecessary (an output only changes as a RESULT of the process running, so listing it as a trigger risks an artificial or incorrect re-evaluation) and would not match standard practice.
1.8 — Answer: A. Concurrent statements do not execute "in the order written" (that is the defining property of sequential code, B) — each concurrent statement instead executes whenever an event occurs on a signal it depends on ("executing when triggered"), independent of its textual position in the architecture. (C) mistakes an ordinary event-driven trigger for a fixed timed delay.
1.9 — Answer: C. All three of signal assignment, loop, and variable assignment are sequential statements, valid only inside a process/subprogram. (A) and (B) each smuggle in a concurrent construct ("selected concurrent signal assignment" and "conditional concurrent signal assignment" respectively), so they are not lists of three purely sequential statements.
1.10 — Answer: A. A VHDL variable is updated instantly when its assignment statement executes, unlike a signal (which only takes its new value after a delta-cycle/simulation-delay). This immediate-update semantics is exactly what lets a variable be read back later in the same process invocation and see the value just assigned.
| Sub-part | Best answer |
|---|---|
| 1.1 RTL | C — Register Transfer Level |
| 1.2 XOR true when | B — inputs differ |
| 1.3 Process statement is | C — a concurrent statement |
| 1.4 "Sequential" means | C — steps, one after another |
| 1.5 Syntax & semantics | B — grammar and meaning |
| 1.6 Propagation delay | B — input-change-to-output-effect time |
| 1.7 Sensitivity list contains | B — process inputs |
| 1.8 Concurrent execution | A — executes when triggered |
| 1.9 Three sequential statements | C — signal assignment; loop; variable assignment |
| 1.10 Variables assigned | A — instantly |