KR102523270B1 - I2c 통신을 지원하는 이퓨즈 오티피 메모리 및 그의 동작 방법 - Google Patents

I2c 통신을 지원하는 이퓨즈 오티피 메모리 및 그의 동작 방법 Download PDF

Info

Publication number
KR102523270B1
KR102523270B1 KR1020210109236A KR20210109236A KR102523270B1 KR 102523270 B1 KR102523270 B1 KR 102523270B1 KR 1020210109236 A KR1020210109236 A KR 1020210109236A KR 20210109236 A KR20210109236 A KR 20210109236A KR 102523270 B1 KR102523270 B1 KR 102523270B1
Authority
KR
South Korea
Prior art keywords
efuse
address
data
cycle
serial data
Prior art date
Application number
KR1020210109236A
Other languages
English (en)
Other versions
KR20230027448A (ko
Inventor
공완철
한우진
임창범
안기식
박성범
이일우
Original Assignee
주식회사 키파운드리
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 키파운드리 filed Critical 주식회사 키파운드리
Priority to KR1020210109236A priority Critical patent/KR102523270B1/ko
Priority to US17/584,586 priority patent/US20230059620A1/en
Publication of KR20230027448A publication Critical patent/KR20230027448A/ko
Application granted granted Critical
Publication of KR102523270B1 publication Critical patent/KR102523270B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C17/00Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
    • G11C17/14Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
    • G11C17/18Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C17/00Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
    • G11C17/14Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
    • G11C17/16Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM using electrically-fusible links
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1045Read-write mode select circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/06Address interface arrangements, e.g. address buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/18Address timing or clocking circuits; Address control signal generation or management, e.g. for row address strobe [RAS] or column address strobe [CAS] signals

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)

Abstract

본 게시물의 다양한 실시 예들은 I2C(Inter Integrated Circuit) 통신을 지원하는 이퓨즈(eFuse) 오티피 메모리(one time programmable memory) 및 그의 동작 방법에 관한 것이다. I2C 통신을 지원하는 이퓨즈 방식의 오티피 메모리는, 복수의 어드레스에 대해 1회 데이터 쓰기 및 복수 회 데이터 읽기가 가능한 이퓨즈 IP(eFuse intellectual property), 및 시리얼 클럭 라인 및 시리얼 데이터 라인을 기반으로 I2C 마스터와 통신하고, 상기 이퓨즈 IP에 데이터 쓰기(write) 및 데이터 읽기(read)를 수행하는 I2C 슬레이브를 포함할 수 있다.

Description

