728x90

반도체 Study 73

Virtuoso - 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형 도핑을 소스와 드레인에 처리를 해야하기 때문에 ..

C# - Arduino Serial 통신을 이용한 비쥬얼라이저 구현

C#과 Arduino의 Serial 통신을 이용하여 간단한 비쥬얼라이저를 구현하였다.void setup() { Serial.begin(9600); // 시리얼 통신 시작 pinMode(8, OUTPUT); pinMode(9, OUTPUT); // LED 핀을 출력 모드로 설정 pinMode(10, OUTPUT); pinMode(11, OUTPUT);}void loop() { int sensorValue = analogRead(A0); // A0 핀의 아날로그 값을 읽어서 sensorValue 변수에 저장 Serial.println(sensorValue); // 읽어온 값을 시리얼 모니터에 출력 if (Serial.available() > 0) { int value = ..

반도체 Study/C# 2024.06.25

C# - WinForm을 이용한 기억력 게임

C#의 Winform을 이용하여 기억력 게임을 만들어 보았다. 게임은 크게 1초, 0.5초 0.25초 간격의 난이도를 가지고 있다.아래 GIF 파일들은 실제 게임을 실행하는 중요 부분들만 캡처한 것이고, 그 외 상세한 부분들은 글과 코드를 통해 설명할 것이다.속도 선택가장 먼저 게임 속도를 선택하게 되면 게임 속도가 선택에 맞게 설정된다.속도 1 게임 실행1단계 게임을 실행하게 되면 1초의 속도로 기억력 게임이 시작되고 속도 1 점수에 해당하는 곳에 최고 점수가 기록된다.속도 2 게임 실행속도 2를 선택하게 되면 0.5초 간격의 난이도로 게임이 시작되고, 속도 2에 해당하는 점수판에 최고 속도가 기록된다.속도 3 게임 실행속도 3을 선택하게 되면 0.25초 간격의 난이도로 기억력 게임이 시작되고, 속도 ..

반도체 Study/C# 2024.06.25

Virtuoso - Buffer 생성 ~ing

buffer를 만들기 위한 라이브러리를 새로 생성한다.위까지 구성하고 단축키 L을 이용하여 Wire Name을 생성 및 부여한다. (핀 이름 VVD 오타 VDD로 변경)  !!!!!!!Error!!!!!!!여기서 Simulation을 돌리게 되면 에러가 발생하게 된다. 확대해보면 약간의 딜레이가 발생하지만 바로 Buffer가 동작하는 것을 볼 수 있다.  VDD & VSS instance 불러오기NMOS의 body와 PMOS의 body로 사용되면서 GND와 VDD로도 사용할 수 있는 M1_PIMP와 M1_NWELL을 Contact 명령을 이용해서 불러온다.참고 영상https://www.youtube.com/watch?v=Syi22fVvwSI

Virtuoso - Inverter 만들기 (Schematic ~ Layout ~ DRC Check ~ LVS)

Schematic, Symbol, Simulation 수행 라이브러리 매니저의 Library, Cell, View 생성을 통해 schematic, layout, symbol를 생성하여 사용할 수 있다. 위 방식을 통해 Library를 생성할 수 있다. 이 Library안에 Symbol, Schematic, Layout을 생성하여 저장할 수 있다.Cell View를 통해 여러가지 Type을 선택하여 생성할 수 있다.Inverter  만들기위와 같이 Inverter에 대한 Schmetic을 그릴 것이다. 단축키 I를 누르게 되면 Instance를 불러올 수 있고, Library를 통해 원하는 Library의 Cell을 가져다가 사용할 수 있다. Inverter에는 기본적으로 PMOS와 NMOS를 사용하여 생..

STM32 - OC (Output Capture)

OC (Output Capture)출력 비교 모드는 카운터(CNT)의 출력값이 캡쳐/비교기에 설정된 비교값(CCRx)과 일치할 때 인터럽트나 (CCxl)나 해당 핀에 출력(OCx)이 발생하는 모드다.이전 PWM의 경우 TIM의 PSC의 값과 ARR값에 의해 타이머의 주기가 정해지고, CCR 값에 의해 Duty ratio를 통해 PWM가 정해지는 것을 알게되었다.OC (Output Compare) 또한 마찬가지로 PSC와 ARR에 의해  타이머의 주기가 정해지고 CCR의 값에 의해 비교가 발생한다.위 DataSheet를 보게되면 CCR의 값이 003A로 설정되어 있을 경우 CNT가 003A를 만나게되면 OC1의 출력 값이 반전되고, 중간에 CCR의 값이 B201로 바뀌게 되면 CNT가 B201을 만나게 되..

STM32 - RTC (Real Time Clock), Alarm을 통한 시간 및 알람 출력

RTC (Real Time Clock)RTC는 기본적으로 초고속 클럭이 필요하지 않기 때문에 LSE를 사용한다.  STM32는 RCC(Reset and Clock Control)를 통해 HSI, HSE, LSI, LSE를 설정하게 된다.HSE는 MCO 즉, ST-Link로부터 클럭을 전달 받고, LSE의 경우 Nucleo 보드에 장착된 크리스탈에 의해 클럭 신호가 생성된다.Clock Configuration을 보게 되면 LSE는 32.768KHz를 사용중이다. STM32 RTC는 Clock Source 외에도 Alarm 용도로 사용 가능하다.RTC의 Parameter Settings를 보게되면 기본적으로 시간과 관련된 Parameter를 확인 가능하다. 시간 포맷을 정함과 동시에 Asynchronous ..

Verilog - CHARACTER LCD에 문자 입력하기

FPGA를 이용한 LCD 문자 출력 결과 화면LCD는 CLK 신호를 기반으로 RS, RW, E, DB0~DB7 핀을 통해 신호를 전달받아 데이터를 출력한다. RS는 Register Select의 약자로RS가 0일 경우 명령 레지스터를 선택한다. 즉, LCD에 보내는 데이터가 명령어 또는 제어 명령어임을 나타낸다.RS가 1일 경우 데이터 레지스터를 선택한다. 즉, LCD에 보내는 데이터가 화면에 표시될 문자 데이터임을 나타낸다. RW는 Read Write의 약자로RW가 0 일 때는 쓰기 모드로 MCU -> LCD로 데이터를 전송한다. 이 모드는 주로 LCD에 문자를 표시하거나 명령을 전송할 때 사용된다.RW가 1일 때는 LCD -> MCU로 데이터를 전송한다. 이 모드는 주로 LCD의 상태를 읽거나, Bu..

728x90