목록Verilog (23)
Kraklog

사용프로그램 : Vivado 사용보드 : BASYS 3 -BASYS3 보드를 선택하기위해서 VIVADO에서 보드 정보를 INSTALL해주면 되지만, 간혹 INSTALL 버튼이 없을 경우 직접 설치하면 되는데 C:\Xilinx\Vivado\(해당버전)\data\boards path에 보드 파일(링크)을 넣어주면 된다. 1. Half Adder - Layout 및 시뮬레이션 (링크) 식 : - Schematic input으로 A,B를 선언해주고, Sum을 처리하기 위해 A xor B를 할당해주고, Carry 를 처리하기 위해 A and B를 할당해준다. 출력 값으로 Sum과 Carry를 선언해주면 완료. - Code `timescale 1ns/1ps module HalfAdder ( input i_a, in..

프로그램 : Quaturs Prime lite edition 18.1 사용문법 : Verilog 2001 보드 : DE1-SOC module simple_uart_rx ( inputclk, inputreset_n, inputrx, output reg[7:0]rx_data ); // rx falling edge detect reg rx_delay1; reg rx_delay2; wire f_edge_det = !rx_delay1 & rx_delay2; always @(posedge clk, negedge reset_n) begin if (!reset_n) begin rx_delay1

프로그램 : Quaturs Prime lite edition 18.1 사용문법 : Verilog 2001 보드 : DE1-SOC module simple_uart_tx ( input clk , input reset_n , output tx ); localparam idle = 0 , start = 1 , D0 = 2 , D1 = 3 , D2 = 4 , D3 = 5 , D4 = 6 , D5 = 7 , D6 = 8 , D7 = 9 , stop = 10 , stop_1 = 11; reg [3:0] current_state ; reg [3:0] next_state ; reg [8:0] count ; reg rTx ; assign tx=rTx; wire bit_clr = (count == 433); always ..

프로그램 : Quaturs Prime lite edition 18.1 사용문법 : Verilog 2001 보드 : DE1-SOC module mult_control ( inputclk, inputreset_a, inputstart, input[1:0]count, output reg[1:0]input_sel, output reg[1:0]shift_sel, output reg[2:0]state_out, output regdone, output regclk_ena, output regsclr_n ); parameter idle=0, lsb=1, mid=2, msb=3, calc_done=4, err=5; reg [2:0] current_state; reg [2:0] next_state; // state reg..

프로그램 : Quaturs Prime lite edition 18.1 사용문법 : Verilog 2001 보드 : DE1-SOC Day19. 3bit 7-Segment 이전글 (링크) module seven_segment_cntrl ( input [3:0] inp , output reg seg_a , output reg seg_b , output reg seg_c , output reg seg_d , output reg seg_e , output reg seg_f , output reg seg_g ); always @(*) begin case (inp) //if displayed to segment, add '~' in front of 7'000_0000 for invert it. 4'd1 : {seg_..

프로그램 : Quaturs Prime lite edition 18.1 사용문법 : Verilog 2001 보드 : DE1-SOC module seven_segment_cntrl ( input [2:0] inp , output reg seg_a , output reg seg_b , output reg seg_c , output reg seg_d , output reg seg_e , output reg seg_f , output reg seg_g ); always @(*) begin case (inp) //if displayed to segment, add '~' in front of 7'000_0000 for invert it. 3'b000 : {seg_a,seg_b,seg_c,seg_d,seg_e,seg..