All Posts80 2차원 DCT(Discrete cosine transform), 이산 코사인 변환 목차 DCT 흔히 DCT라 부르는 DCT2, DCT역변환은 DCT3이자 IDCT(Inverse DCT)라 부릅니다. 간단하게 DCT2는 공간 영역에서 주파수 영역으로 변환하는 방법입니다. 흔히 사용하는 이미지 확장자 JPEG라는 국제 표준 손실 영상 압축 알고리즘의 중심에는 DCT가 있습니다. DCT를 사용하는 이유? 결국에 DCT를 하는 목적은 공간 영역(Spatial Domain)에서 주파수 영역(Frequency Domain)으로 바꾸기 위해 입니다. 저주파와 고주파를 분리하는 작업이기도 합니다. 앞서 JPEG에서 DCT를 주로 사용한다고 했습니다. JPEG의 목적은 사람이 보는 이미지 화질(인지화질)이 크게 떨어지지 않으면서 용량을 줄이기 위함입니다. 이미지나 영상을 주파수영역으로 바꾸게 되면 인.. 2023. 7. 23. [AXI] AMBA AXI이란? *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. Copyright © 2003-2023 Arm Ltd. All rights reserved. AMBA AXI Protocol SPEC AXI Spec은 ARM에서 다운로드하실 수 있습니다. 아래 이미지를 누르면 해당 ARM 다운로드 사이트로 이동합니다. AXI P.. 2023. 7. 22. [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. SoC ASIC Flow(디지털 반도체 설계) 목차 Front End Flow Design Specification, RTL Design 디자인의 스펙을 정하고, IP를 선정 및 구매하고 필요에 따라 logic를 설계하고 Integration 하는 과정입니다. 현재는 주로 Verilog HDL를 사용합니다. Design Verification Coverege 100%를 목표로 보통 UVM환경에서 Simulation를 통해 디자인의 오류가 없는지 점검하고, 모든 코드들을 검증합니다. 기능적인 측면을 중점으로 검증이 이뤄집니다. Soft IP가 주 대상이며, Hard IP의 경우 model를 물립니다. VCS, Xcelium 같은 Tool를 주로 사용합니다. Loigc Synthesis SDC(Synopsys Design Constraint)를 작성하고.. 2023. 7. 20. [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. [Perl] Boolean 목차 Boolean 논리학에서 참(true)과 거짓(false)을 나타내는 데 사용하는 개념 Perl에서는? Perl에는 특별한 Boolean 타입은 없습니다. Perl 문서에서 어떤 함수가 "Boolean" 값을 반환한다고 나온 것을 종종 볼 수 있습니다. 모든 스칼라 값들은 if를 써서 검사할 때 Truth or False 이 됩니다. 실제로는 어떤 함수가 "참"을 반환하다라고 하는 값은 보통 1을 반환합니다. "거짓"을 반환한다고 하는 값은 문자열로서 처리될 때는 빈 문자열 "' '처리되고, 수로 처리될 때는 0으로 처리됩니다. 수 0, 문자열 '0'과 '', 빈 리스트 "()", 그리고 "undef"은 불리언 컨텍스트에서는 모두 거짓이다. 그 외의 모든 값들은 다 참이다. 참인 값에 "!" 또.. 2023. 7. 20. 이전 1 2 3 4 5 6 7 8 9 다음 반응형