2009年12月21日 星期一

KPI 用於 Analog Circuit Design

Analog circuit desing is not an art (or only partly is an art).

Majority day-to-day life is normal.  How come it is so difficult????

Because there is a big gap between device level and final result!!!

這是一個認知的間題

 

3 layers of knowledge in analog circuit

 

1. Device level

gm, rout, Cc

ft = gm/Cc;   gain = gm * rout

 

 

 

3. Result and 現象

Oscillator: oscillate or not and lock time, frequency detune

PLL: lock or not and lock time, spur, phase noise

ADC: ENOB, SNDR

 

Problem ==>

1. Need lot of simulation time: garbage in; garbage out!!

2. No physical insight!!!!

Because a big gap between device parameter and result/現象

 

Solution ==> Bridge the gap using KPI

What is KPI?

between device parameters and final results

only a few (2-4 parameters)

A clear coorelation between KPI and final results (best if there is a math formula)

2009年12月18日 星期五

CentOS 常用軟體

Use VMware to install CentOS 4.8 on windows 7

 

Step 1: Install vmware-toolbox on linux, not sure what this toolbox is useful??

network --> bridged mode, very slow?  How about hostonly and NAT?  What's the tradeoff?

Now using bridged mode and works OK.

Step 1.1: Make sure sshd service is on.  And install putty in PC so that can remote control.

 

Step 1a: If need to install the latest update, do “yum update”.  However, this may not be necessary

Step 1b: Some rpm package is NOT in the default repo (check /etc/yum.repo.d).  Need to install other rpm repo.

Some popular rpm repo:   rpmforge (e.g. mercurial),  Ruby.repo (Ruby jam)

==> rpmforge:  http://wiki.centos.org/AdditionalResources/Repositories/RPMForge

A.   Get http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm

B.   rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt   (get the GPG key)

C.   rpm -K rpmforge-release-0.5.2-2.el5.rf.*.rpm  (verify the package A)

D.  rpm -i rpmforge-release-0.5.2-2.el5.rf.*.rpm  --> check /etc/yum.repo.d/rpmforge.repo exist

 

Step 2: Install VNC server on linux, very useful tool.  However, need to change default twm to gnome-session.  Install ultravnc or realvnc on PC.

Very useful tool:  Host: need to change /etc/sysconfig/vncservers;  Make sure vncserver serivce is running, and editing .vnc/xstartup file.

Can use netstat -lt to check the tcp port status.

It's very useful that pc copy and paste can use directly on linux.   Just run "vncconfig" in linux and make sure all options are checked and keep the vncconfig ON ALL TIME then it works!!

(make sure the correct setting on unltravnc and realvnc are checked, too)

 

2a: Editing /etc/sysconfig/vncservers file to support multiple users, window size, and resolutions:

### /etc/sysconfig/vncservers #################

VNCSERVERS="1:root 2:alu 3:atd"
VNCSERVERARGS[1]="-geometry 800x600"
VNCSERVERARGS[2]="-geometry 1024x768 -depth 24"
VNCSERVERARGS[3]="-geometry 800x600"

###########################################

 

2b: Use putty login as root, alu, atdl; setting password for each users (very important!! Otherwise service won’t start).

2c:  Start the vnc service as root ==> service vncserver restart

2d: Check system->Administration->Security Level and Firewall->other ports –> add 5901,5902,5903

2d: use putty login, editing /home/alu/.vnc/xstartup as follows:

##################################################

centos4:~/.vnc> more xstartup

#!/bin/sh

# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc

#[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
#[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
#xsetroot -solid grey
#vncconfig -iconic &
#xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#twm &

##################################################

 

One annoying thing is hostname doesn't seem to work.  Need to use IP address for putty and vnc.  However, the IP address is dynamically changed because it's from DHCP server.  How to set hostname instead of using IP address? 

I did the following but not working.  How PC can know the hostname?

First, set the hostname, e.g. : centos5  system->administration->network->DNS->Hostname->centos5

This is corresponding to /etc/sysconfig/network: HOSTNAME

Then, system->administration->network->Devices->Edit->Hostname (optinal): –>centos5

This is corresponding to /etc/sysconfig/network-script/ifcfg-eth0: DHCP_HOSTNAME –> centos5

Then, system->administration->network->Devices->Edit->DNS:192.168.1.1

This is corresponding to /etc/resolv.conf

 

Step 3: Install Samba server on centos.  Samba server is not default on in centos.  Need to use yum install samba first. 

Please refer to vbird's suggestion for configuration.  Samba is based on NetBIOS, not tcp/ip.  It seems to avoid the hostname problem.

step 3(a):  yum install samba   --> rpm –qa  to check samba (samba-common, samba, samba-client)

