IT/ASIC | FPGA 2025. 1. 10.
tcl 에서 info 명령어 예제 모음
Tcl에서는 info 명령이 다양한 서브 명령어들과 함께 사용되어 스크립트 실행 환경에 대한 정보를 제공합니다. 아래는 주요 info 서브 명령어들의 목록과 간단한 설명입니다:info 명령의 주요 서브 명령어info vars현재 정의된 변수 목록을 반환합니다.특정 패턴을 지정하면 해당 패턴에 맞는 변수 이름만 반환됩니다.예:info varsinfo vars myVar*info commands현재 정의된 명령어(커맨드) 목록을 반환합니다.특정 패턴을 지정하면 해당 패턴에 맞는 명령어 이름만 반환됩니다.예:info commandsinfo commands myCommand*info procs현재 정의된 프로시저(함수) 목록을 반환합니다.특정 패턴을 지정하면 해당 패턴에 맞는 프로시저만 반환됩니다.예:info ..
IT/ASIC | FPGA 2024. 12. 18.
WaveDrom - waveform 그리는 스마트 툴
WaveDrom: 웨이브폼을 그리는 스마트 툴디지털 시스템을 설계하거나 프로토콜을 다룰 때, 웨이브폼은 신호의 타이밍과 동작을 표현하는 데 중요한 역할을 합니다. 디버깅이나 문서화를 하더라도 명확한 웨이브폼은 큰 차이를 만들어냅니다. 하지만 이걸 수작업으로 그리는 건? 시간도 많이 걸리고, 실수할 가능성도 큽니다.이런 문제를 해결할 수 있는 스마트한 도구가 바로 WaveDrom입니다.WaveDrom이란?WaveDrom은 텍스트 기반으로 간단히 웨이브폼을 그릴 수 있는 오픈소스 도구입니다. JSON 형식으로 신호를 정의하면, WaveDrom이 이를 자동으로 시각화해줍니다. 사용자는 복잡한 그래픽 툴에 의존할 필요 없이, 간단히 코드 몇 줄로 정확하고 깔끔한 웨이브폼을 생성할 수 있습니다.WaveDrom의 ..
IT/ASIC | FPGA 2024. 11. 7.
Chiplet 칩릿 or 칩렛 과 UCIe
Chiplet 개념을 쉽게 설명하려면 다음과 같이 접근할 수 있습니다:"칩렛(Chiplet)은 한 개의 큰 칩을 여러 작은 조각으로 나눈 것을 말합니다. 원래 반도체 칩은 한 개의 실리콘 웨이퍼에 모든 기능을 담았지만, 칩이 복잡해질수록 이런 방식이 비효율적이고 비용이 많이 듭니다. 칩렛은 특정 기능을 독립된 작은 칩으로 만들어, 필요한 기능끼리 조합해 하나의 시스템처럼 동작하게 합니다. 이렇게 하면 개별 칩렛을 따로 개발, 제조, 조립할 수 있어서 비용과 개발 시간을 줄일 수 있습니다. 즉, 여러 작은 칩들이 모여 큰 칩처럼 동작하도록 만드는 방법입니다."이렇게 비유할 수 있습니다:"레고 블록처럼 각 부분이 따로 만들어져 서로 조립되는 구조를 생각하면 됩니다. 필요한 기능만 모아 조립할 수 있으니까 유..
IT/ASIC | FPGA 2024. 10. 28.
타이밍 기초 - 디자인 요소 common design objects
Here’s a comprehensive summary of common design objects used in Synopsys Design Constraints (SDC), referencing standard usage in digital design:Design ObjectDescriptionExample CommandClocksDefines timing properties for clock signals.create_clock -name clk -period 10PortsInput/Output ports, typically on the top-level module.set_input_delay -clock clk 5 [get_ports in]PinsSpecific signal locations ..
IT/ASIC | FPGA 2024. 10. 28.
타이밍 기초 - DES0001 vs DES0004 Register clock pin
DES_0001: Register clock pin has no clock signal propagating to it 오류는 레지스터의 클럭 핀에 클럭 신호가 제대로 전달되지 않고 있다는 의미입니다. 이는 클럭 신호 경로가 끊기거나 정의되지 않은 경우에 발생하며, 레지스터가 적절한 클럭에 연결되지 않았을 때 발생하는 일반적인 디자인 오류입니다.DES_0004: Register clock pin pin does not have a clock signal that can sensitize the register 오류는 레지스터 클럭 핀에 신호가 있긴 하지만, 해당 신호가 레지스터를 활성화(sensitize)하지 못하는 상황을 나타냅니다. 이와는 달리 DES_0001 오류는 클럭 신호 자체가 클럭 핀에 전혀..
IT/ASIC | FPGA 2024. 10. 28.
타이밍 기초 - Clock clock1 is missing an asynchronous definition CGR_0004
"Clock clock1 is missing an asynchronous definition" 오류는 clock1과 다른 클럭 도메인 간에 비동기(asynchronous) 관계가 명확히 정의되지 않아서 발생하는 문제입니다. 클럭 도메인 간의 비동기 관계는 각 클럭이 독립적으로 동작함을 의미하며, GCA(Galaxy Clock Analyzer)와 같은 툴에서는 이러한 비동기 관계를 명확히 정의해야 신호 전달에서 메타스태빌리티 및 신호 무결성을 유지할 수 있습니다.원인clock1과 다른 클럭이 비동기적으로 동작하지만, 비동기 관계가 정의되지 않아 툴에서 경고를 발생시키는 경우입니다.클럭 정의 또는 경로 설정에서 비동기 크로싱이 명시되지 않았기 때문에 클럭 도메인 간의 신호 전달이 불안정하다고 판단될 수 있습..
IT/ASIC | FPGA 2024. 10. 28.
반도체 기초 - FMEDA 란?
FMEDA는 "Failure Modes, Effects, and Diagnostic Analysis"의 약자로, 제품이나 시스템의 고장 모드를 분석하고 그에 따른 영향을 평가하며, 진단 커버리지를 검토하는 과정을 의미합니다. 주로 안전이 중요한 산업, 예를 들어 자동차나 항공, 의료기기 분야에서 사용됩니다.FMEDA는 다음과 같은 세 가지 요소를 포함합니다:Failure Modes (고장 모드): 시스템의 각 부품이 어떻게 고장날 수 있는지를 파악합니다.Effects (영향 분석): 각 고장이 시스템에 미치는 영향을 분석합니다.Diagnostic Analysis (진단 분석): 고장 감지를 위한 진단 커버리지와 효과적인 진단 방법을 평가합니다.이 분석을 통해 시스템의 신뢰성을 높이고, 위험 요소를 줄이며..
IT/ASIC | FPGA 2024. 10. 25.
반도체 기초 - LBIST vs SCAN
LBIST와 스캔 테스트는 구조와 구현 방식에서 차이가 있으며, 이를 간단한 예제를 통해 설명해 보겠습니다. 예제 1: LBIST (Logic Built-In Self Test) 구현LBIST는 칩 내부에 자가 테스트 회로를 추가하여, 외부 장비 없이 결함을 검출할 수 있습니다. LBIST는 패턴 생성기와 결과 분석기로 구성됩니다.LBIST 간단한 구조module LBIST ( input clk, // 클럭 신호 input reset, // 초기화 신호 output reg [7:0] result // 테스트 결과); reg [7:0] pattern_gen; // 패턴 생성기 reg [7:0] circuit_under_test;..
IT/ASIC | FPGA 2024. 10. 25.
반도체 기초 - DA, BIST, 테스트 관련
반도체 메모리의 DA (Direct Access) Mode와 BIST (Built-In Self Test) Mode는 둘 다 메모리 테스트를 수행하기 위한 방법이지만, 그 목적과 방식에서 차이가 있습니다. 여기에 BIRA, MBIST, LBIST 등 자주 사용하는 테스트 모드를 간단히 비교하여 설명하겠습니다.1. DA (Direct Access) Mode목적: 메모리 셀에 직접 접근하여 특정 패턴을 쓰고 읽는 방식으로 결함을 진단하기 위해 사용됩니다.특징: 설계자가 원하는 특정 주소나 비트에 데이터를 읽고 쓰며, 수동으로 결함 분석을 수행할 수 있습니다.장점: 특정 셀을 타겟으로 하여 결함 위치를 정확히 파악할 수 있음.단점: 수동 방식이기 때문에 자동화가 어렵고 시간이 오래 걸립니다.2. BIST (B..
IT/ASIC | FPGA 2024. 10. 25.
반도체 기초 - BIRA 테스트
"BIRA"는 Built-In Redundancy Analysis의 약자로, 반도체 메모리 설계에서 결함을 분석하고 보정하는 과정을 의미합니다. 메모리 칩은 제조 과정에서 결함이 발생할 수 있으며, 이러한 결함을 관리하기 위해 리던던시 셀 (예비 셀)이 메모리 구조에 추가됩니다. BIRA는 이러한 결함을 자동으로 분석하고 리던던시 셀을 활용하여 결함을 보정하는 데 사용됩니다.BIRA 테스트 절차결함 검사: 메모리 칩의 각 셀을 테스트하여 결함이 있는 셀을 찾습니다. 이는 주로 BIST (Built-In Self Test)와 같은 방법을 통해 이루어집니다.결함 분석: 결함이 발생한 셀의 위치를 분석하고, 리던던시를 어떻게 활용할지 결정합니다. BIRA 알고리즘은 어떤 리던던시 행(row)이나 열(colum..
IT/ASIC | FPGA 2024. 10. 25.
반도체 기초 - ASCII database db 파일
반도체 메모리 모델에서 ASCII 데이터베이스를 활용하는 예제는 Liberty 파일이나 타이밍 모델 파일에서 흔히 볼 수 있습니다. 여기서는 간단한 예제를 통해 어떻게 ASCII 형식으로 데이터를 저장하고 사용하는지 보여드리겠습니다.예제 1: 간단한 메모리 타이밍 모델 (Liberty File)library(memory_model) { cell(memory_cell) { area : 1.2; pin (CLK) { direction : input; capacitance : 0.05; } pin (Q) { direction : output; function : "D"; ..
IT/ASIC | FPGA 2024. 10. 25.
반도체 기초 - nominal, 코너, 조건관련 용어
다른 조건을 표현할 때는 보통 온도, 전압, 공정 변동 등을 기준으로 다양한 코너 (corner) 조건을 설정하여 사용합니다. 주로 쓰이는 조건 표현법은 다음과 같습니다: rc nominal에서 nominal은 특정 조건하에서의 대표적인, 즉 기준 또는 표준 조건을 나타냅니다. 일반적으로 반도체 설계에서 nominal은 온도, 전압, 공정 등의 변수가 일반적인 (대표적인) 상태일 때의 시뮬레이션을 의미합니다. 이를 통해 일반적인 동작 특성을 평가하게 됩니다.rc nominal의 경우, 저항 (R)과 캐패시턴스 (C) 값이 이 표준 조건에 맞춰진 값으로 설정되어 있어, 설계가 기대한 성능대로 동작하는지 확인하기 위해 사용됩니다. Process Corners: 제조 공정의 변동에 따른 조건을 설정하는 것으로..
IT/ASIC | FPGA 2024. 9. 20.
DC 합성시에 로직 그대로 두기 - preserve 방법, 최적화 방지
합성시에 set_dont_touch 옵션을 주자. 아래처럼. set_dont_touch [get_cells -hierarchical *dont_touch_*] 그리고는, 디자인 할때 dont_touch 가 들어간 모듈명, 인스턴스 명을 만들면 저절로 유지가 된다.아래 예제 처럼.SDFCNQD4 dont_touch_sync_flop0 ( .SI(1'b0), .SE(1'b0), .CP(clkdst), .CDN(resetb_in), .D(1'b1), .Q(resetb_dly[0])); 이 모든 자료는 여기에서 참고했으니 꼭 원본글로 방문해 보시길.How to preserve hand-instantiated cells | KNOW-HOW (raytroop.github.io) Ho..