본문 바로가기

# Semiconductor/[Semicon Academy]103

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