====== EMT251 - Introduction to Integrated Circuit Design ====== This course is //Introduction to Integrated Circuit Design//, offered by the School of Microelectronics Engineering. ====== Academic Session 2009/2010 ====== This semester (semester 2), I will be handling this course for students in the Computer Engineering and Communication Engineering programs. ===== Announcement ===== [20100423] **Final Theoretical Session @ DKR4 on Saturday, 24/04/2010 from 10am to 12pm.** ===== Syllabus ===== **Week 00** * Course Briefing/Introduction * **No LAB Sessions** **Week 01** * Lecture: History of IC and Transistor Fundamentals * Lab: Circuit Netlist & Simulation (Mentor's Eldo & Xelga) **Week 02** * Lecture: More Netlist? Parameters? * Lab: Circuit Schematic (Mentor's Design Architect) **Week 03** * Lecture: Combinational Logic Design * Lab: Lab Test #1 (Circuit Netlist & Simulation) **Week 04** * Lecture: Combinational Logic Design (Part II) * Lab: Tutorial #1 (Circuit Netlist & Simulation) * Recap of last week's lab test: * analysis of output waveform * many students still have no idea of what we're doing - got the initial waveform, but don't know what to do * netlist format * the difference between circuit element & netlist command * troubleshooting & debugging * READ THE ERROR MESSAGE! * nodes & connectivity * connect the dots! * using pwl instead of pulse * is a cycle enough? why should we use pulse? when should we use pwl? **Week 05** * Lecture: Dynamic Logic (Maybe will add Sequential Logic Design) * Lab: Briefing & Start of Mini-Project (The TWO Tasks) * //**Note:** We will be moving our lab sessions to MKR3 starting this week! Yay!// * **Test 1 (Theory)**: Sunday, 7 February 2010 @ DKG2/3 @ 3PM! GOOD LUCK! **Week 06** * Lecture: CMOS Fabrication, Half-Semester Summary * Lab: Custom IC Layout (Using IC Station) **Week 07** * SEMESTER BREAK! **Week 08** * Lecture: The first 2-hour is cancelled (VC's keynote speech), so maybe a tutorial? * Lab: No official lab hour (free access) **Week 09** * Lecture: Layout (Stick diagrams, Design rules, Design area) * Lab: Mini Project **Week 10** * Lecture: Circuit Characterization * Lab: DRC & LVS **Week 11** * Lecture: Circuit Characterization (more) * Lab: Mini Project **Week 12** * Lecture: Performance Estimation * Lab: Lab Test #2 (DRC & LVS) **Week 13** * Lecture: Performance Estimation (more) + Tutorials * Lab: Mini Project **Week 14** * Lecture: Design Methodology + Tutorials * Lab: Viva for Mini Project ===== Timetable ===== //**20091130**// Okay... the timetable is out. Will publish it here once confirmed. //**20091207**// Final draft? //**20091215**// Final? //**20100104**// Really... Final One? Lecture Hours ^ Group ^ Location ^ Day ^ Time ^ | (3,4) | ''DKR2'' | ''WED'' | ''1000-1200'' | | (3,4) | ''DKR5'' | ''THU'' | ''1000-1100'' | Lab Hours ^ Group ^ Location ^ Day ^ Time ^ | (3) | ''MMIC'' | ''WED'' | ''1500-1700'' | | (4) | ''MMIC'' | ''FRI'' | ''0800-1000'' | | (4) | ''MMIC'' | ''FRI'' | ''1000-1200'' | | (3) | ''MMIC'' | ''FRI'' | ''1500-1700'' | Consultation Hours ^ Group ^ Location ^ Day ^ Time ^ | ($) | ''SME-B10'' | ''MON'' | ''1500-1600'' | | ($) | ''SME-B10'' | ''TUE'' | ''1000-1200'' | | ($) | ''SME-B10'' | ''TUE'' | ''1500-1600'' | | ($) | ''SME-B10'' | ''THU'' | ''1500-1600'' | //**Note**// The 2-hour slot on Tuesday morning is by appointment only. ===== Reference ===== - Weste, Neil and Harris, David. "//CMOS VLSI Design: A Circuits and Systems Perspective//". 3rd Edition, 2005. Addison Wesley. ISBN: 0-321-26977-2. ====== EMT251 @ UniMAP ====== Ramblings of an old school academics... at least that's how I look at myself (though I'm not THAT old :-D). **20091020 - Old School** I have been assigned to EMT251 for the coming semester. This course (//EMT251 - Introduction to IC Design//) is actually a course offered by School of Microelectronics. Looking at my background, it's only natural for me to get assigned as one of the lecturers for this course. However, I have since deviate my focus towards board level designs instead of IC level. So, I'm going to need to brush up my IC design knowledge - which I guess would be slightly difficult with the technology advances. For example, I used to work with 2μ and 1.2μ processes which was still using the good old lambda rule and where we only discuss about long channel effects 8-o We'll see how it goes... **20091023 - EMT251 Mini Project** Okay... it seems that no details on EMT251 will be coming anytime soon. We will be having a meeting on the content of this course. In the meantime, I just had an idea about a mini-project for this course: develop a simple program (can be any language, but C comes to mind) that reads a circuit netlist and then create a basic layout and routing for that circuit. Let's say we start with a circuit with around 100 logic gates? I haven't done this before myself but I'm excited about it already. Hope we can work something out to make this happen (although I don't see it ever going to happen) ^_^ **20091125 - Lab-oriented Engineering Education** I've been thinking... the original idea behind this lab-oriented (or lab-intensive) approach being implemented in UniMAP was having lab sessions that could strengthen the theoretical knowledge being taught during lectures. However, as I have come to realized, some courses (maybe all) tend to grade the students based on the practical lab-work (i.e. get marks for completion of assignment) rather than the understanding of the theory itself. So, if this is the case, we shouldn't be surprised if the grades during final exams do not reflect the coursework marks (mainly lab-work). This course has a similar trend... the assignment during lab hours are based on the usage of tools, rather than design knowledge/analysis. Obviously, the lab-work **will not** (most of the time) be what we planned for in the first place. So, I'm planning to suggest that we induce more theoretical-related component into the lab. Still waiting for that meeting... ====== Mentor Graphics Tools @MKR3 ====== **The thing to do:** I need to setup another IC design lab - going to EPF building in Kangar has become too much of a hassle (i.e. parking madness!). **The issue:** The Mentor Graphics software that we have is the old version 2005.x (icflow, ams, ixcal, etc.) - which requires either the old Red Hat 8 or RHEL 3. Due to its dependency on the old shared libraries (unlike the Xilinx Tools I've been using), it simply refuses to run on the newer Linux distro (e.g. I've tried it on Slackware 13.0, naturally). In addition to that, I've been having problems installing RHEL3 on the machine @MKR3 (HP Compaq DC7800). It lost both its USB mouse and keyboard when rebooting from installation. Note that these peripherals worked during installation. **The solution:** After finishing installation, boot using the rescue facility on the install CD (i.e. type ''linux rescue'' at boot prompt). Edit ''/etc/modules.conf'' and change: alias usb-controller usb-uhci alias usb-controller1 ehci-hcd to: alias usb-controller ehci-hcd alias usb-controller1 usb-uhci **More issue:** Now I have another problem. RHEL3 simply CANNOT detect the [[http://hardware4linux.info/component/34541/|ethernet controller]]. **The solution:** Download the [[http://e1000.sourceforge.net/|e1000e]] driver. I used the older version 0.2.9.5 - simply because I know it will work (based on a forum discussion that I came across... and the above link). **Miscellaneous Issues:** * how to let user automount usb? * as root, echo "/dev/sda1 /mnt/usbdrive vfat noauto,owner,user 0 0" >> /etc/fstab; mkdir /mnt/usbdrive * i made 4 entries (inc. sdb1,sdc1,sdd1) just in case * NIS login * refer to [[http://pconstantino.wordpress.com/2009/04/27/setting-up-nis-server-and-client-exercise/|this]] * somehow the ypserv package is not on the install dvd - got this from centos 3.4 mirror * dma is NOT enabled for SATA harddisk? (or is it a motherboard issue?) * append ''ide0=ata66'' to kernel? <= doesn't work! * try ''idebus=66'' next! **Mentor EDA Installation:** Installation of Mentor Graphics tools was straight forward. I installed everything in ''/opt/mentor'' rather than ''/EDA'' set by our vendor. So, I get to learn about setting up the environment variable a bit. **Things to note:** * make sure ''/etc/hosts'' is present and contains line for localhost - Mentor Graphics software somehow rely on this to be correct to run! ====== EMT251 @MKR3 ====== Finally, MKR3 is now officially capable of running Mentor Graphics EDA tools. In addition to that, I also managed to configure NIS server/client setup for domain login. The students are no longer tied-up to a single computer. However, I've just found out that I should have considered LDAP instead for better security features. Since this is a local subnet, I guess it should be safe for at least this semester. I'll try to find out about LDAP next. So, just for archiving purposes, here's how I setup the NIS domain login. This is done on RHEL3 UPD4 - other distributions/releases might do things slightly different. * To configure NIS server, check required packages * yp-tools, ypbind and ypserv (ypserv NOT on install DVD I created - had to get it from CentOS 3.4 mirror) * decide on a NIS domain name , and use a static IP address for the intended NIS server machine * Customize server settings * most of the default settings should be usable (may not be secure, but usable) * set domainname domainname * edit ''/var/yp/Makefile'' accordingly and run /usr/lib/yp/ypinit -m * somehow mail doesn't build - I simply disabled them in the Makefile (from all rules) * I didn't change '/etc/nsswitch.conf', ''/etc/ypserv.conf'' and ''securenets'' (using defaults) * Start the services * ypserv, yppasswdd, ypbind (ypxfrd is for slave servers) * I've tried this without ypbind running and it still works! so, I guess it's not really needed * To configure NIS client, check required packages * yp-tools and ypbind * Set NIS domain & client settings * set domainname domainname * run authconfig or 'Authentication' GUI interface * this is to setup NIS client (you need and here) * Start the service * ypbind Also, it's common for NIS setup to utilize NFS - no point of being able to login from any machine without having a 'portable' folder. It's relatively simple to setup NFS on RHEL3 UPD4 - other distributions/releases might do things slightly different. * on server machine, edit ''/etc/exports'' and add an entry /home 192.168.20.0/24(rw,sync) * create the same name for the mount point on clients - will make your life easier * start the nfs server (can be done from command line OR the 'services' GUI interface) * on client machine, edit ''/etc/fstab'' and add an entry :/home /home nfs user,rw 0 0 * naturally, we need to make sure /home directory is not filled and reserved for NFS mount * either restart the machine or as root, type mount /home * we can alternatively use autofs, but I thought this is much easier