본문 바로가기

전체 글315

[Harman 세미콘 아카데미] 75일차 - Full Custom IC(4x1 MUX_LOGIC, 4x1MUX_SWITCH_2INV) [4x1 MUX_LOGIC] 2개의 신호를 받아 2² 개의 입력 중 하나를 선택해서 출력하는 4x1 MUX 📌 Schematic & Symbol 📌 Simulation VINC : 10n VIND : 100n S0 : 1u S1 : 2u 시뮬레이션 완료 ✅ Simulation Tip 이제까지는 하나하나 클릭해서 항목을 가져왔는데, 굳이 그럴 필요없다. 드래그하면 한 번에 가져올 수 있음. 📌 Layout 높이 7.4um, 넓이 13.63um(nMOS기준) 짜리 4x1 MUX_LOGIC Layout ✅ Trouble Shooting 가끔 F를 눌러도 빈 영역까지 레이아웃으로 잡히는 버그가 발생한다. 이럴 때는 Layout 파일을 새로 만들어서 layout1로 저장하고 만든 레이아웃만 카피해서 넣어주면 된다.. 2023. 10. 17.
[Harman 세미콘 아카데미] 74일차 - Verilog(Program Counter, Register, Control Block, ROM, CPU Simulation) [Program Counter] 이전 시간에 만든 N bit Half adder를 활용하여 Program counter를 만들어보자. 프로그램 카운터는 위 그림처럼 조합 회로를 구현한 LUT과 Register를 구현한 DFF로 구성되어 있다. (조합회로에 clk 신호를 받는 DFF를 연결하여 순차적 기능 부여) 📌 Code module register_Nbit_p_alltime #(parameter N = 8)( input [N-1:0] d, input clk, reset_p, wr_en, rd_en, output [N-1:0] register_data, // 상시 출력 output [N-1:0] q ); reg [N-1:0] register_temp; always @(posedge clk or pose.. 2023. 10. 16.
[Harman 세미콘 아카데미] 73일차 - Verilog(ACC / ALU Simulation, Program Counter) [ACC Simulation] 📌 Testbench module tb_acc(); reg clk, reset_p, acc_high_reset_p; reg fill_value; // 안 쓰는 비트를 0으로 채우거나 1로 채움 reg rd_en, acc_in_select; reg [1:0] acc_high_select, acc_low_select; // Half_ACC가 두 개이므로 구분해줘야 한다. reg [3:0] bus_data, alu_data; // BUS와 ALU로부터 받는 데이터 wire [3:0] acc_high_data2bus, acc_high_register_data; wire [3:0] acc_low_data2bus, acc_low_register_data; acc DUT(clk, res.. 2023. 10. 15.
[Harman 세미콘 아카데미] 72일차 - Full Custom IC(SWITCH, SWITCH로 MUX 구현) [SWITCH] 2x1 MUX를 만들 때, Tr 갯수를 최소화시킬 수 있는 방법은 SWITCH를 쓰는 것이다. SWITCH를 한 번 만들어 보자. 📌 Schematic 심볼은 안 만들 거니까 최대한 깔끔하고 컴팩트하게 만들어보자. pMOS와 nMOS가 각각 1개일 때의 WIDTH는 2.91u로 이미 알고 있다(NOT gate에서 검출했음) 2.91um로 쓰자. 📌 Layout 이번에는 막대도를 그리지 않고 Schematic만 보고 그릴 것이다. 앞으로도 막대도 없이 Schematic만 보고 그리는 습관을 들이는 것이 좋다. (회로가 복잡해지면, 막대도도 만들기 힘들어) 주의해야할 점은 VDD와 VSS의 연결이다. 이전까지는 Diffution에 VDD와 VSS가 연결되었지만, 이번에는 Body와 연결된다... 2023. 10. 12.
[Linux] 리눅스로 파일 압축하기(tar, gzip, unzip, 7z) - 리눅스 생태계 생존 가이드 Part.3 [리눅스로 파일 압축하기] 📌 tar, gzip 가장 일반적으로 사용되는 압축 도구 중 하나는 tar와 gzip을 함께 사용하는 방법이다. .zip 형태의 압축파일은 GUI 환경에서도 쉽게 압축하거나 압축을 해제할 수 있다는 장점이 있지만, 다른 압축방법보다 압축률이 낮다. 따라서 리눅스 환경에서는 다른 형태의 압축 방식을 사용하며, tar, gzip 명령어를 이용하여 압축을 진행한다. 위 방식으로 얻고자하는 형태는 파일.tar.gz 이고 이를 위해서는 tar와 gz를 차례로 실행해야 한다. 반대로 압축을 해제하고 싶을 때는 gz를 해제한 후 tar를 해제하면 된다. 1. 파일 또는 디렉토리를 tar로 압축 // 사용법 $ tar -czvf [압축파일명].tar.gz [원본파일명 또는 디렉토리명] // .. 2023. 10. 11.
[Harman 세미콘 아카데미] 71일차 - Full Custom IC(4NAND, 4NOR Schematic & LayOout / MUX Schematic & Layout) [4NAND] 보통 반도체 소자 Design Test에서는 한 소자 당 2시간을 주고 그려보라 한다. 한 번 만들어보자. 📌 Schematic NAND은 pMOS 병렬, nMOS 직렬이므로 위와 같이 Schematic 생성 Symbol도 만들어준다. 📌 Simulation 출력이 변화하는 부분만 짤라서 시뮬레이션 돌리면 됨. 4NAND_TEST file을 생성하여 위와 같이 그려준다. 입력값도 위 진리표처럼 VINA = 1 VINB = 1 VINC = 1 VIND = VIND (얘를 변수로 놓고 시뮬레이션할 것이다.) pMOS의 적절한 WIDTH는 약 2.14um이므로 2.14um 채택 📌 Layout 5.69um짜리 4NAND gate Layout DRC와 LVS도 완료 [4NOR] 📌 Schemati.. 2023. 10. 11.
CPU의 구조 및 원리 - CPU의 모든 것 [CPU란?] 📌 CPU란? 중앙처리장치(CPU)는 Centrol Processing Unit의 약자로, 컴퓨터에서 명령어를 해석하고 실행하는 역할읋 하는 마이크로 프로세서이며, 명령어의 해석과 자료의 연산, 비교등의 처리를 제어하는 컴퓨터 시스템의 핵심장치이다. 다양한 입력 장치로부터 정보를 입력받아 처리한 후, 그 결과를 출력장치로 보내는 일련의 과정을 제어하고 조정하는 일을 수행한다. [CPU의 구성 요소] CPU는 아래 그림과 같이 Control Unit(제어장치), ALU(연산 장치), Register(레지스터) 로 구성되어 있고 각 구성 요소들은 Data Bus를 통해서 데이터를 주고받는다. 📌 Control Unit(CU, 제어 장치) - CU는말 그대로 CPU를 컨트롤하는 장치이다. ROM.. 2023. 10. 11.
[Harman 세미콘 아카데미] 70일차 - Full Custom IC(Stick Diagram / 2NAND, 2NOR, 3NAND, 3NOR Layout) [Stick Diagram] 📌 Stick Diagram : Layout을 간단하게 막대로 그린 상태도 📌 Design Sequence 1. CMOS Schematioc 2. Simulation 3. Layout(Stick Diagram 그려보고 Tool로 진행) 4. DRC 5. LVS 3~5번까지 수행 가능하면, 레이아웃 엔지니어 가능 📌 Path(경로) 조건 가능한 경로로 선정되기 위해서는 2가지 조건을 만족시켜야 한다. 1. nMOS Block & pMOS Block은 동시에 만족해야 한다. 2. 모든 트랜지스터를 한 번씩 경유해야 한다. 📌 "좋은" 반도체의 기준 좋은 반도체란, 1. Fast : 성능이 뛰어나 데이터 전송 속도가 빠른 반도체 2. Cheap : 가격이 저렴한 반도체 3. Low.. 2023. 10. 10.