暂停:
ctrl + z
%: bg ## 重新开始,并且把foreground job放到了background
开启 background jobs:
在command后端加 &
比如: du -sh * &
查看正在运行的background jobs:
%: jobs
把background jobs 推到 foreground:
%: fg
关掉background jobs:
%: kill %1 ## 数字是background job 的编号
2013年11月20日星期三
2013年11月18日星期一
VIM ---- Removing duplicate lines
STEP 1:
sort all lines
:sort u
STEP 2:
remove duplicates , the first leaves only the last line, the second leaves only the first line.
g/^\(.*\)$\n\1$/d g/\%(^\1$\n\)\@<=\(.*\)$/d
Breakdown of the second version:
g//d <-- Delete the lines matching the regexp \@<= <-- If the bit following matches, make sure the bit preceding this symbol directly precedes the match \(.*\)$ <-- Match the line into subst register 1 \%( ) <--- Group without placing in a subst register. ^\1$\n <--- Match subst register 1 followed by end of line and the new line between the 2 lines
2013年11月13日星期三
vim大小写转换
vim中大小写转化的命令是
gu或者gU
形象一点的解释就是小u意味着转为小写;大U意味着转为大写.
剩下的就是对这两个命令的限定(限定操作的行,字母,单词)等等
1、整篇文章大写转化为小写
打开文件后,无须进入命令行模式。键入:ggguG
打开文件后,无须进入命令行模式。键入:gggUG
将光标定位到想转换的行上,键入:1gU 从光标所在行 往下一行都进行小写到大写的转换
10gU,则进行11行小写到大写的转换
以此类推,就出现其他的大小写转换命令
gU0 :从光标所在位置到行首,都变为大写
gU$ :从光标所在位置到行尾,都变为大写
gUG :从光标所在位置到文章最后一个字符,都变为大写
gU1G :从光标所在位置到文章第一个字符,都变为大写
gu或者gU
形象一点的解释就是小u意味着转为小写;大U意味着转为大写.
剩下的就是对这两个命令的限定(限定操作的行,字母,单词)等等
1、整篇文章大写转化为小写
打开文件后,无须进入命令行模式。键入:ggguG
解释一下:ggguG分作三段gg gu G2、整篇文章小写转化为大写
gg=光标到文件第一个字符
gu=把选定范围全部小写
G=到文件结束
打开文件后,无须进入命令行模式。键入:gggUG
解释一下:gggUG分作三段gg gU G3、只转化某个单词
gg=光标到文件第一个字符
gU=把选定范围全部大写
G=到文件结束
guw 、gue4、转换几行的大小写
gUw、gUe
这样,光标后面的单词便会进行大小写转换
想转换5个单词的命令如下:
gu5w、gu5e
gU5w、gU5e
将光标定位到想转换的行上,键入:1gU 从光标所在行 往下一行都进行小写到大写的转换
10gU,则进行11行小写到大写的转换
以此类推,就出现其他的大小写转换命令
gU0 :从光标所在位置到行首,都变为大写
gU$ :从光标所在位置到行尾,都变为大写
gUG :从光标所在位置到文章最后一个字符,都变为大写
gU1G :从光标所在位置到文章第一个字符,都变为大写
2013年11月6日星期三
关于Clock Latency & Clock Uncertainty 略全面的解析(转自edaboard forum)
Let me try to clear up some of the confusing terminology - clear terminology allows for clear thinking.
The first important point is that there are two phases in the design of a clock signal. At first the clock is in "ideal mode" (e.g.: during RTL design, during synthesis and during placement). An "ideal" clock has no physical distribution tree, it just shows up magically on time at all the clock pins.
The second phase comes when clock tree synthesis (CTS) inserts an actual tree of buffers into the design that carries the clock signal from the clock source pin to the (thousands) of flip-flops that need to get it. CTS is done after placement and before routing. After CTS is finished, the clock is said to be in "propagated mode".
Now we can get to your questions:
What is clock latency? Clock latency is an ideal mode term. It refers to the delay that is specified to exist between the source of the clock signal and the flip-flop clock pin. This is a delay specified by the user - not a real, measured thing. (In fact there is 'clock source latency' and 'clock network latency' - the difference is not important for this discussion). When the clock is actually created, then that same delay is now referred to as the "insertion delay". Insertion delay (ID) is a real, measurable delay path through a tree of buffers. Sometimes the clock latency is interpreted as a desired target value for the insertion delay.
What is clock uncertainty? In ideal mode the clock signal can arrive at all clock pins simultaneously. But in fact, that perfection is not achievable. So, to anticipate the fact that the clock will arrive at different times at different clock pins, the "ideal mode" clock assumes a clock uncertainty. For example, a 1 ns clock with a 100 ps clock uncertainty means that the next clock tick will arrive in 1 ns plus or minus 50 ps.
A deeper question gets into *why* the clock does not always arrive exactly one clock period later. There are several possible reasons but I will list 3 major ones:
(a) The insertion delay to the launching flip-flop's clock pin is different than the insertion delay to the capturing flip-flop's clock pin (one paths through the clock tree can be longer than another path). This is called clock skew.
(b) The clock period is not constant. Some clock cycles are longer or shorter than others in a random fashion. This is called clock jitter.
(c) Even if the launching clock path and the capturing clock path are absolutely identical, their path delays can still be different because of on-chip variation. This is where the chip's delay properties vary across the die due to process variations or temperature variations or other reasons. This essentially increases the clock skew.
2013年10月31日星期四
GNU - Make
######
### Make if fucking complicated and tough, so let's skip this topic first
#####
在Linux环境下使用GNU 的make工具能够比较容易的构建一个属于你自己的工程,整个工程的编译只需要一个命令就可以完成编译、连接以至于最后的执行。不过这需要我们投入一些时间去完成一个或者多个称之为Makefile文件的编写。此文件正是make正常工作的基础。
所要完成的Makefile文件描述了整个工程的编译、连接等规则。其中包括:工程中的哪些源文件需要编译以及如何编译、需要创建那些库文件以及如何创建这些库文件、如何最后产生我们想要得可执行文件。尽管看起来可能是很复杂的事情,但是为工程编写Makefile的好处是能够使用一行命令来完成“自动化编译”,一旦提供一个(多个)正确的Makefile。编译整个工程你所要做的唯一的一件事就是在shell 提示符下输入make命令。整个工程完全自动编译,极大提高了效率。
#====================================================
Rule:
### Make if fucking complicated and tough, so let's skip this topic first
#####
在Linux环境下使用GNU 的make工具能够比较容易的构建一个属于你自己的工程,整个工程的编译只需要一个命令就可以完成编译、连接以至于最后的执行。不过这需要我们投入一些时间去完成一个或者多个称之为Makefile文件的编写。此文件正是make正常工作的基础。
所要完成的Makefile文件描述了整个工程的编译、连接等规则。其中包括:工程中的哪些源文件需要编译以及如何编译、需要创建那些库文件以及如何创建这些库文件、如何最后产生我们想要得可执行文件。尽管看起来可能是很复杂的事情,但是为工程编写Makefile的好处是能够使用一行命令来完成“自动化编译”,一旦提供一个(多个)正确的Makefile。编译整个工程你所要做的唯一的一件事就是在shell 提示符下输入make命令。整个工程完全自动编译,极大提高了效率。
#====================================================
Rule:
一个最简单的Makefile可能只包含 rule 描述。也可以包含除rule以外的部分。
rule 描述了 规则包含了目标和依赖的关系以及更新目标所要求的命令。
2013年10月14日星期一
UNIX 常用命令列表
Command | 説明 |
which clear reset passwd | 用来找某个指令所在位置,或者代表的意思 清屏,本质上是向下翻页 完全刷新终端屏幕,之前的终端信息将都会被清空 修改用户密码 |
pwd | 打印当前目录 |
cd | 改变目录 |
ls | 列出目录中文件 |
wildcards | 通配符 * 匹配任何数量的字符 通配符? 匹配单个字符 |
file | 打印出文件的类型 |
cat | 显示文件内容 |
pr | 显示文件内容 |
pg page | 一次一页的显示文件内容 |
more | 一次一页的显示文件内容 |
cp copy | 复制文件 |
chown | 修改文件所有者 |
chgrp | 修改文件所在组 |
chmod | 修改文件模式 权限 |
rm | 从系统中删除文件 |
mv | 重命名文件 |
mkdir | 创建目录 |
rmdir | 删除目录 |
grep | 模式匹配 |
egrep | 用于扩展正则表达式的grep命令 |
find | 用于定位文件或目录 |
>> | 追加到文件尾 |
> | 重定向 创建或覆盖文件 |
| | 管道符 用于将命令排列到一起 |
|| | 逻辑或 |
& | 在后台执行 |
&& | 逻辑与 |
date | 显示系统日期和时间 |
echo | 将字符串写入到标准输出 |
sleep | 执行过程在指定的秒数内中断 |
wc | 计算文件中的单词、行和字符的数目 |
head | 查看文件的开始 |
tail | 查看文件的结尾 |
diff | 比较两个文件 |
sdiff | 并排比较两个文件 |
spell | 拼写检查器 |
lp,lpr,enq,qprt | 打印文件 |
lpstat | 系统打印队列状态 |
enable | 启用或启动打印队列 |
disable | 禁用或停止打印队列 |
cal | 显示一个日历 |
who | 显示系统用户日期 |
w | 扩展的who |
whoami | 显示$LOGNAME或$USER环境变量 |
who am I | 显示登陆名 终端 登陆日期/时间以及登陆位置 |
f,finger | 关于登陆用户的信息,包括 users .plan .project |
talk | 两个用户进行一个分屏式对话 |
write | 在某个用户屏幕上显示一条信息 |
wall | 在所有用户屏幕上显示一条信息 |
rwall | 显示一体信息给远程主机上的所有用户 |
rsh remsh | 在远程主机上执行一个命令或进行登陆 |
df | 文件系统统计数字 |
ps | 关于当前正在运行的进程的信息 |
netstat | 显示网络状态 |
vmstat | 显示虚拟内存状态 |
iostat | 显示输入/输出状态 |
uname | 当前操作系统的名称、以及机器信息 |
sar | 系统活动报告 |
basename | 字符串参数的基本文件名 |
man | 显示联机参考手册 |
su | 切换到另一用户 |
cut | 写入所选择的字符 |
awk | 解析字符的编程语言 |
sed | 用于字符替换的编程语言 |
vi | 启动vi编辑器 |
emacs | 启动emacs编辑器 |
pwd | 显示当前目录 | pwd | |
ls | 列出指定目录下的文件,默认当前目录 | 命令格式:ls [-option] file | l 显示详细列表 a 显示所有文件,包含隐藏文件(以. 起头的文件名) R 显示文件及所有子目录 F 显示文件(后跟*)和目录(后跟/) d 与l选项合用,显示目录名而非其内容 |
cd | 改变当前路径 | cd [目录] 例如:cd .. 返回上级目录 cd 返回当前用户的根目录 | |
man | 查看其它命令的用法 | man 命令 | |
history | 显示当前窗口使用过的命令 | history | |
ailas | 显示当前用户下的命令的缩写 | alias | |
tar | 文件归档 | tar [option] [设备] [块] 文件 例如: tar cvf test.tar * 把当前目录所有文件归档 tar tvf test.tar 察看test.tar的信息 tar xvf test.tar 把归档文件test.tar释放 | r 附加方式归档;x 抽取文件;t 显示文件 u 附加方式归档,同时删除旧版文件;c 建立新档案文件 v 显示所处理的文件名;w 处理文件前,要求用户确认 f 文件名 使用指定文件名作为档案文件 bn 每次读写 n 块,缺省值为1,最大值为2 m 将新的文件修改时间设为获取时的时间 o 获取出来的文件以下达tar指令的UID和GID存储 |
cp | 文件拷贝 | cp [ -p ] [ -r ] 文件 1 [ 文件 2 ...] 目标 | i 在覆盖已存在文件时作提示,若回答 y 则覆盖,其他则中止 p 不仅拷贝文件内容,还有修改时间,存取模式,存取控制表, 但不拷贝UID 及 GID r 若文件名为目录,则拷贝目录下所有文件及子目录和它们的 文件,此时目标必须为目录 |
rm | 删除文件或者目录 | rm [-f] [-i] 文件... | f 删除文件时不作提示 r 递归地删除目录及其所有子目录 i 删除文件之前先作提示 |
df | df [-t] [文件系统] | df -t | |
ps | 显示进程信息 | ps [ -efl] [ -t 终端表] [ -u 用户表] [ -g 组表] | e 显示出现在正在运行的所有进程 f 显示所有信息; l 产生一个长列表 t 显示指定终端进程; u 显示指定用户进程 g 显示指定组进程 |
grep | 在指定文件中搜索指定信息 | grep [选项] 模式 [文件… 例如: grep ‘memset’ * 在所有文件中寻找包含memset的行 | b 显示块号; c 仅显示各指定文件中包含模式的总行数 i 模式中字母不区分大小写; h 不将包含模式的文件名显示在该行上 l 仅显示包含模式的文件名; n 显示模式所在行的行号 s 指定文件若不存在或不可读,不提示错误信息 v 显示所有不包含模式的行 |
vi | 创建、编辑文件 | vi 文件名 | 命令状态: k, j, h,l:上下左右; 0: 行首; $: 行尾 i,I :插入命令,i 在当前光标处插入 I 行首插 a,A:追加命令,a 在当前光标后追加,A 在行末追加 o,O:打开命令,o 在当前行下打开一行,O在当前行上插入一行 r,R :替换命令,r 替换当前光标处字符,R从光标处开始替换 数字s: 替换指定数量字符 x: 删除光标处字符; dd: 删除当前行;d0: 删除光标前半行 d$: 删除光标后半行; ctrl+f :后翻页; ctrl+b:前翻页 G : 文件尾; 数字G: 数字所指定行 /string 查找字符串; n 继续查找 ;N 反向继续查找 % 查找对应括号; u 取消上次操作 ex命令状态 : :set number 显示行号 :set smd 显示显示状态 :0 文件首 :1,5 copy 7 块拷贝 :1,5 del 块删除 :1,5 move 7 块移动 :1,$s/string1/string2/g 全文件查找string1并替换为string2 :wq! 存盘退出 :q 退出 :q ! 强制退出 |
ln | 设置文件的链接 | ln -s oldname newname 例如: ls -s /tmp/s16 S16 在当前目录创建了/tmp/s16的快捷方式 S16 | |
cc | C语言编译器 | cc [-g] –o 目标文件 源文件 |
LINUX磁盘管理--du & df & fdisk
df用于检查文件系统磁盘占用情况,du检查磁盘空间占用情况,而fdisk用于磁盘分区
1、磁盘空间
df即可
默认显示block
df -i 显示inode
df即可
默认显示block
df -i 显示inode
2、目录空间
du -s ;显示目录所占空间,-s summarize
du -ks ;以k为单位
du -ms ;以m为单位
du -s ;显示目录所占空间,-s summarize
du -ks ;以k为单位
du -ms ;以m为单位
du -msh ;人性化显示,human readable
du的英文原义为“disk usage”,含义为显示磁盘空间的使用情况。 功能:统计目录(或文件)所占磁盘空间的大小。
语法:du [选项] [Names…]
-s : 仅汇报当前目录总计的磁盘使用情况,而现实每一个文件
-k : 将大小除以1023字节,以KB为单位现实
-h : 大小以合适的单位现实,human readable
2013年10月13日星期日
congestion related command
1.
set_congestion_options
set_congestion_options
-max_util valueMT7505: 0.85
设置最大的std cell placement密度,防止placement密度太大导致congestion
2.
placer_max_cell_density_threshold
set placer_max_cell_density_threshold valueMT7505: 0.8
设一个整体design的std cell大概的密度值,来防止placement过于松散,也防止wire太长导致的timing边长
manual:
For placement that is not set up for congestion removal, you can control how densely cells
can be packed by using the placer_max_cell_density_threshold variable. You can set this variable to a value between 1 and the overall average utilization of your design.Choosing a value near one allows cells to clump together more densely. A value of one allows no gaps between cells. You should choose a high value for designs with low utilization to improve timing and a low value for congested designs to avoid cell clumping. By default, this variable is set to -1 to disable this feature.
3.set_app_var placer_reduce_high_density_regions true (MTK未用到)
用来优化channels & around macros这些容易出现congestion的high_density_regions 的std cell density。该variable的使用会增长place_opt, place_opt_feasibility, create_placement, refine_placement, psynopt -congestion, or clock_opt 这些 placement-based command 的 running time (比如 coarse placement runtime 会double)
2013年10月11日星期五
Synopsys基于UPF的低功耗设计流程
http://www.synopsys.com.cn/information/snug/2009/low-power-implementation-flow-based-ieee1801-upf
2.1 Synopsys基于UPF的低功耗设计流程
Synopsys公司提供了完整的基于UPF的低功耗综合、物理实现和验证流程,如图7所示。该流程始于寄存器传输级(RTL)描述的逻辑设计,加上一个独立的描述低功耗设计意图的UPF文件。RTL和UPF描述分别放在独立的文件中,使他们可以单独维护和修改。在这个示例中,最初的UPF文件标志为UPF。
Design Compiler读入RTL和初始UPF描述文件,基于它们综合出门级网表并产生一个更新了的UPF文件,这个Design Compiler输出的UPF文件在示例图中标志为UPF’。UPF’文件中包含了原始UPF文件的内容,并添加了综合时加入的对某些特殊cell(比如isolation cells、level shifters)的电源和地的连接关系。综合输出的门级网表已经被工具根据UPF的相应描述插入了一些低功耗所需的特殊电路单元,比如Level-Shifter,Isolation cells,Retention Register等。
IC Compiler读入综合输出的门级网表和UPF’描述文件,基于它们进行物理实现,包括:布局和布线以及电源关断特殊单元(Power-Gating cell)的插入、摆放和控制信号线的连接等步骤。输出一个新的门级网表,一个包括所有cell的电源和地连接关系的网表(俗称pg网表),以及一个更新了的UPF文件,标志为UPF’’。UPF’’文件包含了UPF’的内容,并添加了在物理实现阶段对低功耗电路结构的改变,比如添加了Power Switches(俗称MTCMOS)的连接关系。
这个flow中产生的数据可以用于做功能仿真(利用MVSIM、VCS),插入的低功耗单元的正确性检查(利用MVRC),形式验证(利用Formality),以及时序功耗检查(利用Prime Time-PX)和电压降(IR-Drop)(利用Prime Rail)的验证。
VCS仿真器和MVSIM多电压仿真工具可以在几个阶段用来做多电压的功能仿真:RTL级,综合后加入了低功耗相关器件(比如Isolation cell)的门级,以及PR之后加入了Power Switches的门级。MVRC用于检查多电压设计的规则是否正确实现,包括电源连接关系、电源结构、电源一致性等等,也适用于流程中的各个步骤。
Prime Time读入DC或ICC输出的门级网表以及对应的UPF文件。它利用UPF文件中的信息建立一个虚拟的电源网络模型,并将电压值反标到每个器件的电源端口,进行带电源信息的时序检查。
Prime Rail是基于带UPF信息的版图进行电压降以及电迁移的分析。如果设计中有电源关断单元,它还可以分析相关关断电路的瞬态电流以及动态的电压降分布。来帮助判断这些电源关断单元是否插入合理以及是否需要插入De-cap单元。
2.2 UPF所需要的特殊单元库
基于UPF的设计流程与传统流程相比,需要一些库中特殊单元的支持以及对传统的DB时序库添加电源地的信息。特殊单元包括Level-shifter,Isolation Cell,电源关断单元(Power Gating, 也叫MTCMOS),Retention-Register,以及Always-on单元。下面分别阐述:
2013年10月10日星期四
cat & sed & awk
cat:
cat a.tcl b.tcl : 在terminal显示 a.tcl & b.tcl 的内容
cat a.tcl > c.tcl: : 将a.tcl 内容覆盖到c.tcl
cat a.tcl >> c.tcl : 将 a.tcl 内容 append 到 c.tcl
cat a.tcl b.tcl : 在terminal显示 a.tcl & b.tcl 的内容
cat a.tcl > c.tcl: : 将a.tcl 内容覆盖到c.tcl
cat a.tcl >> c.tcl : 将 a.tcl 内容 append 到 c.tcl
2013年10月7日星期一
LEF & DEF & GDSII
LEF:
Definition:
A Library Exchange Format (LEF) file contains library information for a class of designs.
Library data includes layer, via, placement site type, and macro cell definitions.
Place and route tools do not require the full cell layout.
Another view of the standard cells called the abstract view needs to generated
The abstract view provides information like:
1. Cell name, site name, cell orientation
2. Cell PR boundary
3. Pin names, locations, pin metal layer, type and direction (input/output/input-output)
4. Also provides location of all metal track and vias in the layout (obstructions)
This information is passed to the P & R tool in the LEF format
LEF & Milkyway
When an outside source provides library cell information in LEF format, you need to read the data file into the Milkyway Environment and convert the data into a cell library in the Milkyway database.
DEF:
A Design Exchange Format (DEF) file contains the design-specific information of a circuit and
is a representation of the design at any point during the layout process.
The DEF format defines the elements of a specific design that are related to physical layout, including the placement and routing information, design netlist, and design constraints.
DEF conveys logical design data to place-and-route tools, and get physical design data from place-and-route tools.
Logical design data can include internal connectivity (represented by a netlist), grouping
information, and physical constraints. Physical data includes placement locations and
orientations, routing geometry data, and logical design changes for backannotation. Placeand-
route tools also can read physical design data, for example, to perform ECO changes.
GDSII:
The GDSII stream format is an industry-standard data exchange format for integrated circuit layout information. A GDSII file contains information about layers, wire paths, boundaries, structures, arrays, and text labels in the cell or chip layout.
A GDSII or OASIS stream file contains physical information about library cells, but it does not specify the cell types.
Each geometric object in a layout database has an associated layer number and data type number. In the GDSII and OASIS formats, the layer number and data type are integers ranging from 0 to 32767.
GDSII & Milkyway library
read_gds:
When an outside source provides library cell information in GDSII format, you need to read the data file into the Milkyway Environment and convert the data stream into a cell library in the Milkyway database.
In addition to the GDSII file, you typically provide a cell-type definition file and a layer mapping file to specify how to translate the data.
Definition:
A Library Exchange Format (LEF) file contains library information for a class of designs.
Library data includes layer, via, placement site type, and macro cell definitions.
Place and route tools do not require the full cell layout.
Another view of the standard cells called the abstract view needs to generated
The abstract view provides information like:
1. Cell name, site name, cell orientation
2. Cell PR boundary
3. Pin names, locations, pin metal layer, type and direction (input/output/input-output)
4. Also provides location of all metal track and vias in the layout (obstructions)
This information is passed to the P & R tool in the LEF format
LEF & Milkyway
When an outside source provides library cell information in LEF format, you need to read the data file into the Milkyway Environment and convert the data into a cell library in the Milkyway database.
DEF:
A Design Exchange Format (DEF) file contains the design-specific information of a circuit and
is a representation of the design at any point during the layout process.
The DEF format defines the elements of a specific design that are related to physical layout, including the placement and routing information, design netlist, and design constraints.
DEF conveys logical design data to place-and-route tools, and get physical design data from place-and-route tools.
Logical design data can include internal connectivity (represented by a netlist), grouping
information, and physical constraints. Physical data includes placement locations and
orientations, routing geometry data, and logical design changes for backannotation. Placeand-
route tools also can read physical design data, for example, to perform ECO changes.
GDSII:
The GDSII stream format is an industry-standard data exchange format for integrated circuit layout information. A GDSII file contains information about layers, wire paths, boundaries, structures, arrays, and text labels in the cell or chip layout.
A GDSII or OASIS stream file contains physical information about library cells, but it does not specify the cell types.
Each geometric object in a layout database has an associated layer number and data type number. In the GDSII and OASIS formats, the layer number and data type are integers ranging from 0 to 32767.
GDSII & Milkyway library
read_gds:
When an outside source provides library cell information in GDSII format, you need to read the data file into the Milkyway Environment and convert the data stream into a cell library in the Milkyway database.
In addition to the GDSII file, you typically provide a cell-type definition file and a layer mapping file to specify how to translate the data.
VIM_开多窗口&操作
:split 当前窗口一分为二,两个窗口显示相同内容。
:sp split的缩写形式
:new split 一个新文本窗口
:vsplit
以上所有命令都适用于打开垂直分割窗口,只要在前面加v(vetical)
: vsplit file_name 打开垂直窗口2并在其中打开file_name文件
或者用 : vsp file_name 结果一样,vsp为vsplit缩写
在多窗口情况下
:set diff 此命令用于比较两个文件
01
# 打开文件
02
:e ../myFile.pl
03
04
# 显示缓存
05
:
ls
06
07
# 切换
08
:b [filename]
09
:bn (n a number) move to nth buffer
10
:bp previous buffer
11
:bn next buffer
订阅:
博文 (Atom)