1.기본 인버터를 다음 순서에 의해 레이아웃 한다. pTR의 크기는 13/2 nTR의 크기는 4/2로 한다.(1)gate level의 schematic(2)TR level의 schematic(3)Stick diagram 및 schematic 레이아웃 (4)표준 셀 template를 이용한 레이아웃(5)DRC 및 ERC 수행하여 error 유무 확인(6)LVS schematic(7)ERC에서 추출된 netlist 파일을 이용하여 post-layout simulationnmos 와 pmos의 w와l값이 변경되어 전에 Myanalog 프로그램으로 보았던 파형과는 조금 달라져서 VTC값이 변화되는 것을 알 수 있다.1)2입력 NAND(1)gate level의 schematic(2)TR level의 schematic(3)Stick diagram 및 schematic 레이아웃 (4)표준 셀 template를 이용한 레이아웃(5)DRC 및 ERC 수행하여 error 유무 확인(6)LVS schematic(7)ERC에서 추출된 netlist 파일을 이용하여 post-layout simulationNAND는 입력 a와 b가 둘 다 1일 때만 0이고 그 외에는 1이다. a와 b가 1일 때인 0~2m구간과 8m~9m에서 출력이 0이되는 것을 확인할 수 있다.2)D-FF(1)gate level의 schematic(2)TR level의 schematic(3)Stick diagram 및 schematic 레이아웃 (4)표준 셀 template를 이용한 레이아웃(5)DRC 및 ERC 수행하여 error 유무 확인(6)LVS schematic(7)ERC에서 추출된 netlist 파일을 이용하여 post-layout simulationD-FF 동작은 clk이 상승엣지일 때의 D값을 출력으로 나오는데 3m~4m구간을 보면 3m에서 clk이 상승하고 d값은 0이기에 그전까지 1을 유지하던 출력값이 y가 d의 값 0으로 바뀌는 것을 확인 할 수 있다.3)MUX(1)gate level의 schematic(2)TR level의 schematic(3)Stick diagram 및 schematic 레이아웃 (4)표준 셀 template를 이용한 레이아웃(5)DRC 및 ERC 수행하여 error 유무 확인(6)LVS schematic(7)ERC에서 추출된 netlist 파일을 이용하여 post-layout simulationSelector인 V(s)는 1m시간은 1값 다음 2m동안은 0값을 반복하며 d0은 2m씩 1과 0값을 반복한다. d1은 3m씩 1과 0값을 반복하므로 출력 y는 1m~2m사이의 값을 보면 s가 0일 때는 d0의 값인 1이 나오고 3m~4m일 때는 s가 1이므로 d1의 값인 0을 출력값으로 나오는 것을 확인하여 MUX동작 확인3. 1비트의 풀 애더를 1의 순서로 설계하고 이를 기본 셀로 하여 4비트 풀 애더를 계층적으로 설계한다.(1)gate level의 schematic(2)TR level의 schematic(3)Stick diagram 및 schematic 레이아웃 (4)표준 셀 template를 이용한 레이아웃Half adder는 XOR2와 AND2로 이루어 져 있기에 2개를 이용해 Half adder를 만들고Full adder는 Half adder2개와 OR2로 이루어 져 있기에 만들어진 Half adder와 OR2로 만든다.(5)DRC 및 ERC 수행하여 error 유무 확인 (6)LVS schematic(7)ERC에서 추출된 netlist 파일을 이용하여 post-layout simulationFull adder 시뮬레이션 처음부분 A B C가 1이고 Carry가 1이기에 Sum은 0이 된다. 2m~3m부분은 A B가 0 C가 1 이므로 Carry는 0이고 Sum은 1이 된다. Full adder 동작 확인4비트 Full adder는 1비트 Carry가 다음단 C값으로 들어가고 2비트 Carry가 다음단 C값으로 들어가도록 연결해주고 4개의 1비트 Full adder를 연결하면 완성된다.※비고 및 고찰이번 설계는 MYcad를 이용한 레이아웃 통해 실제 설계를 해보고 시뮬레이션 동작특성을 확인 해 보았다. 다소 처음 사용한 툴이라서 어려운 부분이 많았으며 셀을 표준에 맞게 레이아웃을 하고 이를 체크하면서 반도체 공정을 이해 할 수 있었으며 에러를 체크하다보면서 각각 부분에 대해 잘못된 점도 체크할 수 있었다. PMOS위에 공정하는 METAL 1층은 POLY를 넘어서는 안되고 ACTIVE영역과 CONTACT을 연결하는 METAL을 너무 좁게 잡아도 안되며 룰러를 이용해 크기를 잘 측정하지 않으면 조금의 실수만으로도 수많은 에러가 나왔다. 여러 가지 룰을 지켜야 하며 제약이 많아서 손이 가는 설계고 툴이여서 꽤 난이도가 높은 부분이였다고 생각을 한다. 특히 D-FF을 TR 레벨로 그리면서 좁은 공간에 연결할려니 실수도 많이 나오고 중간 중간에 끊어지는 부분 그리고 MYSPICE로 시뮬레이션을 할 때도 입력 전압부분에 설정해주는 부분 등 4비트 Full adder는 1비트 부분을 다단계로 연결하는데 따로 연결한 부분은 너무 복잡하고 실수가 많이 나올 듯 해서 캡쳐는 하지 않았고 1비트 Full adder에 대한 시뮬레이션과 설계에 4비트 Full adder를 1비트 Full adder로 설계하는 법만 언급을 하였다.
1.MyAnalog Station을 이용하여 기본 인버터에 트랜지스터 수준 설계 및 시뮬레이션을 한다.(1)MyAnalog 스케매틱 편집기를 이용하여 기본 인버터를 설계한다.(2)NMOS Ln=1u Wn=3u, PMOS Lp=1u Wn=6u으로 한다.(3)SPICE simulation을 위한 네트리스트 파일을 만든다.- 모델파라미터는 mo3.lib를 이용한다.(4)AIM-Spice를 이용하여 DC분석을 한다.- 입력 전압: 초기 0V에서 5V까지 0.05V 간격으로 증가-. 입력전압이 약 2.5V일 때 vout의 값이 바뀌며 이는 W/L값에 따라 VTC값이 틀려지고 Vinv값도 변화한다.2. 2-입력 NOR 게이트에 대한 트랜지스터 수준 설계 및 시뮬레이션을 한다.(1)MyAnalog 스케매틱 편집기를 이용하여 2-입력 NOR 게이트를 설계한다.(2)NMOS 및 PMOS의 크기는 L=1u로 하여 정상동작을 위한 W값을 설정한다.- 사이즈에 의해서 Wn=3u Wp=12u로 설정(3)SPICE simulation을 위한 네트리스트 파일을 만든다.-. 모델파라미터는 mo3.lib 사용(4)AIM-Spice를 이용하여 Transient 분석을 한다.- 2-입력 NOR게이트는 입력이 모두 0일 경우에만 1이 되므로 vin1 과 vin0과 0일때 vout이 1로 되는 것이 보이고 그 외 나머지경우는 vout은 항상 0이 나오는 것을 알 수 있다.♂비고 및 고찰-. 이번 설계는 인버터와 NOR게이트를 Mycad를 이용하여 디자인을 MOS로 하여서 동작을 확인 하는 설계였다. 동작확인을 위해 Vpulse라는 전압원을 인가해줘야 했고 특히 NOR게이트 동작확인에서는 W 과 L에 따라 동작여부가 틀려짐도 확인 할 수 있었다.
《설 계》디지털 집적 회로Lab 3-2 CMOS 인버터 시뮬레이션학 과 : 전자공학과입력전압의 변화에 따른 출력전압의 변화를 VTC라 하는데 일반적인 인버터의 VTC를 보면 Voh는 입력에 출력이 가질 수 있는 최고전압이 Vol은 최저전압이 인가되었을 때 출력이 가지는 안정된 값을 나타내고 Vil Vih는 입력에 대한 출력 파형의 기울기가 -1인 점이다. 인버터의 문턱전압은 입력과 출력이 동일한 값으로 주로 입력이 출력으로 값이 전달되는 기점으로 간주된다. 상호 연결선에 서로 영향을 끼쳐 잡음이 생길 수 있는데 그래서 다소간의 여유가 필요한데 이를 잡음 여유도라 한다..option post.inc mos3.lib* voltage source *vddvddgnddc=5vinvingnd.dcvin050.05* circuit *m0voutvinvddvddpehnw=2.4ul=0.8um1voutvingndgndnehnw=0.8ul=0.8u.print i(m0) i(m1).endVohVolVihVilVinv4.76V0.49V2.9V2.18V2.55V잡음여유도 NMh=4.76-2.9=1.86 NMl=2.18-0.49=1.69적당히 그래프 파형의 해당되는 지점에 점을 찍고 값을 확인하였다.n모스와 p모스의 w/l값에 따라 대칭적인 VTC값이 틀려지고 w/l값에 따라 Vinv값도 변화한다.B비에 따른 Vinv1:12:13:14:15:11.93V2.31V2.54V2.7V2.81V위의 측정 그래프 파형으로 B비가 커지면 Vinv도 커짐을 확인 할 수 가 있다..option post.inc mos3.lib*voltage source *vddvddgnddc=5vinvingnd* sweep data *.data din x+ 0.8u+ 1.6u+ 2.4u+ 3.2u+ 4.0u.enddata.dc vin 0 5 0.05 sweep data=din* circuit *m0Voutvinvddvddpehnw=xl=0.8um1Voutvingndgndnehnw=0.8ul=0.8u.print i(m0) i(m1).end하강시간과 상승시간 특성 그래프로 출력 커패시터에 Voh의 전압이 충전되어 있다 가정하면 구형파의 입력 신호에 대해 t=0에서 Mp가 차단 되므로 Mn의 동작 영역에 대해서만 고려하면 되므로 위의 그래프같이 지수함수적인 방전특성을 보인다. 충전일 때도 방전과 같은 원리로 위의 그래프 파형을 보인다.전달시간은 회로의 동작 속도를 나타내기 위한 것으로 입력신호가 통과하는 시간에서 출력신호가 통과하는 시간까지를 나타낸다. 이론적으로는 입력과 출력이 같아지는 값인 Vinv의 전압이다.전달시간도 천이시간과 마찬가지로 충방전 동작에 의해 생성 되므로 위의 그래프 파형으로 쉽게 해석을 할 수 있다.전달지연시간크기0.8u1.6u2.4u4.0u상승3n3.9n5.1n8.8n하강0.03n0.04n0.06n0.11n하강시간/상승시간 0.8u/0.8u상승0.199n하강0.1721n하강시간/상승시간 1.6u/0.8u상승0.12n하강96p하강시간/상승시간 2.4u/0.8u상승88p하강0.83n하강시간/상승시간 4.0u/0.8u상승68p하강52.77p.option post.inc mos3.lib*voltage source*vddvddgnddc=5vinvin gnd pulse(0 5 0 1p 1p 0.5n 1n).data din x+ 0.8u+ 1.6u+ 2.4u+ 4.0u.enddata* circuit *m0voutvinvddvddpehnw='x*3'l=0.8um1voutvingndgndnehnw=xl=0.8uCvoutgnd 1.0e-14.tran .001n 2n sweep data=din.print v(*) i(*).end