2021-03-09 19:15:28 -08:00
|
|
|
|
|
|
|
|
|
|
|
* File includes subcircuits and technology definitions
|
|
|
|
.include ./SRAM_bits.cir
|
|
|
|
|
|
|
|
|
|
|
|
*this cell emulates load from SRAM cells,
|
|
|
|
* Number refers to the load from than number of cells
|
|
|
|
.subckt memLoad ttt fff number=254
|
|
|
|
Xnt ttt gnd dead nn ww='number*5'
|
|
|
|
Xnf fff gnd dead nn ww='number*5'
|
|
|
|
.ends memLoad
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
*********begin: topLevel*****
|
|
|
|
|
|
|
|
* Parameters
|
|
|
|
.global gnd vdd
|
|
|
|
.param gnd=0
|
|
|
|
|
|
|
|
|
|
|
|
*********begin: topLevel*****
|
2021-03-17 12:19:33 -07:00
|
|
|
.param per = 1.9ns
|
2021-03-12 13:53:24 -08:00
|
|
|
.param dataLead=per*0.1
|
2021-03-17 11:51:50 -07:00
|
|
|
.param lw=2200
|
2021-03-17 12:19:33 -07:00
|
|
|
.param wirew=12
|
2021-03-09 19:15:28 -08:00
|
|
|
|
|
|
|
vdd vdd 0 'supply'
|
|
|
|
|
2021-03-15 22:24:43 -07:00
|
|
|
Xclok clk dat1 period='per' start='per+dataLead' total=1 duty=0.5 sz=300
|
|
|
|
Xad ad dat1 period='per' start='per' total=1 duty=0.5 sz=300
|
2021-03-17 11:51:50 -07:00
|
|
|
Xrdwr rdw dat1 period='per' start='2*per' total=2 duty=1 sz=300
|
|
|
|
Xdii din dat1 period='per' start='per' total=4 duty=2 sz=300
|
2021-03-09 19:15:28 -08:00
|
|
|
|
2021-03-16 15:44:09 -07:00
|
|
|
Xinv1 clkb1 clk inv
|
|
|
|
Xinv2 clkb2 clkb1 inv
|
|
|
|
Xinv3 clkb3 clkb2 inv
|
2021-03-16 16:20:35 -07:00
|
|
|
Xinv4 clkb4 clkb3 inv size='300'
|
2021-03-16 15:44:09 -07:00
|
|
|
Xinv5 clkb5 clkb4 inv
|
2021-03-16 16:20:35 -07:00
|
|
|
Xinv6 clkb6 clkb5 inv size='300'
|
2021-03-16 15:44:09 -07:00
|
|
|
|
2021-03-15 15:17:04 -07:00
|
|
|
Xad adf ad clk flop
|
|
|
|
Xdinff dinf din clk flop
|
|
|
|
Xrdwff rdwf rdw clk flop
|
2021-03-15 22:24:43 -07:00
|
|
|
Xrotff dotf dot clk flop
|
2021-03-15 15:17:04 -07:00
|
|
|
Xdec choose adf clk decModel
|
2021-03-09 19:15:28 -08:00
|
|
|
|
2021-03-16 15:44:09 -07:00
|
|
|
Xwr bt3 bf3 dinf rdwf clkb6 iWrite1
|
2021-03-12 13:53:24 -08:00
|
|
|
Xw1 bt1 bt2 bf1 bf2 clk wire_precharge len='lw/4' wid='wirew'
|
2021-03-14 23:11:00 -07:00
|
|
|
Xmd1 bt2 bf2 memLoad number=15
|
2021-03-12 13:53:24 -08:00
|
|
|
Xw2 bt2 bt3 bf2 bf3 clk wire_precharge len='lw/4' wid='wirew'
|
|
|
|
Xmd2 bt3 bf3 memLoad number=16
|
|
|
|
Xw3 bt3 bt4 bf3 bf4 clk wire_precharge len='lw/4' wid='wirew'
|
|
|
|
Xmd3 bt4 bf4 memLoad number=16
|
|
|
|
Xw4 bt4 btt bf4 bff clk wire_precharge len='lw/4' wid='wirew'
|
2021-03-17 11:51:50 -07:00
|
|
|
Xmd4 bt3 bf3 memLoad number =16
|
2021-03-17 12:19:33 -07:00
|
|
|
* Xla bt1 bf1 choose mem1
|
|
|
|
* Xla bt3 bf3 choose mem1
|
|
|
|
Xla btt bff choose mem1
|
2021-03-16 14:28:24 -07:00
|
|
|
Xrd btt bff set rst rdwf clk choose iReadSub
|
2021-03-09 19:15:28 -08:00
|
|
|
Xrc dot set rst vdd vdd vdd vdd vdd vdd readCollect
|
2021-03-14 21:13:43 -07:00
|
|
|
|
2021-03-09 19:15:28 -08:00
|
|
|
.ic V(la:tt)=0 V(la:ff)=1
|
|
|
|
.ic V(bt2)=1
|
2021-03-16 14:28:24 -07:00
|
|
|
.tran 1p 'per*20'
|
2021-03-14 21:13:43 -07:00
|
|
|
.meas tran dot_delay trig V(clk) val=0.8*supply rise=2 targ V(dot) val=0.8*supply rise=1
|
2021-03-09 19:15:28 -08:00
|
|
|
|
|
|
|
|
|
|
|
|