728x90

전체 글 618

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을..

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..

Python - 기본 문법 복습 (Function, Class, Thread 등...)

- Print(), Input()- List- Tuple, Set, Dictionary- Loop- Try / Except- Function- Class- 상속- QR Codes- Thread Programming- Macro- Print(), Input()# printprint("Hello")# inputa = input("Input 1st Value = ")b = input("Input 2st Value = ")print(a+b)- Lista_list = [1,2,3,4,5]print(a_list)print(a_list[0])b_list = []b_list.append(1)print(b_list)c_list = [1, 3.14, 'hello', [1,2,3]]print(c_list)d_list = [..

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 명령어가 지정되어 있고, 해당 명령어들이..

I2C 구조 및 동작 원리

I2C에 대해 알아보기 전에 Open Drain이란 개념이 등장하기 Open Drain에 대해 간단하게 알아보겠다. - I2C에서 Open Drain을 사용하는 이유I2C는 여러 장치가 동일한 선을 공유하는 방식이다. Open Drain 방식을 사용하면 하나의 선에 여러 장치가 데이터를 공유할 수 있기 때문이다. 또 신호 충돌을 방지할 수 있기 때문이다. 자세한 내용은 아래를 참고하길 바란다. ■ Open Drain Open Drain은 위 그림과 같이 Drain이 Output Pin에 연결된 구조를 의미한다.위와 같이 Pull-Up 저항이 없게 되면 Floating 상태가 되어 신호가 불안정해지고 잡음의 영향을 받을 수 있다.위와 같이 Pull-Up 저항을 사용하게 되면 Data 선에 1의 신호를 지속..

CPU 구조 및 동작 원리 (1)

CPU(Central Processing Unit) 중앙 처리 장치컴퓨터에서 프로그램 명령을 해석하고 실행하는 장치 ■ CPU 동작 원리 - CU (Control Unit) (제어 장치)명령어를 해석하고 실행 순서를 제어한다.ALU와 Register들 간의 데이터 전송을 관리한다.Program Counter와 연동하여 프로그램의 흐름을 관리한다. - Accumulator (누산기)연산 결과를 저장한다.다음 연산의 입력값을 제공한다. - ALU (Arithmetic Logic Unit) (산술 논리 장치)기본 산술 연산을 수행한다.논리 연산을 수행한다.비교 연산을 수행한다. - PC (Program Counter) (프로그램 카운터)현재 실행 중인 명령어의 주소를 저장한다.다음에 실행할 명령어 주소를 자동..

728x90