COMP541 Digital Logic and Computer Design Montek Singh Jan 11, 2016.

download COMP541 Digital Logic and Computer Design Montek Singh Jan 11, 2016.

If you can't read please download the document

description

What’s This Course About?  Digital Logic transistors (briefly) transistors (briefly) gates gates combinational circuits combinational circuits sequential circuits (state machines) sequential circuits (state machines)  Computer Design arithmetic circuits arithmetic circuits memories memories processor architecture processor architecture input and output input and output  Emphasis on high-level descriptions hardware description lang. (System Verilog) instead of circuits hardware description lang. (System Verilog) instead of circuits modern design practices modern design practices 3

Transcript of COMP541 Digital Logic and Computer Design Montek Singh Jan 11, 2016.

COMP541 Digital Logic and Computer Design Montek Singh Jan 11, 2016 Todays Topics Course description Whats this course about? Whats this course about? Syllabus Syllabus Textbook and Resources Course Requirements Grading Policies and Honor Code Material from Chapter 1 (self-study review) What is digital logic? What is digital logic? Binary signaling Binary signaling Number systems Number systems Codes Codes 2 Whats This Course About? Digital Logic transistors (briefly) transistors (briefly) gates gates combinational circuits combinational circuits sequential circuits (state machines) sequential circuits (state machines) Computer Design arithmetic circuits arithmetic circuits memories memories processor architecture processor architecture input and output input and output Emphasis on high-level descriptions hardware description lang. (System Verilog) instead of circuits hardware description lang. (System Verilog) instead of circuits modern design practices modern design practices 3 Key Learning Objectives At the end of this course, you should be able to: convert a specification into an implementation convert a specification into an implementation hierarchically decompose a complex spec hierarchically decompose a complex spec into simpler components understand concurrency understand concurrency develop concurrent system specs and implementations test a given design for correctness test a given design for correctness develop a test bench and performing simulation use state-of-the-art software tools for hardware design use state-of-the-art software tools for hardware design computer-aided-design (CAD) tools Each student will have: designed a full microprocessor (basic MIPS from COMP411) designed a full microprocessor (basic MIPS from COMP411) implemented it on a development kit implemented it on a development kit programmed it in assembly to show a demo programmed it in assembly to show a demo 4 Who is this course for? Advanced course in digital logic and computer design follow-up to COMP 411 (Computer Organization) follow-up to COMP 411 (Computer Organization) full-gate level implementation of MIPS processor from 411 full-gate level implementation of MIPS processor from 411 including memories and I/O Who should take this course? undergrads who want to pursue a career or further studies in the fields of: undergrads who want to pursue a career or further studies in the fields of: computer architecture chip design, or other engineering disciples grad students looking to fill a gap in their coursework grad students looking to fill a gap in their coursework anyone interested in learning how a digital system is implemented, in a hands-on manner anyone interested in learning how a digital system is implemented, in a hands-on manner 5 6 How will we build an entire computer? Labs on Fridays hands-on experience in designing digital circuits/systems hands-on experience in designing digital circuits/systems start small, but quickly go to higher levels of abstraction start small, but quickly go to higher levels of abstraction We will write descriptions of design instead of drawing circuit diagrams instead of drawing circuit diagrams descriptions look like code descriptions look like code high-level language BEWARE: these are not software programs! use compilation tools to convert into gates and wires use compilation tools to convert into gates and wires map (burn) these designs onto a reconfigurable chip map (burn) these designs onto a reconfigurable chip called Field Programmable Gate Array (FPGAs) chips with a lot of circuits (millions of transistors) sort of like burning music to a rewritable CD Development Kits Each student will be loaned a kit for the semester BIG thanks to NVIDIA and Xilinx for donating $$ for our Nexys 4 kits!! In the middle: reconfigurable chip In the middle: reconfigurable chip sort of a blank chip onto which you burn logic circuits first describe your design in a high-level language simulate design in software compile (synthesize) into gate-level circuit burn it onto this chip 7 Dev kit (Nexys 4) How to represent circuits? Schematic Diagram: drawing showing components and their interconnections visual representation visual representation good for documentation good for small circuits good for small circuits infeasible for large-scale systems infeasible for large-scale systems typically use hierarchical drawings 8 How to represent circuits? Hardware Description Language (HDL): textual description of the circuit easier to type than to draw! easier to type than to draw! works well with automated design and test tools works well with automated design and test tools we will use an HDL called Verilog we will use an HDL called Verilog 9 /* A Mod 4 counter */ module CounterMod4 (clock, reset, value); module CounterMod4 (clock, reset, value); input clock; input clock; input reset; input reset; output reg[1:0] value = 0; output reg[1:0] value = 0; clock) begin clock) begin value