본문 바로가기

분류 전체보기70

[디스플레이] 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.
[논리회로] T Latch와 FlipFlop T Latch와 T FlipFlop에 대한 글입니다. T F/F는 JK F/F에서 파생되었는데요, J와 K의 입력을 하나의 T로 묶은 구조입니다. INPUT OUTPUT T Q 0 Q 1 Q_bar T가 0이면 그대로 유지하고, T가 1이면 보수를 출력합니다. 2023. 1. 6.
[논리회로] JK Latch와 FlipFlop 오늘은 JK Latch와 FlipFlop에 대한 글을 쓰도록 하겠습니다. JK는 SR F/F에서 (1, 1)이 들어왔을 때 문제점을 보완하기 위해 만들어졌습니다. (J, K)가 (0, 0)이면 이전 값을 유지하고 (1, 1)이면 반대 값을 출력합니다. 2023. 1. 6.