System on a ChipSteven HallOverview • General purpose computer• 64-bit RISC processor• Memory: 256KiB RAM• Peripherals: keyboard and monitorCPU Block DiagramMicrosequencer• Increments an instruction counter normally• Changes value for branches and interrupts• 32 interrupts, all maskable (mask can also be altered by operations)Memory• 256 KiB (32K x 64) dual-port Block RAM• One port is read-only, for instruction fetch• The other port is R/W, for data storage• Load/store data storage interfaceSplit Datapaths• Two similar datapaths of different widths: word (64-bit) and byte (8-bit)• Nearly identical in structure and operation• Special operation pair (SPLIT/JOIN) for interpath communicationRegister FileWord• 32 registers (register 31 always reads 0)• Internal sign maintenance (65thbit)• Ports: 2 read, 1 write Byte• 32 registers (register 31 always reads 0)• Internal sign maintenance (9thbit)• Ports: 2 read, 2 write + 8 special R/WALUOperations supported (both word and byte):• Add, subtract, multiply (maybe divide/mod)• Shift (arithmetic or logical) and rotate• Bitwise and, or, xor, nand, nor, xnor• Two register operands or one and a literalSpecial ModulesStack• Word-width stack implementation• Interface through synchronous PUSH and POP operationsTimer• Settable word-width millisecond counter• Interface through synchronous set and get time operationsControl Logic• Implements every operation by setting the control signals to appropriate values• Has subordinate compare modules (word and byte) with compare flags• Operations include: (un)cond. branches, I/O operations, byte swap, interrupt callI/O Block DiagramInput/Output• Abstracts away peripheral operations• Port-mapped I/ODevices:• PS/2 keyboard (converted to ASCII)• 640x480 VGA text-mode displayDemonstrationPrograms (in order of complexity):• Echo keyboard input to display• Generate and display text (i.e. the time)• Manipulate keyboard input• Keep information in memory over multiple application runs• Text-based games• Miniature file system and
View Full Document