본문 바로가기

Language/Verilog & SV33

[Verilog] 1bit Half adder(반가산기) 목차 Half adder 1비트 이진수 두 개를 더한 합 Sum (S)과 자리올림 수 Carry (C)를 구하는 회로 Code 2023. 7. 23.
[Verilog] Frequency(Clock) Divider 목차 Frequency(Clock) Divider D F/F를 이용한 주파수 분할입니다. 간단하게 하나의 F/F를 거치면 2 분할됩니다. 카운터를 활용해서 분할할 수 도 있습니다. 생산 이후에 Clock divider를 잘못설계하면(ex. 홀수 분주 시 Timing 고려하지 않은 경우) clock glitch가 발생할 수 있습니다. 간단하게 말해서 clock내 Timing문제가 생겨 해당 clock를 사용하거나 동기화된 모든 기능이 먹통이 될 수 있습니다. 제일 안전하게 분주하는 방법은 F/F를 활용하여 짝수 분주하는 방법입니다. Code D F/F를 이용한 Clock divide Code입니다. 위 그림의 D F/F가 연달아 3개 이어져 있다고 생각하시면 됩니다. 2023. 7. 21.
[Verilog] Counter 목차 Counter 카운터를 활용하여, 기존 Clock의 주기를 Count 하여 동작의 기준을 새로 바꿔줄 수도 있고, SR(상태레지스터)를 일정 시간 후에 계속 확인을 한다던지, 시계, 타이머등을 설계할 수 있습니다. 가장 기본적인 Counter Code에 대해 다뤄보겠습니다. 해당 Code는 rst이 negedge일 때 counter를 0으로 초기화하고 Clock의 posedge때마다 1씩 상승합니다. 그리고 counter가 4'b1000에 도달하면 0으로 초기화합니다. Code 2023. 7. 21.
[Verilog] APB의 State FSM, 간단한 Master Code 목차 APB란? 2023.07.20 - [Knowledge] - APB란? AMBA APB에 대해 알아보자 APB란? AMBA APB에 대해 알아보자 *All photos and content in this article are copyrighted by Arm Ltd. This is a personal compilation for students and practitioners entering digital design. Content may be removed or modified at any time at the request of the copyright holder, Arm Ltd. Copyr vir-us.tistory.com APB에 대한 내용은 이전글을 참고바랍니다. APB States AP.. 2023. 7. 21.
[Verilog] Full-adder, Ripple-carry adder 목차 1bit Full-adder circuit diagram and truth table Code 2023. 7. 20.
[Verilog] Clock generator 목차 Clock generator Blocking assignment(BA)을 사용해야 합니다. NonBlocking assignment(NBA)는 사용하지 말아야 합니다. 시작신호(time-0)는 Low로 권장합니다. negedge로 초기화해야 합니다. start_delay 사용을 권장합니다. Clock을 BA로 설계해야 하는 이유 BA로 표현한 문장은 처리되는 중 다른 이벤트들이 처리되지 않습니다. Clock은 모델의 작동에 기준이 되기 때문에 BA로 작성하여 확실한 이벤트 처리 기준이 되어야 합니다. 2023. 7. 20.
[Verilog] Blocking(=) vs Nonblocking(<=) 목차 Blocking assignments (BA) always 블록 내에서 실행 순서를 제어하기 위해 사용합니다. 현재 명령문이 실행될 때까지 다음 명령문의 실행을 차단합니다. 앞선 명령문이 실행되고 나서 뒷선 명령문들이 차례대로 실행됩니다. 2023. 7. 19.
[Verilog] Parameter 목차 Parameter Verilog HDL의 Parameter는 variable이나 net에 속하지 않습니다. 상수입니다. ​ Parameter의 두 가지 타입 module parameter, witg localparam specify parameters(specparams) parameter : 기본적으로 모듈 내에서 상수값을 특정 문자열에 mapping defparam : 모듈밖에서 parameter값을 재정의(혹은 override) 할 때 사용 localparam : 모듈내에서 localparam으로 선언하면 모듈밖에서 바꿀 수 없음 Specpara : parameter와 비슷하지만 특정 블록 내에서만 사용됩니다. Parameter example 2023. 7. 19.
[System Verilog] 'break' and 'continue' 목차 break loop construct에서 break를 만나면 바로 end로 진입합니다. Code 2023. 7. 19.
반응형