Sunday, July 29, 2007
Low Power Design -- Lesson 1
Low power design is an increasingly common technique help reduce power dissipation in complex SOCs/ASIC. Power consumption on the chip is consumed both when the circuit is active (dynamic power) and also when it is inactive (static power).
+ Dynamic power is associated by switching of state on nets and cells. Dynamic power is absoluted by switching-frequency, load-capacitance and square of supply voltage:
P(dynamic) = a x F x C x sqr(Vdd)
+ Static power is referred to leakage power. Leakage power consumption is computed by sub-threshold leakage, gate leakage and reverse-bias junction BTBT leakage. For a particular technology process, the gate leakage and reverse-bias leakage are constant. therefore, the leakage current from Drain to Source (into a CMOS-transitor) is defined as static-power consumption:
P(static) = exp (-q x Vth / KT), Vth is threshold-voltage of gate.
So, I think we should learn how the gate delay are computed. The cell delay associated with a transistor is affected by the switching threshold voltage (Vth) and the supply voltage (Vdd):
Delay = Vdd x sqr [(Vdd - Vt), *a]
The high-speed cell delay is reference with lower threshold-voltage and higher supply-voltage. Now a day, when cmos process is scaling down to 65nm and below, the leakage consumption is 40 percent of total power-consumption.
Nokia 工模代码
2. 显示软件版本: *#0000# 第一行--软件版本;第二行--软件发布日期;第三行--手机型号
3. 显示通话时间: *#92702689#
4. 激活EFR模式:*3370# (全速增强型编码模式,可改善话音质量但会耗电)
5. 关闭EFR模式:#3370#
6. 激活HR模式: *4720# (半速模式,通话质量变低,但是大大延长电池使用时间,需要网络支持
7. 关闭HR模式:#4720#
8. 检查SIM卡自带的时钟是否可被关闭:*#724025625# 本来是 *#sim0clock# 之意
9. 手机电子钱包解密: #7370925538#
Use Google Linux repositories in Debian
First you need to edit /etc/apt/sources.list file
#emacs /etc/apt/sources.list
add the following line
# Google software repository
deb http://dl.google.com/linux/deb/ stable non-free
Save and exit the file
you must download the key and then use apt to install it and refresh your package indexes.
Run these commands as root:
#wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
Now you need to update the source list using the following command
#apt-get update
Install google applications now you can see the following command to install google picasa
#apt-get install picasa
Saturday, July 28, 2007
SynapticsTouchpad
grep Id /etc/X11/xorg.conf
If one of the lines is:
Identifier "Synaptics Touchpad"
then you have a Synaptics Touchpad.
In Dapper flight 7 (6.06) and Edgy (6.10) , synaptics touchpads seem to be misdetected as some kind of wacom device, so the scrollbar may not work. See - "Editing Your xorg.conf File to Include Synaptics Touchpad drivers" - for scrollbar support.
qsynaptics (or in KDE ksynaptics) is a GUI which allows you to configure your touchpad. At a terminal, enter:
sudo apt-get install qsynaptics
or:
sudo apt-get install ksynaptics
You may need to run qsynaptics -r each time you restart X. Go to System>Preferences>Sessions>Startup Programs> and add it.
Dapper: Editing Your xorg.conf File to Include Synaptics Touchpad
In order to get scrollbar support, you may need to edit your xorg.conf file. In a terminal, type: gksudo gedit /etc/X11/xorg.conf After the lines:
Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/input/mice"
Option "Protocol" "ExplorerPS/2"
Option "ZAxisMapping" "4 5"
Option "Emulate3Buttons" "true"
EndSection
add the following:
Section "InputDevice"
Identifier "Synaptics Touchpad"
Driver "synaptics"
Option "SendCoreEvents" "true"
Option "Device" "/dev/psaux"
Option "Protocol" "auto-dev"
Option "HorizScrollDelta" "0"
Option "SHMConfig" "on"
EndSection
there are also a bunch of lines about a wacom tablet, I have commented them out, I am not sure if that is a necessary step. -brallan
next, find the bit near the bottom where it says:
Section "ServerLayout"
Identifier "Default Layout"
Screen "Default Screen"
InputDevice "Generic Keyboard"
InputDevice "Configured Mouse"
InputDevice "stylus" "SendCoreEvents"
InputDevice "cursor" "SendCoreEvents"
InputDevice "eraser" "SendCoreEvents"
EndSection
and add the following line after the "Configured Mouse" line:
InputDevice "Synaptics Touchpad"
i also commented out the three lines about the wacom: "stylus", "cursor", and "eraser", but I am not sure if this is necessary. -brallan.
restart X:
Turning Synaptics Touchpads On/Off with a shortcut key
You may wish to turn the touchpad on or off so that it doesn't interfere with typing when using a USB or other mouse.
Use following steps:
Step 1
from a terminal, edit /etc/xorg.conf
gksudo gedit /etc/X11/xorg.conf
and look for the following section of code:
Section "InputDevice"
Identifier "Synaptics Touchpad"
Driver "synaptics"
Option "SendCoreEvents" "true"
Option "Device" "/dev/psaux"
Option "Protocol" "auto-dev"
Option "HorizScrollDelta" "0"
EndSection
and add one more Option at the End of the Section:
Option "SHMConfig" "on"
EndSection
If you are using an Alps-Touchpad, which you can find out by typing
cat /proc/bus/input/devices
your code section should look like this
Section "InputDevice"
Driver "synaptics"
Identifier "TouchPad"
Option "SendCoreEvents" "true"
Option "Device" "/dev/input/event2"
Option "Protocol" "event"
Option "SHMConfig" "on"
EndSection
You can define some parameters which influence the behaviour of your touchpad. These parameters are presented already in [WWW] https://wiki.ubuntu.com/SynapticsTouchpadWartyHowto?highlight=%28touchpad%29. You can check if your touchpad works correct and you have the correct parameters with
synclient -m l
If everything works fine, the position of your finger will be updated everytime you move it and based on this information you can set your parameters.
Step 2
Next we will create 3 files - a bash script to turn the touchpad on, one to turn it on, and a python script to use a single key combination for both. At a terminal, cd to /usr/local/bin and make a new file:
cd /usr/local/bin
gksudo gedit tpoff
and paste the following code in the file, save it and close it.
#!/bin/bash
#
synclient touchpadoff=1
again, make a new file:
gksudo gedit tpon
paste the following, save and close:
#!/bin/bash
#
synclient touchpadoff=0
once again, make a new file:
gksudo gedit touchpad.py
paste the following, save and close
#!/usr/bin/python
import os
import string
def ReadFile():
myfile = open('/tmp/synclient.tmp', 'rb')
for line in myfile:
TestString(line)
myfile.close()
def TestString(string):
for word in string.split():
if word == "TouchpadOff":
setting = string.split()
ChangeState(setting[2])
def ChangeState(current):
if current == "0":
os.system("synclient touchpadoff=1")
else:
os.system("synclient touchpadoff=0")
os.system("rm /tmp/synclient.tmp")
def Main():
ReadFile()
os.system("synclient -l > /tmp/synclient.tmp")
Main()
and finally, change the permissions of these three files:
sudo chmod 777 tpon tpoff touchpad.py
Step 3
Next, edit your sudoers files to allow you to execute both scripts without a password.
sudo visudo
and add this line
{user} ALL = NOPASSWD: /usr/local/bin/touchpad.py
where {user} is your user name
save (in nano hit
Step 4
Alternatively to setup bellow, you might use [WWW] gnome-keybindings(In depth instructions, 4.) or other desktop-dependent tool.
Next, install xbindkeys
sudo apt-get install xbindkeys
when it's done, install xbindkeys-config, the GUI for xbindkeys
sudo apt-get install xbindkeys-config
once each is installed, start both applications:
xbindkeys
and
xbindkeys-config
edit your file to the shortcut key you want. For example, to be able to switch the touchpad on/off by
Name: Touchpad On/Off Key: Control + F5 | m:0x4 + c:71 Action: /usr/local/bin/touchpad.py
then click apply & save & exit
Now that that is done, restart xbindkeys:
xbindkeys
You may need to restart X.
Remember that each time you restart X, you will need to run xbindkeys again in order for the shortcut to work. Go to System>Preferences>Sessions>Startup Programs> click add type xbindkeys then click ok.
Compressing VNC Connections over SSH (vncviewer -via)
You might remember a recent tutorial I did on securing VNC via SSH with the -via
option of vncviewer. Today I started looking into it more with one of
my students and we wanted to make the -via option use compression. By
default it just creates a basic tunnel with SSH and doesn’t let you get
much more specific. We figured out how to make it follow more specific
instructions!
update: the environment variable is valid in vncviewer version 4.1.2, but apparently not in Feisty’s current version, 3.3.7. Solution 1 applies to Ubuntu, Solution 2 does not apply to Ubuntu (successful on RHEL5 and most likely recent Fedora series)
Solution 1:
vncviewer will look to client-side configuration files for its
settings. You can create a ~/.ssh/config file for any of your ssh
connections and, which might look like this:
Host alias
HostName hostname
Compression yes
User username
…you get the idea. This will connect to the HostName value when you
“ssh alias”, using Compression and the User specified. You can use any
valid ssh value in this config (see man ssh). Using client-side
configuration like this can cut a long ssh configuration down to a much
shorter one. ie;
The vncviewer will look for this file when used in combination with the -via switch and use compression if set to on, as above. Test it with and without the Compression value and see if you find a difference in performance.
Solution 2:
vncviewer uses an environment variable to start an ssh connection. By default it looks like:
VNC_VIA_CMD=/usr/bin/ssh -f -L “$L”:”$H”:”$R” “$G” sleep 20
You can find this using one of the following:
env | grep VNC_VIA_CMD
or
strings /usr/bin/vncviewer | grep ssh
The second method of altering it’s connection settings are to update
this environment value and tell it to use Compression. This would be
done using the following:
export VNC_VIA_CMD=’/usr/bin/ssh -C -f -L “$L”:”$H”:”$R” “$G” sleep 20′
(that uses single quotes around the entire value and double quotes on the embedded values. This is important.)
So, if you do a lot of work with VNC I hope you’re using the -via
option for SSH tunneling. Now you can also compress your connection
for better performance on slower networks. What are your results
here? Do you notice much of a difference? I have only tested this on
a LAN so the speeds are fast in the first place. Anyone want to share
their results out over the public interweb?
Powered by ScribeFire.
Vim Tip of The Week : +[num] or +/{pat}
First let me start of by saying that if you haven’t yet taken the
plunge to use vi/vim you really should. This editor will take you to
levels of efficiency that you’ve only dreamed of, and probably beyond.
Seriously, take the time to teach yourself some vim tips.
You might want to read a few of my previous posts on vim.
How to pwn your text files with vim
..and for those that want something more, let’s talk a bit about the
+[num] and +/{pat} options when launching vim. These options will let
you begin editing on a certain line number (+[num]) or at an instance
of a certain pattern (+/{pat}). Let me show you a few examples.
If you’d like to begin editing a file on line 45 you could launch vim using a command such as:
vim file +45
If you’d like to begin editing at the last line in the file you could use +[num] without assigning a value:
vim file +
This option is really helpful for things such as trying to fix code
or fixing syntax errors in configuration files. If the log displays
the line number you could jump right to the line as you open the file.
…and you thought the :[num] option was convenient!
vim file +185, vim file +2, vim file +823, etc.. simple ways to begin editing at a certain point.
The +/{pat} option lets you begin editing at the first occurrence of
a certain pattern. This means instead of opening the file and
beginning your search function you can use the search as you open vim.
Some examples:
vim +/foo, vim +/bar, vim +/baz
You can use the :help search-pattern within vim to see available search patterns.
Anyway, I thought I would share this little tidbit of
vim-awesomeness today. Hopefully I can continue to do a vim tip of the
week. Would the faithful readers like that? Would you like more
advanced vim options? Simpler tutorials? Are you happy with gedit and
kate and don’t even want to bother? Let me know, I’ll do my best to
help.
Powered by ScribeFire.
Disabling the F10 Key (menu accelerators) in Gnome Terminal
To disable the F10 “feature” in gnome-terminal you have two options. I’ll outline both.
The first option is to open the gnome-terminal and select “Edit” from the File menu, and then select “Keyboard Shortcuts”.
Within the next window check the boxes for:
Disable all menu access keys (such as Alt-f to open File menu)
Disable menu shortcut key (F10 by default)
At this point the changes should be available and the F10 key should be unused by gnome-terminal.
For the second option, you’ll need to launch the gconf-editor. You can do this like so:
press ALT-F2. This will open the “Run Application” dialog box for gnome.
In the field provided type “gconf-editor” and hit ENTER.
Well then need to navigate our way to the following two addresses to change what the default value may be.
/apps/gnome-terminal/global/use_menu_accelerators
/apps/gnome-terminal/global/use_mnemonics
What these paths mean, if it isn’t clear, is to navigate on the
left-side column to “apps” > “gnome-terminal” > “global” and find
the check boxes for “use_menu_accelerators” and “use_mnemonics”.
In my testing you may need to uncheck both of them for the change to
work. The change should be immediate. The F10 key should now be
available for use in htop and other similar applications that try to
bind the F10 key but are unable because the focus is stolen by
gnome-terminal.
Powered by ScribeFire.
Vim Tip of the Week : SHIFT-K
Well
you asked for it. Last week I did the first vim tip of the week and it
looks like you all want more. I got another goodie today that you might
enjoy. How many of you know what SHIFT-K does in command mode? No,
don’t go look it up. Do you know right now? If not keep reading. If so,
I’m impressed.
Instead of just telling you what it does I want you to give it a try
for yourself (no better way to learn than to do, right?). Follow the
below instructions and see if you can figure out what it does. First
person to figure it out and comment with the answer wins!
Ready, Set, Go!
Open up a new file with vim:
vim file1
switch to insert mode (i,I,a,A,o,O, etc).
type a few linux commands into a new line (any command you want):
vim awk man aptitude
switch back to command mode (esc)
put your cursor on any of the commands and press SHIFT-K.
Pretty slick, particularly when trying to decipher shell scripts if
you’re unfamiliar with the commands, or reading documentation that
refers to related apps!
…so, what does it do? Enjoy.. and be back next week for another tip! Thanks Dax for pointing this out to me.
Powered by ScribeFire.
Friday, July 27, 2007
Convert .flv (Google Videos) to .mpg using ffmpeg
FFmpeg is a complete solution to record, convert and stream audio
and video. It includes libavcodec, the leading audio/video codec
library. FFmpeg is developed under Linux, but it can compiled under most operating systems, including Windows. In ubuntu This package contains the ffplay multimedia player,
the ffserver streaming server and the ffmpeg audio and video encoder.
They support most existing file formats (AVI, MPEG, OGG, Matroska, ASF,
…) and encoding formats (MPEG, DivX, MPEG4, AC3, DV, …).
ffmpeg Features
- ffmpeg is a command line tool to convert one video file format to
another. It also supports grabbing and encoding in real time from a TV
card.
- ffserver is an HTTP (RTSP is being developped) multimedia streaming
server for live broadcasts. Time shifting of live broadcast is also
supported.
- ffplay is a simple media player based on SDL and on the FFmpeg libraries.
- libavcodec is a library containing all the FFmpeg audio/video
encoders and decoders. Most codecs were developped from scratch to
ensure best performances and high code reusability.
- libavformat is a library containing parsers and generators for all common audio/video formats.
Install ffmpeg Ubuntu
sudo apt-get install ffmpeg
convert .flv to .mpg using ffmpeg
First you need to download your .flv file to a folder and you need
to Open a terminal window and go in to the .flv file folder and type
the following command
ffmpeg -i jokes.flv -ab 56 -ar 22050 -b 500 -s 320×240 jokes.mpg
jokes.flv is the file you want to convert, so the name must be the
same as the source file.You can name jokes.mpg whatever you want as
long as it has the .mpg extension.
-b bitrate: set the video bitrate in kbit/s (default = 200 kb/s)
-ab bitrate: set the audio bitrate in kbit/s (default = 64)
-ar sample rate: set the audio samplerate in Hz (default = 44100 Hz)
-s size: set frame size. The format is WxH (default 160×128 )
Powered by ScribeFire.
How to install TrueType fonts on your Ubuntu computer
and start using it in applications on your Ubuntu machine? Did you know
that you can and it’s not all that hard? Here’s how to get your system
to recognize new fonts for any user.
First you’ve got to find a font you want to install. Open up your
favorite search and look for true type fonts or .ttf files. I found a
font called “A Cut Above The Rest” which I downloaded on to my desktop.
Now, you’ve got to do a little terminal magic (Applications->
Accessories -> Terminal) to move this file into the right place and
regenerate your cache of fonts.
Once in your terminal, we’re going to head down to where Ubuntu keeps it’s fonts.
cd /usr/share/fonts/truetype
Let’s make a directory to store all of your downloaded fonts in. We’ll call it myfonts.
sudo mkdir myfonts
Now move into that directory.
cd myfonts
Okay, so you’re here and the font(s) you just downloaded are on your
desktop. What to do? Move them to this location like this:
sudo mv /home/USERNAME/Dekstop/*.ttf .
Replace USERNAME with your own. Grabbing any .ttf files
with a wildcard (*) makes it easy for you to download a bunch to your
desktop and then dump them into the right place.
Now that you’ve got your fonts where you want them, it’s time to tell Ubuntu that they’re here.
fc-cache -f -v ~/.font
You can now open any program that utilizes system fonts and access your new font. Let’s see how OO2 writer looks.
Powered by ScribeFire.
40+ Firefox Add-ons for High Speed Blogging
that make it excel. We’ve pulled together more than 40 add-ons for
Firefox that provide quick access to handy blogging tools. But whatever
you do, don’t install them all at once.
Blog Publishing
Blogger Bar - Search Blogger, “Blog This” function for any page you’re on.
Clipmarks - Clip any portion of a website to save, email or put on your blog.
Deepest Sender - Blog to multiple platforms from one window.
JustBlogIt - Just right click, and you’re blogging about the page you’re viewing.
LiveJournal Addons - Notifies you of friends updates, messages and more.
LiveJournal Hook - Gives you quick access to many LiveJournal commands and tags.
MySpace Blog Editor - Post directly from Firefox, drag and drop clips from sites.
Scribefire - A blog editor that integrates with your browser and allows you to drag and drop items from a web page into a blog post.
Twitterbar - Post to Twitter directly from the address bar.
WordPress.com Sidebar - Adds a quick access sidebar to get to your WordPress.com account.
Uploading Photos and Media
Fireflix - Sidebar extension to upload, browse, and manage your Flickr photos.
Firefox Companion for Kodak EasyShare Gallery - Upload photos directly to your Kodak EasyShare Gallery.
Firefox Universal Uploader - Universal program for uploading to sites such as Flickr, Picasa, YouTube, and Facebook.
FireFTP - An integrated FTP system that syncs and checks versions.
Flickr Sidebar - View the pictures in your account in a sidebar.
Fotofox - Select, tag, and upload images to popular sites such as Flickr.
ImageBot - Lets you upload photos to ImageShack or Photobucket.
OakFlickr4PFF - Allows uploading to your Flickr account.
Blog Tools
Adsense Notifier - Displays your current earnings from Google Adsense in the status bar.
Copy as HTML Link - Copies the address of a page to the clipboard as an HTML ready link.
Create short URLs - Right click an address, click wrapURL, and create a shortened URL for your use.
Dict - Highlight a word, right click it, select define and get a definition in a pop-up window.
DictionarySearch - Similar to Dict, but the result appears in a new tab.
FastDict - Add quick access to any number of dictionary sites to spruce up your blog entries.
ShrinkThisLink Link Shrinker - Use the ShrinkThisLink service without leaving the page.
Tiny.pl - Shortens an address via the tiny.pl service.
Blog Design, Customization and Development
ColorZilla - Get a color reading from any spot in your browser.
DT Whois - Adds a button for Domaintools.com whois service for the site you are currently viewing.
Firebug - Look under the hood of your favorite websites and take a peak at their code.
Greasemonkey - Allows you to run small java scripts to manipulate the way a page displays to you.
HTML Validator - Checks the validity of a page’s HTML and tells you the results in simple graphics.
IE Tab - Lets you view a webpage in an Internet Explorer tab without leaving Firefox.
iWEBTOOL Webmaster’s Toolbar - Allows you quick access to services and tools from iWEBTOOL.
JavaScript Debugger - In browser Java script debugging.
KGen - Allows you to see the strongest keywords for a given site.
LinkChecker - Checks the validity of all links on a given page.
Load Time Analyzer - Allows developers to measure how long a page takes to load.
MeasureIt - Draws out a ruler to get a pixel dimension of any element on a page.
MetaTags - Checks the meta information of a site and features an automated search engine submission tool.
RankQuest SEO Toolbar - Quick access to over 30 SEO tools.
SearchStatus - Keyword density analyser and checks backlinks.
SEOHAND - Tracks a site’s standings and creates graphs over time.
SEOQuake - Ever wonder why a page gets good search ranking? This will help you figure it out.
Web Developer - A highly regarded debugging tool for designers.
Powered by ScribeFire.
Wednesday, July 25, 2007
Launch-off-shift at-speed test
A comparision of broadside-transition-pattern and launch-off-shift techniques show the latter to be viable for testing a 90-nm wireless baseband device.Both launch-off-shift (LOS)
and broadside-transition-pattern techniques are finding use in the
at-speed test of devices fabricated in 130-nm processes and below. The
broadside-transition-pattern approach is most commonly used, but our
experiments in applying both techniques to the test of a wireless
baseband device show that LOS can provide advantages.
Learn more about scan technology. |
At-speed scan test serves applications for which static testing is not sufficient (Ref. 1).
The basic operation of at-speed scan testing involves loading the scan
chains at a slow clock rate and then applying two clock pulses at the
functional frequency (Figure 1). The first pulse
causes a transition to start propagating from a scan-cell. The second
pulse captures the scan cell value at the end of the path being tested.
Figure 1. At-speed scan |
If
the circuit is operational, then the transition will propagate to the
end of the path in time and the correct value will be captured.
Otherwise, if a delay causes a slow propagation, the transition from
launch to capture cell will be slow, an erroneous value will be
captured, and the defect will be detected.
The most popular at-speed scan pattern is the transition pattern (Ref. 2).
A potential fault of slow to rise (0 to 1) and slow to fall (1 to 0) is
modeled at every gate terminal within the design. Automatic
test-program generation (ATPG) tools target these fault sites and cause
a transition using any launch scan cell and capture results using any
downstream scan cell.
A fundamental problem with at-speed scan testing is how to apply
accurate clocking for the at-speed launch and capture pulses.
Traditional stuck-at scan patterns are static. Stuck-at clocking for
loading the scan chain and capturing results is often performed at
frequencies between 10 MHz and 40 MHz. At-speed scan testing can load
the scan chains with a clock frequency that is similar to the one used
for stuck-at tests, but the launch and capture pulses must be applied
at the functional frequency.
Supplying the at-speed clock for launch and capture from a tester
becomes more demanding as the desired frequency increases. A solution
of using some basic programmability around device internal phase-locked
loops (PLLs) provides a nice option (Ref. 3). Providing internal PLL control for at-speed test has become a common practice for at-speed scan testing (Refs. 4 and 5).
The most common technique for applying at-speed transition patterns
is referred to as a broadside or launch-from-capture pattern type (Ref. 6), as shown in Figure 2.
With this pattern type, the scan chain is loaded and then placed in
functional/capture mode by forcing scan_enable (SE) to 0. Sometimes, an
extra cycle is added to the test pattern that has no activity to ensure
that the scan_enable completely settles. Next, two pulses are generated
to launch and capture the transition.
Figure 2. With |
The
broadside pattern launches the transition in the functional mode of
operation, so it is likely to propagate transitions along paths that
are real functional paths. Often, the coverage report from broadside
pattern ATPG can be 10% lower than standard static stuck-at patterns.Launch-off-shift patterns
With LOS patterns (Figure 3),
the launch occurs during the last shift while loading the scan chain.
Next, the circuit is placed into functional/capture mode very quickly
so an at-speed functional clock can be pulsed.
ATPG is much easier with LOS
compared to broadside patterns. It is a simple ATPG activity to load
the starting value for a transition directly to the scan cell one shift
before the last and then load the transition value in the last shift.
Broadside patterns require ATPG to calculate the transition value
through the combinational logic, since it is in functional mode during
the launch pulse. In addition, LOS patterns usually report higher coverage than broadside patterns.
LOS reports
higher coverage and is easier for ATPG, so it results in fewer patterns
and faster ATPG run times compared to broadside patterns. So, why is
broadside transition test more popular than LOS patterns?
Figure 3. In a launch-off-shift transition pattern, the launch occurs during the last shift while loading the scan chain. |
patterns. The first is the difficulty to make the circuit change from
shift mode to functional/capture mode between the last shift and
functional clock pulse. If standard scan_enable architecture is used,
then the scan_enable must be routed as a clock. Furthermore, since
scan_enable goes to all sequential elements, it is a global clock and
must settle at the system clock frequency. One way to work around this
issue is to add pipelining logic throughout the device for scan_enable (Ref. 7).
Pipelining scan_enable adds additional test logic to the design, but
it removes the difficult task of treating scan_enable as a global
clock. As shown in Figure 4, the clock triggers a change within the local scan_enable.
The other common concern with LOS patterns is that they may test the circuit through paths that are not possible functionally. LOS patterns can shift in a transition that is impossible during normal circuit operation.
An important question to ask is how much of the additional coverage
beyond broadside patterns is due to nonfunctional logic? It’s possible
that testing nonfunctional logic during at-speed tests will falsely
report failures and result in yield loss (Ref. 8).
During the design process, many paths are determined to be either
false or multicycle paths. A standard Synopsys Design Constraints (SDC)
file lists false and multicycle paths such that special efforts are not
made for timing closure at these paths. Two types of false paths can
exist. Some false paths cannot be sensitized and are not possible
during functional operation (but may be possible during scan mode). The
other types of false paths are paths that are not intended to operate
at system frequencies. Multicycle paths require more than one
functional clock cycle to propagate.
Figure 4. Pipelining |
false and multicycle paths must be considered during at-speed scan
testing. Scan has the potential to directly load scan cells into a
circuit state that isn’t possible during functional operation. As a
result, false or multicycle paths may be activated during at-speed scan
testing. If the at-speed scan tests fail due to these paths, then
correctly functioning devices may be falsely discarded. The result
could be yield loss.
To avoid such loss, engineers have often tested for false and
multicycle paths during time-based simulation and test program tester
integration, and they have often performed these tasks manually.
Fortunately, automation has been added to ATPG tools so they can now
directly read standard SDC files and extract the timing-exception path
information (Ref. 9).
With this automation, if a test propagates a signal along a false or
multicycle path that is sensitized during ATPG, then the capture scan
cell will capture an unknown X value.
Metalink, a company that designs wireless and wireline broadband
communication chips, needed to develop an effective test strategy for
its WLANPlus 802.11n-draft-compliant wireless LAN technology, which is
optimized for the networked home entertainment environment. The
company’s WLANPlus family consists of the MtW8171 baseband device and
the MtW8151 RFIC. The MtW8171 baseband chip is manufactured at a 90-nm
low-power process and implements full at-speed scan-test capability.
For this device, at-speed scan was implemented using both LOS and broadside transition patterns.
To reduce the increased pattern count required to cover transition
faults, we implemented compression logic using Mentor Graphics Embedded
Deterministic Test technology. The bring-up of the scan program for
this chip took only two days from the chip arrival to the moment where
all bring-up patterns were up and running at-speed.
We performed experiments to compare the difference between broadside and LOS coverage. We generated the initial patterns by using procedures that define specific clock sequences that can be used.
Broadside Launch-off-shift Initial coverage 71.38% 78.57% With SDC 69.55% 72.88%
Table 1 shows the results of transition pattern generation. Initially, the LOS patterns reported 78.57% test coverage compared to 71.38% for broadside patterns. Thus, LOSTable 1. Comparison of broadside and launch-off-shift
appeared to test >7% more faults. Next, we considered false and
multicycle paths, since these paths are not intended to operate at
functional clock rates.
After accounting for false and multicycle paths (MCPs), the LOS and broadside coverages were reduced to 72.88% and 69.55%, respectively. Therefore, 5.69% of faults reported in the initial LOS
detection were false paths and MCPs. Similarly, 1.83% of broadside
detection was due to false paths and MCPs. Based on these results, we
concluded that a significant portion of the advantage in test coverage
with LOS patterns are due to false-path and MCP testing.
These results imply that when effective false and multicycle paths are considered for LOS patterns, the risk of overtesting is reduced. As a result, LOS
can be an attractive ATPG approach for at-speed test.
Pattern-generation time and pattern count can be significantly smaller
than broadside patterns with similar coverage. The combination of
pipelined scan_enable and false and multicycle path consideration solve
the most common concerns with LOS patterns. Broadside patterns should still be used to top-off coverage since LOS patterns will be unable to detect some faults.
Manufacturers are continuing to look for ways to improve the
effectiveness of at-speed scan testing. One approach, referred to as
“timing-aware” ATPG (Ref. 10),
targets small delay defects. It attempts to test each fault by
propagating the transition down as slow a path (smallest slack) as
possible. In this technique, the at-speed test pattern set is more
likely to detect small defects that could escape a normal transition
test set.
Another new approach to at-speed scan testing is to apply a series
of at-speed shifts just before the launch cycle. Such “BurstMode” ATPG (Ref. 11)
helps the at-speed clock pulses behave more like functional frequency
pulses. It lessens the drooping of the voltage supply caused by the
sudden pulsing of at-speed clocks for launch and capture during normal
transition tests. False and multicycle path handling should be
considered with both of these techniques to avoid the risk overtesting.
Meanwhile, techniques such as pipelined scan_enable make LOS
more feasible, allowing users to evaluate the trade-offs between the
two transition pattern types and determine which is the best solution
for them. Broadside patterns offer less logic insertion and less
nonfunctional path tests, while LOS patterns offer faster pattern generation and fewer patterns. The LOS
approach may also be desirable for companies that are interested in
detecting any type of defect, including those that are nonfunctional.
Fortunately, the common concern with overtesting can be alleviated by
ATPG tool handling of false and multicycle paths through SDC files that
are common in design flows.
Powered by ScribeFire.
爱上开源 细数我在Ubuntu下使用的软件
2. 窗口管理器.迄今为止,我使用时间最长的桌面环境是 GNOME.间或的使用过 KDE,虽然相比较而言K环境下有更多的很好的软件支持,但是我觉得G环境更简洁,更符合我的习惯,也许Kde4.0出来后我会试着去适应KDE吧,不过现在GNOME是我的首选!
3.办公套件.因为目前我还是名学生,所以使用这个的时候还不多.不过OpenOffice.org 这套软件我用就足够了.包括字处理、电子表、演示稿等组件,而且它是开源的.
4.图形处理.不是什么作图高手,但是我经常会用到 GIMP改一些图片.
5. 网络浏览.Firefox是我一直使用的浏览器,对于我来说FF已经不仅仅是一个浏览器这么简单了.它在我的电脑中就是一个伟大的终端,我喜欢它无与伦比的扩展功能. Opera 其实也是不错的,但是字体配置起来比较麻烦.但是我常用它来浏览手机网站,也就是WAP网站.可能它是Linux下唯一具有这种功能的浏览器了吧!还有IE6,我的电脑里也留着它,因为我需要网银.
6.媒体娱乐.最初听歌时,我用的是 XMMS,一个经典而古老的播放器.不过后来我喜欢上了Audacious了,小巧好用,我现在一直用着.至于看电影,当然就是 MPlayer了,装上解码器.它就是无所不能的.不过它基于QT的前端–SMPlayer是我现在最常用的.看网络电视,除了Gsopcast我别无选择!
7.输入法.小企鹅Fcitx是我一直使用的输入法,我感觉它比系统自带的Scim好很多.不过最近作者闹脾气说不再开发了.真遗憾!
8.游戏.我现在好少玩游戏,所以系统自带那几个游戏就被我给卸了.不过SuperTux和SuperTuxKart我偶尔是会玩一会的.
9.文本编辑器.我对文本编辑器没什么太高要求.所以短小精悍的Mousepad就成了我的首选.gedit我偶尔也会用用的!
10.FTP 工具.因为我经常上传删除东西到我的空间,所以FTP工具的使用频率相当的高.一般情况下 gFTP 和Firefox的扩展Fireftp就可以满足我的要求.不过有时候命令行的 lftp使用起来更高效些.
11.聊天.我非常之讨厌QQ,但是我朋友却不讨厌,所以我必须安装基于KDE的EVA来解决问题.不过Pidgin(原名Gaim)却是我最常用的.
13. 浏览图片.gThumb 和 F-Spot 是我经常用到的,相比较而言, F-Spot我更喜欢用!图片管理功能很强!
14.电子书阅读.PDF 用的是 KPDF,因为我在使用EVA的时候已经安装上了KDE环境,而且KPDF看起来更好用;CHM 用的是Firefox的一个扩展CHM Reader.
15.邮件收发.我没装邮件收发软件,因为我不需要.所以我的一切邮件都是在 Gmail 中进行处理.
16.文件管理.我使用的是 GNOME 默认的文件管理器 Nautilus.
17.终端程序.GNOME Terminal 和 Xterm .
18.RSS 阅读.Google Reader和哪吒就足够了!我不使用软件来阅读!
19.虚拟机.毫无疑问 VirtualBox 是一个很好的选择,我就用它!
20.笔记.Google Notebook,上网记录一些笔记,在Firefox下它真的是一个很不错的选择.
21.下载.Http:MultiGet和Firefox下的扩展DownTheAll我都经常用.但是axel才是我最喜欢用到的.BT :下载我是用Deluge和Monma,都是非常不错的,后一个是国人开发的,目前正在开发中.不过现在就已经很好用了!另外,aMule 也是一个很好的工具,但是我是不用驴子的,一直没这个习惯而已.
22.词典.星际译王,是非常不错的!
也许还有很多优秀的软件是我所不知道的,但是上面这些就是我使用的比较频繁的一些软件了.
如果你也是使用Linux‘的,那么我希望你也能将你使用的东西告诉我.大家也好互相交流交流!
Sunday, July 22, 2007
45 Free Software
GIMPshop 2.2.8
Picasa 2.7
Paint.NET 3.08
ColorPic 4.0
Magnifier 3.0
Easy Thumbnails 2.91
FastStone Photo Resizer 1.4
ImageDiff 1.0.1
IrfanView 4
FastStone Image Viewer 3.2
Alch Icon Suite 1.2
Inkscape 0.45
SmoothDraw NX
SPRAY vector generator 0.1
SMN v5.1 ParticleDraw
InsightPoint 3.2.5.2
Serif DrawPlus 4.0
Project Dogwaffle Free
AmitySource Userbar Generator
Terragen 0.9.43
uMark Lite 1.1
TouchArt Sampler 017
Synfig Studio 0.61.05
AnimPixels 1.1
UnFREEz 2.1
LOOXIS Faceworx 1
Bryce 5.5
Blender 2.44
Google SketchUp 6.0.277
3D Canvas 7.0.1.2
3D Box Shot Maker
Alibre Design Xpress 9.2 SP1
Flash Slide Show Maker Professional 4.31
LiveSwif Lite 2.1
Sothink SWF Catcher for IE
The Font Thing 0.8
FontHit Font Tools 0.2.5
FontRenamer 1.0
FontInfo 1.1
Digital Image Tool 1
Quick HTML Color Picker 1.0
LS Screen Capture 1.0.2
ScreenHunter 4
CutePDF Writer 2.6
Wednesday, July 18, 2007
What you need to know before your start a job
Salary
That phone call telling you you've got the job can be such a happy shock that you can't even remember what was said. But before you shout out "I'll take it!" make sure to inquire about the salary. This is something that you may have discussed in your interview. If not, it is important to hear what the amount is before your excitement gets the better of you. You may also want to find out whether you are paid weekly, bi-weekly, twice a month (not the same thing) or monthly (though this has become rare). Also ask if there is a holding period before your first pay. Many companies pay a cycle behind so you may have to work up to a month before your paycheques start rolling in.
Hours
When you are told your start date, inquire about the general office hours. Do they sound a little early or perhaps conflict with your child's day care schedule? Now is the time to see if your schedule has any wiggle room. You may be able to negotiate alternate hours, or the use of lieu time. Asking these questions will also help you determine your new company's policies towards tardiness or alternate work situations like tele-working.
Vacation
The standard starting vacation time is two weeks. But that doesn't mean that every company will offer that. Some may give more, others may offer only stat holidays and 4 per cent of your income in lieu of days off (this happens frequently with short-term contract workers). You may also ask how many years of service are expected before vacation hours are increased. It is important to know that when you take your holiday time is legally at the discretion of the employer. While many companies do try and accommodate employee preferences, they are not obligated to do so. You should ask about holiday black out periods during which you cannot take vacation like those often instituted at insurance or accounting firms.
Supervisor's Name
The person who interviews and hires you may not always be the person who will supervise you. This is especially true in larger companies that have HR departments or multiple managers doing the same job (a retail store chain for example). When you are hired it is a good idea to ask your supervisor's name so that you know who to look for on your first day. This is also a good time to ask how they would prefer to be addressed. While it is becoming the norm in many workplaces to address colleagues and employers by first name, it is not always the case. When in doubt always use the correct honorific (Mr. Ms. Dr. etc...) upon first meeting and continue to do so until you are invited to do otherwise.
Benefits
Does your company offer a health plan? Is it paid for by the company, the employees, or as a cost-share between the two? This is important to know because it can effect your paycheque significantly, depending on the plan and who is paying for it. Also find out if you can opt out of some or all of the plan, if you are already covered through a partner or other family member's plan. Before you run out and get that first massage, make sure you know when your benefits kick in. Some companies do not offer benefits until a probationary period is completed so you would be responsible for any medical expenses during your probation. It's also good to clarity if you are eligible for the benefits offered by your company. Some contract or part-time workers are offered a higher salary instead of the benefits packages given to full-time employees.
Work Environment
In your interview you may have had the chance to see some of your soon-to-be colleagues in action. Was the office buzzing with chatter? Did people have radios on their desks? Pictures of their families? If you are working outside or with machinery, was it very noisy? Did people have protective gear on? These are indicators of the kind of environment that you will be working in. If you didn't get the chance to see the area where you will be working, make sure to ask a few questions about the environment. It's important because your workday is made up of much more than just your work. To find out a little more about some typical workplace cultures read our article Company Culture: A Primer.
Dress
Does this office allow employees to wear jeans? Only on Fridays? Can you wear sneakers? Is a tie required? A hard hat? Are there restrictions on the size of your earrings or types of hair styles you can have? Find out in advance if accepting your job means saying goodbye to your tongue stud or requires the purchase of a three-piece suit. If you didn't get a sense of the dress code in your interview or aren't sure what "business casual" means, feel free to check. When in doubt, err on the side of formality but don't take it too far. Wearing jeans in a suited environment looks sloppy, but wearing a suit into a room full of khaki pants and flip flops is no better.
Unionized Workplace
You should have been told in your interview if your workplace is unionized (or found out through some company research). This does not always mean that the job you are taking will be part of the union . If you are a contract worker, someone who deals with confidential company information (the director's assistant for example) or someone who supervises even a few other staff you may fall outside the union. In most unionized workplaces membership in the union is mandatory for positions covered in the collective agreement. In these cases dues will be taken from your paycheque. If you are going to be joining a union, make sure you ask for a copy of the Collective Agreement so that you can familiarize yourself with the rights and responsibilities of your new position. Also make sure to find out who your union president and union stewards are. At this point you may also want to inquire when the current agreement will expire. Bargaining can be a heated business and if your new company has a history of union strikes, company lockouts, or long periods of work to rule, you may find yourself on the picket line sooner than later.
Initial Training
Most employers hope to provide new training to staff, but often employee shortages or deadlines mean new employees "hit the ground running" with very little preparation. Now is the time to ask about what training will be provided to you, and also what you may be able to do to prepare yourself before you arrive. These types of questions make you seem willing and eager, and also keep the idea of new staff training fresh in the employer's mind.
Probationary Requirements and Performance Reviews
Most new employees spend some time on "probation". This is a period of time that allows the employee to get comfortable in a new position and offers the employer a trial period in which they can weed out a bad fit. Theses periods can range from a few weeks to a year. Some companies withhold benefits and vacation days until an employee has passed the probationary period, while others allow full access from day one. This is an important question to ask. Companies that hold vacation or sick days may allow you some time off work if it is needed, but will not pay salary for the days that you miss. Sometimes it is necessary to take personal time, but it is best to avoid taking too much time away from work during your probationary period (even if you have your benefits and vacation). Remember, this is your chance to make an impression.
It may seem early to be asking about reviews when you haven't started yet, but this is a good question to ask for those who are being put on work probation. Knowing how they will be rating your performance can help ease your nerves while you are being put to the test. Will they give you a chance to make adjustments if they are unhappy with your work? How do they deal with unsatisfactory performance? What are they looking for in your on-the-job performance? The more you know, the better you can give them what they want. And get what you want.
Saturday, July 14, 2007
Useful Shell Shortcuts
!! - Full contents of previous command
!$ - Last arg of previous command
!^ - First argument of previous command
!:n - Argument by number
Sets
{a,b} - A set
Monday, July 9, 2007
Cadence的License Crack
所用工具:EFA LicGen 0.4b
Crack 步骤:
找到对应的feature。比如,我想用Cadence的Migrate这个工具,但是我现在没有License。首先第一步需要找到Migrate这个工具所对应的feature。我找feature有两种方法:第一,运行对应的命令,大部分情况下Cadence会报告缺少哪个feature;第二,在第一种方法行不通时,查找相应的manual,一般可找到相应的feature。我采用以上两种方法,目前还没有发现第三种情况。
修改packs目录下的Cadence Design Systems_71.src文件,按照以下格式加入新的一行(假设我采用以上方法找到的feature为Virtuoso_Layout_Migrate):
FEATURE Virtuoso_Layout_Migrate cdslmd 1000.0000 permanent uncounted 0 %h
利用LicGen.exe产生新的license。
将新产生的对应于FEATURE Virtuoso_Layout_Migrate cdslmd 1000.0000 permanent uncounted 0 %h的一行copy并附加到原来的License的后面。
恭喜你,你可以使用cadence的Migrate工具了!
对EFA LicGen 0.4b的进一步理解:
我所得到的EFA LicGen 0.4b包括两个文件licgen.dll、LicGen.exe和三个目录packs、Win9x、WinNT。毫无疑问,licgen.dll、 LicGen.exe这两个文件是非常重要的,我将它们理解为主程序。Win9x和WinNT这两个目录我不关注,因为我都是在solaris或者 Linux下使用EDA软件。Packs目录下包括三种类型的文件:.src,.lpd和.dll。.src和.lpd是一一对应的,比如: Cadence Design Systems_71.src需要和Cadence Design Systems_71.lpd一起协同工作。至于.dll文件,只有FPGACompilerII_3.6.dll、Synopsys.dll和 Synplicity.dll,其它的工具都没有对应的dll文件。难道Synopsys工具和其它EDA工具的加密机制不同?
可见,有了EFA LicGen 0.4b之后,关键就是需要.src和.lpd文件了,.src文件可以理解为一个feature行的样本,而关键中的关键就是.lpd文件了,.lpd文件是EFA发布的还是其它大牛发布的?