ECE 412: Microprocessor Laboratory Lecture 1: Course Introduction Lecture 1 Outline • • • • Course Overview Administration Grading Equipment Lecture 1 Course Outline • Microprocessor Interfacing – Making processors talk to other devices • CPUs not so interesting if you can’t get data in or out – Making hardware talk to software • Key to the construction of systems that provide sophisticated functionalities and user interfaces • Design – Designing systems is something of an art, but there are techniques we can teach – Tools and standards make more a discipline Lecture 1 Lab: The Soul of the Course • Three machine problems and one design project – – – – MP1: VHDL, intro to the lab equipment MP2: Connecting hardware to Linux MP3: Video and the NTSC standard MP4: Design your own system, a.k.a. “The Project” • Teaming – MP1 is individual – Form teams for MP2 and MP3 – MP4 done as team, doesn’t have to be the same team as MP2, MP3 • Lab space: EL 231 – Privileged access, ends by May 14, and does allow students to have access over spring break Lecture 1 MP1 • Introduction to Field Programmable Gate Arrays – This laboratory assignment serves as an introduction to the Xilinx Field Programmable Gate Array (FPGA) design systems. – You will become familiar with XUP board that will be used as the platform for all future ECE 412 machine problems. – You will use Precision Synthesis to compile and optimize a hardware description written in VHDL and the Xilinx ISE to map, place, route, and download to the FPGA. Lecture 1 MP2 • Introduction to Hardware/Software CoDesign – This laboratory assignment provides a more detailed and involved approach at VHDL design than MP1. – It also introduces the concept of SoC (system on a chip) systems. – You will become familiar with the Xilinx EDK software tool designed for hardware/software codesign. – You will also have an opportunity to write a device driver under Linux for a custom piece of hardware. Lecture 1 MP3 • Image Capture Hardware – This laboratory assignment serves as an introduction to image capture and display hardware. – You will become familiar with the video hardware available to you on the XUP-attached Digilent VDEC which may prove useful in your design project. – This lab will teach you how to capture image data from an NTSC source in YUV format, convert it to RGB, and display it on a VGA monitor. Lecture 1 MP4 • Open-ended • Past projects – – – – – – – – – – – MP3 Player XUP-GUI Dance Dance Revolution Network Storage PAC-MAN MPEG2 Enc/Dec Network Packet Sniffing Message Hiding Duck Hunt Night vision … Lecture 1 Course Goals • Learn how to design systems that are buildable, verifiable, and maintainable – Abstraction – Interfaces – Testing • Be skilled at common implementation techniques – – – – VHDL, synthesis Design to standards Interrupts, memory-mapped I/O, device drivers Building hardware and software that can interact Lecture 1 People • Professor: Deming Chen 410 CSL, [dchen@illinois.edu], 244-3922 Office hour: 5-6pm, Tuesday or through email. • TA: Christine Chen, [chen150@illinois.edu], 333-7031 Office hours: decide now. Lecture 1 Text/Notes • O’Riley Linux Device Drivers Book – Free, available online at • http://www.xml.com/ldd/chapter/book/index.html • • • • VHDL references Notes/Datasheet PCMCIA Manuals Most of above available in the course web site – http://courses.ece.uiuc.edu/ece412/ – ECE copyroom can make hard copies if desired Lecture 1 Web Resources • Web site: http://courses.ece.uiuc.edu/ece412 – – – – Copies of handouts Lecture Slides Documentation Announcements: (although we will make the best effort, there is no guarantee that every announcement that is made in class will show up on the web.) • Web board – Forum for electronic announcements – Also good place for questions and discussions • Compass Lecture 1 Grading • Quizzes: 20% (10% each) • Class Participation (5%) • Labs: 75% – – – – MP1: 10% MP2: 15% MP3: 15% MP4: 35% • Proposal/Initial Report: 20% • Project Presentation: 20% • Impact (usefulness, novelty, complexity): 30% • Demo/Final Report: 30% • MP1-MP3 Grading – Demo: 25% – Functionality: 40% – Report: 35% Lecture 1 Bonus Days • Each of you get six bonus days – A bonus day is a no-questions-asked one-day extension that can be used on most assignments – Bonus days are individual, but you can’t turn in multiple versions of a team assignment on different days, and you can’t trade them – You can use multiple bonus days on the same thing – Weekends/holidays don’t count for the number of days of extension (Friday-Monday is one day extension) • Intended to cover illnesses, interview visits, just needing more time, etc. – Any requests for extensions beyond the bonus days should be for unusual circumstances, and will likely require some documentation. Lecture 1 Using Bonus Days • Web page has a bonus day form. Print it out, sign, and attach to the thing you’re turning in. • Everyone who’s using a bonus day on an assignment needs to sign the form • Penalty for being late beyond bonus days is 10% of the possible points/day, again counting only weekdays (spring break will count as weekdays) • Things you can’t use bonus days on: – – – – Quizzes Final project design documents Final project presentations Final project demo (because they shut off access to the lab) Lecture 1 Academic Honesty • You are allowed and encouraged to discuss assignments with other students in the class. Getting verbal advice/help from people who’ve already taken the course is also fine. • Any reference to assignments from previous terms is unacceptable • Any copying of non-trivial code is unacceptable – Non-trivial = more than a line or so – Includes reading someone else’s code and then going off to write your own. – Doesn’t apply to members of your team on team MPs (duh) • Giving/receiving help on a quiz is unacceptable • Penalties for academic dishonesty: – Zero on the assignment for the first occasion – Automatic failure of the course for repeat offenses Lecture 1 Team Projects • Work can be divided up between team members in any way that works for you • However, each team member will be required to demo the final checkpoint of each MP individually, and will get a separate demo grade – This will include questions about the entire design – Idea is that if you don’t know enough about the whole design to answer questions on it, you aren’t involved enough in the MP Lecture 1 Lab Equipment • Xilinx/Digilent XUP FPGA boards – Xilinx FPGA 2VP30 • Approx. 30K logic cells plus 2 embedded PowerPC microprocessors • More than 100 18-bit multipliers, 2Mb of block RAM • Run Linux on the PowerPCs, communicate with hardware that you build – Video, audio in/out – Ethernet, USB, CF – Modules on IO connectors for SRAM, etc. Lecture 1 Lecture 1 Next lecture • Design methodologies and FPGAs Lecture 1