I2C 통신을 지원하는 이퓨즈 오티피 메모리 및 그의 동작 방법{eFuse OTP memory supporting I2C communication and operating method thereof}
본 게시물의 다양한 실시 예들은 I2C(Inter Integrated Circuit) 통신을 지원하는 이퓨즈 오티피 메모리(eFuse one time programmable memory) 및 그의 동작 방법에 관한 것이다.
오티피 메모리(one time programmable memory)는 한 번의 프로그램 동작만 허용하는 메모리로서 한 번의 프로그램이후 추가적인 프로그램이 불가능한 메모리를 통칭한다.
최근 오티피 메모리는 퓨즈 방식을 주로 사용하는데, 퓨즈 방식은 퓨즈가 끊어졌는지 이어졌는지에 따라 이진 정보를 제공할 수 있다. 최근에 PMIC(power management IC)는 설정 파라미터를 내장하기 위하여 비휘발성 메모리를 구비하는 경우가 많으며, 이때, 별도의 추가 공정이 필요 없는 이퓨즈(eFuse) 방식의 오티피 메모리가 많이 사용되고 있다.
일반적으로, 이퓨즈(eFuse) 방식의 오티피 메모리(이하 이퓨즈 IP)를 사용하기 위해서, 커스텀(custom) IC를 설계하는 고객은 이퓨즈 IP의 규격을 기반으로 쓰기/읽기(write/read) 기능 및 타이밍(timing)을 이해하고, 프로그래밍된 이퓨즈 IP의 데이터를 어떻게 활용하여 고객 설계 블록(custom design block)의 내부 제어 신호로 이용할 것인지 검토하고, 이퓨즈 IP를 제어하기위한 회로를 설계하여 고객 설계 블록에 탑재한 뒤, 실리콘 검증(silicon proven)을 수행하여야만 이퓨즈 IP를 적절하게 사용할 수 있다.
그러나, 상술한 바와 같이 고객이 직접 이퓨즈 IP에 대한 제어 회로를 설계하는 경우, 쓰기/읽기 기능(function)에 대한 검토 미비, 또는 설계 단계에서의 결함으로 인해, 초기 생산 IC에서 또는 검증용 IC에서 기능 및 전기적 특성에 문제가 발생할 수 있다.
따라서, 본 게시물의 다양한 실시 예들에서는 이퓨즈 IP에 대한 데이터의 쓰기/읽기를 I2C 통신을 이용하여 수행할 수 있도록 하는 제어 회로를 포함하는 이퓨즈 IP 및 그의 동작 방법에 대해 개시한다.
본 문서에서 이루고자 하는 기술적 과제는 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 게시물이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 게시물의 다양한 실시 예들에 따르면, I2C(Inter Integrated Circuit) 통신을 지원하는 이퓨즈(eFuse) 방식의 오티피 메모리(one time programmable memory)는, 복수의 어드레스에 대해 1회 데이터 쓰기 및 복수 회 데이터 읽기가 가능한 이퓨즈 IP(eFuse intellectual property), 및 시리얼 클럭 라인 및 시리얼 데이터 라인을 기반으로 I2C 마스터와 통신하고, 상기 이퓨즈 IP에 데이터 쓰기(write) 및 데이터 읽기(read)를 수행하는 I2C 슬레이브를 포함할 수 있다.
본 게시물의 일 실시 예에 따르면, 상기 I2C 슬레이브는, 상기 I2C 마스터와 통신을 수행하는 I2C 슬레이브 인터페이스, 상기 시리얼 데이터 라인을 통해 상기 I2C 마스터로부터 수신되는 데이터를 저장하고, 상기 시리얼 데이터 라인을 통해 상기 I2C 마스터로 전송될 데이터를 저장하는 레지스터 블록, 상기 시리얼 데이터 라인을 통해 수신되는 데이터를 기반으로, 상기 이퓨즈 IP에 데이터를 쓰기 또는 상기 이퓨즈 IP에 저장된 데이터를 읽기 위한 제어 신호를 생성하는 이퓨즈 제어부, 및 상기 이퓨즈 제어부의 동작을 위해 클럭 신호를 제공하는 클럭 제어부를 포함할 수 있다.
본 게시물의 일 실시 예에 따르면, 오픈 드레인(open drain) 입출력 장치를 통해 상기 시리얼 데이터 라인과 연결되어, 상기 I2C 마스터로부터 데이터를 수신하는 시리얼 데이터 입력 핀, 상기 오픈 드레인(open drain) 입출력 장치를 통해 상기 시리얼 데이터 라인과 연결되어, 상기 I2C 마스터로 데이터를 전송하는 시리얼 데이터 출력 핀, 및 상기 시리얼 데이터 입력 핀 및 상기 시리얼 데이터 출력 핀 중 어느 하나가 상기 시리얼 데이터 라인에 연결되도록 상기 오픈 드레인 입출력 장치를 제어하는 신호를 출력하는 상기 시리얼 데이터 출력 인에이블 핀을 더 포함할 수 있다.
본 게시물의 일 실시 예에 따르면, 상기 I2C 슬레이브는, 제1 사이클에서 상기 시리얼 데이터 라인을 통해 데이터 쓰기 조건을 획득하고, 제2 사이클에서 상기 시리얼 데이터 라인을 통해 상기 이퓨즈 IP에 기록할 데이터를 획득하고, 제3 사이클에서 상기 시리얼 데이터 라인을 통해 상기 이퓨즈 IP의 어드레스를 획득하고, 상기 획득된 데이터 쓰기 조건을 기반으로, 상기 이퓨즈 IP의 어드레스에 상기 획득된 데이터 쓰기를 수행할 수 있다.
본 게시물의 일 실시 예에 따르면, 상기 데이터 쓰기 조건은, 상기 이퓨즈 IP의 어드레스에 상기 획득된 데이터를 쓰는 동안에 이용될 퓨징 전류 값, 읽기 모드 선택 여부, 또는 초기 이퓨즈의 저항 값의 마진 체크 여부 중 적어도 하나를 포함할 수 있다.
본 게시물의 일 실시 예에 따르면, 상기 제1 사이클에서 상기 시리얼 데이터 라인을 통해, 칩 어드레스, R/W 비트, 커맨드 레지스터 어드레스, 및 상기 데이터 쓰기 조건을 수신하여, 상기 레지스터 블록의 상기 커맨드 레지스터 어드레스에 상기 데이터 쓰기 조건을 저장하고, 상기 제2 사이클에서 상기 시리얼 데이터 라인을 통해, 상기 칩 어드레스, 상기 R/W 비트, 데이터 레지스터 어드레스, 및 상기 이퓨즈 IP에 기록할 데이터를 수신하여, 상기 레지스터 블록의 상기 데이터 레지스터 어드레스에 상기 이퓨즈 IP에 기록할 데이터를 저장하고, 상기 제3 사이클에서 상기 시리얼 데이터 라인을 통해, 상기 칩 어드레스, 상기 R/W 비트, 어드레스 레지스터 어드레스, 쓰기 모드 설정 비트, 및 상기 이퓨즈 IP의 어드레스를 수신하여, 상기 레지스터 블록의 어드레스 레지스터 어드레스에 상기 이퓨즈 IP의 어드레스를 저장하고, 각 사이클에서 정해진 주기마다 상기 시리얼 데이터 라인을 통해 데이터를 수신 했음을 나타내는 제1 ack 신호를 전송하며, 상기 R/W 비트는, 상기 제1 사이클, 상기 제2 사이클 및 상기 제3 사이클에서 쓰기 동작을 수행하도록 설정될 수 있다.
본 게시물의 일 실시 예에 따르면, 상기 I2C 슬레이브는, 제1 사이클에서 상기 시리얼 데이터 라인을 통해 데이터 읽기 조건을 획득하고, 제2 사이클에서 상기 시리얼 데이터 라인을 통해 상기 이퓨즈 IP의 어드레스를 획득하고, 제3 사이클에서 상기 시리얼 데이터 라인을 통해 상기 이퓨즈 IP의 어드레스에 기록된 데이터를 상기 I2C 마스터로 전송하고, 상기 이퓨즈 IP의 어드레스에 기록된 데이터는 상기 데이터 읽기 조건에 기반하여 획득될 수 있다.
본 게시물의 일 실시 예에 따르면, 상기 데이터 읽기 조건은, 상기 이퓨즈 IP의 어드레스에서 데이터를 읽는 동안에 적용될 퓨징 전류 값, 읽기 모드 선택 여부, 또는 초기 이퓨즈의 저항 값의 마진 체크 여부 중 적어도 하나를 포함할 수 있다.
본 게시물의 일 실시 예에 따르면, 상기 I2C 슬레이브는, 상기 제1 사이클에서 상기 시리얼 데이터 라인을 통해, 칩 어드레스, R/W 비트, 커맨드 레지스터 어드레스, 및 상기 데이터 읽기 조건을 수신하여 상기 레지스터 블록의 상기 커맨드 레지스터 어드레스에 상기 데이터 읽기 조건을 저장하고, 상기 제2 사이클에서 상기 시리얼 데이터 라인을 통해, 상기 칩 어드레스, 상기 R/W 비트, 및 상기 이퓨즈 IP의 어드레스를 수신하고, 상기 제3 사이클에서 상기 시리얼 데이터 라인을 통해, 상기 칩 어드레스, 및 상기 R/W 비트를 수신한 후, 상기 시리얼 데이터 라인을 통해, 상기 이퓨즈 IP의 어드레스에 기록된 데이터를 상기 I2C 마스터로 전송하고, 각 사이클에서 정해진 주기마다 상기 시리얼 데이터 라인을 통해 데이터를 수신 했음을 나타내는 제1 ack 신호를 전송할 수 있다.
본 게시물의 일 실시 예에 따르면, 상기 R/W 비트는, 해당 사이클에서 쓰기 동작 및 읽기 동작 중 어느 동작이 수행될지 나타내는 비트이고, 상기 제1 사이클 및 상기 제2 사이클에서는 쓰기 동작이 수행됨을 나타내고, 상기 제3 사이클에서는 읽기 동작이 수행됨을 나타내도록 설정될 수 있다.
본 게시물의 일 실시 예에 따르면, 상기 I2C 슬레이브는, 상기 제3 사이클에서 상기 시리얼 데이터 라인을 통해, 상기 이퓨즈 IP의 어드레스에 기록된 데이터를 상기 I2C 마스터로 전송한 후, 데이터 읽기 동작이 완료되었음을 나타내는 제2 ack 신호를 마스터가 전송할 수 있다.
본 게시물의 다양한 실시 예들에 따르면, I2C(Inter Integrated Circuit) 통신을 지원하는 이퓨즈(eFuse) 방식의 오티피 메모리(one time programmable memory)의 동작 방법은, 제1 사이클에서 시리얼 데이터 라인을 통해 데이터 쓰기 조건을 획득하는 동작, 제2 사이클에서 상기 시리얼 데이터 라인을 통해 이퓨즈 IP에 기록할 데이터를 획득하는 동작, 제3 사이클에서 상기 시리얼 데이터 라인을 통해 상기 이퓨즈 IP의 어드레스를 획득하는 동작, 및 상기 획득된 데이터 쓰기 조건을 기반으로, 상기 이퓨즈 IP의 어드레스에 상기 획득된 데이터를 기록하는 동작을 포함할 수 있다.
본 게시물의 일 실시 예에 따르면, 상기 데이터 쓰기 조건을 획득하는 동작은, 상기 제1 사이클에서 상기 시리얼 데이터 라인을 통해, 칩 어드레스, R/W 비트, 커맨드 레지스터 어드레스, 및 상기 데이터 쓰기 조건을 수신하는 동작, 및 레지스터 블록의 상기 커맨드 레지스터 어드레스에 상기 데이터 쓰기 조건을 저장하는 동작을 포함하며, 상기 R/W 비트는, 해당 사이클에서 쓰기 동작 및 읽기 동작 중 어느 동작이 수행될지 나타내는 비트이며, 상기 데이터 쓰기 조건은, 상기 이퓨즈 IP의 어드레스에 상기 획득된 데이터를 쓰는 동안에 이용될 퓨징 전류 값, 읽기 모드 선택 여부, 또는 초기 이퓨즈의 저항 값의 마진 체크 여부 중 적어도 하나를 포함할 수 있다.
본 게시물의 일 실시 예에 따르면, 상기 이퓨즈 IP에 기록할 데이터를 획득하는 동작은, 상기 제2 사이클에서 상기 시리얼 데이터 라인을 통해, 상기 칩 어드레스, 상기 R/W 비트, 데이터 레지스터 어드레스, 및 상기 이퓨즈 IP에 기록할 데이터를 수신하는 동작, 및 상기 레지스터 블록의 상기 데이터 레지스터 어드레스에 상기 이퓨즈 IP에 기록할 데이터를 저장하는 동작을 포함할 수 있다.
본 게시물의 일 실시 예에 따르면, 상기 이퓨즈 IP의 어드레스를 획득하는 동작은, 상기 제3 사이클에서 상기 시리얼 데이터 라인을 통해, 상기 칩 어드레스, 상기 R/W 비트, 어드레스 레지스터 어드레스, 쓰기 모드 설정 비트, 및 상기 이퓨즈 IP의 어드레스를 수신하는 동작, 및 상기 레지스터 블록의 상기 어드레스 레지스터 어드레스에 상기 이퓨즈 IP의 어드레스를 저장하는 동작을 포함할 수 있다.
본 게시물의 다양한 실시 예들에 따르면, I2C(Inter Integrated Circuit) 통신을 지원하는 이퓨즈의 동작 방법은, 제1 사이클에서 시리얼 데이터 라인을 통해 데이터 읽기 조건을 획득하는 동작, 제2 사이클에서 상기 시리얼 데이터 라인을 통해 이퓨즈 IP의 어드레스를 획득하는 동작, 및 제3 사이클에서 상기 시리얼 데이터 라인을 통해 상기 이퓨즈 IP의 어드레스에 기록된 데이터를 상기 I2C 마스터로 전송하는 동작을 포함하며, 상기 이퓨즈 IP의 어드레스에 기록된 데이터는 상기 데이터 읽기 조건에 기반하여 획득될 수 있다.
본 게시물의 일 실시 예에 따르면, 상기 데이터 읽기 조건을 획득하는 동작은, 상기 제1 사이클에서 상기 시리얼 데이터 라인을 통해, 칩 어드레스, R/W 비트, 커맨드 레지스터 어드레스, 및 상기 데이터 읽기 조건을 수신하는 동작, 및 레지스터 블록의 상기 커맨드 레지스터 어드레스에 상기 데이터 읽기 조건을 저장하는 동작을 포함하며, 상기 R/W 비트는, 해당 사이클에서 쓰기 동작 및 읽기 동작 중 어느 동작이 수행될지 나타내는 비트이고, 상기 데이터 읽기 조건은, 상기 이퓨즈 IP의 어드레스에 상기 획득된 데이터를 읽는 동안에 적용될 퓨징 전류 값, 읽기 모드 선택 여부, 또는 초기 이퓨즈의 저항 값의 마진 체크 여부 중 적어도 하나를 포함할 수 있다.
본 게시물의 일 실시 예에 따르면, 상기 이퓨즈 IP의 어드레스를 획득하는 동작은, 상기 제2 사이클에서 상기 시리얼 데이터 라인을 통해, 상기 칩 어드레스, 상기 R/W 비트, 및 상기 이퓨즈 IP의 어드레스를 수신하는 동작을 포함할 수 있다.
본 게시물의 일 실시 예에 따르면, 상기 이퓨즈 IP의 어드레스에 기록된 데이터를 상기 I2C 마스터로 전송하는 동작은, 상기 제3 사이클에서 상기 시리얼 데이터 라인을 통해, 상기 칩 어드레스, 및 상기 R/W 비트를 수신하는 동작, 및 상기 시리얼 데이터 라인을 통해, 상기 이퓨즈 IP의 어드레스에 기록된 데이터를 상기 I2C 마스터로 전송하는 동작을 포함하며, 상기 제3 사이클에서 수신된 상기 R/W 비트는, 상기 제3 사이클에서 읽기 동작이 수행됨을 나타낼 수 있다.
본 게시물의 일 실시 예에 따르면, 상기 시리얼 데이터 라인을 통해, 상기 이퓨즈 IP의 어드레스에 기록된 데이터를 상기 I2C 마스터로 전송한 후, 데이터 읽기 동작이 완료되었음을 나타내는 ack 신호를 마스터가 전송하는 동작을 더 포함할 수 있다.
본 게시물의 다양한 실시 예들에 따르면, I2C 통신을 통해 이퓨즈 IP에 대한 데이터 쓰기/읽기 기능을 수행하는 제어 회로를 포함하는 이퓨즈를 구현하여, 실리콘 검증을 완료한 상태로 고객에 제공함으로써, 고객 측에서 이퓨즈 IP를 이용하여 제품을 개발하는 과정에서 발생될 수 있는 문제를 최소화하면서, 고객의 제품 설계 기간을 단축시키고, 설계 유연성을 향상시킬 수 있는 이점이 있다. 또한, 본 게시물의 다양한 실시 예들에 따른 이퓨즈는, I2C 통신을 지원함으로써, I2C 통신 인터페이스를 지원하는 모든 환경에서 사용될 수 있다.
도 1은 본 게시물의 다양한 실시 예들에 따라 I2C 통신을 지원하는 이퓨즈(eFuse) 방식의 오티피 메모리(one time programmable memory)의 구조를 도시한다.
도 2는 본 게시물의 다양한 실시 예들에 따른 I2C 통신을 지원하는 이퓨즈 IP의 상세한 구조를 도시한다.
도 3은 본 게시물의 다양한 실시 예들에 따른 I2C 통신을 지원하는 이퓨즈 IP가 적용된 고객 설계 회로 구조를 도시한다.
도 4는 본 게시물의 다양한 실시 예들에 따른 I2C 마스터와 eFuse_I2C IP 간의 데이터 쓰기 동작을 수행하는 흐름도이다.
도 5는 본 게시물의 다양한 실시 예들에 따른 I2C 마스터와 eFuse_I2C IP에서 데이터 쓰기 동작을 수행하는 동안의 신호 구조에 대한 예시도이다.
도 6a는 본 게시물의 다양한 실시 예들에 따른 I2C 마스터에서 eFuse_I2C IP에 데이터를 쓰기 위한 동작을 수행하는 흐름도이다.
도 6b는 본 게시물의 다양한 실시 예들에 따른 eFuse_I2C IP에서 데이터를 쓰기 위한 동작을 수행하는 흐름도이다.
도 7은 본 게시물의 다양한 실시 예들에 따른 I2C 마스터와 eFuse_I2C IP 간의 데이터 읽기 동작을 수행하는 흐름도이다.
도 8은 본 게시물의 다양한 실시 예들에 따른 II2C 마스터와 eFuse_I2C IP에서 데이터 읽기 동작을 수행하는 동안의 신호 구조를 도시한다.
도9a는 본 게시물의 다양한 실시 예들에 따른 I2C 마스터에서 eFuse_I2C IP에 데이터를 읽기 위한 동작을 수행하는 흐름도이다.
도 9b는 본 게시물의 다양한 실시 예들에 따른 eFuse_I2C IP에서 데이터를 읽기 위한 동작을 수행하는 흐름도이다.
도 10 내지 12는 본 게시물의 다양한 실시 예들에 따른 I2C 통신을 지원하는 이퓨즈 IP에서 1비트 데이터에 대한 초기 읽기, 쓰기 및 읽기 동작에 대한 시뮬레이션 결과를 도시한다.
본 게시물의 이점 및 특징, 그리고 그것들을 달성하는 장치 및 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 게시물은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시 예들은 본 게시물의 개시가 완전하도록 하며, 본 게시물이 속하는 기술분야에서 통상의 지식을 가진 자에게 게시물의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 게시물은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 또는 유사한 구성 요소에 대해서는, 동일 또는 유사한 참조 부호가 사용될 수 있다.
하나의 구성 요소가 다른 구성 요소와 "연결된(connected to)" 또는 "커플링된(coupled to)" 이라고 지칭되는 것은, 다른 구성 요소와 직접 연결 또는 커플링된 경우 또는 중간에 다른 구성 요소를 개재한 경우를 모두 포함한다. 반면, 하나의 구성 요소가 다른 구성 요소와 "직접 연결된(directly connected to)" 또는 "직접 커플링된(directly coupled to)"으로 지칭되는 것은 중간에 다른 구성 요소를 개재하지 않은 것을 나타낸다. "및/또는"은 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다.
본 명세서에서 사용된 용어는 실시 예들을 설명하기 위한 것이며 본 게시물을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
비록 제 1, 제 2 등이 다양한 구성 요소들을 서술하기 위해서 사용되나, 이들 구성 요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성 요소를 다른 구성 요소와 구별하기 위하여 사용하는 것이다.
따라서, 이하에서 언급되는 제 1 구성 요소는 본 게시물의 기술적 사상 내에서 제2 구성 요소 일 수도 있음은 물론이다. 다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 게시물이 속하는 기술 분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
본 실시 예에서 사용되는 '부' 또는 '모듈'이라는 용어는 소프트웨어 또는 eFPGA또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '부' 또는 '모듈'은 어떤 역할들을 수행한다. 그렇지만 '부' 또는 '모듈'은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '부' 또는 '모듈'은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '부' 또는 '모듈'은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성 요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함할 수 있다. 구성요소들과 '부' 또는 '모듈'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '부' 또는 '모듈'들로 결합되거나 추가적인 구성요소들과 '부' 또는 '모듈'들로 더 분리될 수 있다.
본 게시물의 몇몇 실시 예들과 관련하여 설명되는 방법 또는 알고리즘의 단계는 프로세서에 의해 실행되는 하드웨어, 소프트웨어 모듈, 또는 그 2 개의 결합으로 직접 구현될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드 디스크, 착탈형 디스크, CD-ROM, 또는 당업계에 알려진 임의의 다른 형태의 기록 매체에 상주할 수도 있다. 예시적인 기록 매체는 프로세서에 커플링되며, 그 프로세서는 기록 매체로부터 정보를 판독할 수 있고 저장 매체에 정보를 기입할 수 있다. 다른 방법으로, 기록 매체는 프로세서와 일체형일 수도 있다. 프로세서 및 기록 매체는 주문형 집적회로(ASIC) 내에 상주할 수도 있다.
도 1은 본 게시물의 다양한 실시 예들에 따라 I2C 통신을 지원하는 이퓨즈(eFuse) 방식의 오티피 메모리(one time programmable memory)의 구조를 도시한다. 이하 실시 예들에서, I2C 통신을 지원하는 이퓨즈(eFuse) 방식의 오티피 메모리는 eFuse_I2C IP(intellectual property)로 지칭될 수 있다. 이하에서 도 1의 적어도 하나의 구성 요소는 도 2를 참조하여 상세히 설명할 것이다. 도 2는 본 게시물의 다양한 실시 예들에 따른 I2C 통신을 지원하는 이퓨즈 IP의 상세한 구조를 도시한다.
도 1을 참조하면, eFuse_I2C IP(100)는, I2C 슬레이브(110), eFuse IP(120)를 포함할 수 있다.
다양한 실시 예들에 따르면, I2C 슬레이브(110)는 I2C 통신을 통해 제어 데이터를 수신하고, 수신한 제어 데이터에 기초하여 eFuse IP(120)에 데이터의 쓰기/읽기(write/read)를 수행할 수 있는 제어 회로일 수 있다. I2C 통신은 표준화된 시리얼 인터페이스(serial interface)로서, 시리얼 데이터(serial data, SDA) 신호, 및 시리얼 클럭(serial clock, SCL)을 기반으로, 칩들 간에 데이터를 송수신하는 통신 규약이다. I2C 통신은, 통신의 시작과 끝, 및 데이터의 송수신을 제어하여 통신을 주도하는 마스터 칩과, 마스터 칩의 통제를 받는 복수의 슬레이브 칩 간의 1:n으로 수행될 수 있다. 본 게시물의 실시 예에 따르면, I2C 슬레이브(110)는 I2C 통신을 통해 마스터 칩(예: AP(Application Processor), 또는 MCU(micro controller unit))의 통제를 받는 슬레이브 칩일 수 있다.
다양한 실시 예들에 따르면, I2C 슬레이브(110)는 시리얼 클럭(SCL) 신호, 및 시리얼 데이터(SDA) 신호를 기반으로, eFuse IP(120)의 특정 주소에 데이터를 쓰거나, eFuse IP(120)의 특정 주소에 쓰인(기록된, 또는 프로그래밍된) 데이터를 읽을 수 있다.
다양한 실시 예들에 따르면, I2C 슬레이브(110)는 도 2에 도시된 바와 같이, I2C 슬레이브 인터페이스(I2C slave interface)(210), 레지스터 블록(register block)(220), 이퓨즈 제어부(eFuse Control)(230), 및 OSC 클럭 제어부(OSC CLK Control)(240)를 포함할 수 있다.
일 실시 예에 따르면, I2C 슬레이브 인터페이스 (210)는, I2C 마스터(I2C master)(미도시)(예: AP, 또는 MCU)와의 I2C 통신을 위한 로직으로 구성될 수 있다.
일 실시 예에 따르면, 레지스터 블록(220)은, I2C 슬레이브 인터페이스(210)를 통해 I2C 마스터로부터 제공되는 어드레스, eFuse IP(120)에 대한 쓰기 조건, eFuse IP(120)에 대한 읽기 조건, 및/또는 eFuse IP(120)에 프로그래밍될(기록될) 데이터를 획득하여 저장할 수 있다. 레지스터 블록(220)은, 예를 들어, 커맨드 레지스터(command register), 데이터 레지스터(data register), 또는 어드레스 레지스터(address register)를 포함할 수 있다. 일 실시 예에 따르면, 레지스터 블록(220)은 I2C 마스터로부터 제공되는 eFuse IP(120)의 어드레스를, 어드레스 레지스터에 저장하고, I2C 마스터로부터 제공되는 eFuse IP(120)에 대한 쓰기 조건, 및/또는 eFuse IP(120)에 대한 읽기 조건을 커맨드 레지스터에 저장할 수 있다. 레지스터 블록(220)은 I2C 마스터로부터 제공되는 데이터, 즉, eFuse IP(120)에 프로그래밍될(기록될) 데이터를 데이터 레지스터에 저장할 수 있다.
일 실시 예에 따르면, 이퓨즈 제어부(230)는 eFuse IP(120)에 대한 쓰기 동작, 및/또는 읽기 동작을 수행하기 위한 제어 신호를 생성, 및 처리할 수 있다. 이퓨즈 제어부(230)는 레지스터 블록(220)에 저장된 eFuse IP(120)의 어드레스, 데이터, 및/또는 조건에 따라 eFuse IP(120)에 대한 데이터 쓰기 또는 읽기 동작을 수행할 수 있다. 예를 들어, 이퓨즈 제어부(230)는 레지스터 블록(220)에서, eFuse IP(120)에 대한 쓰기 조건, eFuse IP(120)의 어드레스, 및 eFuse IP(120)에 쓰여질(기록될) 데이터를 획득하고, 이를 기반으로 eFuse IP(120)에 데이터를 쓰기 위한 제어 신호를 생성하여 eFuse IP(120)에 전달할 수 있다. 다른 예로, 이퓨즈 제어부(230)는 레지스터 블록(220)에서, eFuse IP(120)에 대한 읽기 조건, 및 eFuse IP(120)의 어드레스를 획득하고, 이를 기반으로 eFuse IP(120)에 쓰인 데이터를 읽기 위한 제어 신호를 생성하여 eFuse IP(120)에 전달할 수 있다.
일 실시 예에 따르면, 이퓨즈 제어부(230)는 전력이 차단되었다가 다시 공급되는 경우, 이퓨즈 IP(120)의 모든 어드레스의 값을 읽어 들여 레지스터 블록(220)에 저장할 수 있다. 레지스터 블록(Register block, 220)에 저장된 값들은 출력(REG_DOUT)을 통해 eFuse_I2C IP(100) 외부로 출력되어 고객 설계 회로의 적어도 하나의 구성 요소의 입력 신호(또는 제어 신호)로 제공할 수 있다.
일 실시 예에 따르면, OSC 클럭 제어부(240)는 이퓨즈 제어부(230)로의 클럭 인가를 제어할 수 있다. 예를 들어, OSC 클럭 제어부(240)는 이퓨즈 제어부(230)의 동작 시에만 이퓨즈 제어부(230)로 클럭을 제공하도록 할 수 있다. 예컨대, OSC 클럭 제어부(240)는 eFuse IP(120)에 대한 데이터 쓰기 또는 읽기 동작이 수행되는 동안에만 이퓨즈 제어부(230)로 클럭 신호를 인가할 수 있다.
다양한 실시 예들에 따르면, eFuse IP(120)는 1비트 단위의 데이터에 대한 쓰기/읽기(write/read)가 가능한 이퓨즈일 수 있다. 일 실시 예에 따르면, eFuse IP(120)는, 이퓨즈 제어부(230)로부터 제공되는 제어 신호에 따라 eFuse IP(120)의 특정 IP에 데이터를 쓰는 동작, 또는 특정 IP에 쓰여진 데이터를 읽는 동작을 수행할 수 있다. 일 실시 예에 따르면, eFuse IP(120)는, 도 2에 도시된 바와 같이, 128R X 1C 구조의 128bit eFuse 메모리일 수 있다.
다양한 실시 예들에 따르면, eFuse_I2C IP(100)는 초기 설정(initial setting)을 위한 리셋 신호를 제공받기 위한 리셋(RESETN) 핀(PIN), I2C 통신을 위해 이용되는 시리얼 클럭 신호를 제공받기 위한 시리얼 클럭(SCL) 핀, I2C 마스터로부터 입력 데이터를 제공받기 위한 시리얼 데이터 입력(SDAI) 핀, I2C 마스터로 데이터를 제공하기 위한 시리얼 데이터 출력(SDAO) 핀, I2C 마스터로 데이터 및/또는 응답(acknowledgement, 줄여서 ack) 신호를 제공하기 위해 양방향 I/O에 대한 제어 신호를 출력하는 시리얼 데이터 출력 인에이블(SDAOEN) 핀, 이퓨즈 제어부(230)의 동작에 이용되는 클럭 신호를 제공받기 위한 클럭(CLK) 핀, 및 eFuse IP(120)에 프로그래밍된 데이터를 고객 설계 회로 측으로 출력하기 위한 출력(REG_DOUT) 핀을 포함할 수 있다. 여기서 출력 핀을 통해 고객 설계 회로 측으로 전달되는 eFuse IP(120)에 프로그래밍된 데이터는 제어 신호로 사용될 수 있다. 일 실시 예에 따라, 출력(REG_DOUT) 핀의 개수는 eFuse IP(120) 구조의 행 개수와 동일할 수 있다. 예를 들면 eFuse IP(120)가 128R X 1C 구조이면 출력 핀의 개수는 128개일 수 있다.
상술한 바와 같은 eFuse_I2C IP(100)에서 외부 칩과 I2C 통신을 하기 위해서는, 오픈 드레인 양방향 I/O(open drain bidirectional Input/Output)를 통해 시리얼 클럭(SCL) 및 시리얼 데이터(SDA) 관련 신호를 송수신 해야 할 것이다. 일 실시 예에 따르면, eFuse_I2C IP(100)를 칩으로 구현할 시, 외부에 해당 핀에 대한 풀업(pull up) 저항이 적용될 수 있다. 일 실시 예에 따르면, eFuse_I2C IP(100)의 I2C 슬레이브(110)와 eFuse IP(120)는 서로 다른 전원 공급 단자를 통해 전원을 공급받을 수 있다. 예를 들어, I2C 슬레이브(110)는 VDD_I2C를 통해 전원을 공급받고, eFuse IP(120)는 VDD_EF를 통해 전원을 공급받을 수 있다. 일 실시 예에 따르면, eFuse_I2C IP(100)의 접지는 외부에서 공통 접지로 연결될 수 있다.
도 3은 본 게시물의 다양한 실시 예들에 따른 I2C 통신을 지원하는 이퓨즈 IP가 적용된 고객 설계 회로 구조를 도시한다.
도 3을 참조하면, eFuse_I2C IP(100)를 포함하는 고객 설계 회로(300)는, 제1 오픈 드레인 I/O(301), 및 제2 오픈 드레인 I/O(303)를 포함할 수 있다.
다양한 실시 예들에 따르면, 제1 오픈 드레인 I/O(301)는 I2C 마스터로부터 제공되는 시리얼 클럭 신호를 eFuse-I2C IP(100)의 시리얼 클럭(SCL) 핀으로 전달할 수 있다. 일 실시 예에 따르면, 제1 오픈 드레인 I/O(301)와 연결된 외부 시리얼 클럭 신호 라인에는 제1 풀업 저항(RP1)이 연결될 수 있다. 이에 따라, eFuse-I2C IP(100)의 시리얼 클럭(SCL) 핀은 제1 오픈 드레인 I/O(301)를 통해, 제1 풀업 저항(RP1)과 함께 외부 시리얼 클럭 신호 라인에 연결될 수 있다.
다양한 실시 예들에 따르면, 제2 오픈 드레인 I/O(303)는 I2C 마스터로부터 제공되는 데이터를 eFuse-I2C IP(100)의 시리얼 데이터 입력(SDAI) 핀으로 전달하고, 시리얼 데이터 출력(SDAO) 핀으로부터 출력되는 데이터를 I2C 마스터로 전달할 수 있다. 일 실시 예에 따르면, 제2 오픈 드레인 I/O(303)와 연결된 외부 시리얼 데이터 신호 라인에는 제2 풀업 저항(RP2)이 연결될 수 있다. 이에 따라, eFuse-I2C IP(100)의 시리얼 데이터 입력(SDAI) 핀, 및 시리얼 데이터 출력(SDAO) 핀은 제2 오픈 드레인 I/O(303)를 통해, 제2 풀업 저항(RP2)과 함께 외부 시리얼 데이터 라인에 연결될 수 있다.
일 실시 예에 따르면, 제2 오픈 드레인 I/O(303)는 양방향성(bidirectional) I/O로, eFuse-I2C IP(100)의 시리얼 데이터 출력 인에이블(SDAOEN) 핀(pin)으로부터의 출력 제어 신호에 따라 출력 경로(output path)를 개폐할 수 있다. 예를 들어, 제2 오픈 드레인 I/O(303)는 eFuse-I2C IP(100)의 시리얼 데이터 출력 인에이블(SDAOEN) 핀으로부터, 출력에 대한 인에이블 신호가 수신되는 동안에 시리얼 데이터 출력(SDAO) 핀과 외부 시리얼 데이터 라인을 연결하여, 시리얼 데이터 출력(SDAO) 핀으로부터 출력되는 데이터 또는 ack 신호를 I2C 마스터로 전달할 수 있다. 다른 예로, 제2 오픈 드레인 I/O(303)는 eFuse-I2C IP(100)의 시리얼 데이터 출력 인에이블(SDAOEN) 핀으로부터, 출력에 대한 디스에이블 신호가 수신되는 동안에 시리얼 데이터 입력(SDAI) 핀과 외부 시리얼 데이터 라인을 연결하여, 외부 시리얼 데이터(SDA) 라인을 통해 제공되는 데이터를 시리얼 데이터 입력(SDAI) 핀으로 제공할 수 있다.
다양한 실시 예들에 따르면, eFuse-I2C IP(100)는 고객 설계 회로(300) 내 다른 회로들과 리셋 신호, 및 클럭 신호를 공유할 수 있다. 일 실시 예에 따르면, 외부 리셋 신호 라인으로부터 고객 설계 회로(300)에 입력되는 리셋 신호는, 고객 설계 회로(300) 내 eFuse_I2C IP(100), 아날로그 블럭(analog block, 310), 고객 로직(customer logic. 320), 및 고객/파운드리 IP(customer/foundry IP. 330)에 제공될 수 있다. 일 실시 예에 따르면, eFuse-I2C IP(100)는 아날로그 블럭의 PLL/OSC로부터 클럭 신호를 제공받을 수 있다.
일 실시 예에 따라, 도 3의 고객 설계 회로(300)는 PMIC(power management integrated circuit) 칩(chip) 또는 코어(core)일 수 있다. 이때, eFuse_I2C IP(100)는 외부로부터 I2C 통신을 이용하여 PMIC가 구동하기에 필요한 파라미터들을 eFuse_I2C IP(100)에 포함되어 있는 이퓨즈 방식의 오티피 메모리, 즉 eFuse IP(120)에 저장하고, 출력(REG_DOUT)을 통해 eFuse IP(120)에 저장된 파라미터 값들을 출력하여 PMIC 칩 또는 코어 내의 다른 로직 또는 IP가 사용하도록 할 수 있다.
도 3에 도시된 고객 설계 회로(300) 구조는 예시일 뿐, 본 게시물의 다양한 실시 예들은 이에 한정되지 않을 것이다.
상술한 바와 같이, 고객 설계 회로(300)에 본 게시물의 다양한 실시 예들에 따른 eFuse-I2C IP(100)를 이용함으로써, 시리얼 클럭 및 시리얼 데이터에 대응되는 2개의 핀(PIN) 만을 이용하여, eFuse IP(120)에 대한 쓰기/읽기 동작(write/read operation)을 수행할 수 있다. 이에 따라, 고객 설계 회로(300)의 칩에 필요한 핀 수를 줄일 수 있으며, 설계 복잡도를 감소시키고, 제품 개발에 필요한 시간을 절약할 수 있는 효과를 얻을 수 있다.
본 게시물의 다양한 실시 예들에 따르면, eFuse_I2C IP(100)는 8비트 기반의 I2C 통신 방식을 기반으로, eFuse IP(120)에 쓰기/읽기 동작을 수행할 수 있다. 일 실시 예에 따르면, eFuse_I2C IP(100)와 I2C 마스터는 8비트의 데이터를 송수신할 때마다 ack 신호를 송수신하여, I2C 슬레이브인 eFuse_I2C IP(100)와 I2C 마스터 사이의 통신 이상 여부를 서로 체크할 수 있다.
본 게시물의 다양한 실시 예들에 따르면, eFuse_I2C IP(100) 내 eFuse IP(120)에 1비트 데이터를 쓰거나 읽는 동작은, 세번의 사이클에 걸쳐 수행될 수 있다. 각 사이클은 시리얼 클럭(SCL) 신호에 기반하여 구분될 수 있으며, 하나의 사이클 동안에는 8비트의 데이터를 송수신하고, 1비트의 ack 신호를 송수신하는 동작이 최대 3번 수행될 수 있다.
일 실시 예에 따르면, I2C 마스터는 I2C 통신을 통해 eFuse_I2C IP(100)의 eFuse IP(120)에 1비트 데이터를 쓰기 위해, 세 번의 사이클(cycle) 동안에 슬레이브 칩 어드레스(slave chip address)를 3회 호출(call)하고, 각 사이클에서 데이터 쓰기 조건, eFuse IP(120)의 어드레스, 및 eFuse IP(120)에 프로그래밍할 데이터를 전달할 수 있다. 예를 들어, I2C 마스터는 제1 사이클에서 시리얼 데이터(SDA) 라인을 통해 슬레이브 칩의 어드레스와 함께 데이터 쓰기 조건을 설정하는 데이터를 eFuse_I2C IP(100)로 전송하고, 제2 사이클 동안에는 시리얼 데이터(SDA) 라인을 통해 슬레이브 칩의 어드레스와 함께, eFuse IP(120)에 프로그래밍하고자 하는 데이터를 eFuse_I2C IP(100)로 전송할 수 있다. I2C 마스터는 제3 사이클에서 시리얼 데이터(SDA) 라인을 통해 슬레이브 칩의 어드레스와 함께 eFuse IP(120)의 어드레스를 지정하기 위한 데이터를 eFuse_I2C IP(100)로 전송할 수 있다. 슬레이브 칩의 어드레스는, eFuse_I2C IP(100)의 어드레스, eFuse_I2C IP(100)의 I2C 슬레이브(110)의 어드레스, 또는 eFuse_I2C IP(100)를 포함하는 고객 설계 회로(300)의 어드레스일 수 있다. 이에 따라, eFuse_I2C IP(100)는 세 개의 사이클 동안에 데이터 쓰기 조건, 프로그래밍될 데이터, 및 지정된 eFuse IP(120)의 어드레스를 획득함으로써, 데이터 쓰기 조건 하에서 지정된 eFuse IP(120)의 어드레스에, 획득된 프로그래밍될 데이터를 기록할 수 있다.
일 실시 예에 따르면, I2C 마스터는 I2C 통신을 통해 eFuse_I2C IP(100)의 eFuse IP(120)에 1비트 데이터를 읽기 위해, 세 번의 사이클(cycle) 동안에 슬레이브 칩 어드레스(slave chip address)를 3회 호출(call)하고, 제1 및 제2 사이클에서는 데이터 읽기 조건, 및 eFuse IP(120)의 어드레스를 전달하고, 제3 사이클에서는 지정된 eFuse IP(120)의 어드레스의 데이터를 획득할 수 있다. 예를 들어, I2C 마스터는 제1 사이클에서 시리얼 데이터(SDA) 라인을 통해 슬레이브 칩의 어드레스와 함께 데이터 읽기 조건을 설정하기 위한 데이터를 eFuse_I2C IP(100)로 전송하고, 제2 사이클 동안에는 시리얼 데이터(SDA) 라인을 통해 슬레이브 칩의 어드레스와 함께 eFuse IP(120)의 어드레스를 지정하기 위한 데이터를 eFuse_I2C IP(100)로 전송할 수 있다. I2C 마스터는 제3 사이클에서 시리얼 데이터(SDA) 라인을 통해, 지정된 eFuse IP(120)의 어드레스의 데이터를 eFuse_I2C IP(100)로부터 수신할 수 있다. 슬레이브 칩의 어드레스는, eFuse_I2C IP(100)의 어드레스, eFuse_I2C IP(100)의 I2C 슬레이브(110)의 어드레스, 또는 eFuse_I2C IP(100)를 포함하는 고객 설계 회로(300)의 어드레스일 수 있다. 이에 따라, eFuse_I2C IP(100)는 첫 번째 및 두번째 사이클 동안에 데이터 읽기 조건, 및 지정된 eFuse IP(120)의 어드레스에 대한 정보를 획득하고, 세 번째 사이클 동안에는 지정된 eFuse IP(120)의 어드레스에 기록된 데이터를 시리얼 데이터(SDA) 라인을 통해 I2C 마스터로 전송할 수 있다.
이하 도 4, 도 5, 도 6a, 및 도 6b에서는 eFuse_I2C IP(100)의 데이터 쓰기 동작을 보다 상세히 설명하고, 도 7, 도 8, 도 9a 및 도 9b에서는 eFuse_I2C IP(100)의 데이터 쓰기 동작을 보다 상세히 설명할 것이다.
도 4는 본 게시물의 다양한 실시 예들에 따른 I2C 마스터와 eFuse_I2C IP 간의 데이터 쓰기 동작을 수행하는 흐름도이다. 도 4의 적어도 일부 동작은, 도 5를 참조하여 설명할 것이다. 도 5는 본 게시물의 다양한 실시 예들에 따른 I2C 마스터와 eFuse_I2C IP에서 데이터 쓰기 동작을 수행하는 동안의 신호 구조에 대한 예시도이다. 여기서, eFuse_I2C IP(100)는 도 1 내지 도 3의 eFuse_I2C IP(100)일 수 있고, I2C 마스터(400)는 I2C 통신의 시작과 끝, 및 데이터의 송수신을 제어하여 eFuse_I2C IP(100)와의 I2C 통신을 주도하는 마스터 칩일 수 있다. I2C 마스터(400)는, 예를 들어, AP(Application Processor), 또는 MCU(micro controller unit)일 수 있다.
도 4를 참조하면, 동작 401에서, I2C 마스터(400)와 eFuse_I2C IP(100)는 제1 사이클 동안에 I2C 통신을 통해 eFuse_I2C IP(100)에 데이터 쓰기 조건을 설정할 수 있다.
일 실시 예에 따르면, I2C 마스터(400)는 도 5에 도시된 바와 같이, 제1 사이클(510) 동안에 시리얼 데이터(SDA) 라인을 통해 슬레이브 칩의 어드레스와 R/W비트(501), 커맨드 레지스터 어드레스(502), 및 데이터 쓰기 조건(503)을 전송할 수 있다. 슬레이브 칩의 어드레스는, I2C 마스터(400)에 복수 개의 I2C 슬레이브가 연결되어 있는 경우에, I2C 마스터(400)가 제어할 슬레이브 칩을 알려주기 위해 사용되는 것으로, eFuse_I2C IP(100)의 어드레스, eFuse_I2C IP(100)의 I2C 슬레이브(110)의 어드레스, 또는 eFuse_I2C IP(100)를 포함하는 고객 설계 회로(300)의 어드레스일 수 있다. R/W비트는, I2C 마스터(400)의 입장에서 해당 사이클이 쓰기 동작인지, 읽기 동작인지를 나타낼 수 있다. 일 실시 예에 따라, R/W 비트는 해당 사이클이 쓰기 동작인 경우, 1'b0으로 설정될 수 있다. 커맨드 레지스터 어드레스는, eFuse_I2C IP(100)의 레지스터 블록(220)에 포함된 레지스터의 어드레스로, 데이터 쓰기 조건(503)이 저장될 어드레스를 나타낼 수 있다. 데이터 쓰기 조건(503)은, 도 5에 도시된 바와 같이, eFuse IP(120) 프로그래밍 시에 이용될 퓨징 전류 값(EFUSE_WSEL[3:0]), 읽기 모드 선택 값(EFUS_RD), 또는 초기 eFuse cell의 저항 값의 마진 체크 값(margin check)(EF_RD[1:0]) 중 적어도 하나를 포함할 수 있다. 읽기 모드 선택 값은, 데이터 쓰기 모드에 대응되는 0으로 설정될 수 있다. 해당 사이클에서 전송되는 데이터 비트의 수가 8인 반면 상술한 데이터 쓰기 조건(503)을 위한 비트 수가 8비트보다 적은 경우에 남은 비트는 추후에 필요한 경우 사용될 수 있는 예비 비트(reserved)로 설정될 수 있다.
일 실시 예에 따르면, eFuse_I2C IP(100)는 제1 사이클(510) 동안에 시리얼 데이터 입력(SDAI) 핀을 통해 I2C 마스터(400)로부터 전송된 슬레이브 칩의 어드레스와 R/W비트(501), 커맨드 레지스터 어드레스(502), 및 데이터 쓰기 조건(503)을 수신할 수 있다. eFuse_I2C IP(100)는 8비트의 데이터가 수신될 때마다, 8비트 데이터가 정상적으로 수신되었음을 나타내는 ack 신호를 I2C 마스터(400)로 전송할 수 있다. ack 신호는 8비트 데이터가 정상적으로 수신되었음을 나타내기 위해 1'b0으로 설정될 수 있다. eFuse_I2C IP(100)는 커맨드 레지스터 어드레스를 기반으로, 레지스터 블록(220)의 해당 어드레스에 데이터 쓰기 조건을 저장 및/또는 설정할 수 있다.
동작 403에서, I2C 마스터(400)와 eFuse_I2C IP(100)는 제2 사이클 동안에 I2C 통신을 통해 eFuse IP(120)에 프로그래밍할 데이터를 설정할 수 있다.
일 실시 예에 따르면, I2C 마스터(400)는 도 5에 도시된 바와 같이, 제2 사이클(520) 동안에 시리얼 데이터(SDA) 라인을 통해 슬레이브 칩의 어드레스와 R/W비트(511), 데이터 레지스터 어드레스(512), 및 데이터(513)를 전송할 수 있다. 슬레이브 칩의 어드레스 및 R/W비트(511)는, 동작 401에서 전송한 슬레이브 칩의 어드레스 및 R/W비트와 동일할 수 있다. 데이터 레지스터 어드레스(512)는, eFuse_I2C IP(100)의 레지스터 블록(220)에 포함된 레지스터의 어드레스로, 데이터가 저장될 어드레스를 나타낼 수 있다. 데이터(513)는 eFuse IP(120)에 프로그래밍할 데이터일 수 있다. eFuse IP(100)가 도 2에 도시된 128R X 1C 구조인 경우 각 어드레스 별로 1 비트의 데이터만 유효 함에 따라, 데이터(513) 내 8비트 중 제일 아래 비트(Data[0])만 유효할 수 있고, 나머지 비트들은 유효하지 않을 수 있다.
일 실시 예에 따르면, eFuse_I2C IP(100)는 제2 사이클(520) 동안에 시리얼 데이터 입력(SDAI) 핀을 통해 I2C 마스터(400)로부터 전송된 슬레이브 칩의 어드레스와 R/W비트(511), 데이터 레지스터 어드레스(512), 및 eFuse IP(120)에 프로그래밍할 데이터를 수신할 수 있다. eFuse_I2C IP(100)는 8비트의 데이터가 수신될 때마다, 8비트 데이터가 정상적으로 수신되었음을 나타내는 ack 신호를 I2C 마스터(400)로 전송할 수 있다. eFuse_I2C IP(100)는 데이터 레지스터 어드레스를 기반으로, 레지스터 블록(220)의 해당 어드레스에 eFuse IP(120)에 프로그래밍할 데이터를 저장 및/또는 설정할 수 있다.
동작 405에서, I2C 마스터(400)와 eFuse_I2C IP(100)는 제3 사이클 동안에 I2C 통신을 통해, 데이터가 프로그래밍될 eFuse IP(120)의 어드레스를 설정할 수 있다.
일 실시 예에 따르면, I2C 마스터(400)는 도 5에 도시된 바와 같이, 제3 사이클(530) 동안에 시리얼 데이터(SDA) 라인을 통해 슬레이브 칩의 어드레스와 R/W비트(521), 어드레스 레지스터 어드레스(522), 쓰기 모드 설정 비트(EFUSE_WR)(523), 및 이퓨즈 IP 어드레스(524)를 전송할 수 있다. 슬레이브 칩의 어드레스 및 R/W비트(521)는, 동작 401에서 전송한 슬레이브 칩의 어드레스 및 R/W비트와 동일할 수 있다. 어드레스 레지스터 어드레스(522)는, eFuse_I2C IP(100)의 레지스터 블록(220)에 포함된 레지스터의 어드레스로, 이후에 전송될 이퓨즈 IP 어드레스(524)가 저장될 어드레스를 나타낼 수 있다. 쓰기 모드 설정 비트(523)는, 1'b1로 설정될 수 있다. 이퓨즈 IP 어드레스(524)는, 데이터가 프로그래밍될(또는 기록될) eFuse IP(120)의 어드레스를 나타낼 수 있다.
일 실시 예에 따르면, eFuse_I2C IP(100)는 제3 사이클(530) 동안에 시리얼 데이터 입력(SDAI) 핀을 통해 I2C 마스터(400)로부터 전송된 슬레이브 칩의 어드레스와 R/W비트(521), 어드레스 레지스터 어드레스(522), 쓰기 모드 설정 비트(523), 및 이퓨즈 IP 어드레스(524)를 수신할 수 있다. eFuse_I2C IP(100)는 8비트의 데이터가 수신될 때마다, 8비트 데이터가 정상적으로 수신되었음을 나타내는 ack 신호를 I2C 마스터(400)로 전송할 수 있다. eFuse_I2C IP(100)는 어드레스 레지스터 어드레스를 기반으로, 레지스터 블록(220)의 해당 어드레스에 eFuse IP(120)의 어드레스를 저장 및/또는 설정할 수 있다.
일 실시 예에 따르면, eFuse_I2C IP(100)는 3개의 사이클(510, 520, 530) 동안에 데이터 쓰기 조건, eFuse IP(120)에 프로그래밍될 데이터, 및 eFuse IP(120)의 어드레스를 획득하고, 동작 407에서 데이터 쓰기 조건 하에서 eFuse IP(120)의 어드레스에 eFuse IP(120)에 데이터를 쓰는 동작을 수행하여, eFuse IP(120)의 1비트를 프로그래밍할 수 있다.
일 실시 예에 따르면, 멀티 비트 프로그래밍 시, 데이터 쓰기 조건(또는 프로그래밍 조건)이 변경되지 않는 경우, 데이터 쓰기 조건을 설정하는 사이클을 1번만 수행할 수도 있다. 예를 들어, 최초 1비트를 프로그래밍할 경우에만, 동작 401과 같은 데이터 쓰기 조건 설정 동작을 수행하고, 이후 비트들에 대한 프로그래밍 시에는 데이터 쓰기 조건 설정 동작을 생략하고, 제2 사이클 및 제3 사이클에 대한 동작만을 반복할 수 있다.
도 6a는 본 게시물의 다양한 실시 예들에 따른 I2C 마스터에서 eFuse_I2C IP에 데이터를 쓰기 위한 동작을 수행하는 흐름도이다. 여기서, I2C 마스터는 도 4의 I2C 마스터(400)이고, eFuse_I2C IP는 도 4의 eFuse_I2C IP(100)일 수 있다. 도 6a의 실시 예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다.
도 6a를 참조하면, I2C 마스터(400)는 동작 601에서, eFuse_I2C IP(100)의 eFuse_IP(120)에 n비트 데이터를 쓰기 위한 이벤트를 감지할 수 있다. n비트 데이터를 쓰기 위한 이벤트는, 사용자 입력, 및/또는 지정된 규칙에 기반하여 감지될 수 있다.
I2C 마스터(400)는 동작 603에서, 제1 사이클 동안에 I2C 통신을 통해 eFuse_I2C IP(100)에 데이터 쓰기 조건을 전송할 수 있다. 일 실시 예에 따르면, I2C 마스터(400)는 제1 사이클 동안에 시리얼 데이터(SDA) 라인을 통해 슬레이브 칩의 어드레스, R/W비트, 커맨드 레지스터 어드레스, 및 데이터 쓰기 조건을 전송할 수 있다. 슬레이브 칩의 어드레스, R/W 비트, 커맨드 레지스터 어드레스, 및/또는 데이터 쓰기 조건은, 도 4의 동작 401에서 설명한 바와 같이 구성될 수 있다.
I2C 마스터(400)는 동작 605에서, 제2 사이클 동안에 I2C 통신을 통해 eFuse IP(120)에 프로그래밍할 데이터를 전송할 수 있다. 일 실시 예에 따르면, I2C 마스터(400)는 제2 사이클 동안에 시리얼 데이터(SDA) 라인을 통해 슬레이브 칩의 어드레스, R/W비트, 데이터 레지스터 어드레스, 및 데이터를 전송할 수 있다. 슬레이브 칩의 어드레스, R/W비트, 데이터 레지스터 어드레스, 및/또는 데이터는 도 4의 동작 403에서 설명한 바와 같이 구성될 수 있다.
I2C 마스터(400)는 동작 607에서, 제3 사이클 동안에 I2C 통신을 통해, 데이터가 프로그래밍될 eFuse IP(120)의 어드레스를 전송할 수 있다. 일 실시 예에 따르면, I2C 마스터(400)는 제3 사이클 동안에 시리얼 데이터(SDA) 라인을 통해 슬레이브 칩의 어드레스, R/W비트, 어드레스 레지스터 어드레스, 쓰기 모드 설정 비트(EFUSE_WR), 및 레지스터 어드레스를 전송할 수 있다. 슬레이브 칩의 어드레스, R/W비트, 어드레스 레지스터 어드레스, 쓰기 모드 설정 비트(EFUSE_WR), 및 레지스터 어드레스 도 4의 동작 405에서 설명한 바와 같이 구성될 수 있다.
I2C 마스터(400)는 동작 609에서, n비트에 대한 데이터 쓰기 동작이 완료되었는지 여부를 결정할 수 있다. I2C 마스터(400)는 n비트에 대한 데이터 쓰기 동작이 완료되지 않은 경우, 동작 605로 되돌아가 eFuse IP(120)에 프로그래밍할 데이터를 전송하는 제2 사이클, 및 데이터가 프로그래밍될 eFuse IP(120)의 어드레스를 전송하는 제3 사이클을 반복 수행할 수 있다. 예를 들어, I2C 마스터(400)는 eFuse_I2C IP(100)의 eFuse_IP(120)에 n비트 데이터를 쓰는 동안 데이터 쓰기 조건을 변경할 필요가 없는 경우, 데이터 쓰기 조건을 전송하는 제1 사이클을 최초 1번만 수행하고, 이후부터는 생략할 수 있다.
도 6b는 본 게시물의 다양한 실시 예들에 따른 eFuse_I2C IP에서 데이터를 쓰기 위한 동작을 수행하는 흐름도이다. 여기서, I2C 마스터는 도 4의 I2C 마스터(400)이고, eFuse_I2C IP는 도 4의 eFuse_I2C IP(100)일 수 있다. 도 6b의 실시 예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다.
도 6b를 참조하면, 동작 651에서, eFuse_I2C IP(100)는 제1 사이클 동안에 I2C 통신을 통해 데이터 쓰기 조건을 수신할 수 있다. 일 실시 예에 따르면, eFuse_I2C IP(100)는 제1 사이클 동안에 시리얼 데이터 입력(SDAI) 핀을 통해 I2C 마스터(400)로부터 전송된 슬레이브 칩의 어드레스, R/W비트, 커맨드 레지스터 어드레스, 및 데이터 쓰기 조건을 수신할 수 있다. eFuse_I2C IP(100)는 커맨드 레지스터 어드레스를 기반으로, 레지스터 블록(220) 내 커맨드 레지스터에 데이터 쓰기 조건을 저장 및/또는 설정할 수 있다.
동작 653에서, eFuse_I2C IP(100)는 제2 사이클 동안에 I2C 통신을 통해 eFuse IP(120)에 프로그래밍할 데이터를 획득할 수 있다. 일 실시 예에 따르면, eFuse_I2C IP(100)는 제2 사이클 동안에 시리얼 데이터 입력(SDAI) 핀을 통해 I2C 마스터(400)로부터 전송된 슬레이브 칩의 어드레스, R/W비트, 데이터 레지스터 어드레스, 및 eFuse IP에 프로그래밍할 데이터를 수신할 수 있다. eFuse_I2C IP(100)는 데이터 레지스터 어드레스를 기반으로, 레지스터 블록(220) 내 데이터 레지스터에 eFuse IP(120)에 프로그래밍할 데이터를 저장 및/또는 설정할 수 있다.
동작 655에서, eFuse_I2C IP(100)는 제3 사이클 동안에 I2C 통신을 통해, 데이터가 프로그래밍될 eFuse IP(120)의 어드레스를 획득할 수 있다. 일 실시 예에 따르면, eFuse_I2C IP(100)는 제3 사이클 동안에 시리얼 데이터 입력(SDAI) 핀을 통해 I2C 마스터(400)로부터 전송된 슬레이브 칩의 어드레스, R/W비트, 어드레스 레지스터 어드레스, 쓰기 모드 설정 비트, 및 레지스터 어드레스를 수신할 수 있다. eFuse_I2C IP(100)는 어드레스 레지스터 어드레스를 기반으로, 레지스터 블록(220) 내 어드레스 레지스터에 eFuse IP(120)의 어드레스를 저장 및/또는 설정할 수 있다.
동작 657에서, eFuse_I2C IP(100)는 I2C 마스터(400)에 의해 지정된 어드레스에 I2C 마스터(400)로부터 수신된 데이터에 대한 쓰기 동작을 수행할 수 있다. 일 실시 예에 따르면, eFuse_I2C IP(100)는 동작 651에서 획득된 데이터 쓰기 조건에 따라 데이터를 쓰기 위한 환경을 제어(예: 퓨징 전류 값을 제어)하고, 동작 655에서 획득된 eFuse IP(120)의 어드레스에 동작 653에서 획득된 데이터를 쓰는 동작을 수행하여, eFuse IP(120)의 1비트를 프로그래밍할 수 있다.
eFuse_I2C IP(100)는 데이터 쓰기 동작을 수행한 후, 동작 659에서 슬레이브 칩의 어드레스가 재 수신되는지 여부를 결정할 수 있다. eFuse_I2C IP(100)는 슬레이브 칩의 어드레스가 재 수신되는 경우, 동작 653으로 되돌아가 이하 동작들을 재 수행할 수 있다. 예를 들어, eFuse_I2C IP(100)는 슬레이브 칩의 어드레스가 재 수신되는 경우, n 비트에 대한 데이터 쓰기 동작이 완료되지 않은 것으로 결정하고, 데이터 쓰기 동작이 수행되지 않은 다른 비트에 대한 데이터 쓰기 동작을 수행하기 위해 동작 653 이후를 재 수행할 수 있다. eFuse_I2C IP(100)는 슬레이브 칩의 어드레스가 재 수신되지 않는 경우, n 비트에 대한 데이터 쓰기 동작이 완료된 것으로 결정할 수 있다.
상술한 도 6a 및 도 6b에서는, eFuse_I2C IP(100)의 eFuse_IP(120)에 n비트 데이터를 쓰는 동안 데이터 쓰기 조건을 변경할 필요가 없는 경우를 가정하여, I2C 마스터(400)와 eFuse_I2C IP(100)가 데이터 쓰기 조건을 설정하는 동작을 최초 1번만 수행하는 방법에 대해 설명하였다. 그러나, eFuse_I2C IP(100)의 eFuse_IP(120)에 n비트 데이터를 쓰는 동안, n비트 각각에 대해 데이터 쓰기 조건을 변경해야 하는 경우에는, I2C 마스터(400)와 eFuse_I2C IP(100)가 매 비트 마다 데이터 쓰기 조건을 설정하는 동작을 수행해야 할 것이다.
도 7은 본 게시물의 다양한 실시 예들에 따른 I2C 마스터와 eFuse_I2C IP 간의 데이터 읽기 동작을 수행하는 흐름도이다. 도 7의 적어도 일부 동작은, 도 8을 참조하여 설명할 것이다. 도 7은 본 게시물의 다양한 실시 예들에 따른 I2C 마스터와 eFuse_I2C IP에서 데이터 읽기 동작을 수행하는 동안의 신호 구조에 대한 예시도이다. 여기서, eFuse_I2C IP(100)는 도 1 내지 도 3의 eFuse_I2C IP(100)일 수 있고, I2C 마스터(400)는 I2C 통신의 시작과 끝, 및 데이터의 송수신을 제어하여 eFuse_I2C IP(100)와의 I2C 통신을 주도하는 마스터 칩일 수 있다. I2C 마스터(400)는, 예를 들어, AP(Application Processor), 또는 MCU(micro controller unit)일 수 있다.
도 7을 참조하면, 동작 701에서, I2C 마스터(400)와 eFuse_I2C IP(100)는 제1 사이클 동안에 I2C 통신을 통해 eFuse_I2C IP(100)에 데이터 읽기 조건을 설정할 수 있다.
일 실시 예에 따르면, I2C 마스터(400)는 도 8에 도시된 바와 같이, 제1 사이클(810) 동안에 시리얼 데이터(SDA) 라인을 통해 슬레이브 칩의 어드레스와 R/W비트(801), 커맨드 레지스터 어드레스(802), 및 데이터 읽기 조건(803)을 전송할 수 있다. 슬레이브 칩의 어드레스는, eFuse_I2C IP(100)의 어드레스, eFuse_I2C IP(100)의 I2C 슬레이브(110)의 어드레스, 또는 eFuse_I2C IP(100)를 포함하는 고객 설계 회로(300)의 어드레스일 수 있다. R/W비트는, I2C 마스터(400)의 입장에서 해당 사이클이 쓰기 동작인지, 읽기 동작인지를 나타낼 수 있다. 제1 사이클(810)에서 R/W 비트는 쓰기 동작에 해당하는 1'b0으로 설정될 수 있다. 커맨드 레지스터 어드레스는, eFuse_I2C IP(100)의 레지스터 블록(220)에 포함된 레지스터의 어드레스로, 데이터 읽기 조건(803)이 저장될 어드레스를 나타낼 수 있다. 데이터 읽기 조건(803)은, 도 8에 도시된 바와 같이, eFuse IP(120)의 데이터를 읽기 위해 적용될 퓨징 전류 값(EFUSE_WSEL[3:0]), 읽기 모드 선택 값(EFUSE_RD), 또는 초기 eFuse cell의 저항 값의 마진 체크 값(margin check)(EF_RD[1:0]) 중 적어도 하나를 포함할 수 있다. 읽기 모드 선택 값은, 데이터 읽기 모드에 대응되는 1'b1로 설정될 수 있다. 해당 사이클에서 전송되는 데이터 비트의 수가 8인 반면 상술한 데이터 쓰기 조건(503)을 위한 비트 수가 8비트보다 적은 경우에 남은 비트는 추후에 필요한 경우 사용될 수 있는 예비 비트(reserved)로 설정될 수 있다.
일 실시 예에 따르면, I2C 마스터(400)는 데이터 읽기 모드 동안에는, eFuse IP(120)가 안정적으로 동작할 수 있도록 전류의 흐름을 차단할 수 있도록 데이터 읽기 조건을 설정할 수 있다. 일 실시 예에 따르면, I2C 마스터(400)는 데이터 읽기 모드에서 초기 퓨즈 셀의 저항 값, 또는 일정 시간이 경과한 뒤의 퓨즈 셀의 저항 값을 읽을 필요가 있는 경우, 저항 값의 마진 체크 값을 변경할 수 있다.
일 실시 예에 따르면, eFuse_I2C IP(100)는 제1 사이클(810) 동안에 시리얼 데이터 입력(SDAI) 핀을 통해 I2C 마스터(400)로부터 전송된 슬레이브 칩의 어드레스와 R/W비트(801), 커맨드 레지스터 어드레스(802), 및 데이터 읽기 조건(803)을 수신할 수 있다. eFuse_I2C IP(100)는 8비트의 데이터가 수신될 때마다, 8비트 데이터가 정상적으로 수신되었음을 나타내는 ack 신호를 I2C 마스터(400)로 전송할 수 있다. eFuse_I2C IP(100)는 커맨드 레지스터 어드레스를 기반으로, 레지스터 블록(220)의 해당 어드레스에 데이터 읽기 조건을 저장 및/또는 설정할 수 있다.
동작 703에서, I2C 마스터(400)와 eFuse_I2C IP(100)는 제2 사이클 동안에 I2C 통신을 통해 eFuse IP(120)에서 데이터를 읽기 위한 어드레스를 설정할 수 있다.
일 실시 예에 따르면, I2C 마스터(400)는 도 8에 도시된 바와 같이, 제2 사이클(820) 동안에 시리얼 데이터(SDA) 라인을 통해 슬레이브 칩의 어드레스와 R/W비트(811), 및 이퓨즈 IP 어드레스(812)를 전송할 수 있다. 슬레이브 칩의 어드레스 및 R/W비트(811)는, 동작 701에서 전송한 슬레이브 칩의 어드레스 및 R/W비트와 동일할 수 있다. 이퓨즈 IP 어드레스(812)는 데이터를 읽을 eFuse IP(120)의 어드레스일 수 있다.
일 실시 예에 따르면, eFuse_I2C IP(100)는 제2 사이클(820) 동안에 시리얼 데이터 입력(SDAI) 핀을 통해 I2C 마스터(400)로부터 전송된 슬레이브 칩의 어드레스와 R/W비트(811), 및 이퓨즈 IP 어드레스(812)를 수신할 수 있다. eFuse_I2C IP(100)는 8비트의 데이터가 수신될 때마다, 8비트 데이터가 정상적으로 수신되었음을 나타내는 ack 신호를 I2C 마스터(400)로 전송할 수 있다.
동작 705에서, I2C 마스터(400)와 eFuse_I2C IP(100)는 제3 사이클 동안에 I2C 통신을 통해 eFuse IP(120)의 지정된 어드레스의 데이터를 읽을 수 있다.
일 실시 예에 따르면, I2C 마스터(400)는 도 8에 도시된 바와 같이, 제3 사이클(830) 동안에 시리얼 데이터(SDA) 라인을 통해 슬레이브 칩의 어드레스(821), 및 R/W 비트(822)를 eFuse_I2C IP(100)로 전송한 후, eFuse IP(120)의 지정된 어드레스의 데이터(823)를 수신할 수 있다. 슬레이브 칩의 어드레스(821)는 동작 701에서 전송한 슬레이브 칩의 어드레스와 동일할 수 있다. R/W비트(822)는 해당 사이클에서 읽기 동작이 수행됨을 나타내기 위해, 1'b1으로 설정될 수 있다. I2C 마스터(400)는 시리얼 데이터(SDA) 라인을 통해 슬레이브 칩의 어드레스(821), 및 R/W 비트(822)에 대한 ack 신호를 수신한 후, eFuse IP(120)의 지정된 어드레스의 데이터(823)를 수신하고, 1'b1인 ack 신호(824)를 송신함으로써, 데이터 읽기 동작이 완료된 것을 감지할 수 있다.
일 실시 예에 따르면, eFuse_I2C IP(100)는 제2 사이클(820) 동안에 시리얼 데이터 입력(SDAI) 핀을 통해 슬레이브 칩의 어드레스(821), 및 R/W 비트(822)를 eFuse_I2C IP(100)로 수신한 후, 시리얼 데이터 입력(SDAO) 핀을 통해 eFuse IP(120)의 지정된 어드레스의 데이터(823)를 전송할 수 있다. eFuse_I2C IP(100)는 eFuse IP(120)의 지정된 어드레스의 데이터(823)를 전송한 후, 마스터가 1'b0이 아닌 1'b1의 ack 신호(824)를 전송함으로써, 데이터 읽기 동작이 완료되었음을 알릴 수 있다.
일 실시 예에 따르면, 멀티 비트에 대한 읽기 동작 수행 시, 데이터 읽기 조건이 변경되지 않는 경우, 데이터 읽기 조건을 설정하는 사이클을 1번만 수행할 수 있다. 예를 들어, 최초 1비트를 읽는 경우에만, 동작 701과 같은 데이터 읽기 조건 설정 동작을 수행하고, 이후 비트들에 대한 읽기 동작 시에는 데이터 읽기 조건 설정 동작을 생략하고, 제2 사이클 및 제3 사이클에 대한 동작만을 반복할 수 있다.
도9a는 본 게시물의 다양한 실시 예들에 따른 I2C 마스터에서 eFuse_I2C IP에 데이터를 읽기 위한 동작을 수행하는 흐름도이다. 여기서, I2C 마스터는 도 7의 I2C 마스터(400)이고, eFuse_I2C IP는 도 7의 eFuse_I2C IP(100)일 수 있다. 도 9a의 실시 예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다.
도 9a를 참조하면, I2C 마스터(400)는 동작 901에서, eFuse_I2C IP(100)의 eFuse_IP(120)에 n비트 데이터를 읽기 위한 이벤트를 감지할 수 있다. n비트 데이터를 읽기 위한 이벤트는, 사용자 입력, 및/또는 지정된 규칙에 기반하여 감지될 수 있다.
I2C 마스터(400)는 동작 903에서, 제1 사이클 동안에 I2C 통신을 통해 eFuse_I2C IP(100)에 데이터 읽기 조건을 전송할 수 있다. 일 실시 예에 따르면, I2C 마스터(400)는 제1 사이클 동안에 시리얼 데이터(SDA) 라인을 통해 슬레이브 칩의 어드레스, R/W비트, 커맨드 레지스터 어드레스, 및 데이터 읽기 조건을 전송할 수 있다. 슬레이브 칩의 어드레스, R/W 비트, 커맨드 레지스터 어드레스, 및/또는 데이터 쓰기 조건은, 도 7의 동작 701에서 설명한 바와 같이 구성될 수 있다.
I2C 마스터(400)는 동작 905에서, 제2 사이클 동안에 I2C 통신을 통해 eFuse IP(120)에 eFuse IP(120)의 어드레스를 전송할 수 있다. 일 실시 예에 따르면, I2C 마스터(400)는 시리얼 데이터(SDA) 라인을 통해 슬레이브 칩의 어드레스, R/W비트, 및 레지스터 어드레스를 전송할 수 있다. 슬레이브 칩의 어드레스, R/W비트, 및 레지스터 어드레스 도 7의 동작 703에서 설명한 바와 같이 구성될 수 있다.
I2C 마스터(400)는 동작 907에서, 제3 사이클 동안에 I2C 통신을 통해 eFuse IP(120)의 어드레스의 데이터를 수신할 수 있다. 일 실시 예에 따르면, I2C 마스터(400)는 시리얼 데이터(SDA) 라인을 통해 슬레이브 칩의 어드레스, 및 R/W비트를 전송한 후, 시리얼 데이터(SDA) 라인을 통해 지정된 eFuse IP(120)의 어드레스에 기록된 데이터를 수신할 수 있다. 여기서, R/W비트(822)는 해당 사이클에서 읽기 동작이 수행됨을 나타내는 값인 1'b1으로 설정될 수 있다.
I2C 마스터(400)는 동작 909에서, n비트에 대한 데이터 읽기 동작이 완료되었는지 여부를 결정할 수 있다. I2C 마스터(400)는 n비트에 대한 데이터 읽기 동작이 완료되지 않은 경우, 동작 905로 되돌아가 eFuse IP(120)의 어드레스를 전송하는 제2 사이클, 및 eFuse IP(120)의 어드레스의 데이터를 수신하는 제3 사이클을 반복 수행할 수 있다. 예를 들어, I2C 마스터(400)는 eFuse_I2C IP(100)의 eFuse_IP(120)에 n비트 데이터를 읽는 동안 데이터 읽기 조건을 변경할 필요가 없는 경우, 데이터 읽기 조건을 전송하는 제1 사이클을 최초 1번만 수행하고, 이후부터는 생략할 수 있다.
도 9b는 본 게시물의 다양한 실시 예들에 따른 eFuse_I2C IP에서 데이터를 읽기 위한 동작을 수행하는 흐름도이다. 여기서, I2C 마스터는 도 7의 I2C 마스터(400)이고, eFuse_I2C IP는 도 7의 eFuse_I2C IP(100)일 수 있다. 도 9b의 실시 예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다.
도 9b를 참조하면, 동작 951에서, eFuse_I2C IP(100)는 제1 사이클 동안에 I2C 통신을 통해 데이터 읽기 조건을 수신할 수 있다. 일 실시 예에 따르면, eFuse_I2C IP(100)는 제1 사이클 동안에 시리얼 데이터 입력(SDAI) 핀을 통해 I2C 마스터(400)로부터 전송된 슬레이브 칩의 어드레스, R/W비트, 커맨드 레지스터 어드레스, 및 데이터 읽기 조건을 수신할 수 있다. eFuse_I2C IP(100)는 커맨드 레지스터 어드레스를 기반으로, 레지스터 블록(220) 내 커맨드 레지스터에 데이터 읽기 조건을 저장 및/또는 설정할 수 있다.
동작 953에서, eFuse_I2C IP(100)는 제2 사이클 동안에 I2C 통신을 통해 eFuse IP(120)의 어드레스를 획득할 수 있다. 일 실시 예에 따르면, eFuse_I2C IP(100)는 제2 사이클 동안에 시리얼 데이터 입력(SDAI) 핀을 통해 I2C 마스터(400)로부터 전송된 슬레이브 칩의 어드레스, R/W비트, 및 eFuse IP의 어드레스를 수신할 수 있다.
동작 955에서, eFuse_I2C IP(100)는 제3 사이클 동안에 I2C 통신을 통해, eFuse IP(120)의 어드레스의 데이터에 대한 읽고, 읽은 데이터를 I2C 마스터(400)로 전송할 수 있다. eFuse IP(120)의 어드레스는 동작 953에서 획득된 어드레스일 수 있다. 일 실시 예에 따르면, eFuse_I2C IP(100)는 제3 사이클 동안에 시리얼 데이터 입력(SDAI) 핀을 통해 I2C 마스터(400)로부터 전송된 슬레이브 칩의 어드레스, 및 R/W비트를 수신한 후, 시리얼 데이터 출력(SDAI) 핀을 통해 eFuse IP(120)의 어드레스에 기록된 데이터를 읽어 I2C 마스터(400)로 전송할 수 있다. eFuse_I2C IP(100)는 eFuse IP(120)의 어드레스의 데이터를 I2C 마스터(400)로 전송한 후, 1'b0이 아닌, 1'b1의 ack 신호를 마스터로부터 수신함으로써, 데이터 읽기 동작이 완료되었음을 알릴 수 있다.
eFuse_I2C IP(100)는 데이터 읽기 동작을 완료한 후, 동작 957에서 슬레이브 칩의 어드레스가 재 수신되는지 여부를 결정할 수 있다. eFuse_I2C IP(100)는 슬레이브 칩의 어드레스가 재 수신되는 경우, 동작 953으로 되돌아가 이하 동작들을 재 수행할 수 있다. 예를 들어, eFuse_I2C IP(100)는 슬레이브 칩의 어드레스가 재 수신되는 경우, n 비트에 대한 데이터 읽기 동작이 완료되지 않은 것으로 결정하고, 데이터 읽기 동작이 수행되지 않은 다른 비트에 대한 데이터 읽기 동작을 수행하기 위해 동작 953 이후를 재 수행할 수 있다. eFuse_I2C IP(100)는 슬레이브 칩의 어드레스가 재 수신되지 않는 경우, n 비트에 대한 데이터 읽기 동작이 완료된 것으로 결정할 수 있다.
상술한 도 9a 및 도 9b에서는, eFuse_IP(120)의 n비트(또는 멀티 비트) 데이터를 읽는 동안 데이터 읽기 조건을 변경할 필요가 없는 경우를 가정하여, I2C 마스터(400)와 eFuse_I2C IP(100)가 데이터 읽기 조건을 설정하는 동작을 최초 1번만 수행하는 방법에 대해 설명하였다. 그러나, eFuse_IP(120)의 n비트 데이터를 읽는 동안 n비트 각각에 대해 데이터 읽기 조건을 변경해야 하는 경우에는, I2C 마스터(400)와 eFuse_I2C IP(100)가 매 비트 마다 데이터 읽기 조건을 설정하는 동작을 수행해야 할 것이다.
도 10 내지 12는 본 게시물의 다양한 실시 예들에 따른 I2C 통신을 지원하는 이퓨즈 IP에서 1비트 데이터에 대한 초기 읽기, 쓰기 및 읽기 동작에 대한 시뮬레이션 결과를 도시한다. 이하 도 10 내지 도 12의 시뮬레이션 시에는, 시리얼 클럭 주파수를 패스트 모드(fast mode)를 지원하는 400KHz로, 이퓨즈 제어부에서 사용되는 클럭 주파수는 2MHz로 적용하였다. 그러나, 본 게시물의 실시 예들은 해당 클럭 주파수에 한정되지 않고, 다른 클럭 주파수를 사용하는 경우에도 동일하게 적용될 수 있다. 예를 들어, 본 게시물의 다양한 실시 예들은 시리얼 클럭 주파수가 약 700KHz이고, 이퓨즈 제어부에서 사용되는 클럭 주파수가 1MHz~4MHz인 경우에도 정상 동작할 수 있다.
도 10은 본 게시물의 다양한 실시 예들에 따른 eFuse_I2C IP(100)의 초기 읽기 동작에 대한 시뮬레이션 결과이다.
도 10을 참조하면, eFuse_I2C IP(100)는 제1 사이클(1010) 동안에 시리얼 데이터 입력(SDAI) 핀을 통해 칩 어드레스, R/W 비트, 커맨드 레지스터 어드레스, 및 읽기 조건 설정을 위한 데이터를 수신하여, 커맨드 레지스터의 해당 어드레스에 읽기 조건을 설정할 수 있다. 제1 사이클(1010)에서, eFuse_I2C IP(100)는 시리얼 데이터 입력(SDAI) 핀을 통해 8비트의 데이터가 수신될 때마다 시리얼 데이터 출력(SDAO) 핀을 통해 1'b0의 ack 신호를 전송할 수 있다.
eFuse_I2C IP(100)는 제2 사이클(1020) 동안에 시리얼 데이터 입력(SDAI) 핀을 통해 칩 어드레스, R/W 비트, eFuse IP(120)의 어드레스를 수신할 수 있다. eFuse IP(120)의 어드레스는, 예를 들어, 도 10에 도시된 바와 같이, 0th address로 설정될 수 있다. 제2 사이클(1020)에서, eFuse_I2C IP(100)는 시리얼 데이터 입력(SDAI) 핀을 통해 8비트의 데이터가 수신될 때마다 시리얼 데이터 출력(SDAO) 핀을 통해 1'b0의 ack 신호를 전송할 수 있다.
eFuse_I2C IP(100)는 제3 사이클(1030) 동안에 시리얼 데이터 입력(SDAI) 핀을 통해 칩 어드레스, 및 R/W 비트를 수신한 후, 시리얼 데이터 출력(SDAO) 핀을 통해 eFuse IP(120)의 어드레스에 저장된 데이터를 I2C 마스터(400)로 전송할 수 있다. 제3 사이클(1030)에서 R/W 비트는, 읽기 동작을 나타내는 1'b1로 설정될 수 있다. eFuse_I2C IP(100)는 칩 어드레스, 및 R/W 비트를 수신한 후, 시리얼 데이터 출력(SDAO) 핀을 통해 1'b0의 ack 신호를 전송할 수 있다. eFuse_I2C IP(100)는 지정된 eFuse IP(120)의 어드레스인 0th address에 저장된 데이터를 시리얼 데이터 출력(SDAO) 핀을 통해 I2C 마스터(400)로 전송하고, 시리얼 데이터 입력(SDAI) 핀을 통해 1'b1의 ack 신호를 수신함으로써, 초기 읽기 동작이 완료됨을 나타낼 수 있다.
도 11은 본 게시물의 다양한 실시 예들에 따른 eFuse_I2C IP(100)의 쓰기 동작에 대한 시뮬레이션 결과이다. 여기서, 도 11의 쓰기 동작은 도 10의 초기 읽기 동작이 수행된 이후에 수행될 수 있다.
도 11을 참조하면, eFuse_I2C IP(100)는 제1 사이클(1110) 동안에 시리얼 데이터 입력(SDAI) 핀을 통해 칩 어드레스, R/W 비트, 커맨드 레지스터 어드레스, 및 쓰기 조건 설정을 위한 데이터를 수신하여, 커맨드 레지스터의 해당 어드레스에 쓰기 조건을 설정할 수 있다. 제1 사이클(1110)에서, eFuse_I2C IP(100)는 시리얼 데이터 입력(SDAI) 핀을 통해 8비트의 데이터가 수신될 때마다 시리얼 데이터 출력(SDAO) 핀을 통해 1'b0의 ack 신호를 전송할 수 있다.
eFuse_I2C IP(100)는 제2 사이클(1120) 동안에 시리얼 데이터 입력(SDAI) 핀을 통해 칩 어드레스, R/W 비트, 데이터 레지스터 어드레스, 및 eFuse IP(120)에 프로그래밍될 데이터를 수신할 수 있다. eFuse_I2C IP(100)는 제2 사이클(1110)에서, 시리얼 데이터 입력(SDAI) 핀을 통해 8비트의 데이터가 수신될 때마다 시리얼 데이터 출력(SDAO) 핀을 통해 1'b0의 ack 신호를 전송할 수 있다.
eFuse_I2C IP(100)는 제3 사이클(1130) 동안에 시리얼 데이터 입력(SDAI) 핀을 통해 칩 어드레스, R/W 비트, 어드레스 레지스터 어드레스, 및 eFuse IP(120)의 어드레스를 수신할 수 있다. eFuse IP(120)의 어드레스는, 도 10에서와 같이, 0th address로 설정될 수 있다. eFuse_I2C IP(100)는 제3 사이클(1020)에서, 시리얼 데이터 입력(SDAI) 핀을 통해 8비트의 데이터가 수신될 때마다 시리얼 데이터 출력(SDAO) 핀을 통해 1'b0의 ack 신호를 전송할 수 있다.
eFuse_I2C IP(100)는 제1 사이클(1010)에서 설정된 쓰기 조건 하에서, 제2 사이클(1120) 동안에 획득된 데이터를 제3 사이클(1130)에서 획득된 eFuse IP(120)의 어드레스, 예컨대, 0th address에 기록할 수 있다.
도 12는 본 게시물의 다양한 실시 예들에 따른 eFuse_I2C IP(100)의 읽기 동작에 대한 시뮬레이션 결과이다. 여기서, 도 12의 읽기 동작은 도 11의 기 동작이 수행된 이후에 수행될 수 있다.
도 12를 참조하면, eFuse_I2C IP(100)는 제1 사이클(1210) 동안에 시리얼 데이터 입력(SDAI) 핀을 통해 칩 어드레스, R/W 비트, 커맨드 레지스터 어드레스, 및 읽기 조건 설정을 위한 데이터를 수신하여, 커맨드 레지스터의 해당 어드레스에 읽기 조건을 설정할 수 있다. 제1 사이클(1210)에서, eFuse_I2C IP(100)는 시리얼 데이터 입력(SDAI) 핀을 통해 8비트의 데이터가 수신될 때마다 시리얼 데이터 출력(SDAO) 핀을 통해 1'b0의 ack 신호를 전송할 수 있다.
eFuse_I2C IP(100)는 제2 사이클(1220) 동안에 시리얼 데이터 입력(SDAI) 핀을 통해 칩 어드레스, R/W 비트, eFuse IP(120)의 어드레스를 수신할 수 있다. eFuse IP(120)의 어드레스는, 예를 들어, 도 10 및 도 11에서와 같이, 0th address로 설정될 수 있다. 제2 사이클(1020)에서, eFuse_I2C IP(100)는 시리얼 데이터 입력(SDAI) 핀을 통해 8비트의 데이터가 수신될 때마다 시리얼 데이터 출력(SDAO) 핀을 통해 1'b0의 ack 신호를 전송할 수 있다.
eFuse_I2C IP(100)는 제3 사이클(1230) 동안에 시리얼 데이터 입력(SDAI) 핀을 통해 칩 어드레스, 및 R/W 비트를 수신한 후, 시리얼 데이터 출력(SDAO) 핀을 통해 eFuse IP(120)의 어드레스(예: 0th address)에 저장된 데이터를 I2C 마스터(400)로 전송할 수 있다. 제3 사이클(1230)에서 R/W 비트는, 읽기 동작을 나타내는 1'b1로 설정될 수 있다. eFuse_I2C IP(100)는 칩 어드레스, 및 R/W 비트를 수신한 후, 시리얼 데이터 출력(SDAO) 핀을 통해 1'b0의 ack 신호를 전송할 수 있다. eFuse_I2C IP(100)는 0th address에 저장된 데이터를 시리얼 데이터 출력(SDAO) 핀을 통해 I2C 마스터(400)로 전송하고, 시리얼 데이터 입력(SDAI) 핀을 통해 1'b1의 ack 신호를 수신함으로써, 읽기 동작이 완료됨을 나타낼 수 있다.
상술한 도 4 내지 도 12에서, eFuse_I2C IP(100)의 동작은 eFuse_I2C IP(100)에 포함된 I2C 슬레이브(110)에 의해 수행되는 동작일 수 있다.
본 게시물의 다양한 실시 예들에 따르면, eFuse_I2C IP(100)는 상술한 바와 같이 eFuse IP(120)에 데이터를 쓰거나 읽을 수 있다. 또한, eFuse_I2C IP(100)는 eFuse IP(120)로부터 데이터 읽기 동작에 의해 획득된 데이터를 고객 설계 회로의 적어도 하나의 구성 요소(예: 도 3의 아날로그 블럭(310), 고객/파운드리 IP(330))의 입력 신호(또는 제어 신호)로 제공할 수 있다.
100: eFuse_I2C IP
110: I2C 슬레이브
120: eFuse IP

