verilog 9

Verilog HDL로 asynchronous control 구문 작성과 테스트 벤치(Test Bench)로 결과 확인하기

안녕하세요, 이번 글에서는 Verilog HDL로 asynchronous control 구현 및 그 결과를 테스트 벤치(Test Bench)로 확인하겠습니다. 환경 HDL : Verilog’ 2001 spec RTL Synthesis : Intel(Altera), Quartus prime 18.1 Functional Simulation : Intel(Altera), ModelSim 10.5b Quatus의 [File] → [New]에서 Verilog HDL File을 선택합니다. asynchronous control을 구현했습니다. module counter( inputclk, input aclr_n, output reg count_out ); always @ (posedge clk, negedge ac..

HDL/Verilog 2023.10.02

Verilog HDL로 synchronous control 구문 작성과 테스트 벤치(Test Bench)로 결과 확인하기

안녕하세요, 이번 글에서는 synchronous control을 구현하고, 그 결과를 테스트 벤치(Test Bench)로 확인하겠습니다. clock이 실행되면서 clock enable이 활성화될 때, reset 신호에 따라 data를 출력하거나 0으로 reset 합니다. 환경 HDL : Verilog’ 2001 spec RTL Synthesis : Intel(Altera), Quartus prime 18.1 Functional Simulation : Intel(Altera), ModelSim 10.5b Quatus의 [File] → [New]에서 Verilog HDL File을 선택합니다. synchronous control를 구현했습니다. module reg16( inputclk, inputsclr_n..

HDL/Verilog 2023.10.01

Verilog HDL로 shifter 구문 작성과 테스트 벤치(Test Bench)로 결과 확인하기

안녕하세요, 이번 글에서는 Verilog HDL로 4bit를 이동시키는 shifter 구현 및 그 결과를 테스트 벤치(Test Bench)로 확인하겠습니다. 환경 HDL : Verilog’ 2001 spec RTL Synthesis : Intel(Altera), Quartus prime 18.1 Functional Simulation : Intel(Altera), ModelSim 10.5b Quatus의 [File] → [New]에서 Verilog HDL File을 선택합니다. shifter를 구현했습니다. module shifter( input[7:0]inp, input[1:0]shift_cntrl, output reg [15:0]shift_out ); always @ (*) begin if(shift..

HDL/Verilog 2023.09.30

Verilog HDL로 2_input_mux 구문 작성과 테스트 벤치(Test Bench)로 결과 확인하기

안녕하세요, 이번 글에서는 Verilog HDL로 2_input_mux를 구현하고, 그 결과를 테스트 벤치(Test Bench)로 확인하겠습니다. 환경 HDL : Verilog’ 2001 spec RTL Synthesis : Intel(Altera), Quartus prime 18.1 Functional Simulation : Intel(Altera), ModelSim 10.5b Quatus의 [File] → [New]에서 Verilog HDL File을 선택합니다. 2_input_mux를 구현했습니다. module mux4( input [4:0] mux_a , input [4:0] mux_b , input[1:0]mux_sel, output reg[4:0] mux_out ); always @(*) be..

HDL/Verilog 2023.09.29

Verilog HDL로 4x4 multiplier 구문 작성과 테스트 벤치(Test Bench)로 결과 확인

안녕하세요, 이번 글에서는 Verilog HDL로 4x4 multiplier를 구현하고, 그 결과를 테스트 벤치(Test Bench)로 확인하겠습니다. 환경 HDL : Verilog’ 2001 spec RTL Synthesis : Intel(Altera), Quartus prime 18.1 Functional Simulation : Intel(Altera), ModelSim 10.5b Quatus의 [File] → [New]에서 Verilog HDL File을 선택합니다. 4x4 multiplier를 구현했습니다. module mult4x4 ( input[4:0]data_a, input[4:0]data_b, output[9:0]product ); assign product = data_a * data_b..

HDL/Verilog 2023.09.29

Verilog HDL과 테스트 벤치(Test Bench) 설계 및 결과 확인

안녕하세요, 이번 글에서는 Verilog HDL로 Adder를 구현하고, 그 결과를 테스트 벤치(Test Bench)로 확인하겠습니다. 환경 HDL : Verilog’ 2001 spec RTL Synthesis : Intel(Altera), Quartus prime 18.1 Functional Simulation : Intel(Altera), ModelSim 10.5b Quatus의 [File] → [New]에서 Verilog HDL File을 선택합니다. Adder를 구현했습니다. module adder( input[3:0]data_a, input[3:0]data_b, output[3:0]sum ); assign sum = data_a + data_b ; endmodule Verilog HDL Chec..

HDL/Verilog 2023.09.27

Procedural Timing Control(delay, event, wait), Behavioral Statements(if-else, case, for loop) and Block Execution Types(Sequential Blocks, Parallel Blocks)

이번 글에서는 Delay, Event, Wait에 대해서 알아보겠습니다. 이들은 모두 initial과 always block에 사용되며 procedural block에 속합니다. Verilog를 공부하면서 각 구문이 어디에 속하는지 확인하는 것이 참 중요하다는 것을 느껴 자주 확인합니다. Delay Control Regular (Inter - Assignment) Delay Control과 Intra - Assignment Dealy Control 두 종류가 있습니다. Regular (Inter - Assignment) Delay Control는 RHS와 LHS 동시에 적용됩니다. Blocking 구문에서 사용됩니다. Intra - Assignment Dealy Control는 LHS만 적용됩니다. No..

HDL/Verilog 2023.08.12

Verilog Behavioral Modeling - Continuous Assignments & Procedural Blocks

Continuous Assignments : Model the behavior of combinational logic by using expressiongs and operators ex) Wire [15:0] adder = data_a + data_b; or Wire [15:0] adder; assign adder = data_a + data_b; Continuous Assignments Characteristics Wire [15:0] adder = data_a + data_b; 이 구문에서 = 기준으로 왼쪽을 Left Hand Side(LHS), 오른쪽을 Right Hand Side(RHS)라고 합니다. 1. LHS에는 "꼭" data type이 정의되어야 합니다. 2. RHS에는 어떤 data ..

HDL/Verilog 2023.08.10

Verilog 개론(정의, Behavior and Structural Modeling, RTL, Synthesis, RTL Synthesis와 Simulation Flow, 문법, Data type)

정의 : IEEE industry standard Hardware Description Language IEEE(Institute of Electrical and Electronics Engineers)라는 "미국전자학회"가 규정한 디지털 시스템(하드웨어)을 표현하는 언어입니다. 구성 방법은 크게 3가지로 Behavior Modeling, Structural Modeling, RTL(Rester Transister Level) 방식이 있습니다. Behavioral Modeling : 입력과 출력의 "관계"를 중심으로 표현합니다. 2 input multimplexer(모듈명 mux_2)를 구현했습니다. assign으로 입력과 출력의 관계를 정의했습니다. module mux_2( input[1:0] a,b,..

HDL/Verilog 2023.08.09