분류 전체보기 19

SystemVerilog & UVM Prologue

안녕하세요, Torrance입니다.저는 RTL 설계를 맛만 본 후 SoC Verifaction 엔지니어로 일하고 있습니다.Verilog까지는 어떻게 이해가 되는데 SystemVerilog부터는 구조가 변하면서 이해하기 어려웠습니다. 그리고 UVM으로 가면서 또 어려웠습니다. 그래서 설명을 잘 하는 제가 도움되고자 이 블로그에 글을 씁니다.제 블로그에 오시는 분들 모두 SystemVerilog와 UVM에 대해 혼자 공부할 수 있는 의지를 갖게 하는 것이 목표입니다.https://wikidocs.net/170177 이 자료를 참고하면서 공부했었는데, 설명을 조금 더 쉽게 풀거나 제가 어려웠던 부분을 자세히 설명하는 방식으로 글을 쓸 예정입니다.이렇게 큰 구조를 파악하면 나머지는 구글링하면서 스스로 지식을 쌓..

HDL/SystemVerilog 2024.09.25

RS Latch과 Level Trigger(레벨 트리거)를 포함해 한 번에 제대로 설명한 Edge Trigger(에지 트리거)의 동작 원리

안녕하세요, 이 글을 보러 오시는 분들은 대부분 Edge Trigger와 Level Triger의 차이를 알고 싶으실 것입니다.먼저 Edge Trigger와 Level Trigger 차이를 보고, Edge Trigger의 동작 원리를 보겠습니다.  Edge Trigger는 Clock Pulse가 Rising or Falling Edge에서'만' Data를 캡처하고,Level Trigger는 Clock Pulse가 High or Low에서만 Data를 캡처합니다.Clock Pulse가 Rising or Falling Edge인 시간이 High or Low 되는 시간보다 짧기에 Datat를 잘 캡처할 수 있습니다.즉, High or Low인 시간은 상대적으로 길기에 중간에 상태가 변화할 수도 있어 Data ..

제일 쉽게 I2C를 알아보자

안녕하세요 이번 글에서는 I2C에 대해서 아주 쉽게 알아보겠습니다.현재 이 부분의 칩설계를 담당하고 있는데 인터넷 검색해 보니 버스, 프로세서, 프로토콜 등등 단어로 쉽게 와닿지 않았습니다. 처음 I2C를 보시는 분들이 쉽게 이해할 수 있도록 용어를 쉽게 풀어서 쓰겠습니다.I2C는 Inter-Integrated Circuit입니다. 부르다 보니 줄여서 I2C라고 불립니다.원래의 Inter-Intergated에서 유추할 수 있듯 integrated Circuit(이하 IC) 사이의 통신 프로토콜입니다.여기서 통신 프로토콜이란 약속이란 뜻입니다. 즉,  통신하기 위해서는 IC 사이에 데이터를 주고받는데 이 데이터를 읽고 쓰기 위해서 정한 약속입니다. 실제 I2C가 데이터를 주고받을 때는 (standard m..

수동 소자 R, L, C에서 C와 L의 전압, 전류 특성 알아보기

안녕하세요, 이번 글에서는 C(Capacitor)와 L(Inductor)의 전압 전류 특성을 알아보겠습니다. 먼저 C에 대해 알아보겠습니다.아래와 같은 Pspice 회로에서 전압과 전류를 측정해 보겠습니다.V1 양 단의 전압 그래프와 C1 양 단의 전압 그래프입니다.입력 전압이 급격히 변할 때, 출력 전압은 그 변화를 느리게 합니다. 현재 C1은 1u(F)인데 이 값이 클수록 전압의 변화를 더 느리게 합니다. 2uF 변경한 시뮬레이션 결과입니다.출력 전압이 입력 전압의 반응을 따라가지 못해 5V에 도달하지 못합니다. 이제 전류 특성을 알아보겠습니다.전압의 변화량에 의해 전류의 세기가 결정됩니다. 아래의 식에 의한 결과입니다.그러므로 C1이 2uF인 회로는 전압 변화가 느리므로 이로 인한 전류의 크기도 작..

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

EMI/EMS/EMC에 대한 뜻과, EMI 발생 원인

안녕하세요, 이번 글은 EMI/EMS/EMC에 대한 간략한 뜻과, EMI가 발생하는 원인을 알아보겠습니다. EMI : Electro Magnetic Interference 전자기기에서 발생하는 Noise에 의해 다른 전자기기를 방해하는 상태입니다. 전자파장해라고 하지만 전자파라고 생각해도 무방합니다. EMS : Electro Magnetic Susceptibility 전자파 내성으로, 전자파에 대한 영향으로부터 정상적으로 동작할 수 있는 능력입니다. EMC : Electro Magnetic Compatibility 전자파 적합성으로 EMS와 EMI를 모두 포함하는 용어입니다. 외부 기기에 전자파 간섭을 최소로, 또한, 영향을 최소한으로 받는 능력입니다.  EMI가 발생하는 이유는 "기생 캐패시터와 기생 ..