第13章 时序仿真(timing simulation)

第13章  时序仿真(timing  simulation)
第13章  时序仿真(timing  simulation)

第13章 时序仿真(Timing Simulation)

一般的place&route工具在做完FPGA或CPLD的place&route后,都可选择是

否要做timing simulation,在前一章我们曾经介绍过,如何在Foundation中选

择产生timing simulation所要的文件,在产生供timing simulation的VHDL netlist文件时,不同的开发系统产生的文件也有不同的格式,大约可以分成两

大类,有些厂商的place&route工具所产生的VHDL netlist文件已包含了timing delay的数据,比如其component的声明中有generic,在component instantiation时可以用generic map将器件的setup time或delay time等数据传

入器件中,这时只要用simulator将此VHDL netlist文件compile,后面的做法就

与做function simulation没有两样了,只是其结果已反映出了timing delay,

有些厂商的place&route工具所产生的VHDL netlist文件并不包含timing delay

的数据,仅是单纯的netlist数据。在做simulation时除了要compile VHDL netlist数据外,还需配合SDF文件使用,这一部分会在后面再讨论。

IEEE在1995年扩充IEEE-1076,增加了IEEE-1076.4,这一增订主要是在 VITAL(VHDL Initiative Towards ASIC Libraries)上,其在VHDL上对ASIC提供 了高精确度及高效率的仿真模型。此规范定义了三个1evels的模型,分别是VITAL level0、VITAL level1及VITAL level 1Memory,在此并不是要介绍这三个模型 的内容,而是要介绍三个定义的标准packages,分别是VITAL_Timing、

VITAL_Primitives及VITAL_Memory,VITAL_Timing package定义了一些标准的数 据类型、属性、常数及一些基本类型、次要类型、常数及一些用来发展ASIC模型 的子程序,此package是架构在VITAL_Timing package之上的,也就是其使用了 一些VITAL_Timing package所声明的数据类型或常数。至于VITAL_Memory package则定义了一些数据类型及用来支持开发内存模型的子程序,一般在做 timing simulation所需要的是VITAL_Timing package及VITAL_Primitives package,VITAL_Memory package较少使用。

13-1编译VHDL Netlist File

VHDL netlist file是由place&route工具经back-annotate所产生的,Foundation所产生的netlist并不包含timing的数据,所以会有一个SDF文件来存

储timing数据,在compile这个VHDL文件之前,我们先来看看它是否要声明一些

特别的1ibrary或是packages。

Foundation产生的VHDL netlist文件,其默认的文件名称是time_sim.vhd。在这个文件的一开始是一些相关的注释内容,之后便是1ibrary声明。我们可以

看到除了Library IEEE的声明外,还有另一个1ibrary SIMPRIM,若是读者前面完

全没有做过timing simulation的话,可以肯定在你的ModelSim系统中一定没有

这个1ibrary的存在,但要是你不能确定的话,可以到ModolSim的目录下,打开modelsim.ini这个文件,看是否有simprim这个1ibrary的存在。

检查完modelsim.ini这个文件后,我们再来看看这个VHDL文件与自己设计

的VHDL文件有什么不同。

Post layout的VHDL netlist文件大多都会有一个厂商制定的library,其

中包含一些VITAL的变量声明、特殊function及procedure的声明、厂商提供的各

种component的声明等。当你看到VHDL netlist文件开始处有声明新的1ibrary,但是你还没有建立该1ibrary时,就要在ModelSim系统中先建立一个新的library 了。

Foundation在做完place & route之后可以产生做timing simulation的文件,若是依照前一章的设定,在做place&route之后会产生的文件是一VHDL的netlist文件time_sim.vhd及一个标明timing delay及timing check的SDF文件

time_sim.sdf,在文件time_sim.vhd中,除了之前的注释外,一开始会有两个entity,分别是ROC及TOC,ROC即Reset-On-Configuration,而TOC的意义是Tristate-On-Configuration,这两个entity对timing simulation有相当大的影响,但现在却不必特别去处理它们。我们所要注意的是之后的entity,也就是本设计的entity,在这个entity之前有个新的library-----SIMPRIM,所以在ModelSim中必须先建立它,在此再复习一下这些步骤。

1. 运行ModelSim后进入安装ModelSim的目录,比如说是C:\ModelTech。

2. 建立新的library SIMPRIM,执行exec vlib simprim。

3. 将1ibrary SIMPRIM map到磁盘驱动器的目录中,执行exec vmap simprim

{$MODEL_TECH/../simprim}。

4.Compile Vpackage package,

执行 vcom -work simprim{C:/Fndtn/vhdl/src/simprims/

simprim_Vpackage.vhd}。

5.Compile Vcomponents package,

执行vcom -work simprim{C:/Fndtn/vhdl/src/simprims/

simprim_Vcomponents.vhd}。

6.Compile VITAL package,

执行 vcom -work simprim{C:/Fndtn/vhdl/src/simprims/

simprim_VITAL.vhd}。

经过以上的步骤,SIMPRIM这个library即已建立,接着将ModelSim切换到有time_sim.vhd及time_sim.sdf的目录中,再将time_sim.vhd做compile,就可以准备做timing simulation了。

13-2Timing Simulation

在做timing simulation时,我们要加载的是time_sim.vhd中与entity name 相同的instance,一般而言这个名称会与原先source code的名称一致,但有时仍会有些不同,比如使用generic时就有可能不一样。在我们使用的例子中,time_sim.vhd内的entity name与source code中的entity name一样,所以仍可1oad一样的名称。

做timing simulation除了要加载time_sim.vhd compile过的1ibrary外,还要加载time_sim.sdf,首先我们再回忆一下function simulation的结果,其如图13-1显示。

在compile time_sim.vhd后,我们要开始执行timing simulation了。在命令行我门可以输入命令:

vsim –t ps -sdfmax Add4In =time_sim.sdf work.Add4In

这个命令行的动作是调用ModelSim的simulator vsim,-t ps的意义是设定其时间的分辨率为ps,-sdfmax是指之后的simulation是使用delay的最大值,也就是在worst case的意思。Add4In=time_sim.sdf的意义是entity Add4In中的一切时序数据都从time_sim.sdf文件中取得。最后的work.Add4In则表示要仿真的本体是work library中的Add4In。

接着再将与function simulation相同的波形输入place&route后的VHDL netlist,仿真的结果如图13-2所示。

13-2-1信号GSR所造成的问题

看到图13-2的仿真结果,你可能会大吃一惊,为什么timing simulation 与function simulation的结果不一样呢?这就是我们要从timing simulation 中找出问题的所在,由于错误的出现是由输出信号的显示得知,因此决定由输出信号的状态往前追,虽然这个设计并不算太复杂,但是其time_sim.vhd仍有2000多行,因此不可能把所有的code内容列出来。之后我们在追查问题时,仅将有问题的in stance列出来就好了。

我们从图13-2中看出timing simulation比function simulahon少了两组输出,也就是00AH及01AH,也就是说输出信号Q的bit l(LSB为bit 0)就出了问题,因此就从Q(1)往前追,用文字搜寻的方式可以找到,Q(1)是由以下的实体所输出。

Q_1_OUTBLOCK_OUT_BUF_GTS_TRI : X_TRI

port map (

I => Q_1_OUTBLOCK_OQ,

Q => Q (1),

CTL => Q_1_OUTBLOCK_OUT_BUF_GTS_TRI_2_INV);

虽然我们并不了解X_TRI到底是什么,但由其命名及控制信号可以大概看出,那应该是一个tri-state buffer, Q(1)这个信号是由Q_1_OUTBLOCK_OQ信号送来的,而其控制信号是Q_1_OUTBLOCK_OUT_BUF_GTS_TRI_2_INV,这时可以用add wave命令将这些信号显示在ModelSim的Wave窗口上,我们来看看加入这几个信号后的仿真结果。

由以上的仿真结果可以看出,在200 ns处以后tri-state buffer Q_1_OUTBLOCK_0UT_BUF_GTS_TRI的输入及输出值才第一次由逻辑’0’转变为逻辑’1’,由于这种情况与输出信号Q的情况一致,并没有可供我们判断错误出现的征兆,所以我们得再往前找。

接着再以搜寻方式找tri-state buffer的输入信号Q_l_OUTBLOCK_OQ,可以发现其来自一个flip-flop Q_1_OUTBLOCK_OUTFF,我们来看看其接线的情况。

Q_1_OUTBLOCK_OUTFF : X_FF

port map (

I => N97,

CLK => CLK_BUFFED,

CE => VCC,

SET => GND,

RST => GSR,

O => Q_1_OUTBLOCK_OQ);

这个flip-flop的输入端接上信号N97,其clock信号为CLK_BUFGED,reset 信号为GSR,我们将这些信号再拉出来看,图13-4就是将这些信号拉出来仿真的结果。

在图13-4的仿真中我们可以看出,信号gsr在100ns处才由逻辑’1’变为逻

辑’0’,也就是说在信号gsr inactive(逻辑’0’)后,第一个clock上升沿出现在150ns处,这时候读入的数据分别是15H、16H、17H及18H,计算的结果正是05AH。为什么信号gsr会在100ns才inactive呢?我们再来看看time_sim.vhd程序代码的倒数第二行:

ROC_NGD2VHDL : ROC port map (0 => GSR );

这行的语句是一个component instantiation,其使用的器件是ROC,这个器件在之前就提过,现在我们来看看其内容。

architecture ROC_V of ROC is

attribute VITAL_LEVEL0 of ROC_V : architecture is TRUE; begin

ONE_SHOT : process

begin

if (WIDTH <= 0 ns) then

assert FALSE report

“***” Error:a positive value of WIDTH must be specified***” severity failure;

else

wait for WIDTH;

O <= ‘0’;

end if;

wait;

end process ONE_SHOT;

end ROC_V;

这个器件只有一个输出信号O及一个generic传入的参数WIDTH。在ROC的architecture中是个if语句,当WIDTH小于等于0时,会送出错误信息,若当WIDTH 大于0时,会在等到WIDTH的设定值后将输出信号O转变为逻辑’0’,那输出信号O 在WIDTH设定值之前是什么逻辑值呢?而WIDTH的设定值又是多少呢?我们要回到time_sim.vhd的更前面,看看其entity语句:

entity ROC is

generic_(InstancePath:STRING := “*”;

WIDTH :Time := 100 ns);

port(O :out std_ulogic := ‘1’) ;

attribute VITAL_LEVEL0 of ROC :entity is TRUE;

end ROC;

在其entity语句中可以看到,输出信号O的默认值为逻辑’1’,也就是说在没有任何语句覆盖前,输出信号的逻辑值会一直维持在’1’。而WIDTH的设定值又是多少呢?由generic声明的默认值可以看出,其WIDTH的默认值为100 ns。接着我们将输入信号逻辑转变的时间延后,也就是输入信号D1的数值由01H转变成05H 的时间,由75ns转变成195ns,这样就能避开一开始被gsr信号为逻辑’1’时所造成的重置状态。仿真结果输出信号O的第一个非0的输出值为0AH,与实际的计算值相同,如图13-5所示。

