1 / 54

COMP541 Digital Logic and Computer Design

COMP541 Digital Logic and Computer Design. Montek Singh Aug 20, 2014. Today’s Topics. Course description What ’ s this course about? Syllabus Textbook and Resources Course Requirements Grading Policies and Honor Code Material from Chapter 1 (self-study review)

stacie
Download Presentation

COMP541 Digital Logic and Computer Design

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. COMP541 Digital Logic and Computer Design Montek Singh Aug 20, 2014

  2. Today’s Topics • Course description • What’s this course about? • Syllabus • Textbook and Resources • Course Requirements • Grading • Policies and Honor Code • Material from Chapter 1 (self-study review) • What is digital logic? • Binary signaling • Number systems • Codes

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

  4. Key Learning Objectives • At the end of this course, you should be able to: • convert a specification into an implementation • hierarchically decompose a complex spec • into simpler components • understand concurrency • develop concurrent system specs and implementations • test a given design for correctness • develop a test bench and performing simulation • 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) • implemented it on a development kit • programmed it in assembly to show a demo

  5. Who is this course for? • Advanced course in digital logic and computer design • follow-up to COMP 411 (Computer Organization) • 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: • computer architecture • chip design, or other engineering disciples • grad students looking to fill a gap in their coursework • anyone interested in learning how a digital system is implemented, in a hands-onmanner

  6. How will we build an entire computer? • Labs on Fridays • hands-on experience in designing digital circuits/systems • start small, but quickly go to higher levels of abstraction • We will write descriptions of design • instead of drawing circuit diagrams • descriptions look like “code” • high-level language • BEWARE: these are not software programs! • use compilation tools to convert into gates and wires • 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

  7. Development Kits • Each student will be loaned a kit for the semester • we have two types: 25 new and 25 old • both are more-than-sufficient for this course • a BIG thanks to NVIDIA for donating $$ for the Nexys 4 kits!! Nexys 3 Nexys 4

  8. How to represent circuits? • Schematic Diagram: drawing showing components and their interconnections • visual representation • good for documentation • good for small circuits • infeasible for large-scale systems • typically use hierarchical drawings

  9. How to represent circuits? • Hardware Description Language (HDL):textual description of the circuit • easier to type than to draw! • works well with automated design and test tools • we will use an HDL called Verilog /* A Mod 4 counter * Montek Singh, August 2014 */ module CounterMod4 (clock, reset, value); input clock; input reset; output reg[1:0] value = 0; always @(posedge clock) begin value <= reset ? 0 : (value + 1); end endmodule

  10. How to compile HDL to circuits? • Use design tools from the kit maker • Each student must install her/his own copy • Download from web (linked from course website) • Big download: ~6 GB (allow overnight) • Do it before Friday’s lab session • DO IT TONIGHT! • Platforms: • Windows 7/8 and Linux: best support • Mac OS X: use Bootcamp+ Windows • harder to make it work with Parallels

  11. Grading Criteria • Final grade will be based on: • Labs: 30% • Final Project: 20% • Homework: 15% • Quizzes: 10% • Midterm: 10% • Final Exam: 15% • Bonus Points: Up to 5 extra points for • extra credit work • stellar work on lab assignments/project • class participation • participation on Piazza discussion board

  12. Grading Criteria • Labs • about one every week • each builds upon the previous ones • important to follow sequence, and DO THEM ALL • culminates in the final project • Project • everyone builds a full microprocessor (basic MIPS from 411) • write assembly code to show a demo (“game”) • demo in front of whole class • and other faculty and students may be invited • Homework: 3-4 assignments • Quizzes: 3-4 • announced, ~15 min long • Exams: Midterm and Final

  13. Course Policies • Late Penalty • Labs: • electronic submissions • everyone gets 7 “free late days” • for each calendar day (or part of day) late, one free day is spent • once free days are exhausted, each late day results in 1 point taken out of the final total lab score (out of 100) • Homework: • due in hardcopy in class/lab session • one session late: 25% penalty • two sessions late: 50% penalty • after then, not accepted • no late work accepted once solutions are distributed

  14. Course Policies • Missed classes, quizzes, exam conflicts • classes: while attendance is not required, there is no substitute to coming to class if you want a good grade • labs: • many assignments require demos during lab sessions • I provide lots of tips/hints during the session • quizzes: since the dates are announced, please see me well in advance if you have a compelling reason for absence • exams: bring any conflicts to my attention ASAP

  15. Honor Code • Collaboration: • Allowed (even encouraged) to discuss basic concepts • use discussion board on Piazza • bonus points for active participation! • BUT: What you hand in must be your own • write solutions and code individually • Previous Semesters: • Cannot use homework solutions from previous offerings of this course • Cannot obtain lab assignments/code from students who have taken this course before • Not following these rules is a violation of honor code

  16. Textbook and Resources • Textbook: • be sure to get the 2nd ed. • 25% discount coupon on course website • Other resources: • website • homework, labs, lectures, etc. • Verilog language reference • on course website • personal laptop computer • Windows or Linux • Mac OS with Bootcamp • development kits (provided) Harris and Harris,
