EDN首页   博客首页

最新日志

发表于:2008-12-3 17:52:43
标签:full_case  parallel_case  

0

引导语句“//……”在synopsys DC中是个这么用途

设计者在写设计代码时,有时可能针对仿真写一些语句,这些语句可能是不为DC所接受,也不希望DC接受;设计者如果不对这些语句进行特殊说明,DC读入设计代码时就会产生语法错误。另一种情况是,设计者在写设计代码,有些设计代码是为专有的对象写的(不如公司内部),这些专有的设计代码可能不希望被综合。Synopsys提供了引导语句,设计者可以使用这些引导语句控制DC综合的对象。
在设计代码中,引导语句“// synopsys translate_off”后直到“// synopsys translate_on”之间的语句被DC忽略。下面的例子给出了这两个引导语句的用法。

Example
// synopsys translate_off
`ifdef ZTEIC
// synopsys_translate_on
`define VENDOR_ID 16`h0083
// synopsys_translate_off
`else
`define VENDOR_ID 16’h0036
`endif
// synopsys_translate_on
parallel_casefull_case引导格式
一般情况下,DC把case语句综合成选择器电路,但也可能把case语句综合成优先权译码电路。有时,优先权译码电路是不必要的,这是可以使用“// synopsys parallel_case”引导语句强迫DC把case语句综合成选择器电路。这种引导格式在case状态声明没有完全列举时应用较多。例3.2给出了这种引导格式。
Example
always @(cs_state)
begin
case(cs_state) // synopsys parallel_case
2’b00: next_state = 2’b01;
2’b01: next_state = 2’b00;
2’b10: next_state = 2’b10;
default: next_state = 2’b00;
endcase
end

在case语句中,如果列举的条件不完全,DC将生成不必要的锁存单元。在状态机描述中,可能没有一些状态,此时如果不加声明,DC将认为条件没有完全列举。在这种情况下,设计者可以使用full_case引导语句。见例3.3。
Example 3.2
always @(cs_state)
begin
case(cs_state) // synopsys full_case
2’b00: next_state = 2’b01;
2’b01: next_state = 2’b00;
2’b10: next_state = 2’b10;
endcase
end

系统分类: CPLD/FPGA   |    用户分类:    |    来源: 转贴

该用户于2008-12-3 17:53:05编辑过该文章

评论(0) | 阅读(35)
发表于:2008-11-10 20:56:45
标签:ic610  

0

ic610安装

前两天安装的还没有学,大体按下面高手写的文档做的
G!g,lE fjA0

IC610MMSIM61的安装:
WFV0zG b o0

首先如果你的linux系统没有安装其他的软件或者重要的程序,建议重装LINUX系统,注意要自定义安装,并且是完全安装(现在的硬盘空间绝对允许),这样在安装其他的软件的时候,出现错误的概率就会小很多(不管是ic610mmsim61,还是其他的eda软件)。我之前自己安装ic610的时候,由于系统是典型安装的,所以在安装ic610的时候出现了一些库不存在的错误提示,后来我把那个库的源程序从网上下载到了,但这个库却装不上去,因为它还需要其他的库支持。可以看出,如果是典型安装的系统,如果出现库不存在的情况,要想解决是多么的麻烦。所以,强烈建议重装系统,要完全安装。EDA中国门户网站.em5X'o1JZy)M

另外安装系统的时候最好分两个区,或更多的分区(两个即可),其中一个分区用于系统的安装,另一个分区安装ic610mmsim61(这个分区至少6G,因为ic610mmsim61安装后占用空间5.2G,如果linux系统空间足够,可以给这个分区8G的大小),这样以后重装linux系统,就不用删除已安装的软件。毕竟ic610的安装很麻烦,而且安装时间也是很长(我用了75min,加上mmsim61的安装,起码90min),能不重新安装就不重新安装。EDA中国门户网站4o"s5i Y1\:_5pvn

另外,选择系统也是很重要的,我本人使用的系统是red hat enterprise linux as3(即红帽企业版3)。系统是完全安装的,在安装ic610mmsim61时,没有出现任何错误以及警告,安装完成后的配置也完全ok,使用以来还没有出现任何异常情况。其他的系统,比如redhat9,红旗linux5(我同学在这个版本上也安装了ic610mmsim61),redhat企业版4等。不过据说redhat企业版3 4是比较好的支持eda软件的linux系统。系统选择的关键在于tar的版本,1.14以上(包括)的tar在解压ic610的的压缩包时,由于语法的不兼容会导致安装失败。
J8g1K z a0s0

在下面表示中,用到这些符号,进行说明。

$:当前用户的命令提示符

#:超级用户root的命令提示符

%:给命令加的注释(自己加的,便于命令的理解)
M)? f!K.^0

安装之前,请确定以下步骤:

1.linux默认可能没有uncompress命令,没关系,到/usr/bin目录下面看一下是否有compress命令,如果有,按以下方法建立一个:

$su                  %启用超级用户

password           %输入超级用户的密码

#ln -s /usr/bin/compress /bin/uncompress         %建立一个命令的链接,指向/usr/bin/compress

如果/usr/bin目录下没有compress命令,同样启用超级用户,用gunzip代替,方法如下:

#ln -s /bin/gunzip /bin/uncompress               %#表示你已经启用了超级用户,如果没有,安装上面的方法启用EDA中国门户网站s p(Q9l6u.e+M(f
 

2.确定tar的版本,命令如下

$:tar --version                    %查看tar的版本

如果tar的版本超过1.13,从网上找一个cadence ic5033的******包下载,里面有1.13版本的tar,或者到这个地址下载:http://www.edacn.net/bbs/thread-88656-1-1.htmlEDA中国门户网站o-X0S,k2M,BM N N

3.为了要使用cadence自带的帮助文档,可以用mozilla代替netscape,如下:

$:su

password:

#:ln -s /usr/bin/mozilla /usr/bin/netscape

#:su usrname

$:

后面要用到。EDA中国门户网站r'CXP APH i

现在开始安装过程:

准备工作:

先将下载的5cd-base解压,只需解压5base-cd,因为现有的******不支持打了补丁的版本。重命名为cd1,cd2,……检查一下,cd1里面是否有一个.zip的压缩文件,如果没有安装会失败(应该有的,当初自己安装的时候,以为这是个******包,就把这个包剪切出来了,结果后来安装的提示错误说找不到这个包)

如果同时有mmsim61,也是先解压,然后重命名为cd1cd2,……cd1里面也有这样一个包EDA中国门户网站F^6S8t%f4oe'B
 

假如你的系统有两个分区,另一个分区的挂载点是/media/linux,你要把ic610mmsim61安装到次目录下。首先更改/media/linux分区的权限,如下:

$:su

password:

#:chown usrname /media/linux          %usrname是你的用户名,根据自己的情况确定

#chmod 777 /media/linux

这样你就拥有/media/linux分区的读写权限了。

然后退出超级用户,并新建3个目录,如下:

#su usrname

$:cd /media/linux

$:mkdir ic610

$:mkdir mmsim61

$:mkdir installscape         %这个目录需要用来安装installscape

