搜档网
当前位置:搜档网 › 牛人的Systemverilog总结

牛人的Systemverilog总结

牛人的Systemverilog总结
牛人的Systemverilog总结

Systemverilog

数据类型

l 合并数组和非合并数组

1)合并数组:

存储方式是连续的,中间没有闲置空间。

例如,32bit的寄存器,可以看成是4个8bit的数据,或者也可以看成是1个32bit的数据。表示方法:

数组大小和位,必须在变量名前指定,数组大小必须是【msb:lsb】

Bit[3:0] [7:0] bytes ;

2)二维数组和合并数组识别:

合并数组:bit [3:0] [7:0] arrys; 大小在变量名前面放得,且降序

二维数组:int arrays[0:7] [0:3] ; 大小在变量名后面放得,可降序可升序

位宽在变量名前面,用于识别合并和非合并数组,位宽在后面,用于识别数组中元素个数。

3)非合并数组

一般仿真器存放数组元素时使用32bit的字边界,byte、shortint、int都放在一个字中。

非合并数组:字的地位存放变量,高位不用。

表示方法:

Bit [7:0] bytes;

4)合并数组和非合并数组的选择

(1)当需要以字节或字为单位对存储单元操作。

(2)当需要等待数组中变化的,则必须使用合并数组。例如测试平台需要通过存储器数据的变化来唤醒,需要用到@,@只能用于标量或者合并数组。

Bit[3:0] [7:0] barray[3] ; 表示合并数组,合并数组中有3个元素,每个元素时8bit,4个元素可以组成合并数组

可以使用barry[0]作敏感信号。

l 动态数组

随机事物不确定大小。

使用方法:数组在开始是空的,同时使用new[]来分配空间,在new[n]指定元素的个数。Int dyn[];

Dyn = new[5]; //分配5个元素空间

Dyn.delete() ; //释放空间

l 队列

在队列中增加或删除元素比较方便。

l 关联数组

当你需要建立一个超大容量的数组。关联数组,存放稀疏矩阵中的值。

表示方法:

采用在方括号中放置数据类型的形式声明:

Bit[63:0] assoc[bit[63:0]];

l 常量:

1)Verilog 推荐使用文本宏。

好处:全局作用范围,且可以用于位段或类型定义

缺点:当需要局部常量时,可能引起冲突。

2)Parameter

作用范围仅限于单个module

3)Systemverilog:

参数可以在多个模块里共同使用,可以用typedef 代替单调乏味的宏。

过程语句

l 可以在for循环中定义变量,作用范围仅在循环内部

for(int i=0;i<10;i++)

array[i] =i;

l 任务、函数及void函数

1)区别:

Verilog中task 和function最重要的区别是:task可以消耗时间而函数不能。函数中不能使用#100的延时或@的阻塞语句,也不能调用任务;

Systemverilog中函数可以调用任务,但只能在fork joinnone生成的线程中。

2)使用:

如果有一个不消耗时间的systemverilog任务,应该把它定义成void函数;这样它可以被任何函数或任务调用。

从最大灵活性角度考虑,所有用于调用的子程序都应该被定义成函数而非任务,以便被任何其它任务或函数调用。(因为定义成任务,函数调用任务很有限制)

l 类静态变量

作用:

1)类的静态变量,可以被这个类的对象实例所共享。

当你想使用全局变量的时候,应该先想到创建一个类的静态变量

静态变量在声明的时候初始化。

2)

类的每一个实例都需要从同一个对象获取信息。

l 静态方法

作用:

当静态变量很多的时候,操作它们的代码是一个很大的程序,可以用在类中创建一个静态方法读写静态变量,但是静态方法不能读写非静态变量。

l ref高级的参数类型

Ref 参数传递为引用而不是复制。Ref比input 、output、inout更好用。

Function void print_checksum(const ref bit [31:0] a[ ]);

1) 也可以不用ref进行数组参数传递,这时数组会被复制到堆栈区,代价很高。

2) 用带ref 进行数组参数传递,仅仅是引用,不需要复制;向子程序传递数组时,应尽量使用ref以获得最佳性能,如果不希望子程序改变数组的值,可以使用const ref。3) Ref参数,用ref 传递变量;可以在任务里修改变量而且,修改结果对调用它的函数可见,相对于指针的功能。

l Return语句

增加了return语句。Task任务由于发现了错误而需要提前返回,如果不这样,那么任务中剩下的语句就必须被放到一个else条件语句中。体会下

Task load_array(int len. Ref int array[ ]);

If(len<0) begin

$display(“Bad len”);

Returun;

//任务中其它代码

endtask

l 局部数据存储automatic作用

Verilog中由于任务中局部变量会使静态存储区,当在多个地方调用同一个任务时,不同线程之间会窜用这些局部变量。

Systemverilog中,module和program块中,缺省使用静态存储;如果想使用自动存储,需加入automatic关键词。

测试平台

l Interface

背景:

一个信号可能连接几个设计层次,如果增加一个信号,必须在多个文件中定义和连接。接口可以解决这些问题。

好处:

如果希望在接口中增加一个信号,不需要改变其他模块,如TOP模块。

使用方法:

(1)接口中去掉信号的方向类型;

(2)DUT 和测试平台中,信号列表中采用接口名,例化一个名字

注意:

因为去掉了方向类型,接口中不需要考虑方向信号,简单的接口,可以看做

是一组双向信号的集合。这些信号使用logic类型[d1] 。

双向信号为何可以使用logic呢?

这里的双向,只是概念上的双向,不想verilog中databus多驱动的双向。

双向信号如何做接口?

(1)仲裁器的简单接口

Interface arb_if( input bit clk);

Logic [1:0] grant,request;

Logic rst;

Endinterface

DUT 使用接口:

Module arb(arb_if arbif);

Always @(posedge arbif.clk or negedge arbif.rst)

endmodule

(2)DUT 不采用接口,测试平台中使用接口(推荐)

DUT 中源代码不需要修改,只需要再top中,将接口连接到端口上。

Module top;

Bit clk;

Always #2 clk =~clk;

Arb_if arbif(clk);

Arb_port al(.grant(arbif.grant),

.request(arbif.grant),

.rst(arbif.rst),

.clk(arbif.clk)

);

Test t1(arbif);

Endmodule

l Modport

背景:

端口的连接方式包含了方向信息,编译器依次来检查连续错误;接口使用无信号的连接方式。Modport将接口中信号分组并指定方向。

例子:

l 在总线设计中使用modport

并非接口中每个信号都必须连接。Data总线接口中就解决不了,个人觉得?

因为data是一个双驱动

l 时钟块

作用:

一旦定义了时钟块,测试平台就可以采用@arbif.cb等待时钟,而不需要描述确切的时钟信号和边沿,即使改变了时钟块中的时钟或边沿,也不需要修改测试代码

应用:

将测试平台中的信号,都放在clocking 中,并指定方向(以测试平台为参考的方向)。并且在modprot test(clocking cb,

最完整的接口:

Interface arb_if(input bit clk);

Logic[1:0] grant,request;

Logic rst;

Clocking cb @(posedge clk);

Output request;

Input grant;

Endclocking

Modport test (clocking cb,

Output rst);

Modport dut (input clk, request,rst,

Output grant);

endinterface

变化:将request 和grant移动到时钟块中去了,test中没有使用了。

l 接口中的双向信号

Interface master_if(input bit clk); //在类中为了,不使用有符号数,常用bit[]定义变量Wire [7:0] data;

Clocking cb@(posedge clk);

Inout data;

Endclocking

Modport TEST(clocking cb);

endinterface

program test(master_if mif);

initial begin

mif.cb.data <= ‘z;

@mif.cb;

$display(mif.cb.data); //总线中读数据

@mif.cb;

Mif.cb.data <= 8’h5a; //驱动总线

@mif.cb;

Mif.cb.data <= ‘z; //释放总线

注:

(1)interface 列表中clk 采用的是input bit clk;为什么要用bit?

(2)时钟块clocking cb 中,一般将testbench中需要的信号,方向指定在这里;

而在modprot 指定test信号方向的时候,采用clocking cb。

(3)interface中信号,不一定都用logic,也可采用wire(双驱动);systemverilog

中如果采用C代码的风格(参数列表中方向和类型写一起),必须采用logic类型

(4)现在的风格,DUT 没才用clocking cb ,测试平台和DUT的时钟如何统一?

l 激励时序

DUT和测试平台之间时序必须密切配合。

l 测试平台和设计间的竞争状态

好的风格:

使用非阻塞赋值可以减少竞争。

systemverilog验证中initial 中都采用<= 赋值,而等待延迟采用@arbif.cb等待一个周期来实现。

而verilog中采用的风格时,initial 中采用=阻塞赋值,沿时可以采用#2,等实现。

因此时钟发生器,只能放在module 中,而不能放在program中

l Program中不能使用always块

测试平台可以使用initial 但不能使用always,使用always 模块不能正常工作。

原因:测试平台的执行过程是进过初始化、驱动和响应等步骤后结束仿真。

如果确实需要一个always块,可以使用initial forever 来完成。比如:在产生时钟时。

l 类中static变量

背景:

如果一个变量需要被其他对象所共享,如果没有OPP,就需要创建全局变量,这样会污染全局名字空间,导致你想定义局部变量,但变量对每个人都是可见的。

1)作用:

类中static变量,将被这个类的所有实例(对象)所共享,使用范围仅限于这个类。

例:class transaction;

Static int count=0;

Int id;

Endclass

Trasaction tr1,tr2;

Id不是静态变量,所以每个trasaction对象都有自己的id;count 是静态变量,所有对象只有一个count变量。

如何用?

当你打算创建一个全局变量的时候,首先考虑创建一个类的静态变量。

2)static变量的引用

句柄或类名加::

4) static 变量的初始化

static变量通常在声明时初始化。不能在构造函数中初始化,因为每一个新的对象都会调用构造函数。

l 静态句柄:

背景:当类的每一个对象,都需要从同一个对象(另一个类)中获取信息的时候。如果定义成非静态句柄,则每个对象都会有一份copy,造成内存浪费。

l 静态方法

背景:

当使用更多静态变量的时候,操作他们的代码会很长。

作用:

可以在类中创建一个静态方法用于读写静态变量。

注:systemverilog不允许,静态方法读写非静态变量。

l 类之外的方法

背景:解决类太长的问题。类最好控制在一页内,如果方法很都很长。

l This

背景:如果在类很深的底层作用域,却想引用类一级的对象。在构造函数中最常见。

作用:this指向类一级变量

l 如何做类,类做多大?

上限:类不能太大

当类中存在多处相同的代码,你需要将这段代码做成当前类的一个成员函数或父类的成员函数。

下限:类不能太小

类太小,增加了层次。

方法:如果一个小类只被例化了一次,可以将它合并到父类中去。

l 动态对象

概念区分:方法中修改对象和修改句柄

修改对象——将对象的变量重新赋值。

修改句柄——在任务中new()对象。

1)当你将对象传递给方法

背景:句柄,new()后变成对象,在将其作为参数传递给方法。

实质和作用:

传递的是句柄。这个方法可以读取对象中的值;也以改变对象中的值

2)修改标量变量的值

背景:在方法的参数中,前面加ref;(用ref传递,ref传递的是变量的地址)。

作用:

方法可以修改变量的值,并将修改的值,传递给主程序。

引申:

方法可以改变对象,即使没有使用ref 修饰句柄。

因为传递的是句柄,句柄是地址。不要将句柄和对象混为一谈,如果传递的是对象,对象是单向的,那方法以外也不能传递回来。可以这样理解吧。

读写对象中的值:

例:

Task transmit(Transcation t);

Cbbus.rx_data <= t.data;

t.stats.startT = $time; //在任务中,改变了对象

endtask

trancation t;

initilal beign

t = new();

t.addr = 42;

transmit(t);

end

既然传递的是句柄,那数据就没传过去,如何读取值?

答:主程序中new()创建了一个对象,而句柄是指向对象的指针,传递的是句柄,transmit 中也指向了对象,所以transmit中可以读写对象。

3)在任务中修改句柄

背景:

在方法中,参数为句柄,前面加ref。

作用:

可以在方法中new()对象,并将初始化放在方法中;在主程序中仅仅调用。

注意:正确的事物发生器,参数是带ref的句柄

Function void create(ref transaction tr)

Endfunction

方法的参数是句柄,句柄前有ref 和没ref的差别:

没ref,在方法中不能new()该句柄的对象,因为没ref,句柄是不能传递到主程序的;有ref,可以在方法中new()该句柄的对象。

原因:没ref传递的是句柄,不能修改句柄,有ref,传递的是句柄的地址,可以修改句柄。

例子:

Function void create( Transcation tr)

tr = new(); 不正确

tr.addr = 42;

Endfunction

Transcation t;

Initial begin

Create(t);

$diasplay (t.addr);

End

l 程序中修改对象

背景:

应该在循环中,new()多个对象,而不是先new()对象再循环发送事物。

作用:

创建多个对象

正确产生器,创建多个对象:

Task generator (int n);

Transaction t;

Repeat(n) begin

t=new();

t.addr =$random();

transmit(t);

endtask

将new()放在循环内,这样创建了许多对象。

l 对象的复制

目的:防止对象的方法修改原始对象的值。或在一个发生器中保留约束。

分两种情况,类中不包含其他类的句柄和包含

方法:

1)使用new复制一个对象——简易复制(shallow copy)

Transaction src,dst;

Src = new()//

dst = new src //复制

局限:

如果类中包含一个指向另外一个类的句柄,那么只有最高一级的对象被new复制,下层的对象都不会被复制。

会出现意想不到的错误。

当前类中变量和句柄被复制,这样两个对象,都有指向另外一个类的对象statistic(会带来意想不到的错误),但是statistic没有被复制。如果其中一个transaction对象,修改了statistic 对象值,会影响到另一个transaction看到static的值。

2)简单的复制函数

如何实现:

Copy函数一般放在类内部,函数名为该类的一个句柄,copy函数中new()对象。

局限:

类中不包含其他类。

3)深层的复制函数——深层copy

目的:解决类中包含另外一个类,copy带来的问题。

实现:

在copy函数中,将调用另一个类的copy函数,赋值给该句柄;同时需要为statistic类和层次结构中每一个类增加一个copy()方法;copy函数的ID域也要保持一致,copy函数,copy本类,所以ID也要++.

Copy.stats = stats.copy();

Id =count++;

约束

l 约束块中,只能包含表达式,不能赋值。

1)dist权重分布

dist带有一个值的列表及相应的权重,中间用:= 或:/分开。值或权重可以是常量或变量。权重的和不必是100.

:= 表示范围内,每一个值的权重是相同的;

:/ 表示范围内,权重要均匀分布

2)Inside

产生一个值的集合,在值的集合中取随机值时,机会相等。

3)在集合中使用数组

l 条件约束

Systemverilog支持两种关系操作–>和if—else

—>可产生和case效果类似的语句块,可以用于枚举类型的表达式。

l 双向约束

l 控制多个约束块

作用:可以打开或关闭某个约束

可以使用内建的Handle.constraint.constraint_mode()打开或关闭。

l 内嵌约束

背景:很多测试只会在代码的一个地方随机化对象,但是约束越来越复杂时,Systemverilog可以使用randomized with 来增加额外的约束,这和在类里增加的约束是等效的。

l Pre_randomize 和post_randomize函数

有时候需要再调用randomize()之前或之后立即执行一些操作。

随机化前:设置类里的一些非随机变量(如上下限、权重),

随机化后:计算数据的误差矫正值。

l 约束的技巧

1)约束中使用变量

2)使用非随机值

如果一套约束在已产生了几乎所有想要的激励向量,但还缺少几种。

可以使用rand_mode把这些变量设置为非随机变量。

l 数组约束

Systemverilog可以用foreach对数组中的每一个元素进行约束。

线程及线程间的通信

l 测试平台使用许多并发执行的线程。测试平台隶属于程序块。Systemverilog引入两种新的创建线程的方法—fork…join_none和fork…join_any

1)使用fork…join_none来产生线程

在调度其内部语句时,父线程继续执行。

2)使用fork…join_any实现线程同步

在调度块内语句,当第一个语句执行完,父线程才继续执行。

l 动态线程

Systemverilog中可以动态创建线程。

用法:

fork…join_none放在了任务中,而不是包含两个线程。

原因:

主程序中有连个线程:发送和检测线程。但是不能同时启动,发送事物后,才能检测,否则还未产生数据,就开始检测;但是检测又不能阻塞下一次发送事物的线程。所以fork…join_none 放在了检测task 任务(后作用的线程中)中,

例:测试平台产生随机事物并发送到DUT中,DUT把事物返回到测试平台。测试平台必须

等到事物完成,但同时不希望停止随机事物的发送。

Program automatic test(bus_ifc.Tbbus);

Task check_trans(Transaction tr);

Fork

Begin

Wait(bus.cb.addr == tr.addr);

End

Join_noe

Endtask

Initial begin

Repreat(10) begin

Tr= new();

Assert.(tr.randomize());

//把事物发送到DUT中

Transmit(tr);

//等待DUT的回复

Check_trans(tr);

End

#100;

End

endprogram

l 并发线程中务必使用自动变量来保持数值。

l #0 延迟,使得当前线程必须等到fork…join_none语句中产生的线程执行完后,才得以运行。

l 停止线程

1) 停止单个线程

使用fork ..join_any 后加disable。

3)停止多个线程

Disable fork 能停止从当前线程中衍生出来得所有子线程。

应该使用fork ..join 把目标代码包含起来,以限制Disable fork的作用范围。

l 事件

背景:

Verilog中当一个线程在一个事件上发生阻塞的同时,正好另一个线程触发了这个事件,则竞争就出现了。如果触发线程先于阻塞线程,则触发无效(触发是一个零宽度的脉冲)。解决方法:

Systemverilog 引入了triggered()函数,用于检测某个事件是否已被触发过,包括正在触发。线程可以等待这个结果,而不用在@操作符上阻塞。

例子:

Event e1,e2;

Initial begin

->e1;

@e2;

End

Initial begin

->e2;

@e1;

End

上面的代码,假设先执行第一个块,再执行第二个块。第一个块会阻塞在@e2(阻塞先执行),直到e2触发,再运行(触发后执行);在执行第二个块时,会阻塞在@e1,但是e1已经触发(触发先执行,阻塞后执行,触发是个零宽度的脉冲,会错过第一个事件而锁住)

解决方法:用wait(e1.triggered())来代替阻塞@el,如果先触发,也可以执行。

l 等待多个事件

最好的办法是:采用线程计数器来等待多个线程。

l 旗语

Get()可以获取一个或多个钥匙,put()可以返回一个或多个钥匙。Try_get()获取一个旗语而不被阻塞。

l 信箱

背景:如何在两个线程中传递信息?考虑发生器需要创建很多事物并传递给驱动器的情况。问题:如果使用发生器的线程去调用驱动器的任务。这样,发生器需要知道驱动器的层次化路径(类的层次化),降低了代码的可重用性;还迫使发生器和驱动器同一速率运行,当一个发生器需控制多个驱动器时会发生同步问题。

解决办法:把驱动器和发生器当成各个处理事物的对象,之间通过信道交换数据。信道允许驱动器和发生器异步操作;引入问题:你可能倾向于仅仅使用一个共享的数据或队列,但这样,编写实现线程间的读写和阻塞代码会很困难。解决办法:可以使用systemverilog中的信箱。把信箱看出一个具有源端和收端的FIFO.

操作:

1)信箱的容量可以指定,new(size),size限制信箱中的条目,size为0,或没指定,则信箱是无限大。

2)Put()放数据,get()可以移出数据。Peek()可以获取信箱中数据的copy而不移出。3)信箱中可以放句柄,而不是对象。

漏洞:在循环外只创建一个对象,然后使用循环对对象随机化,信箱中是句柄,最终得到的是一个含有多个句柄的信箱,多个句柄都指向同一个对象。

解决办法:在循环中,创建多个对象。

l 异步线程间使用信箱

背景:

很多情况下,由信箱连接的两个线程应该步调一致,这样生产方才不至于跑到消费方前。好处:最好层的generator需要等待低层的数据发完后才能结束。测试平台能精确知道所有激励发出去的时间。

两种情况

两个线程同步,需要额外的握手信号。否则,出现生产方运行到结束,消费方还启动。1) 信箱容量为1,两个线程同步

因阻塞,连个线程不需要握手信箱

3)容量不为1,线程间同步

需要使用握手信号,以使producer不超前于consumer;如果consumer超前于prodecer会阻塞。

解决办法

1)使用定容信箱和peek实现线程同步:(比较好)

消费方:consumer 使用信箱方法peek()获取信箱里的数据的copy而不将其移出,当consumer处理完数据后,便使用get()移出数据。

特点:信箱容量定义为1,不需要握手信号。

Calss consumer

Repeat(n)begin

Mbx.peek(i);

$display(“consumer:after get( )”,i);

Mbx.get(i);

End

endcalss

如果直接使用get()替代peek(),那么事务会被立刻移出,这样可能会在consumer完成事务前,producer生成新的数据。

-

2)使用信箱和事件实现线程同步

使用边沿敏感的阻塞语句@handshake 代替电平触发wait(handshake.triggered())。

因为:线程中任务run()使用循环,事件阻塞只能使用@handshake。

局限:如果遇到producer线程的阻塞和consumer线程的触发同时发生,则可能出现次序上的问题。

3)使用两个信箱实现线程同步

使用另一个信箱把consumer的完成信息发回给producer。

目的:在producer线程中,处理完事物后,用一个get()来阻塞。

特点:信箱容量大于1.

Maibox mbx,rtn;

Class prodecer

For(int i=0; i<4;i++) begin

….

Mbx.put(i);

Rtn.get(i);

End

Endclass

Class consumer

Repeat(3) begin

….

Mbx.get(i);

Rtn.put(-i);

End

Endclass

说明:信箱的构造函数中Mbx =new();Rtn =new(),信箱容量为无穷大。如何实现同步?

虽然信箱容量为无穷大,producer线程发完一个数据后遇到get()会阻塞,不能放入第二个数据;等到consumer得到第一个数据并且处理完后,通过另一个信箱返回一个数据,producer才继续放第二个数据。

因为get()得到数据后,将信箱中数据取出。表象:信箱容量定义为无穷大,但是实际上也是producer放一个数据,consumer取一个数据;然后producer再放第二个数据,依次类推。

这样确保producer不会超前于consumer线程,而将数据都写入信箱。

4)其他的同步技术

通过变量或旗语阻塞也可以实现握手。事件是最简单的结构,其次是通过变量阻塞。旗语相当于第2个信箱,但是没有交换信息。Systemverilog中的信箱比其他技术要差,原因是无法在producer放入第一个事务时,让它阻塞。Producer一直比consumer提前一个事务的时间。

l Wait(handshake.triggered())和@handshake 使用范围

1)Wait(handshake.triggered()),用于等待一个事件;

2)循环中等待事件,只能用@handshake

3)两个线程的同步,一般任务run()使用循环,所以只能使用@handshake。

注意事项:

1)在循环中,等待事件不能用Wait(handshake.triggered()),因为如果事件触发一次,wait ()语句一直为真,进入不断的循环。下一次循环中,不会阻塞。

2)@handshake 如果触发事件,先于等待事件。会等不到事件,因为(事件触发,是一个零宽度的脉冲)

OPP的高级编程技巧

l 继承

背景:

为总线事务增加一个错误功能并带可变延时的复杂类。方法如下:

1)使用合成,即在类中例化另一个类型的类。有时候很难将功能分成独立的部分。如果使用合成,则需要为正确和错误事务分别创建不同的类,正确类的测试平台需要重写以处理错误类的对象。

2)使用扩展类

作用:

当需要增加事务,而对现有的测试代码修改越少越好,。例如增加错误注入功能。

扩展类和类合成区别:

扩展类解决,增加新事务,使用类合成中,大量修改代码的麻烦。

如何使用:

扩展类共享基类的变量和子程序。

1)基本类中的方法,需标记为virtual,这样扩展类中才可以重新定义。扩展类中函数,和基类中函数名一样时,通过supper.函数名,调用基类中函数。Systemverilog中不允许supper.supper.new方式经行多层调用。

2)如果基类构造函数new()有参数,那么扩展类,必须有一个构造函数,并在构造函数的第一行调用基类的构造函数。

Class basel

Function new(input int var);

this.var = var;

endfunction

endclass

class extended extends basel

function new(input int var);

super.new(var);

endfunction

endclass

3)OPP规则指出:基类的句柄,也可以指向扩展类的对象。(好好体会)

l 蓝图模式

1)背景:一个简单的发生器,通过信箱将数据传递给驱动器。

class generator

mailbox gen2drv;

transaction tr;

function new(input mailbox gen2drv)

this.gen2drv = gen2drv;

endfunction

task run;

forever begin

tr = new();

assert(tr.randmize);

gen2drv.put(tr); //mail.put(x)

end

endtask

endclass

存在问题:这个例子在循环内部创建事务对象,而不是在循环外部,避免了测试平台常见的错误。New()放在循环外部,错误原因是,mailbox中放入的是句柄,而不能是对象,所有的句柄都指向同一个对象。(1)任务Run创建了一个事物并立即随机化,意味着事务使用了默认的所有约束。要修改,必须要修改transaction类。(2)无法使用扩展

解决办法:将tr的创建和初始化分开,使用蓝图模式。

另一个问题:如果简单的把创建和初始化分开,而放在循环外部,而避免测试平台错误(P200),如何解决?蓝图模式如何解决

2)蓝图模式概念:

首先构建一个对象蓝图(金属模),然后修改它的约束,甚至可以用扩展对象替换它,随机化这个蓝图时,就得到想赋予的随机值;然后复制这个对象,将copy发给下游。

蓝图:是一个钩子,允许你改变发生器类的行为而无需修改其类代码。蓝图对象在一个地方构建(new()),在另一个地方(任务run)使用

3)P200与P221相对比分析:重要

蓝图模式,也就比new()在循环外地generator多了一个copy函数。问题(1)蓝图模式,new()在循环外,也只有一个对象,而mailbox中放入的只能是句柄,如何解决常见的平台错误?

因为copy,是对象的复制,而不是句柄的复制。这样蓝图模式只有一个句柄,但是随机化后,copy,相当于再循环中创建了许多对象。而测试平台常见错误的本质是,只创建了一个对象。这样就避免了问题。

(2)蓝图模式下,因为只有一个ID号,那么任务run循环中,下发了许多数据,这些只有一个ID号了?

因为copy是对象的复制,所以在copy中ID号也会增加。下发的每个数据,都有各自的ID号。

l 使用扩展的transaction

为了注入错误,需要将蓝图对象transaction变成Badtransaction(改变蓝图)。必须在环境的创建和运行阶段之间完成这个操作。注意:所有的badTr引用都在这一个文件中,这样就不需要改变environment类或generator类。

Env.build();

Begin

Badtr bad = new();

Env.gen.blueprint = bad;

End

Env.run

目的是:将一个对象取代另一个对象。New()后都是对象了,将对象赋值给对象,这是什么写法?不是复制呀?复制本质是将一个句柄指向一个对象。

解释:上述是句柄的复制,将扩展类句柄bad赋值给基类句柄blueprint,这样基类句柄指向扩展类对象,后面的代码调用的时候,就直接指向扩展类bad了,改变了蓝图。

l Env.new()和nev.build()区别

Env.new()仅仅new()函数

nev.build()是将各个模块new(),并传达一些参数,通过这些参数将环境的各个模块,连接起来。P213

l $cast 作类型向下转换

背景:基类句柄可以指向扩展类对象,不需要额外的代码;扩展类句柄指向基类对象,一般情况下会出错,但有时候是可以的,前提是基类句柄指向了它的一个扩展类对象。

作用:扩展类句柄指向基类对象时,使用$cast()函数。在非法的情况下,不会编译报错,会返回了一个0.

$cast做任务使用时,systemverilog会在运行时,检查源对象类型和目的对象类型不匹配,会报错;

$cast 做函数使用时,运行时,仍做类型检查,在不匹配时,不会报错,$函数返回0.

前面所述:基类句柄可以指向任何它的扩展类的对象、

1)基类句柄指向扩展类对象——出现情况:修改蓝图,不改过多代码,增加功能Transaction tr;//基类句柄

BadTr bad;//扩展类句柄

Bad = new();

Tr = bad;// 基类句柄指向扩展类对象

tr.display; //掉用的是扩展类的方法

2)扩展类句柄指向基类对象——出现情况:基类virtual 方法copy函数,它的继承类中copy 函数

将基类句柄赋值给扩展类句柄,使扩展类句柄指向基类对象,一般编译器会出错,不能运行,所以非常小心;只有基类句柄指向扩展类对象时,再将扩展类句柄指向基类对象时,不出错。为了检测基类句柄是否指向了扩展对象,并且不让编译器报错,可以使用$cast()函数检测。

当把扩展类句柄指向基类对象时,发生什么?

Tr= new();

Bad = tr;//扩展类句柄指向基类句柄

上述会发生错误,编译不会被通过。因为有些属性在基类中不存在;但是扩展类句柄指向基类句柄不总是非法的(见下面代码,是可以的),当基类句柄指向一个扩展类对象时是允许的。

Transcation tr;

BadTr bad,bad2;

Bad= new();

Tr = bad; //基类句柄指向扩展类对象

$cast(bad2,tr); //扩展类句柄指向基类对象

if(!$cast(bad2,tr);

$display(“cannot assign tr to bad2”);

$display(bad2.bad_crc);

l 句柄类型和对象类型差异(书中翻译的不准,type of handdle 和object)

个人理解:

Transaction tr;句柄tr类型是transaction

句柄类型:关键字

对象类型:类中成员的类型差异

l 虚方法和多态

多态:多个程序使用一个共同的名字的现象。

多态解决问题:计算机建构面临的一个问题。让物理内存很小的情况下,让处理器能够对很大的地址空间寻址。针对这个问题引入了虚拟内存。

虚拟方法继承劣势:

基类使用了虚拟方法,扩展类也必须使用相同的“签名”,扩展类中虚拟子程序不能增加或删除参数,这意味着必须提前做好规划。

l 对象复制

1)因为是virtual 函数,扩展类中copy方法也必须是transaction型的,

但是要copy的是badtr类型的,所以要new一个bad

带有copy 的事物基类。

Class transaction ;

Rand bit[31:0] src,dst,data[8];

Bit[31:0] crc;

Virtual function transaction copy ();

Copy = new();

Copy.src = s rc;

Copy.dst = dst;

Copy.data = data;

Copy.crc = crc;

Endfunction

Endclass

带有copy的扩展类

Calss badtr extends transaction

Rand bit bad_crc;

Virtual function badtr copy(); //错误

Virtual function transaction copy();

Badtr bad;

Bad = new();

Bad.src = src;

bad.dst = dst;

bad.data = data;

bad.crc = crc;

Bad.bad_crc = bad_crc;

Return bad;

Rendfunction

endclass

2)优化途径一,创建一个独立的函数copy_data,这样每个类只负责copy其局部变量,即扩展类中的copy函数用super.copy_data(tr),代替了基类中变量的复制。代码的重用性提高。P8.22

$cast(bad,tr); //扩展类句柄指向基类句柄

使用的情况:因为virtual 函数,在继承中,虚拟函数必须和基类中名称和参数也一致。这样扩展类中copy_data函数参数仍然是transaction类型的tr,这样出现了参数是基类句柄,但是copy_data函数内要作的确实扩展类的成员,就要将基类句柄参数赋值给扩展类句柄,

要将扩展类badtr类型的数据返回,所以必须用$cast(bad,tr)。

2) 优化途径二,最好的。前面的copy子程序都会创建一个新对象,改进的一种方法就是指定复制对象的存放地址。

Virtual function transaction copy(transaction to =null);

if(to == null)

copy = new();

else

copy = to;

copy_data(copy);

endfunction

l 抽象类和纯虚方法

背景:验证的目标之一是创建多个项目共享的代码。

目的:systemverilog 有两种方法创建共享的基类:抽象类和纯虚方法

Virtual class (抽象类):可以被扩展但是不能被直接例化。

Pure virtual function(纯虚方法):没有实体的方法原型,相当于一个声明。

1) 由抽象类扩展而来的类,只有在所以的虚拟方法都有实体的时候才能被例化,

2) 纯虚方法只能在抽象类中定义。

3)抽象类中,纯虚方法是没实体的,非纯虚方法最好也不写实体。

l 回调

背景:测试平台目的:创建一个不做任何修改就能在所有测试中使用的验证环境。要做到这点的关键是测试平台使用钩子,(什么是钩子?)钩子作用,在不修改原始类的情况下注入新的代码。采用virtual 方法,也可以在扩展类中覆盖基类方法,但是需要重复原方法的所有代码,并且它的修改将传播到它的所有扩展类中。

作用:回调就是一个钩子,在不修改原始类的情况下注入新的代码。

实现:回调任务在顶层中创建,在最低级即驱动器中调用。这样驱动器不需要知道测试的任何信息,它只需要使用一个可以在测试中扩展的通用类。

1)使用回调注入干扰

回调的一个常见用法就是注入干扰,例如引入一个错误或者延迟。下面测试平台使用回调对象,随机地丢弃数据包。

扩展类是如何作用的?在扩展的回调类中注入错误,如何在驱动器中作用的?

关键是数据队列的作用,驱动器中使用了,回调基类的数据队列

回调基类是抽象类,在扩展的回调类中加入错误注入,而drive驱动类中,是回调基类的数据队列,在环境中将扩展类句柄让入驱动器类,回调基类的数据队列中。

begin // Create error injection callback

Driver_cbs_drop dcd = new();

env.drv.cbs.push_back(dcd); // Put into driver

end

与前面扩展类作用的差异?

前面代码,要使扩展类中增加代码,需要使基类句柄指向扩展类句柄。

l 驱动器类:

下面的代码如何解释

2)回调也可以想scoreboard 发送数据或收集功能覆盖率。

优点:你可能想过将scoreboard和功能覆盖数据组置于一个事物处理器中,通过邮箱连接到测试平台中,这是一种笨拙的方法,原因如下:测试平台组件几乎都是被动和异步的,组件只有在测试平台给他数据的时候才被唤醒,而且不会主动地向下游事物处理器传递信息。麻烦:1)这样一个需要同时监视多个邮箱的事物处理器复杂了;2)你可能在多个地方采集数据,但是事物处理器设计用来处理单个数据源回调

银行招聘从网申到笔试面试复习常见问题复旦人大牛人经验总结15000人看过的

银行招聘从网申到笔试面试复习常见问题复旦、人大牛人经验总结,15000人看过的 我、小陈(人民银行)、弟弟、小刘(人大)、小陆(复旦)、小王-----我们是几个考过多家银行的毕业生。把一些常见的银行招聘考试中遇见的问题回答大家。 一.何时考试? 每年10月到12月是各大银行的招考黄金期,来年3-6月也有大家密切关注。银行大多数是这样:不同银行的招聘时间不一样,同一个银行不同省份,出招聘简章、笔试的时间也不一样。建议大家去大街网、智联招聘网、中华英才网。如果有银行招聘,这些网站基本都公布。大家每隔3天去看下,避免信息遗漏(最保险的是去银行的官网。笔试时间一般是投简历资格审核通过后由银行发邮件或短信通知。 二、对英语有何要求。 一般的都要cet—4成绩大于等于425(我当初就是425 O(∩_∩)O~,毕业前考的那次cet—6成绩是458),主要是看这个银行所在地经济的经济发达地区自然要求高。如果你这次没过,你在报考的时候其实可以写过了cet—4,12月底你好好考,等面试时候需要拿出成绩单的时候,不就ok了。办法要自己想啊O(∩_∩)O~一般来说面试的时候,要把这些带过去的。 三.报名都会有笔试资格么?简历审核很严格的吗?银行考试好考么? (1)这些银行考试不要我们处报名费。全是银行自己来,你想,刷掉人还可以减少印试卷和面试安排人员的费用呢。去年我同班同学的就没通过审核,我通过了。这说明不是报了名就能去笔试的。文言文《为学》:天下事有难易乎?为之,则难者亦易矣;不为,则易者亦难矣。人之为学有难易乎?学之,则难者亦易矣;不学,则易者亦难矣。再说大四时间充裕,可以试试,弟弟是有过7个银行考试经验的考霸。最后缘定市农行。 (2)我们几个都是考过的,除了人民银行感觉难度大一点,其他的都觉得不难。 四.银行是不是一定要经济金融的? 不是的,每年招的专业很多,我是学行政管理的,建行照样过。网投也是有技巧的。经济金融类(经济学、金融学、国贸、会计、市场营销,财务、会计,统计)几乎每个银行都要。计算机、信息技术类也招的蛮多,管理学、法学、理学(数学)其次。工科的就少一点。像一些哲学、美术等则很少招,反正招聘简章到时候会写要哪些相关专业的。 五.听说银行很黑对吗? 进入社会你就发现天下乌鸦一般黑。谁都可以当乞丐,不要学历、不要靠关系。但是好工作,供小于求,人际关系自然会发挥作用,尤其是在中国,相信读了那么多年书的你不会不知道的。中国开后门是常事,进县级市、乡镇的支行竞争力稍小,公平性就好一点,靠自己的蛮多。但是有实力到哪里都是人才,是金子到哪里都会发光。我们团队的小陈,父亲是工人,母亲是熨衣店的,人家照样考上人民银行哦。 六、我想考研究生也想进银行如何选择?会不会和考研时间冲突? (1)其实考银行不要花多少时间的,我花了一个星期突击建行(学习行政管理的),弟弟考过7各银行,后面几次几乎没看书。因为考的行测几乎是小学初中语文数学,经济金融的又很基础。建行之类英语很简单,cet-4水平吧。而且进

牛人总结的面试经验

牛人总结的面试经验 相信很多人和我一样,投了N份简历,可面试机会却寥 寥无几,我找工作一个多月了,前前后后共投了五六十份简历 (我非海投型,所以这个数字对我来说不算小了),可却只得到 三次面试机会。虽然听着有点寒碜,并非牛人面经,也和大家分 享一下吧。从“应届生”得到很多帮助,希望也能做点贡献,呵呵。 第一次面试有点乌龙,是一家传媒公司,地方很难找, 在一幢住宅区顶楼。找到地方时,我已经满头大汗了,一位脚上 打着石膏的姐姐给了张表让我去会议室填。那里已有个男生填完 表在等了,和他有一句没一句地聊起来,很快半个小时过去了, 可还是无人来问津。又等了十多分钟,我们终于主动去找了那位 姐姐,人家听完后一副惊讶表情,“对不起,对不起,我忘了让 人领你们过去了”。晕!于是那位男生先去,我回会议室接着等,当时已是中午,一位阿姨在会议室检查送来的外卖,发现有几份 弄错了,和送外卖的姐姐争执,我尴尬地坐在她们旁边当观众。 终于,有人来让我过去,面试官是一位很nice的姐姐, 我将简历递过去,她有点苦笑,“对不起,你的专业不适合我们 的工作,我们要计算机专业的”。我有点气愤,“可是你们打电 话让我过来的呀”。“那我帮你问问,可能搞错了”。于是她开 始打电话,证实了弄错之后,又联系其他部门,看他们要不要人,最终的结果是编辑岗位过几天面试,让我投简历,等通知。我也 无语,只有道谢离开。哪有这么粗心的HR,让我白跑一趟,唉, 出师不利。

第二次是广州唐艺,同样的,找地方找了很久,也是住宅区,不过是首层。因为出门早,到了公司离约定时间还有半小时,进去后前台小姐给我一张中英翻译的测试题让我去旁边沙发上完成,已经有两位女生在答题了。她们答完之后都陆续被请进会议室,可我答完之后却是一位很温柔的女生走过来,“你好,会议室人太多了,我们就在这里面试吧”。于是要我作面试自我介绍,但是用英文,有点懵,之前没说英文面试啊,临场说了几句,可还是卡壳了,那个女生笑笑,让我还是说中文,介绍完之后,也没问面试问题,就给我介绍了公司的情况,工作的情况,最让我害怕的是那句“低薪高提成”,问她低到什么程度,说要到二面才谈这个问题,只得作罢。可我始终没机会知道他们的低薪是多少,因为没有接到二面的通知,又一次失败。 第三次是广发证券,网申后几天,接到电话,竟然是电话面试,问了些基本的问题,如你怎么看待这个职位,你觉得自己优势在哪里,你性格怎么样。我当时毫无准备,磕磕巴巴的,觉得肯定没戏了,可是两天后却接到面试通知了。当时手机不在身边,打开后发现两个未接来电,同一个号码,于是拨回去,竟然是广发,兴奋!面试那天也一样花了很多时间找地方,幸运地碰到一位送外卖的女孩,她经常给广发送外卖,她领着我找到了五羊新城广场(我面的是呼叫中心,所以不在总部)。坐电梯到26楼,竟然是侧门,锁着的,一个女生帮我找来保安开的门。进去后找到公司前台,先签名,我是最早的一个,上面大概有二十来个名字。然后是等待,不久又来了一个女生,一个男生,保安让我们去会议室,可很多人在会议室午休呢,她们很客气,把地方让给了我们,真是不好意思,耽误人家睡觉。 我们在会议室一边等一边聊,直到过了约定时间才又来了两位女生。之后有个女生进来说先做测试题,半小时,不难,都是些逻辑推理和算术题,和行测差不多。完成之后那个男生被

qawsdv2011战友:牛人总结的搞定考研英语复习的制胜兵法(可以提高20分)

-+ 懒惰是很奇怪的东西,它使你以为那是安逸,是休息,是福气;但实际上它所给你的是无聊,是倦怠,是消沉;它剥夺你对前途的希望,割断你和别人之间的友情,使你心胸日渐狭窄,对人生也越来越怀疑。 —罗兰 如何在四个月内将考研英语成绩切实提高20分? 这是我们每个人想要通过考研,必须面对都问题。每年都要考生因为英语拖后退而名落孙山的。还有成绩很不稳定,今年考个60,明年考个40的。说明将英语水平保证在60以上,确实是个问题。 下面将从复习选择资料谈到阅读方法,以2005-2009年真题为例。 一、必备的书(适用于一战的选手): 1、《考研英语大纲》,法硕指南配套的大纲可以不买,但英语大纲必须买。因为上面有需要掌握都单词列表。 2、朱泰奇的英语复习指南。他每年就那一本,除了把刚考过的题付在后面外,就剩书皮要换个新的了。但这本书对考研涉及的单词和词组总结的特别全面,对巩固基础很有帮助。 3、石春桢的阅读220篇。这是我见过和考研阅读真题难度最接近的一本书了。可能还略微难一点,用来练阅读在好不过。有些人反映他都阅读朝纲都词汇太多,但2009年都真题不是朝纲都词汇更多吗? 4、张剑和曾鸣编著都历年考研英语(试卷版)真题解析及复习思路。我见过的最好的真题汇编,后面有详细的解释,而且有每道题的难度和区分度,可以让你弄清楚是否是必错的题。大家都错的话,不需要去过多研究,只能说明题出的不好。特别是那种难度和区分度都在0.01以下的。这种题说明出题老师都无能。此外,一定要选择试卷版,因为最象卷子,有模拟的感觉。 5、若干的模拟题。做模拟题其实是很无奈的一件事。模拟做的再多还是模拟,永远不可能跟真题的难度一样,何况现在市面上出的模拟题质量一点都不好。但我劝你还是买至少一本吧,把上面的题认认真真的做了。虽然它很烂,但是还是可以让你知道哪里是你的薄弱环节。只要它起到这样的作用也就行了。这里强调买模拟题的应该注意的几点:首先看看后面有没有详细的答案,阅读题的答案应该告诉你文中对应的地方是那里,语法应该讲解语法现象,作文最好还有范文。其次看看阅读每段的长度够不够,这点很重要。有些粗制滥造的题长度明显太短,做完后让你自信心膨胀,有虚假的胜利感,并会给你带来最后的痛苦。 书就推荐这么多,还有两本不错的书可以考虑:一本是跟大纲配套的大纲详解,它里面可以看出出题的方向,对理解题意有好处。不过政治的效果更好一些。另一本是宫东风出的《考研英语词汇复习指南》。此外,最重要的是买本词组的背诵书,切记。虽然不直接考察词组,但多看词组有一个好处,可以培养你意群的意识,看阅读的时候可以一目十行,有效提高阅读的速度。 二、复习当中应该注重的总原则和要搞清的几个问题。 总原则一:英语能力的培养是慢功夫,不可能一促而就。所以每天都要看英语,每天都要作题。强调这点是必要的,因为很多人做不到这点。经常是三天打鱼两天晒网。 总原则二:记住考研英语很BT,从1999-2009年,出题难度有非常大的变化。它是那些研

一个销售牛人的超强总结

一个销售牛人的超强总结 销售经验总结 1. 磨刀不误砍柴功,要对自己的产品非常熟悉 包括产品的优点、缺点、价格策略、技术、品种、规格、宣传促销、竞争产品、替代产品、市场等都要十分了解,才能得到客户的信任。千万在客户的问题反馈中慢慢了解产品。 2. 熟悉客户,做好客户分类 可按实际情况将客户按是否重点分好等级。针对不同类型的客户分配不同的时间和精力,采用不同的策略和方法与之沟通,把主要精力放在成单可能性高的客户上,培养潜在客户,剩余的精力用来挖掘潜在客户。 3. 推销产品首先要推销自己 很多时候推销自己比推销产品更重要,因为要认可产品,得让客户先认可你这个人。 公式1:成功=知识+人脉 公式2:成功=良好的态度+良好的执行力 4.做好每日销售日记 理想的记录是随时可以查询每笔销售记录的具体情况,做好客户拜访记录,随时掌握客户的动态。做好客户记录,不时进行客户分类整理和分析,作到可以随时查询到任何一个客户的信息。最好利用工具来记录,要选择像“好笔头”这样支持电脑和手机同步,可记录文本、表单、视频、照片的销售云笔记。 5. 要做好可执行的计划安排。 先做好计划,才能提高时间的利用效率,提高销售的效果。计划中应该包括以下内容:对新客户的挖掘目标、跟进客户的安排、日程安排、实际完成情况总结及改进等。 6. 学会谈判和推销技巧。 多从客户的角度去考虑问题,学会微笑和倾听,能帮客户解决问题,懂得同客户沟通的技巧。因为在现实中,推销往往不是一次就完成的,而需要多次的沟通。 7. 要有良好的心理素质 一般容易被拒绝影响的人是做不好销售的。要认识到被拒绝、冷落、挖苦是很正常的,同时要多想想客户为什么会拒绝,尤其是要注意克服惰性和克服畏难情绪。 8. 要培养处理临时情况和纠纷的能力 良好的应变能力通常能扭转局势,化危机为机会,而处理纠纷是一个很有艺术性的东西,形式也会千变万化经,关键在于随机应变和经验的积累。 9. 平时要多注意向成功的销售人员请教 要成功毕竟不能靠理论,在这个行业里,经验和能力比理论更重要。 10. 有时要利用团队的力量 有时碰到自己无法解决的问题时,可以向别人求助。但通常情况下不要轻易求助,尽量自己找寻解决方法。

牛人公考心得178

在下在07贵州省考中报考贵州省纪委纪检监察岗(该职位报考比例2:2000),笔试总分第一,领先第二名14分,申论分第二。在随后的湖北省考中,亦斩获湖北省发改委世行办(该职位报考比例2:500)笔试总分第二的理想战果,申论分第一。现将个人的一点心得详述于下,不当处请朋友们不吝指正: 第一步,阅读材料 申论一般三个题目,分值比例2:3:5(这里主要是说省考,国考题型比较灵活,间或夹有选择判断等。个别省考也有只出两个题目的。为便于阐述,下文分析均针对“2:3:5结构”),答题应通盘考虑。 先通读所有材料,重点字句勾画出来。其中往往涵盖了材料反映的问题及各方的反应和解决的措施。所谓“申论解题在题中”,全面耙梳材料是很重要的。全面耙梳就是你要把材料每一段的核心词句都勾出来。然后初步浓缩。几句话的,压到一句话;一句话的,压到一个词或词组。然后竖列排好并编号。这样做好处有两个,一是你一眼看去就能对材料有个整体把握,多看两眼之后,整个材料就在你脑子里了,做题的时候就不用在卷子上翻来覆去的找寻,又耽搁时间又容易迷糊,效率效果双低;二是你立马对材料中反映的问题和材料中给出的对策就有一个直观的大体上的条理性把握,问题有六个,对策十条……诸如此类。事实上这步完成后,三个题怎么做,你心里已经有个框架脉络了。

概括起来,这一步要依序完成如下几步:“通读材料、勾画重点句段、初步浓缩、排列编号”。 第一题 第一题一般是概括材料的主要内容或反映的主要问题,要求全面,准确,简洁,有条理(行文一定要简洁,这是基础性的要求。口水话是申论大忌)。返看刚编好号的竖列,拎出问题部分,扩充成句。但,倘若就这样一条一条写上卷子,哪怕你总结得很全面,语言很简洁很准确,顶多及格分(我不是阅卷老师,这只是我的看法哈。下同)。因为“有条理”没体现出来。比如勾画出来十二条,经比较,有几条重合,于是成九条;二次归纳,九条可以归为三到四条;三到四条要写上卷子了,又有个顺序,分清主次,问题的严重性依次,问题由内而外依次,这体现逻辑性。“全面”和“条理”都有了,内在的逻辑顺序也理清排好了,就是表达的简洁准确,这就要考文字功夫了。平时扎实的文字训练很重要。由于第一题字数限制较少,所以可以不分段。段中行文体现出层次也是可以的。这是第一题。 举个例子,我们看2006年国考第一题: 题目:如果你是新录用的国家公务员,请你用简练的语言概括丁部长的谈话,呈领导阅。字数控制在500字以内(原题材料请自行搜索)。 作答A:

牛人总结

牛人总结“编制技术标应注意的22个细节”2014-07-15施工技术

1、招标文件和图纸拿到后,首先应通读一遍,对重点部分做好标记,然后再分别深入理解。

2、尤其是对工期、安全及质量要求、招标人对工程其他方面的要求做好记录备用。 对图纸的研读要像已经接到这个工程,准备进行施工的情况一样,尤其是对平面图更要仔细研究,结合原地形图初步考虑好大临、便道、加工场地等临时设施的布置以及施工段的划分与组织。同时对工程比较重要的施工图纸(如挂篮施工)进行仔细分析,结合自身特点和优势初步确定所采用的机械设备和施工工艺等。 对工期、质量、安全、环保、文明施工做出招标人想要的承诺(如工程总工期提前100天、质量获国家市政工程金奖、创市级文明工地),并表白投标人一定会主动、积极地配合招标人和相关单位完成施工场地征用、市政管线搬迁、路面翻交、交通疏导等工作,解决招标人担心的施工扰民问题。 如果工期提前量与评分相挂钩,一定要提前到最大得分。如果招标人提出的要求十分苛刻,根本不可能做到,投标人也要无条件承诺下来,否则就是不响应标书,要讲道理只有等中标以后。 3、总体平面布置图:图中应尽量标注临时用水、用电、临时道路、临时办公室、生产区、加工区、机械停放点,生产区与生活区需分开设置(隔离)。生产区中应包括加工区、材料堆放区、一般仓库、特种仓库(或易燃易爆材料)仓库、配电间等。生活区和管理区应考虑食堂与厕所距离>15m,厕所设化粪池,整个区域内考虑消防设施布置,区域出入口设车辆冲洗台(池)。 4、总进度计划:尽量单体绘制,前后期有施工准备、搭临设、测量放样、清场竣工;房建工程的脚手架注意搭、拆的时间;混凝土施工要考虑混凝土养护;春节或农忙时间放假安排;安装工程一般把时间用足,或前期预埋预留、后期成品安装也可。 5、项目管理网络配置:应以项目经理为第一责任人,不应把业主、公司、监理公司的管理介入在内。人员配置:项目经理、副经理、技术负责人、施工员(按专业设置人数)、安全员、质量员、预算员、材料员、资料员等,不应含关切、取样等。网络图一般设:现场组织管理、质量、进度。安全、文明等。 6、主要施工方案:预先做好施工方案各工序模块,具体做的时间参照工程量清单的主要工序将模块照搬。 7、工程概况尽量详细,一般招标文件或图纸说明中有,照抄并结合自己的语言编制。 8、装修、拆除工程一定要有拆除方案,如房屋拆除、老桥拆除、老路翻挖等。

4.牛人总结英语六级听力答题技巧(来源于网络)

主要是给大家一点点做题技巧的建议吧 英语很棒地、觉得我很烂的或者是不用考四六级的可以忽略掉这些 因为本人到现在也就听力还勉强可以做到优秀(做六级真题听力错误平均不超过三个),所以仅提供这方面一点点小的经验技巧 1、提前看题目(最重要的) 这个很重要,非常非常重要,首先看了题目会让你对这个对话有一个基本的认识和了解,继而能很大程度的帮助解题。甚至有的时候,再看了题目的情况下对于某些长对话或短文可以在没听完的情况下就顺利的选出答案。 其次,养成提前看题目的习惯也可以增加做题时的自信。很多人没有仔细看题目,听着听着就不知道再说什么了,听的同时又在看题目,又完全搞不懂在讲什么,这种心理状态下便干脆放弃了,随便选几个。提前把题目抽时间预览一下可以很容易避免这种心态。因为你看过,有了初步的了解自然更加自信去解题,同时也会有点小好奇想知道对话的内容。另外,这里所讲的看题目在实战中是很紧张的,因为听力没有很多的间隙时间。于是,养成提前看题目的习惯也会培养这种紧张的精神更可以防止某些听着听着就发起呆了的现象。 说到这里总是有人抱怨根本没有时间看,其实这个也是个技巧性问题。就拿第一部分的小对话来说,一般在语音中读说明的时候就全部浏览完了,稍微慢点的也可以看个5、6个题目。同时注意看的时候最好能稍微划一下关键词。然后假设还有几个小对话没看完怎么办呢?没关系,因为在每个对话放完之后都有几秒钟的停顿,一般提前看过题目的情况下你是不需要这么多时间作选择的(大部分题目对话听完了就选出答案了),于是就可以用这个时间看后面的题目。按照这个逻辑推理下去后面第二部分第三部分的题目也是可以这样挤时间出来看完的。 其中还2有个问题就是,万一那一点点空的时间我选不出答案怎么办?建议千万不要纠结这样的题目,可以把你听到的关键词用中文或者英文或者符号标在题目旁边,或者把犹豫不决的选项都勾选一下,可以等听力放完了在回忆起来慢慢选,但千万不要再听力过程中思考,会严重影响做听力的心情和后面的进度。 另外,有时候题目太长了确实挤时间都看不完怎么办?在个别的对话或短文中可能三道题有两道是好长好长的选项的,这时候就要做取舍了,最好是先把短选项(通常只有一两个词)的放一边,先看长的。看的时候也要有技巧,像有的选项中结构类似句式类似,这种就不用全看,抓住不一样的词勾出来了解大意就可以了。如果是参差不齐的句子可能就要都看一遍,时间不够也可以看三个选项最后一个采取排除法选择(比如听的时候发现已经看了的三个选项都不对就可以选那个没看的)。 好啦,以上是关于提前看看题目的,可能讲得有点碎,但是真的很有用,现在试试也来得及就那一套题目出来认真按这种方法做一下应该会有收获的。 2、做笔记

英语牛人总结的12条实用方法,让你更好学习英语

英语牛人总结的12 条实用方法,让你更好学习英语 1.Study Every Day 坚持每天学习 It's important to study English every day. However, don't exaggerate! Study for thirty minutes every day instead of two hours once a week. Short, steady practice is much better for learning than long periods on an irregular basis. This habit of studying English every day will help keep English in your brain fresh. 每天都坚持学英语很重要。但是,也不要太夸张了!每天学习30 分钟比一周学习两个小时效果更好。短暂的、定期的练习比起不定期的长时间学习效果更好。每天坚持学习英语的习惯能够使你大脑中储存的英语知识保持在活跃的状态。 2. Review Grammar as Your Watch or Read 回顾你观看或阅读过的语法知识 Give yourself one grammar goal when reading a new article or watching a new video. For example, try to write down each example of a form you are studying such as the present perfect. Use highlighters (colored pens) with texts to highlight forms that you are studying. 在阅读一篇新的文章或观看一个新的视频时,给你自己定下一个语法目标。例如,试着写下你正在学习的一个形式,例如现在完成时。使用荧光笔(或彩色笔)在你学习的文本重点处做上记号。 3. Use Different Learning Methods 使用不同的学习方法

概率论 历年考研真题(牛人总结)

考研概率论部分历年真题(总结) 数学一: 1(87,2分) 设在一次试验中A 发生的概率为p ,现进行n 次独立试验,则A 至少发生一次的概率为 ;而事件A 至多发生一次的概率为 。 2(87,2) 三个箱子,第一个箱子中有4个黑球1个白球,第二个箱子中有3个黑球3个白球,第三个箱子中有3个黑球5个白球。现随机地取一个箱子,再从这个箱子中取出1个球,这个球为白球的概率等于 。已知取出的球是白球,此球属于第二个箱子的概率为 。 3(88,2分) 设三次独立试验中,事件A 出现的概率相等,若已知A 至少出现一次的概率等于2719,则事件A 在一次试验中出现的概率为 。 4(88,2分) 在区间(0,1)中随机地取两个数,则事件“两数之和小于56”的概率为 。 5(89,2分) 已知随机事件A 的概率P (A )=0.5,随机事件B 的概率P (B )=0.6及条件概率P (B | A )=0.8,则和事件A B 的概率P (A B )= 。 6(89,2分) 甲、乙两人独立地对同一目标射击一次,其命中率分别为0.6和0.5,现已知目标被命中,则它是甲射中的概率为 。 7(90,2分) 设随机事件A ,B 及其和事件A B 的概率分别是0.4, 0.3和0.6,若B 表示B 的对立事件,那么积事件A B 的概率P (A B )= 。 8(91,3分) 随机地向半圆0

最新考试总结5篇精选

最新考试总结5篇精选 考试总结篇一 总结这个学期的学习,我想,主要有以下几个方面: 第一,学习态度比较端正。能够做到上课认真听讲,不与同学交头接耳,不做小动作,自觉遵守课堂纪律;对老师布置的课堂作业,能够当堂完成;对不懂的问题,主动和同学商量,或者向老师请教。 第二,改进了学习方法。为了改进学习方法,我给自己订了一个学习计划:(1)做好课前预习。也就是要挤出时间,把老师还没有讲过的内容先看一遍。尤其是语文课,要先把生字认会,把课文读熟;对课文要能分清层次,说出段意,正确理解课文内容。(2)上课要积极发言。对于没有听懂的问题,要敢于举手提问。(3)每天的家庭作业,做完后先让家长检查一遍,把做错了的和不会做的,让家长讲一讲,把以前做错了的题目,经常拿出来看一看,复习复习。要多读一些课外书。每天中午吃完饭,看半个小时课外书;每天晚上做完作业,只要有时间,再看几篇作文。 第三,课外学习不放松。能够利用星期天和节假日,到少年宫去学习作文、奥数、英语和书法,按时完成老师布置的作业,各门功课都取得了好的成绩。参加少儿书法大赛,还获得了特金奖。 经过自己的不懈努力,这学期的各门功课,都取得了比较好的成绩。自己被评为三好学生,还获得了“小作家”的荣誉称号。 虽然取得了比较好的成绩,但我决不骄傲,还要继续努力,争取

百尺竿头,更进一步,下学期还要取得更好的成绩。 考试总结篇二 紧张的期末考试已经过去了半个月,成绩好的同学更应该再接再厉争取更好的成绩,而成绩不是太理想的同学更应该做出对这次考试的反思,下面我们来听听末考状元面对全班同学讲解了她的学习的方法,从学习的态度到学习的目标,从学习的勤奋到学习的恒心。 1、态度。态度决定一切。有这样一句话:“当我冷眼旁观时,生命是一只蓝色的蛹;当我热情相拥时,生命是一只金色的蝶”。学习也是这样,当你把学习当作自己成长发展的需要时,才能体验到学习的快乐;当你把学习当作是一种负担时,学习就是一种痛苦。所以说,我们首先要调整心态,以愉快的心情投入到紧张的学习生活末,并善于在学习的过程末体验获取知识的快乐,体验克服困难的快乐,体验取得成功的快乐。 2、目标。目标是前进的灯塔。每个人都应该有一个既定目标,瞄准目标奋力攀登,就一定会取得成功。最终的总体目标,是由一个个切近的具体目标逐步递进而实现的。所以,请同学们一定要确立自己的努力方向和适当的近期目标,在不断的超越末成长自我,成就自我。 3、勤奋。勤奋是成长的阶梯。书山有路勤为径,要学习真本领没有勤奋的耕耘不行。不勤奋,理想永远是梦想。但勤奋并非只是简单的忙忙碌碌,更需要思考和反思。有的同学终日劳累,却没有明显的进步,原因何在?我想,也许是因为缺少思考和反思,还未认识到

一个牛人总结的倒车技巧

一个牛人总结的倒车技巧 所谓汽车倒车,就是通过驾驶员的操作,将车由静止状态经动力传递到汽车向后行驶的过程。倒车行驶,由于受视线的限制,看不清车后的道路情况,又加之转向的特殊性,控制转向的位置又起了变化,所以比车辆前进较困难一些,没有前进时的转向方便、灵活、准确。 下面简介倒车的操作方法: (1)倒车的驾驶姿势 根据汽车的轮廓和装载的宽度、高度及交通环境道路状况,在倒车时,应首先观察车下、车后的情况,可采用如下两种方法: ①注视后窗倒车。驾驶座在左侧的左手握方向盘上端,身体上身向右倾斜坐,右臂依托在靠背上端,头朝后。两眼由后窗注视后方目标。如驾驶座在右侧的,由上身向左斜坐。 ②注视侧方倒车。驾驶座在左侧的,右手握方向盘的上端,左手扶在打开车门的门框上,上身倾斜伸出驾驶室,头朝后,两眼注视后方目标。 (2)倒车的目标选择 ①由后窗注视倒车的。可以车厢后两角为准。从场地、库门或停靠位置的建筑物中选定适当目标,然后根据目标进行倒车。 ②由侧方注视倒车的。可以车厢角或后轮为准。以场地、库门或依靠位置的建筑物为适当日标,然后,根据目标进行倒车。 倒车时,如有人指挥,应与指挥人员相互密切配合。 (3)倒车操作方法 倒车时,应先打开转向信号、鸣喇叭(非禁止鸣喇叭地段),观察周围情况,选定进退的目标;无把握或必要时应下车察看,并注意前后有无来车。选好后倒目标后,在车辆停止情况下,换入倒挡,可根据目标的需要按照上述的两种倒车驾驶姿势之一进行倒车操作。 ①直线倒车。应保持前轮的正向倒退,方向盘的运用与前进一样。如倒车时车尾向左(或右)偏,应立即将方向盘向右(或左)转动,待车尾摆直后即可将方向盘回正。 ②转向倒车。即变换方向的倒车。应掌握“慢行车,快转向”的操作方法。倒车要注意车后情况。倒车转弯时,前面外侧车轮的半径圆弧大于后轮半径圆弧。因此,要十分注意车前外侧的车轮,避免与障碍物发生刮碰。同时要照顾全车的动向。倒车速度应控制在5km/h以内。在倒车中,如因地形或方向盘的转向角所限制,须反复前进或后倒时,应在每次后倒或前进接近停车前的一瞬间,迅速利用车辆的移动回转方向盘,为再次前进或后倒作好转向的准备,不应在车辆停止后强力转动方向盘。 应该弄清楚,转向的倒车,车尾倒向的方向,也就是转动方向盘的方向。 STEP1:玩转后视镜 实战“停车入库”要补的第一课就是“玩转后视镜”! 有经验的驾驶员几乎只在长距离直线倒车时才采用透过车窗直接观察的方法,其余绝大多数时间都是利用后视镜倒车的! 这是因为一般情况下倒车时最需要注意的是处于车身侧面的低矮的障碍物、地面的凹陷等,这些是从车窗里看不到的!要应付这样“险恶”的环境,必须依靠后视镜!另外通过后视镜进行观察、倒车时,不需要回过头去,比较容易兼顾车头的动态,不容易发生车头刮擦障碍物的情况。 玩转后视镜,了解它们各自的特点会让你收到事半功倍的效果。 副驾驶侧后视镜是一面具有微小曲率的凸面镜,反映的范围比较广阔,但没有真实的距离感,镜中的景物看上去要比实际情况远。另外,因为镜中景物是变形的,要借助这种镜子判断车身是否与路边停得平行也比较困难。 这面镜子在倒车时的主要用处是观察车身右侧有没有障碍物、轮胎离路沿的距离等。为了清楚地了解右侧的路面情况,有时还可在倒车时将这面镜子的角度适当调低(部分比较高级的轿车此侧后视镜是与变速箱联动的,只要一挂入倒挡,就会自动调低10——15度)。 司机侧后视镜是一面平面镜,其反映的范围不如副驾驶侧的广阔,但是具有真实的距离感,借助它能

牛人做N道题总结出来的77个注册考试难点

牛人做N道题总结出来的77个注册考试难点 混凝土结构部分:(36个考点) 1.预制构件吊装验算时,自重动力系数1.5不要忘了乘。9.6.2条有规定。 2.T形截面受弯构件翼缘计件宽度的取值不要忘记。这个一定要先验算给出的翼缘是否已经超过规范要求可以采用的最大翼缘宽度,而且要注意算出来的受压区高度x是否超过了翼缘厚度,同时验算x是否<2as’,如果x<2as’,受压钢筋不屈服,只能对受压钢筋合力点取矩求解抗弯承载力,同时注意如果是单筋梁,不存在受压钢筋是否屈服的问题,则不受x2as’的限制。 3.抗剪计算中,剪跨比的取值有时会设陷阱,得小心,多个抗剪计算中,不管是混凝土规范还是高规中的,各个剪跨比的限值都是不一样的。由于新规范对抗剪调整很大,大幅增加了抗剪的安全度,今年应该会考,应该说必考,特别是6.3.13、6.3.14条的偏压、偏拉构件抗剪验算陷阱多,考的可能性很大。注意好好看啦。偏拉抗剪验算中有截面最低限值和配箍最低限值,各类偏压构件验算中均存在这个要求。 4.偏心受压构件受剪计算时,轴压力不能大于0.3fcA。在其他抗剪计算的公式中,只要是偏压的只要有轴力在里面的都有N的最上限控制,计算时必须首先验算这个。 5.钢筋用作受剪、受扭、受冲切承载力计算时,强度不能大于360。注意这里的钢筋可能是箍筋也可能是纵筋,比如受扭纵筋等。新规范对间接钢筋没有提出这个要求,比如局部受压构件的螺旋筋,轴压构件中提高轴压承载力的钢筋,没有这个限制。 6.并筋的概念要注意,今年应该会考。4.2.7、4.2.8条及条文说明每句都要看清楚。 7.受扭构件中,一般剪扭构件受扭承载力降低系数有限制条件,注意取值。集中力作用下的剪扭构件和一般剪扭构件公式不同,注意区分。箱形截面计算的时候注意有个箱形截面壁厚影响系数。 8.二阶弯矩、二阶效应应该是今年考察的重点,计算量合适,但是对概念要求要非常清楚,6.2.3、6.2.4条及附录B每个字都要弄明白。 9.裂缝宽度及挠度计算中,普通混凝土构件新规范要求采用准永久组合,同时注意那几个小注,貌似都没考过,一旦考了要注意啊。挠度计算(采用准永久组合),可能会是今年考察的重点,多年没考啦,而且前两年都考的裂缝。而且这里的挠度可能考预应力构件的挠度,计算量也适中,注意新规范增加的预应力的相关规范,将是概念题考察的重点。 10.新规范增加的防连续倒塌,楼盖舒适度要求也是概念考察的重点。 11.预制构件吊环计算,每吊环按2个截面计算应力不大于65MPa,一构件上有四个吊环时,只取3个计算。有关预埋件这一节,增加了很多计算和构造要求,将是概念题的考察重点,同时抗震验算中“预埋件锚筋截面计算的承载力抗震调整系数为YRE=1” 12.最容易忘抗震调整系数,这个一忙乎很容易忘!!!特别是偏压构件计算的时候,只要公式的左边出现了内力,右边就要考虑抗震调整系数,比如对称配筋求x的时候,右边就要考虑抗震调整系数。 13.荷载组合时,当恒载对结构的承载力有利时,分项系数取1.0;当活载对结构的承载力有利时,分项系数取0。切记,对于同一组合中的各分项系数不能一个取1.0,一个取1.2。同时注意恒载控制的时候,活载每个都是要乘以组合系数的,莫漏掉一个啊。典型案例,2011年考题就出现啦,求梁剪力的时候,左右端的弯矩组合的时候要采取相同的组合系数,最终算剪力的时候才能保证采用的是相同的组合系数。 14.计算柱体积配箍率时,混凝土如果低于C35,按C35计算。注意这个是仅仅算最小体积配箍率的时候这么用,算轴压比的时候材料是C20就采用C20,不能乱套啊。这个是必考点。注意啊体积配箍率算出来后,要和各抗震等级对应的最小配箍率比较,比如一级是0.8%,算出来的一定要大于这个。还有就是剪跨比小于2的就要小心啦,需要不小于1.2%,看到9度一级更要小心,是不小于1.5%,看到转换柱也要小心啦,配箍特征值要增0.02,体积配箍率是不小于1.5%,自己好好算下,这个体积配箍率按照配箍特征值算出来的很难满足。15.看清题目里给的是设计值还是标准值。

Systemverilog的一个牛人总结

转一篇Systemverilog的一个牛人总结 (2012-12-12 16:47:06) 转载▼ 标签: 分类:Dreamywork systemverilog 验证 面向对象 杂谈 Systemverilog 数据类型 l 合并数组和非合并数组 1)合并数组: 存储方式是连续的,中间没有闲置空间。 例如,32bit的寄存器,可以看成是4个8bit的数据,或者也可以看成是1个32bit的数据。 表示方法: 数组大小和位,必须在变量名前指定,数组大小必须是【msb:lsb】 Bit[3:0] [7:0] bytes ; 2)二维数组和合并数组识别: 合并数组: bit [3:0] [7:0] arrys; 大小在变量名前面放得,且降序 二维数组: int arrays[0:7] [0:3] ; 大小在变量名后面放得,可降序可升序 位宽在变量名前面,用于识别合并和非合并数组,位宽在后面,用于识别数组中元素个数。 3)非合并数组 一般仿真器存放数组元素时使用32bit的字边界,byte、shortint、int都放在一个字中。 非合并数组:字的地位存放变量,高位不用。 表示方法: Bit [7:0] bytes; 4)合并数组和非合并数组的选择 (1)当需要以字节或字为单位对存储单元操作。 (2)当需要等待数组中变化的,则必须使用合并数组。例如测试平台需要通过存储器数据的变化来唤醒,需要用到@,@只能用于标量或者合并数组。

Bit[3:0] [7:0] barray[3] ; 表示合并数组,合并数组中有3个元素,每个元素时8bit,4个元素可以组成合并数组 可以使用barry[0]作敏感信号。 l 动态数组 随机事物不确定大小。 使用方法:数组在开始是空的,同时使用new[]来分配空间,在new[n]指定元素的个数。 Int dyn[]; Dyn = new[5]; //分配5个元素空间 Dyn.delete() ; //释放空间 l 队列 在队列中增加或删除元素比较方便。 l 关联数组 当你需要建立一个超大容量的数组。关联数组,存放稀疏矩阵中的值。 表示方法: 采用在方括号中放置数据类型的形式声明: Bit[63:0] assoc[bit[63:0]]; l 常量: 1)Verilog 推荐使用文本宏。 好处:全局作用范围,且可以用于位段或类型定义 缺点:当需要局部常量时,可能引起冲突。 2)Parameter 作用范围仅限于单个module 3)Systemverilog: 参数可以在多个模块里共同使用,可以用typedef 代替单调乏味的宏。 过程语句 l 可以在for循环中定义变量,作用范围仅在循环内部 for(int i=0;i<10;i++) array[i] =i; l 任务、函数及void函数 1)区别:

牛人总结微博应用

?【官微引导24】:舆情。国家有舆情,企业也一样要重视企业舆情,这个舆情把握,基本上可以在微博实现。主要通过【关键词锁定】,列出本企业所重视的关键词,如企业名称、竞品名称、投诉、产品关联词组等,实现这个,需要记住一个按钮【关注的话题】,学会使用这个按钮,并定时检查你锁定的关键词动态。 今天12:18来自新浪微博 转发(5)|收藏|评论(3) ?【官微引导23】:客服,既然开设官微,难免会遇到投诉和对你公司产品情绪类帖子,这个事情,官微可以发挥先遣队的沟通作用,马上跟对方互动,保持良好态度,消解对方情绪,了解事件真相,及时汇报公司,马上给出解决方案,记得戴尔回应@曹增辉的一个问题的时候,表现就很出色。及时解决问题化解小危机 今天12:12来自新浪微博 转发(9)|收藏|评论(13) ?【官微引导22】:官微发布企业信息,一定要注意140字的限制,最好在一个帖子说完。 当然,这对管理者的文字水平要求很高,如果遇到长篇发布,那就需要【连载,标出序号】,否则,会产生误读。我记得成都市政府官微有一个断章发布,引起巨大争议;大家只看到市委常委的名单和职位,去救灾没写,被骂了。 今天12:06来自新浪微博 转发(3)|收藏|评论(2) ?【官微引导21】:“微博个性”的建立原则:1,支持公理;2,转发公益;3,与人为善;4,力争原创;5,坚持特色;6,观点明确;7,立场坚定;8,减少纠缠;9,笑对批评;10,有错就认;11,道歉及时;12,果断辟谣;13,求真务实。 今天11:54来自新浪微博 转发(31)|收藏|评论(17) ?【官微引导20】:官微注册以后,第一件事情是“加关注”,根据新浪规则,你每天最多可以加200人,关注总量是2000人。而官微,技术上讲,10天的总关注,可以达到2000,但是,我建议你不要饱和,最多关注到1000人。遇到那些牛人根本无视你的你可以取消,在加关注上,重视草根、意见领袖和少数名人配比。 今天11:31来自新浪微博 转发(8)|收藏|评论(9) ?【官微引导19】:赠人玫瑰,手有余香。我甚至觉得,你一开始就无需发表自己的帖子,而是经常性转发有营养的,用这个技巧去建立友谊。当然,在转发评论他人的时候,你不能太势利,不要只转发牛人的帖子,也不要只转发你的客户和准客户的帖子。你可以更多地参与到草根网友的互动当中去,他们才是传播者。 今天11:15来自新浪微博 转发(8)|收藏|评论(10) ?【官微引导18】:每一个微博账号,都是一个生命,这是经验微博的前提。而生命的基本特征是【动】,而且是【互动】。就算你自己的微博很有营养,你也不能俗世独立,尤其你微博做的很有营养之后,你更不能孤标自傲,你需要经常去拜访别人的帖子,要多多赞扬你觉得不错的博友,评论和转发,都是赠人玫瑰。 今天11:11来自新浪微博 转发(20)|收藏|评论(16) ?【官微引导17】:你对自己的官微定位,一定要基于你企业的产品特质和你的企业文化,围绕这两个核心来建构自己的【微博个性】,而所有的微博个性建构,必须坚持“鲜活、生

最新注册安全工程师-案例牛人总结(重点推荐)

第一章安全生产事故预防知识 一、安全生产相关概念 1、危险化学品重大危险源:①同一个单位、②500m以内、③等于过超过临界量。 2、危险化学品分类:根据——------------------细化 ①爆炸品: ②压缩气体或液化气体 ③易燃液体 ④易燃固体、自燃物品和遇湿易燃物品 ⑤氧化剂 ⑥有毒品 ⑦放射物品 ⑧腐蚀品 3、重大危险源——与“临界量”对比(500m以内,不同物质) A百分比+B百分比≥1时,即为重大危险源;存量/临界量 注意:没有特殊说明在同一单元时或不能证明在同一单元时——不在同一单元; ①计算所得; ②特种设备:长输管道(200km+300mm)、工业管道、蒸汽锅炉(2.5Mpa+10t/h)、热水锅炉(出水120°)、压力容器(0.1mpa,中毒以上)、高瓦斯矿井; ③危化品临界量:乙炔1t、氢、氯、硫化氢5t、氨10t、苯50t、汽油200t、甲苯、甲醇、乙醇500t、柴油5000t; 4、重大事故隐患:危害、整改难度大,需要全部或局部停产停业,并经过一定时间才能排除事故隐患;(辨识依据:危险特性、数量) 5、重大事故隐患报告内容:现状及产生的原因、危险程度、整改难易程度分析、治理方案; 6、危险源VS事故隐患:危险源可能存在事故隐患,也可能不存在事故隐患;事故隐患一定是危险源; 二、危害因素辨识 1、危险有害因素分类:——GB/T13861-2009 (重点) ①人的不安全行为:指挥错误、误操作、监护有误、违章作业; ②物的不安全状态:(物理)设计缺陷、防护缺陷、标志缺陷、信号缺陷、噪声、振动、辐射、高低温、有害光照;(化学):爆照品、压缩气体、氧化剂、有毒品、粉尘; ③管理因素:组织机构、责任制、规章制度、应急预案、安全培训、安全投入; ④环境因素:(作为补充)场地、照明、地滑、不适应;

考研数学150分牛人总结的公式汇总.docx

最新最全版考研数学公式,奉献给大家 高等数学公式篇 ·平方关系: sin^2(α )+cos^2(α )=1 tan^2( α )+1=sec^2( α ) cot^2( α )+1=csc^2( α ) ·积的关系: sin α =tan α *cos α cos α =cot α *sin α tan α =sin α *sec α cot α =cos α *csc α sec α =tan α *csc α csc α =sec α *cot α ·倒数关系: tan α· cot α =1 sin α· csc α =1 cos α· sec α =1 直角三角形ABC 中, 角 A 的正弦值就等于角 A 的对边比斜边, 余弦等于角 A 的邻边比斜边 正切等于对边比邻边, ·三角函数恒等变形公式 ·两角和与差的三角函数: cos( α +β )=cos α· cos-sinβα· sin β cos( α-β )=cos α· cos β +sin α· sin β sin( α±β )=sin α· cos β± cos α· sin β tan( α +β )=(tanα +tanβ-tan)/(1α· tanβ ) tan( α-β )=(tan -αtan β )/(1+tanα· tanβ ) ·三角和的三角函数: sin( α +β +γ )=sin α· cos β· cos γ +cos α· sin β· cos γ +cos-sin α· cossin β·s i nγ cos( α +β+γ )=cos α· cos β·-coscosα·γsin β·-sin α·γ cos β·-sin α·γ sin β· cos γ tan( α +β+γ )=(tan α +tan β-+tanα·γ tan β· tan-tanγ)/(1α· tan-tanβ β· tan-tanγ γ· tan α ) ·辅助角公式: Asin α +Bcosα =(A^2+B^2)^(1/2)sin(α,+t)其中 sint=B/(A^2+B^2)^(1/2) cost=A/(A^2+B^2)^(1/2) tant=B/A

相关主题