Digital Design and Computer Architecture, 2nd ed. (July 2012),
ISBN 9780123944245,
Morgan Kaufmann

  17. Overview of Textbook • Chapters 1-5: Digital logic • Combinational, sequential, basic circuits, HDL • Chapter 6: Architecture • Fast – review for those who took COMP 411 • Chapter 7: Microarchitectures • Chapters 8: Memories • Appendix A: Implementation • FPGAs, etc. • Order of topics: • Will change order from that in book • to try to get you working on interesting labs sooner

  18. Class Web Page Website: • http://comp541fall14.web.unc.edu • Linked from my home pagehttp://www.cs.unc.edu/~montek • All lecture slides, lab assignments posted there • Syllabus, homework, etc. posted there • See Sakai for scores/grades • Use Piazza for questions/discussions • TA and Office Hours • to be finalized by Friday, Aug 22

  19. Now Shift to Technology Should be a review for all of you

  20. Complexity and Abstraction • This course will span several abstraction levels • from transistors … • … to architecture • Mostly stay above transistor level • at most one class on transistors and chip layout • Mostly go “bottom up” • culminate in the design of a full computer in the labs

  21. The Three -Y’s • Hierarchy • divide a system into modules and submodules • keep dividing until pieces are easy to understand • Modularity • modules have well-defined functions and interfaces • so can be connected easily without surprises • Regularity • encouraging uniformity, so modules can be easily reused • so same set of basic building blocks can be used • e.g., a 16-bit adder uses the same basic blocks as an 8-bit adder

  22. Digital vs. Analog • Analog – infinite resolution • Like (old fashioned) radio dial • We’ll do very little with analog • VGA, maybe sound • Digital – a finite set of values • Like money • Can’t get smaller than cents • Typically also has maximum value

  23. Binary Signaling • Zero volts • FALSE or 0 • 5 or 3.3 (or 1.8 or 1.5) volts • TRUE or 1 • Modern chips down to 1V • Why not multilevel signaling?

  24. Discrete Data • Some data inherently discrete • Names (sets of letters) • Some quantized • Music recorded from microphone • Note that other examples like music from CD or electronic keyboard already quantized • Mouse movement is quantized

  25. Numbers and Arithmetic • I have put most of these slides at end • Backup in case you’ve forgotten • Review of binary numbers, Hexadecimal,Arithmetic • Let’s cover • Other codes, parity

  26. BCD • Binary Coded Decimal • Decimal digits stored in binary • Four bits/digit • Like hex, except stops at 9 • Example 931 is coded as 1001 0011 0001 • Remember: these are just encodings. Meanings are assigned by us.

  27. Other Codes Exist • Non positional • Example: Gray Code • Only one bit changes at a time • 000,001,011,010,110,111,101,100 • Why is this useful? • Actually there’s a family of Gray codes Ref: http://lib-www.lanl.gov/numerical/bookcpdf/c20-2.pdf

  28. Shaft Encoder

  29. Character Codes • From numbers to letters • ASCII • Stands for American Standard Code for Information Interchange • Only 7 bits defined • Unicode • You may make up your own code for the MIPS VGA

  30. ASCII table

  31. Even Parity • Sometimes high-order bit of ASCII coded to enable detection of errors • Even parity – set bit to make number of 1’s even • Examples A (01000001) with even parity is 01000001 C (01000011) with even parity is 11000011

  32. Odd Parity • Similar except make the number of 1’s odd • Examples A (01000001) with odd parity is 11000001 C (01000011) with odd parity is 01000011

  33. Error Detection • Note that parity detects only simple errors • One, three, etc. bits • More complex methods exist • Some that enable recovery of original info • Cost is more redundant bits

  34. Reading • Read Chapter 1

  35. Next Class • Combinational Logic Basics Next class: Friday, Aug 22 • I will demo tools • You should have your tools installed and bring your laptop

  36. Backup Slides Should be all review material

  37. Binary Numbers • Strings of binary digits (“bits”) • One bit can store a number from 0 to 1 • n bits can store numbers from 0 to 2n

  38. Binary – Powers of 2 • Positional representation • Each digit represents a power of 2 So 101 binary is 1 • 22 + 0 • 21 + 1 • 20 or 1 • 4 + 0 • 2 + 1 • 1 = 5

  39. Converting Binary to Decimal • Easy, just multiply digit by power of 2 • Just like a decimal number is represented • Example follows

  40. Binary  Decimal Example What is 10011100 in decimal? 128 + 0 + 0 + 16 + 8 + 4 + 0 + 0 = 156

  41. Decimal to Binary • A little more work than binary to decimal • Some examples • 3 = 2 + 1 = 11 (that’s 1•21 + 1•20) • 5 = 4 + 1 = 101 (that’s 1•22 + 0•21 + 1•20)

  42. Algorithm – Decimal to Binary • Find largest power-of-two smaller than decimal number • Make the appropriate binary digit a ‘1’ • Subtract the power of 2 from decimal • Do the same thing again

  43. Decimal  Binary Example • Convert 28 decimal to binary 32 is too large, so use 16 Binary  10000 Decimal  28 – 16 = 12 Next is 8 Binary  11000 Decimal  12 – 8 = 4 Next is 4 Binary  11100 Decimal  4 – 4 = 0

  44. Hexadecimal • Strings of 0s and 1s too hard to write • Use base-16 or hexadecimal – 4 bits

  45. Hexadecimal Why use base 16? • Letters to represent 10-15 • Power of 2 • Size of byte

  46. Hex to Binary 0010 1010 1100 • Convention – write 0x before number • Hex to Binary – just convert digits 0x2ac 0x2ac = 001010101100 No magic – remember hex digit = 4 bits

  47. Binary to Hex 5 3 7 b • Just convert groups of 4 bits 101001101111011 1011 0101  0011  0111  101001101111011 = 0x537b

  48. Hex to Decimal • Just multiply each hex digit by decimal value, and add the results. 0x2ac 2 • 256 + 10 • 16 + 12 • 1 = 684

  49. Decimal to Hex Analogous to decimal  binary. • Find largest power-of-16 smaller than decimal number • Divide by power-of-16. The integer result is hex digit. • The remainder is new decimal number. • Do the same thing again

  50. Decimal to Hex 684 0x2__ 684/256 = 2 684%256 = 172 0x2a_ 172/16 = 10 = a 0x2ac 172%16 = 12 = c

More Related