KR101591376B1 - 동기에서 비동기로의 논리 변환 - Google Patents

동기에서 비동기로의 논리 변환 Download PDF

Info

Publication number
KR101591376B1
KR101591376B1 KR1020107020673A KR20107020673A KR101591376B1 KR 101591376 B1 KR101591376 B1 KR 101591376B1 KR 1020107020673 A KR1020107020673 A KR 1020107020673A KR 20107020673 A KR20107020673 A KR 20107020673A KR 101591376 B1 KR101591376 B1 KR 101591376B1
Authority
KR
South Korea
Prior art keywords
asynchronous
synchronous
circuit design
netlist
design expression
Prior art date
Application number
KR1020107020673A
Other languages
English (en)
Other versions
KR20100124770A (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 아크로닉스 세미컨덕터 코포레이션
Publication of KR20100124770A publication Critical patent/KR20100124770A/ko
Application granted granted Critical
Publication of KR101591376B1 publication Critical patent/KR101591376B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/35Delay-insensitive circuit design, e.g. asynchronous or self-timed

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)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

장치, 시스템 및 방법은, 동기 회로 설계 표현식(synchronous circuit design representation)으로부터 동기 넷리스트(netlist)를 생성하고, 비동기 코어(synchronous core)를 형성하기 위해 상기 동기 넷리스트에서의 표준 셀 동기 컴포넌트를, 대응하는 비동기 표준 셀 컴포넌트 라이브러리로부터 취해진 비동기 컴포넌트로 자동으로 대체하며, 상기 동기 넷리스트를 비동기 회로 설계 표현식으로 변환하도록 동작할 수 있다. 부가의 장치, 시스템 및 방법이 개시된다.

Description

동기에서 비동기로의 논리 변환{SYNCHRONOUS TO ASYNCHRONOUS LOGIC CONVERSION}
본 발명은 동기에서 비동기로의 논리 변환에 관한 것이다.
많은 경우에 있어서, 비동기 회로 설계는 동기 설계에 비해 다양한 이점, 예를 들어 성능 및 전력 이점을 제공한다. 그렇지만, 비동기 논리에 기초한 장치를 실현하기 위해서는, 많은 시간, 실험, 및 전용의 비동기 툴이 필요하다. 이러한 이유 및 다른 이유로, 기존의 주문형 반도체(ASIC: Application Specific Intergrated Circuit) 디바이스는 주로 동기 회로 및 기술을 이용하여 설계되었다.
전술한 바와 같은 문제뿐만 아니라 다른 문제 중 일부는, 자동화된 대체 및 비동기 표준 셀 컴포넌트의 라이브러리를 이용하여, 하드웨어 디스크립션 언어(HDL: hardware description language) 또는 하이 레벨 동작 논리 디스크립션에 의해 설명되었던 동기 논리를 자동으로 동기화하도록 동작하는 장치, 시스템 및 방법에 의해 해결될 수 있다. 여기서 언급된 이 메커니즘은 비동기 설계가 제1 원리(first principle)로 실현될 때 이따금 직면하게 되는 곤란 없이, 비동기 설계자가 이용할 수 있는 많은 이점을 제공할 수 있다.
기존의 표준 셀 ASIC는 "셀", "표준 셀", 또는 "논리 셀"이라 하는 사전 설계된 회로 요소(pre-designed circuit elements)를 적용한다. 통상적으로, 표준 셀 라이브러리는 레지스터 및 플롭과 같은 동기 셀 뿐만 아니라 AND 게이트, OR 게이트, XOR 게이트, 인버터 등과 같은 비동기-조합 논리 요소의 많은 수집을 포함한다. 명확하게 하기 위해, 이러한 비동기 조합 회로 요소는 본 발명에서 개시하는 비동기 회로 요소와는 확연하게 다르다는 것을 알아야 한다. 비동기 조합 회로 요소는 대부분의 기존의 디지털 회로에 의해 사용되는 바와 같이 표준 바이너리로 동작하는 단순한 조합 논리 요소이다. 한편, 비동기 회로 요소는 비동기-조합 논리 요소 및 동기 논리 요소 모두의 기능성을 복사하지만, 기존의 동기 표준 셀 회로 구현의 표준 클록 바이너리 포맷으로 데이터 정보를 통과시키지 않는다.
도 1은 본 발명의 다양한 실시예에 따라 동기 논리에서 비동기 논리로의 변환을 설명하는 흐름도이다.
도 2는 본 발명의 다양한 실시예에 따라, 비동기 조합 및 시퀀셜 논리를 설명하는 블록도이다.
도 3은 본 발명의 다양한 실시예에 따라, 비동기 논리를 에워싸는 동기 래퍼에 대한 블록도이다.
도 4는 본 발명의 다양한 실시예에 따라 동기 논리에서 비동기 논리로 변환하는 방법을 설명하는 흐름도이다.
도 5는 본 발명의 실시예에 따라 동기 논리에서 비동기 논리로의 변환과 결합해서 사용되는 장치 및 시스템에 대한 블록도이다.
도 1은 본 발명의 다양한 실시예에 따라 동기 논리에서 비동기 논리로의 변환을 설명하는 흐름도이다. 이러한 변환 방법(111)은 기계가 액세스하여 판독 가능한 매체에 명령어를 저장함으로써 실현될 수 있다. 방법(111)은 네트워크 내에서 그리고 네트워크 사이에서 프로세스를 통해 실행되는데, 유선, 무선 또는 유선과 무선의 조합으로 실행될 수 있다. 방법(111)은 명령에 따라 실현될 수 있고, 기계에 의해 명령이 실행될 때, 도 1에 도시된 프로세스를 실행한다. 이러한 배경을 고려하면, 자동화된 컴포넌트 대체를 사용해서 동기 논리에서 비동기 논리로의 변환에 대해서는 도 1을 참조하여 설명한다.
일부의 실시예에서, 논리적 합성을 사용하여 비동기 설계를 제공한다. 다른 실시예에서는 물리적 합성이 사용된다. 또다른 실시예에서는, 논리적 합성과 물리적 합성의 조합이 사용된다.
동기 설계로부터 비동기 설계를 합성하는 방법(111)은 블록(115)에서 시작하여 블록(119)에서 계속되어 하이-레벨 하드웨어 디스크립션을 얻는데, 레지스터 전달 레벨(RTL: Register Transfer Level) 디스크립션을 사용한다.
동기 표준 셀 라이브러리 요소로 이루어지는 라이브러리가 존재하는데, 각각의 라이브러리는 많은 표준 셀 요소를 구비하고, 연결될 때, 소정의 원하는 기능성을 나타내는 논리 회로를 실행한다. 간략화된 예와 같이, 이러한 하나의 라이브러리가 4개의 부분: AND 게이트, OR 게이트 및 인버터를 포함하는 조합 논리 및 포지티브-에지 트리거링된 플롭을 포함하는 시퀀셜 논리를 가지는 것을 상정한다. 각각의 조합 셀은 그 입력(들)에 대한 논리적 동작을 수행하여 조합 출력을 생성한다. 플롭의 시퀀셜 출력은 데이터 입력과 클록 입력의 함수이다. 플롭을 "레지스터"라고도 할 수 있는데 그 이유는 연속적인 클록 입력 신호 에지들의 발생 사이에 데이터 입력 값을 등록하도록 동작하기 때문이다. 본 예의 동기 컴포넌트 라이브러리에서 이용 가능한 기능은 표 1, 2, 3, 및 4에서 알 수 있다.
AND 게이트 설명: 입력 INA 및 INB가 모두가 어서팅되면 출력 OUTQ가 어서팅된다.




INA INB OUTQ
0 0 0
0 1 0
1 0 0
1 1 1
OR 게이트 설명: 입력 INA 또는 INB 중 적어도 하나가 어서팅되면 출력 OUTQ가 어서팅된다.




INA INB OUTQ
0 0 0
0 1 1
1 0 1
1 1 1
인버터 설명: 출력 OUTQ는 입력 INA의 반전이다


INA OUTQ
0 1
1 0
시퀀셜 FLOP 설명: 출력 OUTS는 CLKIN 입력 신호의 상승 에지에서 입력 INA의 값을 취한다



INA CLKIN OUTS
0 0
1 1
X 이전의 값과 동일하다
라이브러리에서의 표준 셀 컴포넌트를 사용하면(이 제한적인 예에 나타난 것보다 통상적으로 더 많음), 방법(111)은 블록(123)에서 계속하여 기능 회로 디스크립션을 합성함으로써 동기 표준 셀 라이브러리 컴포넌트의 넷리스트(netlist)를 제공한다. 이것은 당업자에게 잘 알려진 합성 툴을 사용해서 달성될 수 있는데, 이러한 합성 툴은, Verilog® 또는 VHDL(Very High Speed Integrated Circuit HDL) 언어를 사용하는 RTL 디스크립션과 같은, 하드웨어 정의 언어(HDL: Hardware Definition Language)에 정의되어 있는 하드웨어의 디스크립션을 해석하도록 동작한다.
블록(123)의 합성 동작(systhesis activity)은 비동기 라이브러리 컴포넌트의 최종적인 치환에 대한 결과를 최적화하는 개념으로 작동될 수 있다. 그렇지만, 이것은 실행되는 특정한 실시예에 따라 다르다. 블록(123)의 동작은 논리적 합성, 물리적 합성, 또는 이것들의 조합을 포함할 수 있다. 그러므로 이 점에서 배치 정보(placement information)를 획득할 수 있다.
방법(111)은 블록(127)에서 계속하여, 블록(123)의 합성 동작에서 생긴 동기 라이브러리 컴포넌트로 자동으로 대체될 수 있는 비동기 표준-셀 라이브러리 컴포넌트를 획득한다.
블록(131)에서, 순차적으로, 또는 일부의 실시예에서는, 실질적으로 동시에, 비동기 표준-셀 라이브러리 컴포넌트는 동기 표준 셀 라이브러리 컴포넌트와 대체되고, 동기 넷리스트 디스크립션은 비동기 넷리스트 디스크립션으로 변환된다. 이때, 비동기 표준-셀 디스크립션은 완전한 (데이터흐름에 기반한) 비동기 디스크립션으로 변할 수 있다. 그런 다음 동기 논리는 경계 회로(boundary circuit) 또는 프레임으로 둘러싸이게 되어 결과적인 회로의 외부 입력 및 출력은 원래의 동기 논리 설계처럼 행동할 수 있다.
데이터흐름 모델을 실행하는 한 가지 방법은 데이터 및 수신확인(data and acknowldege)을 가진 듀얼-레일 인코딩(dual-rail encoding)을 사용하는 것이다. 물론, 당업자는 비동기 회로 데이터흐름 통신을 실현하는데 사용될 수 있는 많은 다른 핸드쉐이크 프로토콜(handshake protocol)(예를 들어, 싱글-레일, 듀얼-레일 등)이 있다는 것을 알고 있을 것이다.
방법(111)은 블록(125)으로 진행하여 배치를 수행하고, 블록(139)에서, 당업자에게 잘 알려진 라우팅(routing)을 수행한다. 이러한 동작들 중 어느 것이라도 비동기 실행에 대해 최적화될 수 있다.
블록(143)에서 판정된 바와 같이, 타이밍 폐쇄(timing closure)가 완료되지 않았다면, 방법(111)은 블록(147)에서 타이밍을 폐쇄하는 단계를 포함할 수 있다. 그 후, 또는 타이밍이 이미 폐쇄되었다면, 방법(111)은 비동기 설계에 따라 회로를 제조하는 단계를 포함할 수 있다.
본 명세서를 읽고 이해한 후에, 당업자는 동기 표준 셀 라이브러리에 있는 각각의 조합 논리 요소에 대해, 동등한 비동기 표준 셀 요소가 존재하거나 생성될 수 있다는 것을 이해할 수 있을 것이다. 비동기 표준 셀 라이브러리에 있는 각각의 요소는 준 지연-무관(quasi delay-insensitive), 타이밍(timed), 셀프-타이밍(self-timed), 및 그외의 비동기 논리 훼밀리 타입을 포함하는 다양한 비동기 논리 회로를 사용해서 실행될 수 있다. 비동기 라이브러리에 있는 요소는 비동기 라이브러리로부터 대응하는 조합 논리 요소와 동일한 기능을 계산하도록 설계되어 있다. 이러한 조합 논리 요소의 예로는, 룩업-테이블(lookup-table), AOI(and-or-invert) 게이트 등이 있다.
도 2는 본 발명의 다양한 실시예에 따라, 비동기 조합(200) 및 시퀀셜 논리(212)를 나타내는 블록도이다. 예를 들어, 비동기 조합(200) 및 시퀀셜 논리(212)를 포함하는 간단한 비동기 표준 셀 라이브러리를 상정한다. 각각의 조합 셀(204)(예를 들어, 비동기 AND 컴포넌트), 206(예를 들어, 비동기 OR 컴포넌트), 및 208(비동기 인버터 컴포넌트)은 그 입력(들)에 대한 논리적 동작을 수행하여 출력을 생성한다. 비동기 접속 요소(CE) 셀(212)은 상태(state)를 저장할 수 있으나, 그렇게 할 필요가 없다. 이러한 셀은 표 1, 2, 3, 및 4에 도시된 테이블 함수와 관련해서 동기 컴포넌트와 동일한 논리적 방식으로 기능한다.
논리적 기능성이 동일하게 남아 있는 동안에는, 데이터 빌딩 블록과 같은 비동기 논리 요소의 실행으로 인해 전체적인 기능에서 차이가 생기는데, 이것은 유효 출력을 생성하기 전에 유효 입력을 대기함으로써 동작한다. 그러므로 데이터흐름 AND 게이트(204)는, AND 함수를 계산하고 적절한 유효 출력을 생성하기 전에, 그 입력에 도착하는 유효 입력을 대기한다. 그러므로 계산되는 함수는 동기 및 비동기 셀 실행에서와 동일한 반면 그 동작은 다른데 왜냐하면 그 출력을 지속적으로 계산하는 동기 실행과는 반대로, 비동기 실행은 유효한 출력이 생성되기 전에, 유효하게 될 모든 입력을 대기하고 있기 때문이다. CE 셀은 약간 다른데, 이전의 출력이 다음의 비동기 파이프라인 스테이지에 의해 수신될 때마다 출력이 데이터 입력의 값을 취한다.
초기의 토큰 요소(216)는 초기의 데이터 값을 유지하기 위해 비동기 표준 셀 라이브러리에서 사용될 수 있다. 초기의 토큰 요소(216)는 시퀀셜 요소의 기능적 동등성을 회로에 부가하는데 사용된다. 시퀀셜 요소(예를 들어, 레지스터)가 예를 들어 원래의 동기 RTL에 존재하더라도, 초기의 토큰 요소(216)와 대체될 수 있다. 원래의 동기 설계에서, 이것은 예를 들어 포지티브 에지-트리거링된 플롭을 사용해서 실행될 수도 있었다. 여기서 설명되는 변환을 따라, 초기의 토큰은 CE 셀(212)에 부가되어, 원래의 동기 플롭 셀에 대한 행동적 동등성(behavioral equivalence)을 생성할 수 있다.
대부분의 실시예에서, 동기 논리 데이터를 비동기 토큰으로 변환시키고 또한 그 반대로도 변환시키는 입력 및 출력 변환 요소(224, 228)는 또한 비동기 표준 셀 라이브러리의 일부이다. 통상적으로, 동기 래퍼(synchronous wrapper)는 비동기 코어를 에워싼다. 그러므로 동기 래퍼로부터 그 결과적인 비동기 코어 설계로 들어가는 각각의 신호는 동기에서 비동기로의 변환(synchronous to asynchronous conversion)(SAC) 셀(224)을 통과한다. 마찬가지로, 동기 래퍼를 통과해서 비동기 코어를 나가는 각각의 신호는 비동기에서 동기로의 변환(asynchronous to synchronous conversion)(ASC) 셀(228)로 들어간다.
여기에 개시된 방법들과 결합해서, 당업자에게 알려진 합성 툴을 사용하는 예와 같이, 도 1을 참조하여 다음과 같은 행동을 가지는 동기 회로의 RTL 디스크립션(도 1의 블록(119)을 참조)을 상정한다:
Figure 112010060041624-pct00001
합성 툴은 설계를 해석할 수 있으며 그래서 표준 셀 라이브러리 요소(예를 들어, 동기 OR 게이트 및 플롭)을 함께 연결하여 그 필요한 논리 행동(도 1의 블록(123)을 참조)을 나타내는 회로를 형성하는 넷리스트를 합성하도록 설명되어 있다. 이러한 특별한 디스크립션에 있어서, 합성 툴로부터 출력된 넷리스트는 다음과 같은 것을 볼 것이다:
Figure 112010060041624-pct00002
이것은 출력(G)을 가지는 2-입력(예를 들어, 입력 E 및 F) OR 게이트를 설명하며, 출력(G)은 클록 신호 CLK를 수신하고 출력 신호(Y)를 제공하는 포지티브 에지-트리거링된 플롭의 데이터 입력으로 공급된다.
그런 다음 이 넷리스트 출력 디스크립션은 도 2에서 알 수 있는 바와 같이, 입력 E 및 F, 및 출력 G를 가지는 비동기 OR 셀 컴포넌트(234)를 설명하는 것과 유사하게 비동기 표시로 변환될 수 있다:
Figure 112010060041624-pct00003
여기서 출력 G는 Y의 초기의 토큰 값을 가지는 CE 셀 컴포넌트(238)에 공급된다. 그러므로 원래의 동기 회로의 완전한 비동기 실행은 비동기 코어 회로(230)와 같이 도시되어 있다.
동기 넷리스트를 (자동 대체 없이) 비동기 설계 표시로 변환하는 것에 관해 더 많이 배우고 싶어하는 독자는, 본 발명의 양수인에게 양도되고 발명의 명칭이 "Systems and Methods for Performing Automated Conversion of Representations of Synchronous Circuit Designs to and from Representations of Asychronous Circuit Designs"인 미국특허공개 No. 2007/0256038을 참조하면 되며, 상기 문헌의 전체 내용은 본 명세서에 원용된다.
복수의 클록 도메인이 있으면 문제가 약간 복잡해진다. 유일한 이슈가 다양한 클록 도메인으로부터 두 개의 상태 유지 요소 간의 인터페이스에서 발생한다. 클록 주기 횟수는 서로의 합리적인 배수인 것으로 상정한다. 이것이 진정으로 그 경우이면, 계산을 정적으로 풀어내서 그 계산에서의 모든 주기 시간의 최소공배수에 대응하는 반복 주기를 알아낼 수 있다.
도 3은 본 발명의 실시예에 따라 비동기 논리를 에워싸는 동기 래퍼(304)의 블록도이다. 동기 설계의 이러한 비동기 실행(300)에서, 변환 셀(324, 328)(도 2의 셀(224, 228)과 유사하거나 동일할 수 있다)을 사용하여 동기 래퍼(304)와 비동기 코어(308) 간의 통신을 용이하게 한다. 클록 신호 CLK의 각각의 입력 주기에 있어서, 모든 SAC 셀(324)은 비동기 코어(308)로 흘러들어 갈 단일의 토큰 TI1, TI2, TI3을 생성할 것이다. 클록 신호 CLK의 각각의 출력 주기에 있어서, ASC 셀(328)은 토큰 To를 소모하고 그 등가의 데이터 값을 그 출력 Q에 전파할 것이다. 동기 래퍼(304)에 의해 표시되는 비동기 경계에서 데이터 값(또는 토큰)을 보존하면 동기 회로의 비동기 실행(304)은 원래의 동기 설계와 확실하게 동일하게 동작하게 된다.
많은 변형 실시예가 실행될 수 있다. 이러한 실시예에는 비동기 표준 셀 라이브러리의 최적화가 포함되어 있는데, 이러한 최적화에는, 합성에 더 알맞은 맞춤형 요소, 다양한 설계 메트릭(예를 들어, 영역, 전력, 및/또는 성능)의 최적화와 관련해서 선택을 설계자에게 부여하기 위한 동일한 라이브러리 컴포넌트의 복수의 예, 그리고 최종적인 회로의 실행을 최적화하기 위해 다른 논리에 부가되는 초기의 토큰 요소를 가지는 "연합된(fused)" 라이브러리 요소가 포함된다.
도 4는 본 발명의 다양한 실시예에 따라 동기 논리를 비동기 논리로 변환하는 방법(461)을 나타내는 흐름도이다. 방법(461)은 기계가 액세스하고 판독 가능한 매체에서 실행될 수도 있고, 네트워크 내에서 그리고 네트워크 사이의 프로세스를 통해 동작한다. 네트워크는 유선, 무선 또는 유선과 무선의 조합일 수 있다. 방법(461)은 명령어로서 실행되는데, 이 명령어는 기계에 의해 액세스될 때 도 4에 도시된 프로세스를 실행한다.
표준 셀 요소의 자동 대체를 사용해서 동기 회로 설계의 적어도 일부를 비동기 설계로 변환하는 컴퓨터가 실행하는 방법(461)은 블록(465)에서 시작해서 블록(469)에서 계속되어 동기 회로 설계 표현식(synchronous circuit design representation)으로부터 동기 넷리스트(netlist)를 생성한다. 동기 넷리스트는 예를 들어 전자 설계 인터페이스 포맷(EDIF)에 따라 포맷될 수 있다.
대부분의 실시예에서, 방법(461)은 블록(471)에서 SAC 셀을 동기 넷리스트에 부가하는 단계를 포함하고, SAC 셀은 비동기 코어에 들어오는 신호를 수신한다. 마찬가지로, 블록(471)의 동작은 ASC 셀을 동기 넷리스트에 부가하는 단계를 포함하며, ASC 셀은 비동기 코어를 떠나는 신호를 전송한다.
방법(461)은 블록(475)으로 진행하여, 비동기 코어(synchronous core)를 형성하기 위해 상기 동기 넷리스트에서의 표준 셀 동기 컴포넌트를 대응하는 비동기 표준 셀 컴포넌트 라이브러리로부터 취해진 비동기 컴포넌트로 자동으로 대체하는 단계를 포함한다. 블록(475)에서 자동으로 대체하는 단계는 비동기 컴포넌트의 핀 커넥션을 표준 셀 동기 컴포넌트의 핀 커넥션에 맵핑하는 단계를 포함할 수 있다.
블록(475)에 자동으로 대체하는 단계는 표준 셀 동기 컴포넌트 중 하나를 포함하는 상태-유지 요소(state-holding element)를 통신 링크 또는 초기의 토큰 요소 중 하나로 대체하는 단계를 더 포함할 수 있다. 예를 들어, 블록(475)에 자동으로 대체하는 단계는 표준 셀 동기 컴포넌트 중 하나로서 포함되는 레지스터를 커넥션 요소와 관련된 초기의 토큰으로 대체하는 단계를 포함할 수 있다. 초기의 토큰 요소는 커넥션 요소가 아닌, 어느 곳에나 위치할 수 있다는 것에 유의하라. 일부의 실시예에서, 초기의 토큰 요소는 커넥션 요소에 직접 결합되어 있다. 그렇지만, 일부의 ASIC 구현에서는 초기의 토큰을 다른 곳에 부가하는 것이 이로울 수 있다.
방법(461)은 블록(479)으로 진행하여 동기 넷리스트를 비동기 회로 설계 표현식으로 변환하는 단계를 포함할 수 있다. 일부의 실시예에서, 동기 회로 설계 표현식은 하드웨어 디스크립션 언어를 사용해서 표현된다. RTL을 사용해서 디스크립션을 실행하는 언어들 또는 디스크립션을 게이트 레벨로 직접 번역하는 언어들을 포함한, 어떠한 하이-레벨 행동 언어도 사용될 수 있다.
그러므로 블록(469)에서 블록(479)까지의 동작은, 하이 레벨 디스크립션(동기 설계 목적을 의미할 수도 있고 의미하지 않을 수도 있다)을, 비동기적인 데이터흐름 기반의 회로 구현으로 진행하는 단계를 포함할 수 있다. 비동기 회로 설계 표현식은 데이터흐름 그래프, 데이터흐름 그래프의 디스크립션, 또는 하이-레벨 언어 중 하나 이상을 포함할 수 있다. 데이터흐름 그래프는 데이터, 기능 블록, 소스 블록(source block), 싱크 블록(sink block), 복사 블록, 합병 블록(merge block) 및/또는 초기 블록을 나타내기 위해 하나 이상의 토큰을 포함할 수 있다. 그러므로 블록(479)의 동작은, 그 중에서도 특히, 싱글-레일 코딩, 듀얼-레일 코딩, 듀얼-레일 데이터 인코딩과 같은, 다양한 통신 메커니즘을 사용해서 실행되는 데이터흐름 모델 및 싱글 수신확인으로서, 예를 들어 비동기 회로 설계 표현식을 표현하는 단계를 포함할 수 있다.
여기서 설명된 다양한 실시예의 일부로서, 동기 논리 계산의 합성된 RTL 또는 하이-레벨 디스크립션을 데이터흐름 비동기 계산으로 변환하는 단계는, 동기 논리 회로 내의 일부의 (또는 모든) 조합 논리를 비동기 표준 셀 라이브러리 내의 대응하는 요소로 변환하는 단계, 및 동기 논리 회로 내의 하나 이상의 상태-유지 요소를 비동기 표준-셀 라이브러리로부터의 통신 링크 또는 초기의 토큰 요소 중 어느 하나로 대체하는 단계를 포함한다. 초기의 토큰 요소가 사용될지 또는 통신 링크가 사용될지는, 변환되는 상태-유지 요소의 타입에 달려 있다.
그런 다음 새로운 회로 표시(예를 들어, 비동기 코어)는 회로에 대한 외부 인터페이스가 변하지 않은 채로 남아 있도록 경계 요소로 래핑(wrap)될 수 있다. 그러므로 블록(479)의 동작은 비동기 래퍼를 동기 코어에 부가하는 단계를 포함할 수 있다.
이 방법에서, 비동기 회로 설계 표현식은 동기 입력 신호 및 동기 출력 신호를 포함할 수 있다. 동기 부분 및 비동기 부분 모두를 사용할 수 있게 함으로써 그 중에서도 특히 소정의 ASIC 설계에 추가의 이점을 제공할 수 있다. 예를 들어, 단일의 동기 장치 내에 복수의 비동기 코어를 내장할 수 있다.
블록(479)의 동작은 또한 비동기 회로 설계 표현식의 타이밍 특성을 유효하게 하기 위해, 비동기 회로 설계 표현식의 성능 특성을 동기 도메인으로 전환하는 주석(annotation)을 생성하는 변환을 포함할 수 있다. 블록(479)의 동작은 또한 하나 이상의 ASIC를 제조하는데 사용되는 명령어로서 비동기 회로 설계 표현식을 저장하는 단계를 포함할 수 있다. 물론, 이 표시는 원한다면 데이터흐름 그래프 방식으로 저장될 수도 있다.
일부의 실시예에서, 방법(461)은 회로 성능을 조정하는 단계를 포함할 수 있다. 그렇지 않은 경우, 방법(461)은 블록(489)으로 진행할 수 있다. 그렇지 않으면, 일부의 실시예에서, 방법(461)은 블록(485)에서 비동기 회로 설계 표현식의 성능을 평균처리량(average throughput)을 증가시키기 위해 커넥션 요소(CE)를 비동기 회로 설계 표현식에 부가하는 단계를 포함할 수 있다.
당업자는 많은 다양한 이유로 CE가 부가될 수 있다는 것을 알게 될 것이다. 예를 들어, 수 개의 CE가 투입되었던 접속 경로를 구현함으로써, 수 개의 데이터 토큰이 동시에 "인 플라잇(in flight)"될 수 있게 한다. 또한, 많은 레벨의 논리가 있는 경우, 두 개의 논리 레벨 사이에 투입된 CE를 사용하여, 하나의 데이터 토큰이 레벨의 첫 번째 절반을 통과할 수 있게 하는 동안, 다른 데이터 토큰이 그 레벨의 두 번째 절반을 통과할 수 있게 하여, 처리량을 증가시킨다. 때때로 CE의 투입은, 파이프라인화된 프로세스의 이점이 종종 새로운 데이터 토큰을 위한 지연을 부가함이 없이 얻어질 수 있기 때문에, "투명한 파이프라인 스테이지"를 사용하는 것으로 알려져 있다.
블록(485)의 동작은 또한, 비동기 컴포넌트들 사이의 경로 타이밍의 균형을 잡기 위해, CE를 비동기 회로 설계 표현식에 부가하는 단계를 포함할 수 있다. 일부의 경우에, CE는 경로 성능의 균형을 잡기 위해 리컨버전트 경로(reconvergent path) 중 '짧은' 경로에 부가될 수 있으며, 결과적인 구성이 더 빠른 속도로 운용될 수 있게 된다.
방법(461)은 블록(489)으로 진행하여 비동기 회로 설계 표현식으로부터 비동기 넷리스트를 생성할 수 있다. 일부의 실시예에서, 비동기 넷리스트는 ASIC 상에서의 구현을 위해 구성될 수 있다. 그러므로 방법(461)은 블록(491)에서 비동기 회로 설계 표현식에 기초하여 ASIC를 제조하는 단계를 포함하고 블록(495)에서 종료한다.
당업자는 도 4에 도시된 방법 요소의 일부를 도 1에 도시된 방법 요소 중 어느 요소에 부가하거나 그 요소와 대체할 수 있다는 것을 알게 될 것이다. 부가적으로, 당업자는 또한 각각의 특징으로부터의 요소를 직렬, 병렬, 루프, 및/또는 반복 방식으로 사용하는 다양한 방법을 형성하기 위해, 도 1 및 도 4 모두의 방법 요소 각각이 다양한 방법으로 다른 요소들과 결합될 수 있다는 것을 알게 될 것이다. 많은 다른 실시예도 실현될 수 있다.
예를 들어, 도 5는 본 발명에 따라, 동기 논리에서 비동기 논리로의 변환과 결합해서 사용되는 장치(500) 및 시스템(510)에 대한 블록도이다. 장치(500) 및 시스템(510)은 하나 이상의 네트워크(예를 들어, 근거리 통신망(LAN) 및 광역망(WAN)과 같은 네트워크(518))를 통해 동작되는 기계가 액세스 가능하고 판독 가능한 매체에서 구현될 수 있다. 네트워크(518)는 유선, 무선 또는 유선과 무선의 조합일 수 있다. 장치(500) 및 시스템(510)은 그중에서도 특히 도 1 및 도 4의 방법(111) 및 방법(461)과 관련된 프로세스를 각각 실행한다.
장치(500)는 많은 장치를 포함하는데 예를 들어 단말기(502), 서버(530), 범용 컴퓨터, 및 계산 능력이 있는 그외 장치를 포함한다. 장치(500)는 메모리(554)에 연결된 하나 이상의 프로세서(504)를 포함할 수 있다.
장치(500)는 동기 설계 정보(544)를 생성하는데 사용되는 하나 이상의 사용자 입력 장치(508)를 포함할 수 있다. 사용자 입력 장치(508)는 음성 인식기(516), 키보드 또는 키패드(520), 터치 스크린(524), 또는 마우스(528) 중 하나 이상을 포함할 수 있다. 디스플레이(506) 및/또는 터치 스크린(524)은 하나 이상의 GUI(526)를 디스플레이하는데 사용될 수 있다. GUI(526)는 동기 설계 디스크립션, 비동기 설계 디스크립션, 자동 대체를 위한 표준 동기 및 비동기 설계 라이브러리 컴포넌트, 및 그외 정보 디스플레이하거나 제시하는데 사용될 수 있다.
하나 이상의 프로세서(504), 합성 모듈(538), 대체 모듈(540), 및 변환 모듈(542)이 단일의 서버(530)에 포함될 수 있다. 장치(500)는 다양한 정보를 포함하는 데이터 구조(556)(예를 들어, 표준 라이브러리 컴포넌트 셀 데이터를 포함하는, 동기 및/또는 비동기 설계 정보의 데이터베이스)를 저장하기 위해 하나 이상의 저장 장치(550)를 포함할 수 있다.
동기 설계 정보(544)는 사용자 인터페이스 장치(508), 메모리(554), 데이터베이스(556)로부터 수신될 수 있는데, 메모리(554)로부터는 명령어의 형태로 수신될 수 있고, 아울러 당업자에게 알려진 다양한 다른 방식으로도 수신될 수 있다. 동기 설계 정보(544)는 한쪽으로만 제공될 수 있거나, (예를 들어, 프로그램의 초대의 일부로서) 서버(530)로부터 시작되는 요구에 응답해서 제공되거나, 또는 (예를 들어, 비동기 설계가 정형화될 수 있도록 정보를 입력하기 위한 설계자의 요구의 일부로서) 단말기(502)에 응답해서 제공될 수 있다.
표준 셀 라이브러리의 자동 대체를 사용해서 동기에서 비동기 논리 설계로의 변환을 가능하게 하는 시스템(510)은 하나 이상의 장치(500)를 포함할 수 있는데, 예를 들어 하나 이상의 단말기(502) 및 하나 이상의 서버(530)를 포함할 수 있다. 단말기(502)는 데스크톱 컴퓨터, 랩톱 컴퓨터, 셀룰러 폰, 판매시점관리(POS: point of sale) 단말기 및 네트워크(518)를 통해 서버(530)에 접속될 수 있는 그외 장치의 형태일 수 있다. 단말기(502)는 하나 이상의 프로세서(504) 및 메모리(554)를 포함할 수 있다. 네트워크(518)는 유선 네트워크, 무선 네트워크, 근거리 통신망(LAN), 또는 글로벌 컴퓨터 네트워크(예를 들어, 인터넷)와 같은 더 큰 범주의 네트워크를 포함할 수 있다. 그러므로 단말기(502)는 무선 단말기를 포함할 수 있다. 서버(530) 및 단말기(502) 각각은 동기 설계 정보(554)의 소스로서 사용될 수 있다. 그러므로 많은 실시예를 실현할 수 있다.
예를 들어, 일부의 실시예에서, 동기 회로 설계의 일부를 비동기 설계로 변환시키는 시스템은 서버(530)와 같은 컴퓨터, 이 컴퓨터에 연결되어, 동기 설계 정보(544)로부터 도출될 수 있는, 동기 회로 설계 표현식으로부터 동기 넷리스트를 생성하는 합성 툴 모듈(538)을 포함한다. 시스템(510)은 또한 비동기 코어를 형성하기 위해 동기 넷리스트에서의 표준 셀 동기 컴포넌트를, 대응하는 비동기 표준 셀 컴포넌트 라이브러리로부터 취해진 비동기 컴포넌트로 자동으로 대체하는 대체 모듈(540), 및 동기 넷리스트를 비동기 회로 설계로 변환시키는 변환 모듈(542)을 포함한다.
시스템(510)은, 동기 회로 설계 표현식(예를 들어, 동기 설계 정보(544)의 일부 또는 전부)의 식별을 수신하기 위해, 컴퓨터에 연결되어 GUI(graphical user interface)(526)를 제공하는 사용자 단말기(502)를 포함할 수 있다. 예를 들어, 단말기(502)는 ASIC 설계 단말기를 포함할 수 있다. 시스템(510)은 컴퓨터에 연결되어 동기 회로 설계 표현식을 데이터베이스(556)에 저장하는 저장 장치(550)를 포함할 수 있다.
모듈(538, 540, 542)은 하드웨어, 소프트웨어 및 훰웨어, 또는 이것들의 조합을 포함할 수 있다. 그러므로 예를 들어 일부의 실시예는 명령어를 포함하는 기계가 판독 가능한 매체(예를 들어, 메모리(554))를 포함할 수 있으며, 이 명령어는 하나 이상의 프로세서(504)에 의해 실행될 때, 프로세서(504)로 하여금 여기에 설명된 및/또는 도 1 및 도 4에 도시된 방법들 중 임의의 방법을 수행하게 한다.
그러므로 여기에 개시된 장치, 시스템 및 방법을 실행하면, 자동화된 대체에 의해 촉진되는, 기존의 합성 툴을 사용할 수 있게 되어, 동기 논리 디스크립션을 비동기 논리 실행에 합성하는 것을 보조할 수 있다. 비동기 설계에 미숙련된 사람들은 신속하게 동기 설계를 등가의 비동기 설계로 변환할 수 있고, 그에 따라 수반되는 이점을 누릴 수 있다. 예를 들어, 일부의 동기 FPGA 설계는 더 빠른 속도 및/또는 더 높은 비중으로 ASIC 설계로 변환될 수 있다. 기존의 파운드리 및 IC 설계 회사들도 또한 동기 설계를 취하고 이러한 동기 설계를 표준 ASIC 셀 라이브러리를 이용해서 직접 실행함으로써 이러한 이점을 누릴 수 있다.
그러므로 본 발명의 실시예는 다양한 아키텍처 플랫폼, 운영 및 서버 시스템, 장치, 시스템 또는 어플리케이션으로 실행될 수 있다. 그러므로 여기에 개시된 어떠한 특정한 아키텍처 설계 또는 구현도 설명 및 이해를 위해서만 제공된 것이며 다양한 실시예를 제한하려는 의도가 아니다.
본 상세한 설명은 예시적이며 제한적인 것이 아니다. 본 발명을 재검토하면 많은 다른 실시예가 당업자에게 분명하게 될 것이다. 그러므로 실시예의 범주는 첨부된 청구의 범위를 참조하여 결정되어야 하되, 이러한 청구의 범위에 명칭이 붙은 등가의 완전한 범주와 함께 결정되어야 한다.
본 상세한 설명의 요약서는 37 C.F.R. §1.72(b)를 따르며 독자로 하여금 기술적 설명의 속성을 신속하게 확인할 수 있게 할 것이다. 청구의 범위의 범주 및 의미를 해석 또는 제한하는 데 사용되지 않도록 해야 한다.
다양한 실시예에 대한 본 상세한 설명에서, 다양한 특징은 본 명세서를 간단하게 할 목적으로 하나의 실시예에서 함께 그룹화되어 있다. 상세한 설명의 이러한 방법은 요구된 실시예가 각각의 청구항에서 명시적으로 언급되는 것보다 더 많은 특징으로 가지는 의미로 해석되어서는 안 된다. 오히려, 이하의 청구의 범위에서 반영하듯이, 본 발명의 요지는 하나의 개시된 실시예의 모든 특징들보다 덜 있게 된다. 그러므로 이하의 청구의 범위는 본 명세서로서 상세한 설명에 편입되며, 각각의 청구항은 그 자체로서 독립적인 실시예로서 유지된다.

Claims (23)

  1. 컴퓨터로 실행되는 방법에 있어서,
    복수의 클록 도메인을 포함하는 동기 회로 설계 표현식(synchronous circuit design representation)으로부터 동기 넷리스트(netlist)를 생성하는 단계;
    비동기 코어(synchronous core)를 형성하기 위해 상기 동기 넷리스트에서의 표준 셀 동기 컴포넌트를, 대응하는 비동기 표준 셀 컴포넌트 라이브러리로부터 취해진 비동기 컴포넌트로 자동으로 대체하는 단계; 및
    상기 복수의 클록 도메인과 관련된 모든 클록 주기 횟수의 최소공배수에 대응하는 반복 주기를 결정하는 단계를 포함하는, 상기 동기 넷리스트를 비동기 회로 설계 표현식으로 변환하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 동기 넷리스트는 전자 설계 인터페이스 포맷에 따라 포맷되는, 방법.
  3. 제1항에 있어서,
    상기 동기 회로 설계 표현식은 하드웨어 디스크립션 언어(hardware description language)를 사용해서 표현되는, 방법.
  4. 제1항에 있어서,
    상기 자동으로 대체하는 단계는, 상기 비동기 컴포넌트의 핀 커넥션을 상기 표준 셀 동기 컴포넌트의 핀 커넥션에 맵핑하는 단계를 포함하는, 방법.
  5. 제1항에 있어서,
    상기 자동으로 대체하는 단계는, 상기 표준 셀 동기 컴포넌트 중 하나를 포함하는 상태-유지 요소(state-holding element)를 통신 링크 또는 초기의 토큰 요소(initial token element) 중 하나로 대체하는 단계를 포함하는, 방법.
  6. 제1항에 있어서,
    상기 자동으로 대체하는 단계는, 상기 표준 셀 동기 컴포넌트 중 하나를 포함하는 레지스터를 커넥션 요소와 관련된 초기의 토큰 요소로 대체하는 단계를 포함하는, 방법.
  7. 제1항에 있어서,
    상기 동기 넷리스트에, 상기 비동기 코어에 들어가는 신호들을 수신하는 동기에서 비동기로의 변환 셀(synchronous to asynchronous conversion cell)을 부가하는 단계를 포함하는 방법.
  8. 제1항에 있어서,
    상기 동기 넷리스트에, 상기 비동기 코어를 나가는 신호들을 전송하는 비동기에서 동기로의 변환 셀(asynchronous to synchronous conversion cell)을 부가하는 단계를 포함하는 방법.
  9. 제1항에 있어서,
    상기 비동기 회로 설계 표현식은, 데이터흐름 그래프(dataflow graph), 데이터흐름 그래프의 디스크립션, 또는 하이-레벨 언어 중 하나를 포함하는, 방법.
  10. 제1항에 있어서,
    상기 비동기 회로 설계 표현식을, 듀얼-레일 데이터 인코딩(dual-rail data encoding)으로 실행되는 데이터흐름 모델 및 싱글 수신확인(single acknowledge)으로서 표현하는 단계를 포함하는 방법.
  11. 제1항에 있어서,
    상기 비동기 회로 설계 표현식은, 데이터, 기능 블록(function block), 소스 블록(source block), 싱크 블록(sink block), 복사 블록, 합병 블록(merge block) 또는 초기 블록(initial block)을 나타내는 토큰들 중 적어도 하나를 포함하는, 방법.
  12. 제1항에 있어서,
    상기 비동기 회로 설계 표현식은 동기 입력 신호 및 동기 출력 신호를 포함하는, 방법.
  13. 제1항에 있어서,
    상기 변환하는 단계는, 상기 비동기 회로 설계 표현식의 타이밍 특성을 유효하게 하기 위해, 상기 비동기 회로 설계 표현식의 성능 특성을 동기 도메인(synchronous domain)으로 전환하는 주석(annotation)을 생성하는 단계를 포함하는, 방법.
  14. 제1항에 있어서,
    상기 비동기 회로 설계 표현식으로부터, 주문형 반도체(application-specific integrated circuit) 상에서의 실행을 위해 구성된 비동기 넷리스트를 생성하는 단계를 포함하는 방법.
  15. 제1항에 있어서,
    상기 비동기 회로 설계 표현식에 기초하여 주문형 반도체를 제조하는 단계를 포함하는 방법.
  16. 제1항에 있어서,
    상기 비동기 회로 설계 표현식의 평균 처리량 성능을 증가시키기 위해 상기 비동기 회로 설계 표현식에 커넥션 요소를 부가하는 단계를 포함하는 방법.
  17. 제1항에 있어서,
    상기 비동기 컴포넌트들 간의 경로 타이밍의 균형을 잡기 위해 상기 비동기 회로 설계 표현식에 커넥션 요소를 부가하는 단계를 포함하는 방법.
  18. 시스템에 있어서,
    컴퓨터;
    상기 컴퓨터에 결합되어, 복수의 클록 도메인을 포함하는 동기 회로 설계 표현식으로부터 동기 넷리스트를 생성하는 합성 툴 모듈;
    비동기 코어를 형성하기 위해 상기 동기 넷리스트에서의 표준 셀 동기 컴포넌트를, 대응하는 비동기 표준 셀 컴포넌트 라이브러리로부터 취해진 비동기 컴포넌트로 자동으로 대체하는 대체 모듈; 및
    상기 복수의 클록 도메인과 관련된 모든 클록 주기 횟수의 최소공배수에 대응하는 반복 주기를 결정하는 단계를 포함하는, 상기 동기 넷리스트를 비동기 회로 설계 표현식으로 변환하는 변환 모듈
    을 포함하는 시스템.
  19. 제18항에 있어서,
    상기 동기 회로 설게 표현식의 식별을 수신하기 위해, 상기 컴퓨터에 연결되어 그래픽 유저 인터페이스(graphical user interface)를 제공하는 사용자 단말기를 포함하는 시스템.
  20. 제18항에 있어서,
    상기 컴퓨터에 연결되어 상기 동기 회로 설계 표현식을 저장하는 저장 장치를 포함하는 시스템.
  21. 명령어를 포함하는 기계가 판독 가능한 매체에 있어서,
    상기 명령어는 하나 이상의 프로세서에 의해 수행될 때 상기 하나 이상의 프로세서로 하여금,
    복수의 클록 도메인을 포함하는 동기 회로 설계 표현식(synchronous circuit design representation)으로부터 동기 넷리스트(netlist)를 생성하는 동작;
    비동기 코어(synchronous core)를 형성하기 위해 상기 동기 넷리스트에서의 표준 셀 동기 컴포넌트를, 대응하는 비동기 표준 셀 컴포넌트 라이브러리로부터 취해진 비동기 컴포넌트로 자동으로 대체하는 동작; 및
    상기 복수의 클록 도메인과 관련된 모든 클록 주기 횟수의 최소공배수에 대응하는 반복 주기를 결정하는 동작을 포함하는, 상기 동기 넷리스트를 비동기 회로 설계 표현식으로 변환하는 동작
    을 수행하게 하는, 기계가 판독 가능한 매체.
  22. 제21항에 있어서,
    상기 명령어는 하나 이상의 프로세서에 의해 수행될 때 상기 하나 이상의 프로세서로 하여금,
    상기 비동기 회로 설계 표현식을, 주문형 반도체를 제조하는데 사용되는 명령어로서 저장하는 동작을 수행하게 하는, 기계가 판독 가능한 매체.
  23. 제21항에 있어서,
    상기 명령어는 하나 이상의 프로세서에 의해 수행될 때 상기 하나 이상의 프로세서로 하여금,
    상기 비동기 코어에 동기 래퍼(synchronous wrapper)를 부가하는 동작을 수행하게 하는, 기계가 판독 가능한 매체.
KR1020107020673A 2008-02-15 2009-02-06 동기에서 비동기로의 논리 변환 KR101591376B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/031,992 2008-02-15
US12/031,992 US7739628B2 (en) 2008-02-15 2008-02-15 Synchronous to asynchronous logic conversion

Publications (2)

Publication Number Publication Date
KR20100124770A KR20100124770A (ko) 2010-11-29
KR101591376B1 true KR101591376B1 (ko) 2016-02-03

Family

ID=40956337

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107020673A KR101591376B1 (ko) 2008-02-15 2009-02-06 동기에서 비동기로의 논리 변환

Country Status (6)

Country Link
US (2) US7739628B2 (ko)
EP (1) EP2260419A4 (ko)
JP (1) JP2011512602A (ko)
KR (1) KR101591376B1 (ko)
TW (1) TWI521367B (ko)
WO (1) WO2009102626A1 (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7610567B2 (en) * 2006-04-27 2009-10-27 Achronix Semiconductor Corporation Systems and methods for performing automated conversion of representations of synchronous circuit designs to and from representations of asynchronous circuit designs
EP2041872B1 (en) * 2006-06-28 2018-03-14 Achronix Semiconductor Corp. Reconfigurable logic fabrics for integrated circuits and systems and methods for configuring reconfigurable logic fabrics
US7614029B2 (en) * 2007-01-05 2009-11-03 Achronix Semiconductor Corporation Methods and systems for converting a synchronous circuit fabric into an asynchronous dataflow circuit fabric
TWI407744B (zh) * 2008-02-04 2013-09-01 Realtek Semiconductor Corp 網路信號處理裝置
US7739628B2 (en) * 2008-02-15 2010-06-15 Achronix Semiconductor Corporation Synchronous to asynchronous logic conversion
RU2405246C2 (ru) * 2008-04-15 2010-11-27 Институт проблем информатики Российской академии наук (ИПИ РАН) Самосинхронный триггер с однофазным информационным входом
US8448105B2 (en) * 2008-04-24 2013-05-21 University Of Southern California Clustering and fanout optimizations of asynchronous circuits
JP5409231B2 (ja) * 2008-09-26 2014-02-05 株式会社半導体エネルギー研究所 設計システム
US8161435B2 (en) * 2009-07-20 2012-04-17 Achronix Semiconductor Corporation Reset mechanism conversion
US7900078B1 (en) * 2009-09-14 2011-03-01 Achronix Semiconductor Corporation Asynchronous conversion circuitry apparatus, systems, and methods
US7982502B2 (en) * 2009-09-15 2011-07-19 Achronix Semiconductor Corporation Asynchronous circuit representation of synchronous circuit with asynchronous inputs
US8234607B2 (en) * 2009-09-15 2012-07-31 Achronix Semiconductor Corporation Token enhanced asynchronous conversion of synchonous circuits
US8832629B2 (en) * 2010-07-23 2014-09-09 Freescale Semiconductor, Inc. Method for optimising cell variant selection within a design process for an integrated circuit device
EP2469597A3 (en) 2010-12-23 2016-06-29 Commissariat à l'Énergie Atomique et aux Énergies Alternatives Multi-level integrated circuit, device and method for modeling multi-level integrated circuits
US9335977B2 (en) * 2011-07-28 2016-05-10 National Instruments Corporation Optimization of a data flow program based on access pattern information
US8928386B1 (en) * 2013-03-12 2015-01-06 Xilinx, Inc. Circuits for and methods of asychronously transmitting data in an integrated circuit
US9520180B1 (en) 2014-03-11 2016-12-13 Hypres, Inc. System and method for cryogenic hybrid technology computing and memory
US9576094B2 (en) 2014-08-20 2017-02-21 Taiwan Semiconductor Manufacturing Company, Ltd. Logic circuit and system and computer program product for logic synthesis
US11550982B2 (en) 2015-11-04 2023-01-10 Chronos Tech Llc Application specific integrated circuit interconnect
US9977853B2 (en) 2015-11-04 2018-05-22 Chronos Tech Llc Application specific integrated circuit link
US10073939B2 (en) 2015-11-04 2018-09-11 Chronos Tech Llc System and method for application specific integrated circuit design
US10181939B2 (en) 2016-07-08 2019-01-15 Chronos Tech Llc Systems and methods for the design and implementation of an input and output ports for circuit design
US10637592B2 (en) 2017-08-04 2020-04-28 Chronos Tech Llc System and methods for measuring performance of an application specific integrated circuit interconnect
JP6702285B2 (ja) * 2017-09-25 2020-06-03 カシオ計算機株式会社 衛星電波受信装置、電子時計、測位制御方法及びプログラム
US11087057B1 (en) * 2019-03-22 2021-08-10 Chronos Tech Llc System and method for application specific integrated circuit design related application information including a double nature arc abstraction
US11451230B2 (en) 2020-04-23 2022-09-20 Xilinx, Inc. Compute dataflow architecture
JP2023128232A (ja) * 2022-03-03 2023-09-14 ソニーセミコンダクタソリューションズ株式会社 処理方法、非同期式回路、および論理回路

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070256038A1 (en) 2006-04-27 2007-11-01 Achronix Semiconductor Corp. Systems and methods for performing automated conversion of representations of synchronous circuit designs to and from representations of asynchronous circuit designs

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7464361B2 (en) 2004-01-20 2008-12-09 Texas Instruments Incorporated System and method for asynchronous logic synthesis from high-level synchronous descriptions
US7584449B2 (en) * 2004-11-22 2009-09-01 Fulcrum Microsystems, Inc. Logic synthesis of multi-level domino asynchronous pipelines
US7614029B2 (en) * 2007-01-05 2009-11-03 Achronix Semiconductor Corporation Methods and systems for converting a synchronous circuit fabric into an asynchronous dataflow circuit fabric
US7739628B2 (en) 2008-02-15 2010-06-15 Achronix Semiconductor Corporation Synchronous to asynchronous logic conversion

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070256038A1 (en) 2006-04-27 2007-11-01 Achronix Semiconductor Corp. Systems and methods for performing automated conversion of representations of synchronous circuit designs to and from representations of asynchronous circuit designs

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"Automatic synthesis of asynchronous circuits from synchronous RTL descriptions", 2005 NORCHIP Conference, November 2005
"Desynchronization Synthesis of Asynchronous Circuits From Synchronous Specifications", IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems Volume 25 Number 10, October 2006

Also Published As

Publication number Publication date
TWI521367B (zh) 2016-02-11
JP2011512602A (ja) 2011-04-21
WO2009102626A1 (en) 2009-08-20
KR20100124770A (ko) 2010-11-29
EP2260419A4 (en) 2012-05-02
EP2260419A1 (en) 2010-12-15
US20100205571A1 (en) 2010-08-12
US7739628B2 (en) 2010-06-15
US8291358B2 (en) 2012-10-16
TW200949591A (en) 2009-12-01
US20090210847A1 (en) 2009-08-20

Similar Documents

Publication Publication Date Title
KR101591376B1 (ko) 동기에서 비동기로의 논리 변환
KR101061864B1 (ko) 동기 회로 설계 표현과 비동기 회로 설계 표현간의 자동 변환을 수행하기 위한 시스템 및 방법
Schreiner et al. Design centric modeling of digital hardware
US20030030474A1 (en) Master-slave flip-flop with non-skewed complementary outputs, and methods to operate and manufacture the same
JP5120785B2 (ja) 非同期式論理回路の論理回路設計装置、論理回路設計方法および論理回路設計プログラム
US20100253409A1 (en) Clock generation system and clock dividing module
JPH10134091A (ja) 論理エミュレーションの最適化回路生成法
Branover et al. Asynchronous design by conversion: Converting synchronous circuits into asynchronous ones
US8234607B2 (en) Token enhanced asynchronous conversion of synchonous circuits
US7982502B2 (en) Asynchronous circuit representation of synchronous circuit with asynchronous inputs
US6584597B1 (en) Modeling of phase synchronous circuits
Semba et al. Conversion from synchronous RTL models to asynchronous RTL models
Semba et al. Study on an RTL conversion method from pipelined synchronous RTL models into asynchronous RTL models
Calazans et al. Asynchronous Circuit Principles and a Survey of Associated Design Tools
US11030369B2 (en) Superconducting circuit with virtual timing elements and related methods
JP2010257003A (ja) 論理等価性検証システム、論理等価性検証方法、半導体集積回路の製造方法、制御プログラムおよび可読記憶媒体
De Gloria et al. Delay insensitive micro-pipelined combinational logic
Jeitler et al. Speeding up fault injection for asynchronous logic by fpga-based emulation
Yadav An Asynchronous Approach for Designing Robust Low Power Circuits
Taubin et al. 3 Synchronous-to-asynchronous RTL flow using NULL Convention Logic (NCL).
Zimmer Getting DDRs “write”–the 1x output circuit revisited
He Asynchronous logic with gate level pipelining
Taubin et al. 5 Automated gate level pipelining (weaver).
JP2001117961A (ja) 論理シミュレータ及び論理シミュレーション方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190111

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20200114

Year of fee payment: 5