step 3(b): edit /etc/samba/smb.conf

step 3(c): create smbpasswd:  touch smbpasswd

step 3(d): smbpasswd –a alu  (to add password to smbpasswd)

step 3(e): disable SELinux (important!!!)

step 3(f): /etc/rc.d/init.d/smb restart (start the samba server)

 

Step 4: start license server related service in /etc/rc.local

工具有關軟體

git: Check git during centos installation?  If not pre-installed:

$ rpm -Uvh http://mirror.webtatic.com/yum/centos/5/latest.rpm

$ yum install --enablerepo=webtatic git-all

kompare: Check KDE environment during centos installation.  Or install kompare inside of latest kde rpm.  Do

$ rpm -ivh ... kde ..

kdiff3: same as kompare, but more powerful.  Get the rpm directly from web.

xls2csv: convert Excel file into csv file.  There are two versions.  One is from catdoc; the other from CPAN (perl).   The one from CPAN is better in my opinion.

Ruby:  Check ruby during centos installation. rubygems: gnuplot, fastercsv

Python: Check python during centos installation.  However, the default python of centos or redhat is not the updated version (1.7.x).  For scientific computing or other applications, it is highly recommended to use EPD (Enthought) version instead.  The EPD version is installed in a separate directory, not replacing the default version.  Remember to set the path in .tcshrc or .bashrc to invoke the EPD version.

Perl: Check Perl during centos installation.

 

CAD 有關軟體

* ns3:  http://www.nsnam.org/wiki/index.php/Installation

 

* Composer: make sure to set /etc/sysconfig/vncservers ==> xwindows setting is 24-bits or pseudo 8-bit

* Sanwork: make sure to "yum install openmotif" to avoid the error of not finding libXm.so.3

 

* Vppsim (from MIT MIke Perrott)

do yum install gcc-c++ to install g++

 

To run license of Calibre, Adit,

1. start with host mode

2. Do /tools/ixl_cal_2007.4_21.19/change-hostid.sh  (in bsh, not tcsh) to change mac id

3. Do tcsh to change to tcsh

4. Do source CALIBRE.cshrc

5. Do clic_start to start mentor related license

 

 

Step 5: Script 和 Web 有關軟體

* Ruby: centos comes with default ruby.  However, it is helpful to install rubygems, gnuplot, and other gems.

Please refer to web how to install them.  yun install ruby ruby-gems (?) ruby-devel ..

* RoR (Ruby on Rail): same as above

* Apache2 and CGI.

yum install httpd ruby ruby-devel

* then need to use make install to install mod_ruby to enable the CGI working.  (same for Python and Perl).

* Use amrita for html output generation.  It's easy for viewing purpose

 

Step 6: Support ntfs file system (終於考定, another trouble maker is lib.so…)

CentOS doesn’t support NTFS file system natively, nor extFAT (Microsoft proprietary).   It is troublesome to read external hard drive (mostly NTFS).  Even though most USB drives are still using FAT that centos supports.  However, there is a 2G(?4G) limitation on FAT file size.  It makes things difficult to do external backup in step 7.

Therefore, it is important to make centos to support NTFS file system.  It is particularly troublesome for CentOS4.  Be careful on the following steps.  Reference: http://wiki.centos.org/TipsAndTricks/NTFS

It needs to include the fuse kernel module into kernel.  因此會需要 fuse, fuse-ntfs-3g, dkms, dkms-fuse.  CentOS5.4 and newer has included fuse kernel module.  Therefore, no need for dkms and dkms-fuse.

If you do:    yum install fuse fuse-ntfs-3g dkms dkms-fuse

It will not find anything because these rpm files are not centos default repo.  These rpm files are in rpmforge. 

(1) First, download rpmforge rpm-release from:

i386: http://packages.sw.be/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
x86_64: http://packages.sw.be/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm

(2) After that, run:   rpm –ivh rpmforge-release-xxx

(3)  yum install fuse fuse-ntfs-3g dkms dkms-fuse

(4) check if the running version matches with kernel

uname –r to check the current running kernel

rpm –qa | grep kernel\* | sort to check the kernel and kernel-devel

It may require to do: yum update kernel to make it match.   Make sure to reboot the machine.  Debug: https://www.centos.org/modules/newbb/viewtopic.php?topic_id=26488

(5) do /sbin/modprobe fuse   if there is no error message, it is ok.

(6) From chome VM page, check USB mass storage.  On PC, the external hard drive disappears.

(7) Do   mount –t ntfs-3g /dev/sda1 /export/usb   to mount external drive

(8) Do fdisk –l to check the parition

(9) Do umount /deve/sda1 to un-mount the external hard drive

 

Step 7: setup external backup

Follow bird’s suggestion:

追蹤者