13-2-2Setup Time Check造成的错误

在图13-5中可以看到:输出信号Q的前两个是正确的,但是第三个以后的运算结果却是错的,因为仿真的结果是0XA,由于输出的bus信号都用十六进制表示,因此无法知道到底是哪一个bit出问题了。我们可以用鼠标在信号Q前的蓝色方格单击,就会显示出是bit5、bit6及bit7出了问题,如图13-6所示。

是什么信号造成在300ns左右信号Q的输出会变成unknown呢?我们由ModelSim的主窗口中可以得到一些信息,在图13-7中显示了三个警告信息,第一个信息是:

Warning: */X_FF SETUP High VIOLATION ON I WITH RESPECT TO CLK;

Expected := 0.36 ns; Observed := 0.353 ns; At : 251.642 ns

Tiem : 251642 ps Iteration : 0 Instance :/ add4in/Suma_5_dff_out_dffx 我们先来看看这个信息的意义,在Warning之后的X_FF表示出问题的器件是—个flip-flop,所出现的问题是信号变High时所造成的,至于是那个信号出问题,就是flip-flop上的信号I,也就是I相对于信号CLK,在其信号值High时的setup time出了问题。在第二行中的语句是这个flip-flop所需要的setup-time为0.36ns,但在ModelSim所得到的是0.353ns,所出现的位置是在距离开始处251.642ns处。第三行中的语句中我们所要注意的是Instance之后的名称;这就是

出了问题的器件,我们用搜寻的功能就能在time_sim.vhd中找到这个器件。

在time_sim.vhd中找到这个器件对我们追查错误而言并没有太大的帮助,我们还要搭配time_sim.sdf一起使用,接下来我们要先介绍SDF文件的架构,再回来追究这个问题的错误所在。

13-3SDF File

SDF的规范是由OVI(Open Verilog International)提出制订的,现今一般simulator所遵循的是1994年二月所修订的2.1版。SDF文件中所存储的数据包括由EDA(Electronic Design Automation)工具所产生的timing数据,它是一种与开发工具无关的文本文件,其中包括delay、timing check及timing constraint 等数据。

13-3-1SDF的内容

SDF文件的内容分作两大部分:第一部分是表头部分,其作用仅是描述与设计相关的数据。第二部分是每一个cell的相关timing数据,其作用则是提供simulator各cell间信号的delay及timing check的标准,SDF文件除了些允许的注释外,第一行便是DELAYFILE。

13-3-2表头部分

表头部分仅是设计的一般数据,其对于之后的信号延迟输出及时序检查并没有什么影响,以下是一设计的SDF文件其表头部分及解释。(DELAYFILE

(SDFVERSION “2.1”)

(DESIGN “Add4In”)

(DATE “Thu Jun 01 13:18:57 2000 “)

(VENDOR “Xilinx”)

(PROGRAM “Xilinx VHDL SDF writer”)

(VERSION “C.16”)

(DIVIDER /)

(VOLTAGE 4.75:4.75:4.75)

(RPOCESS “best=1.0 :nom=1.0 :worst=1.0”)

(TEMPERATURE 85:85:85)

(TIMESCALE 1 ps)

SDFVERSION:表示此一SDF部分是遵循哪一个版本的SDF标准所产生的,在”Standardard Delay Format Specification Version 2.1”中表示SDFVERSION的语法如下:

语法:

SDFVERSION QSTRING)

QSTRING为一字符串,并且被包含在双引号内。在1.0版的SDF中,SDFVERSION是一定必要的,但其后所接的QSTRING却可以省略,在2.1版以后SDFVERSION及QSTRING都可省略。

目前所使用的版本是1994年制订的2.1版,而在1995年五月3.0版也已制订完成。

DESIGN:表示产生timing数据的设计名称,其语法如下:

语法;

(DESIGN QSTRING)

若是一个层次式的设计,其后QSIRING应该是最顶层的名称。在上面的例子中其设计名称为Add4In。

DATE:表示此一SDF文件产生的时间。其语法如下:

语法:

(DATE QSTRING)

在上面的例子中,其日期及时间为2000年6月1日下午1点18分57秒。

VENDOR:表示此一SDF文件所产生的厂商。其语法如下:

语法:

(VENDOR QSTRING)

在上面的例子中,此文件所产生的厂商XILINX公司。

PROGRAM:表示产生此SDF文件的工具。其语法如下:

语法;

(PROGRAM QSTRING)

在上面的例子中,此文件所产生的程序为Xilinx VHDL SDF writer。

VERSION;表示产生此SDF文件的工具的版本。其语法如下:

语法:

(VERSION QSTRING)

在上面的例子中此文件所产生的程序为Xilinx Foundation C.16版。

DIVIDER:表示此SDF文件中用来分隔层次式架构的分隔符,其语法如下: 语法:

(DIVEDER HCHAR)

HCHAR一般是使用(/)或(.),在上面的例子中是采用(/),在后面的例子中就可以看到其出现。若是SDF文件中并没有DIVIDER的语句,那么默认的DIVEDER 是(.)。

VOLTAGE:表示此SDF文件中三种状态(best,normal,worst)下的电压值。其语法如下:

语法:

(VOLTAGE rtriple)或(VOLTAGE RNUMBER)

rtriple或RNUMBER所表示的是三组timing检查的数值,分别代表最小值、典大值、最大值。在上例中仅提出normal state,所以三种电压值皆相同。

PROCESS:表示此SDF文件中三种状态(best,normal,worst)数值所乘上的factor。其语法如下;

语法:

(PROCESS QSTRING)

在上例中仅提出normal state,所以三种状态下的factor值皆相同。

TEMPERATURE:表示此SDF文件中三种状态(best,normal,worst)下的温度各为多少。其语法如下:

语法:

(TEMPERATURE rtriple)或(TEMPERATURE RNUMBER)

在上例中仅提出工业规格中的worst case,所以三种状态下其温度皆为85℃,在一般商业规格的器件中,其要求的温度范围是在0℃~70℃,若是在工业规格下其温度范围在-40℃~85℃,若是在军事规格下其温度范围在-55℃~125℃。

TIMESCALE:指定之后数值所表示的时间单位,由于之后SDF文件中所出现的都是一些rtriple值,因此后面在分析timing时,只要将rtriple值乘上TIMESCALE即可,TIMESCALE的语法如下:

语法:

(TIMESCALE TSVALUE)

TSVAlUE是指一数值及一时间单位,在上面的例子中所采用的TSVALUE是1ps。

13-3-3基本单元

基本单元指的是用在Place & Route的最基本单元,包括D Flip-Flop、AND gate、OR gate或Buffer等,基本单元是以关键字CELL为起始,以下是一段SDF 文件的节录及各关键字的介绍。

(CELL

(CELLTYPE “X_CKBUF”)

(INSTANCE CLK_IBUF)

(DELAY

(ABSOLUTE

(PORT I (10:10:10) (10:10:10))

(IOPATH I O (0:0:0) (0:0:0))

)

)

)

CElLTYPE:指的是此基本单元的种类,在上面的例子中,cell的种类是clock buffer。

INSTANCE:指的是此基本单元的名称,在上面的例子中,cell的名称是CLK_IBUF,也就是一个名称为CLK_IBUF的clock buffer,Instance的表示方式也可以使用层次式的,比如A1/B1/CLK_IBUF,就是指顶层设计A1中,下一层设计Bl 中的CLK_IBUF,同样的我们也可以用以下的方法表示:

(CElL

(CElLTYPE “X_CKBUF”)

(INSTANCE A1)

(INSTANCE B1)

(INSTANCE CLK_IBUF)

)

DELAY:为timing specification的起始关键字,在此关键字之后的数值为此单元的规格。

ABSOULTE:表示之后的延迟时间可完全取代在annotation阶段已存在的延迟数值。

PORT:PORT所代表的是各个单元间联机所造成的延迟,也就是input port 的延迟。

IOPATH:输入点到输出点所造成的延迟时间。

在以上的例子中,不论是PORT或是IOPATH都有两组值,这两组数值所代表的意义是什么呢?在OVI的SDF specification 2.1版中,将信号由一个1evel转换到另一个1evel的延迟数值称为rvalue,rvalue总共有12种变化,分别是:

0->1, 1->0, 0->Z, Z->1, l->Z, Z->0,

0->X, X->1, 1->X, X->0, X->Z, Z->X

然而这12组数值却不是全部都会用到的,可以选其中的一组、两组、三组、六组及十二组。若SDF文件中列了12组rvalue,那当然是将上面所列出的转换状态全都包括进去了,若是有六组数值,则分别代表之前所讲的rvalue中的前六种变化,若是有三组数值,则第一组数值代表0->1及Z->1,第二组数值代表1->0及Z->0,第三组数值代表0->Z及1->Z,若仅有两组数值,则第一组数值代表信号“上升”的延迟,如0->1、0->Z及Z->1,第二组数值代表信号“下降”的延迟,如1->0、Z->0及1->Z,若仅有一组数值,则此数值代表所有信号1evel改变的情况。

因此在上面的例子中,一个名称为CLK_IBUF的X_CKBUF,其PORT I的输入延迟不论是上升或下降都是10ps,而其由PORT I到PORT O的内部延迟不论是上升或下降皆为0,图13-8为本例的图示。

13-3-4时序检查

时序检查的主要目的在提供simulator对特殊器件的输入信号进行检查,以确定是否能产生正确的输出信号,时序检查部分所要检查的数值都是在关键字TIMINGCHECK之后,我们先来看看一个实际的timing check范例。 (TIMINGCHECK

(SETUP (posedge I) (posedge CLK) (360:360:360)) (SETUP (negedge I) (posedge CLK) (360:360:360)) (HOLD (posedge I) (posedge CLK) (0:0:0))

(HOLD (negedge I) (posedge CLK) (0:0:0))

(WIDTH (posedge CLK) (2300:2300:2300))

(WIDTH (negedge CLK) (2300:2300:2300))

(WIDTH (posedge RST) (4000:4000:4000)))

以下会根据timing check所要检查的项目进行一一介绍。

WIDTH:用来指出pulse的最小宽度,其可分为两种,分别是positive及negative。Positive表示正脉冲的宽度,negative表示负脉冲的宽度,在以上的例子中有三组脉冲宽度的检查,两组检查信号CLK,一组检查信号RST,检查CLK信号的包含其正脉冲宽度及负脉冲宽度,两者的要求都是最小为2.3ns,检查RST信号则要求其正脉冲宽度最小为4ns即可。

Width的语法如下:

语法:

WIDTH(正或负触发沿 触发信号)(rvalue)

SETUP:Setup所检查的是在一个clock信号或边沿触发信号的触发沿,与待