Claims (20)

  1. I2C(Inter Integrated Circuit) 통신을 지원하는 이퓨즈(eFuse) 방식의 오티피 메모리(one time programmable memory)에 있어서,
    복수의 어드레스에 대해 1회 데이터 쓰기 및 복수 회 데이터 읽기가 가능한 이퓨즈 IP(eFuse intellectual property); 및
    시리얼 클럭 라인 및 시리얼 데이터 라인을 기반으로 I2C 마스터와 통신하고, 상기 이퓨즈 IP에 데이터 쓰기(write) 및 데이터 읽기(read)를 수행하는 I2C 슬레이브를 포함하고,
    상기 I2C 슬레이브는,
    상기 이퓨즈 IP에 데이터 쓰기를 수행하기 위해 필요한 정보를 각각 상기 I2C 슬레이브의 어드레스를 포함하는 세 번의 사이클을 통해 상기 I2C 마스터로부터 획득하는, 이퓨즈 방식의 오티피 메모리.
  2. 제1항에 있어서,
    상기 I2C 슬레이브는,
    상기 I2C 마스터와 통신을 수행하는 I2C 슬레이브 인터페이스;
    상기 시리얼 데이터 라인을 통해 상기 I2C 마스터로부터 수신되는 데이터를 저장하고, 상기 시리얼 데이터 라인을 통해 상기 I2C 마스터로 전송될 데이터를 저장하는 레지스터 블록;
    상기 시리얼 데이터 라인을 통해 수신되는 데이터를 기반으로, 상기 이퓨즈 IP에 데이터를 쓰기 또는 상기 이퓨즈 IP에 저장된 데이터를 읽기 위한 제어 신호를 생성하는 이퓨즈 제어부; 및
    상기 이퓨즈 제어부의 동작을 위해 클럭 신호를 제공하는 클럭 제어부를 포함하는, 이퓨즈 방식의 오티피 메모리.
  3. 제2항에 있어서,
    오픈 드레인(open drain) 입출력 장치를 통해 상기 시리얼 데이터 라인과 연결되어, 상기 I2C 마스터로부터 데이터를 수신하는 시리얼 데이터 입력 핀;
    상기 오픈 드레인(open drain) 입출력 장치를 통해 상기 시리얼 데이터 라인과 연결되어, 상기 I2C 마스터로 데이터를 전송하는 시리얼 데이터 출력 핀; 및
    상기 시리얼 데이터 입력 핀 및 상기 시리얼 데이터 출력 핀 중 어느 하나가 상기 시리얼 데이터 라인에 연결되도록 상기 오픈 드레인 입출력 장치를 제어하는 신호를 출력하는 상기 시리얼 데이터 출력 인에이블 핀을 더 포함하는, 이퓨즈 방식의 오티피 메모리.
  4. 제2항에 있어서,
    상기 I2C 슬레이브는,
    제1 사이클에서 상기 시리얼 데이터 라인을 통해 데이터 쓰기 조건을 획득하고,
    제2 사이클에서 상기 시리얼 데이터 라인을 통해 상기 이퓨즈 IP에 기록할 데이터를 획득하고,
    제3 사이클에서 상기 시리얼 데이터 라인을 통해 상기 이퓨즈 IP의 어드레스를 획득하고,
    상기 획득된 데이터 쓰기 조건을 기반으로, 상기 이퓨즈 IP의 어드레스에 상기 획득된 데이터 쓰기를 수행하는, 이퓨즈 방식의 오티피 메모리.
  5. 제4항에 있어서,
    상기 데이터 쓰기 조건은, 상기 이퓨즈 IP의 어드레스에 상기 획득된 데이터를 쓰는 동안에 이용될 퓨징 전류 값, 읽기 모드 선택 여부, 또는 초기 이퓨즈의 저항 값의 마진 체크 여부 중 적어도 하나를 포함하는, 이퓨즈 방식의 오티피 메모리.
  6. 제4항에 있어서,
    상기 I2C 슬레이브는,
    상기 제1 사이클에서 상기 시리얼 데이터 라인을 통해, 칩 어드레스, R/W 비트, 커맨드 레지스터 어드레스, 및 상기 데이터 쓰기 조건을 수신하여, 상기 레지스터 블록의 상기 커맨드 레지스터 어드레스에 상기 데이터 쓰기 조건을 저장하고,
    상기 제2 사이클에서 상기 시리얼 데이터 라인을 통해, 상기 칩 어드레스, 상기 R/W 비트, 데이터 레지스터 어드레스, 및 상기 이퓨즈 IP에 기록할 데이터를 수신하여, 상기 레지스터 블록의 상기 데이터 레지스터 어드레스에 상기 이퓨즈 IP에 기록할 데이터를 저장하고,
    상기 제3 사이클에서 상기 시리얼 데이터 라인을 통해, 상기 칩 어드레스, 상기 R/W 비트, 어드레스 레지스터 어드레스, 쓰기 모드 설정 비트, 및 상기 이퓨즈 IP의 어드레스를 수신하여, 상기 레지스터 블록의 어드레스 레지스터 어드레스에 상기 이퓨즈 IP의 어드레스를 저장하고,
    각 사이클에서 정해진 주기마다 상기 시리얼 데이터 라인을 통해 데이터를 수신 했음을 나타내는 제1 ack 신호를 전송하며,
    상기 R/W 비트는, 상기 제1 사이클, 상기 제2 사이클 및 상기 제3 사이클에서 쓰기 동작을 수행하도록 설정되는, 이퓨즈 방식의 오티피 메모리.
  7. 제2항에 있어서,
    상기 I2C 슬레이브는,
    제1 사이클에서 상기 시리얼 데이터 라인을 통해 데이터 읽기 조건을 획득하고,
    제2 사이클에서 상기 시리얼 데이터 라인을 통해 상기 이퓨즈 IP의 어드레스를 획득하고,
    제3 사이클에서 상기 시리얼 데이터 라인을 통해 상기 이퓨즈 IP의 어드레스에 기록된 데이터를 상기 I2C 마스터로 전송하고,
    상기 이퓨즈 IP의 어드레스에 기록된 데이터는 상기 데이터 읽기 조건에 기반하여 획득되는, 이퓨즈 방식의 오티피 메모리.
  8. 제7항에 있어서,
    상기 데이터 읽기 조건은, 상기 이퓨즈 IP의 어드레스에서 데이터를 읽는 동안에 적용될 퓨징 전류 값, 읽기 모드 선택 여부, 또는 초기 이퓨즈의 저항 값의 마진 체크 여부 중 적어도 하나를 포함하는, 이퓨즈 방식의 오티피 메모리.
  9. 제7항에 있어서,
    상기 I2C 슬레이브는,
    상기 제1 사이클에서 상기 시리얼 데이터 라인을 통해, 칩 어드레스, R/W 비트, 커맨드 레지스터 어드레스, 및 상기 데이터 읽기 조건을 수신하여 상기 레지스터 블록의 상기 커맨드 레지스터 어드레스에 상기 데이터 읽기 조건을 저장하고,
    상기 제2 사이클에서 상기 시리얼 데이터 라인을 통해, 상기 칩 어드레스, 상기 R/W 비트, 및 상기 이퓨즈 IP의 어드레스를 수신하고,
    상기 제3 사이클에서 상기 시리얼 데이터 라인을 통해, 상기 칩 어드레스, 및 상기 R/W 비트를 수신한 후, 상기 시리얼 데이터 라인을 통해, 상기 이퓨즈 IP의 어드레스에 기록된 데이터를 상기 I2C 마스터로 전송하고,
    각 사이클에서 정해진 주기마다 상기 시리얼 데이터 라인을 통해 데이터를 수신 했음을 나타내는 제1 ack 신호를 전송하는, 이퓨즈 방식의 오티피 메모리.
  10. 제 9항에 있어서,
    상기 R/W 비트는, 해당 사이클에서 쓰기 동작 및 읽기 동작 중 어느 동작이 수행될지 나타내는 비트이고, 상기 제1 사이클 및 상기 제2 사이클에서는 쓰기 동작이 수행됨을 나타내고, 상기 제3 사이클에서는 읽기 동작이 수행됨을 나타내도록 설정되는, 이퓨즈 방식의 오티피 메모리.
  11. 제 9항에 있어서,
    상기 I2C 슬레이브는, 상기 제3 사이클에서 상기 시리얼 데이터 라인을 통해, 상기 이퓨즈 IP의 어드레스에 기록된 데이터를 상기 I2C 마스터로 전송한 후, 데이터 읽기 동작이 완료되었음을 나타내는 제2 ack 신호를 수신하는 이퓨즈 방식의 오티피 메모리.
  12. I2C(Inter Integrated Circuit) 통신을 지원하는 이퓨즈(eFuse) 방식의 오티피 메모리(one time programmable memory)의 동작 방법에 있어서,
    제1 사이클에서 시리얼 데이터 라인을 통해 상기 오티피 메모리에 구비된 I2C 슬레이브의 어드레스 및 데이터 쓰기 조건을 획득하는 동작;
    제2 사이클에서 상기 시리얼 데이터 라인을 통해 상기 I2C 슬레이브의 어드레스 및 이퓨즈 IP에 기록할 데이터를 획득하는 동작;
    제3 사이클에서 상기 시리얼 데이터 라인을 통해 상기 I2C 슬레이브의 어드레스 및 상기 데이터가 기록될 상기 이퓨즈 IP의 어드레스를 획득하는 동작; 및
    상기 획득된 데이터 쓰기 조건을 기반으로, 상기 이퓨즈 IP의 어드레스에 상기 획득된 데이터를 기록하는 동작을 포함하는 방법.
  13. 제12항에 있어서,
    상기 데이터 쓰기 조건을 획득하는 동작은,
    상기 제1 사이클에서 상기 시리얼 데이터 라인을 통해, 칩 어드레스, R/W 비트, 커맨드 레지스터 어드레스, 및 상기 데이터 쓰기 조건을 수신하는 동작; 및
    레지스터 블록의 상기 커맨드 레지스터 어드레스에 상기 데이터 쓰기 조건을 저장하는 동작을 포함하며,
    상기 R/W 비트는, 해당 사이클에서 쓰기 동작 및 읽기 동작 중 어느 동작이 수행될지 나타내는 비트이며,
    상기 데이터 쓰기 조건은, 상기 이퓨즈 IP의 어드레스에 상기 획득된 데이터를 쓰는 동안에 이용될 퓨징 전류 값, 읽기 모드 선택 여부, 또는 초기 이퓨즈의 저항 값의 마진 체크 여부 중 적어도 하나를 포함하는 방법.
  14. 제13항에 있어서,
    상기 이퓨즈 IP에 기록할 데이터를 획득하는 동작은,
    상기 제2 사이클에서 상기 시리얼 데이터 라인을 통해, 상기 칩 어드레스, 상기 R/W 비트, 데이터 레지스터 어드레스, 및 상기 이퓨즈 IP에 기록할 데이터를 수신하는 동작; 및
    상기 레지스터 블록의 상기 데이터 레지스터 어드레스에 상기 이퓨즈 IP에 기록할 데이터를 저장하는 동작을 포함하는 방법.
  15. 제14항에 있어서,
    상기 이퓨즈 IP의 어드레스를 획득하는 동작은,
    상기 제3 사이클에서 상기 시리얼 데이터 라인을 통해, 상기 칩 어드레스, 상기 R/W 비트, 어드레스 레지스터 어드레스, 쓰기 모드 설정 비트, 및 상기 이퓨즈 IP의 어드레스를 수신하는 동작; 및
    상기 레지스터 블록의 상기 어드레스 레지스터 어드레스에 상기 이퓨즈 IP의 어드레스를 저장하는 동작을 포함하는 방법.
  16. I2C(Inter Integrated Circuit) 통신을 지원하는 이퓨즈(eFuse) 방식의 오티피 메모리(one time programmable memory)의 동작 방법에 있어서,
    제1 사이클에서 시리얼 데이터 라인을 통해 상기 오티피 메모리에 구비된 I2C 슬레이브의 어드레스 및 데이터 읽기 조건을 획득하는 동작;
    제2 사이클에서 상기 시리얼 데이터 라인을 통해 상기 I2C 슬레이브의 어드레스 및 이퓨즈 IP의 어드레스를 획득하는 동작; 및
    제3 사이클에서 상기 시리얼 데이터 라인을 통해 상기 I2C 슬레이브의 어드레스를 획득하고 상기 이퓨즈 IP의 어드레스에 기록된 데이터를 I2C 마스터로 전송하는 동작을 포함하며,
    상기 이퓨즈 IP의 어드레스에 기록된 데이터는 상기 데이터 읽기 조건에 기반하여 획득되는 방법.
  17. 제16항에 있어서,
    상기 데이터 읽기 조건을 획득하는 동작은,
    상기 제1 사이클에서 상기 시리얼 데이터 라인을 통해, 칩 어드레스, R/W 비트, 커맨드 레지스터 어드레스, 및 상기 데이터 읽기 조건을 수신하는 동작; 및
    레지스터 블록의 상기 커맨드 레지스터 어드레스에 상기 데이터 읽기 조건을 저장하는 동작을 포함하며,
    상기 R/W 비트는, 해당 사이클에서 쓰기 동작 및 읽기 동작 중 어느 동작이 수행될지 나타내는 비트이고,
    상기 데이터 읽기 조건은, 상기 이퓨즈 IP의 어드레스에 상기 획득된 데이터를 읽는 동안에 적용될 퓨징 전류 값, 읽기 모드 선택 여부, 또는 초기 이퓨즈의 저항 값의 마진 체크 여부 중 적어도 하나를 포함하는 방법.
  18. 제 17항에 있어서,
    상기 이퓨즈 IP의 어드레스를 획득하는 동작은,
    상기 제2 사이클에서 상기 시리얼 데이터 라인을 통해, 상기 칩 어드레스, 상기 R/W 비트, 및 상기 이퓨즈 IP의 어드레스를 수신하는 동작을 포함하는 방법.
  19. 제 18항에 있어서,
    상기 이퓨즈 IP의 어드레스에 기록된 데이터를 상기 I2C 마스터로 전송하는 동작은,
    상기 제3 사이클에서 상기 시리얼 데이터 라인을 통해, 상기 칩 어드레스, 및 상기 R/W 비트를 수신하는 동작; 및
    상기 시리얼 데이터 라인을 통해, 상기 이퓨즈 IP의 어드레스에 기록된 데이터를 상기 I2C 마스터로 전송하는 동작을 포함하며,
    상기 제3 사이클에서 수신된 상기 R/W 비트는, 상기 제3 사이클에서 읽기 동작이 수행됨을 나타내는 방법.
  20. 제 19항에 있어서,
    상기 시리얼 데이터 라인을 통해, 상기 이퓨즈 IP의 어드레스에 기록된 데이터를 상기 I2C 마스터로 전송한 후, 데이터 읽기 동작이 완료되었음을 나타내는 ack 신호를 수신하는 동작을 더 포함하는 방법.


KR1020210109236A 2021-08-19 2021-08-19 I2c 통신을 지원하는 이퓨즈 오티피 메모리 및 그의 동작 방법 KR102523270B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210109236A KR102523270B1 (ko) 2021-08-19 2021-08-19 I2c 통신을 지원하는 이퓨즈 오티피 메모리 및 그의 동작 방법
US17/584,586 US20230059620A1 (en) 2021-08-19 2022-01-26 eFUSE ONE-TIME PROGRAMMABLE MEMORY WITH INTER INTEGRATED CIRCUIT (I2C) COMMUNICATION AND OPERATION METHOD THEREOF

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210109236A KR102523270B1 (ko) 2021-08-19 2021-08-19 I2c 통신을 지원하는 이퓨즈 오티피 메모리 및 그의 동작 방법

Publications (2)

Publication Number Publication Date
KR20230027448A KR20230027448A (ko) 2023-02-28
KR102523270B1 true KR102523270B1 (ko) 2023-04-20

Family

ID=85228508

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210109236A KR102523270B1 (ko) 2021-08-19 2021-08-19 I2c 통신을 지원하는 이퓨즈 오티피 메모리 및 그의 동작 방법

Country Status (2)

Country Link
US (1) US20230059620A1 (ko)
KR (1) KR102523270B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117111857B (zh) * 2023-09-15 2024-05-07 上海合芯数字科技有限公司 读取数据信息的方法、装置、设备及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7650535B2 (en) * 2006-09-16 2010-01-19 International Business Machines Corporation Array delete mechanisms for shipping a microprocessor with defective arrays
US9477634B2 (en) * 2010-06-04 2016-10-25 Intersil Americas LLC I2C address translation
US9710410B2 (en) * 2013-10-31 2017-07-18 Qualcomm Incorporated Camera control slave devices with multiple slave device identifiers
KR102406664B1 (ko) * 2016-02-24 2022-06-08 삼성전자주식회사 Otp 메모리 및 그것의 데이터 기입 방법

Also Published As

Publication number Publication date
US20230059620A1 (en) 2023-02-23
KR20230027448A (ko) 2023-02-28

Similar Documents

Publication Publication Date Title
US11657857B2 (en) Memory devices having special mode access
JP2003233998A (ja) Nandフラッシュメモリ装置
US9471420B2 (en) Nonvolatile memory and semiconductor device including the same
KR102523270B1 (ko) I2c 통신을 지원하는 이퓨즈 오티피 메모리 및 그의 동작 방법
US9104401B2 (en) Flash memory apparatus with serial interface and reset method thereof
JP2006127653A (ja) メモリ素子
JP7279258B2 (ja) 限られた数の試験ピンを使用するメモリデバイスを試験する方法およびその方法を使用するメモリデバイス
US10566074B2 (en) Test mode control circuit
KR100564033B1 (ko) 단일 버퍼 선택 입력 단자를 가지는 반도체 메모리 및반도체 메모리 테스트 방법
KR20150006167A (ko) 반도체 시스템 및 그 리페어 방법
US6925554B1 (en) Method of programming USB microcontrollers
US20040071028A1 (en) Testing method and device for non-volatile memories having a LPC (low pin count) communication serial interface
TWI473110B (zh) 串列介面的快閃記憶體裝置及其重置動作的執行方法
JP6062795B2 (ja) 半導体装置
KR100996093B1 (ko) 불휘발성 메모리 소자 및 그 동작 방법
US20070300019A1 (en) Memory access apparatus, memory access method and memory manufacturing method
US9053776B2 (en) Setting information storage circuit and integrated circuit chip including the same
US11144491B1 (en) Integrated circuit and interface control circuit thereof
US8897048B2 (en) Semiconductor memory device and programming method thereof
KR20140029089A (ko) 반도체 장치 및 메모리 장치
WO2022134864A1 (zh) 一种mram读写电压的校准电路及其校准方法、mram
CN107452424B (zh) 一种对存储器进行修复的电路及存储芯片
US20050223126A1 (en) Buffer controller between memories and method for the same
JP5529221B2 (ja) メモリアーキテクチャおよび関連シリアルダイレクトアクセス回路
JP4328790B2 (ja) 半導体集積回路

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right