Digital system design principles. Logic circuits, logic synthesis. Registers, arithmetic circuits, counters, finite state machines, and programmable logic devices. Verilog hardware description language. Computer structure, machine language instruction execution and sequencing, addressing techniques. Processors, input/output techniques, and memory hierarchy. The laboratory work consists of exercises involving the design of logic circuits, and microprocessor systems. Modern computer-aided design tools and FPGA technology are used. Design aspects constitute a major portion of laboratory work.