检信号的关系。也就是待检信号在触发信号的触发沿之前,所要保持逻辑状态稳定所需要的最小时间。SETUP的语法为:

语法:

SETUP(待检信号触发沿 待检信号)(参考信号触发沿 参考信号)(rvalue) 实例:

SETUP(posedge I)(posedge CLK)(360:360:360)

以上面的例子来说,所要检查的信号是I的正向信号,也就是说当信号I为逻辑’1’时,其参考信号则是CLK信号的上升沿,也就是说在信号CLK的上升沿之前360 ps内,信号I必须稳定地维持在逻辑’1’的状态,不能在这段时间内有上升沿的出现,其时序关系如图13-10所示。

HOLD:Hold time所检查的也是在一个clock信号或边沿触发信号的触发沿与待检信号的关系,不过其检查的是待检信号在触发信号的触发沿之后要保持逻辑状态稳定所需要的最小时间,HOLD的语法与SETUP的类似,语法类型如下:

语法:

HOLD(待检信号触发沿 待检信号)(参考信号触发沿 参考信号)(rvalue) 实例:

HOLD(posedge I)(posedge CLK)(0:0:0)

以上面的例子来说,所要检查的是信号I的正向信号,其参考信号则是CLK 信号的上升沿,当在信号CLK的上升沿之后0ps内不能有I的上升沿出现,图13-11即是hold time的示意图。

RECOVERY: Recovery time所检查的是异步控制信号,在其释放后到下一个clock信号active之前的时间,其语法为:

语法:

RECOVERY(待检信号触发沿待检信号)(参考信号触发沿参考信号)(rvalue)

实例:

RECOVERY(negedge SET)(posedge CLK)(4200:4200:4200)

就以上的例子而言,异步信号set转变状态成逻辑’0’后,一定要在4.2ns之后clock的上升沿才能出现,否则就会有recovery time不足的现象发生,图13-12即是recovery time的示意图。

在“Standard Delay Format Specification Version 2.1”中还有许多其他的介绍,但是使用得不多,若读者有看到本书中没有列出的项目,请自行参考此规范。

13-4仿真分析

我们再回头看看13-2节所出现的问题,出问题的器件是名称为SUMA_5_DFF_OUT_DFFX的flip-flop,以下是这个flip-flop在SDF文件中的语句:(CELLTYPE “X_FF”)

(INSTANCE SUMA_5_DFF_OUT_DFFX)

(DELAY

(ABSOLUTE

(PORT CLK (1622:1622:1622) (1622:1622:1622))

(PORT RST (5300:5300:5300) (5300:5300:5300))

(IOPATH CLK O (840:840:840) (840:840:840))

(IOPATH SET O (840:840:840) (840:840:840))

(IOPATH RST O (1700:1700:1700) (1700:1700:1700))

)

)

(TIMINGCHECK

(SETUP (posedge I) (posedge CLK) (360:360:360))

(SETUP (negedge I) (posedge CLK) (360:360:360))

(HOLD (posedge I) (posedge CLK) (0:0:0))

(HOLD (negedge I) (posedge CLK) (0:0:0))

(WIDTH (posedge CLK) (2300:2300:2300))

(WIDTH (negedge CLK) (2300:2300:2300))

(WIDTH (posedge RST) (4000:4000:4000))

)

在此我们必须搭配图13-13来看,以下是timing simulation的结果。

我们先看delay区块中的Port Clk语句,这代表接在port Clk上的信号Clk_bufged到这个flip-flop的时间,实际上比波形图中Clk_bufged的信号晚了1,622 ps,将图13-13中第一个cursor的时间250,020ps,加上1,622ps之和为251,642ps,也就是第三个cursor所在的时间。这个时间也是造成ModelSim发现第一个timing vio1ation的时间。而这个flip-flop的input信号suma_5_f,在图13-13中显示是距离Clk_bufged信号的上升沿之后1,269ns才由逻辑’0’变成逻辑’1’(第二个光标处),发生vio1ation情况的检查出现在以下的语句中。

(SETUP (posedge I) (posedge CLK) (360:360:360))

上面这一行语句的意义是这样的:在信号Clk的上升沿时,我们要检查信号I,其上升沿必须出现在Clk上升沿前360ns以前。然而在图13-13中,第二个光标表示输入信号出现由逻辑’0’变成逻辑’1’的时间,其与第三个光标(表示clock信号的上升沿)间的距离是353ps,这就是之前在ModelSim主窗口所出现的第一个警告信息的来源:

Expected := 0.36 ns; observed :=0.353 ns; At :251.642 ns

至于其输出信号要在何时产生,可以看其中IOPATH的语句,其与Clk、Set 及Rst三个信号都有关,其中Set及Rst两信号都没有改变状态,所以输出只受Clk 信号影响,由以下的语句得知输出信号改变状态的时间距离C1k信号的上升沿是840ps,也就是第四个光标出现的地方。

( IOPATH CLK 0 (840:840:840) (840:840:840) )

至于另外两个警告信息,造成错误的器件还是同一个flip-flop,造成setup time不足的时间是166ps(0.36-0.194)和215ps(0.36-0.145),所以只要将输入数据提前215ps,那么对此flip-flop而言,setup time都已足够了,即可解决此问题。由于要修正的是clock信号与输入信号之间的关系,因此也可以将clock信号延迟215ps输入,即可达到相同的目的,测试结果此问题已经获得解决,输出信号05A H也出现了,但在下一个周期的计算结果仍然有unknown出现,而且很不幸的是在ModelSim的主窗口中已经没有警告信息产生了。

我们可以由发生问题的信号往前追,在展开信号Q之后,发现Q(6)及Q(7)在350ns以后至400 ns之间为unknown,回到time_sim.vhd之后由Q(6)往前追,发展其为一个X_TRI的output信号。

Q_6_OUTBLOCK_OUT_BUF_GTS_TRI : X_TRI

port map (

I => Q_6_OUTBLOCK_OQ,

Q => Q(6),

CTL => Q_6_OUTBLOCK_OUT_BUF_GTS_TRI_2_INV

);

这种器件会出问题的情况不大,因为再以X_TRI的输入信号(Q_6_OUTBLOCK_0Q)往前追,其前一级是个flip-flop。

Q_6_OUTBLOCK_OUTFF : X_FF

port map (

I => N102,

CLK => CLK_BUFFED,

CE => VCC,

SET => GND,

RST => GSR,

Q=> Q_6_OUTBLOCK_OQ

);

我们将内部信号Q_6_OUTBLOCK_OQ、N102及CLK_BUFGED一起放到Wave窗口中,观察到flip-flop的输入信号N102发现,在300~350ns之间,其逻辑值已经为unknown(如图13-14),所以必须再往前追,看看造成这一现象的原因是什么。

由time_sim.vhd中发现,信号N102是由N101_G产生的。

N101_DFF_OUT_YMUX : X_BUF

port map (

I => N101_G,

O => N102

);

而信号N101_G是由前一级加法器计算的结果SUMA(6)及内部信号N101_FGBLOCK_LUTRAM_GLUT_XOR0经XOR gate所产生。

N101_FGBLOCK_LUTRAM_GLUT_XOR1 : X_XOR2

port map (

I0 => N101_FGBLOCK_LUTRAM_GLUT_XOR0,

I1 => SUMA(6),

0=> N101_G

);

仿真结果发现前者出问题,再依其往前追,此信号是由SUMB(6)及N101_FGBLOCK_COUT0经XOR gate产生。

N101_FGBLOCK_LUTRAM_GLUT_XOR0_56 : X_XOR2

port map (

I0 => SUMB(6),

I1 => N101_FGBLOCK_COUT0,

0=> N101_FGBLOCK_LUTRAM_GLUT_XOR0

);

仿真结果发现前者出问题,再依其往前追,SUMB(6)是由SUMB_5_DFF_OUT_QYDFF产生。

SUMB_5_DFF_OUT_YQMUX : X_BUF

port map (

I => SUMB_5_DFF_OUT_QYDFF,

O => SUMB(6)

);

而SUMB_5_DFF_OUT_QYDFF是flip-flop的输出,其输入值为SUMB_5_G。 SUMB_5_DFF_OUT_DFFY : X_FF

port map (

I => SUMB_5_G,

CLK => CLK_BUFGED,

CE => VCC,

SET => GND,

RST => GSR,

O => SUMB_5_DFF_OUT_QYDFF

);

接下来要参考的是这个flip-flop在SDF文件中的时序数据。

(CELLTYPE “X_FF”)

(INSTANCE SUMA_5_DFF_OUT_DFFX)

(DELAY

(ABSOLUTE

(PORT CLK (1622:1622:1622) (1622:1622:1622))

(PORT RST (5300:5300:5300) (5300:5300:5300))

(IOPATH CLK O (840:840:840) (840:840:840))

(IOPATH SET O (840:840:840) (840:840:840))

(IOPATH RST O (1700:1700:1700) (1700:1700:1700))

)

)

(TIMINGCHECK

(SETUP (posedge I) (posedge CLK) (360:360:360))

(SETUP (negedge I) (posedge CLK) (360:360:360))

(HOLD (posedge I) (posedge CLK) (0:0:0))

(HOLD (negedge I) (posedge CLK) (0:0:0))

(WIDTH (posedge CLK) (2300:2300:2300))

(WIDTH (negedge CLK) (2300:2300:2300))

(WIDTH (posedge RST) (4000:4000:4000))

)

追踪到这里,我们也找出许多的内部信号了,接下来所要做的是将这些信号显示在Wave窗口中。由图13-15可以看出,flip-flop SUMB_5_DFF_OUT_DFFY 的clock信号也是Clk_bufged,而其CLK port的延迟时间是1622ps,也就是图13-15中的第二个光标处。我们可以看到在第二个光标处信号SUMB_5_G的逻辑值为X,这就是造成信号SUMB_5_DFF_OUT_QYDFF及其后数个信号都是unknown的原因。

虽然我们已经追到造成信号Q(6)出现unknown的原因,但是还没找到造成这个原因的由来,为了找出那一段691ps宽度unknown现象,我们由信号SUMB_5_G 再往前追,其是由SUMB_5_FGBLOCK_LUTRAM_GLUT_XOR0及N_D3(6)两信号经XOR gate所产生,经仿真后的结果如图13-16所示。

由图13-16中可以看到信号SUMB_5_FGBLOCK_LUTRAM_GLUT_XOR0出现了一个glitch,以光标量测发现glitch的上升沿(第一个光标处)到信号SUMB_5_G开始转变成unknown的时间为510ps,再在SDF文件中找名称为SUMB_5_FGBLOCK_LUTRAM_GLUT_XOR1的XOR gate,其SDF的文件如下: (CELLTYPE “X_XOR2”)

(INSTANCE SUMB_5_FGBLOCK_LUTRAM_GLUT_XOR1)

(DELAY

(ABSOLUTE

(PORT I1 (2838:2838:2838) (2838:2838:2838))

(IOPATH I0 O (510:510:510) (510:510:510))

(IOPATH I1 O (510:510:510) (510:510:510))

)

)

