KR20030057397A - 시스템 엘에스아이 설계 방법 - Google Patents

시스템 엘에스아이 설계 방법 Download PDF

Info

Publication number
KR20030057397A
KR20030057397A KR1020020084727A KR20020084727A KR20030057397A KR 20030057397 A KR20030057397 A KR 20030057397A KR 1020020084727 A KR1020020084727 A KR 1020020084727A KR 20020084727 A KR20020084727 A KR 20020084727A KR 20030057397 A KR20030057397 A KR 20030057397A
Authority
KR
South Korea
Prior art keywords
processor
dedicated
instruction processor
basic
description
Prior art date
Application number
KR1020020084727A
Other languages
English (en)
Other versions
KR100499720B1 (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 KR20030057397A publication Critical patent/KR20030057397A/ko
Application granted granted Critical
Publication of KR100499720B1 publication Critical patent/KR100499720B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking

Abstract

시스템 LSI를 설계하는 방법은: 시스템 LSI의 알고리즘 기술(D1)을 소프트웨어 그룹과 하드웨어 그룹으로 분할하는 단계와, 동작 합성에 의해 상기 하드웨어 그룹을 합성하여 RTL 기술(D5) 및 시뮬레이션용 기술(D6)을 생성하는 단계, RTL 기술(D5)에 기초하여 시스템 LSI의 회로 스케일을 검사하는 단계, 및 시뮬레이션용 기술(D6)과 소프트웨어 기술에 기초하여 시스템 LSI를 시뮬레이션하는 단계를 포함한다.

Description

시스템 엘에스아이 설계 방법{METHOD FOR DESIGNING A SYSTEM LSI}
발명의 배경
발명의 분야
본 발명은 시스템 LSI(large-scale integrated circuit) 설계 방법에 관한 것으로, 특히, 기본 명령 프로세서와 전용 명령 프로세서 사이에서 데이터를 전송하기 위한 통신 인터페이스에 대한 대역의 설계 자유도가 높은 시스템 LSI를 설계하는 방법에 관한 것이다. 또한, 본 발명은 이러한 시스템 LSI를 설계하기 위한 소프트웨어를 내부에 저장하는 기록 매체에 관한 것이다.
관련 기술의 설명
최근, 시스템의 모든 회로 시스템 기능을 단일 칩 상에서 실현하는 LSI, 또는 시스템 온 칩 LSI가 널리 사용되고 있다. 또한, 반도체 장치 제조 공정의 미세화와 함께, 시스템 LSI에 집적되는 논리 게이트의 수도 크게 증가하고 있으며, 그에 따라 상기 시스템 LSI의 처리 성능도 높아지고 있다.
시스템 LSI는 이미지 처리, 암호화, 필터링, 및 복호화와 같은 여러 가지 처리에 사용되고 있으며, 그 입/출력 신호는 여러 가지 포맷을 가지며, 이들 신호를 처리하기 위해 여러 가지 알고리즘이 사용된다. 또한, 시스템 LSI는 처리에 요구되는 성능에 따라 다양한 처리 능력(throughput)을 갖는다. 최근의 경향에 있어서, 시스템 LSI에 사용되는 알고리즘은 점점 복잡해지고 있으며, 처리 능력도 크게 향상되었다.
지금까지 상술된 이유로 인해, 최근의 시스템 LSI는 사용되는 신호 처리에특화되어 설계된다.
도 5는 소프트웨어-하드웨어 공동(software-hardware-collaborated; SHC) 설계 시스템을 사용하여 시스템 LSI를 설계하는 순서도를 도시한다. 일반적으로, 동작 합성(behavior synthesis)을 사용하는 SHC 설계 시스템에 있어서, C언어와 같은 범용 언어나, 동작 레벨 기술(operational level description)에 사용되는 전용 언어와 같은 고급 언어로 기술된 알고리즘 기술(algorithmic description; D1)은 논리 합성용 RTL(register transfer level; 레지스터 전송 레벨) 기술(D5)과 같은 저급 언어 기술로 변환된다. RTL 기술은 레지스터와 같은 메모리를 포함하는 하드웨어 리소스와, 가산기와 같은 프로세서를 사용하여 하드웨어로 변환될 수 있다.
알고리즘 기술(D1)은 시스템 LSI의 모든 기능을 기술한다. 만약 대부분의 성능이 하드웨어로 구현된다면, 시스템 LSI는 더 큰 회로 규모를 가지게 되어 더 고가로 되지만, 처리 속도는 더 높아진다. 한편, 대부분의 기능이 소프트웨어로 구현된다면, 처리량은 낮지만, 회로 규모는 더 작아진다. 따라서, 설계의 초기 단계에서, 도 1에 도시된 바와 같이, 알고리즘 기술(D1)에 기술된 기능은 회로 규모, 처리량, 비용 등을 포함하는 시스템 LSI의 제약(또는 설정)을 고려하여 두 그룹으로 분할된다(단계 S201). 두 그룹은 하드웨어 리소스에 의해 구현되는 제 1의 그룹과, 소프트웨어 리소스에 의해 구현되는 제 2의 그룹을 포함한다.
만약 모든 하드웨어 리소스를 처음부터 설계하면, 하드웨어 리소스 개발에 많은 비용과 많은 시간을 요하게 될 것이다. 이 때문에, 지금까지 축적된 자원을 활용하여, 하드웨어 지적 재산(IP)으로 보유하는 설계만의 하드웨어매크로(hardware macro)를 가능한한 재이용하여 설계한다. 하드웨어 IP는 일반적으로 재사용성 및 범용성을 고려하여 설계되어, 시스템 LSI의 구조에 쉽게 설치된다.
하드웨어는 범용적인 연산 처리를 위한 마이크로프로세서와 같은 기본 명령 프로세서(11)와 입/출력 처리와 같은 특정 처리를 행하는 전용 명령 프로세서(12)를 조합하여 설계된다. 이미 설계된 하드웨어 IP는 일반적으로 기본 명령 프로세서(11)로서 사용된다. 기본 명령 프로세서(11)는 시스템 LSI를 개발하는 부문과는 별도의 프로세서 설계를 전문으로 하는 반도체 메이커의 다른 부문에 의해 레지스터 전송 설계 기술로 설계된다. 기본 명령 프로세서(11)용 기술은 시뮬레이션용 기술(simulation description; D6a)와 함께 제공된다.
사용하는 기본 명령 프로세서(1)가 결정되면, 전용 명령 프로세서(12)의 설계로 이행한다(단계 S202). 전용 며영 프로세서(12)와 기본 명령 프로세서(11)는 버스를 통해 데이터의 통신을 행하기 때문에, 전용 명령 프로세서(12)의 설계시, 그 버스 인터페이스는 기본 명령 프로세서(11)의 버스 사용에 맞추어 설계된다. 전용 명령 프로세서(12)의 설계에는, 그 기능이 고급 언어로 기술된다.
전용 명령 프로세서(12)의 기술로부터, 전용 명령 프로세서(12)의 RTL 기술(D5b)과 시뮬레이션용 기술(D6b)이 얻어진다(단계 S203). 얻어진 전용 명령 프로세서(12)의 RTL 기술(D5b)이 회로 규모를 시스템 LSI의 제약으로 이미 설정된 회로 규모 이내로 실현할 수 있는지의 여부가 단계 S204에서 판정된다. 설정된 회로 규모를 초과하면, 단계 S201로 돌아가서, 시스템 LSI의 설계를 처음부터 다시 시작한다. 설정된 회로 규모 이내인 것으로 단계 S204에서 판정되면, 기본 명령 프로세서(11)의 RTL 기술(D5a)과 전용 명령 프로세서(12)의 기술(D5b)은 버스 RTL 기술(5c)를 통해 결합된다(단계 S205).
계속해서, 소프트웨어 설계에 있어서, 응용 프로그램과 전용 명령 프로세서(12)를 동작시키기 위한 디바이스 드라이버가 고급 언어로 기술된다(단계 S206). 응용 프로그램과 디바이스 드라이버는 컴파일러를 사용하여 컴파일되고 기본 명령 프로세서(11) 또는 전용 명령 프로세서(12)가 바로 이해할 수 있는 기계어 명령으로 번역된다(단계 S207). 이렇게 얻어진 기계어 명령과, 시뮬레이션용 기술(D6a 및 D6b) 및 버스 시뮬레이션용 기술(D6c)을 결합하여 전체 시뮬레이션용 기술을 형성하고, 명령 세트 시뮬레이터로 입력하여, 시스템 LSI의 환경과 유사한 환경에서 시뮬레이션을 수행한다(단계 S209).
명령 세트 시뮬레이터에서 하드웨어와 소프트웨어를 시뮬레이션함으로써, 하드웨어 및 소프트웨어의 설계에 오류가 없는지가 검사 또는 점검된다. 단계 S209에서는, 실제 서비스 조건하에서의 시스템 LSI의 처리 능력도 측정되고, 이렇게 측정된 처리 능력이 시스템 LSI의 요구되는 성능을 만족하는지가 판정된다(단계 S210). 판정 결과가 부정적이면, 단계 S201로 돌아가서, 소프트웨어 및 하드웨어 그룹으로의 기능 분할이 수정된다. 단계 210에서의 판정의 결과가 긍정적인 것이면, 시스템 LSI용 설계가 완료되고, 그 후, 기본 명령 프로세서(11)의 RTL 기술(D5a), 전용 명령 프로세서(12)의 RTL 기술(D5b), 및 버스 RTL 기술(D5c)의 논리 합성이 수행되어 시스템 LSI의 실제 게이트 회로를 결정한다.
도 6은 지금까지 설명된 종래의 설계에 의해 얻어진 시스템 LSI의 구성을 도시한다. 시스템 LSI는 기본 명령 프로세서(11)와 전용 명령 프로세서(12)를 포함하며, 이들은 명령 제어 버스(71)와 데이터 통신 버스(72)를 통해 접속되어 있다. 기본 명령 프로세서(11)는: 명령 디코더(21), 데이터 메모리 제어기(22) 및 실행 처리 제어기(execution controller; 23)를 포함하는 명령 제어 블록과; 데이터 메모리 블록(24)과; 실행 처리 블록(25)과; 명령 제어 인터페이스(41a)와; 데이터 메모리 인터페이스(42a)와; 실행 처리 인터페이스(43a); 및 명령 페치 레지스터(20)를 포함한다. 전용 명령 프로세서(12)는: 명령 디코더(1), 데이터 메모리 제어기(32), 및 실행 처리 제어기(33)를 포함하는 명령 제어 블록과; 데이터 메모리 블록(34)과; 실행 처리 블록(35)과; 명령 제어 인터페이스(41b)와; 데이터 메모리 인터페이스(42b); 및 실행 처리 인터페이스(43a)를 포함한다.
명령 데이터 버스(51a)와 명령 제어 버스(52a)는 명령 제어 인터페이스(41a)에 연결된다. 메모리 선택 버스(53a)와 메모리 액세스 버스(54a)는 데이터 메모리 인터페이스(42a)에 연결된다. 실행 처리 선택 버스(55a)와 실행 처리 액세스 버스(56a)는 실행 처리 인터페이스(43a)에 연결된다.
명령 제어 인터페이스(41a)는 데이터 메모리 인터페이스(42a)를 제어하기 위한 제어 신호를 메모리 제어 버스(61a)를 통해 전달하고, 또한, 실행 처리 인터페이스(43a)를 제어하기 위한 제어 신호를 실행 처리 제어 버스(62a)를 통해 전달한다. 데이터 메모리 인터페이스(42a)는 명령 제어 인터페이스(41a)로부터 수신된 제어 신호에 기초하여 메모리 선택 버스(53a)를 통해 데이터 메모리를 선택하여, 메모리 액세스 버스(54a)를 통해 전달된 데이터의 판독/기록(R/W)의 타이밍을 제어한다.
실행 처리 인터페이스(43a)는 명령 제어 인터페이스(41a)로부터 수신된 제어 신호에 기초하여 실행 처리 선택 버스(55a)를 통해 실행 처리 유닛(26)을 선택하여, 실행 처리 액세스 버스(56a)를 통한 데이터의 입/출력(I/O)을 제어하고 판독 액세스 버스(63a) 및 기록 액세스 버스(64a)를 통해 데이터를 데이터 메모리 블록으로부터/으로 판독/기록한다.
명령 데이터 버스(51b)와 명령 제어 버스(52b)는 명령 제어 인터페이스(41b)에 연결된다. 메모리 선택 버스(53b)와 메모리 액세스 버스(54b)는 데이터 메모리 인터페이스(42b)에 연결된다. 실행 처리 선택 버스(55b)와 실행 처리 액세스 버스(56b)는 실행 처리 인터페이스(43b)에 연결된다.
명령 제어 인터페이스(41b)는 메모리 제어 버스(61b)를 통해 데이터 메모리 인터페이스(42b)를 제어하기 위한 제어 신호를 전달하고, 또한, 실행 처리 제어 버스(62b)를 통해 실행 처리 인터페이스(43b)를 제어하기 위한 제어 신호를 전달한다. 데이터 메모리 인터페이스(42b)는 명령 제어 인터페이스(41b)로부터 수신된 제어 신호에 기초하여 메모리 선택 버스(53b)를 통해 데이터 메모리를 선택하여, 메모리 액세스 버스(54b)를 통한 데이터의 R/W의 타이밍을 제어한다. 실행 처리 인터페이스(43b)는 명령 제어 인터페이스(41b)로부터 수신된 제어 신호에 기초하여 실행 처리 선택 버스(55b)를 통해 실행 처리 유닛(36)을 선택하여, 실행 처리 액세스 버스(56b)를 통한 데이터의 I/O를 제어하고 판독 액세스 버스(63b)와 기록 액세스 버스(64b)를 통해 데이터 메모리 블록(34)의 데이터를 판독/기록한다.
명령 제어 인터페이스(41a 및 41b)는 명령 제어 버스(71)를 통해 서로 연결된다. 데이터 메모리 인터페이스(42a 및 42b)는 데이터 통신 버스(72)를 통해 서로 연결된다. 전용 명령 프로세서(12)는 명령 제어 버스(71)를 통해 명령 페치 레지스터(20)를 액세스하여, 데이터 통신 버스(72)를 통해 데이터 메모리 블록(24)으로부터/으로 데이터를 판독/기록한다. 전용 명령 메모리(12)가 메모리 블록(24)에서 동시에 액세스할 수 있는 데이터 메모리의 수는 데이터 통신 버스(72)의 버스-대역에 의해 정해진다.
상기 상술된 종래의 설계에 있어서, 기본 명령 프로세서(11)와 전용 명령 프로세서(12) 사이에 배치된 인터페이스와 버스는 기본 명령 프로세서(11)의 명세(specification)에 기초하여 결정되고 고정되는데, 여기서 프로세서(11 및 12)의 리소스는 고정된 조건하에서 서로 공유된다. 예를 들면, 데이터 통신 버스(72)의 버스-대역이 전용 명령 프로세서(12)가 데이터 메모리 블록(24)에서 동시에 액세스할 수 있는 데이터 메모리의 수보다 적다면, 액세스는 단일 클록 싸이클에서 수행될 수 없고 작은 버스-대역으로 인해 다수의 클록 싸이클을 요하게 된다.
또한, 기본 명령 프로세서(11)가 범용성이 높은 연산 리소스를 실행 처리 블록(25)에 포함하고 있을지라도, 실행 처리 블록(25)과 실행 처리 블록(35) 사이에 버스가 없기 때문에, 실행 처리 블록(25)은 실행 처리 블록(35)으로부터 액세스될 수 없다. 이 때문에, 기본 명령 프로세서(11)와 전용 명령 프로세서(12)가 동일한 룰의 알고리즘의 연산에 대해 동작하는 경우에도, 연산 자원은 프로세서(11 및 12) 둘 다에 대해 개별적으로 배치된다.
시스템 LSI의 동작의 검증을 위해 명령 세트 시뮬레이터에 입력된 시뮬레이션용 기술은 기본 명령 프로세서(11)와, 전용 명령 프로세서(12) 및 버스 블록에 대한 각각의 설계동안 개별적으로 생성된다. 시스템 LSI의 동작의 검증을 위해 명령 세트 시뮬레이터가 개별적인 시뮬레이션용 기술을 결합하기 때문에, 버스 블록의 설계가 완료된 후, 명령 세트 시뮬레이터는 기본 명령 프로세서(11)와 전용 명령 프로세서(12) 사이의 통신뿐만 아니라 전용 명령 프로세서(12)의 디바이스 드라이버도 저급 언어(low-level language)로 검증해야 한다. 이 검증은 복잡하고 많은 시간을 요한다.
종래 기술의 상기 문제를 해결할 수 있는 기술로서, 근래, 특정 용도(user-specific)의 LSI에서의 게이트 수, 처리 능력, 소비 전력과 같은 설정(또는 제약)에 기초한 메모리 사이즈와 같은 리소스를 변경하여 기본 명령 프로세서 아키텍쳐를 재구성하는 "Xtensa" 프로세서가 제안되었다(Design Wave Magazine 1999 December). 상기 제안된 프로세서에 있어서, 재구성될 기본 명령 프로세서의 인터페이스와 별도로 전용 명령을 위한 부가적인 인터페이스가 정의된다.
VUPU 프로세서로 칭해지는 다른 프로세서도 공지되어 있는데, 이 프로세서는 사용자 전용의 명령 프로세서 아키텍처(user-specific dedicated-instruction processor architecture)의 동작 레벨 기술의 언어를 RTL 기술로 변환하는 동작 합성에 의해 얻어지는 전용 명령을 갖는다. VUPU 프로세서는 기본 명령 프로세서로부터의 명령에 의해 동작될 수 있다(Design Wave Magazine 1999. December).
제안된 VUPU 프로세서에 있어서, 기본 명령 프로세서 아키텍쳐와 전용 명령을 부가하기 위한 인터페이스가 정의되는데, 여기서 기본 명령 프로세서 아키텍쳐와 전용 명령 프로세서 아키텍쳐는 분리된다.
따라서, 기본 명령 프로세서와 전용 명령 프로세서 사이에서 데이터를 전송하기 위한 통신 인터페이스의 대역에 대한 설계 자유도가 높으며, 기본 명령 프로세서와 전용 명령 프로세서 사이에서 하드웨어 리소스를 공유되도록 함으로써 저비용으로 제조될 수 있는 시스템 LSI를 설계하는 방법을 제공하는 것이 본 발명의 목적이다.
본 발명의 다른 목적은 이러한 시스템 LSI를 설계하기 위한 프로그램을 내부에 저장하기 위한 저장 매체를 제공하는 것이다.
본 발명은 전용 소프트웨어에서 동작하는 시스템 LSI 설계 방법을 제공하는데, 상기 방법은: 기본 명령 프로세서, 전용 명령 프로세서 및 상기 기본 명령 프로세서와 상기 전용 명령 프로세서 사이에서 데이터를 전송하기 위한 통신 인터페이스의 기능을 기술하여, 알고리즘 기술(algorithmic description)을 생성하는 단계; 및 동작 합성을 사용하는 것에 의해 상기 알고리즘 기술을 합성하여 상기 기본 명령 프로세서, 전용 명령 프로세서 및 통신 인터페이스에 대한 저급 언어 기술(lower-level-language description)을 생성하는 단계를 포함한다.
본 발명의 방법에 따르면, 기본 명령 프로세서, 전용 명령 프로세서 및 알고리즘에 기술된 통신 인터페이스가 동작 합성되기 때문에, 통신 인터페이스는 탄력적으로(flexibly) 구성될 수 있으며, 설계 자유도가 높은 통신 인터페이스가 얻어질 수 있다.
본 발명은 또한 본 발명의 방법을 달성하기 위한 소프트웨어를 내부에 저장하는 기록 매체를 제공한다.
본 발명의 상기 및 다른 목적, 특징 및 이점은 첨부된 도면과 연계한 하기의 설명으로부터 명확해질 것이다.
도 1은 본 발명의 실시예에 따른 시스템 LSI를 설계하기 위한 방법의 순서도.
도 2는 도 1의 방법에 의해 설계된 시스템 LSI의 기능 블록도.
도 3은 도 2의 시스템 LSI의 프로세서 기술(processor description)을 도시하는 알고리즘도.
도 4는 시스템 LSI를 설계하기 위한 도 1의 방법과 종래 방법을 포함하는 병합 방법의 순서도.
도 5는 시스템 LSI를 설계하기 위한 종래 방법의 순서도.
도 6은 도 5의 방법에 의해 설계된 시스템 LSI의 기능 블록도.
♠도면의 주요 부분에 대한 부호의 설명♠
11 : 기본 명령 프로세서
12 : 전용 명령 프로세서
13 : 통신 인터페이스
본 발명의 양호한 실시예에 있어서, 알고리즘 기술(algorithmic description)은 C언어, 또는 C++언어와 같은 다른 언어가 혼재된 C언어이다. 기본 명령 프로세서와 전용 명령 프로세서는 하나 이상의 하드웨어 리소스를 공유하는 것이 바람직하다. 이를 통해, 시스템 LSI에서의 하드웨어 리소스의 수가 감소된다. 이렇게 공유되는 하드웨어 리소스는 메모리 리소스, 연산 리소스, 멀티플렉서, 및 버스와 같은 배선 리소스를 포함한다.
동작 합성 단계는 프로세서 사이에서 데이터를 전송하는 통신 인터페이스의 대역을 결정하는 것이 바람직하다. 기본 명령 프로세서와 전용 명령 프로세서에 대한 기술(description)에 기초하여 통신 인터페이스의 대역을 결정함으로써, 통신 인터페이스에 대한 적절한 스케일이 초과하지도 부족하지도 않게 얻어질 수 있다.
동작 합성 단계는 기본 명령 프로세서, 전용 명령 프로세서 및 통신 인터페이스를 전체적으로 시뮬레이션하기 위한 시뮬레이션용 기술을 생성하는 것이 바람직하다. 이를 통해, 동작 검증을 쉽게 수행할 수 있게 된다.
본 발명의 방법은 시뮬레이션용 기술(simulation description)에 기초하여 수행되는 시뮬레이션 단계와 기계어 명령 세트를 포함하는 소프트웨어 기술을 포함하여, 시스템 LSI의 실제적인 동작이 쉽게 검증되도록 한다.
동작 합성 단계 이후에 발생할 수도 있는, 시스템 LSI의 명세(specification)의 변경 또는 오류(malfunction)를 제거하기 위한 시스템 LSI의 수정은 기본 명령 프로세서의 기본 명령 및/또는 전용 명령 프로세서의 전용 명령을 특정하는 소프트웨어 기술의 일부를 수정하여 대체되는 것이 바람직하다.
대안 또는 부가적인 것으로, 전용 명령 프로세서는 프로그램 가능한 논리 회로(programmable logic circuit)를 포함하는 용장부(redundancy portion)를 포함할 수도 있는데, 이것은 명세의 변경 또는 오류를 제거하기 위한 수정 대신 사용될 수 있다. 시스템 LSI의 배선을 수정함으로써 재구성될 프로그램 가능한 논리 회로 및/또는 회로부는 명세의 변경 및/또는 오류를 제거하기 위한 수정을 위해 사용될 수 있다.
기본 명령 프로세서에 대한 기술은 기본 명령 프로세서 라이브러리(basic-instruction processor library)로부터 추출된 소정의 명령을 결합함으로써 생성된다. 또한, 전용 명령 프로세서의 명령의 기술의 적어도 일부는 설계 이후에 기본 명령 프로세서 라이브러리에 저장된다. 이러한 경우, 기본 명령 프로세서는 소정의 기본 명령만을 사용함으로써 탄력적으로 구성되고 재구성된다. 라이브러리의 사용은 시스템 LSI의 개발에 대한 시간과 비용을 감소시킨다.
시스템 LSI에 대한 설계는 고속 동작을 달성하기 위해 적어도 하나의 기본명령 프로세서와 다수의 전용 명령 프로세서를 조합하는 것이 바람직하다. 시스템 LSI에 대한 설계는 고급 언어 중에서 C언어를 사용하는데, C언어는 시스템 LSI의 기능을 기술하는데 적합하다. C++언어와 같이 C언어로부터 확장된 다수의 언어, 동작 합성을 표현하는데 적합한 다른 수정된 언어 또는 오브젝트 지향 언어(object-oriented language)가 알고리즘 기술을 정의하는데 사용될 수도 있다.
이제, 첨부된 도면과 연계하여 본 발명이 보다 구체적으로 설명될 것이다. 도면에 있어서, 동일한 소자에는 동일한 도면 부호를 병기하였다.
도 1을 참조하면, 소프트웨어-하드웨어 공동(SHC) 설계 시스템을 사용하는 본 발명의 실시예에 따른 시스템 LSI 설계 절차가 도시되어 있다. 도 1의 절차는 도 2에 도시된 것과 같은 시스템 LSI를 제공한다.
도 1에 있어서, SHC 설계 시스템은 C언어와 같은 범용 언어, 또는 동작 레벨 기술용 전용 언어와 같은 다른 고급 언어로 기술된 알고리즘 기술(D1)을 논리 합성용 RTL(레지스터 전송 레벨) 기술(D5)로 변환하는 동작 합성을 사용한다. RTL 기술은 레지스터와 같은 메모리, 및 가산기와 같은 프로세서를 포함하는 하드웨어를 사용함으로써 하드웨어로의 변환에 적합하다.
시스템 LSI의 알고리즘 기술(D1)은, 회로 스케일, 처리 능력, 소비 전력 등을 고려하여, 하드웨어 리소스에 의해 구현되는 제 1의 그룹과 소프트웨어 리소스에 의해 구현되는 제 2의 그룹을 포함하는 두 그룹으로 분할된다(단계 S201). 하드웨어 그룹에 대한 설계는 설계된 명령을 갖는 기본 명령 프로세서(11)를 선택하는데, 이 프로세서(11)는 프로세서 블록(10)의 핵으로서 동작한다.
계속해서, 기본 명령 프로세서(11)가 처리량의 관점에서 소정의 처리 성능을 달성할 수 없으면, 전용 명령을 수행하는 전용 명령 프로세서(12)가 부가된다. 이렇게, 프로세서 블록(10)은 설계된 기본 명령을 결합하여 얻어지는 구성을 갖는 기본 명령 프로세서(11)와 전용 명령을 갖는 전용 명령 프로세서(12)를 포함한다.
프로세서 블록(10)의 설계에 있어서, 그 기능은 고급 언어로 기술된다(단계 S2). 프로세서 블록(10)의 결과적인 기술은 기본 명령 프로세서(11)에 대한 제 1의 기술과 전용 명령 프로세서(12)에 대한 제 2의 기술, 및 플렉시블 인터페이스 그룹(13)에 대한 제 3의 기술(D4)을 포함한다. 기본 명령 프로세서(11)에 대한 기술은 알고리즘 기술(D1)에 기초하여 명령 라이브러리로부터 추출된 명령을 결합함으로써 얻어진다. 전용 명령 프로세서(12)의 기능은 전용 명령 프로세서에 대한 기술(D3)에 의해 정의된다. 플렉시블 인터페이스 그룹(13)은 기본 명령 프로세서(11)와 전용 명령 프로세서(12)를 결합하며, 플렉시블 인터페이스에 대한 기술(D4)에 의해 정의된다.
플렉시블 인터페이스 그룹(13)은 명령 제어 인터페이스(41), 메모리 액세스 인터페이스(42), 및 실행 처리 인터페이스(43)를 포함한다. 하기에 상술되겠지만, 인터페이스를 서로 결합하는 각각의 버스의 대역(예를 들면, 버스 라인의 수)은 기본 명령 프로세서(11)와 전용 명령 프로세서(12)의 기술(D2 및 D3)의 내용에 의해 결정된다. 기본 명령 프로세서(11)와 전용 명령 프로세서(12)는 플렉시블 인터페이스 그룹(13)을 통해 하드웨어 리소스를 공유할 수 있다.
단계 S3에서의 프로세서 블록(10)에 대한 기술의 동작 합성은 RTL 기술(D5)과 시뮬레이션용 기술(D6)을 생성한다. 시뮬레이션용 기술(D6)은 클록 싸이클 레벨에서 프로세서 블록(10)의 동작 검증을 위해 사용된다. 단계 S4에서 RTL 기술(D5)은 프로세서 블록(10)의 회로 스케일을 검사하기 위해 사용되는데, 여기서 회로 스케일이 설정치(시스템 LSI에 대한 제약)를 초과하면, 단계 S1로 되돌아가서 단계 S1 내지 S4를 반복한다. 단계 S4에서 회로 스케일이 설정치 내에 있는 것으로 판정되면, 하드웨어의 구성이 고정된다.
소프트웨어 그룹의 설계에 있어서, 응용 프로그램은 고급 언어로 기술되고(단계 S5), 얻어질 시스템 LSI의 동작을 결정하게 된다. 프로그램 파일의 내용이 고정된 후, 프로그램은 컴파일러를 사용하여 컴파일되고(단계 S6), 이에 의해 프로세서 블록(10)이 바로 이해할 수 있는 기계어 명령 세트를 생성하게 된다(단계 S7). 이 기계어 명령 세트와 단계 S3에서 얻어진 시뮬레이션용 기술(D6)은 명령 세트 시뮬레이터에 입력되어 설계에 오류가 없는지를 검사한다.
명령 세트 시뮬레이터에 의한 시뮬레이션에 있어서, 시스템 LSI의 처리 능력이 측정된다. 처리 시간이 설정치 이상이여서 낮은 처리량을 나타내는 것으로 단계 S9에서 판정되면, 단계 S1로 돌아가서 하드웨어 그룹과 소프트웨어 그룹 사이의 알고리즘 기술의 분할에 대한 시스템 LSI를 재설계한다. 단계 S9에서 처리 시간이 설정치 이내인 것으로 판정되면, 시스템 LSI의 설계는 완료되어 시스템 LSI에 대한 프로세서 블록(10)과 응용프로그램이 고정된다.
도 2에 도시된 바와 같이, 결과적인 프로세서 블록(10)은 기본 명령 프로세서(11)와, 전용 명령 프로세서(12), 및 플렉시블 인터페이스 그룹(13)을 포함한다. 기본 명령 프로세서(11)는: 명령 디코더(21), 데이터 메모리 제어기(22), 및 실행 처리 제어기(23)를 포함하는 명령 제어기와; 데이터 메모리 블록(24); 실행 처리 블록(25); 및 명령 페치 레지스터(20)를 포함한다. 전용 명령 프로세서(12)는: 명령 디코더(31), 데이터 메모리 제어기(32), 및 실행 처리 제어기(33)를 포함하는 명령 제어기와; 데이터 메모리 블록(34); 및 실행 처리 블록(35)을 포함한다.
플렉시블 인터페이스 그룹(13)은 명령 제어 인터페이스(41), 데이터 메모리 인터페이스(42), 및 실행 처리 인터페이스(43)를 포함한다. 명령 데이터 버스(51)와 명령 제어 버스(52)는 명령 제어 인터페이스(41)에 연결된다. 명령 선택 버스(53)와 메모리 액세스 버스(54)는 데이터 메모리 인터페이스(42)에 연결된다. 실행 처리 선택 버스(55)와 실행 처리 액세스 버스(56)는 실행 처리 인터페이스(43)에 연결된다.
명령 제어 인터페이스(41)는 데이터 메모리 인터페이스(42)를 제어하기 위한 제어 신호를 메모리 제어 버스(61)를 통해 전달하고, 또한 실행 처리 인터페이스(43)를 제어하기 위한 제어 신호를 실행 처리 제어 버스(62)를 통해 전달한다. 데이터 메모리 인터페이스(42)는 실행 처리 제어 인터페이스(41)로부터 수신된 제어 신호에 기초하여 메모리 선택 버스(53)를 통해 데이터 메모리를 선택하고, 이에 의해 메모리 액세스 버스(54)를 통한 데이터의 판독/기록 동작의 타이밍을 제어한다. 실행 처리 인터페이스(43)는 명령 제어 인터페이스(41)로부터 수신된 제어 신호에 기초하여 실행 처리 선택 버스(55)를 통해 선택 유닛(26 또는 36)을선택하여 실행 처리 액세스 버스(56)를 통한 데이터의 입/출력 동작을 제어하고, 이에 의해 판독 액세스 버스(63a) 및 기록 액세스 버스(64a)를 통해 데이터 메모리 블록(24 또는 34)의 내용을 판독/기록한다.
명령 제어 인터페이스(41)는 메모리 제어 버스(61)와 메모리 선택 버스(53)를 통해 데이터 메모리 블록(24 및 34)으로 메모리 선택 신호를 전달하고, 또한 실행 처리 제어 버스(62)와 실행 처리 선택 버스(55)를 통해 실행 처리 블록(25 및 35)으로 실행 처리 선택 신호를 전달한다. 실행 처리 인터페이스(43)는 판독 액세스 버스(63), 기록 액세스 버스(64) 및 메모리 액세스 버스(54)를 통해 데이터 메모리 블록(24 및 34)으로부터/으로 데이터를 판독/기록하고, 실행 처리 액세스 버스(56)를 통해 실행 처리 블록(25 및 35)의 실행 처리 유닛(26 및 36)을 액세스한다. 버스 대역, 즉 한꺼번에 액세스될 수 있는 버스의 수는 프로세서 블록(10)의 기술에 의해 정의된다.
프로세서 블록(10)의 동작에 있어서, 도시되지 않은 프로그램 메모리로부터 판독된 명령은 명령 페치 레지스터(20)에 저장된다. 명령 디코더(21 또는 31)는 명령 페치 레지스터(20)의 내용을 판독함으로써 명령을 디코드한다. 명령이 디코드된 후, 데이터 메모리 제어기(22 또는 32)와 실행 처리 제어기(23 또는 33)는 명령 제어 인터페이스(41)와 메모리 제어 버스(61)를 통해 데이터 메모리 인터페이스(32)로 신호를 전달하고, 또한 메모리 제어 인터페이스(41)와 실행 처리 제어 버스(62)를 통해 실행 처리 인터페이스(33)로 신호를 전달한다.
신호 수신 후, 데이터 메모리 인터페이스(42)는 수신된 신호에 기초하여 메모리 선택 버스(53)를 통해 데이터 메모리를 선택한다. 실행 처리 인터페이스(43)는 실행 처리 선택 버스(55)를 통해 하나 이상의 선택 유닛(26 및 36)을 선택하고, 판독 액세스 버스(63), 기록 액세스 버스(64) 및 메모리 액세스 버스(54)를 통해 데이터를 판독/기록한다. 실행 처리 액세스 버스(56)를 통해 실행 처리 블록(25)의 어떠한 실행 처리 유닛(26)도 실행 처리 블록(35)으로부터 액세스될 수 있고, 그 반대도 가능하기 때문에, 기본 명령 프로세서(11)의 연산 리소스는 전용 명령 프로세서(12)의 연산 리소스와 함께 동시에 사용될 수 있다. 메모리 선택 버스(53), 메모리 액세스 버스(54), 실행 처리 선택 버스(55), 실행 처리 버스(56), 메모리 제어 버스(61), 실행 처리 제어 버스(62), 판독 액세스 버스(63), 및 기록 액세스 버스(64)로부터 동시에 선택 또는 액세스되는 버스의 수는 플렉시블 인터페이스 그룹(13)에 대한 기술(D4)에 의해 정의되며, 이것은 기본 명령 프로세서(11)에 대한 기술(D2)와 전용 명령 프로세서(12)에 대한 기술(D3)에 의해 결정된다.
도 3은 프로세서 블록(10)에 대한 기술을 예시화한다. 프로세서 블록(10)에 대한 기술은 기본 언어로서 C언어를 포함하는 고급 언어로 표현된다. 이 기술은 제 1 내지 제 6 행의 명령 코드 정의와, 제 8 내지 제 12행의 메모리 리소스 정의와, 제 14 내지 제 27행의 기본 명령 프로세서(11)에 대한 동작 기술, 및 제 29 내지 제 37행의 전용 명령 프로세서(12)에 대한 동작 기술을 포함한다.
도 3의 기술은 C언어 기술부와 부가 기술부(additional description part)를 포함하는데, 후자는 하기에 상세히 설명된다. "reg(x:y)"라는 표현은 MSB가 x비트째부터 시작하는 y비트 길이의 메모리의 확보를 의미한다. 예를 들어, 10번째 행의"reg(0:8)pc"는 8비트의 프로그램 카운터를 의미한다. "ter(m:n)"은 MSB가 m비트째부터 시작하는 n비트 길이의 버스 신호의 확보를 의미한다. 예를 들어, "ter(0:4)"로 시작하는 16번째 행은 opc, opr1, opr2 및 opr3를 포함하는 네 개의 버스 라인이 4비트 버스 라인으로 확보되어 있음을 의미한다. 연산자 "::"는 다수의 비트를 결합하기 위한 특수 연산자를 의미한다. 18번째 행은 4비트의 버스(opc, opr1, opr2 및 opr3)가 서로 결합되어 16비트 버스와 동일하게 취급된다는 것을 의미한다. 14번째 행의 "process"는 합성될 단위를 인식하기 위한 동작 합성 툴을 위해 사용된다.
도 3에 도시된 기술에 의하면, 기본 명령 프로세서(11)는 제 20 내지 24번째 행에 정의된 기본 명령(ADD, SUB, MOV, JMP, 및 SET)에 대해 동작하고, 전용 명령 프로세서(12)는 8비트의 승산과 상기 승산된 값과 16비트의 구성을 가지며 메모리에 저장된 두 개의 8비트 데이터를 결합하는 누산기(accumulator)에 의해 얻어지는 값의 합을 포함하는 사용자 명령(user-specific instruction)에 대해 동작한다.
기본 명령 프로세서(11)는, 제 9 내지 제 12번째 행에 도시된 기술에 기초하여, 메모리 블록(24)에 8비트 구성과 16개의 메모리를 갖는 메모리 리소스를 포함한다. 기본 명령 프로세서(11)는, 기술로부터 알 수 있는 바와 같이, 리소스로서 ADD(가산기), SUB(감산기; substracter) 및 INC(increment; 증가) 유닛을 실행 처리 블록(25) 내에 포함한다. 전용 명령 프로세서(12)는, 기술로부터 알 수 있는 바와 같이, 리소스로서 MUL(승산기) 및 ACC(누산기) 유닛을 실행 처리 블록(35) 내에 포함한다.
플렉시블 인터페이스 그룹(13)의 버스-대역에 관해서는, 제 16 내지 제 18번째 행으로부터 알 수 있는 바와 같이, 단일의 클록 싸이클에서 처리를 완료하기 위해서 명령 데이터 버스(51)가 16비트 버스여야 하고 메모리 액세스 버스(53)가 두 개의 4비트 판독 버스와 단일의 4비트 기록 버스를 가져야만하는 기본 명령 프로세서(11)의 구성에 기초하여 알 수 있다. 전용 명령 프로세서(12)의 사용자 명령을 가산하기 위해서, 메모리 액세스 버스(53)는 내부에 네 개의 판독 버스와 두 개의 기록 버스를 구비해야만 한다. 즉, 전용 명령 프로세서(12)의 제공은 두 개의 판독 버스와 단일의 기록 버스의 부가를 필요로 한다.
전용 명령 프로세서(12)에서 사용자 명령(user-specific instruction)을 실행하기 위한 실행 처리 블록(35)은 실행 처리 액세스 버스(56)를 통해 기본 명령 프로세서(11)의 리소스인 ADD 및 INC 유닛을 액세스할 수 있다. 제 33번재 행의 기수에 기초하여 실행된 16비트 가산은 실행 처리 블록(25)의 8비트 가산기와 이 목적을 위해 제공된 부가적인 8비트 가산기를 사용할 수 있으며, 이에 의해 실행 처리 블록(35)은 내부에 16비트 가산기를 구비할 필요가 없게 된다. 이렇게 하여, 두 프로세서(11 및 12)는 연산 리소스를 공유하게 된다. 기본 명령 프로세서(11)와 전용 명령 프로세서(12)는 동시에 동작하지 않으며, 따라서, 이들 프로세서(11 및 12)는 오류없이 하드웨어 리소스를 공유할 수 있게 된다.
본 실시예에 따른 시스템 LSI에 대한 설계에 있어서, 기본 명령 프로세서(11)에 대한 기술(D2), 전용 명령 프로세서(12)에 대한 기술(D3) 및 플렉시블 인터페이스 그룹(13)에 대한 기술(D4)에 대해 전체적인 동작 합성이 수행되고, 프로세서(11 및 12) 사이에서 데이터를 전송하기 위한 버스는 두 프로세서(11 및 12)에 대한 설계에 따라 탄력적으로 구성될 수 있다.
기본 명령 프로세서(11)를 기술하는 고급 언어는 기본 명령 프로세서(11)에 대한 종래의 RT 레벨 설계에 비하여 기본 명령 프로세서가(11)가 쉽게 재구성 되도록 한다. 두 프로세서(11 및 12) 사이에서 공유되는 공통 인터페이스와 버스는 버스를 통해 전용 명령 프로세서(12)가 기본 명령 프로세서(11)의 연산 리소스와 메모리 리소스를 직접적으로 액세스하도록 하고, 또는 그 반대도 가능하도록 하며, 이에 의해 효율적인 회로 구성이 얻어질 수 있다.
종래의 기술에 있어서, 시뮬레이션용 기술은 기본 명령 프로세서, 전용 명령 프로세서, 및 개별적으로 마련된 버스 블록에 대한 부분을 포함하며, 이들은 검증을 위해 명령 세트 시뮬레이터에서 결합된다. 한편, 본 실시예에 있어서, 시뮬레이션용 기술은 기술의 동작 합성으로 인해 기본 명령 프로세서, 전용 명령 프로세서, 및 플렉시블 인터페이스에 대한 모든 기능을 포함하며, 이에 의해 검증 시뮬레이션이 쉽게 달성될 수 있다.
기본 명령 프로세서와 전용 명령 프로세서를 포함하며 이렇게 설계된 프로세서 블록은 다른 전용 명령 프로세서에 부가하여 다른 시스템 LSI에서 새로운 기본 명령 프로세서로서 사용될 수도 있다. 도 4는 이러한 예를 도시하는데, 여기서는 본 실시예의 설계 방법이 종래의 설계 방법과 결합되었다. 도 4에 도시된 순서도는 도 5에 도시된 순서도와 유사한데, 다른 점은 도 5에 도시된 기본 명령프로세서(11)가 도 4에 도시된 실시예의 방법에 의해 설계된 프로세서 블록(10)으로 대체되었다는 것이다. 단계 S203에서 얻어진 전용 명령 프로세서는 RT 설계 기술에 의해 설계된 하드웨어 IP에 의해 대체될 수도 있다.
종래의 설계 방법과 상기 실시예의 설계 방법에 결합은 시스템 LSI의 기능의 일부에 대한 동작 합성을 사용한다. 다시 말하면, 주변 하드웨어 IP로서 종래의 기술에 의해 얻어진 하드웨어 IP는 본 실시예에 의해 설계된 프로세서와 결합되어 시스템 LSI를 달성할 수도 있다.
상기 실시예는 예시적은 것으로, 본 발명은 상기 실시예에 제한되지 않으며, 본 발며의 영역을 벗어나지 않는 여러 수정예와 변형예가 당업자에 의해 쉽게 실시될 수 있을 것이다.

Claims (13)

  1. 특정 소프트웨어에서 동작하는 시스템 LSI를 설계하기 위한 방법에 있어서,
    기본 명령 프로세서(11), 전용 명령 프로세서(12) 및 상기 기본 명령 프로세서(11)와 상기 전용 명령 프로세서(12) 사이에서 데이터를 전송하기 위한 통신 인터페이스의 기능을 기술하여, 알고리즘 기술(algorithmic description)을 생성하는 단계; 및
    동작 합성을 사용하는 것에 의해 상기 알고리즘 기술을 합성하여 상기 기본 명령 프로세서(11), 전용 명령 프로세서(12) 및 통신 인터페이스(13)에 대한 저급 언어 기술(lower-level-language description)을 생성하는 단계를 포함하는 것을 특징으로 하는 시스템 LSI 설계 방법.
  2. 제 1항에 있어서,
    상기 기술 단계는 단일의 언어를 사용하는 것을 특징으로 하는 시스템 LSI 설계 방법.
  3. 제 1항에 있어서,
    상기 기본 명령 프로세서(11) 및 상기 전용 명령 프로세서(12) 각각은 각기 다른 쪽 하드웨어 리소스를 사용하는 것을 특징으로 하는 시스템 LSI 설계 방법.
  4. 제 1항에 있어서,
    상기 합성 단계는 상기 통신 인터페이스(13)의 대역을 결정하는 단계를 포함하는 것을 특징으로 하는 시스템 LSI 설계 방법.
  5. 제 1항에 있어서,
    상기 합성 단계는 상기 기본 명령 프로세서(11), 상기 전용 명령 프로세서(12) 및 상기 통신 인터페이스(13)를 전체적으로 시뮬레이션하기 위한 시뮬레이션용 기술(simulation description)을 생성하는 단계를 포함하는 것을 특징으로 하는 시스템 LSI 설계 방법.
  6. 제 1항에 있어서,
    상기 시뮬레이션용 기술 및 소프트웨어 기술에 기초하여 상기 기본 명령 프로세서(11), 상기 전용 명령 프로세서(12) 및 상기 통신 인터페이스(13)를 시뮬레이션하는 단계를 더 포함하는 것을 특징으로 하는 시스템 LSI 설계 방법.
  7. 제 1항에 있어서,
    상기 합성 단계 이후에, 명세(specification)의 변경 또는 오류 발생의 경우, 상기 기본 명령 프로세서(11)에 대한 기본 명령 및/또는 상기 전용 명령 프로세서(12)에 대한 전용 명령을 규정하는 소프트웨어 기술(software description)의 일부를 수정하는 단계를 더 포함하는 것을 특징으로 하는 시스템 LSI 설계 방법.
  8. 제 1항에 있어서,
    상기 전용 명령 프로세서(12)에 대응하는 상기 알고리즘 기술의 일부는 용장 회로부(redundancy circuit portion)를 포함하고, 상기 용장 회로부는 명세의 변경 또는 오류 발생의 경우에 수정되는 것을 특징으로 하는 시스템 LSI 설계 방법.
  9. 제 1항에 있어서,
    상기 기본 명령 프로세서(11)의 기본 명령은 기본 명령 프로세서 라이브러리로부터 추출되는 것을 특징으로 하는 시스템 LSI 설계 방법.
  10. 제 9항에 있어서,
    상기 알고리즘 기술의 상기 전용 명령 프로세서(12)의 전용 명령의 적어도 일부는 상기 기본 명령 프로세서 라이브러리에 저장되는 것을 특징으로 하는 시스템 LSI 설계 방법.
  11. 제 1항에 있어서,
    상기 알고리즘 기술은 다수의 상기 전용 명령 프로세서(12)와 적어도 하나의 기본 명령 프로세서(11)를 포함하는 것을 특징으로 하는 시스템 LSI 설계 방법.
  12. 제 1항에 있어서,
    상기 알고리즘 기술은 C언어, 확장 C언어, 및/또는 오브젝트 지향 언어에 의해 정의되는 것을 특징으로 하는 시스템 LSI 설계 방법.
  13. 제 1항의 방법을 정의하는 소프트웨어를 내부에 저장하는 기록 매체.
KR10-2002-0084727A 2001-12-28 2002-12-27 시스템 엘에스아이 설계 방법 KR100499720B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2001400503A JP2003196333A (ja) 2001-12-28 2001-12-28 システムlsiの設計方法及びこれを記憶した記録媒体
JPJP-P-2001-00400503 2001-12-28

Publications (2)

Publication Number Publication Date
KR20030057397A true KR20030057397A (ko) 2003-07-04
KR100499720B1 KR100499720B1 (ko) 2005-07-07

Family

ID=19189621

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0084727A KR100499720B1 (ko) 2001-12-28 2002-12-27 시스템 엘에스아이 설계 방법

Country Status (5)

Country Link
US (2) US7062724B2 (ko)
JP (1) JP2003196333A (ko)
KR (1) KR100499720B1 (ko)
CN (1) CN1430265A (ko)
GB (1) GB2385691B (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10128373A1 (de) * 2001-06-12 2003-01-02 Infineon Technologies Ag Datenverarbeitungsvorrichtung
JP4153732B2 (ja) * 2002-06-19 2008-09-24 株式会社東芝 ハードウェア動作記述変換方法及びそのためのプログラム
JP2004054756A (ja) * 2002-07-23 2004-02-19 Nec Electronics Corp 消費電力見積り装置及び方法
JP2005084957A (ja) * 2003-09-09 2005-03-31 Nec Corp 回路動作検証装置および方法
CN100430947C (zh) * 2003-09-29 2008-11-05 北京中电华大电子设计有限责任公司 基于边的倒序树扫描线算法优化层次版图验证方法
JP2005216177A (ja) * 2004-01-30 2005-08-11 Toshiba Corp コンフィグラブル・プロセッサの設計装置、設計方法、ライブラリの最適化方法、プロセッサ、及びプロセッサを備えた半導体装置の製造方法
US8689202B1 (en) 2004-03-30 2014-04-01 Synopsys, Inc. Scheduling of instructions
US8677312B1 (en) 2004-03-30 2014-03-18 Synopsys, Inc. Generation of compiler description from architecture description
US9280326B1 (en) 2004-05-26 2016-03-08 Synopsys, Inc. Compiler retargeting based on instruction semantic models
US7313773B1 (en) * 2004-05-26 2007-12-25 Coware, Inc. Method and device for simulator generation based on semantic to behavioral translation
US7200703B2 (en) * 2004-06-08 2007-04-03 Valmiki Ramanujan K Configurable components for embedded system design
WO2006113645A2 (en) * 2005-04-18 2006-10-26 University Of Pittsburgh-Of The Commonwealth System Of Higher Education Method and software tool for automatic generation of software for integrated circuit processors
JP2007034584A (ja) * 2005-07-26 2007-02-08 Toshiba Corp 高位合成装置、自動高位合成方法、高位合成プログラム及びゲートネットリスト自動検証方法
CN100362520C (zh) * 2005-09-09 2008-01-16 深圳市海思半导体有限公司 一种专用集成电路综合系统及方法
US9830174B2 (en) * 2005-12-22 2017-11-28 Synopsys, Inc. Dynamic host code generation from architecture description for fast simulation
US9064076B1 (en) * 2006-03-23 2015-06-23 Synopsys, Inc. User interface for facilitation of high level generation of processor extensions
CN102592023B (zh) * 2012-01-06 2017-06-20 广东新岸线计算机系统芯片有限公司 集成电路设计过程中的寄存器设计方法及装置
US9075623B2 (en) * 2012-01-18 2015-07-07 International Business Machines Corporation External auxiliary execution unit interface for format conversion of instruction from issue unit to off-chip auxiliary execution unit

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AT402134B (de) 1991-04-29 1997-02-25 Voith Elin Elektronik Ges M B Verfahren zur steuerung von permanenterregten elektrisch einphasigen wechselstrommaschinen
US5845072A (en) 1994-11-10 1998-12-01 International Business Machines Corporation Method and apparatus for parallel and pipelining transference of data between integrated circuits using a common macro interface
US5748979A (en) * 1995-04-05 1998-05-05 Xilinx Inc Reprogrammable instruction set accelerator using a plurality of programmable execution units and an instruction page table
US5898595A (en) 1995-05-26 1999-04-27 Lsi Logic Corporation Automated generation of megacells in an integrated circuit design system
US6058263A (en) 1996-06-03 2000-05-02 Microsoft Corporation Interface hardware design using internal and external interfaces
JP3215344B2 (ja) 1997-03-10 2001-10-02 株式会社東芝 プロセッサ及びそのバグ回避方法
EP0918280B1 (en) * 1997-11-19 2004-03-24 IMEC vzw System and method for context switching on predetermined interruption points
US6477683B1 (en) * 1999-02-05 2002-11-05 Tensilica, Inc. Automated processor generation system for designing a configurable processor and method for the same
GB0019341D0 (en) * 2000-08-08 2000-09-27 Easics Nv System-on-chip solutions
US6961462B2 (en) * 2001-01-22 2005-11-01 Matsushita Electric Industrial Co., Ltd. Image processing method and image processor
US20020152061A1 (en) * 2001-04-06 2002-10-17 Shintaro Shimogori Data processing system and design system
US20030149962A1 (en) * 2001-11-21 2003-08-07 Willis John Christopher Simulation of designs using programmable processors and electronically re-configurable logic arrays

Also Published As

Publication number Publication date
JP2003196333A (ja) 2003-07-11
CN1430265A (zh) 2003-07-16
KR100499720B1 (ko) 2005-07-07
US20030126563A1 (en) 2003-07-03
US7478351B2 (en) 2009-01-13
US7062724B2 (en) 2006-06-13
GB2385691B (en) 2004-05-26
GB0230205D0 (en) 2003-02-05
US20060195812A1 (en) 2006-08-31
GB2385691A (en) 2003-08-27

Similar Documents

Publication Publication Date Title
US7478351B2 (en) Designing system and method for designing a system LSI
US6425116B1 (en) Automated design of digital signal processing integrated circuit
Wang et al. Hardware/software instruction set configurability for system-on-chip processors
US7484186B2 (en) Method for designing a system LSI
US7865346B2 (en) Instruction encoding in a hardware simulation accelerator
JPH05502125A (ja) 後入れ先出しスタックを備えるマイクロプロセッサ、マイクロプロセッサシステム、及び後入れ先出しスタックの動作方法
JP2009517783A (ja) ロジックおよびメモリのシミュレーション用ハードウェア加速システム
US8199910B2 (en) Signature generation apparatus and signature verification apparatus
US7536534B2 (en) Processor capable of being switched among a plurality of operating modes, and method of designing said processor
US7228513B2 (en) Circuit operation verification device and method
Wilberg et al. Design flow for hardware/software cosynthesis of a video compression system
JP4531715B2 (ja) システムlsiの設計方法及びこれを記憶した記録媒体
Gharsalli et al. Unifying memory and processor wrapper architecture in multiprocessor SoC design
JP2861994B1 (ja) 回路合成方法、回路合成装置および記録媒体
JP2006202330A (ja) システムlsiの設計方法及びこれを記憶した記録媒体
JP3825328B2 (ja) プロセッサ合成装置、システムlsi合成装置、プロセッサ合成方法、システムlsi合成方法、及び記録媒体
US20120226890A1 (en) Accelerator and data processing method
WO2000068782A1 (fr) Procede de mise au point d'un circuit integre a semiconducteur
Glavinic et al. Vhdl-based modeling of a hard real-time task processor
JP5626724B2 (ja) アクセラレータ及びデータ処理方法
Yun et al. An interface protocol component modeling language
Amla et al. Rapid-prototyping of a cellular processor
JP2006079226A (ja) ハードウエア記述言語合成ツール及びそれを利用した集積回路の設計方法
Asthana et al. SEMU: a parallel processing system for timing simulation of digital CMOS VLSI circuits
JPH04138571A (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: 20090623

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee