목록[Harman] 하만 반도체 설계/VerilogHDL (18)
Kraklog
프로그램 : Quaturs Prime lite edition 18.1 사용문법 : Verilog 2001 보드 : DE1-SOC Verilog 를 이용해서 디지털 회로를 디지털할 때 always @ 구문을 이용한다면 항상 원하지 않는 Latch에 대해서 주의를 해야한다. (*항상 always @ 구문에 의해서만 생기는 것은 아니다. 주로 always @ 구문을 이용하면 자주 발생하는 것.) Verilog에서는 combination logic을 기술할 때 모든 조건에 대하여 입력하지 않으면 자동으로 logic을 형성하게 되는데 이전 값을 유지시키기 위해서 latch가 생긴다. module my_latch ( input [2:0] sel, input a, input b, input c, output reg ..
프로그램 : 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..