我们再复习一下SDF文件的解释,信号I1到达这个XOR gate的时间会比图13-16中的N_D3(6)信号晚2838ps,不过这个信号都—直维持在逻辑’0’,因此对

XOR gate不会有任何影响。XOR gate的输出会受到信号I0影响,其输出时间会比信号I0晚510ps,正是图13-16中第二个光标处,而unknown状态的宽度691ps,正是图中信号SUMB_5_FGBLOCK_LUTRAM_GLUT_XOR1出现high glitch及low glitch 的总和,因此可以断定信号SUMB_5_G 的unknown 现象,是由信号SUMB_5_FGBLOCK_LUTRAM_GLUT_XOR1所造成。

接着看看如何解决这个问题,若由信号SUMB_5_FGBLOCK_LUTRAM_GLUT_XORl 往前追可以发现,这个由combinational logic所造成的现象,很难令其不出现,但却可以将这个现象避开,只要让flip-flop SUMB_5_DFF_OUT_DFFY上的CLK信号看不到这个unknown现象就好了,因此我们要将输入数据改变状态的时间再往前提,令flip-flop输入信号的unknown状态出现在其setup time及hold time的范围之外即可,图13-17即是移动输入信号后的情形。

在图13-17中第一个光标是Clk_bufged 的上升沿,在flip-flop SUMB_5_DFF_OUT_DFFY上的CLK信号会比C1k_bufged晚1622 ps,也就是图中第三个光标处。信号I(SUMB_5_G)对CLK信号的setup time为360ps,在这个范围内只要信号I是稳定的就好了。第二个光标是信号I unknown状态的结束,这一点到第三个光标处正好是满足setup time 的360ps ,而仿真的结果也与function simulation的结果一致了。

13-5 规格的设定

就前一节做timing simulation的结果而言,外部的输入信号D0~D3对C1k 信号的setup time需要大于5.906ps才能得到正确的仿真结果,我们回到前一章的report analyze一节中,Post Layout Timing report会有三种timing的分析,其中minimum input arrival time before clock为3.859ns,这个数值与我们所得到的数值有相当大的差距(约2ns),假设仍如report的分析将input setup time 设在4ns左右,也许在实际测试时就会出错了,所以在规格上的制定要特别小心。

接下来所要做的是将信号clk的频率加高,原先用在function simulation 的频率是20MHz,前级的输出延迟时间设定为与5.968ns最接近的值,也就是6ns,当频率渐渐升高(每次递增0.5ns),到达clock的周期为11.5ns时仿真结果发生错误,也就是说当周期为12ns时还能够得到正确的结果。这个数据相当合理,因为我们设定前一级的输出延迟时间较clk信号的上升沿晚了6ns,而我们设计的setup time 为5.906ns ,相加之后的数值最接近12ns ,其最高频率为

9

11210×-=83.3MHZ ,这才是我们设计的规格。 在输出延迟方面,当我们检查每一个输出信号与信号clk的关系后,发现

输出延迟最大的是6.671ns,这与Post Layout Timing report中的5.906ps又有些差距,因此我们可以将设计的timing spec.进行下面的描述(如图13-18所示)。

在此我仍要强调的一点是:规格上的83MHz应该是绝对可以正常执行的频率。但是事实上若是将设计以电路板实际测试,也许你会发现也许跑到100MHz都不会出问题,我们可以分成两方面来说,规格上的数值是保证可以在执行后得到正确的结果,但若是以比规格稍低的数值放在电路板上测试,比如数据的input setup time最小值为6ns,若我们将输入数据稍微调整,使其input setup time变成只是5ns,那么所得到的执行结果一定会错误吗?答案是未必,也许你在测试时都会得到正确的结果,甚至将其压缩到4ns或3ns都能得到正确的结果。因为simulation对数值的检查是非常严格的,只要差1ps结果就会出现unknown的现象,但是在实际的情况下却未必如此,所以能通过严格的仿真测试,往往在实际硬件的测试上没有问题,除非是用来仿真的pattern不够完整,还有一种情况是:用来做simulation的数据往往是在最差的环境状态下的数据,在常温下系统能执行的工作频率本来就比较高,所以实际的硬件测试能以较高的工作频率运行。但是在条件变化,比如说温度的升高或降低,测试的结果可能就会出问题了。有些开发系统产生的SDF文件包含了best、typical及worst三种情况,设计者可以仿真在不同的温度状态下的结果,但有些开发系统所给的只是一种状态下的数据,这时候仿真结果就只有顾及一种温度状态的环境了,所以仿真的结果还要与测试的环境相配合,才会得到比较正确的结果,而设计者给予用户的规格需要搭配温度的条件也就是这个因素。

13-6运用Textio做数据对比的Timing Simulation

在前面所提的timing simulation中,我们只用了少数几个数据来做timing simulation。然而这样少数的数据即使仿真结果都正确,就能表示这个设计是完全正确的吗?答案当然是否定的,因为在一个设计中,所有的逻辑布线都不一样长,所以延迟的时间也不一样长。若是仅以少数的数据做timing simulation ,但一些延迟较长的逻辑都没有发生状态上的改变,那么当延迟较长的逻辑发生状态改变时,可能就会出现一些像setup time或hold time不足的现象,在开发ASIC 的过程中,会有一个操作是计算逻辑的toggle rate,就是计算整个设计中,逻辑发生状态改变的比率,一般而言厂商都会要求这个比率要达到90%以上,就是为了验证test pattern的代表性是否足够。

还记得在12-4节中所做的place &route吧!使用XCV50-4的器件做完的结果,其最高速度为17MHz,若是以9-4-2中的九组不同信号当做test pattern来做timing simulation,所得到的结果与function simulation的结果一致,但是这

18个不同的数值会令整个设计中多少逻辑发生状态上的改变呢?我想这个答案应该不会太高才对,我们将这九组输入送到设计中做timing simulation ,得到如图13-19所示的结果。在图中可以看到所有的计算结果都是正确的。

接着我们要产生一组较具代表性的test pattern,由于前面已经验证过其功能上是正确的,因此只要用随机数产生一些不规则的数据拿来做仿真,以验证timing上没问题就好了,在此我们产生了一组400个不规则改变的32-bit输入数据,为了便于检查数据读入的正确性,我们会将数据以整数的方式存储。

接下来的操作是要再写一个程序,利用textio package读入输入数据及function simulation所得的结果,将输入数据送入设计,再将设计处理过的输出与function simulation的结果做对比,对比的结果若出现错误再以信息显示在ModelSim的主窗口上,在程序中对比的部分会写在一个process中,其表示法如下:

process

file DA :text open read_mode is “DataB.dat”;

file DO :text open read_mode is “DataO.dat”;

variable DLine :line;

variable OLine :line;

variable DataA :integer;

variable DataB :integer;

Variable Res :integer;

begin

wait Until Clk = ‘1’and Clk’event;

readline(DA,DLine);

read(DLine,DataA);

read

DInA <= CONV_STD_LOGIC_VECTOR(DataA,32) after 5 ns;

DInB <= CONV_ STD_ LOGIC_VECTOR(DataB,32) after 5 ns;

readline(DO,OLine);

read(OLine,Res);

DOutRead <= CONV_STD_LOGIC_VECTOR(Res,32);

if DOUtRead /= DOut then

assert false report “Two values are not the same”

severity error;

end if;

end process;

在这部分的程序里,可以看到会由两个文件读入数据,其中DataB.dat是用来存储输入数据,而DataO.dat是用来存储function simulation的结果。我们由DataO.dat读入数据放在DoutRead变量中,并与计算结果Dout对比,虽然400个数据的仿真结果未必能确定此设计在timing上的正确性,但只要有一个发生错误就表示无法达到系统的要求了。我们先以20MHz的clock做测试,所有400个数据都通过测试。接着将clock频率调高到25MHz,图13-20是ModelSim仿真结果的主窗口。我们由其显示的信息来看,在一开始仿真25ns处,有一次timing simulation 与function simulation结果不同的显示,我们可以由Wave窗口发现,这只是一开始GSR信号所造成的现象,但是再往下看就不妙了,因为在1387.105 ns处又发现两种simulations的结果不同。我们以Wave窗口检查,发现在这个时间点发生了问题,也就是主窗口中显示的信息:flip-flop的setup time不够。

Warning : */X_FF SETUP LOW VIOLATION ON I WITH PESPECT TO CLK; # Expected := 0.511 ns; Observed := 0.292 ns; At : 1387.105 ns

# Time : 1387105ps Iteration :0

Instance : /tb_fitadder/dut/n_dout_25_ffx_async_ff

也就是flip-flop/tb_fltadder/dut/n_dout_25_ffx_async_ff出了问题。我们先来看看其仿真情况,图13-21为其仿真结果,我们可以看到红框中信号dout 出现了unknown现象。

在time_sim.vhd中可以找到出问题的component,其接线情况为:

N_DOUT_25_FFX_ASYNC_FF : X_FF

port map (

I => N_DOUT_25_FROM;

CLK => CLK_BUFGPED,

CE => VCC,

SET => GND,

RST => GSR,

O => N_DOUT(25)

橡胶模具设计

橡胶模具设计 凌毅 安徽中鼎密封件股份有限公司 内容提要:橡胶作为一种高分子材料,在现实生活中的应用越来越广泛,橡胶制品的好坏直接影响其使用性能。生胶-塑炼-混炼-成型-硫化-修整(检验)是生产橡胶制品的必要工序,其中硫化是关键工序,对橡胶制品的质量起决定作用。因此,作为橡胶硫化用模具就显得尤为重要,模具的好坏直接影响橡胶制品的质量、成本、能耗等。 关键词:橡胶模具设计概述 橡胶模具的设计是一项系统工程,涉及橡胶加工工艺学、金属材料加工工艺学、材料力学、计算机软件工程等学科。本人初涉模具设计,就橡胶模具的设计谈一些自己肤浅的看法。 橡胶模具设计的基本工作流程:客户图纸评审阶段产品材料评审阶段计算成本确定模具结构利用电脑软件如AutoCAD或Pro/E出图校对试模修改总结。下面我就每一阶段的工作做一个简要的阐述。 客户图纸评审:根据客户提供的图纸,认真吃透、消化顾客对产品的要求,明确产品的使用条件,确定产品工作面、关键尺寸、尺寸公差等。这一阶段的工作非常重要,因为即使你模具设计得非常好,但是生产出来的产品不符合客户的要求也是枉然,有必要的话还需与客户沟通。这一阶段所得到的信息是我们进行模具结构设计的依据。 产品材料评审:依据材料工程师确定的胶料,掌握该胶料的相关性

能,最主要的是硫化速度、焦烧时间、流动性、硬度、胶料收缩率等,该工作阶段获取的信息是确定模穴数、模腔尺寸等的依据。 成本计算:包括胶料的价格、模具费用等相关费用,初步估算产品的单位成本以确定该产品是否宜于开发。 模具结构设计:根据前三个阶段所得到的基本信息,初步确定模具结构,该阶段为重要阶段,是信息的输出阶段,也是设计人员具体水平体现的阶段,这一阶段的工作较多,主要包括以下几方面内容: 1.分型面的选择:依据产品结构,选择分型面。 分型面的选择应考虑:a)保证制品易取出;b)排气方便;c)避免锐角;d)避开制品工作面;e)保证制品精度;f)便于装填胶料,模具易于装拆;g)加工的难易程度等因素,同时进行综合分析,选择最优方案。2.分型面选择好以后,依据硫化机的类型,制品厚度等确定模具层数、高度及其材料。 3.依据硫化条件、压机类型、生产效率、模具材料的强度确定模穴数。 4.导向定位装置的采用。对于那些采用活动模芯的模具应考虑定位。 5.根据胶料收缩率确定模具型腔的基本尺寸,一般高度方向由于飞边的影响,收缩率可放小一点。 6.余料槽的开设。 出图:经过以上步骤后,可以将模具在大脑中形成的初步设想通过AutoCAD或Pro/E等软件绘出来。注意图纸须符合国家标准要求。 校对:对图纸进行校对,可由别人或自己进行。校对顺序依次进行,先粗略看一下整个幅面是否符合国标要求,尺寸是否齐全,公差配合是

