본문 바로가기

전체 글70

[메모리] SRAM Full Custom Design (Layout) 이번에는 이전 글에서 만든 SRAM schematic의 Layout을 디자인할 예정입니다. Tool은 학교에서 많이 사용하는 MyCAD를 이용하였습니다. 먼저 SRAM Cell의 Layout입니다. Metal은 최소한으로 사용하기 위해 2층만 사용하였습니다. 다음은 Sense Amplifier의 Layout입니다. 이제 SRAM Cell과 Sense Amplifier를 합칠 차례입니다. 배포된 가이드 라인을 읽어보면 Design Rule이 있습니다. Metal 사이에 이격시켜야 할 거리 등이 작성되어 있으므로 꼼꼼히 읽고 설계하는 것이 중요합니다. 이렇게 설계가 끝나면 Schematic과 Layout을 시뮬레이션 해봐야 합니다. 또한 두 가지를 비교해서 잘 설계되었는지도 확인해봐야 합니다. 검증에는 DR.. 2023. 1. 8.
[메모리] SRAM Full Custom Design (Schematic) 이번 글부터 SRAM을 설계한 것을 작성할 예정입니다. SRAM은 Full custom design으로 진행하였습니다. Schematic 파트 먼저 시작하겠습니다. 먼저 6T SRAM Cell을 설계하였습니다. 6T SRAM은 4개의 NMOS와 2개의 PMOS로 구성되어 있습니다. SRAM의 Word line을 선택하기 위해 Decoder도 달아주었습니다. 마지막으로 BL과 BLB의 미세한 전압차이를 증폭시키기 위해 Sense Amplifier를 달아주었습니다. SRAM Cell 16개를 이어 붙이면 다음과 같은 Schematic이 나옵니다. BL과 BLB를 타고 내려오면 Sense Amplifier에 의해 전압차이가 증폭되어 0을 썼는지 1을 썼는지 알 수 있게 됩니다. 2023. 1. 8.
[메모리] Memory 종류 안녕하세요. 컴퓨터구조를 학습하기 전에 메모리에 대해 간단히 짚고 넘어가면 좋을 것 같습니다. 모두가 알고 있듯 우리나라는 메모리 반도체 강국입니다. 명실상부 세계 1위죠. 삼성전자는 30년이 넘는 시간 동안 메모리 반도체 분야에서 연속으로 1위를 달성하고 있습니다. 그래서 오늘은 메모리에 대해 알아보고자 합니다. Memory 종류 메모리는 크게 RAM과 ROM으로 나눌 수 있습니다. RAM (Random Access Memory) : 휘발성 메모리 ROM (Read Only Memory) : 비휘발성 메모리 먼저 ROM은 비휘발성 메모리입니다. 주로 컴퓨터를 부팅할 때 SW에 의해 동작하는게 아니라, ROM에 저장된 정보를 이용해 HW적으로 동작시킵니다. ROM은 한 번 쓰면 지울 수 없고 읽을 수만 .. 2023. 1. 8.
[디스플레이] Video Synchronize (Design with Verilog) 오늘은 앞서 배운 Video Synchronize를 VESA timing standard를 참고하여 설계하고자 합니다. Vertical / Horizontal / Active / Front porch / Back porch 등의 단어가 생소하다면 이전 글의 이론 및 VESA timing standard를 읽어보는 것을 추천드려요! 이론: https://metastable.tistory.com/21 VESA timing standard: https://metastable.tistory.com/22 바로 코드부터 보겠습니다. 코드 전체를 보고 싶으신 분은 맨 아래쪽을 참고해주세요. Verilog Code DUT `timescale 1ns / 1ps module vgen( input i_clk, input i.. 2023. 1. 8.
[디스플레이] VESA timing standard 오늘은 VESA timing standard에 대해 알아보겠습니다. VESA: Video Electronics Standards Association 디스플레이를 공부할 때 빠지지 않고 등장하는 VESA입니다. VESA는 비디오와 멀티미디어 장치의 표준화를 추진하는 단체인 비디오 전자공학협회를 의미합니다. 디스플레이 패널이나 관련 칩을 설계할 때 VESA spec을 참고하는데요, 그 중 Full HD 60Hz의 비디오 타이밍 규격(CVT)을 살펴보겠습니다. 꽤 가독성 있게 정리되어 있어서 공부할 때 유용했습니다. 함께 살펴보면 다음과 같이 정리할 수 있습니다. Hor Total = 2080 pixels Hor Addr = 1920 pixels Hor Front Porch = 48 pixels Hor Ba.. 2023. 1. 8.
[디스플레이] Video Synchronize (Vsync, Hsync, DE) 디스플레이에는 수많은 픽셀이 있습니다. 그럼 0과 1로 들어오는 데이터로 화면을 어떻게 구현할까요? 오늘 배울 부분은 화면을 출력할때 sync를 맞춰주는 것입니다. Vsync (Vertical Synchronize): 한 프레임이 시작될 때 시작 지점을 나타내는 신호 Hsync (Horizontal Synchronize): 한 line이 시작될 때 시작 지점을 나타내는 신호 DE (Data Enable) : 실제 데이터가 입력됨을 나타내는 신호 화면에는 굉장히 많은 픽셀들이 있습니다. 그리고 화면의 세로줄은 line(줄) 단위로 나눌 수 있습니다. 글로는 이해가 잘 안되기 때문에 그림으로 표현해보겠습니다. Vsync 한주기마다 화면이 한 장면씩 출력됩니다. Vsync 한 주기에는 수 백 line 이상이 .. 2023. 1. 7.
[디스플레이] 주사율 (Refresh Rate) 디스플레이는 1초에도 수십번씩 깜빡입니다. 여러분이 이 화면을 보는 순간에도요! 이번 글부터 0과 1로 들어온 신호들이 어떻게 화면을 구현하는지 알아볼건데요 먼저 주사율부터 시작하겠습니다. Refresh Rate (주사율) 디스플레이를 이해하기 위해선 우선 주사율이 무엇인지 알아야 합니다. 주사율: 1초당 화면이 갱신되는 횟수 주사율이란 1초 기준 화면에 얼마나 많은 장면을 표시할 수 있는지 나타내는 수치로, 단위는 Hz를 사용합니다. 60Hz 모니터의 경우 1초동안 60장의 화면이 출력된다는 뜻입니다. 주사율이 높을 수록 더 부드러운 화면을 보여줄 수 있겠죠? 최근 고화질 게임이 발전하면서 주사율이 높은 모니터의 판매량이 과거보다 늘었다고 합니다. 근데 저는 게임을 안하거든요... 그래도 주사율이 높은.. 2023. 1. 7.
[논리회로] Register (Design with Verilog) 디지털회로에서는 연산을 할 때 Register에 값을 저장하곤 합니다. 오늘은 간단한 레지스터를 게이트로 나타내보고 verilog로 설계하려고 합니다. 4 bit 병렬 register입니다. 가운데에 있는 combinational 회로는 MUX와 유사하게 보아도 됩니다. Load 신호에 따라 D0~3이 R0~3에 저장됩니다. Verilog Code 4bit Register를 Verilog로 설계하였습니다. Register를 memory처럼 사용하였습니다. 추후에 SRAM을 다룰 때 다시 한 번 다룰건데 미리 코드를 봐두시면 좋을 것 같아요. Read와 Write로 memory에 값을 쓰거나 읽었습니다. DUT `timescale 1ns / 1ps module register4b( i_clk, i_rese.. 2023. 1. 7.
[논리회로] Counter (Design with Verilog) 논리회로에서 중요한 회로인 카운터 (Counter) 에 대한 글입니다. RTL로 설계를 할 때, 카운터는 자주 쓰이는 회로입니다. 카운터의 동작만 잘 알아두어도 설계를 할 때 유용하게 쓸 수 있다고 합니다. Synchronous Counter (동기식 카운터) JK FlipFlop으로 이루어진 동기식 카운터입니다. Synchronous Counter는 비동기식보단 복잡하지만 빠르다는 장점이 있습니다. Asynchronous Counter (비동기식 카운터) JK FlipFlop으로 구성된 비동기식 카운터입니다. Synchronous Counter보다 간단하지만 clock에 의해 동작하지 않으므로 느릴 수 있습니다. 비동기식 카운터는 Ripple Counter라고 부르기도 합니다. 앞 F/F의 출력을 뒤 .. 2023. 1. 6.