590 likes | 599 Views
Learn about digital logic and computer design, focusing on high-level design practices, MIPS CPU design, and project development like Atari 2600 games. Dive into topics such as hierarchy, modularity, and regularity in computer implementation.
E N D
COMP541 (160) Digital Logic and Computer Design Montek Singh Jan 12, 2010
Today’s Topics • Course description • What’s it about • Mechanics: grading, etc. • Material from Chapter 1 (self-study review) • What is digital logic? • Binary signaling • Number systems • Codes
What’s Course About? • Digitallogic, focusing on the design of computers • Stay mostly at a high level (i.e., above transistors) • Each person designs a MIPS CPU • and peripheral logic (VGA, joystick) • Project like an Atari 2600 game • High-level language • Modern design practices
Focus • Stay above transistor level • At most one class on transistors and VLSI • Expect you to know assembly language programming
More Than Just Architecture • Designing and implementing a computer is also about • Managing complexity (hierarchy, modularity, regularity). • Debugging • Testing and verifying
The Three -Y’s • Hierarchy • A system divided into modules and submodules • Modularity • Having well-defined functions and interfaces • Regularity • Encouraging uniformity, so modules can be easily reused
How Can We Do This? • Labs on Fridays • Use: Field Programmable Gate Arrays (FPGAs) • Chips with a lot of circuits • Tens of thousands to millions of transistors • Programmable • We write descriptions of the design • “programs” describing design • Tools translate to gates/wires • Download pattern/interconnection to chip • Sort of like burning music to a rewritable CD
We Will Use This Board What’s on it?
Schematic Diagram • Old fashioned way to describe logic • Still useful for documentation
Verilog /* * A 32-bit counter with only 4 bits of output. The idea is * to select which of the counter stages you want to pass on. * * Anselmo Lastra, November 2002 */ module cntr_32c(clk,res,out); input clk; input res; output [3:0] out; reg [31:0] count; always @ (posedge res or posedge clk) if(res) count <= 0; else count <= count + 1; assign out[3] = count[28]; assign out[2] = count[27]; assign out[1] = count[26]; assign out[0] = count[25]; endmodule
Xilinx Software • Use design tools from chip maker • Have full version on lab PCs • Can install on your PC • Download from web
Class Web Pages • Will be up by Thursday’s class • Linked from my home pagehttp://www.cs.unc.edu/~montek • All lecture slides posted there • Will try to put them there before class • Schedule, homework, etc. posted there • Lab documents there also • See Blackboard for scores/grades
Textbook • Harris and Harris • Digital Design and Computer Architecture • Morgan Kaufmann, 2007 • Amazon has for $70 • Extra material on http://www.elsevierdirect.com/companion.jsp?ISBN=9780123704979
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
May Also Need • COMP411 textbook (Patterson/Hennessy) • For MIPS reference • How many have one? • I can copy the few necessary pages • Verilog reference • Book optional • Web pages – see course home page
Grading • Labs – 35% • Easier at first; later ones will count more • Homework – 20% • Two tests spaced evenly – 12.5% each • Final – 20% (optional for some)
Labs • Paced slowly at first • Familiarization with tools, simple combinational design, design a digital lock or similar • Peripheral – VGA, opt. keyboard interface or joystick • Build up computer components • Registers, ALU, decoder • Assemble a simple MIPS • Add more features, enough for simple computer • Final demo – game or similar
Lab Sections • No lab this Friday • You need a little more info to begin • Begin next week • Lab is in SN 027
Late Policy • Homework assignments and lab reports due by class • Labs due on Tuesday after the lab period • One class late, 10 points off • Two classes late, 25 points off • Not accepted later
What’s Your Background? • Course experience • Work, etc. • Which COMP120? • What’s your intent in taking class? • Questions?
Office Hours • Would like to wait a week to set • Send email if you want to meet in the mean time
Now Shift to Technology Should be review for all of you
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
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?
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 • Well, some mice
Numbers and Arithmetic • I’ve 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
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.
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
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
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
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
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
Today’s Topics • Introduction • Digital logic • Number systems • Arithmetic • Codes • Parity • The encoding is key • Standards are used to agree on encodings • Special purpose codes for particular uses
Homework • None, but… • I expect you to know number systems well and be able to do conversions and arithmetic • Decimal – Binary • Binary – Decimal • Decimal – Hex • Hex – Decimal • Can do some of the problems – 1.7 to 1.27 are all about conversion – if you think you need a refresher. Answers to odd numbered on book website.
Reading • Read Chapter 1
Next Class • Combinational Logic Basics Next Week: Lab preview • I’ll demo tools in class, probably Thursday
Lab Walkthrough • Let’s go see the lab
Backup Slides Should be all review material
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
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
Converting Binary to Decimal • Easy, just multiply digit by power of 2 • Just like a decimal number is represented • Example follows
Binary Decimal Example What is 10011100 in decimal? 128 + 0 + 0 + 16 + 8 + 4 + 0 + 0 = 156
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)
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
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
Hexadecimal • Strings of 0s and 1s too hard to write • Use base-16 or hexadecimal – 4 bits
Hexadecimal Why use base 16? • Letters to represent 10-15 • Power of 2 • Size of byte