第一审普通程序中若干问题的完善

第一审普通程序中若干问题的完善2012年修改的《民事诉讼法》用38个条文来对第一审普通程序进行了规定,本次《民事诉讼法》解释(以下简称《解释》)在第208至第255条的48个条文又对《民事诉讼法》中第一审普通程序相关条文做了进一步解释。 一、庭审对象:人民法院的审理对象是否应受到争议焦点的约束 虽然我国民事审判方式改革趋向是从超职权主义模式向当事人主义与法院职权主义兼容模式,但在实务中,个别人民法院在审理民事案件时仍存在滥用诉讼指挥权、超职权主义倾向(实务主要表现为超越当事人诉讼请求、事实和理由,对当事人争议焦点以外的事实进行主动审查)。 现行《民事诉讼法》对第一审普通程序庭审对象并未做出规定,但最高人民法院在1993年颁布的《第一审经济纠纷案件适用普通程序开庭审理的若干规定》、]2003年《最高人民法院关于适用简易程序审理民事案件的若干规定》第21条对当事人举证、质证应围绕争议焦点进行做了规定,并未正面回答人民法院的审理对象是否应受到争议焦点的约束。有鉴于此,《解释》第228条对人民法院开庭审理的范围与争议焦点之间的关系作了规定。即《解释》第228条:“法庭审理应当围绕当事人争议的事实、证据和法律适用等焦点问题进行。”按照辩论主义的要求,法院一般不得自行将当事人没有主张的主要事实(要件事实)作为审判对象。具体而言,包括三项内容: 1.主要事实必须由某一方当事人做出明确的主张,对于当事人没有主张的事实法院既不得自行提出进行审理,也不得做出判断; 2.如果对于一方当事人提出的主要事实,另一方当事人给予了明确承认的话,则法院只能认定该事实存在或属实,而不得另行审理并做出其他判断;当然存在允许自认的例外,如人身关系通常需要证据证明,不限于当事人的承认; 3.对于自己所主张的主要事实,当事人负有提出证据加以证明的责任,法院原则上不得自行收集并审查证据。 但何谓当事人主张的主要事实?从当事人主张主要事实的目的而言,其是为说明其诉讼请求的合理性。也即,与当事人所主张的诉讼请求直接相关的事实一般都可归类为当事人主张的主要事实。从2012年修改的《民事诉讼法》规定来看,这些事实一般都在审理前的准备阶段通过双方当事人的诉答行为、证据交换行为由人民法院通过归纳争议焦点方式加以固定。 争议焦点是当事人之间就具体的案件事实、法律、证据、程序所产生的争执。换言之,争议焦点所及范围就是人民法院审理的范围。由于在审理前的准备过程中,组织庭前准备的

冷冲压模具设计实例

A冷冲压模具设计实例 工件名称:手柄 工件简图: 生产批量:中批量 材料:Q235-A钢 材料厚度:1.2mm 1、冲压件工艺性分析 此工件只有落料和冲孔两个工序。材料为Q235-A钢,具有良好的冲压性能,适合冲裁。工件结构相对简单,有一个φ8mm的孔和5个φ5mm的孔;孔与孔、孔与边缘之间的距离也满足要求,最小壁厚为3.5mm(大端4个φ5mm的孔与φ8mm孔、φ5mm的孔与R16mm外圆之间的壁厚)。工件的尺寸全部为自由公差,可看作IT14级,尺寸精度较低,普通冲裁完全能满足要求。 2、冲压工艺方案的确定 该工件包括落料、冲孔两个基本工序,可有以下三种工艺方案: 方案一:先落料,后冲孔。采用单工序模生产。 方案二:落料-冲孔复合冲压。采用复合模生产。 方案三:冲孔—落料级进冲压。采用级进模生产。 方案一模具结构简单,但需两道工序两副模具,成本高而生产效率低,难以满足中批量生产要求。方案二只需一副模具,工件的精度及生产效率都较高,但工件最小壁厚 3.5mm 接近凸凹模许用最小壁厚3.2mm,模具强度较差,制造难度大,并且冲压后成品件留在模具上,在清理模具上的物料时会影响冲压速度,操作不方便。方案三也只需一副模具,生产效率高,操作方便,工件精度也能满足要求。通过对上述三种方案的分析比较,该件的冲压生产采用方案三为佳。 3、主要设计计算 (1)排样方式的确定及其计算 设计级进模,首先要设计条料排样图。手柄的形状具有一头大一头小的特点,直排时材料利用率低,应采用直对排,如图8.2.2手柄排样图所示的排样方法,设计成隔位冲压,可显著地减少废料。隔位冲压就是将第一遍冲压以后的条料水平方向旋转180°,再冲第二遍,在第一次冲裁的间隔中冲裁出第二部分工件。搭边值取 2.5mm和 3.5mm,条料宽度为

焊接操作仿真训练模拟器

武汉科码焊接操作仿真训练模拟器 产品采用分布式仿真实训技术、虚拟现实技术、微机测控技术、声音仿真技术及计算机图像实时生成技术。在不需要真实焊机的情况下,通过仿真主控系统、位置追踪系统,将焊接演练过程中焊枪的位置、速度和角度等进行采集处理,并实时生成虚拟焊缝。 将仿真操作设备、实时3D技术及渲染引擎相结合,演练过程真实,视觉效果、操作手感与真实一致。在焊接演练的过程中,学员能够看到焊接电弧以及焊液从生成、流动到冷却的过程,同时听到相应的焊接音效。 可实现教师端各项功能,分别是:监控、课程设计、任务设计、学生管理、成绩管理、任务共享和系统设置。教师机用于制定任务,供学生练习和考试,在考试完成后可以查看考试成绩,并对学生进行管理。 1、教师软件功能 (1)监控 选择虚拟焊接设备,向其发送训练或考试任务。每台设备应可以同时接受不同类型的课程,或进入不同的模式。 (2)课程设计 可以对课程内容进行设置,应包括:课程名称、任务等,并可方便的添加和删除。应可以查看课程信息:选择一个节点,显示出该节点的详细信息。 (3)任务设计 应可以对任务内容进行设置,须包括:任务名称、目的、焊机类型、接口类型、焊接位置、坡口类型和母材厚度等。

应可查看该教师设计的任务:选择一个节点显示出该节点的详细信息。 (4)学生管理 应可以新建年级、新建专业、新建班级、新建学生、修改学生信息、删除信 息等。 (5)成绩管理 须可以查看自己所管理班级的课程成绩单、学生考试成绩单、任务详细成绩单。须能以文字报告、焊接参数曲线显示训练结果。 (6)任务共享 须实现查看其它教师所设计的任务并能共享。选择要查看的教师,任务列表中须显示出所有的任务,单击某一任务应可以查看任务详细信息。 (7)系统设置 须可将学员列表中的自由设备添加到自己的教学组。可以修改登录密码、设 置公差等级的具体参数。 2、管理员功能 须可向虚拟焊接设备发送任务;能查看课程信息、任务信息、学生信息和成绩;对教师进行管理;分配虚拟焊接设备设备。管理员分为七个部分:设备监控、课程设计、任务设计、教师管理、学生管理、成绩管理和系统设置。 (1)设备监控 须可以查看当前焊接设备,通过选择教师(管理员“设备监控”可以“选择教师”,其他功能与教师“监控”相同)、课程及任务向学员机发送任务。

审计学习题与解答第13章

第十三章销售与收款循环审计 第一部分习题 一、思考题 1销售交易的职责分离的基本要求有哪些? 2针对登记入帐的销售交易真实性的实质性程序。 3针对营业收入如何运用实质性分析程序。 4销售交易的记录及时有哪几方面的要求? 5应收帐款的函证的方式有几种。 6对应收帐款函证不符事项的处理。 二、名词解释 1销售单 2贷项通知单 3销售截止测试 4应收帐款函证 5应收帐款与预收款项的重分类调整 三、单项选择题 1.对通过函证无法证实的应收账款,注册会计师应当执行的最有效的审计程序是( )。 A.重新测试相关的内部控制 B.抽查有关原始凭据,如销售合同、销售订单、销售发票副本及发运凭证等 C.实施实质性分析程序 D.审查资产负债表日后的收款情况 2.注册会计师对被审计单位实施销货业务截止测试,主要目的是为了检查( )。 A.年底应收账款的真实性 B.是否存在过多的销货折扣 C.销货业务的入账时间是否正确 D.销货退回是否已经核准 3.对大额逾期应收账款如无法获取询证函回函,则注册会计师应( )。 A.审查所审期间应收账款的回收情况 B.了解大额应收账款客户的信用情况 C.审查与销货有关的订单、发票、发运凭证等文件 D.提请被审计单位提高坏账准备提取比例 4.适当的职责分离有助于防止各种有意的或无意的错误,以下的表述中进行了适当的职责分离的是( )。 A.负责应收账款记账的职员负责编制银行存款余额调节表 B.编制销售发票通知单的人员同时开具销售发票 C.在销售合同订立前,由专人就销售价格、信用政策、发货及收款方式等具体事项与客户进行谈判 D.应收票据的取得、贴现和保管由某一会计专门负责 5.在以下销售与收款授权审批关键点控制中,未做到恰当控制的是( )。 A.在销售发生之前,赊销已经正确审批 B.未经赊销批准的销货一律不准发货 C.销售价格、销售条件、运费、折扣由销售人员根据客户情况进行谈判 D.对于超过既定销售政策和信用政策规定范围的特殊销售业务,采用特别授

时序计算和Cadence 仿真结果的运用