或者使用其他的方法新建3个目录,方法不限。这样/media/linux目录下面就多了3个目录了(ic610mmsim61,installscape
-M!MQ:cD/ATH y4A0

如果你只有一个根分区,那么可以这样做,假如你想在/home目录下新建一个目录用来安装以上两个软件,按照以下步骤:

#:mkdir /home/eda

#:chmod 777 /home/eda

#:chown usrname /home/eda

#:su usrname

$:mkdir ic610

$:mkdir mmsim61

$:mkdir installscape            %同上

同理,/home/eda目录下也多了3个目录。EDA中国门户网站:p-U.T.pH(RHq

现在假如我们是要在/media/linux分区安装这两个软件。并且你的两个源文件放在此目录下/home/usrnameic610的位置:/home/usrname/ic610;mmsim61的位置:/home/usrname/mmsim61

建议:首先安装ic610,后安装mmsim61,这样可以用ic610自带的installscape3.4安装mmsim61,我就是这样安装的。如果先安装mmsim61,然后用mmsim61自带的installscape安装ic610,能不能安装不能保证,没有试过。EDA中国门户网站QZe;YQ;Tv

现在开始ic610的安装进程:

$:cd /home/usrname/ic610

$:./setup.sh

1.询问是否安装了installscape,回答否(n

2.询问是否需要安装installscape,回答是(y)(要不然安装进程会立即结束,真是多此一问)

3.然后输入要将installscape安装到哪个目录:/media/linux/installscape

(这个installscape的版本是3.4,可以支持mmsim61的安装)

installscape安装完成后,弹出一个图形化的安装向导,如果系统不缺少任何库的话(所以说系统的版本很重要),接下来应该是这样的:

4.首先选择你的源程序的目录位置(这里刚开始安装就是指cd1的目录位置),按照前面的假定,这里我们选择的目录位置是:/home/usrname/ic610/cd1

5.然后询问是否有自动安装控制文件,没有,我们选择(上面)第一项,手动安装。

6.接着会询问你要将ic610安装到哪个目录,选择:/media/linux/ic610

7.然后确认要安装的软件包,我们全选。

8.接下来就是一个漫长的安装等待过程,期间需要输入另外4张盘的位置,前3张盘安装倒是挺快,后面两张盘安装极其缓慢。一般需要75min左右吧。

9.安装完成后,在安装目录/media/linux/ic610下新建一个名为OA的目录,用于接下来的配置。如下:

$:cd /media/linux/ic610

$:mkdir OA
n'U@A~0

10.进入/media/linux/installscape/iscape/bin目录,如下:

$:cd /media/linux/installscape/iscape/bin

$:./iscape                        %运行installscape

在弹出的图形界面中(安装mmsim61时还需要用到installscape),点击config,在出现要你配置OpenAccess(版本是2.2)之前,全部默认或选(n),直至配置OpenAccess,根据提示输入OpenAccess安装到哪个目录:/media/linux/ic610/OA        
/}/^C|n{ k0

注意这里是弹出窗口,提示OpenAccess要小心,不要错过
Z2`V S6RDXPZC(D Z0

现在OpenAccess配置完成(因为ic610只支持oa的数据格式,而不支持odba,所以OpenAccess一定要配置,否则cadence无法运行,我遇到过这样的情况)EDA中国门户网站 x#ie3W/k(J}3JeV

ic610的其他的配置到后面再说,先安装mmsim61

现在开始安装mmsim61

首先还是按照前面的方法运行installscape,然后点击install from archive

安装和ic610基本一样,如果ic610可以成功安装,没有出现任何库缺少的错误,那么mmsim61的安装肯定会很顺利的。

这里简单写一下:

安装源程序目录(起始):/home/usrname/mmsim61/cd1

依然是手动安装

安装到的目录是:/media/linux/mmsim61

期间需要2次输入另外两张盘的目录位置。   (我没有输入另外另外两张盘,但输入了ic610盘的位置,我是3.2giso文件包含了7cd)

安装完成后,进入mmsim61的安装目录,建立一个链接,如下:

$:cd /media/linux/mmsim61

$:ln -s tools.lnx86 tools

到后面要用到。
{%T!d:~*HI6v0

等到mmsim61以及ic610全部安装结束后,开始配置ic610

1.修改******

gedit或其他的文本编辑工具打开******,在头两行加入以下两句:

SERVER localhost ANY 5280   

DAEMON cdslmd $CDS_ROOT/tools/bin/cdslmd

注意:localhost是你的机器名,如不确定可以在终端输入uname -a即可看到

$:uname -a

一般我们的主机名都是这个localhost(只要你没有修改过)EDA中国门户网站-N1Fau:_h
 

保存******dat格式(******.dat),并把******复制到/media/linux/ic610/share/******目录下。EDA中国门户网站8}{4o\?

2./media/linux/ic610/tools/dfII/samples目录下的local文件夹拷贝至/media/linux/ic610/tools/dfII目录,并把local目录里的cdsinit文件名修改为.cdsinit
w+o |-|}(ZA0

3.环境变量的书写

在我们的环境变量中,有一个值是PATH,我们在终端中输入的任何命令都是从PATH变量的值中搜寻的,先看一下PATH的值是什么,如下:

$:echo $PATH

可以看到大概有这样一些值:/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin

实际上PATH的值就是我们经常用到的命令所在的目录,所以环境变量的书写就是一个添加我们可能要用到的命令所在的bin目录到PATH变量的过程。

(.bashrc,前面加点表示是隐藏文件,在用户主目录下,/home/usrname,只要显示隐藏文件就可以看到了。可以用gedit编辑器编辑,也可以用vi编辑,介绍用vi编辑的方法)

$:cd                          %cd命令直接转到用户主目录/home/usrname

$:vi .bashrc

进入vi编辑界面,按i键,进入编辑状态

下面是要在.bashrc加入的语句:

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

alias lmli='/media/linux/ic610/tools/bin/lmgrd -c /media/linux/ic610/share/******/******.dat'

export OA_HOME=/media/linux/ic610/OA

export CDS_ROOT=/media/linux/ic610

export MMSIM_ROOT=/media/linux/mmsim61

export CDS_LIC_FILE=5280@localhost

export LM_******_FILE=$CDS_ROOT/share/******/******.dat

export CDS_Netlisting_Mode=Analog

export PATH=$MMSIM_ROOT/tools/bin:$MMSIM_ROOT/tools/spectre/bin:$CDS_ROOT/tools/bin:$CDS_ROOT/tools/dfII/bin:$PATH

export MOZILLA_HOME=/usr/bin/netscape

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

alias lmli='/media/linux/ic610/tools/bin/lmgrd -c /media/linux/ic610/share/******/******.dat'

这一句的意思是用lmli代替后面一长串的命令,这样以后启动******的时候就只要输入lmli即可,并且这个办法可以避免ic610的启动程序lmgrdmmsim61的启动程序lmgrd冲突。

export CDS_LIC_FILE=5280@localhost

localhost是主机名,根据自己的情况修改,前面已有介绍如何查看主机名的方法。

PATH变量中,$MMSIM_ROOT/tools/bin这个值一定不能少。否则无法运行spectre

export MOZILLA_HOME=/usr/bin/netscape

加上这一句就可以使用cadence自带的帮助文档了
:]8E?MRa0

退出编辑状态只要按ESC即可,然会输入“:wq”保存文件退出。(之所以用vi介绍,是因为在vi编辑状态下,.bashrc文件中的各种字符有颜色区分,不容易出错,也看一用gedit编辑,只要细心一点就可以了)
]:^M2lN`F5m0

启动******

$:lmli

(如果没有出现invalid ****** feagure,那么你的liciense应该是成功启动了)

启动cadence

$:icfb&

(点击help可以看帮组文档,如果在终端直接输入cdsdoc,那么打开的是mmsim61的帮组文档,因为在PATH变量中,mmsim的路径是在前面的,而mmsim61的帮组文档是在$MMSIM_ROOT/tools/bin目录下的,所以是启动了mmsim61的文档,解决办法是在.bashrc中加入这一句:alias penbook='$CDS_ROOT/tools/dfII/bin/cdsdoc',应该是在这个位置,当然,如果你不打算看cadence的自带帮组文档,这一步就没必要了)

这里有必要说一下我碰到的问题. 这个问题困扰了我好久.EDA中国门户网站u{K u7i4v5D
我编辑了.tcshrc 然后也source 了,可输入icfb&就是死活打不开软件, 提示:EDA中国门户网站,Rnvx D7c
   icfb:Commandnotfound
d:cW/T0nZPCIf6d0~0这说明环境变量的配置没有配置好.可我认真检查了.tcshrc文件,没有错啊.后来在网上搜到了一篇帖子,终于搞定了这个问题:EDA中国门户网站 Jla)E Z,^\
    在csh下输入setenv看看环境变量的配置情况,我看到.tcshrc里关于cadence的路径最后都有^M. 就是这个东西在搞鬼. 我们要删掉^M.
DJE2e)I e0    我是在linux手动敲了一遍.tcshrc文件的内容,然后就搞定了.(一开始我是从windows下的一个txt文件中复制粘帖过来的,结果就产生了这个东西^M)
aI-Vf3k K-\7S0
u0HA*|h-Y J;p(s(`03)   最后配置一下快捷犍
F4?3bIQTB0     把目录"/tools/cds5/tools.lnx86/dfII/sample/local"下所有文件复制到EDA中国门户网站-T8x{xn"?k
         "/tools/cds5/tools.lnx86/dfII/local"下
7yS w Y3e/i7Pe0     把文件cdsinit改名成 .cdsinit

我也才装linux,对字母大小写linux有严格的限制不熟悉。如$PATH 是大写,如果echo $path 什么结果都没有,让我浪费了半天时间,如上面老兄遇到的问题一样,windows的文件在linux读出来有问题,我采用拷贝来修改.bashrc文件增加了不必要的字符$  ,提示 icfb:Commandnotfound 一定要用set看有没有出错。

系统分类: 电子制造   |    用户分类:    |    来源: 转贴

评论(0) | 阅读(43)
发表于:2008-11-7 11:28:00
标签:NC-Verilog  常用命令  

0

NC-verilog 常用命令使用详解

Ncverilog 常用命令使用详解

作者:5life
#A s E*O0S4D }+kDICDER     工作状态:建立仿真环境数 字,集成电路,IC,FAQ,Design compiler,数字信号处理,滤波器,DSP,VCS,NC,coverage,覆盖 率,modelsim,unix,c,verilog,hdl,VHDL,IP,STA,vera,验 证,primetime,FIFO,SDRAM,SRAM,IIR,FIR,DPLL g M q P [/U        t8~
数字,集成电 路,IC,FAQ,Design compiler,数字信号处理,滤波器,DSP,VCS,NC,coverage,覆盖 率,modelsim,unix,c,verilog,hdl,VHDL,IP,STA,vera,验 证,primetime,FIFO,SDRAM,SRAM,IIR,FIR,DPLL N g!p0BW f#v z(\%Y
    我们知道,由于NC-Verilog使用了Native Compile Code 的技术来加强电路模拟的效率,因此在进行模拟时必须经过 compile(ncvlog 命令)以及elaborate(ncelab命令)的步骤。编译之后,针对每一个HDL设计单元会产生中间表达。接着 elaborate命令会建立整个电路的结构,产生可以用来模拟的资料。最后使用ncsim命令来进行模拟。
9u F l O,S4n n$Bbbs.dicder.com
'g X&`2o W.U a U2pDICDER   三命令模式
        @+_6y B#C3w#d j5y }        l
c C.u!x N"IDICDER       命令如下:
/e d%^ D"E*{ G
GDigital IC Designer's forum
       ncvlog -f run.fDigital IC Designer's forum c2z)J7@ P4`
      ncelab tb -access wrc
{ Y"Z h X e't,DDICDER       ncsim tb -gui
h/k        { V p*p1d数字,集成电 路,IC,FAQ,Design compiler,数字信号处理,滤波器,DSP,VCS,NC,coverage,覆盖 率,modelsim,unix,c,verilog,hdl,VHDL,IP,STA,vera,验 证,primetime,FIFO,SDRAM,SRAM,IIR,FIR,DPLL第一个命令中,run.f是整个的RTL代码的列表,值得注意的是,我们需要把tb文件放在首位,这样可以避免出现提示timescale的错误。
i R ? f        C:p7JDigital IC Designer's forum
X
}5dz*@ {Nbbs.dicder.com
第二个命令中,access选项是确定读取文件的权限。其中的tb是你的tb文件内的模块名字。
S s v [ f$cbbs.dicder.comDigital IC Designer's forum Q0V        | R F
第三个命令中,gui选项是加上图形界面%{ z u%[ { v,\ s y

0z s"i _:Y6o#wDICDER值得注意的是,在这种模式下仿真,是用“ - ”的。而下边要说的ncverilog是采用“ + ”的。
y9t C E%P e&m数 字,集成电路,IC,FAQ,Design compiler,数字信号处理,滤波器,DSP,VCS,NC,coverage,覆盖 率,modelsim,unix,c,verilog,hdl,VHDL,IP,STA,vera,验 证,primetime,FIFO,SDRAM,SRAM,IIR,FIR,DPLL K#T X;c6r c B$\ p ~
    单命令模式
~1C P/o B-Z5O$~ `)V数字,集成电 路,IC,FAQ,Design compiler,数字信号处理,滤波器,DSP,VCS,NC,coverage,覆盖 率,modelsim,unix,c,verilog,hdl,VHDL,IP,STA,vera,验 证,primetime,FIFO,SDRAM,SRAM,IIR,FIR,DPLLDigital IC Designer's forum k W H n a q K
     ncverilog +access+wrc rtl +guiDigital IC Designer's forum ?+M:}8l,K ^ b7r p
     在这里,各参数与三命令模式相同。注意“ + ”。&L*F j o
K ` d:J


H,U/N%[ i gDICDER       在本文里将详细讲述ncverilog 的各种常用的参数,对于三命令模式,请读者自己查看资料。
|+B)h#x U&e x q d
rDICDER
      +cdslib+...                设定你所仿真的库所在数 字,集成电路,IC,FAQ,Design compiler,数字信号处理,滤波器,DSP,VCS,NC,coverage,覆盖 率,modelsim,unix,c,verilog,hdl,VHDL,IP,STA,vera,验 证,primetime,FIFO,SDRAM,SRAM,IIR,FIR,DPLL(C N ~:g4H F

#b O J [ \bbs.dicder.com      +define+macro ...      预编译宏的设定bbs.dicder.com;v*F H A w7B S
Digital IC Designer's forum D6s6~ U C r"_%T L)T
     +errormax+整数         当错误大于设定时退出仿真
p d s { y*c
M \+oBbbs.dicder.com
数 字,集成电路,IC,FAQ,Design compiler,数字信号处理,滤波器,DSP,VCS,NC,coverage,覆盖 率,modelsim,unix,c,verilog,hdl,VHDL,IP,STA,vera,验 证,primetime,FIFO,SDRAM,SRAM,IIR,FIR,DPLL4qt w3d A0u G!B'} w
     +incdir+path             设定include的路径
k0g5B k9g m4?3T C数字,集成电 路,IC,FAQ,Design compiler,数字信号处理,滤波器,DSP,VCS,NC,coverage,覆盖 率,modelsim,unix,c,verilog,hdl,VHDL,IP,STA,vera,验 证,primetime,FIFO,SDRAM,SRAM,IIR,FIR,DPLL
|$M1V:[ e-r yDICDER      +linedebug                允许在代码中设定line breakpoint
U(O Q {)U |DICDER数 字,集成电路,IC,FAQ,Design compiler,数字信号处理,滤波器,DSP,VCS,NC,coverage,覆盖 率,modelsim,unix,c,verilog,hdl,VHDL,IP,STA,vera,验 证,primetime,FIFO,SDRAM,SRAM,IIR,FIR,DPLL s:B/{1?(s:B V,B(N;}
     +log+logfile               输出到名为logfile的文件中
M2y
Y P i*|4t T%F数字,集成电路,IC,FAQ,Design compiler,数字信号处理,滤波 器,DSP,VCS,NC,coverage,覆盖率,modelsim,unix,c,verilog,hdl,VHDL,IP,STA,vera,验 证,primetime,FIFO,SDRAM,SRAM,IIR,FIR,DPLL

J
[0Z9T { x+sDICDER
      +status                     显示内存和CPU的使用情况

H ` H
L j7G;}0j:]Digital IC Designer's forum

5b U"l A2I5R q      +work                       工作库bbs.dicder.com1I*C g&wE!{ w t d!F

F-a3f K X t"A pDigital IC Designer's forum      +access+w/r/c           读取对象的权限,缺省为无读(-w)无写(-r)无连接(-c)
L,H)` F l z o5W&EDICDERbbs.dicder.com K.]$_.c ~ t U
     +gui                        显示图形交互界面
)N |8lg \数字,集成电路,IC,FAQ,Design compiler,数字信 号处理,滤波器,DSP,VCS,NC,coverage,覆盖 率,modelsim,unix,c,verilog,hdl,VHDL,IP,STA,vera,验 证,primetime,FIFO,SDRAM,SRAM,IIR,FIR,DPLLbbs.dicder.com m
T"k)U'Z#}0r,u

     +input script_file       输入脚本文件
6s J T C1^ H L CDICDERDICDERq _!l X ~7^%[        h4R1}-s
     +licqueque               如无licence等待licenceDICDER*|"?(x!d y7V

's8`5y ~:B:x V H"cDigital IC Designer's forum      +run                       如果在GUI交互界面下, 启动后将自动开始仿真
f%c ~%V(D UDICDER
;l D |
^ Q
y&lDigital IC Designer's forum
      +loadpli1=...            动态加入PLI
/E"F
](d
B U(VDigital IC Designer's forum
 &O J;z,w7b6U
     +timescale               设定仿真单位和精度bbs.dicder.com B s        S
f%Y t


Y        E#|7d9? l+_6K `6h      +nocopyright           不显示版权信息

系统分类: CPLD/FPGA   |    用户分类:    |    来源: 转贴

评论(0) | 阅读(147)
发表于:2008-10-24 11:29:36
标签:ECB  CBC  CFB  OFB  

1

对称加密和分组加密中的四种模式(ECB、CBC、CFB、OFB)

. AES对称加密:

点击看大图
                                                      
AES加密



                         分组



 

 

. 分组密码的填充

点击看大图
                                                   分组密码的填充

 

e.g.:
点击看大图
                                                         PKCS#5填充方式

 

 


 

. 流密码:

点击看大图

 

 

. 分组密码加密中的四种模式:

3.1 ECB模式

点击看大图

优点:

1.简单;

2.有利于并行计算;

3.误差不会被传送;

缺点:

1.不能隐藏明文的模式;

2.可能对明文进行主动攻击;

点击看大图

 


3.2 CBC
模式:

点击看大图

优点:

1.不容易主动攻击,安全性好于ECB,适合传输长度长的报文,SSLIPSec的标准。

缺点:

1.不利于并行计算;

2.误差传递;

3.需要初始化向量IV

 

3.3 CFB模式:

点击看大图
 优点:

1.隐藏了明文模式;

2.分组密码转化为流模式;

3.可以及时加密传送小于分组的数据;

缺点:

1.不利于并行计算;

2.误差传送:一个明文单元损坏影响多个单元;

3.唯一的IV;

 

3.4 OFB模式:

点击看大图
 优点
:

1.隐藏了明文模式;

2.分组密码转化为流模式;

3.可以及时加密传送小于分组的数据;

缺点:

1.不利于并行计算;

2.对明文的主动攻击是可能的;

3.误差传送:一个明文单元损坏影响多个单元;

系统分类: 资源共享   |    用户分类:    |    来源: 转贴

评论(0) | 阅读(101)
发表于:2008-10-24 11:23:03
标签:分组密码  ECB  CBC  CFB  

1

什么是分组密码

现代分组密码的研究始于20世纪70年代中期,至今已有20余年历史,这期间人们在这一研究领域已经取得了丰硕的研究成果。大体上,分组密码的研究包括三方面:分组密码的设计原理,分组密码的安全性分析和分组密码的统计性能测试。
分组密码的设计与分析是两个既相互对立又相互依存的研究方向,正是由于这种对立促进了分组密码的飞速发展。早期的研究基本上是围绕DES进行,推出了许多类似于DES的密码,例如,LOKI、FEAL、GOST等。进入90年代,人们对DES类密码的研究更加深入,特别是差分密码分析(differential cryptanalysis)和线性密码分析(linear cryptanalysis)的提出,迫使人们不得不研究新的密码结构。IDEA密码的出现打破了DES类密码的垄断局面,IDEA密码的设计思想是混合使用来自不同代数群中的运算。随后出现的Square、Shark和Safer-64都采用了结构非常清晰的代替-置换(SP)网络,每一轮由混淆层和扩散层组成。这种结构的最大优点是能够从理论上给出最大差分特征概率和最佳线性逼近优势的界,也就是密码对差分密码分析和线性密码分析是可证明安全的。
AES的征集掀起了分组密码研究的新高潮,15个AES候选算法反映了当前分组密码设计的水平,可以说是近几年研究成果的一个总汇。目前分组密码所采用的整体结构可分为Feistel结构(如CAST-256、DEAL、DFC/E2等)、SP网络(如Safer+、Serpent等)及其他密码结构(如Frog和HPC)。Feistel结构由于DES的公布而广为人知,已被许多分组密码所采用。Feistel结构的最大优点是容易保证加解密相似,这一点在实现中尤其重要。而SP网络比较难做到这一点,但是SP网络的扩散特性比较好。在现有的分组密码中,所有的基本运算有异或、加、减、查表、乘及数据依赖循环等。查表运算提供了DES的安全基础,仔细地选择S-盒能较好地抗击线性和差分密码分析,提供好的数据及密钥比特的雪崩特性。不过,S-盒需要一些存储器,所以S-盒的规模不能太大。15个AES候选算法所采用的S-盒规模有6种,分别是4×4、8×8、8×32、11×8、13×8、及8×32。S-盒的另一中称呼是黑盒子,它常给人造成故意设置陷阱的嫌疑,因此,Safer+等选取公开的数学函数,避免嫌疑。S-盒的设计与分析是分组密码设计中的重要环节,它的好坏直接影响密码体制的安全性,目前对S-盒的设计并没有一个完备的要求,但总的希望是增强S-盒的非线性度、差分均匀性及分量函数的代数次数和项数。
目前对分组密码安全性的讨论主要包括差分密码分析、线性密码分析和强力攻击等。从理论上讲,差分密码分析和线性密码分析是目前攻击分组密码的最有效的方法,而从实际上说,强力攻击是攻击分组密码最可靠的方法。到目前为止,已有大量文献讨论各种分组密码的安全性。自AES候选算法公布以后,国内外许多专家都致力于候选算法的安全性分析,预计将会推出一些新的攻击方法,这无疑将进一步推动分组密码的发展。

与序列密码每次加密处理数据流的一位或一个字节不同,分组密码处理的单位是一组明文,即将明文消息编码后的数字序列m0,m1,m2,…,mi划分成长为L位的组m=(m0,m1,m2,…,mL-1),各个长为L的分组分别在密钥k=(k0,k1,k2,…,kt-1)(密钥长为t)的控制下变换成与明文组等长的一组密文输出数字序列c=(c0,c1,c2,…,cL-1)。L通常为64或128。分组密码的模型如图2.3所示。
设明文m与密文c均为二进制0、1数字序列,它们的每一个分量mi,ciεDF(2)(i=0,1,2,…,n-1),则明文空间为{0,1,…,2n-1},密文空间也为0,1,…,2n-1},分组密码是由密钥k=(k0,k1,k2,…,kt-1)确定的一个一一映射,也就是空间{0,1,…,2n-1},到自身的一个置换F,由于置换F是由密钥k所确定,一般地,我们把这个置换表示为C=Fk(m)。
分组密码算法实际上就是密钥控制下,通过某个置换来实现对明文分组的加密变换。为了保证密码算法的安全强度,对密码算法的要求如下。
(1)分组长度足够大。当分组长度较小时,分组密码类似于古典的代替密码,它仍然保留了明文的统计信息,这种统计信息将给攻击者留下可乘之机,攻击者可以有效地穷举明文空间,得到密码变换本身。
(2)密钥量足够大。分组密码的密钥所确定密码变换只是所有置换中极小一部分。如果这一部分足够小,攻击者可以有效地穷举明文空间所确定所有的置换。这时,攻击者就可以对密文进行解密,以得到有意义的明文。
(3)密码变换足够复杂。使攻击者除了穷举法以外,找不到其他快捷的破译方法。

分组密码是将明文消息编码表示后的数字(简称明文数字)序列,划分成长度为n的组(可看成长度为n的矢量),每组分别在密钥的控制下变换成等长的输出数字(简称密文数字)序列.

分组密码将定长的明文块转换成等长的密文,这一过程在秘钥的控制之下。使用逆向变换和同一密钥来实现解密。对于当前的许多分组密码,分组大小是 64 位,但这很可能会增加。
明文消息通常要比特定的分组大小长得多,而且使用不同的技术或操作方式。这样的方式示例有:电子编码本(ECB)、密码分组链接(CBC)或密码反馈(CFB)。ECB 使用同一个密钥简单地将每个明文块一个接一个地进行加密;在 CBC 方式中,每个明文块在加密前先与前一密文块进行“异或”运算,从而增加了复杂程度,可以使某些攻击更难以实施。 “输出反馈”方式(OFB)类似 CBC 方式,但是进行“异或”的量是独立生成的。 CBC 受到广泛使用,例如在 DES(qv)实现中,而且在有关密码术的技术性方面的相应书籍中深入讨论了各种方式。请注意:您自己建立的 密码系统的普遍弱点就是以简单的形式来使用某些公开的算法,而不是以提供了额外保护的特定方式使用。
迭代的分组密码是那些其加密过程有多次循环的密码,因此提高了安全性。在每个循环中,可以通过使用特殊的函数从初始秘钥派生出的子密钥来应用适当的变换。该附加的计算需求必然会影响可以管理加密的速度,因此在安全性需要和执行速度之间存在着一种平衡。天下没有免费的午餐,密码术也是如此;与其它地方一样,应用适当方法的技巧中有一部分是源于对需要进行的权衡以及它们与需求平衡的关系如何的理解。
分组密码包括 DES、IDEA、SAFER、Blowfish 和 Skipjack — 最后一个是“美国国家安全局(US National Security Agency,NSA)”限制器芯片中使用的算法。

系统分类: 资源共享   |    用户分类:    |    来源: 转贴

评论(0) | 阅读(77)
发表于:2008-10-22 10:30:59
标签:synopsys  

0

synopsys ic compiler 介绍、安装、调试和设计流程

一、介绍
synopsys ic compiler (v2005.linux)是基于Galaxy设计平台开发的产品。主要的工具有:
LEDA
  LEDA是可编程的语法和设计规范检查工具,它能够对全芯片的VHDL和Verilog描述、或者两者混合描述进行检查,加速SoC的设计流程。 LEDA预先将IEEE可综合规范、可仿真规范、可测性规范和设计服用规范集成,提高设计者分析代码的能力
VCS
  VCS是编译型Verilog模拟器,它完全支持OVI标准的Verilog HDL语言、PLI和SDF。 VCS具有目前行业中最高的模拟性能,其出色的内存管理能力足以支持千万门级的ASIC设计,而其模拟精度也完全满足深亚微米ASIC Sign-Off的要求。VCS结合了节拍式算法和事件驱动算法,具有高性能、大规模和高精度的特点,适用于从行为级、RTL到Sign-Off等各个阶段。VCS已经将CoverMeter中所有的覆盖率测试功能集成,并提供VeraLite、CycleC等智能验证方法。VCS和Scirocco也支持混合语言仿真。VCS和Scirocco都集成了Virsim图形用户界面,它提供了对模拟结果的交互和后处理分析。
Scirocco
  Scirocco是迄今为止性能最好的VHDL模拟器,并且是市场上唯一为SoC验证度身定制的模拟工具。它与VCS一样采用了革命性的模拟技术,即在同一个模拟器中把节拍式模拟技术与事件驱动的模拟技术结合起来。Scirocco的高度优化的VHDL编译器能产生有效减少所需内存,大大加快了验证的速度,并能够在一台工作站上模拟千万门级电路。这一性能对要进行整个系统验证的设计者来说非常重要。
Vera
  Vera验证系统满足了验证的需要,允许高效、智能、高层次的功能验证。Vera验证系统已被Sun、NEC、Cisco等公司广泛使用以验证其实际的产品,从单片ASIC到多片ASIC组成的计算机和网络系统,从定制、半定制电路到高复杂度的微处理器。Vera验证系统的基本思想是产生灵活的并能自我检查的测试向量,然后将其结合到test-bench中以尽可能充分测试所设计的电路。Vera验证系统适用于功能验证的各个层次,它具有以下特点:与设计环境的紧密集成、启发式及全随机测试、数据及协议建模、功能代码覆盖率分析。
Physical Compiler
  Physical Compiler解决0.18微米以下工艺技术的IC设计环境,是Synopsys物理综合流程的最基本的模块,它将综合、布局、布线集成于一体,让RTL设计者可以在最短的时间内得到性能最高的电路。 通过集成综合算法、布局算法和布线算法。在RTL到GDS II的设计流程中,Physical Compiler向设计者提供了可以确保即使是最复杂的IC设计的性能预估性和时序收敛性。
Clocktree Compiler
  ClockTree Compiler是嵌入于Physical Compiler的工具,它帮助设计者解决深亚微米IC设计中时钟树的时序问题。它不仅能够简化设计流程,而且可以极大的提高时钟树的质量:对于插入延时有5%-20%的改进,对时钟偏移有5%-10%的改进。
DC-Expert
  DC得到全球60多个半导体厂商、380多个工艺库的支持。据最新Dataquest的统计,Synopsys的逻辑综合工具占据91%的市场份额。DC是十二年来工业界标准的逻辑综合工具,也是Synopsys最核心的产品。它使IC设计者在最短的时间内最佳的利用硅片完成设计。它根据设计描述和约束条件并针对特定的工艺库自动综合出一个优化的门级电路。它可以接受多种输入格式,如硬件描述语言、原理图和网表等,并产生多种性能报告,在缩短设计时间的同时提高设计性能。
DC Ultra
  对于当今所有的IC设计,DC Ultra 是可以利用的最好的综合平台。它扩展了DC Expert的功能,包括许多高级的综合优化算法,让关键路径的分析和优化在最短的时间内完成。在其中集成的Module Compiler数据通路综合技术, DC Ultra利用同样的VHDL/Verilog流程,能够创造处又快又小的电路。
DFT Compiler
DFT Compiler提供独创的“一遍测试综合”技术和方案。它和Design Compiler 、Physical Compiler系列产品集成在一起的,包含功能强大的扫描式可测性设计分析、综合和验证技术。DFT Compiler可以使设计者在设计流程的前期,很快而且方便的实现高质量的测试分析,确保时序要求和测试覆盖率要求同时得到满足。DFT Compiler同时支持RTL级、门级的扫描测试设计规则的检查,以及给予约束的扫描链插入和优化,同时进行失效覆盖的分析。
Power Compiler
  Power Compiler?提供简便的功耗优化能力,能够自动将设计的功耗最小化,提供综合前的功耗预估能力,让设计者可以更好的规划功耗分布,在短时间内完成低功耗设计。Power Compiler嵌入Design Compiler/Physical Compiler之上,是业界唯一的可以同时优化时序、功耗和面积的综合工具。
FPGA Compiler II
  FPGA Compiler II是一个专用于快速开发高品质FPGA产品的逻辑综合工具,可以根据设计者的约束条件,针对特定的FPGA结构(物理结构)在性能与面积方面对设计进行优化,自动地完成电路的逻辑实现过程,从而大大降低了FPGA设计的复杂度。FPGA Compiler II利用了特殊的结构化算法,结合高层次电路综合方法,充分利用复杂的FPGA结构将设计输入综合成为满足设计约束条件,以宏单元或LUT为基本模块的电路,可以多种格式输出到用户的编程系统中。FPGA Compiler II为FPGA设计者提供高层次设计方法,并为IC设计者用FPGA做样片而最后转换到ASIC提供了有效的实现途径。
Prime Power
动态功耗的门级仿真和分析的工具,可精确分析基于门级的设计的功耗问题,逐渐成为ASIC和对功耗要求较高的结构定制产品(袖珍计算机和通讯设备)设计者的高级解决方案。
PrimeTime
  PrimeTime® 是针对复杂、百万门芯片进行全芯片、门级静态时序分析的工具。PrimeTime可以集成于逻辑综合和物理综合的流程,让设计者分析并解决复杂的时序问题,并提高时序收敛的速度。PrimeTime是众多半导体厂商认可的、业界标准的静态时序分析工具。
Formality
  Formality是高性能、高速度的全芯片的形式验证:等效性检查工具。它比较设计寄存器传输级对门级或门级对门级来保证它没有偏离原始的设计意图。在一个典型的流程中,用户使用形式验证比较寄存器传输级源码与综合后门级网表的功能等效性。这个验证用于整个设计周期,在扫描链插入、时钟树综合、优化、人工网表编辑等等之后,以便在流程的每一阶段都能在门级维持完整的功能等效。这样在整个设计周期中就不再需要耗时的门级仿真。将Formality和PrimeTime这两种静态验证方法结合起来,一个工程师可以在一天内运行多次验证,而不是一天或一周只完成一次动态仿真验证。
Saber
  Saber是Synopsys公司开发并于1987年推出的模拟及混合信号仿真软件,被誉为全球最先进的系统仿真软件,也是唯一的多技术、多领域的系统仿真产品。与传统仿真软件不同,Saber在结构上采用硬件描述语言(MAST)和单内核混合仿真方案,并对仿真算法进行了改进,使Saber仿真速度更快、更加有效、应用也越来越广泛。应用工程师在进行系统设计时,建立最精确、最完善的系统仿真模型是至关重要的。
  Saber可同时对模拟信号、事件驱动模拟信号、数字信号以及模数混合信号设备进行仿真。利用Synopsys公司开发的Calaversas算法,Saber可以确保同时进行的两个仿真进程都能获得最大效率,而且可以实现两个进程之间的信息交换,并在模拟和数字仿真分析之间实现了无缝联接。Saber适用领域广泛,包括电子学、电力电子学、电机工程、机械工程、电光学、光学、水利、控制系统以及数据采样系统等等。只要仿真对象能够用数学表达式进行描述,Saber就能对其进行系统级仿真。在Saber中,仿真模型可以直接用数学公式和控制关系表达式来描述,而无需采用电子宏模型表达式。因此,Saber可以对复杂的混合系统进行精确的仿真,仿真对象不同系统的仿真结果可以同时获得。为了解决仿真过程中的收敛问题,Saber内部采用5种不同的算法依次对系统进行仿真,一旦其中某一种算法失败,Saber将自动采用下一种算法。通常,仿真精度越高,仿真过程使用的时间也越长。普通的仿真软件都不得不在仿真精度和仿真时间上进行平衡。Saber采用其独特的设计,能够保证在最少的时间内获得最高的仿真精度。Saber工作在SaberDesigner图形界面环境下,能够方便的实现与Cadence Design System和Mentor Graphics的集成。通过上述软件也可以直接调用Saber进行仿真。
JupiterXT
芯片设计者在层次化物理设计环境中完成从门级网表到布局布线收敛的重要工具,可以帮助您将Timing、Area和Power与您的设计进行匹配,JupiterXT通过下面的方法来管理和优化您的设计:
1、 物理版图的层次化管理
2、 精确的面积、寄生参数和时序估计
3、层次化布局布线流程中,精确的子模块时序加载
Astro
  Astro是Synopsys为超深亚微米IC设计进行设计优化、布局、布线的设计环境。Astro可以满足5千万门、时钟频率GHz、在0.10及以下工艺线生产的SoC设计的工程和技术需求。Astro高性能的优化和布局布线能力主要归功于Synopsys在其中集成的两项最新技术:PhySiSys和Milkyway DUO结构。
Design Vision
  Synopsys综合环境的图形界面,在通用技术层和门级进行设计浏览和分析的分析工具。
Mars-rail
  Mars-Rail用于功耗和电漂移的分析和优化,以完成低功耗高可靠性的设计。它将自动在Apollo-II的布局布线中起作用。
Mars-xtalk
Mars-Xtalk可以进行充分的串扰分析,并能够进行防止串扰发生的布局和布线,解决超深亚微米芯片设计中的信号完整性问题。
CosmosLE/SE
  Synopsys的Cosmos解决方案可以进行自前向后的混合信号、全定制IC设计。它可以很好的处理自动化的设计流程和设计的灵便性,使得设计周期可以缩短数周甚至几个月。CosmosLE提供了一个基于Milkyway数据库的完整物理IC设计环境,同时可以无缝集成,动态交互操作所有Synopsys公司领先的物理设计工具。同时,CosmosSE还提供了一个易用的、基于Synopsys仿真工具的仿真环境,可以让设计者从不同的抽象层次来分析电路是否符合要求。
CosmosScope
  图形化的波形分析工具,可以用来浏览和分析以图形化显示或列表显示的模拟结果。
Hercules
作为物理验证的领先者,Hercules-II能验证超过1亿只晶体管的微处理器、超过1000万门的ASIC和256MB的DRAM,推动技术前沿不断进步。Hercules通过提供最快的运行时间和高速有效的纠错(debugging)来缩短IC设计的周期。它综合且强大的图形界面能迅速帮助设计者发现并处理设计错误。Herculus具有进行层次设计的成熟算法,进行flat processing的优化引擎和自动确定如何进行每个区域数据处理的能力—这些技术缩短了运行时间,提高了验证的精确度。
NanoSim (Star-SIMXT)
  NanoSim集成了业界最优秀的电路仿真技术,支持Verilog-A和对VCS仿真器的接口,能够进行高级电路仿真的工具,其中包括存储器仿真和混合信号的仿真。通过Hierarchical Array Reduction (HAR)技术,NanoSim 几乎可以仿真无限大的仿真存储器阵列。
Star-SimXT 是一个准确、高容量、高绩效、易用的瞬态电路仿真软件。Star-SimXT 能够处理超过500万电路元件的设计,提供的电流电压波形图与SPICE结果的误差小于5%,而它的仿真速度比 Spice 快 10 到 1000倍。Star-SimXT 可以采用现有的 Spice 模型。
HSPICE
  Star-Hspice 是高