22-Elec-A4 Digital Systems and Computers · Undated paper
Question 6 of 6: 64 KB memory from 16K×4 modules (12 pts)
Nivaar worked solution (AI-drafted; not reviewed by a licensed engineer)
Notes on this paper
Paper format. National Exams, 22-Elec-A4 — Digital Systems and Computers. Closed book; non-programmable calculator permitted; 3 hours. Six questions, each worth 12 points; “any five constitute a complete paper,” so all six are solved here as a study resource.
Reference texts. M. M. Mano & M. D. Ciletti, Digital Design, 5th/6th ed. (Pearson) — K-maps, hazards, PLA/PAL, flip-flop excitation and synchronous-counter design (ch. 3–6); J. F. Wakerly, Digital Design: Principles and Practices (static hazards, memory decoding); Motorola/Freescale M68HC11 Reference Manual (address decoding and memory-mapped I/O for Q5). Boolean identities and the flip-flop excitation tables printed on the exam cover sheet are used throughout.
Note on the figures. Where a single wire or junction in the Q4 figure is genuinely ambiguous, the reading used is stated and the alternative is flagged in a check callout, per the exam’s own instruction to “submit a clear statement of any assumptions made.”
[Figure not reproduced: given figure. See the official exam paper or the cited reference text.]
Given figure (cleaned crop): the CPU with a 16-line address bus and 8-line data bus feeding column-paired memory modules (a 4th column is implied by the dashed continuation).
Check — module width. The prose specifies 16K×4 modules while every box in the drawing is lettered “16K×8.” The drawn topology settles it: modules are paired two-per-column sharing one $\overline{CS}$, which is width expansion and is only meaningful for ×4 parts (one nibble each). We therefore solve to the prose (16K×4); the box legend is a typo in the printed figure, per the exam’s “state any assumptions” rubric.
Given. An 8-bit CPU, 16-line address bus $A_{15}\!-\!A_0$, 8-line data bus $D_7\!-\!D_0$, and 16K×4 modules ($2^{14}=16\,384$ locations, 4 data bits each). Find. Bus/line assignments, the $\overline{CS}$ decode logic, and each module’s address range.
Approach. A 64 KB, 8-bit space needs $64\text{K}/16\text{K}=4$ banks (depth) each $8/4=2$ modules wide $\Rightarrow 8$ modules. Bits $A_{13}\!-\!A_0$ address a bank internally; $A_{15},A_{14}$ select the bank via a 2:4 decoder.
(a) Line assignments. Each 16K×4 module: address pins $A_{13}\!-\!A_0$ (14 lines, the “$A$” blanks $=13\ldots0$); data pins split by column — the top module carries $D_7\!-\!D_4$ and the bottom module $D_3\!-\!D_0$ (the “$D$” blanks). Address-bus width $=16$, data-bus width $=8$.
(b) Chip-select logic. Feed $A_{15}$ (MSB) and $A_{14}$ into a 2:4 decoder with active-low outputs; each output drives the shared $\overline{CS}$ of both modules in one column: $$\overline{CS_0}=\overline{\overline{A_{15}}\,\overline{A_{14}}},\quad \overline{CS_1}=\overline{\overline{A_{15}}\,A_{14}},\quad \overline{CS_2}=\overline{A_{15}\,\overline{A_{14}}},\quad \overline{CS_3}=\overline{A_{15}\,A_{14}}$$ $A_{15},A_{14}$ are decoded (not the internal address) because each bank spans exactly the 16 KB selected by the low 14 lines.
(c) Address ranges. With $A_{13}\!-\!A_0$ spanning 0–3FFFh inside each bank:
(a)–(c) Bank map: four banks of two 16K×4 modules (top nibble $D_7\!-\!D_4$, bottom nibble $D_3\!-\!D_0$), selected by $A_{15}A_{14}$.