时序计算和Cadence仿真结果的运用 中兴通讯康讯研究所EDA设计部余昌盛刘忠亮 摘要:本文通过对源同步时序公式的推导,结合对SPECCTRAQuest时序仿真方法的分析,推导出了使用SPECCTRAQuest进行时序仿真时的计算公式,并对公式的使用进行了说明。 关键词:时序仿真源同步时序电路时序公式 一.前言 通常我们在时序仿真中,首先通过时序计算公式得到数据信号与时钟信号的理论关系,在Cadence仿真中,我们也获得了一系列的仿真结果,怎样把仿真结果正确的运用到公式中,仿真结果的具体含义是什么,是我们正确使用Cadence仿真工具的关键。下面对时序计算公式和仿真结果进行详细分析。 二.时序关系的计算 电路设计中的时序计算,就是根据信号驱动器件的输出信号与时钟的关系(Tco——时钟到数据输出有效时间)和信号与时钟在PCB上的传输时间(Tflytime)同时考虑信号驱动的负载效应、时钟的抖动(Tjitter)、共同时钟的相位偏移(Tskew)等,从而在接收端满足接收器件的建立时间(Tsetup)和保持时间(Thold)要求。通过这些参数,我们可以推导出满足建立时间和保持时间的计算公式。 时序电路根据时钟的同步方式的不同,通常分为源同步时序电路(Source-synchronous timing)和共同时钟同步电路(common-clock timing)。这两者在时序分析方法上是类似的,下面以源同步电路来说明。 源同步时序电路也就是同步时钟由发送数据或接收数据的芯片提供。图1中,时钟信号是由CPU驱动到SDRAM方向的单向时钟,数据线Data是双向的。 图1

图2是信号由CPU 向SDRAM 驱动时的时序图,也就是数据与时钟的传输方向相同时 的情况。 Tsetup ’ Thold ’ CPU CLK OUT SDRAM CLK IN CPU Signals OUT SDRAM Signals IN Tco_min Tco_max T ft_clk T ft_data T cycle SDRAM ’S inputs Setup time SDRAM ’S inputs Hold time 图2 图中参数解释如下: ■ Tft_clk :时钟信号在PCB 板上的传输时间; ■ Tft_data :数据信号在PCB 板上的传输时间; ■ Tcycle :时钟周期 ■ Tsetup’:数据到达接收缓冲器端口时实际的建立时间; ■ Thold’:数据到达接收缓冲器端口时实际的保持时间; ■ Tco_max/Tco_min :时钟到数据的输出有效时间。 由图2的时序图,我们可以推导出,为了满足接收芯片的Tsetup 和Thold 时序要求,即 Tsetup’>Tsetup 和Thold’>Thold ,所以Tft_clk 和Tft_data 应满足如下等式: Tft_data_min > Thold – Tco_min + Tft_clk (公式1) Tft_data_max < Tcycle - Tsetup – Tco_max + Tft_clk (公式2) 当信号与时钟传输方向相反时,也就是图1中数据由SDRAM 向CPU 芯片驱动时,可 以推导出类似的公式: Tft_data_min > Thold – Tco_min - Tft_clk (公式3) Tft_data_max < Tcycle - Tsetup – Tco_max - Tft_clk (公式4) 如果我们把时钟的传输延时Tft_clk 看成是一个带符号的数,当时钟的驱动方向与数据 驱动方向相同时,定义Tft_clk 为正数,当时钟驱动方向与数据驱动方向相反时,定义Tft_clk 为负数,则公式3和公式4可以统一到公式1和公式2中。 三.Cadence 的时序仿真 在上面推导出了时序的计算公式, 在公式中用到了器件手册中的Tco 参数,器件手册中Tco 参数的获得,实际上是在某一种测试条件下的测量值,而在实际使用上,驱动器的实际 负载并不是手册上给出的负载条件,因此,我们有必要使用一种工具仿真在实际负载条件下 的信号延时。Cadence 提供了这种工具,它通过仿真提供了实际负载条件下和测试负载条件 下的延时相对值。 我们先来回顾一下CADENCE 的仿真报告形式。仿真报告中涉及到三个参数:FTSmode 、

橡胶模具设计与制造

都说术业有专攻,各行各业都有自己的一个考核标准,一套橡胶模具从研究开发到完全生产制造出来是非常有讲究的,不仅要拥有多年从事研究开发经验的技术工程团队,在橡胶制造的细节上,也是一点也马虎不得的。 一套模具的造价相对来说还是比较昂贵的,少则几万块,多则几百万。无论是对于模具的制造方还是模具的验收方来说,保证模具制作过程的高标准,需要在模具的设计阶段做到深思熟虑,考虑得面面俱到。 如果是不专业的厂家定制的模具,在模具设计上就会有缺陷,不仅严重影响到注塑生产的连续性和稳定性,也会影响生产效率,并且在注塑过程当中容易产生不稳定的情况,生产出来的产品不良率也会变高,不专业的厂家还容易因为不了解商家定制模具结构的需求,容易造成料耗高和人工浪费的情况专业的模具制造厂家从模具设计、模具制造、橡塑产品材料开发,半成品、成品、印刷、包装的完整生产线,采用符合ROHS标准的日本、德国、美国、台湾及国内各种性能高的硅胶、橡胶、塑胶、五金原料。拥有全面的橡塑模具和橡塑产品的生产设备和检测试验设备,能够满足各种注塑件加工需求。 深圳佳诺佳精密科技有限公司一直致力于模具和中高端橡塑制品的研究和开发工作。拥有成套的橡塑模具及生产设备和检测试验设备。团队有多名从事模具设计、橡塑配方、及超过20年以上相关经验的工程技术和管理人员。公司从模具设计、模具制造、橡塑产品材料开发,半成品、成品、印刷、包装的完整生产线。从胶料引进到多样化产品的出厂,每一个生产过程都得到严密的控制,成熟的生产设备,现代的生产管理是品质产品的保障。引进橡塑模具和橡塑产品的专业生产设备和检测试验设备,不断改进生产工艺,为业内提供更好的塑胶配件,是我们共同的理想,也是我们砥砺前行的伟大使命!

焊接虚拟仿真培训系统,DOC

焊接虚拟仿真培训系 统,D O C(总3页) -CAL-FENGHAI.-(YICAI)-Company One1 -CAL-本页仅作为文档封面,使用请直接删除

1、焊接培训行业状况 焊接是一项对过程要求很高的工作,在现有的手工焊接生产中,采用MAG/MIG焊接的约占50%,TIG焊接约占30%,MMA焊接约占20%;如:在造船行业中,MAG约占70%,MMA约占30%;那么,这就需要焊工要有扎实的操作手法、规范的动作。而在焊接培训过程中传统方式存在以下多种问题: (1)消耗大量的焊条(丝)、焊件和保护气体等材料; (2)对学员的培训过程难以准确掌握; (3)对学员的焊接水平难以评价; (4)培训效果不尽理想; (5)培训过程环境污染严重,有害健康; (6)培训过程安全性差。 2、项目实施目的 1)减少甚至避免焊接练习过程中强光、高温、明火及烟尘以及有毒气体的产生,全面保护教师和学员的身体健康; 2)减少或者避免焊接实训过程中对空气污染的有害气体的排放,防止对环境造成污染; 3)能够让无工作经验的学员快速、真实的投入到焊接实训中,提高培训效率,避免由于无经验操作产生的事故。同时能够让有经验的训练者有更高的训练平台,提高焊接技术; 4)节省真实焊材、工件等焊接材料以及工业用电,降低培训成本; 方便教学。 3、焊接仿真模拟器概述 电焊操作训练模拟器系统是由武汉科码软件有限公司独立自主研发的焊接虚拟仿真培训系统。该系统是基于虚拟计算机系统,是以中高度仿真的教学培训系统,能让学员在接近真实的模拟环境下进行焊接技术的训练。该系统能促进焊接技能向实际工况焊接的有效转换。与传统的焊接培训相比减少了焊材的浪费。该设备结合了:焊工的动作、仿真焊接焙池、焊接声音及焊接手感,使用该系统的受训者能够感受到几乎真实的焊接过程。 电焊模拟实训系统是新一代环保、节能、通用型操作技能实训与评价平台。 该系统采用分布式仿真实训技术、虚拟现实技术、微机测控技术、声音仿真技术及计算机图像实时生成技术。在不需要真实焊机的情况下,通过仿真主控系统、位置追踪系统,将焊接演练过程中焊枪的位置、速度和角度等进行采集处理,并实时生成虚拟焊缝。 该系统将仿真操作设备、实时3D技术及渲染引擎相结合,演练过程真实,视觉效果、操作手感与真实一致。在焊接演练的过程中,学员能够看到焊接电弧以及焊液从生成、流动到冷却的过程,同时听到相应的焊接音效。 该系统与传统的焊接技艺教学能有机的融合在一起,是实现灵活、高效、安全、节约、绿色无污染的焊接模拟培训教学与考核的最佳教学方法。 通过电焊模拟实训系统,学员不仅仅可以获得与传统实训相同的操作经验,同时通过系统内置的数据采集、智能专家辅助模块和量化考核评价系统等一系列先进独特的教学功能,配合合理明晰的焊接知识穿插讲解,使学员可以获得在传统教学实践过程中难以量化的精确焊接培训指导,大幅度提升学员在培训过程中的方向性和目的性,有效缩短学员的培训周期,降低教师的教学负担,达到以低成本、低投入实现“精教、精学、精炼”的焊接培训机制。

刑事诉讼一审普通程序

