D触发器设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

要求:采用0.25um CMOS工艺(SPICE模型,BSIM3.1)设计一个基于传输门结构的D触发器,要求该D触发器带有异步高电平置位。

1)用HSPICE仿真验证该D触发器功能的正确性。

2)利用HSPICE仿真得出该D触发器的建立时间、保持时间和传输延时的值,假设D触发器的负载是该D触发器的数据输入端。

3)请优化该D触发器的晶体管尺寸,使建立时间最小。

4)优化尺寸使传输延时最小。

仿真过程中,输入信号和clock的跳变沿(上升沿时间和下降沿时间)统一为0.2ns。如下面的clock的例子:

vclk clock 0 pulse (0 2.5 0 0.2n 0.2n 4.8n 10n)

建立时间定义含混,难以精确确定。一般减小寄存器数据到clock的时间不会使输出立刻出错,但它会使输出延时增大,所以一般建立时间的定义有两种方法:

(b)

1、定义成时钟之前数据输入必须有效的时间。(但有效的含义是什么,难以精确确定)

2、定义成使D-Clk时间差与tc-q延时的和最小时寄存器的工作点。这一点使触发器的延时总开销最小。即图(b)中斜率45度的点。X轴和Y轴等比例!

在全定制设计中这个值可以比较接近出错点,但在半定制标准单元设计中,寄存器的建立时间和保持时间定义成相对tcq增大一个固定百分比时(一般为5%),数据-时钟的时间差。注意,这些曲线在0-1和1-0翻转时不同,因此0和1值得建立时间和保持时间是不一样的,另外建立时间和保持时间还和时钟与数据的斜率有关,在非线性模型中用一个二维表格表示。

在本练习中,采用第二种建立时间定义方法。假定都采用使输出延时比原来增大5%的时间点作为建立时间。分别测量输出“1”和输出“0”的不同的建立时间。保持设计的定义与此相似,,同样用输出延时增加5%作为定标点。

主从D触发器电路图:

图1

建立时间指信号D在clk上升沿之前必须稳定的时间。传输延迟指从QM到达Q 的时间;保持时间指信号D在clk上升沿之后必须保持稳定的时间。

(1)从图1可以看出,建立时间的路径为I1、T1、I3、I2,忽略时钟反相器的延时。建立时间:tsetup=3tp_inv+tpd_tx。

优化:

由于clk的扇出较多,负载比较大,所以clk的两个本地反相器采用大的尺寸wn=2u,wp=4u以提高驱动能力。I1为数据输入管,采用中等尺寸wn=1.2u,wp=2.4u为T1提供合适的驱动。I3的负载接两个反相器,所以尺寸不宜太小,wn=1.2u,wp=2.4u。对于上升电路其负载为T2, 为减小上升延时,T2设置为最小尺寸。此外I4也是作为负载端也应将其管子都设为最小尺寸。

(2)传输延时为信号通过T3、I6的时间,传输时间为tcd=tpd_inv+tpd_tx。

优化:

传输延时为从Qm到达Q的时间。数据传输到I2的同时也传输到了I4,所以I4在clk的上升沿就稳定了。I5可看作为输出的负载,所以I5采用最小尺寸。I6接I5和下一级D触发器的数据输入端,所以I6尺寸不能过小,wn=1.2u,wp=2.4u。故为了能更好地驱动I6,T3也不采用最小尺寸,wn=0.5u,wp=0.5u。

(3)D在clk上升沿后必须稳定,D和clk都经过一个反相器后到达T1,所以输入的变化不会比clk更快到达T1,保持时间为0,即thold=0。

优化前D触发器的仿真波形:

1—0翻转传输时间和建立时间的测量如图:

传输时间Tcqf平均为313ps,增大为1.05倍为329ps,此时对应的建立时间Tsetf=129ps.

0—1翻转传输时间和建立时间的测量如图:

局部放大图:

传输时间Tcqr平均为343ps,增大为1.05倍为361ps,此时对应的建立时间Tsetr=120ps.

0—1翻转保持时间和传输时间的测量如图:

传输时间Tcq平均为274ps,增大为1.05倍为287ps,此时对应的保持时间Thold=-86.4ps.

优化后D触发器的仿真波形:

0—1翻转传输时间和建立时间的测量如图:

传输时间Tcqr平均为222ps,增大为1.05倍为234ps,此时对应的建立时间Tsetr=118ps.

1—0翻转传输时间和建立时间的测量如图:

传输时间Tcqf平均为250ps,增大为1.05倍为263ps,此时对应的建立时间Tsetf=161ps.

0—1翻转保持时间和传输时间的测量如图:

传输时间Tcq平均为224ps,增大为1.05倍为235ps,此时对应的保持时间Thold=-91.9ps.

d触发器网表(测建立时间):

************Name:data_flipflop********************

.lib "cmos25_level49.lib" TT

.global vdd

.option post list

.param tdtime=7n

.param py=7n

.ic q=0

.subckt inv in out

mp out in vdd vdd pmos w=0.5u l=0.25u

mn out in 0 0 nmos w=0.25u l=0.25u

.ends

.subckt tg in1 in2 in0 outp

mp in0 in1 outp vdd pmos w=0.5u l=0.25u

mn in0 in2 outp 0 nmos w=0.25u l=0.25u

.ends

.subckt trigger d clock q

x1 clock 1 inv

x2 1 2 inv

x3 d 3 inv

x4 4 5 inv

x5 6 4 inv

x6 4 7 inv

x7 q 9 inv

x8 10 q inv

x9 1 2 5 6 tg

x10 2 1 3 6 tg

x11 2 1 9 10 tg

x12 1 2 7 10 tg

.ends

x1 d clock q trigger

x2 q clock q1 trigger

c0 q1 0 0.5p

vdd vdd 0 2.5

vclk clock 0 pulse(0 2.5 tdtime 0.2n 0.2n 4.8n 10n)

vd d 0 pulse(0 2.5 py 0.2n 0.2n 9.8n 20n)

.op

.tran 0.01ns 50ns sweep tdtime 7.11n 8n 0.01n

.dc vd 0 2.5 0.5

.measure tran tsetr trig V(d) val=1.25 rise=1 targ V(clock) val=1.25 rise=1

.measure tran tcqr trig V(clock) val=1.25 rise=1 targ V(q) val=1.25 rise=1 .measure tran tsetf trig V(d) val=1.25 fall=1 targ V(clock) val=1.25 rise=2

.measure tran tcqf trig V(clock) val=1.25 rise=2 targ V(q) val=1.25 fall=1

.end

d触发器网表(测保持时间):

************Name:data_flipflop********************

.lib "cmos25_level49.lib" TT

.global vdd

.option post list

.param tdtime=7n

.param py=7n

.ic q=0

.subckt inv in out

mp out in vdd vdd pmos w=0.5u l=0.25u

相关文档
最新文档