| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- systemverilog assertions
- tkinter
- CDC
- 아두이노
- 디더링
- SVA
- STM32
- BeautifulSoup4
- SystemVerilog
- Dither
- 파이참
- 군산가볼만한곳
- Bash
- git
- 임베디드레시피
- 인덕터
- 오블완
- data structure
- openpyxl
- 자료구조
- 티스토리챌린지
- assertion
- Dithering
- ADsP
- Metastability
- Clock Domain Crossing
- c++ 기초
- 임베디드시스템
- arduino
- IOT
- Today
- Total
목록VLSI (20)
리미창고
이번에는 2-FF Synchronizer, Pulse Stretching, Handshake, Toggle Synchronizer 4가지 Single bit Synchronizer에 대해 직접 RTL을 구현하고 시뮬레이션해볼 예정이다. 2-FF Synchronizer Level Signal Level Signal은 문제없이 clk_src(송신 도메인)에서 clk_dst(수신 도메인)으로 잘 넘어간다. Code`timescale 1ns/1psmodule two_ff_synchronizer_tb; // Clock signals reg clk_src = 0; // 송신 도메인 reg clk_dst = 0; // 수신 도메인 // Active Low Reset signals reg rst_src_n..
복습 이전 글에서 2-FF Synchronizer, Pulse Streching, Handshake CDC 기법을 공부했다. 2-FF Synchronizer는 CDC의 가장 기본적인 기법으로, 설계가 단순하고 효율적이다. Metastability 격리가 핵심 목표이며, Single Bit Level Control 신호를 처리할 때 주로 사용된다. 수신 클럭이 즉시 올바른 데이터를 받지 못하더라도, 레벨 신호인 경우 1~2 클럭 내에 올바른 값을 capture할 확률이 높다. 하지만 Fast → Slow Clock Domain의 Pulse 신호는 2-FF만으로는 감지되지 않고 사라질 수 있다. 이를 해결하기 위한 방법으로 (Pulse) Stretching과 Handshake 기법이 존재하며, 이 기법의 컨..
2-FF Synchronizer CDC를 할 때, Single Bit냐 Multi Bit냐에 따라 방법이 달라진다. Single Bit 신호를 클락 도메인 간에 안전하게 전달하는 가장 일반적이고 기본적인 방법은 2-Flip-Flop Synchronizer를 사용하는 것이다. 이 방법은 수신 측 클럭 도메인에서 동작하는 두 개의 FF을 직렬로 연결하여 사용한다.첫 번째 플립플롭 (FF1): 송신 클럭 도메인의 데이터 신호를 수신 클럭의 첫 번째 엣지에서 포착하려고 시도한다.여기서 메타안정성이 발생할 수 있다. 데이터가 수신 클럭의 Setup/Hold 시간 창 내에서 변경되면 FF1의 출력(Q1)은 불안정한 상태에 빠진다.Q1이 불안정한 상태에 있더라도, 대부분의 경우 하나의 수신 클럭 주기 내에는 안정..
CDC(Clock Domain Crossing)란? 전체 시스템에서 Clock Domain이 하나인 경우엔 매우 편하지만, 현대의 대부분의 칩 설계에서는 성능 최적화, 전력 소모 감소 그리고 동작 속도를 관리하기 위해 대부분 여러 개의 독립적인 Clock을 사용한다. CDC(Clock Domain Crossing)는 디지털 전자 회로 설계에서 신호가 하나의 클락 도메인에서 다른 클락 도메인으로 이동하는 현상을 말한다. 나아가, 서로 다른 클락 도메인 간에 신호가 이동할 때 발생하는 문제를 해결하는 설계 기법을 의미한다. 정리하면, 두 개 이상의 클럭 도메인이 존재하고, 이들 사이에서 신호가 전달될 때 발생하는 동기화 문제를 다루는 것을 말한다.예)A 도메인: clk_a (100 MHz)B 도메인: clk..
UVM이란?UVM(Universal Verification Methodology)은 SystemVerilog 기반의 표준 검증 프레임워크로, 디지털 회로와 SoC 검증에 사용되며 반도체 업계의 사실상 표준으로 자리잡았다. UVM의 주요 목적은 모듈화, 재사용성, 표준화된 테스트벤치 환경 제공이다. 프레임워크(Framework)라는 단어가 중요한데, 프레임워크란 미리 정의된 구성 요소와 규칙이 있는 개발 틀을 의미한다. 이 틀을 따르면 서로 다른 환경에서도 동일한 방식으로 검증을 수행할 수 있어 재사용과 확장이 쉽다. UVM 주요 구성 요소UVM은 테스트벤치 구축을 위해 미리 정의된 다양한 클래스와 기능을 제공한다. Testbench ComponentsDriver, Monitor, Scoreboard,..