刑事诉讼一审普通程序庭审操作规范 一、开庭准备和开庭宣布 1、书记员的庭前准备工作。 书记员应先期到达法庭,做好以下开庭前准备工作: (1)宣布:公诉人和诉讼参加人入庭就坐。公诉人和诉讼参加人入庭就坐后,检查出庭人员的到庭情况,并到案前核对当事人及其诉讼代理人、辩护人的身份等情况。 (2)如有证人、鉴定人、勘验检查人、专家出庭的,经核对其身份后,请其退席,等候传唤。 (3)公开开庭的,应当检查参加旁听的人员是否适合,是否有现场采访的记者。 如发现有未成年人(经批准的除外)、精神病人和醉酒的人以及其他不宜旁听的人旁听开庭的,应当请其退出法庭或者向审判长报告。 如发现有记者到庭采访,应当确认其是否办理审批手续,并向审判长被告。如未经获得批准,应当明确告知记者不得录音、录像或者摄影;但应当允许记者作为旁听人员参加旁听和记录。 (4)宣布法庭规则和法庭纪律。 书记员宣布:现在宣布法庭规则和法庭纪律。法庭规则和法庭纪律的具体内容以《法庭规则》的有关规定为准。 2、法官入庭和报告庭审前准备情况。 书记员宣布:全体起立!然后引领审判长、审判员(人民陪审员)入庭。待合议庭成员坐定后,书记员宣布:请坐下。 准备工作就绪后,书记员向审判长报告以下庭审前准备工作情况: (1)出庭的公诉人和诉讼参加人的情况; (2)出庭的其他诉讼参与人的情况; (3)到庭旁听采访的新闻单位及记者的情况; (4)其他需要向审判长报告的情况。 最后,书记员报告:法庭准备工作就绪,请审判长主持开庭。 3、核对确认出庭人员的身份。 在书记员已核对的基础上,审判长简单查明和核对出庭人员身份即可。 经控辩双方对出庭的人员身份确认无异后,即宣布:经法庭当庭核对确认,出庭的人员符合法律规定,准予参加本案的庭审活动。 4、传唤被告人并查明其基本情况。 审判长宣布:传被告人…到庭。 被告人在押的,由法警押解到庭并对其实施看守。被告人戴手铐、脚镣等戒具的,先由法警解除其戒具。 被告人到庭后,审判长查明被告人的情况:(一)基本身份情况;(二)受到法律处分的情况;(三)被采取强制措施的情况;(四)起诉书副本的收悉情况。 5、宣布开庭、案名、案件由来、审理程序和方式。 审判长先敲击法槌,然后庄严宣布:……人民法院现在开庭! 宣告案名:本庭现审理的是:公诉机关XXX人民检察院诉(或者“指控”)被告人XXX 犯…罪一案。 宣告案件由来:公诉机关因本案,于…(时间)以…(起诉书文号)起诉书向本院提起公诉;本院经审查,于…(受理时间)决定受理本案。本案系附带民事诉讼、再审案件、合并审理案件的,还应当说明。

焊接模拟sysweld详细教程

目录1、模型的建立 1.1创建Points 1.2由Points生成Lines 1.3由Lines生成Edges 1.4由Edges生成Domains 1.5离散化操作 1.6划分2D网格 1.7生成Volumes 1.8离散Volumes 1.9生成体网格 1.10划分换热面 1.11划分1D网格 1.12合并节点 1.13保存模型 1.14组的定义操作 1.15保存 2、焊接热源校核 2.1建立模型并修改热源参数 2.2检查显示结果 2.3保存函数 2.4热源查看 2.5保存热源 2.6高斯热源校核 3、焊接模拟向导设置 3.1材料的导入 3.2热源的导入 3.3材料的定义 3.4焊接过程的定义 3.5热交换的定义

3.6约束条件的定义 3.7焊接过程求解定义 3.8冷却过程求解定义 3.9检查 4、后处理与结果显示分析 4.1计算求解 4 .2导入后处理文件 4.3结果显示与分析

1、模型的建立 1.1创建points 根据所设计角接头模型的规格,选定原点,然后分别计算出各节点的坐标,按照Geom./Mesh.→geometry→point步骤,建立一下十个点:(0,0,0)、(0,0,10)、(0,0,50)、(10,0,50)、(10,0,20)、(10,0,10)、(20,0,10)、(50,0,10)、(50,0,0)、(10,0,0)。 1.2由Points生成Lines 按照Geom./Mesh.→geometry→1Dentities步骤,按照一定的方向性将各点连接成如下图所示的Lines: 1.3由Lines生成Edges 按照Geom./Mesh.→geometry→EDGE步骤,点击选择各边,依次生成如下图所示各Edges:

民事诉讼第一审普通程序庭审程序

民事诉讼第一审普通程序庭审程序第一部分: 书记员:原告入庭,被告入庭(书记员核对诉讼参与人身份)。 书记员:现在宣布法庭纪律:( 1.法庭内要保持肃静,不得喧哗,禁止吸烟; 2.开庭过程中不得随便走动,不得进入审判区;3.未经法庭允许,不准录音、录像和拍照; 4.未经法庭允许,不准发言或提问;5.关闭移动通信工具。) 书记员:全体起立,请合议庭成员入庭。 报告审判长,原告×××诉被告×××纠纷一案,双方当事人均已到庭,法庭准备工作已经就绪,可以开庭。 审判长:请坐 书记员:报告审判长,原告池彩平诉被告中房集团瑞安房地产开发有限公司纠纷一案,双方当事人均已到庭,法庭准备工作已经就绪,可以开庭。 审判长:(敲锤)现在开庭 现在核对当事人,原告讲一下你的姓名、出生年月日,工作单位、职务及家庭住址。 原告:。。。。。。 审判长:原告委托代理人的姓名,身份代理权限 委托代理人:。。。。。一般代理 审判长:有和解的权利吗 委托代理人:有 审判长:被告单位全称、地址、法定代表人姓名。 被告:。。。。。。 审判长:委托代理人的姓名、身份,代理权限 委托代理人:。。。。。。

原告对对方出庭人员有无异议? 被告对对方出庭人员有无异议? 经审查上述当事人的手续,符合有关法律规定,准予参加本案诉讼。 本案受理后,依法由本院法官张瑜建也就是我担任审判长并主审,与法官马佳楠、人民陪审员缪秉杨组成合议庭,适用《中华人民共和国民事诉讼法》第一审普通程序,共同负责对案件的审判,由书记员洪星辉担任法庭记录。当事人如认为上述人员不能公正审理本案,可以提出理由申请他们回避。 原告是否申请回避? 被告是否申请回避? 原告在诉讼中的其他权利义务是否清楚? 被告在诉讼中的其他权利义务是否清楚? (如当事人称不清楚,告知当事人依法享有下列诉讼权利):根据民事诉讼法的有关规定当事人享有以下权利和负担以下义务: 1.提出证据、申请调查、申请鉴定的权利; 2.进行辩论和请求调解的权利; 3.原告有放弃、变更、增加诉讼请求的权利;被告有承认、反驳对方诉讼请求、反诉的权利; 4.反对对方陈述与本案无关事实的权利; 5.最后陈述的权利; 6.有请求回避的权利,即当事人如果认为本合议庭组成人员、书记员与本案有利害关系或与本案当事人有其他关系,可能影响对案件公正处理的,有权申请更换上述人员。

Modelsim的功能仿真和时序仿真

FPGA 设计流程包括设计输入,仿真,综合,生成,板级验证等很多阶段。在整个设计流程中,完成设计输入并成功进行编译仅能说明设计符合一定的语法规范,并不能说明设计功能的正确性,这时就需要通过仿真对设计进行验证。在FPGA 设计中,仿真一般分为功能仿真(前仿真)和时序仿真(后仿真)。功能仿真又叫逻辑仿真,是指在不考虑器件延时和布线延时的理想情况下对源代码进行逻辑功能的验证;而时序仿真是在布局布线后进行,它与特定的器件有关,又包含了器件和布线的延时信息,主要验证程序在目标器件中的时序关系。在有些开发环境中,如Xilinx ISE 中,除了上述的两种基本仿真外,还包括综合后仿真,转换(post-translate)仿真,映射后(post-map)仿真等,这样做完每一步都可进行仿真验证,从而保证设计的正确性。 ModelSim 是Mentor Graphics 子公司MentorTechnology 的产品,是当今最通用的FPGA 仿真器之一。ModelSim 功能强大,它支持FPGA 设计的各个阶段的仿真,不仅支持VHDL 仿真,Verilog仿真,而且支持VHDL 和Verilog 混合仿真。它不仅能做仿真,还能够对程序进行调试,测试代码覆盖率,对波形进行比较等。ModelSim 有很多版本,像ModelSim/SE 是首要版本,除此之外还有ModelSim/XE 和ModelSim/AE,分别是为Xilinx 公司和Altera 公司提供的OEM 版,其中已包含各公司的库文件,故用特定公司OEM 版进行仿真时就不需编译该公司的库了。 用ModelSim 进行功能仿真 进行功能仿真首先要检查设计的语法是否正确;其次检查代码是否达到设计的功能要求。下文主要介绍仿真步骤和测试激励的加载。 仿真步骤 (1)建立库并映射库到物理目录 因为用ModelSim 进行仿真是建立在仿真库的基础上的(此处进行的是功能仿真,因而不用编译特定厂商的库),所以首先要建立库并把库映射到实际的物理路径。通常用户编译的文件都放在work库中,所以必须先建立work 库。有两种方法建立并映射库,第一种方法是通过图形界面,在菜单Design→Create a New Library 弹出对话框,如图1 所示。在Library Name 中输入work,如果建立其它库,可以输入其它名字。Library Map to 是映射的物理路径。第二种方法是用命令行的形式,建立库用ModelSim>vlib<库名>,映射库用ModelSim> vmap ,如建立并映射库work,就可以在ModelSim 主窗口命令提示符下输入 vlib work vmap work work (2)编译源代码 该步骤主要检查源文件的语法错误。实现方法有两种,一是通过菜单Design→Compile,出现选择源文件对话框,选择要编译的源文件,编译即可;二是通过命令行方式,这一步对于VHDL 和Verilog 所使用的命令是不一样的,对于VHDL 代码用vcom-work.vhd.vhd ,

在Abaqus模拟焊接的方法图文操作

ABAQUS模拟焊接的方法 ——子程序dflux方法 作者:yanzongbao110 本文主要通过一个非常简单的平板焊接的例子来介绍abaqus使用子程序dflux模拟焊接的一般方法。 这里采用顺次耦合方法,以下对整个过程做简要介绍。 1. part and mesh 新建model-1,建立如下part(为模型的一半),长,宽,高分别是:100,50,5 图表 1 在model菜单中edit attibute,如下: 图表 2 进入mesh选项卡进行划网格,这里进行粗略划分,网格及单元选择如下图:

图表 3 图表 4 2. material 在material选项卡里新建材料,这里假设焊缝与母材的材料一样,所以只建立一种材料。材料包括以下部分(本例中没有应用latent heat): 图表 5 图表 6 3. assembly

在assembly选项中,进行装配。如下: 图表 7 建立不同的集合及表面,以便后面保用。 建立set-allnode,如下图 图表 8 建立surface-rad,如下图。注意左侧面为对称面,不选择。 图表 9 4.创建分析步 创建两个热传导分析步,分别是焊缝加热和冷却过程。如下图:

图表 10 定义第一个分析步: (a) (b) 图表 11 定义第二个分析步: (a) (b) 图表 12 5. 创建interaction 在interaction中创建对流和辐射边界条件如下:

(a) (b) 图表 13 (a) (b) 图表 14 6. 边界条件建立 首先建立预定义场,定义初始温度为20℃,选择集合set-allnode,如下图: (a) (b) 图表 15 建立body heat flux载荷,选择整个实体,设置为user-defined,如下图:

第十六章 第一审程序

第十六章第一审程序 == 信息中心== 【答疑解惑专栏】 疑问1:我国民事审判程序是如何构成的? 解答:我国民事诉讼程序由审判程序和执行程序组成。民事诉讼法规定的审判程序,就其性质而言,可分为两大类:一类是民事权益争议案件(该类案件以原告、被告同时存在为形成要件,具有民事权利义务的讼争性。)的审判程序,由第一审程序、第二审程序和审判监督程序构成。另一类是特殊民事案件(该类案件民事权利义务具有非讼性、不以当事人双方同时存在为构成要件。)的审判程序,具体包括特别程序、督促程序、公示催告程序和企业法人破产还债程序;这四个程序各自独立,各有其特定的程序规则,适用这四个程序审理的案件不能上诉,也不适用审判监督程序进行再审。以下为我国民事审判程序立法的现实构造图表: ┌───────────┐ ┌┤特别程序(法典第十五章)│ │└───────────┘ ┌──────────┐│┌───────────┐ ││├┤督促程序(法典第十七章)│ ┌──┐│特殊民事案件├┤└───────────┘ │民│┌┤(民事非权益争议案件)││┌─────────────┐ │事法│││审判程序│├┤公示催告程序(法典第十八章)│ │审典││└──────────┘│└─────────────┘ │判第├┤│┌────────────┐ │程二││└┤企业法人破产还债程序│ │序编│││(法典第十九章) │ │││└────────────┘ │││┌─────────┐ └──┘│┌──────────┐││┌───┐

││││第一审普通程序├┐│第二审│ ││││(法典第十二章)│││程序│ └┤一般民事诉讼案件├───┤│├───┤(法典│ │(民事权益争议案件│├─────────┤├─┐│第十四│ │审判程序)││简易程序├┘││章)│ └──────────┘│(法典第十三章)││││ │││└─┬─┘ └────────┘││ ┌───────────┘│ │┌──────────┐│ └──┤审判监督程序├─┘ │(法典第十六章)│ └——────────┘ 疑问2:如何理解人民法院审查起诉的内容与起诉的条件的相互关系? 解答:应当明确人民法院审查起诉的内容与起诉条件的规定内容是一致的,人民法院审查起诉的目的是行使审判权以确定原告起诉是否符合法定条件,从而决定是否立案。 疑问3:遵守诉讼时效规定是否是起诉的条件? 解答:遵守诉讼时效规定不是起诉的法定条件的内容。当事人超过诉讼时效期间起诉的,人民法院应予受理。受理后查明无中止、中断、延长事由的,判决驳回其诉讼请求。 疑问4:如何理解裁定不予受理的法定情形 解答:我国民事诉讼法第111条和有关司法解释条文规定(具体内容详见教材第229页—230页)了人民法院不予受理案件的若干情形。其原因是(1)不属于人民法院主管的民事案件的情况;(2)虽然是民事诉讼案件,但法律规定人民法院不予受理或者在一定期限内不予受理。 疑问5:如何理解准予撤回起诉裁定和准予撤回上诉裁定效力的区别? 解答:二者的区别主要在于,原告在一审法院作出准予撤回起诉裁定后,仍然有权再起诉,只要符合起诉的法定条件,人民法院应当受理;而上诉人在二审法院作出准予撤回上诉的裁定后,无权再上诉。

时序计算和Cadence仿真结果的运用

字体大小: 小中大作者:余昌盛刘忠亮来源:日期:2007-06-25 点击:558 摘要:本文通过对源同步时序公式的推导,结合对SPECCTRAQuest时序仿真方法的分析,推导出了使用SPECCTRAQuest进行时序仿真时的计算公式,并对公式的使用进行了说明。 一、前言 通常我们在时序仿真中,首先通过时序计算公式得到数据信号与时钟信号的理论关系,在cadence仿真中,我们也获得了一系列的仿真结果,怎样把仿真结果正确的运用到公式中,仿真结果的具体含义是什么,是我们正确使用Cadence仿真工具的关键。下面对时序计算公式和仿真结果进行详细分析。 二.时序关系的计算 电路设计中的时序计算,就是根据信号驱动器件的输出信号与时钟的关系(Tco——时钟到数据输出有效时间)和信号与时钟在PCB上的传输时间(Tflytime)同时考虑信号驱动的负载效应、时钟的抖动(Tiitter)、共同时钟的相位偏移(Tskew)等,从而在接收端满足接收器件的建立时间(Tsetup)和保持时间(Thold)要求。通过这些参数,我们可以推导出满足建立时间和保持时间的计算公式。 时序电路根据时钟的同步方式的不同,通常分为源同步时序电路(Source-synchronous timing)和共同时钟同步电路(common-clock timing)。这两者在时序分析方法上是类似的,下面以源同步电路来说明。 源同步时序电路也就是同步时钟由发送数据或接收数据的芯片提供。图1中,时钟信号是由CPU驱动到SDRAM方向的单向时钟,数据线Data是双向的。 图2是信号由CPU向SDRAM驱动时的时序图,也就是数据与时钟的传输方向相同时的情况。

橡胶模具设计报告

《橡胶模具设计》课程报告 报告题目橡胶模具成型十字头密封圈作者所在系别材料工程学院 作者所在专业材料成型及控制工程 作者所在班级B11812 作者姓名刘策 作者学号20114081221 指导教师姓名武向南 完成时间2014 年11 月 北华航天工业学院教务处制

目录 1.设计任务及要求 (2) 1.1制品外形与尺寸 (2) 1.2模具精度要求 (2) 1.3橡胶模具设计的基本要求 (2) 2.材料特性 (2) 3.分型面设计 (3) 4.相关尺寸设计计算及校核 (3) 4.1模腔数 (3) 4.2启模口 (3) 4.3余胶槽 (4) 4.4锥面定位 (4) 4.5模具型腔尺寸 (4) 4.6模厚的计算 (4) 4.7模具的高度 (5) 5.模具设计图 (5) 6.参考文献 (6)

1.设计任务及要求 1.1制品外形与尺寸 1.2模具精度要求 粗糙度要求:内型腔R=1.6,外配合面R=3.2,其余部分R=6.3 1.3橡胶模具设计的基本要求 1.3.1满足设备的使用要求,保证制品质量 1.3.2操作方便 1.3.3制造容易,成本低廉 设计模具时,应从胶料的收缩率引起的尺寸变化、排气、定位、分型面的确定,型腔数的多少等因素来考虑,使得模具的设计满足制品的使用要求。 2.材料特性 模具所用材料为45号钢,其许用应力为78MPa,橡胶模具在硫化制品时受到硫化机的压力和胶料的胀力,在启模取制品时受到敲击作用,另外硫化时逸出的腐蚀性气体对模具材料也有腐蚀作用,因此对模具材料应具有以下儿点特点 ①较高的机械强度和一定的表而硬度; ②良好的机加工性能;

③良好的导热性; ④抗腐蚀性能较好; ⑤在具有前四点性能的前提下,易得,价格较低 根据模具使用场合,材料性能与成本,以及加工性能三者之间进项权衡,成本核算后选择45钢,其重要的力学性能参数许用应力78MPa,用于强度校核。 3.分型面的设计 分型而选择得是否合理是模具设计好坏的第一个关键,同一制品,因分型而选择不同则可设计出各种不同结构的模具来,其对胶料填充、制品的质量及生产工艺、操作工序产生不同的影响。 该零件是一个回转体,可以采用径向分型,模具中间使用一个型芯,使制品容易取出,模具之间靠锥面定位,避开制品的工作面,使排气更加容易。余胶槽对称分布,设计图如下: 4.相关尺寸设计计算及强度校核 4.1模腔数 从模具加工角度来看,型腔数多了,加工困难,同轴度、平行度以及其它各种尺寸的精度要求都必须相应地提高,否则各另部件组合不好,严重影响制品质星,并且模具木身,在使用过程中也很容易损坏,此模具非大批生产,因此我们选用单腔模。 4.2启模口 为了减少承压而积和模型重缝并使加工方便,可沿整个周边车启模口。选择启模口深度为4毫米,宽度为12毫米。

焊接虚拟仿真培训系统

1、焊接培训行业状况 焊接是一项对过程要求很高的工作,在现有的手工焊接生产中,采用 MAG/MI (焊接的约占50% TIG 焊接约占30% MM/焊接约占20%女口:在造船行 业中,MAG 勺占70% MMA 勺占30%那么,这就需要焊工要有扎实的操作手法、 规范的动作。而在焊接培训过程中传统方式存在以下多种问题: 消耗大量的焊条 ( 丝) 、焊件和保护气体等材料; 对学员的焊接水平难以评价; 培训效果不尽理想; 2、项目实施目的 2)减少或者避免焊接实训过程中对空气污染的有害气体的排放,防止对环 境造成污染; 3)能够让无工作经验的学员快速、真实的投入到焊接实训中,提高培训效 率,避免由于无经验操作产生的事故。 同时能够让有经验的训练者有更高的训练 平台,提高 焊接技术; 4)节省真实焊材、工件等焊接材料以及工业用电,降低培训成本; 方便教学。 3、焊接仿真模拟器概述 电焊操作训练模拟器系统是由武汉科码软件有限公司独立自主研发的焊接 虚拟仿真培训系统。 该系统是基于虚拟计算机系统, 是以中高度仿真的教学培训 系统,能让学员在接近真实的模拟环境下进行焊接技术的训练。 该系统能促进焊 接技能向实际工况焊接的有效转换。与传统的焊接培训相比减少了焊材的浪费。 1) 2) 对学员的培训过程难以准确掌握; 5) 培训过程环境污染严重,有害健康; 6) 培训过程安全性差。 减少甚至避免焊接练习过程中强光、高温、明火及烟尘以及有毒气体的 1) 产生,全面保护教师和学员的身体健康;

该设备结合了:焊工的动作、仿真焊接焙池、焊接声音及焊接手感,使用该系统的受训者能够感受到几乎真实的焊接过程。 电焊模拟实训系统是新一代环保、节能、通用型操作技能实训与评价平台。 该系统采用分布式仿真实训技术、虚拟现实技术、微机测控技术、声音仿真技术及计算机图像实时生成技术。在不需要真实焊机的情况下,通过仿真主控系统、位置追踪系统,将焊接演练过程中焊枪的位置、速度和角度等进行采集处理, 并实时生成虚拟焊缝。 该系统将仿真操作设备、实时3D技术及渲染引擎相结合,演练过程真实, 视觉效果、操作手感与真实一致。在焊接演练的过程中,学员能够看到焊接电弧以及焊液从生成、流动到冷却的过程,同时听到相应的焊接音效。 该系统与传统的焊接技艺教学能有机的融合在一起,是实现灵活、高效、安全、节约、绿色无污染的焊接模拟培训教学与考核的最佳教学方法。 通过电焊模拟实训系统,学员不仅仅可以获得与传统实训相同的操作经验, 同时通过系统内置的数据采集、智能专家辅助模块和量化考核评价系统等一系列先进独特的教学功能,配合合理明晰的焊接知识穿插讲解,使学员可以获得在传统教学实践过程中难以量化的精确焊接培训指导,大幅度提升学员在培训过程中的方向性和目的性,有效缩短学员的培训周期,降低教师的教学负担,达到以低 成本、低投入实现“精教、精学、精炼”的焊接培训机制。

相关文档
最新文档