[VerilogHDL] UART Rx, Tx 최종(Oversampling)
VerilogHDL/Study2024. 5. 22. 00:26[VerilogHDL] UART Rx, Tx 최종(Oversampling)

1. UART(Universal Asynchrous Receiver/Transmitter) 1:1 통신비동기 신호각 device에서 송수신 data timing을 알아서 맞춘다.클럭을 전송하는 Master device 없다.device 내부에서 동기신호를 생성해야 한다.data를 송수신할 때 Timing을 잘 맞춰야한다.  설계할 때 문제점위 그림과 같이 start trigger의 타이밍에 따라 start signal이 1클럭이 안될 수도 있다….  해결책 : sampling16 oversampling, 8 oversampling  16 oversampling각 데이터 비트를 16번 샘플링16번 클럭이 들어온 후 다음 상태로! → baudrate 16배 증가시켜야함각 비트의 중간지점(7번째 샘플링 클럭)..

[VerilogHDL] UART Tx(2)
VerilogHDL/Study2024. 5. 22. 00:26[VerilogHDL] UART Tx(2)

1.  UART(Tx v.2) 8개 state를 만들지 않고 baudrate tick에 한번씩 data 1bit씩 전송   구현더보기`timescale 1ns / 1psmodule uart ( input clk, input reset, input tx_start, input [7:0] tx_data, output tx, output tx_done); wire w_br_tick; baudrate_generator #( .HERZ(9600) ) U_BR_Gen ( .clk (clk), .reset(reset), .br_tick(w_br_tick) ); transmitter U_TxD ( ..

[VerilogHDL] UpCounter, 디버깅, UART Tx
VerilogHDL/Study2024. 5. 20. 00:37[VerilogHDL] UpCounter, 디버깅, UART Tx

1.  FSM - UpCounter   구현 더보기`timescale 1ns / 1psmodule top ( input clk, input reset, input btn_run_stop, input btn_clear, output [3:0] fndCom, output [7:0] fndFont); wire w_div_clk; wire w_run_stop, w_clear; wire [13:0] w_digit; clkDiv #( .HERZ(1000) ) U_ClkDiv ( .clk (clk), .reset(reset), .o_clk(w_div_clk) ); UpCounter U_UpCoun..

[VerilogHDL] FSM 코딩(Moore, Mealy) - 버튼, UpCounter
VerilogHDL/Study2024. 5. 19. 23:59[VerilogHDL] FSM 코딩(Moore, Mealy) - 버튼, UpCounter

1.  FSM(Finite State Machine) (1) Moore 머신 : 출력이 현재 상태에 의해서만 결정Present State  Next State Output  input 0input 1 S0S1S00S1S1S01(2) Mealy 머신 : 출력이 현재 상태와 입력에 의해서 결정 Present State Next State Output  input 0input 1input 0input 1S0S1S010S1S1S010  Next-State LogicNext State를 계산, 결정하는 회로현재 상태 및 입력에 따라 다음 상태를 결정State Registerclk edge에서 현재 State update(저장) ← state = next_state 형식으로..Output Logic현재 S..

[VerilogHDL] 조합 논리 회로 & 순차 논리 회로, Latch & FlipFlop
VerilogHDL/Study2024. 5. 19. 23:49[VerilogHDL] 조합 논리 회로 & 순차 논리 회로, Latch & FlipFlop

1.  조합 논리 회로 & 순차 논리 회로  조합 논리 회로(Combinational Logical Circuit)비동기 ← 클럭에 영향을 받지 않음 ⇒ 입력이 들어가면 출력이 바로 나옴MUX, Decoder, DigitSplitter, Gates(AND, OR, …), ALU순차 논리 회로(Sequential Logic Circuit)동기 ← 클럭에 영향을 받음 ⇒ 클럭을 기준으로 동작 시점 결정Clock Diver, Counter, Flip-Flop(Edge Trigger), Latch(Level Trigger), Register 클럭을 쓰는 이유?동기화 : 동시에 무엇인가 동작, 동작을 시키기 위한 기준점데이터 무결성 향상시스템 안정성 → 시스템이 정확한 시간, 원하는 타이밍에 동작병렬 처리 → 여..

[VerilogHDL] C&Verilog차이, SystemVerilog 기본, 8bit Adder FND, 만진 카운터
VerilogHDL/Study2024. 5. 16. 02:20[VerilogHDL] C&Verilog차이, SystemVerilog 기본, 8bit Adder FND, 만진 카운터

1.  C언어 vs Verilog    1. C언어 : Sequential(잇달아)        → Polling 방식으로 위에서부터 아래로 차례대로 실행   2. Verilog : Concurrency(동시성)        → 동시 실행  2.  8bit Adder FND  2-1.  8bit Adder 만들기더보기`timescale 1ns / 1psmodule Adder_8bit ( input [7:0] a, input [7:0] b, input cin, output [7:0] sum, output co); wire w_carry0; Adder_4bit U_4bitAdder0 ( .a (a[3:0]), .b (b[3:0]), ..

image