728x90

Semiconductor 75

Virtuoso - MOS 구성 요소, Stick Diagram, Transmission Gate, QRC

MOS 구성 요소PMOS 트랜지스터는 반드시 N-Well 위에 형성되는데, NMOS 트랜지스터는 P-Well 일반적으로 안보이는 것을 볼 수 있다.그 이유는 CMOS 공정에서는 기본 기판이 P형이기 때문에 NMOS 트랜지스터는 기본 기판에 바로 형성되며, 별도의 P-Well을 추가로 표시할 필요가 없기 때문이다. PIMP (p-implant), NIMP (n-implant)p, n implant는 특정 영역에 p, n형 도핑을 추가하는 과정이다.pmos, nmos는 각각 소스와 드레인이 p형, n형으로 도핑되어 있다. NMOS의 경우 기본 기판이 P형이고 PMOS의 경우 N-Well 위에 만들기 때문에 각 MOS는 소스와 드레인에 NMOS에는 N형 도핑을 PMOS에는 P형 도핑을 소스와 드레인에 처리를 ..

Virtuoso - CS_AMP, Diff_AMP

CS_AMP, Diff_AMP CS_AMP일반적으로 MOSFET 또는 BJT를 사용하여 구성된다. 소스 단자가 접지에 연결된다.cs_amp는 전압 이득이 매우 크며, 입력 신호에 비해 출력 신호를 크게 증폭할 수 있다.입력 신호와 출력 신호의 위상이 180도 반전된다.주파수 응답이 좋으며 고주파 신호에도 효과적이다. Diff_AMP두 개의 입력 단자가 있으며, 두 입력의 차이를 증폭한다.두 입력의 전압 차이를 증폭하며, 공통 모드 신호(두 입력에 동시에 나타나는 신호)는 효과적으로 제거한다.입력 임피던스가 높아 외부 회로에 미치는 영향이 적다.신호 왜곡이 적고 안정성이 높다. cs_amp는 주로 전압 증폭 및 신호 처리를 위해 사용되며, diff_amp는 차동 신호를 효과적으로 증폭하는 데 초점을 맞춘다..

Virtuoso - 2x1 MUX(Logic, Switch) / XOR(Logic, Switch)

Stick Diagram (2x1 MUX, XOR Switch 회로)  2x1 Mux(Logic) Mux는 기본적으로 S(Select) 값에 의해 출력값이 정해지는 논리 회로다. Y = (A * Sbar) + (B * S) 와 같이 논리식을 표현할 수 있다. 하지만 기본적으로 Layout 설계시 NAND, NOT 게이트를 사용하여 구성하는 것이 일반적이다. 그 이유는 가장 적은 수의 트랜지스터를 가지고 논리 게이트를 구성할 수 있기 때문이다.  AND = NAND + NOTOR = NOT, NOT + NAND위와 같이 AND, OR 게이트를 NANA와 NOT으로 구성할 수 있다.   위 그림의 위쪽은 Mux를 AND, OR를 NAND, NOT을 통해 구성한 그림이고 NOT + NOT은 원래 처음 들어간 ..

Virtuoso - 2NAND / 2NOR (Schematic ~ Layout)

2NANDSchematic 2NAND는 2개의 병렬 PMOS와 2개의 직렬 NMOS로 이루어져 있다.Simulation 최적의 값을 찾기 위해 위와 같이 범위의 측정 해상도 및 스텝 크기를 줄여 나가며 최적의 값을 찾아 나간다.임의의 NMOS Length : 100n / Width : 1u일 때 PMOS의 (Length : 100n일 때) Width는 2.53u가 최적임을 알 수 있다.Stick Diagram Stick Diagram은 위와 같이 그릴 수 있다. VOUT을 최소화 하는 것이 Layout을 설계할 때 유리하다.PMOS의 경우 병렬을 이루기 때문에 두개의 PMOS가 하나의 VOUT을 공통으로 가지기 때문에 하나의 VOUT으로 연결할 수 있다.LayoutSimulation을 통해 최적의 값을 ..

Virtuoso - 기본 Tool 사용법 + Inverter 만들기 (Schemetic ~ LVS)

Library Manager 생성 라이브러리 매니저의 Library, Cell, View 생성을 통해 schematic, layout, symbol를 생성하여 사용할 수 있다. Library 생성 Attach to an existing technology library를 선택해준다. 사용할 gpdk 파일을 선택해준다.실습은 gpdk090 파일을 사용한다.gpdk090으로 설정할 경우 design rule은 gpdk090의 기준으로 적용된다.  위 방식을 통해 Library를 생성할 수 있다. 이 Library안에 Symbol, Schematic, Layout을 생성하여 저장할 수 있다.Schematic 생성 Cell View를 통해 여러가지 Type을 선택하여 생성할 수 있다. 그 중 Schematic을..

ASIC Flow - FIFO 구조 및 동작 원리 (CDC, Async, Metastability)

https://insoobaik.tistory.com/676https://insoobaik.tistory.com/677 이전 FIFO 구조 및 동작 원리 이론에 이어서 실제 FIFO 이론을 RTL 설계를 할 것이다.기본적인 FIFO 구조 설계는 FIFO Buffer에 대해 Async 비동기로 Data를 Write, Read하게 된다. 1. FIFO Buffer의 Data Full, Empty에 대한 Flag가 필요하다.2. Write, Read가 비동기로 이루어지기 때문에 FIFO Buffer에 있는 데이터의 위치를 확인하기 위한 각각의 Write, Read Pointer가 필요하다.3. 위 FIFO에 대한 이론 글에서 봤듯이 Pointer Data 손실을 방지하기 위해 Gray Code로 변경하는 코드..

FIFO - Asynchronous, CDC, Metastability, Synchronizer, GrayCounter (2)

https://insoobaik.tistory.com/676FIFO 구조 및 동작 원리 (1)에 이어서 FIFO 사용에 필요한 Asynchronous, CDC, Metastability, Synchronizer, GrayCounter에 대한 내용을 작성해 볼 것이다.이전에 말했듯이 SoC 내부는 여러 Clock Domain을 가지고 있다. 서로 다른 Clock Domain이 Data를 주고 받는 것은 Clock Domain Crossing라고 부르고 줄여서 CDC라고 부른다.CDCClock Domain Crossing 서로 다른 클록 도메인 간의 신호 전달을 의미한다. 위 그림과 같이 위 FF은 clk_A 하나의 클럭에 동기화 되어 있기 때문에 각 Domain에 대한 성능이 동일하다. 같은 Clock을 ..

FIFO - 구조 및 동작 원리 (1)

FIFO(First In, First Out)먼저 들어온 데이터가 먼저 나가게 되는 데이터 처리와 관련된 자료구조에 해당한다.위 그림과 같이 저장소에 먼저 들어온 값을 기준으로 Data가 쌓이고 Data 요청이 들어오게 되면 먼저 들어온 Data부터 나가게 된다.Enqueue, Dequeue = Push, Pop이라고 생각하면 된다.FIFO 사용 이유 FIFO는 일종의 Buffer처럼 사용된다. 위 그림의 왼쪽처럼 A에서 B에게 데이터를 전달해야 하는데, B가 Busy상태에 있으면 A는 다른 작업을 하지 못한채로 B가 데이터를 받을 수 있는 상태(IDLE)가 될 때까지 대기해야 한다. 하지만 우측 그림처럼 중간에 FIFO 방식의 Buffer를 생성하게 되면, A에서 B에게 전달해야 하는 데이터를 Buff..

RTL - I2C (Master / Slave - Simulation, Code)

https://insoobaik.tistory.com/672위 I2C 이론을 기반으로 RTL 코드를 설계할 것이다.- Simulation- Master Write / Slave Read 동작(현재 Master와 Slave 신호를 둘 다 보기 때문에 둘 사이에 동일하게 동작하는 신호의 경우 위와 같이 동일한 2개의 신호가 나오는 것 처럼 보일 것이다.)Master에서 Address 포함 Write 동작에 대한 전체 Simulation은 위와 같다. 1. Start ConditionSCL이 1인 상태에서 SDA가 0으로 떨어지는 구간은 Start Condition을 나타내고 I2C 프로토콜이 동작하기 시작하는 구간에 해당한다.bitcount, state, pulse의 값이 동작하기 시작한다. 2. Addre..

CPU 구조 및 동작 원리 (RISC, Pipeline, Hazard) (2)

https://insoobaik.tistory.com/671CPU 구조 및 동작 원리 (1)에 이어 조금 더 자세히 CPU 구조 및 동작 원리에 대해 알아볼 것이다.  16비트의 컴퓨터에서는 명령어가 16비트로 구성된다.Opcode와 Operand 부분으로 나누어진다.- Opcode : CPU가 수행할 특정 작업(연산)을 지정하는 코드다.- Operand : Opcode에 의해 정의된 작업에 사용될 데이터나 주소를 나타낸다.위 그림의 경우 상위 4bit가 Opcode에 해당하여 CPU가 수행할 작업을 지정하고 하위 12bit가 작업에 사용될 데이터나 주소를 담게 된다. 위 표는 Opcode에 대한 정의를 보여주고 있다. 각 Opcode에 대한 Instruction 명령어가 지정되어 있고, 해당 명령어들이..

728x90