KR102703568B1 - 파이선을 활용한 메모리 셀 검증 자동화 방법 및 시스템 - Google Patents
파이선을 활용한 메모리 셀 검증 자동화 방법 및 시스템 Download PDFInfo
- Publication number
- KR102703568B1 KR102703568B1 KR1020230162779A KR20230162779A KR102703568B1 KR 102703568 B1 KR102703568 B1 KR 102703568B1 KR 1020230162779 A KR1020230162779 A KR 1020230162779A KR 20230162779 A KR20230162779 A KR 20230162779A KR 102703568 B1 KR102703568 B1 KR 102703568B1
- Authority
- KR
- South Korea
- Prior art keywords
- memory
- spice
- memory cell
- cell verification
- cells according
- Prior art date
Links
- 238000012795 verification Methods 0.000 title claims abstract description 72
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000004088 simulation Methods 0.000 claims abstract description 40
- 238000004458 analytical method Methods 0.000 claims abstract description 22
- 238000012360 testing method Methods 0.000 claims abstract description 15
- 238000013461 design Methods 0.000 claims description 11
- 208000025174 PANDAS Diseases 0.000 claims description 6
- 208000021155 Paediatric autoimmune neuropsychiatric disorders associated with streptococcal infection Diseases 0.000 claims description 6
- 240000004718 Panda Species 0.000 claims description 6
- 235000016496 Panda oleosa Nutrition 0.000 claims description 6
- 238000003491 array Methods 0.000 claims description 5
- 239000000284 extract Substances 0.000 claims description 2
- 230000008569 process Effects 0.000 description 14
- 238000012545 processing Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000004904 shortening Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/31—Design entry, e.g. editors specifically adapted for circuit design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/323—Translation or migration, e.g. logic to logic, hardware description language [HDL] translation or netlist translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3315—Design verification, e.g. functional simulation or model checking using static timing analysis [STA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/02—Reliability analysis or reliability optimisation; Failure analysis, e.g. worst case scenario performance, failure mode and effects analysis [FMEA]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
파이선을 활용한 메모리 셀 검증 자동화 방법 및 시스템이 제시된다. 본 발명에서 제안하는 파이선을 활용한 메모리 셀 검증 자동화 방법은 메모리 셀 검증 자동화 프로그램을 실행하여, 입력부를 통해 메모리 셀 검증을 위한 메모리의 형태, 어레이 개수, 주기, 테스트 종류를 포함하는 입력 정보를 선택하는 단계, SPICE 실행부를 통해 SPICE(Simulation Program with Integrated Circuit Emphasis)를 실행하여 메모리 셀 검증 자동화를 위해 입력 받은 상기 메모리의 형태에 따른 메모리 넷리스트(Memory Netlist)를 추출하고, SPICE 시뮬레이션을 실행하는 단계 및 분석부를 통해 상기 SPICE 시뮬레이션 결과에 따라 특정 타이밍에 상기 메모리의 형태에 따른 셀들에 데이터가 저장되었는지 확인하는 배열과 페일 카운트(fail count)를 출력하는 단계를 포함한다.
Description
본 발명은 파이선을 활용한 메모리 셀 검증 자동화 방법 및 시스템에 관한 것이다.
최근 CPU의 성능을 늘리기 위해 캐시메모리 사이즈가 점점 커지는 방향으로 발전해 왔으며, 이 과정에서 발생하는 메모리 셀 자체의 문제점인 리키지(Leakage)나 리드 마진(Read margin) 등을 개선하기 위해 셀의 형태, 배치 방식, 트랜지스터의 개수 등을 변화하여 문제점을 개선시켜왔다. 셀의 구현 방식을 수정하고 시뮬레이션을 진행하는 경우에는 복잡한 검증 과정을 거쳐야 하며, 이 부분은 전체 회로설계 과정에서 대부분의 시간을 차지할 정도로 시간이 오래 걸리는 작업이 되었다. 메모리의 종류에 따라 입력 신호를 다르게 만들어 주어야 하며, 한 메모리 종류 안에서 여러 테스트 신호를 만들어서 시뮬레이션을 진행해야 하는 경우도 존재한다. 이와 더불어 넷리스트(Netlist)에서는 파형(Waveform)을 설정(Setup)하기 위한 검증 문법도 작성해야 하는 등 반복적이고 시간이 많이 걸리는 작업을 수행해야 한다.
[1] D. Batas and H. Fiedler, "A Python interface for SPICE-based simulations," ICSES 2010 International Conference on Signals and Electronic Circuits, Gliwice, Poland, 2010, pp. 161-164.
본 발명이 이루고자 하는 기술적 과제는 메모리 셀 테스트 검증 과정에서 소요되는 시간을 단축 시키기 위해, 파이선을 활용한 메모리 셀 검증 자동화 방법 및 시스템을 제공하고, 제안하는 메모리 셀 검증 자동화 방법 및 시스템을 토대로 전체 메모리 회로설계 시간을 단축하고자 한다.
일 측면에 있어서, 본 발명에서 제안하는 파이선을 활용한 메모리 셀 검증 자동화 방법은 메모리 셀 검증 자동화 프로그램을 실행하여, 입력부를 통해 메모리 셀 검증을 위한 메모리의 형태, 어레이 개수, 주기, 테스트 종류를 포함하는 입력 정보를 선택하는 단계, SPICE 실행부를 통해 SPICE(Simulation Program with Integrated Circuit Emphasis)를 실행하여 메모리 셀 검증 자동화를 위해 입력 받은 상기 메모리의 형태에 따른 메모리 넷리스트(Memory Netlist)를 추출하고, SPICE 시뮬레이션을 실행하는 단계 및 분석부를 통해 상기 SPICE 시뮬레이션 결과에 따라 특정 타이밍에 상기 메모리의 형태에 따른 셀들에 데이터가 저장되었는지 확인하는 배열과 페일 카운트(fail count)를 출력하는 단계를 포함한다.
상기 SPICE 실행부를 통해 SPICE를 실행하여 메모리 셀 검증 자동화를 위해 입력 받은 상기 메모리의 형태에 따른 메모리 넷리스트를 추출하고, SPICE 시뮬레이션을 실행하는 단계는 상기 메모리의 형태에 따른 셀들의 읽기/쓰기 동작을 위한 입력 신호를 생성하고, 출력 파형의 특정 타이밍에서 상기 메모리의 형태에 따른 셀들에 저장된 데이터를 각각 추출하기 위한 문법을 추가한다.
상기 분석부를 통해 상기 SPICE 시뮬레이션 결과에 따라 특정 타이밍에 상기 메모리의 형태에 따른 셀들에 데이터가 저장되었는지 확인하는 배열과 페일 카운트를 출력하는 단계는 상기 SPICE 시뮬레이션이 종료되면, 생성되는 CSV(Comma-Separated Values) 파일에 기초하여, 상기 메모리의 형태에 따른 셀들의 읽기 동작을 검증하기 위한 배열의 형태로 상기 SPICE 시뮬레이션 결과를 출력한다.
상기 분석부를 통해 상기 SPICE 시뮬레이션 결과에 따라 특정 타이밍에 상기 메모리의 형태에 따른 셀들에 데이터가 저장되었는지 확인하는 배열과 페일 카운트를 출력하는 단계는 상기 메모리의 형태에 따른 셀들에 저장된 데이터를 각각 추출하기 위한 문법을 사용하여 읽기 동작을 검증하고, 상기 검증 결과를 분석하기 위해 CSV 파일로 변환하며, 상기 변환된 CSV 파일을 이용하여 파이선(Python)의 판다(Pandas) 모듈을 통해 데이터를 분석한다.
또 다른 본 발명에서 제안하는 파이선을 활용한 메모리 셀 검증 자동화 시스템은 메모리 셀 검증 자동화 프로그램을 실행하여, 메모리 셀 검증을 위한 메모리의 형태, 어레이 개수, 주기, 테스트 종류를 포함하는 입력 정보를 선택하는 입력부, SPICE(Simulation Program with Integrated Circuit Emphasis)를 실행하여 메모리 셀 검증 자동화를 위해 입력 받은 상기 메모리의 형태에 따른 메모리 넷리스트(Memory Netlist)를 추출하고, SPICE 시뮬레이션을 실행하는 SPICE 실행부 및 상기 SPICE 시뮬레이션 결과에 따라 특정 타이밍에 상기 메모리의 형태에 따른 셀들에 데이터가 저장되었는지 확인하는 배열과 페일 카운트(fail count)를 출력하는 분석부를 포함한다.
본 발명의 실시예들에 따르면 메모리 셀 테스트 검증 과정에서 소요되는 시간을 단축 시키기 위해, 파이선을 활용한 메모리 셀 검증 자동화 방법 및 시스템을 제공하고, 제안하는 메모리 셀 검증 자동화 방법 및 시스템을 토대로 전체 메모리 회로설계 시간을 단축할 수 있다. 본 발명의 실시예에 따르면, 메모리 셀 검증 자동화 프로그램 실행 전 사전에 준비해야 할 것은 메모리 넷리스트(Memory Netlist) 파일이며, 프로그램을 실행하게 되면 메모리의 형태, 어레이 개수, 주기, 테스트 종류를 선택할 수 있고 SPICE(Simulation Program with Integrated Circuit Emphasis)가 실행되며 특정 타이밍에 데이터가 제대로 저장되었는지 확인하는 배열과 페일 카운트(fail count)를 출력할 수 있다.
도 1은 본 발명의 일 실시예에 따른 파이선을 활용한 메모리 셀 검증 자동화 방법을 설명하기 위한 흐름도이다.
도 2는 본 발명의 일 실시예에 따른 파이선을 활용한 메모리 셀 검증 자동화 시스템의 구성을 나타내는 도면이다.
도 3은 본 발명의 일 실시예에 따른 3T_DRAM을 나타내는 회로도 이다.
도 4는 본 발명의 일 실시예에 따른 프로그램 동작 과정을 설명하기 위한 예시도이다.
도 5는 본 발명의 일 실시예에 따른 메모리 셀 검증 결과를 나타내는 예시도이다.
도 2는 본 발명의 일 실시예에 따른 파이선을 활용한 메모리 셀 검증 자동화 시스템의 구성을 나타내는 도면이다.
도 3은 본 발명의 일 실시예에 따른 3T_DRAM을 나타내는 회로도 이다.
도 4는 본 발명의 일 실시예에 따른 프로그램 동작 과정을 설명하기 위한 예시도이다.
도 5는 본 발명의 일 실시예에 따른 메모리 셀 검증 결과를 나타내는 예시도이다.
메모리 셀(Memory Cell)을 검증하는데 있어서 SPICE(Simulation Program with Integrated Circuit Emphasis) 프로그램이 사용되며, 정확한 칩(Chip)의 성능을 검증하기 위해 다양한 테스트를 거치게 된다. 하지만 사용해야 할 테스트 신호가 많으면 많을수록 검증 시간은 길어지게 되고, 전체 회로설계 시간에 대부분을 차지하는 과정이 되었다. 본 발명에서는 검증 시간을 단축하면서 빠르게 다음 설계 단계로 넘어갈 수 있도록 출력 파형을 검증하는 과정들을 파이선(Python)을 활용해 자동화 한다. 이하, 본 발명의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 파이선을 활용한 메모리 셀 검증 자동화 방법을 설명하기 위한 흐름도이다.
제안하는 파이선을 활용한 메모리 셀 검증 자동화 방법은 메모리 셀 검증 자동화 프로그램을 실행하여, 입력부를 통해 메모리 셀 검증을 위한 메모리의 형태, 어레이 개수, 주기, 테스트 종류를 포함하는 입력 정보를 선택하는 단계(110), SPICE 실행부를 통해 SPICE(Simulation Program with Integrated Circuit Emphasis)를 실행하여 메모리 셀 검증 자동화를 위해 입력 받은 상기 메모리의 형태에 따른 메모리 넷리스트(Memory Netlist)를 추출하고, SPICE 시뮬레이션을 실행하는 단계(120) 및 분석부를 통해 상기 SPICE 시뮬레이션 결과에 따라 특정 타이밍에 상기 메모리의 형태에 따른 셀들에 데이터가 저장되었는지 확인하는 배열과 페일 카운트(fail count)를 출력하는 단계(130)를 포함한다.
단계(110)에서, 메모리 셀 검증 자동화 프로그램을 실행하여, 입력부를 통해 메모리 셀 검증을 위한 메모리의 형태, 어레이 개수, 주기, 테스트 종류를 포함하는 입력 정보를 선택한다.
단계(120)에서, 상기 SPICE 실행부를 통해 SPICE를 실행하여 메모리 셀 검증 자동화를 위해 입력 받은 상기 메모리의 형태에 따른 메모리 넷리스트를 추출하고, SPICE 시뮬레이션을 실행한다.
본 발명의 실시예에 따르면, 상기 메모리의 형태에 따른 셀들의 읽기/쓰기 동작을 위한 입력 신호를 생성하고, 출력 파형의 특정 타이밍에서 상기 메모리의 형태에 따른 셀들에 저장된 데이터를 각각 추출하기 위한 문법을 추가한다.
단계(130)에서, 상기 분석부를 통해 상기 SPICE 시뮬레이션 결과에 따라 특정 타이밍에 상기 메모리의 형태에 따른 셀들에 데이터가 저장되었는지 확인하는 배열과 페일 카운트를 출력한다.
본 발명의 실시예에 따르면, 상기 SPICE 시뮬레이션이 종료되면, 생성되는 CSV(Comma-Separated Values) 파일에 기초하여, 상기 메모리의 형태에 따른 셀들의 읽기 동작을 검증하기 위한 배열의 형태로 상기 SPICE 시뮬레이션 결과를 출력한다.
본 발명의 실시예에 따르면, 상기 메모리의 형태에 따른 셀들에 저장된 데이터를 각각 추출하기 위한 문법을 사용하여 읽기 동작을 검증하고, 상기 검증 결과를 분석하기 위해 CSV 파일로 변환하며, 상기 변환된 CSV 파일을 이용하여 파이선(Python)의 판다(Pandas) 모듈을 통해 데이터를 분석한다.
도 2는 본 발명의 일 실시예에 따른 파이선을 활용한 메모리 셀 검증 자동화 시스템의 구성을 나타내는 도면이다.
본 실시예에 따른 메모리 셀 검증 자동화 시스템(200)은 프로세서(210), 버스(220), 네트워크 인터페이스(230), 메모리(240) 및 데이터베이스(250)를 포함할 수 있다. 메모리(240)는 운영체제(241) 및 파이선을 활용한 메모리 셀 검증 자동화 루틴(242)을 포함할 수 있다. 프로세서(210)는 입력부(211), SPICE 실행부(212) 및 분석부(213)를 포함할 수 있다. 다른 실시예들에서 메모리 셀 검증 자동화 시스템(200)은 도 2의 구성요소들보다 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 예를 들어, 메모리 셀 검증 자동화 시스템(200)은 디스플레이나 트랜시버(transceiver)와 같은 다른 구성요소들을 포함할 수도 있다.
메모리(240)는 컴퓨터에서 판독 가능한 기록 매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 또한, 메모리(240)에는 운영체제(241)와 파이선을 활용한 메모리 셀 검증 자동화 루틴(242)을 위한 프로그램 코드가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 드라이브 메커니즘(drive mechanism, 미도시)을 이용하여 메모리(240)와는 별도의 컴퓨터에서 판독 가능한 기록 매체로부터 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록 매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록 매체(미도시)를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록 매체가 아닌 네트워크 인터페이스(230)를 통해 메모리(240)에 로딩될 수도 있다.
버스(220)는 메모리 셀 검증 자동화 시스템(200)의 구성요소들간의 통신 및 데이터 전송을 가능하게 할 수 있다. 버스(220)는 고속 시리얼 버스(high-speed serial bus), 병렬 버스(parallel bus), SAN(Storage Area Network) 및/또는 다른 적절한 통신 기술을 이용하여 구성될 수 있다.
네트워크 인터페이스(230)는 메모리 셀 검증 자동화 시스템(200)을 컴퓨터 네트워크에 연결하기 위한 컴퓨터 하드웨어 구성요소일 수 있다. 네트워크 인터페이스(230)는 메모리 셀 검증 자동화 시스템(200)을 무선 또는 유선 커넥션을 통해 컴퓨터 네트워크에 연결시킬 수 있다.
데이터베이스(250)는 파이선을 활용한 메모리 셀 검증 자동화를 위해 필요한 모든 정보를 저장 및 유지하는 역할을 할 수 있다. 도 2에서는 메모리 셀 검증 자동화 시스템(200)의 내부에 데이터베이스(250)를 구축하여 포함하는 것으로 도시하고 있으나, 이에 한정되는 것은 아니며 시스템 구현 방식이나 환경 등에 따라 생략될 수 있고 혹은 전체 또는 일부의 데이터베이스가 별개의 다른 시스템 상에 구축된 외부 데이터베이스로서 존재하는 것 또한 가능하다.
프로세서(210)는 기본적인 산술, 로직 및 메모리 셀 검증 자동화 시스템(200)의 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(240) 또는 네트워크 인터페이스(230)에 의해, 그리고 버스(220)를 통해 프로세서(210)로 제공될 수 있다. 프로세서(210)는 입력부(211), SPICE 실행부(212) 및 분석부(213)를 위한 프로그램 코드를 실행하도록 구성될 수 있다. 이러한 프로그램 코드는 메모리(240)와 같은 기록 장치에 저장될 수 있다.
입력부(211), SPICE 실행부(212) 및 분석부(213)는 도 1의 단계들(110~130)을 수행하기 위해 구성될 수 있다.
메모리 셀 검증 자동화 시스템(200)은 입력부(211), SPICE 실행부(212) 및 분석부(213)를 포함할 수 있다.
본 발명의 실시예에 따른 입력부(211)는 메모리 셀 검증 자동화 프로그램을 실행하여, 메모리 셀 검증을 위한 메모리의 형태, 어레이 개수, 주기, 테스트 종류를 포함하는 입력 정보를 선택한다.
도 3은 본 발명의 일 실시예에 따른 3T_DRAM을 나타내는 회로도 이다.
본 발명의 실시예에 따른 상용 28nm공정을 기반으로 한 3T DRAM 구조를 설정하고 시뮬레이션하는 과정을 설명하고자 한다. 셀 구조는 도 3과 같다.
본 발명의 실시예에 따른 메모리 형태를 저장한 후, 시뮬레이션을 위한 넷리스트를 SPICE내부에서 직접 추출할 것이다. 본 발명의 실시예에 따르면, 8by8으로 테스트 할 것이며, 주기는 5ns, 체커보드 형식의 데이터를 셀에 쓰기할 것이다.
본 발명의 실시예에 따른 SPICE 실행부(212)는 SPICE를 실행하여 메모리 셀 검증 자동화를 위해 입력 받은 상기 메모리의 형태에 따른 메모리 넷리스트를 추출하고, SPICE 시뮬레이션을 실행한다.
본 발명의 실시예에 따른 SPICE 실행부(212)는 상기 메모리의 형태에 따른 셀들의 읽기/쓰기 동작을 위한 입력 신호를 생성하고, 출력 파형의 특정 타이밍에서 상기 메모리의 형태에 따른 셀들에 저장된 데이터를 각각 추출하기 위한 문법을 추가한다.
도 4는 본 발명의 일 실시예에 따른 프로그램 동작 과정을 설명하기 위한 예시도이다.
본 발명의 실시예에 따른 옵션 선택에 대한 과정은 도 4와 같다. 메모리 형태를 3T_PMOS로 지정할 경우, 셀들의 읽기/쓰기 동작을 정상적으로 동작시키기 위한 입력 신호를 메모리 형태에 따라 자동으로 생성하게 된다. 마찬가지로 파형의 특정 타이밍에서 전체 셀에 저장된 데이터를 각각 추출하기 위한 문법도 추가된다.
본 발명의 실시예에 따른 분석부(213)는 상기 SPICE 시뮬레이션 결과에 따라 특정 타이밍에 상기 메모리의 형태에 따른 셀들에 데이터가 저장되었는지 확인하는 배열과 페일 카운트를 출력한다.
본 발명의 실시예에 따른 분석부(213)는 상기 SPICE 시뮬레이션이 종료되면, 생성되는 CSV(Comma-Separated Values) 파일에 기초하여, 상기 메모리의 형태에 따른 셀들의 읽기 동작을 검증하기 위한 배열의 형태로 상기 SPICE 시뮬레이션 결과를 출력한다.
본 발명의 실시예에 따른 분석부(213)는 상기 메모리의 형태에 따른 셀들에 저장된 데이터를 각각 추출하기 위한 문법을 사용하여 읽기 동작을 검증하고, 상기 검증 결과를 분석하기 위해 CSV 파일로 변환하며, 상기 변환된 CSV 파일을 이용하여 파이선(Python)의 판다(Pandas) 모듈을 통해 데이터를 분석한다.
도 5는 본 발명의 일 실시예에 따른 메모리 셀 검증 결과를 나타내는 예시도이다.
본 발명의 일 실시예에 따른 옵션을 모두 선택하면 새로운 넷리스트 파일을 생성한다. 이때 실행날짜, 테스트 옵션을 포함한 이름으로 생성한다. 이후, SPICE 프로그램이 자동으로 실행되며, 도 5와 같이 시뮬레이션이 끝나면 생성되는 CSV 파일에 기초하여 읽기 동작이 제대로 수행되었는지 배열의 형태로 쉽게 확인 가능하다. 상기 메모리의 형태에 따른 셀들의 읽기 동작을 검증하기 위한 배열의 형태는 셀에 데이터가 읽기를 정상적으로 동작시킬 수 있는지 확인할 수 있는 것이며, Fail이라면 읽기 동작이 가능한 충분한 데이터가 셀에 존재하지 않는다는 의미가 된다. 이러한 정보를 바탕으로 센스 앰플리파이어(Sence amplifier) 설계 방식이나 리키지(Leakage) 보상과 관련된 아이디어 제시 단계로 빠르게 넘어갈 수 있다.
본 발명의 실시예에 따른 SPICE 시뮬레이션에서는 .MEASURE 문법을 사용하여 읽기 타이밍에 BL이 정상적으로 동작하는지 확인하게 된다. 이때 생성되는 파일은 .mt0 파일이며, 이 파일을 파이선을 사용하여 분석하기 위해 .csv파일로 변환하고, 이를 위해 SPICE 옵션으로 .MEASFORM=3을 추가해 주었다. 이 옵션을 사용하는 이유는 .mt0파일을 .csv 파일로 변환하여 파이선의 판다(Pandas) 모듈을 활용해 데이터를 분석하기 위한 것이다.
이와 같이, 본 발명의 실시예에서는 자동 검증 프로그램을 이용해 메모리 회로를 설계하고 시뮬레이션까지의 시간을 단축시킴으로써 전체 회로 설계 시간을 줄일 수 있다는 것을 확인할 수 있다. 시간이 오래 걸리는 검증 과정을 빠르게 단축시킴으로써, 메모리 설계를 마치고 빠르게 주변 회로를 설계할 수 있는 단계로 넘어갈 수 있다.
또한, 프로그램을 쉽게 수정할 수 있도록 구성했기 때문에 다른 종류의 셀을 사용한다고 하더라도 코드를 몇 줄만 수정하면 사용 가능한 장점이 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
Claims (8)
- 메모리 셀 검증 자동화 프로그램을 실행하여, 입력부를 통해 메모리 셀 검증을 위한 메모리의 형태, 어레이 개수, 주기, 테스트 종류를 포함하는 입력 정보를 선택하는 단계;
SPICE 실행부를 통해 SPICE(Simulation Program with Integrated Circuit Emphasis)를 실행하여 메모리 셀 검증 자동화를 위해 입력 받은 상기 메모리의 형태에 따른 메모리 넷리스트(Memory Netlist)를 추출하고, SPICE 시뮬레이션을 실행하는 단계; 및
분석부를 통해 상기 SPICE 시뮬레이션 결과에 따라 특정 타이밍에 상기 메모리의 형태에 따른 셀들에 데이터가 저장되었는지 확인하는 배열과 페일 카운트(fail count)를 출력하는 단계
를 포함하고,
상기 SPICE 실행부를 통해 SPICE를 실행하여 메모리 셀 검증 자동화를 위해 입력 받은 상기 메모리의 형태에 따른 메모리 넷리스트를 추출하고, SPICE 시뮬레이션을 실행하는 단계는,
상기 메모리의 형태에 따른 셀들의 읽기/쓰기 동작을 위한 입력 신호를 생성하고, 출력 파형의 특정 타이밍에서 상기 메모리의 형태에 따른 셀들에 저장된 데이터를 각각 추출하기 위한 문법을 추가하고,
상기 분석부를 통해 상기 SPICE 시뮬레이션 결과에 따라 특정 타이밍에 상기 메모리의 형태에 따른 셀들에 데이터가 저장되었는지 확인하는 배열과 페일 카운트를 출력하는 단계는,
상기 SPICE 시뮬레이션이 종료되면, 생성되는 CSV(Comma-Separated Values) 파일에 기초하여, 상기 메모리의 형태에 따른 셀들의 읽기 동작을 검증하기 위한 배열의 형태로 상기 SPICE 시뮬레이션 결과를 출력하고,
상기 메모리의 형태에 따른 셀들에 저장된 데이터를 각각 추출하기 위한 문법을 사용하여 읽기 동작을 검증하고, 읽기 타이밍에 비트라인이 정상적으로 동작하는지 검증하기 위해 .MEASURE 문법을 사용하고, 검증 결과에 따라 생성되는 파일인 .mt0 파일을 파이선(Python)을 사용하여 분석하기 위한 CSV 파일로 변환하고, 상기 변환된 CSV 파일을 이용하여 파이선의 판다(Pandas) 모듈을 통해 데이터를 분석하며,
메모리의 형태에 따른 셀들의 읽기 동작을 검증하기 위한 배열의 형태는 셀들에 저장된 데이터에 대한 읽기 동작이 정상적으로 동작하는지 검증하기 위한 것으로서, 페일인 경우 읽기 동작이 가능하도록 하기 위한 충분한 데이터가 셀에 존재하지 않는다는 의미를 나타내고, 페일 카운트에 기초하여 센스 앰플리파이어(Sence amplifier) 설계 방식 또는 리키지(Leakage) 보상과 관련된 아이디어 제시 단계로 이동함으로써, 메모리 셀 검증 자동화를 통해 메모리 회로 설계에서부터 시뮬레이션까지의 시간을 단축시키는
메모리 셀 검증 자동화 방법. - 삭제
- 삭제
- 삭제
- 메모리 셀 검증 자동화 프로그램을 실행하여, 메모리 셀 검증을 위한 메모리의 형태, 어레이 개수, 주기, 테스트 종류를 포함하는 입력 정보를 선택하는 입력부;
SPICE(Simulation Program with Integrated Circuit Emphasis)를 실행하여 메모리 셀 검증 자동화를 위해 입력 받은 상기 메모리의 형태에 따른 메모리 넷리스트(Memory Netlist)를 추출하고, SPICE 시뮬레이션을 실행하는 SPICE 실행부; 및
상기 SPICE 시뮬레이션 결과에 따라 특정 타이밍에 상기 메모리의 형태에 따른 셀들에 데이터가 저장되었는지 확인하는 배열과 페일 카운트(fail count)를 출력하는 분석부
를 포함하고,
상기 SPICE 실행부는,
상기 메모리의 형태에 따른 셀들의 읽기/쓰기 동작을 위한 입력 신호를 생성하고, 출력 파형의 특정 타이밍에서 상기 메모리의 형태에 따른 셀들에 저장된 데이터를 각각 추출하기 위한 문법을 추가하고,
상기 분석부는,
상기 SPICE 시뮬레이션이 종료되면, 생성되는 CSV(Comma-Separated Values) 파일에 기초하여, 상기 메모리의 형태에 따른 셀들의 읽기 동작을 검증하기 위한 배열의 형태로 상기 SPICE 시뮬레이션 결과를 출력하고,
상기 메모리의 형태에 따른 셀들에 저장된 데이터를 각각 추출하기 위한 문법을 사용하여 읽기 동작을 검증하고, 읽기 타이밍에 비트라인이 정상적으로 동작하는지 검증하기 위해 .MEASURE 문법을 사용하고, 검증 결과에 따라 생성되는 파일인 .mt0 파일을 파이선(Python)을 사용하여 분석하기 위한 CSV 파일로 변환하고, 상기 변환된 CSV 파일을 이용하여 파이선의 판다(Pandas) 모듈을 통해 데이터를 분석하며,
메모리의 형태에 따른 셀들의 읽기 동작을 검증하기 위한 배열의 형태는 셀들에 저장된 데이터에 대한 읽기 동작이 정상적으로 동작하는지 검증하기 위한 것으로서, 페일인 경우 읽기 동작이 가능하도록 하기 위한 충분한 데이터가 셀에 존재하지 않는다는 의미를 나타내고, 페일 카운트에 기초하여 센스 앰플리파이어(Sence amplifier) 설계 방식 또는 리키지(Leakage) 보상과 관련된 아이디어 제시 단계로 이동함으로써, 메모리 셀 검증 자동화를 통해 메모리 회로 설계에서부터 시뮬레이션까지의 시간을 단축시키는
메모리 셀 검증 자동화 시스템. - 삭제
- 삭제
- 삭제
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020230162779A KR102703568B1 (ko) | 2023-11-21 | 2023-11-21 | 파이선을 활용한 메모리 셀 검증 자동화 방법 및 시스템 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020230162779A KR102703568B1 (ko) | 2023-11-21 | 2023-11-21 | 파이선을 활용한 메모리 셀 검증 자동화 방법 및 시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102703568B1 true KR102703568B1 (ko) | 2024-09-05 |
Family
ID=92760667
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020230162779A KR102703568B1 (ko) | 2023-11-21 | 2023-11-21 | 파이선을 활용한 메모리 셀 검증 자동화 방법 및 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102703568B1 (ko) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210103383A (ko) * | 2020-02-13 | 2021-08-23 | 인텔 코포레이션 | 멀티 레벨 셀 메모리의 데이터 프로그래밍을 검증하는 디바이스, 시스템 및 방법 |
KR102545302B1 (ko) * | 2022-10-07 | 2023-06-20 | 인하대학교 산학협력단 | Cmos 기반 디지털 회로의 설계 및 검증 과정 자동화 프레임워크 |
KR102558036B1 (ko) * | 2022-11-25 | 2023-07-20 | 인하대학교 산학협력단 | Python을 활용한 RTL 설계 검증 자동화 방법 및 시스템 |
KR102592752B1 (ko) * | 2022-11-30 | 2023-10-23 | 인하대학교 산학협력단 | 풀-커스텀 cmos 회로 측정 및 성능 최적화 자동화 방법 및 시스템 |
-
2023
- 2023-11-21 KR KR1020230162779A patent/KR102703568B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210103383A (ko) * | 2020-02-13 | 2021-08-23 | 인텔 코포레이션 | 멀티 레벨 셀 메모리의 데이터 프로그래밍을 검증하는 디바이스, 시스템 및 방법 |
KR102545302B1 (ko) * | 2022-10-07 | 2023-06-20 | 인하대학교 산학협력단 | Cmos 기반 디지털 회로의 설계 및 검증 과정 자동화 프레임워크 |
KR102558036B1 (ko) * | 2022-11-25 | 2023-07-20 | 인하대학교 산학협력단 | Python을 활용한 RTL 설계 검증 자동화 방법 및 시스템 |
KR102592752B1 (ko) * | 2022-11-30 | 2023-10-23 | 인하대학교 산학협력단 | 풀-커스텀 cmos 회로 측정 및 성능 최적화 자동화 방법 및 시스템 |
Non-Patent Citations (1)
Title |
---|
[1] D. Batas and H. Fiedler, "A Python interface for SPICE-based simulations," ICSES 2010 International Conference on Signals and Electronic Circuits, Gliwice, Poland, 2010, pp. 161-164. |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4989629B2 (ja) | 複製ロジック及びトリガロジックを用いたデバッグのための方法及びシステム | |
US7478028B2 (en) | Method for automatically searching for functional defects in a description of a circuit | |
US10007492B2 (en) | System and method for automatically generating device drivers for run time environments | |
US6327556B1 (en) | AT-speed computer model testing methods | |
US9141501B2 (en) | Firmware generated register file for use in hardware validation | |
CN116302721A (zh) | 芯片设计验证系统与方法及计算机可读取记录介质 | |
US6574759B1 (en) | Method for verifying and improving run-time of a memory test | |
US7546560B2 (en) | Optimization of flip flop initialization structures with respect to design size and design closure effort from RTL to netlist | |
US20140100841A1 (en) | Testing a Hardware Emulation Model of a Circuit with Software Checker Routines Designed for an RTL Model of the Circuit | |
US12039240B2 (en) | Integrated circuit simulation and design method and system thereof | |
US20130024178A1 (en) | Playback methodology for verification components | |
US20060026478A1 (en) | Built-in self-test emulator | |
CN113868046A (zh) | 一种pad控制单元的功能验证方法、系统及相关组件 | |
KR102592752B1 (ko) | 풀-커스텀 cmos 회로 측정 및 성능 최적화 자동화 방법 및 시스템 | |
KR102703568B1 (ko) | 파이선을 활용한 메모리 셀 검증 자동화 방법 및 시스템 | |
KR102558036B1 (ko) | Python을 활용한 RTL 설계 검증 자동화 방법 및 시스템 | |
US9672094B1 (en) | Interconnect circuitry fault detection | |
US10007489B1 (en) | Automated method identifying physical memories within a core or macro integrated circuit design | |
CN113204939A (zh) | 一种全芯片仿真验证方法 | |
US10643012B1 (en) | Concurrent formal verification of logic synthesis | |
US10319459B1 (en) | Customizable built-in self-test testplans for memory units | |
CN111950219A (zh) | 用于实现模拟器的方法、装置、设备以及介质 | |
US7505887B1 (en) | Building a simulation of design block using a bus functional model and an HDL testbench | |
US8042075B2 (en) | Method, system and application for sequential cofactor-based analysis of netlists | |
US20200026813A1 (en) | Providing guidance to an equivalence checker when a design contains retimed registers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |