西工大2017年数字集成电路设计实验课实验一
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四 译码器的设计及延迟估算
1、 设计译码器并估算延迟
设计一个用于16bit 寄存器堆的译码器,每一个寄存器有32bit 的宽度,每个bit 的寄存器单元形成的负载可以等效为3个单位化的晶体管(后面提到负载都为单位化后的负载)。
译码器的结构可参考典型的4-16译码器
译码器和寄存器堆的连接情况(Output 输出为1的一行寄存器被选中)
① 假定4个寄存器地址位的正反8个输入信号,每个信号的输入负载可以等效为10。确定 译码器的级数,并计算相关逻辑努力,以此来确定每一级中晶体管的尺寸(相当于多少个单位化的晶体管)及整个译码电路的延迟(以单位反相器的延迟的本征延迟Tp0为单位)。
解: 96332,10int =⨯==ext g C C C ,9.696/10F ==⇒
假定每一级的逻辑努力:G=1,又因为分支努力(每个信号连接8个与非门):
81*8*1B ==, 路径努力8.7686.91=⨯⨯==GFB H 所以,使用最优锥形系数就可得到最佳的电路级数39.36.3ln 8.76ln 6.3ln ln ===H N ,故N 取3级。
因为逻辑努力:2121G =⨯⨯=,路径努力:6.15386.92=⨯⨯==GFB H 则使得路径延时最小的门努力 36.5)6.153(3/1===N H h 。
所以:
.
36.5136.5,68.2236.5,
36.5136.5132211=========g h f g h f g h f
故第一级晶体管尺寸为7.68
1036.5=⨯; 第二级尺寸为956.1768.27.6=⨯;
第三级尺寸为96244.9636.5956.17≈=⨯。
故延迟为:0008.22)36.5136.5436.51(p p p t t t =+++++=
② 如果在四个寄存器地址输入的时候,只有正信号,反信号必须从正信号来获得。每个正信号的输入的等效负载为20,使用与①中同样的译码结构,在这种条件下确定晶体管的大小并评估延迟(以单位反相器的延迟的本征延迟Tp0为单位)。
解:因为输入时通过两级反相器,使这两个反相器分摊原来单个反相器的等效扇出,将两级反相器等效为一级,故其逻辑努力32.236.5h ==,
故36.5,68.2,32.2,32.24321====f f f f
所以:
第一级尺寸为:()9.2832.210=⨯;
第二级尺寸为:728.632.29.2=⨯;
第三级尺寸为:03.1868.2728.6=⨯;
第四级尺寸为:65.9636.503.18=⨯
正信号通路的延迟为:()0036.2236.5136.5436.5132.2132.2p p p t t t =++++++++= 反信号通路情况与上问相同,延迟为0008.22)36.5136.5436.51(p p p t t t =+++++=
2、 根据单位反相器(NMOS:W=0.5u L=0.5u PMOS:W=1.8u L=0.5u),设计出实
际电路,并仿真1题中第一问的路径延迟。
设计出实际电路如下:
仿真图如下:
代码如下
.title hubucmos
.options probe
.protect
.lib'D:\synopsys\Hspice_D-2010.03-SP1\lib\cmos25_level49.lib' TEST .vec'D:\Users\lenovo\Desktop\6\t1.vec'
.unprotect
.global VDD
Mng out g 0 0 NMOS w=1um l=0.5um
Mnf out f one 0 NMOS w=2um l=0.5um
Mna one a two 0 NMOS w=4um l=0.5um
Mnb two b 0 0 NMOS w=4um l=0.5um
Mnc one c three 0 NMOS w=6um l=0.5um
Mnd three d four 0 NMOS w=6um l=0.5um
Mne four e 0 0 NMOS w=6um l=0.5um
Mpg out g six vdd PMOS w=6um l=0.5um
Mpf six f vdd vdd PMOS w=6um l=0.5um
Mpa six a five vdd PMOS w=12um l=0.5um
Mpb six b five vdd PMOS w=12um l=0.5um
Mpc five c vdd vdd PMOS w=12um l=0.5um
Mpd five d vdd vdd PMOS w=12um l=0.5um
Mpe five e vdd vdd PMOS w=12um l=0.5um
CL out 0 10pf
vvdd vdd 0 2.5v
.tran 1n 2u start=0n
.measure tran tdelay1 trig v(g) val=1.25 td=0ns fall=1
+targ v(out) val=1.25 td=0ns rise=1
.measure tran tdelay2 trig v(g) val=1.25 td=0ns fall=2
+targ v(out) val=1.25 td=0ns rise=2
.measure tran tdelay3 trig v(g) val=1.25 td=0ns rise=2
+targ v(out) val=1.25 td=0ns fall=2
.measure tran tdelay4 trig v(g) val=1.25 td=0ns rise=3
+targ v(out) val=1.25 td=0ns fall=3
.print v(out) v(a) v(b) v(c) v(d) v(e) v(f) v(g)
.end
tt.vec:
radix 1111111
io iiiiiii
vname a b c d e f g
tunit us