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/파이썬 2024. 10. 4.
디렉토리, 파일 목록 가져오기 - dir, ls, glob
파이썬으로 파일을 다루려면 파일 리스트를 통해 파일을 하나씩 가져오는 기능이 필수적이다. 이럴때 사용되는 라이브러리가 히glob 이다. 간단한 예제를 보면 쉽게 이해할 수 있다. https://wikidocs.net/83 6.3 파일을 입맛대로(pickle, glob, os.path)파일을 입맛대로 요리할 수 있도록 여러 가지 비법을 전수해 드리지요. ## pickle 먼저 조금 복잡한 자료를 파일에 쓰고 읽는 방법부터 알아봅시다. 이럴 때는 `pick…wikidocs.net다음은 glob과 함께 os.path 모듈을 사용한 예제입니다.from glob import globfrom os.path import isdirfor x in glob('*'): if isdir(x): ..
IT/파이썬 2024. 10. 4.
문자열 표현시 r'' 의 비밀
r"C:/DIR" 이런 문자열을 본적이 있다. r은 무엇일까? 원시 문자열(Raw String)원시 문자열은 백슬래시를 해석하지 않는 문자열 리터럴이다. 소문자 "r"을 앞에 붙여 원시 문자열임을 나타낸다.>>> rs = r'c:\newdata\test' # 원시(백슬래시를 해석하지 않음)>>> rs'c:\\newdata\\test'문자열은 입력한 그대로의 리터럴 텍스트다. 백슬래시가 특별히 중요할 때 이것을 사용하면 편리하다. 예: 파일명, 정규 표현식(regular expression) 등
IT/파이썬 2024. 10. 4.
파일 경로 정리하기 - \, /, ./, .. 문자열 처리 등
os.path.normpath(path) 를 이용해서 파일 처리를 하자.그럼 왠만한 경로는 일단 정제가 된다. os.path.normpath(path)중복된 구분자와 상위 수준 참조를 접어 경로명을 정규화합니다. 그래서 A//B, A/B/, A/./B 및 A/foo/../B가 모두 A/B가 됩니다. 이 문자열 조작은 심볼릭 링크가 포함된 경로의 의미를 변경할 수 있습니다. 윈도우에서는, 슬래시를 역 슬래시로 변환합니다. 대소 문자를 정규화하려면, normcase()를 사용하십시오.버전 3.6에서 변경: 경로류 객체를 받아들입니다. https://yeo0.github.io/pg/2018/11/21/%ED%8C%8C%EC%9D%B4%EC%8D%AC-os.path-%EB%AA%A8%EB%93%88/path에..
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..