KR100764588B1 - 디지털 회로의 자동 설계 장치, 자동 설계 방법, 및 자동설계 프로그램 - Google Patents

디지털 회로의 자동 설계 장치, 자동 설계 방법, 및 자동설계 프로그램 Download PDF

Info

Publication number
KR100764588B1
KR100764588B1 KR1020060037602A KR20060037602A KR100764588B1 KR 100764588 B1 KR100764588 B1 KR 100764588B1 KR 1020060037602 A KR1020060037602 A KR 1020060037602A KR 20060037602 A KR20060037602 A KR 20060037602A KR 100764588 B1 KR100764588 B1 KR 100764588B1
Authority
KR
South Korea
Prior art keywords
model
control
control device
circuit
means configured
Prior art date
Application number
KR1020060037602A
Other languages
English (en)
Other versions
KR20070078960A (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 KR20070078960A publication Critical patent/KR20070078960A/ko
Application granted granted Critical
Publication of KR100764588B1 publication Critical patent/KR100764588B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B17/00Systems involving the use of models or simulators of said systems
    • G05B17/02Systems involving the use of models or simulators of said systems electric
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Software Systems (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Debugging And Monitoring (AREA)

Abstract

자동 디지털-회로 설계 장치는 설계 기술 언어로 기술된 제어 대상 모델을 입력받고, 유한 상태 기계 모델로 표현된 제어 대상 모델을 발생하며, 발생된 제어 대상 모델을 기억하고, 설계 기술 언어로 기술된 제어 사양 모델을 입력받고, 유한 상태 기계 모델로 표현된 제어 사양 모델을 발생하며, 발생된 제어 사양 모델을 기억하고, 발생된 제어 대상 모델과 발생된 제어 사양 모델을 합성함으로써 제어 장치 합성 모델을 발생하고, 제어가능 시뮬레이션 관계를 계산하고, 상기 제어가능 시뮬레이션 관계를 기억하며, 제어 장치 합성 모델이 제어를 제공할 수 있는 모델인지의 여부를 판정하고, 허용 동작 모델을 발생하며, 발생된 허용 동작 모델을 기억하고, 제어 룰을 결정하며, 유한 상태 기계로 표시된 제어 장치 모델을 발생하고, 이 제어 장치 모델을 설계 기술 언어로 기술된 제어 장치 모델로 변환한다.
자동 설계, 설계 기술 언어, 제어 대상 모델, 제어 사양 모델

Description

디지털 회로의 자동 설계 장치, 자동 설계 방법, 및 자동 설계 프로그램{AUTOMATIC DESIGN APPARATUS, AUTOMATIC DESIGN METHOD, AND AUTOMATIC DESIGN PROGRAM OF DIGITAL CIRCUIT}
도 1은 본 발명의 실시예에 따른 디지털 회로의 자동 설계 방법 및 자동 설계 프로그램을 도시하는 흐름도.
도 2는 본 발명의 제1 실시예에 따른 디지털 회로의 자동 설계 장치의 구성예를 나타내는 도면.
도 3a 및 3b는 본 발명에 따른 디지털 회로의 자동 설계 방법, 자동 설계 프로그램, 및 자동 설계 장치를 설명하기 위한 한 예로서의 제어계 전체의 구성을 나타내는 도면.
도 4는 Verilog 언어로 기술한 예로서의 신호 명칭의 선언을 나타내는 도면.
도 5a 및 5b는 Verilog 언어로 기술한 예로서의 제어계의 제어 사양 모델을 도시한 도면.
도 6a 및 6b는 순서 기계의 모델(천이 관계 및 초기 상태)로 표현한 예로서의 제어계의 제어 사양 모델을 도시한 도면.
도 7은 상태 천이도로 표현한 예로서의 제어계의 제어 사양 모델을 도시한 도면.
도 8은 시뮬레이션에 의해 구한 예로서의 제어계의 제어 사양 모델의 동작 타이밍도.
도 9a 및 9b는 Verilog 언어로 기술한 예로서의 제어 대상 모델을 도시한 도면.
도 10a 및 10b는 천이 관계와 초기 상태로 표현한 예로서의 제어 대상 모델을 도시한 도면.
도 11은 상태 천이도로 표현한 예로서의 제어 대상 모델을 도시한 도면.
도 12a 및 12b는 비특허 문헌 1로부터 인용한 제어계의 모델 및 제어 사양 모델을 도시한 도면.
도 13은 제어가능 시뮬레이션 관계를 예로서 도시하는 도면.
도 14a 및 14b는 허용 동작 모델을 예로서 도시하는 도면.
도 15는 제어 장치의 제어 룰을 예로서 도시하는 도면.
도 16a 및 16b는 천이 관계와 초기 상태로 표현한 예로서의 제어 장치 모델을 도시한 도면.
도 17은 verilog 언어로 기술한 예로서의 제어 장치 모델을 도시한 제1 도면.
도 18a 및 18b는 Verilog 언어로 기술한 예로서의 제어 장치 모델을 도시한 제2 도면.
도 19는 예로서의 제어 장치 모델과 제어 대상 모델을 조합하고 조합된 모델을 시뮬레이션하여 얻어진 신호의 타이밍도.
도 20은 본 발명의 제2 실시예에 따른 디지털 회로의 자동 설계 장치의 구성예를 나타내는 도면.
도 21은 제2 실시예에 따른 제어 사양 모델을 시상 논리식 대응의 언어로 기술한 도면.
도 22는 타블로 규칙에 의해 전개한 기본 부분식과 상태 변수의 할당을 나타내는 도면.
도 23은 제2 실시예에 따른 제어 사양 모델의 특정예를 천이 관계로 나타낸 도면.
도 24는 제2 실시예에 따른 제어 사양 모델의 특정예의 초기 상태를 나타내는 도면.
도 25는 제2 실시예에 따른 크립키 구조(상태 천이도)로 제어 사양 모델을 표현한 도면.
도 26은 제어 사양 모델의 특정예를 종래형 타블로(크립키 구조)로 표현한 도면.
도 27은 제어 사양 모델의 특정예를 제2 실시예에 따른 천이 목적지 선택형 타블로로 표현한 제1 도면.
도 28은 제어 사양 모델의 특정예를 제2 실시예에 따른 천이 목적지 선택형 타블로로 표현한 제2 도면.
도 29는 제어 사양 모델의 특정예를 제2 실시예에 따른 천이 목적지 선택형 타블로로 표현한 제3 도면.
도 30은 도 29의 천이 관계를 나타내는 진리치표를 도시한 도면.
도 31은 도 29의 천이 관계의 초기 상태를 나타내는 표를 도시한 도면.
도 32는 종래형 타블로 구축 방법에서의 상태 변수를 구하는 방법을 나타내는 흐름도.
도 33은 제2 실시예에 따른 타블로 구축 방법에서 상태 변수를 구하는 방법을 나타내는 흐름도.
도 34는 종래형 타블로 구축 방법에서의 천이 관계(R)를 구하는 흐름도.
도 35는 제2 실시예에 따른 타블로 구축 방법에서 천이 관계(R)를 구하는 흐름도.
도 36은 제어 사양 모델과 제어 대상 모델을 합성하여 얻어지는 제어 장치 합성 모델의 천이 관계를 나타내는 도면.
도 37은 제어 사양 모델과 제어 대상 모델을 합성하여 얻어지는 제어 장치 합성 모델의 초기 상태를 나타내는 도면.
도 38은 제2 실시예에 따른 특정예의 제어가능 시뮬레이션 관계를 나타내는 도면.
도 39는 제2 실시예에 따른 특정예의 허용 동작 모델의 천이 관계를 나타내는 도면.
도 40은 제2 실시예에 따른 특정예의 허용 동작 모델의 초기 상태를 나타내는 도면.
도 41은 제2 실시예에 따른 특정예의 제어 룰을 나타내는 도면.
<도면의 주요 부분에 대한 부호의 설명>
401: 제어 대상 입력 수단
402: 제어 대상 모델 발생 수단
403: 제어 대상 모델 기억 수단
404: 제어 사양 입력 수단
405: 제어 사양 모델 발생 수단
406: 제어 사양 모델 기억 수단
407: 제어가능 시뮬레이션 관계 계산 수단
408: 제어가능 시뮬레이션 관계 기억 수단
409: 허용 동작 모델 발생 수단
410: 허용 동작 모델 기억 수단
411: 제어 룰 결정 수단
412: 제어 장치 모델 발생 수단
413: 설계 데이터 출력 수단
420: 제어가능성 판정 수단
421: 모델 합성 수단
422: 전개 수단
424: 천이 목적지 선택형 타블로 발생 수단
본 발명은, 부여된 제어 사양을 만족하는 제어 장치를 자동으로 설계하는 디지털 회로의 자동 설계 장치, 자동 설계 방법, 및 자동 설계 프로그램에 관한 것이다.
집적 회로의 밀도가 증가함에 따라, 집적 회로의 설계에서 설계 데이터의 재이용을 자주 행하도록 되어 있었다. 집적 회로의 설계 분야에서는 재이용 가능한 설계 자산을 IP(Intellectual Property)라고 부르고 있다.
최근에 이용되어 온 집적 회로의 시스템 레벨 설계에서, IP의 재이용성을 높이고 검증의 부담을 줄이기 위해, 예컨대 연산 기능의 설계와 통신 인터페이스의 설계를 분리하는 방법이 제창되고 있다.
인터페이스 회로의 설계는 설계자가 오류를 범하기 쉬운 작업이다. 이 설계는, 동작 타이밍의 정확한 기술을 요하는 동시에 병행 동작하는 다른 모듈로부터의 다양한 입력 신호를 고려할 것을 요구한다. 충분히 주의하여 설계하였다고 하더라도, 특정한 조건에서 오동작할 가능성을 완전히 배제할 수는 없다.
이 때문에, 설계 결과는 면밀하게 검증되고 있다. 검증의 대표적인 예로서, 시뮬레이션에 의한 검증과 형식적 검증이라고 불리는 검증이 있다.
시뮬레이션에 의한 검증에는 테스트를 위한 입력(즉, 테스트 벡터)이 필요하고, 테스트 벡터의 발생을 위해서는 설계 작업과는 별도로 많은 노력이 필요하다. 시뮬레이션 결과의 검사에도 큰 노력이 요구된다. 또한, 드물게 발생하는 상황까지 철저하게 조사하기 위해서는 많은 시간이 요구된다.
한편, 형식적 검증의 일종으로서 프로퍼티 검증이 있다. 이것은 바람직한 회로 동작을 기술하는 사양(프로퍼티)을 정의하고, 설계 결과가 이 프로퍼티를 만족시키는지의 여부를 자동적으로 조사하는 방법이다. 이 방법은 테스트 벡터가 필요하지 않고, 드문 상황도 포함하여 철저한 검증이 가능하기 때문에, 최근 주목을 모아 왔다.
일반적으로, 프로퍼티는 시상 논리(temporal logic)(부울 대수에 시간에 관한 연산자를 추가한 논리식을 취급하는 논리 체계)를 기반으로 한 언어로 기술되고, 이와 같은 언어의 대표적인 예로서, PSL이나 SystemVerilog Assertion이라고 불리는 언어가 있다.
인터페이스 회로의 검증에서는, 부정확한 동작을 예외적으로 유발한다라는 타입의 문제점이 많기 때문에, 이러한 프로퍼티 검증이 적합하다. 또한, 많은 경우에 있어서 인터페이스 회로는 버스 표준이나 자주 사용되는 인터페이스의 형식을 채용하기 때문에, 미리 준비된 프로퍼티를 적용할 수 있다. 그 결과, 검증에 필요한 단계수가 삭감될 수 있다.
그러나, 시뮬레이션에 의한 검증 및 프로퍼티 검증 양자 모두는 단지 설계 결과만을 검증하는 방법을 제공한다. 설계의 오류가 발견된 경우에는, 수정하여 다시 검증을 행하는 것이 요구된다. 이러한 절차에는 많은 맨파워가 요구되기 때문에, 후술하는 제어계 설계와 같이 자동적으로 제어 장치(인터페이스 회로)의 모델을 구하는 방법이 있으면 바람직하다.
특히, 인터페이스 회로 설계의 많은 경우에서, 제어 사양(프로퍼티)을 미리 준비할 수 있기 때문에, 제어계의 설계를 자동화할 수 있으면 그 효과는 높다.
일반적으로, 디지털 장치는 이산 사상 시스템(discrete event system)으로서 모델화된다. 이산 사상 시스템 중에서도 가장 단순하고, 실제로도 자주 이용되고 있는 모델은 FSM(Finite State Machine, 유한 상태 기계)이다. FSM에도 여러 가지의 종류가 있지만, 예컨대, 오토마톤(automaton), 순서 기계(sequential machine), 또는 크립키 구조(Kripke structure)는 각각 FSM의 일종이라고 생각할 수 있다.
오토마톤은 언어 이론에서 언어의 모델로서 이용되고 있다. 크립키 구조는 논리학에서 시상 논리 모델로서 이용되고 있다. 또한, 순서 기계는 디지털 회로 모델로서 이용되고 있다.
제어 장치의 모델의 발생에 관한 기초 이론적인 기술이, SunilP. Khatri, Amit Narayan, Sri-ramC. Krishnan, KennethL. McMillan, Robert. K. Brayton, A. Sangiovanni-Vincentelli, "Engineering Change in a Non-Deterministic FSM Setting", Proceedings of the 33rd annual conference on Design automation, pp.451 - 456, ISBN: 0-89791-779-0, 1996(이하, 비특허 문헌 1)에 기술되어 있다. 비특허 문헌 1은 제어 장치와 제어 대상이라는 2개의 요소를 논의하고 있다. 사전설정된 관계를 갖는 이들 2개 요소들을 포함하는 제어계에서, 제어 장치 모델(M2)은, 제어계의 사양(제어 사양)의 모델(M)과 제어 대상의 모델(M1)로부터 발생된다. 비특허 문헌 1에서는 이들 모델들을 순서 기계의 모델로서 간주하고 있다.
또한, 전술한 프로퍼티 검증의 분야에서는, 프로퍼티(제어 사양)는 시상 논리의 논리식으로서 기술되는 경우가 많다. 프로퍼티 검증의 원리는 모델 검사이다. 모델 검사란, 검증(검사)의 대상물의 모델이 크립키 구조로서 기술되어 있고, 이 크립키 구조가 시상 논리의 논리식의 모델로 되어 있는지의 여부, 즉 크립키 구조가 시상 논리의 논리식을 만족시키는지의 여부를 검사하는 것이다.
많은 문서들이 모델 검사에 관해 논의해 왔다. 예컨대 일본 특허 번호 제3600420호는 모델 검사를 효율적으로 수행하는 기술을 개시하고 있다.
또한, 순서 회로의 설계에서 순서 기계를 사용하는 것이 일반적이지만, 모델 검사에 순서 기계를 적용하기 위해서는, 순서 기계와 크립키 구조간의 관계를 명백하게 해 놓아야 한다. 이 순서 기계와 크립키 구조의 대응 관계는, 히라이시 히로미와, 하마구치 기요하루의“논리 함수 처리에 기초한 형식적 검증 방법들", 정보 처리 저널, Vol.35 No.8, 1994년 8월(이하, 비특허 문헌 2)에 개시되어 있다.
또한, E. M. Clarke, Orna Grumberg, Doron Peled, "Model Checking", MIT Press, ISBN: 0-262-03270-8, 2000.(이하, 비특허 문헌 3)에는, LTL(linear Temporal Logic)로 불리는 시상 논리, 또는, ACTL로 불리는 시상 논리의 종류로부터 타블로 구축을 행하는 방법 등이 개시되어 있다. 또한 ACTL은, CTL(Computation Tree Logic)로 불리는 시상 논리에서, E(가능)라는 연산자를 사용하지 않고 A(필연)라는 연산자만을 사용하도록 제한한 것이다.
상술한 바와 같이, 비특허 문헌 1이 개시하는 기술은, 제어계의 사양(제어 사양)의 모델(M)과 제어 대상의 모델(M1)로부터, 제어 장치 모델(M2)을 발생하는 것을 취급하고 있고, 제어 장치 모델(M2)의 자동 설계가 가능함을 암시하고 있다.
그러나, 비특허 문헌 1은, 제어 장치 모델(M2)의 자동 설계의 구체적인 순서 나, 자동 설계를 행하기 위한 구체적인 장치의 기능 구성까지를 개시하는 것이 아니다.
또한, 비특허 문헌 1에서는, 제어 사양의 모델(M)은 순서 기계 모델로서 간주되고 있다. 그러나, 일반적으로는, 모델 검사의 경우에서 기술한 바와 같이, 제어계의 사양(제어 사양) 모델(M)을 순서 기계가 아닌 시상 논리에 의한 사양으로서 표현한 쪽이 정확하면서 간편한 경우가 많다.
따라서, 본 발명은, 제어 대상에 접속된 제어 장치를 포함하는 디지털 제어계를 위한 자동 설계 장치, 자동 설계 방법, 및 자동 설계 프로그램으로서, 제어 대상의 사양과 제어계의 제어 사양이 부여되었을 때에 미리결정된 제어 사양을 만족하도록 제어 장치를 자동으로 설계할 수 있고, 제어 사양이 시상 논리에 의해 표시된 경우에도 제어 장치를 자동으로 설계할 수 있는, 자동 설계 장치, 자동 설계 방법, 및 자동 설계 프로그램을 제공하는 것을 목적으로 한다.
본 발명의 한 면에 따르면, 제어 대상 회로와 제어 장치 회로를 포함하는 디지털 제어계 회로용의 자동 설계 장치는, 제어 대상 회로의 모델과 디지털 제어계 회로의 사양 모델이 부여된 경우에 상기 제어 장치 회로의 모델을 자동 설계한다. 이 장치는, 상기 제어 대상 회로의 모델이며 소정의 설계 기술 언어로 기술된 제1 제어 대상 모델을 입력받는 제어 대상 입력 수단과, 상기 제1 제어 대상 모델로부터 유한 상태 기계의 모델로 표현된 제2 제어 대상 모델을 발생하는 제어 대상 모 델 발생 수단과, 발생된 상기 제2 제어 대상 모델을 기억하는 제어 대상 모델 기억 수단과, 상기 제어계 회로의 사양 모델이며 소정의 설계 기술 언어로 기술된 적어도 제1 제어 사양 모델을 입력받는 제어 사양 입력 수단과, 적어도 상기 제1 제어 사양 모델로부터 유한 상태 기계의 모델로 표현된 제2 제어 사양 모델을 발생하는 제어 사양 모델 발생 수단과, 상기 제2 제어 사양 모델을 기억하는 제어 사양 모델 기억 수단과, 상기 제어 대상 모델 기억 수단에 기억된 제2 제어 대상 모델과, 상기 제어 사양 모델 기억 수단에 기억된 제2 제어 사양 모델의 논리곱을 계산함으로써, 상기 제어 장치 회로의 합성 모델인 제어 장치 합성 모델을 발생하는 모델 합성 수단과, 상기 제2 제어 대상 모델과 상기 제2 제어 사양 모델로부터 상기 제어 장치 합성 모델에 대한 제약 조건을 나타내는 제어가능 시뮬레이션 관계를 계산하는 제어가능 시뮬레이션 관계 계산 수단과, 계산된 상기 제어가능 시뮬레이션 관계를 기억하는 제어가능 시뮬레이션 관계 기억 수단과, 상기 제어 장치 합성 모델이 상기 제어계 회로의 사양을 만족하는 제어를 제공할 수 있는 모델인지의 여부를 상기 제어가능 시뮬레이션 관계에 기초하여 판정하는 제어가능성 판정 수단과, 상기 제어 장치 합성 모델과 상기 제어가능 시뮬레이션 관계로부터 상기 제어 장치 합성 모델의 규모를 축소한 모델인 허용 동작 모델을 발생하는 허용 동작 모델 발생 수단과, 발생된 상기 허용 동작 모델을 기억하는 허용 동작 모델 기억 수단과, 상기 허용 동작 모델의 규모를 더 축소할 수 있는 제어 룰을 결정하는 제어 룰 결정 수단과, 상기 허용 동작 모델과 상기 제어 룰의 논리곱을 계산함으로써, 유한 상태 기계의 모델로 표현된 제어 장치 모델을 발생하는 제어 장치 모델 발생 수단을 포 함한다.
본 발명의 또 다른 면에 따르면, 제어 대상 회로와 제어 장치 회로를 포함하는 디지털 제어계 회로용의 자동 설계 방법은, 제어 대상 회로의 모델과 디지털 제어계 회로의 사양 모델이 부여된 경우에 상기 제어 장치 회로의 모델을 자동 설계한다. 이 방법은, 상기 제어 대상 회로의 모델이며 소정의 설계 기술 언어로 기술된 제1 제어 대상 모델을 입력받는 제어 대상 입력 단계와, 상기 제1 제어 대상 모델로부터 유한 상태 기계의 모델로 표현된 제2 제어 대상 모델을 발생하는 제어 대상 모델 발생 단계와, 상기 제어계 회로의 사양 모델이며 소정의 설계 기술 언어로 기술된 적어도 제1 제어 사양 모델을 입력받는 제어 사양 입력 단계와, 적어도 상기 제1 제어 사양 모델로부터 유한 상태 기계의 모델로 표현된 제2 제어 사양 모델을 발생하는 제어 사양 모델 발생 단계와, 상기 제2 제어 대상 모델과 상기 제2 제어 사양 모델의 논리곱을 계산함으로써, 상기 제어 장치 회로의 합성 모델인 제어 장치 합성 모델을 발생하는 모델 합성 단계와, 상기 제2 제어 대상 모델과 상기 제2 제어 사양 모델로부터 상기 제어 장치 합성 모델에 대한 제약 조건을 나타내는 제어가능 시뮬레이션 관계를 계산하는 제어가능 시뮬레이션 관계 계산 단계와, 상기 제어 장치 합성 모델이 상기 제어계 회로의 사양을 만족하는 제어를 제공할 수 있는 모델인지의 여부를 상기 제어가능 시뮬레이션 관계에 기초하여 판정하는 제어가능성 판정 단계와, 상기 제어 장치 합성 모델과 상기 제어가능 시뮬레이션 관계로부터 상기 제어 장치 합성 모델의 규모를 축소한 모델인 허용 동작 모델을 발생하는 허용 동작 모델 발생 단계와, 상기 허용 동작 모델의 규모를 더 축소할 수 있 는 제어 룰을 결정하는 제어 룰 결정 단계와, 상기 허용 동작 모델과 상기 제어 룰의 논리곱을 계산함으로써, 유한 상태 기계의 모델로 표현된 제어 장치 모델을 발생하는 제어 장치 모델 발생 단계를 포함한다.
본 발명의 역시 또 다른 면에 따르면, 제어 대상 회로와 제어 장치 회로를 포함하는 디지털 제어계 회로용의 자동 설계 프로그램은, 제어 대상 회로의 모델과 디지털 제어계 회로의 사양 모델이 부여된 경우에 상기 제어 장치 회로의 모델을 자동 설계한다. 이 프로그램은, 상기 제어 대상 회로의 모델이며 소정의 설계 기술 언어로 기술된 제1 제어 대상 모델을 입력받는 제어 대상 입력 단계와, 상기 제1 제어 대상 모델로부터 유한 상태 기계의 모델로 표현된 제2 제어 대상 모델을 발생하는 제어 대상 모델 발생 단계와, 상기 제어계 회로의 사양 모델이며 소정의 설계 기술 언어로 기술된 적어도 제1 제어 사양 모델을 입력받는 제어 사양 입력 단계와, 적어도 상기 제1 제어 사양 모델로부터 유한 상태 기계의 모델로 표현된 제2 제어 사양 모델을 발생하는 제어 사양 모델 발생 단계와, 상기 제2 제어 대상 모델과 상기 제2 제어 사양 모델의 논리곱을 계산함으로써, 상기 제어 장치 회로의 합성 모델인 제어 장치 합성 모델을 발생하는 모델 합성 단계와, 상기 제2 제어 대상 모델과 상기 제2 제어 사양 모델로부터 상기 제어 장치 합성 모델에 대한 제약 조건을 나타내는 제어가능 시뮬레이션 관계를 계산하는 제어가능 시뮬레이션 관계 계산 단계와, 상기 제어 장치 합성 모델이 상기 제어계 회로의 사양을 만족하는 제어를 제공할 수 있는 모델인지의 여부를 상기 제어가능 시뮬레이션 관계에 기초하여 판정하는 제어가능성 판정 단계와, 상기 제어 장치 합성 모델과 상기 제어가능 시 뮬레이션 관계로부터 상기 제어 장치 합성 모델의 규모를 축소한 모델인 허용 동작 모델을 발생하는 허용 동작 모델 발생 단계와, 상기 허용 동작 모델의 규모를 더 축소할 수 있는 제어 룰을 결정하는 제어 룰 결정 단계와, 상기 허용 동작 모델과 상기 제어 룰의 논리곱을 계산함으로써, 유한 상태 기계의 모델로 표현된 제어 장치 모델을 발생하는 제어 장치 모델 발생 단계를 컴퓨터로하여금 실행시키도록 하는 명령을 포함한다.
본 발명에 따르면, 제어 대상에 접속된 제어 장치를 포함하는 디지털 제어계를 위한 자동 설계 장치, 자동 설계 방법, 및 자동 설계 프로그램은, 제어 대상의 사양과 제어계의 제어 사양이 부여되었을 때에 미리결정된 제어 사양을 만족하도록 제어 장치를 자동으로 설계할 수 있다. 또한, 제어 사양이 시상 논리에 의해 표시된 경우에도 상기 제어 장치가 자동으로 설계될 수 있다.
본 발명의 다양한 실시예에 따른 디지털 회로의 자동 설계 장치, 자동 설계 방법, 및 자동 설계 프로그램이 첨부된 도면을 참조하여 이하에서 설명된다.
(1) 제1 실시형태
도 1은 본 실시형태에 따른 디지털 회로의 자동 설계 방법을 설명하는 흐름도이다. 도 1의 각 단계에 관해서 우선 간단히 설명한다. 상세한 설명은 이후에 구체적인 예를 나타내면서 행한다.
우선, 제어 사양 입력 단계(301)에서는 제어 사양 모델의 데이터(제1 제어 사양 모델)를 입력한다. 이것은 Verilog나 VHDL, 또는 SystemC나 SpecC 등의 설계 기술 언어, 또는 C 언어 등의 프로그래밍 언어로 표현된 데이터 등이다. 또한, 이들의 언어로 기술된 사양을 실행가능 사양이라고 부르고, 실행가능 사양을 기술하는 언어를 실행가능 사양 언어라고 부르는 경우가 있다.
실행가능 사양은 컴퓨터의 프로그램으로서 실행할 수 있고, 시뮬레이션에 이용하거나, 또는 실장 장치의 제어계에 내장된 프로세서의 프로그램으로서 이용하는 경우도 있다.
이밖에, 실행가능 사양은, PSL이나 SystemVerilog Assertion 등의 언어에 의해 기술된 시상 논리나 그 밖의 논리식에 기초하는 프로퍼티를 나타내는 데이터인 경우도 포함한다.
제어 사양 모델 발생 단계(302)에서는, 입력된 제어 사양의 데이터를 FSM(유한 상태 기계)의 모델로 표현되는 데이터[제어 사양 모델(M): 제2 제어 사양 모델]로 변환한다.
한편, 제어 대상 입력 단계(303)에서는, 제어 대상의 모델이 기술된 데이터(제1 제어 대상 모델)를 입력한다. 이것은, Verilog나 VHDL, 또는 SystemC이나 SpecC 등의 설계 기술 언어로 기술된 제어 대상의 회로의 내용을 표현하는 데이터이다. 그 데이터를 제어 대상 모델 발생 단계(304)에서 FSM(유한 상태 기계)으로 표현되는 데이터[제어 대상 모델(M1):제2 제어 대상 모델]로 변환한다.
다음 제어가능 시뮬레이션 관계 계산 단계(305)에서는 제어가능 시뮬레이션 관계(controllable simulation relation)를 계산한다. 제어가능 시뮬레이션 관계는 FSM으로 표현된 제어 대상 모델(M1)과 제어 사양 모델(M)로부터 계산되며, 기본적 으로는 비특허 문헌 1에 개시되어 있는 식에 기초하여 계산된다.
제어가능성 판정 단계(306)에서, 제어 사양을 만족시키는 제어가 가능한지의 여부를 판정하고, 불가능한 경우에는 제어불가 통지 단계(307)에서 통지하여 종료한다.
한편, 제어 가능한 경우에는 계속해서 허용 동작 모델 발생 단계(308)에서 허용 동작 모델의 데이터를 발생한다. 허용 동작 모델은 제어 대상 모델(M1) 및 제어 사양 모델(M)에 기초하여 단순히 합성한 제어 장치 합성 모델에 대하여, 전술한 제어가능 시뮬레이션 관계에 의한 제약 조건을 부과하여 발생되는 것이다.
다음에, 제어 룰 결정 단계(309)에서, 허용 동작 모델로부터 제어 룰을 결정한다. 그 제어 룰에 기초하여 제어 장치 모델을 발생하고, 설계 데이터 출력 단계(310)에서, 발생한 제어 장치의 모델을 출력한다.
도 2는 본 실시형태에 따른 디지털 회로의 자동 설계 장치의 구성예를 나타내는 도면이다. 이 구성은 기본적으로는 도 1에서 나타낸 각 단계의 처리를 실현하는 수단을 포함한다.
제어 사양 입력 수단(404)은 제어 사양 입력 단계(301)의 조작을 실현하는 것이고, 제어 사양의 모델에 대한 데이터를 입력한다. 이 데이터는 예컨대, 컴퓨터의 기억 장치에 저장된 파일로부터 입력되거나, 통신 회선을 통해 입력되거나, 또는 설계자에 의해 컴퓨터의 입력기기로부터 직접 입력되는 경우 등이 있을 수 있다.
제어 사양 모델 발생 수단(405)은 제어 사양 모델 발생 단계(302)의 조작을 실현하는 것이며, 입력된 제어 사양의 데이터를 FSM을 나타내는 데이터로 변환하고, 제어 사양 모델 기억 수단(406)에 저장한다.
제어 대상 입력 수단(401)은 제어 대상 입력 단계(303)의 조작을 실현하는 것이며, 제어 대상의 모델이 Verilog 등의 설계 기술 언어로 씌어진 제어 대상 모델을 나타내는 데이터를 입력한다. 이 데이터는 예컨대 컴퓨터의 기억 장치에 저장된 파일로부터 입력되거나, 통신 회선을 통해 입력되거나, 또는 설계자에 의해 컴퓨터의 입력기기로부터 직접 입력되는 경우 등이 있을 수 있다.
제어 대상 모델 발생 수단(402)은 제어 대상 모델 발생 단계(304)의 조작을 실현하는 것이며, 입력된 제어 대상의 모델을 FSM의 형식로 변환하고, 그것을 제어 대상 모델 기억 수단(403)에 기억한다.
제어가능 시뮬레이션 관계 계산 수단(407)은 제어가능 시뮬레이션 관계 계산 단계(305)의 조작을 실현하는 것이며, 제어 대상 모델 기억 수단(403)에 저장된 제어 대상 모델과, 제어 사양 모델 기억 수단(406)에 저장된 제어 사양 모델로부터 제어가능 시뮬레이션 관계를 계산하고, 계산의 결과가 얻어지는 제어가능 시뮬레이션 관계를 제어가능 시뮬레이션 관계 기억 수단(408)에 저장한다.
제어가능성 판정 단계(306)에서의 판단은 제어가능성 판정 수단(420)으로 행해진다. 제어가 불가능한 경우에는 그 취지를 설계 데이터 출력 수단(413)에 출력하여 처리를 종료한다.
모델 합성 수단은 제어 사양 모델 기억 수단(406)에 기억되어 있는 제어 사양 모델(M)과, 제어 대상 모델 기억 수단(403)에 기억되어 있는 제어 대상 모델 (M1)을 단순히 합성하여 제어 장치 합성 모델을 발생하는 수단이다.
허용 동작 모델 발생 수단(409)은 허용 동작 모델 발생 단계(308)의 조작을 실현하는 것이며, 전술한 제어가능 시뮬레이션 관계에 의한 제약 조건을 제어 장치 합성 모델에 부과하여 허용 동작 모델을 발생하는 수단이다. 또한, 발생한 허용 동작 모델을 허용 동작 모델 기억 수단(410)에 저장한다.
제어 룰 결정 수단(411)은 제어 룰 결정 단계(309)의 조작을 실현하는 것이며, 허용 동작 모델로부터 제어 룰을 결정하고, 결정된 룰을 제어 장치 모델 발생 수단(412)에 출력한다.
허용 동작 모델에 대하여 제어 룰을 적용함으로써, 제어 장치 모델 발생 수단(412)은, FSM(유한 상태 기계)으로 표현된 제어 장치 모델을 우선 발생하고, 그 후 소정의 설계 기술 언어, 예컨대 Verilog 언어로 기술된 제어 장치 모델로 변환한다.
설계 데이터 출력 수단(413)은 설계 데이터 출력 단계(310)의 조작을 실현하는 것이며, 제어 장치 모델 발생 수단(412)으로 발생, 변환된 제어 장치 모델을 출력하는 수단이다. 그 출력은 예컨대 컴퓨터의 기억 장치에 파일로서 저장하거나, 통신 회선을 통해 출력하거나, 또는 설계자에 대하여 컴퓨터의 출력기기로부터 직접 출력함으로써, 제어 장치 모델을 디지털 장치로서 실장할 수 있다.
예컨대, 모델은 논리합성 툴에 의해 디지털 회로로 구현될 수 있다. 또는 컴퓨터에 프로그램을 부여하여 원하는 동작을 하게 하는 방법도 있다.
(2) 특정예에 의한 설명
상기에 설명한 디지털 회로의 자동 설계 방법에 관해서, 특정예를 이용하여 설명한다. 도 3a 및 3b는 본 특정예에서 취급하는 제어계 전체의 구성을 나타내는 것이다.
도 3a는 본 특정예에서 다루는 제어계 전체의 구성을 Verilog 언어로 표현한 것이다. 또한, 도 3b는 그 내부의 배선 관계를 도면으로 나타낸 것이다.
도 3a의 1행에 기술되어 있는 "control_system"은 제어계 전체를 나타내는 모듈이며, 그 내부에 있는 "plant"라는 이름의 모듈이 제어 대상이다. 또한, "controller"라는 이름의 모듈이 제어 장치를 나타내고 있다. 제어계에는 외부로부터 클록 신호(clk), 리셋 신호(rst), 및 외성 신호(v)가 입력되어 있고, 각각이 도 3(b)에 나타낸 바와 같이 제어 대상과 제어 장치에 배선되어 있다. 또한, plant라는 모듈의 인스턴스로서 P라는 이름을 선언하고, 또한 controller라는 모듈의 인스턴스로서 c라는 이름을 선언하고 있다[도 3(a)의 7행 째, 8행 째]. 여기서는 이들을 각각 제어 대상, 제어 장치라고 부르기로 한다.
제어 장치에는 상기한 구성으로부터 명백한 바와 같이, 클록 신호(clk), 리셋 신호(rst), 외성 신호(v), 제어 출력 신호(y), 및 제어 입력 신호(u)가 접속되어 있다. 이것을 Verilog 언어로 표현하면 도 4와 같이 된다. 이 표현은, 제어 장치에 접속되어 있는 신호의 이름만을 선언한 모듈이며, 내부에 존재해야 하는 플립플롭이나, 그 동작에 관한 기술이 포함되어 있지 않다. 도 4의 7행 째에 「/* 미구현*/」이라고 쓰여진 부분이 있다. 이 부분을 필요한 기술(description)로 대체함으로써 제어 장치 모델이 완성하게 된다. 즉, 이 부분에 구체적인 플립플롭에 관한 기술이나 그 동작에 관한 기술 등을 삽입하는 것이 본 실시형태에서 달성해야 할 목적이 된다.
우선, 제어계의 제어 사양을 입력한다(도 1의 단계 301).
도 5a는 본 특정예에 따른 제어계의 제어 사양을 도시한다. 본 예에서는 제어 대상인 회로 모듈을 Verilog 언어로 기술하고 있다.
오늘날, 많은 설계자가 (예를 들어, Verilog나 VHDL 등의) 설계 언어로 설계 내용을 표현하고 있다. 대체로 이러한 기술(description)의 추상도는 레지스터 전송 레벨(Register Transfer Level; RTL)이다. RTL 기술을 사용하여 회로를 설계하기 위해, 논리합성 툴이 이용된다. 논리합성 툴은 RTL로 기술된 설계 데이터 입력받아, 이것을 보다 상세한 레벨의 회로 모델로 변환하는 것이다.
RTL 기술은 순서 기계로서 모델화 된다. 플립플롭의 값은 순서 기계의 상태에 대응한다. 그 값의 변화가 상태 천이에 대응한다. 동기식의 순서 회로에서는, 클록에 동기하여 상태 천이가 발생한다. RTL보다 추상도가 높은 레벨의 설계를 SystemC나 SpecC 등의 언어를 사용하여 행하는 경우에도 CAD에 의한 처리의 과정에서 FSM의 모델을 얻을 수 있다.
도 5a에서, 프레임 선의 내부가 Verilog 언어에 의한 기술이며, 좌측의 숫자는 설명을 위한 행 번호를 나타낸 것이다. 이 모듈은 클록 입력(clk), 비동기 리셋 입력(rst), 외성 신호 입력(v), 및 출력(y)을 갖는다(1행 ~ 4행을 참조). 이들은 각각 1비트의 신호선이다.
또한, 모듈은 x0, x1이라는 두개의 플립플롭을 가지고 있다(6행 참조). 이들 플립플롭들의 값은 리셋시에 0이 된다(10행, 16행, 및 그 부근을 참조). 또한 클록의 상승 에지에서, x0은 v의 신호치를 취입하고, 그 값을 유지하여 출력한다(12행과 그 부근을 참조). 마찬가지로, 클록의 수직 상승 에지에서 플립플롭 x1은 플립플롭 x0의 출력값을 취입하고, 그 값을 유지하여 출력한다(18행과 그 부근을 참조). 또한, 출력(y)은 x0의 출력과 x1의 출력의 논리곱을 출력한다(20행을 참조).
또한, 이 Verilog 언어에 의한 기술로부터 논리합성 툴 등을 사용하여 실제의 디지털 회로를 발생할 수 있다. 논리합성 툴이 출력한 회로의 예를 도 5b에 나타낸다. 플립플롭 x0와 x1은 각각 D 플립플롭으로서 실현되어 있다. 이들의 D 플립플롭에는 클록 입력의 신호선(clk)이 접속되어 있고, 포지티브 에지에서 트리거하도록 되어 있다. 또한, 리셋 입력의 신호선(rst)은 2개의 D 플립플롭의 리셋 입력(CLR)에 접속되어 있다. 한편, 이들 플립플롭의 출력은 2-입력의 AND 게이트에 접속되고, 또한 그 출력이 모듈의 출력 신호(y)로 되어 있다.
계속해서, 제어 사양 모델 발생 수단(405)은 입력된 데이터(Verilog 언어로 기술된 데이터)로부터 도 6a 및 6b에 나타낸 바와 같은 순서 기계의 모델을 나타내는 데이터를 발생하고(도 1의 단계 302), 제어 사양 모델 기억 수단(406)에 저장한다. 이러한 조작은 논리합성 툴이나 프로퍼티 검사 툴 등의 기존 프로그램에도 행해지고 있는 공지의 기술이다. 도 6a는 제어 대상의 입출력과 상태의 천이 관계를 천이 표의 형태로 나타낸 데이터이며, 도 6b는 초기 상태의 집합을 나타내고 있다.
도 6a에서, 천이 전의 상태(현 상태)와 천이한 후의 상태(다음 상태)를 구별하기 위해 다음 상태를 나타내는 변수에는 x0', x1'와 같이 프라임 기호(')를 붙이 기로 한다.
이 표에 관해서 설명한다. 도 5b에 나타낸 회로에서 예컨대 x0의 상태(즉 x0의 출력)가 1, x1의 상태(즉 x1의 출력)가 0, 입력(v)이 1이라고 하면 출력(y)은 0이다. 이 상태에서, 클록의 포지티브 에지에 의해 상태 천이가 발생하였다고 하면, 그 천이 후의 상태는 x0이 1, x1이 1이 된다. 입출력 신호와 현 상태와 다음 상태의 정보를 통합하여 v, y, x1, x0, x1', x0'의 순서로 나열하면 100111이 된다. 이것은 도 6a의 표의 4행에 해당한다. 다른 값의 조합도 모두 열거하면 8 종류가 되고, 이들을 정리한 표가 도 6a이다. 이와 같이 하여 천이 관계를 얻을 수 있다.
도 6b는 이 회로의 리셋 직후의 상태(초기 상태)를 나타내는 표이다. 2 종류의 플립플롭 양쪽 모두가 리셋에 의해 0이 되기 때문에, 초기 상태는 x0이 0, x1이 0이라는 한 종류밖에 없다. 일반적으로는 순서 기계의 초기 상태는 하나라고는 한하지 않기 때문에, 초기 상태의 집합으로 표현한다.
도 7은 도 6a 및 6b와 동일한 정보를 상태 천이도로서 나타낸 것이다. x1, x0을 통합하여 2 비트로 표현하면 00, 01, 10, 11의 4개의 상태가 있다. 이들의 상태가 원으로 표현된 노드로서 나타나 있다. 상태의 사이를 연결하는 화살표는 상태 천이를 나타내고, 이들에는 1/0이나 0/0 등이라는 라벨이 붙여져 있다. 이 라벨은 슬래시 기호(/)의 좌측에 입력 값, 우측에 출력 값을 적은 것이다. 또한, 이중 원의 노드(이 예에서는 00)는 초기 상태를 나타내는 것이다.
이상의 설명으로부터 알 수 있는 바와 같이, 도 5a와 같은 설계 기술 언어에 의한 회로의 표현, 도 5b와 같은 회로도에 의한 표현, 도 6과 같은 순서 기계의 천 이 관계나 초기 상태의 집합을 나타내는 데이터에 의한 표현, 및 도 7과 같은 상태 천이도에 의한 표현은 본질적으로 동일한 내용을 나타내고 있다. 이들은, 순서 회로의 동작을 나타내는 방법으로서는 등가이며, 서로 다른 형식으로 변환할 수 있다.
참고로, 도 8은, 도 5의 회로 모델에 대하여 시뮬레이션을 행한 결과를 나타낸다. "clk"는 주기적인 클록 입력으로 되어 있다. "rst"에는 시뮬레이션 최초의 단계에서 하나만 펄스를 부여하고 있고, 이에 따라 회로 내부의 플립플롭이 리셋되며, x0와 x1이 0이라는 값으로 되어 있다. 입력 "v"는 클록에 동기한 입력이며, 클록의 포지티브 에지보다 조금 앞에 변화되어 플립플롭의 셋업 타임을 확보하도록 값이 변화하고 있다. "x0", "x1"은 각각 대응하는 플립플롭의 출력이며, "y"는 모듈의 출력이다. "v"로부터 1 클록 주기분만큼 지연된 파형이 x0에 나타나고, x0으로부터 1 클록 주기분 지연된 파형이 x1에 나타나고 있는 것을 알 수 있다. 또한 x0과 x1이 양쪽 모두 1인 경우에 한해서 "y"가 "1"로 되어 있는 것을 알 수 있다.
지금까지의 단계에서, Verilog 언어로 기술된 제어계의 제어 사양(도 5a)으로부터 순서 기계의 모델로서 표현된 제어 사양 모델(도 6a 및 6b)로 변환된 것으로 된다(도 1의 단계 301, 302).
후속해서, 도 1의 단계 303에서 제어 대상 모델이 입력된다.
도 9a는 본 특정예에서의 제어 대상의 모델을 기술한 것이며, 본 예에서도 제어 대상인 회로 모듈을 Verilog 언어로 기술하고 있다.
이 회로 모듈은 클록 입력(clk)과, 리셋 입력(rst), 및 제어 입력(u)과 제어 출력(y)을 가지고 있다. 이들은 각각 1비트의 신호이다[도 9a의 1행~4행을 참조). 내부에는 플립플롭 1개가 있고(5행 참조), 이것이 이 회로 모듈의 상태를 유지하고 있다. 그 값을 "s"로 한다.
리셋 입력(rst)의 입력에 의해 s가 "0"이 된다(10행과 그 주변을 참조). 또한, clk의 포지티브 에지에서 상태(s)가 변화한다(8행을 참조). 그 때, 현 상태(s)와 제어 입력(u)의 배타적 논리합(연산자 "^"는 배타적 논리합을 의미한다)이 다음 상태(s')의 값이 된다(12행을 참조).
도 9b는, Verilog 언어로 기술된 도 9a의 모델로부터 논리합성 툴을 사용하여 발생한 회로의 회로도를 나타내는 것이다. 여기서, 이 회로는 인에이블 입력(ENA)을 갖은 1개의 D 플립플롭으로 회로를 포함한다. 제어 대상 입력 수단(401)은, 예컨대 컴퓨터의 기억 장치에 파일로서 저장되어 있는 도 9a의 데이터를 입력한다.
그 후, 제어 대상 모델 발생 수단(402)은, 입력된 데이터로부터 도 10a 및 도 10b에 나타내는 바와 같은 순서 기계의 모델을 나타내는 데이터를 발생하고, 발생된 데이터를 제어 대상 모델 기억 수단(403)에 저장한다. 이러한 조작은 논리합성 툴이나 프로퍼티 검사 툴 등의 기존의 프로그램에도 행해지고 있는 공지의 기술이다. 도 10a는 제어 대상의 입출력과 상태의 천이 관계를 천이 표의 형태로 나타낸 데이터이며, 도 10b는 초기 상태의 집합을 나타내고 있다.
도 10a 및 10b에 도시된 바와 같은 "0", "1"의 표를 기억하기 위해서는 BDD(Binary Decision Diagram: 이분 결정 그래프)라고 불리는 공지 기술을 이용하 는 형태가 적합하다. 많은 경우에, BDD를 이용함으로써, 이러한 "0", "1"의 부울치에 의한 관계를 적은 메모리 사용량으로 기억할 수 있다. 본 실시형태에서 요구되는 여러 가지의 조작도 BDD의 이용에 의해 고속으로 실시할 수 있다고 하는 이점이 있다. 단, 반드시 BDD를 사용할 필요는 없고, 부울치로 이루어지는 표를 기억할 수 있는 수단이면 BDD 이외의 것을 이용할 수도 있다. 예컨대, 표의 형식 그대로의 배열로서 기억하거나, 부울 대수의 식으로서 문자열 또는 그 밖의 데이터 형식으로 기억하는 것도 가능하다. 곱합 표준 형태나 합곱 표준 형태는 부울 대수의 식의 표준 형태로서 유명하지만, 그 밖의 형식이라도 상관없다.
전술한 바와 같이, 순서 기계의 모델을 나타내는 천이 표나 초기 상태의 집합을 나타내는 표는 도 11에 나타내는 상태 천이도로서 표현할 수도 있다. 따라서, 이 상태 천이도를 기억할 수 있는 그 외의 데이터 형식으로 기억하더라도 상관없다. 예컨대 상태나 라벨의 데이터를 레코드(C 언어로는 "구조체")로 나타내고, 상태 천이의 천이 목적지의 레코드를 포인터 변수로 가리키는 등의 방법도 가능하다.
다음에, 도 1의 단계 305에서 제어가능 시뮬레이션 관계가 계산된다.
여기서, 제어가능 시뮬레이션 관계는, 비특허 문헌 1에서 정의된 Hmax의 계산식을 가진다. 제어가능 시뮬레이션 관계 계산 수단(407)에 의해 제어 사양 모델 기억 수단(406)에 기억된 제어 사양 모델과, 제어 대상 모델 기억 수단(403)에 기억된 제어 대상 모델로부터 제어가능 시뮬레이션 관계(Hmax)를 구한다.
도 12a 및 12b는 비특허 문헌 1로부터 인용한 도면이며, 도 12a는 설계될 제어계를 나타낸 것이다. 도 12a에서, M1은 제어 대상의 FSM이며, M2는 제어 장치의 FSM이다. v는 제어계의 밖으로부터 부여되는 외성 신호이며, y는 제어 대상으로부터 출력되는 제어 출력이다. u는 제어 대상에로 입력되는 제어 입력이다.
이것들의 v, y 및 u는 도 3에서의 v, y 및 u와 대응하는 것이다.
도 12b는 제어 사양을 나타내고 있다. 제어 사양의 모델은 FSM이며, "M"이라는 기호에 의해 나타난다. 비특허 문헌 1에서는, M2가 제어 사양인 M과 시뮬레이션 관계를 갖도록, 도 12a와 같이 서로 접속된 M1과 M2를 포함하는 제어계로부터 M2를 발생하는 것이 과제로 되어 있다. 또한, 비특허 문헌 1에서 취급하고 있는 FSM은 모두 순서 기계임에 유의해야 한다.
비특허 문헌 1을 인용하면, 제어가능 시뮬레이션 관계(Hmax)는 이하의 (식 1)과 같이 정의된다.
Figure 112006029232176-pat00001
여기서,
Figure 112006029232176-pat00002
는 M1이 상태(s1)로부터 상태(s1)에 입력을 u, 출력을 y로서 천이할 수 있다고 하는 천이 관계를 나타내고 있다. 또한,
Figure 112006029232176-pat00003
입력을 u, 출력을 y로 하여, M1이 상태(s)로부터 상태(s')로 천이할 수 있다 고 하는 천이 관계를 나타내고 있다.
Hmax는, 이 정의로부터 알 수 있는 바와 같이, M1의 상태와 M의 상태 사이에서 성립하는 관계를 나타내고 있다. 비특허 문헌 1에는 Hmax에 명칭이 붙여져 있지 않지만, 전술한 바와 같이, 본 명세서에서는 Hmax를 제어가능 시뮬레이션 관계라고 부르기로 한다.
제어가 가능한지의 여부는 제어가능 시뮬레이션 관계를 사용하여 판정할 수 있다. M1의 초기 상태를 r1, M의 초기 상태를 r로 하였을 때에, 그 세트(r1, r)가 제어가능 시뮬레이션 관계에 포함되어 있으면, 제어 사양을 만족시키는 제어가 가능하다.
대조적으로, (r1, r)이 제어가능 시뮬레이션 관계에 포함되어 있지 않으면, 어떠한 FSM을 제어 장치 모델로 하여도, 제어계의 동작이 제어 사양으로 지정된 동작으로부터 일탈할 가능성이 있다.
제어가능 시뮬레이션 관계 계산 수단(407)은 제어 사양 모델 기억 수단(406)에 기억된 제어 사양 모델과, 제어 대상 모델 기억 수단(403)에 기억된 제어 대상 모델로부터 식 (1) 따라 Hmax를 구한다. 이 식에서, M은 제어 사양 모델, M1은 제어 대상 모델에 대응한다. Hmax는 제어가능 시뮬레이션 관계이지만, 그것은 제어 대상 모델 상태와, 제어 사양 모델 상태 사이의 관계를 나타내는 것이다. 계산된 제어가능 시뮬레이션 관계는 제어가능 시뮬레이션 관계 기억 수단(408)에 기억한다.
본 특정예의 경우, 제어가능 시뮬레이션 관계는 도 13에 나타낸 표와 같이 된다. 제어 대상 모델의 상태는 변수(s)로 나타내어 "0" 또는 "1"의 값을 취할 수 있다. 한편, 제어 사양 모델의 상태는 변수 x0와 x1으로 나타내어 각각 "0" 또는 "1"의 값을 취할 수 있기 때문에, 전부 4개의 상태가 있다. 제어가능 시뮬레이션 관계가 성립하는 모든 상태의 조합을 변수(s, x0, x1)의 값으로서 열거한 것이 도 13이다.
후속해서, 제어가능 시뮬레이션 관계 기억 수단(408)에 기억된 제어가능 시뮬레이션 관계(Hmax), 제어 사양 모델(M), 및 제어 대상 모델(M1)로부터 허용 동작 모델 발생 수단(409)에 의해 허용 동작 모델(Mc)을 발생한다(도 1의 단계 308).
허용 동작 모델(Mc)은 "최대의 제어 장치(maximal contro1ler)"로 불리는 것이고, 제어 장치의 FSM 모델(M2)을 포함한다.
허용 동작 모델은 FSM이며, 그 천이 관계는 다음의 (식 4)를 계산함으로써 얻어진다. 이 (식 4)도 비특허 문헌 1에서 정의되어 있는 것이다.
Figure 112006029232176-pat00004
...(4)
(식 4)에서 M1은 제어 대상 모델에 대응하고, M은 제어 사양 모델에 대응하며, Mc는 허용 동작 모델에 대응한다. 또한 허용 동작 모델의 초기 상태는 동일하게 비특허 문헌에서 다음의 (식 5)로서 부여되고 있다.
rc = (r1, r) ...(5)
즉, 허용 동작 모델의 초기 상태는 제어 대상 모델의 초기 상태(r1)와, 제어 사양 모델의 초기 상태(r)를 쌍으로 한 것과 동등하다. 만일 이 초기 상태가 제어가능 시뮬레이션 관계에 포함되어 있지 않으면, 제어 사양을 만족시키는 제어계를 구성할 수 없기 때문에, 이를 설계자에게 통지하여 설계 자동화 장치의 동작은 종료한다.
이 판단은, 도 1에 도시된 제어가능성 판정 단계(단계 306)에서 이루어지고, 제어할 수 없음을, 제어불가 통지 단계(단계 307)에서, 이용자에게 통지한다.
허용 동작 모델의 초기 상태가 제어가능 시뮬레이션 관계에 포함되어 있으면, 얻어진 허용 동작 모델을 허용 동작 모델 기억 수단(410)에 기억한다.
(식 4)에 의한 허용 동작 모델(Mc)의 정의는 제어 대상 모델(M1)과 제어 사양 모델(M)의 합성과 유사하다. M1과 M의 합성에서처럼, Mc의 상태도 M1과 M의 상태의 쌍으로서 나타낸다. 단, 천이 관계의 정의에서 천이 가능한 천이 목적지의 상태가 제어가능 시뮬레이션 관계(Hmax)에 포함되는 것에 한정되는 점이 통상의 합성의 정의와는 상이하다.
바꿔 말하면, 허용 동작 모델(Mc)은, 제어가능 시뮬레이션 관계(Hmax)에 의한 제약 조건을, 제어 대상 모델(M1)과 제어 사양 모델(M)을 합성한 모델(제어 장치 합성 모델)에 부과시킨 모델이라고 할 수 있다.
본 특정예의 경우, 허용 동작 모델(Mc)은 도 14a 및 14b와 같이 된다. 도 14a가 천이 관계를 나타내고, 도 14b가 초기 상태의 집합을 나타낸다.
도 14a의 천이 관계는 제어 대상 모델(M1)의 천이 관계[도 6a]와 제어 사양 모델(M)[도 10a]을 합성하고, 그 후 제어가능 시뮬레이션 관계(Hmax)(도 13)에서 부여되는 다음 상태[(s, x0, x1)=(0, 0, 0), (0, 0, 1), (0, 1, 0), (1, 1, 1)]를 만족시키는 데이터의 조를 추출한 것이다.
또한, 도 14b의 초기 상태는 제어 대상 모델(M1)의 초기 상태[도 6b]와, 제어 사양 모델(M)[도 10b]을 쌍으로 한 것이다.
본 실시형태의 목적은 제어 사양 모델(M)을 만족시키는 제어 장치 모델(M2)를 구하는 것이지만, 비특허 문헌 1에는 이를 위한 필요 충분 조건으로서, 제어 장치 모델(M2)이 허용 동작 모델(Mc)을 모방하는 것이 나타나 있다.
이것은, 단순하게는 "M2=Mc"[허용 동작 모델(Mc)을 그대로 제어 장치 모델(M2)로 한다]로 하더라도 좋다는 것을 의미하고 있다. 한편, 제어 장치 모델(M2)이 허용 동작 모델(Mc)을 모방하고 있는 한, M2의 동작 범위를 좁힐 수 있는 가능성이 있는 것도 의미하고 있다. 즉, 제어 장치 모델(M2)의 규모는 허용 동작 모델(Mc)의 규모에 대하여 더 축소할 수 있을 가능성이 있는 것을 의미하고 있다.
후속해서, 제어 룰 결정 수단(411)은 허용 동작 모델 기억 수단(410)에 기억된 허용 동작 모델(Mc)로부터 제어 룰을 결정한다. 제어 룰은 제어 장치의 상태로부터 제어 입력(u)을 발생하는 방법을 나타내는 것으로, 제어 장치의 상태로부터 u를 계산하는 함수로서 나타낼 수 있다.
제어 룰을 발생하는 방법을 설명한다. 우선, 허용 동작 모델(Mc)의 천이 관계의 표인 도 14a로부터 다음 상태를 나타내는 변수인 s', x0', x1'의 란을 삭제한다. 또한, 제어 입력(u)은 제어 출력(y)의 값에 직접적으로는 의존하지 않는다고 하는 성질이 있기 때문에[단 제어 대상의 상태(s)에는 의존한다] y의 란도 삭제한다. 이 결과, 제어 장치의 제어 룰을 나타낸 도 15의 표를 얻을 수 있다. 도 15에 남은 변수로 제어 입력(u) 및 외성 신호(v) 이외의 변수, 즉 s, x0, x1이 제어 장치의 상태 변수가 된다(이들로부터 최종적으로 제어 장치 내부의 플립플롭이 생성된다).
여기서, 이 표에 나타나지 않은 제어 장치의 상태는 제어계의 동작중에는 출현하지 않는 상태이기 때문에, 제어 입력을 생성하는 조합 회로를 발생할 때에 무시할 수 있다. 또한, 복수의 제어 입력(u)의 값이 제어 장치의 특정 상태에 대응하고 있는 경우에는, 이들 중 어느 하나의 값을 채용하더라도 상관없다. 이 성질을 이용하여, 제어 룰의 표(도 15에 대응하는 표)를 축소하는 것이 가능해진다.
단, 본 특정예에서는 도 15에 나타낸 바와 같이 v, s, x0, x1의 각각의 조합에 대하여 u의 값은 일의로 대응하고 있다. 이 때문에, 본 특정예에서는 상기 성질을 이용한 제어 룰 축소의 여지는 없다.
다음에, 제어 장치 모델 발생 수단(412)은 제어 장치 모델(M2)을 생성한다. 제어 장치 모델(M2)이란, 제어 룰 결정 수단(411)으로 결정한 제어 룰에 의해 허용 동작 모델(Mc)의 동작을 제약하여 얻어지는 모델이다. 구체적으로는, 허용 동작 모델(Mc)의 천이 관계[도 14a]와 제어 룰(도 15)의 논리곱을 제어 장치 모델(M2)의 천이 관계로 한다.
또한 허용 동작 모델(Mc)의 초기 상태, 또는 초기 상태의 집합(도 14b)과 제어가능 시뮬레이션 관계(Hmax)(도 13)의 논리곱(또는 집합곱)을 제어 장치 모델 (M2)의 초기 상태, 또는 초기 상태의 집합으로 한다. 또한, 제어 대상의 출력인 제어 출력(y), 및 외성 신호(v)는 제어 장치로부터 보면 입력이며, 또한 제어 대상의 입력인 제어 입력(u)은 제어 장치로부터 보면 출력으로 되어 있다.
이와 같이 하여, 본 특정예에서의 제어 장치 모델(M2)를 제어 장치 모델 발생 수단(412)으로써 요구한 결과가 도 16a 및 16b이다. 본 특정예에서는 제어 룰의 결정에 있어서, 전술한 바와 같이 동일한 상태에 대하여 복수의 u가 대응하는 경우가 없기 때문에, 제어 장치 모델(M2)(도 16a 및 16b)은 결과적으로는 허용 동작 모델(Mc)(도 14a 및 14b)과 동일한 것으로 되어 있다.
일반적으로는, 제어 룰이 가용 제어 입력 신호 u 중 적당한 값으로 고정되면, 그 이외의 u의 값에서만 발생하는 상태 천이는 제어 장치 모델로부터 제외되고, 허용 동작 모델(Mc)의 규모보다 작은 제어 장치 모델(M2)을 생성하는 것이 가능하다.
이와 같이 하여 발생된 제어 장치 모델(M2)은 유한 상태 기계(도 16a 및 16b와 같은 천이 관계나 초기 상태)로서 표현된 모델이기 때문에, 제어 장치 모델 발생 수단(412)은, 이것을 Verilog 언어 등의 설계 기술 언어로 기술되는 모델로 변환한다.
설계 데이터 출력 수단(413)은 설계 기술 언어로 기술된 제어 장치 모델(M2)을 제어 장치 회로의 설계 데이터로서 출력한다. 본 특정예에서는 도 17에 나타내는 Verilog 언어로 기술된 출력을 얻을 수 있다.
도 17에서, 27행~35행에는 제어 입력 신호(u)로의 출력을 결정하는 부분이 기술로 되어 있고, 이는 도 15에 기재된 제어 룰로부터 생성된 부분이다. 비교하면 양자의 대응 관계를 잘 알 수 있다.
이와 같이 얻어진 제어 장치의 설계 데이터(Verilog 언어로 기술된 데이터)를 논리합성 툴에 입력함으로써, 디지털 회로를 발생할 수 있다.
그런데, 제어 룰 결정 수단(411)을 다시 참조하면, 제어 룰 결정 수단(411)은, v, s, x0, x1로부터 u를 구하는 함수를 결정하고 있다. 이와 같은 함수는 수식의 관점에서는 부울 대수식이며, 회로의 관점에서는 조합 회로에 대응하므로, 플립플롭을 구하는 순서 회로가 아니다.
부울 대수식의 간단화(즉, 조합 회로의 간단화)를 위한 다양한 방법이 알려져 있다. 예컨대 논리 회로의 설계에 관한 많은 교과서에는 카르노 도(Karnaugh Map)를 이용하여 간단한 회로를 구하는 방법이 설명되어 있다. 계통적으로 간단화를 행하는 방법으로서는 퀸·맥클러스키법이 있다. 대규모인 회로에 적용할 수 있는 것도 몇 개 제안되어 있고, 예컨대 ESPRESSO가 유명하다. 이러한 간단화의 수단은 시판의 논리합성 툴에도 내장되어 있고, 이용자가 번거롭지 않게 자동으로 적용할 수 있다. 그것은 통상, 회로의 게이트 수나 트랜지스터 수를 줄일 목적으로 사용되고 있다.
제어 룰 결정 수단(411)으로도 이러한 간단화의 방법을 이용할 수 있다. 도 15에 간단화의 방법을 적용하고, 그 결과로서 예컨대 다음의 (식 6)이 얻어진 것으로 한다. 이 식에 의해 (v, s, x0, x1)로부터 계산한 u의 값은 도 15와 모순되지 않기 때문에, 이 식을 제어 룰로서 채용할 수 있다.
u = (v ∧ x0)
Figure 112006029232176-pat00005
s ...(6)
여기서,
Figure 112006029232176-pat00006
는 배타적 논리합을 나타내고 있다. 이 식을 관찰하면 u를 생성하는 데 필요한 변수는 3개뿐이며, 그 중에 v는 외성 신호를 나타내고 있기 때문에 상태 변수로서 필요한 것은 x0와 s 2개뿐이다. 따라서, (식 6)을 u를 생성하기 위한 제어 룰로서 채용하면, x1의 선언과 그 값을 갱신하는 연산을 생략할 수 있다.
결과로서 얻어지는 제어 장치의 설계 데이터는 도 18a 및 18b와 같이 된다. 도 18a는 Verilog 언어에 의한 기술이며, 도 18b는 이를 논리합성하여 얻어진 회로의 회로도이다.
도 17의 설계 데이터에는 3개의 플립플롭(3개의 상태 변수, s, x0, x1)이 포함되어 있는 반면, 도 18의 설계 데이터에서는 2개의 플립플롭(2개의 상태 변수, s, x0)만 포함되어 있다. 즉, 간단화 수단을 제어 룰 결정 수단(411)에 적용함으로써, 플립플롭의 삭감이라는 효과가 얻어지고 있다. 그 간단화 수단이라는 것은 조합 회로가 간단화를 목적으로 한 것으로서, 통상은 플립플롭의 삭감을 행하지 않은 것이었다고 하더라도, 그것을 제어 룰 결정 수단(411)으로 적용하면 최종적으로 플립플롭의 삭감이라는 효과를 얻을 수 있는 것이다.
또한, 도 18a(제어 장치의 Verilog 언어에 의한 설계 데이터)와, 도 9a(제어 대상의 Verilog 언어에 의한 설계 데이터)를 조합하여 시뮬레이션을 행한 결과 얻어진 신호 파형이 도 19이다.
도 19와, (제어 사양의 시뮬레이션 결과인) 도 8을 비교하면, 제어계가 제어 사양에서 지정된 대로 동작하는 것을 알 수 있다.
그런데, 여기서 설명한 회로의 간단화는 제어 장치만을 대상으로 한 것이다. 제어 대상이 하드 IP인 경우나, 또는 모터 등을 포함하는 기계적인 제어 대상을 FSM으로서 모델화한 것인 경우에는 그 구성을 변경할 수 없기 때문에, 제어 장치만을 대상으로서 회로를 간단화하게 된다. 그러나, 만약에 제어 대상이 소프트 IP이고 그 자체도 논리합성하는 것이면, 제어 장치와 제어 대상을 통합하여 간단화하는 것도 가능하다. 제어계 전체를 간단화의 대상으로 하면 회로 규모의 현상이나 동작 속도의 향상 등, 더 나아가서는 성능 개선을 기대할 수 있다. 단, 본 특정예의 경우는 도 5a 및 5b의 제어 사양이 간단하면서 논리합성이 가능한 것이었기 때문에, 제어계 전체를 간단화하는 것의 의미를 잘 모를지도 모른다. 그러나, 일반적으로 제어 사양이 논리합성 가능한 형식이 아닌 경우나, 도 5a 및 5b만큼 간단하지 않은 경우에도 본 발명은 적용할 수 있기 때문에, 제어계 전체를 대상으로 하여 간단화를 행하는 것에는 의미가 있다.
또한, 본 특정예에서는 외성 신호(v)나 제어 출력(y), 및 제어 입력(u)이 각각 1 비트의 신호로 되어 있었지만, 이들이 복수 비트라도 마찬가지로 본 발명을 적용할 수 있다. 특정예로서 1 비트의 예를 채용한 것은 그렇게 하지 않으면 설명에 사용하는 도면이 너무 커져 기재할 수 없게 되기 때문이다.
제1 실시형태에 따른 디지털 회로의 자동 설계 장치, 자동 설계 방법, 및 자동 설계 프로그램에 의하면 비특허 문헌 1에 나타낸 제어 장치의 발생 방법을 구체화하고, 또한 제어 입력(u)을 생성하는 제어 룰을 간단화함으로써 제어 장치의 규 모를 축소화할 수 있다.
(3) 제2 실시형태
도 20은 제2 실시형태에 따른 디지털 회로의 자동 설계 장치의 블록도이다. 제1 실시형태와의 다른 점은 입력받는 제어 사양의 형태와 그 변환 방법에 있다.
제1 실시형태에서는, 제어 사양으로서 순서 회로에 의한 사양(도 5a)을 입력받고 이를 제어 사양 모델(M)(도 6)로 변환하였다. 이와 대조적으로, 제2 실시형태에서는, 시상 논리로 기술된 제어 사양을 입력받고, 이를 제어 사양 모델(M)로 변환하는 형태이다.
도 20의 제어 사양(시상 논리) 입력 수단(415)은 시상 논리로 기술된 제어 사양을 입력받는 수단이다.
또한, 제어 사양 모델 발생 수단(416)은, 시상 논리로 기술된 제어 사양으로부터 유한 상태 기계로 표현된 제어 사양 모델로 변환하는 타블로 발생 수단(천이 목적지 선택형 타블로 발생 수단)(424)을 포함한다. 즉, 도 20에서 나타낸 구성은 도 2의 구성을 특수화한 것이라고 말할 수 있다. 그러나, 제어 사양(시상 논리) 입력 수단(415)이 시상 논리에 기초하는 제어 사양을 입력할 수 있다는 것과, 제어 사양 모델 발생 수단(416)이 시상 논리로 나타낸 프로퍼티(제어 사양)로부터 본 발명에 적합한 성질을 갖는 제어 사양 모델(M)을 발생할 수 있다고 하는 점에 특징이 있다. 이에 관해서 이후에서는 도 20에 기초하여 설명을 행한다.
제2 실시형태의 설명도 특정예를 이용하여 설명하며, 이 예는 제1 실시형태 의 설명에서와 유사한 제어계 및 제어 대상을 포함한다. 즉, 제어계의 구성은 도 3a 및 3b이며, 제어 대상은 도 9a 및 9b이다.
제어 사양은 도 21에 나타낸 것을 이용한다. 이것은 PSL이라고 불리는 언어로 기술되어 있다. 이 도 21의 좌측에 나열되는 수치는 설명을 위해 행 번호를 나타낸 것으로, 제어 사양의 내용에는 관계하지 않는다.
전술한 바와 같이, PSL은 시상 논리를 기반으로 한 프로퍼티 기술 언어이다. 도 21의 1행은, 이 제어 사양이 "contro1_system"이라는 모듈에 대응함을 나타내고 있다. 도 3a 및 3b에 나타낸 바와 같이, "contro1_system"은 제어계의 전체를 나타내고 있다. 또한, 도 21의 2행은 이 모듈의 클록이 clk이고, 그 포지티브 에지에서 동작하는 것을 나타내고 있다. 신호가 만족시켜야 하는 조건을 기술하고 있는 것은 도 21의 3행이다. 이 조건을 시상 논리의 식으로 쓰면 다음 (식 7)이 된다.
G(v ⇔ XXy) ... (7)
(식 7)은 「임의의 시점에서, v의 진위치는 두번째 다음 클록에서의 y의 진위치와 동등하다」라는 조건을 의미하고 있다. 또한, 여기서 말하는 「임의의 시점」에서는 클록으로 구획된 시각의 각 단계를 의미하고 있다. 시상 논리에서는 기호 「X」는 「다음 시점」을 의미하고, 기호 「G」는 「임의의 시점」을 의미한다.
제어 사양(시상 논리) 입력 수단(415)은 이 제어 사양을 입력한다. 그 내용은 제어 사양 모델 발생 수단(416)에 보내진다. 제어 사양 모델 발생 수단(416)으로는 이하에 설명하는 방법으로 시상 논리로 기술된 제어 사양으로부터 유한 상태 기계(FSM)로 표현된 제어 사양으로의 변환을 행한다.
그 전에, 설명의 필요상, 우선 종래 기술과 동일한 방법으로 타블로를 만들어 본다. 시상 논리의 식으로부터 FSM을 발생하는 것을 "타블로 구축"이라 하고, 이에 따라 얻어진 FSM을 "타블로"라고 한다. 타블로 구축에 관한 문헌으로서는, 예컨대 비특허 문헌 3 등이 있다.
비특허 문헌 3 등에 나타내는 타블로 규칙을 사용하여 (식 7)을 전개함으로써, (식 7)을 기본 부분식으로 전개할 수 있다. 결과만을 나타내면, (식 7)은 v, y, Xy, XXy, 및 XG(v⇔XXy)의 5종의 기본 부분식으로 구성되는 식에 전개할 수 있다. 또한, 시상 연산자(X)로 시작되는 기본 부분식을 다음 시점 부분식이라고 부르기로 한다.
도 22에 도시된 바와 같이, 5종의 현 상태 변수 v, y, x0, x1, 및 tg는 5종의 기본 부분식에 할당된다. 또한, v', y', x0', x1', 및 tg'도 대응하는 다음 상태 변수들에 할당된다.
도 20에 나타낸 타블로 규칙에 의한 전개 수단(422)은 시상 논리식을 타블로 규칙에 기초하여 기본 부분식으로 전개하고, 현 상태 변수, 및 다음 상태 변수를 기본 부분식에 할당하는 처리(시상 논리식으로부터 도 22에 도시된 표를 발생하기까지의 처리)를 행하고 있다.
이들 기본 부분식들 중, 기호 X가 붙어 있는 다음 시점 부분식은 3개가 있고, 각각 다음의 천이 관계가 성립한다.
Xy⇔y', 즉 x1⇔y' ...(8)
XXy⇔Xy' 즉, x0⇔x1' ...(9)
XG(v⇔XXy)⇔XG(v'⇔XXy')∧(v'⇔XXy')
즉, tg⇔tg'∧(V'⇔XXy') ...(10)
이들을 논리곱을 이용하여 통합하면 다음의 (식 11)이 된다.
(x1⇔y')∧(x0⇔x1')∧(tg⇔tg'∧(v'⇔XXy')) ...(11)
도 23은 (식 11)이 참이 되는 현 상태 변수와 다음 상태 변수의 조합을 열거한 것이다. 또한, (식 11)로부터 알 수 있는 바와 같이, 현 상태 변수 중, v, y는 천이 관계에는 영향을 미치지 않기 때문에 도 23에서는 v, y의 란을 생략하고 있다. 도 23이 타블로의 천이 관계를 나타내는 도면이다.
타블로의 초기 상태는 다음의 (식 12)로 나타낸다.
tg∧(v⇔XXy) ...(12)
도 24는 타블로의 초기 상태의 집합을 나타내는 도면이며, (식 12)가 참이 되는 상태 변수 세트를 열거한 것이다.
또한 보충해 두면, (식 12)나 도 24를 보고 알 수 있는 바와 같이, 어떤 초기 상태에서도 tg는 1(참)이다. 또한, (식 12)이나 도 23을 보면 알 수 있는 바와 같이, tg가 1(참)의 현 상태로부터 천이하는 목적지인 다음 상태에서는 반드시 tg'가 1(참)이 된다. 즉 항상 tg는 1이 되기 때문에, 이러한 관범에서는 tg는 중복성이다(redundant).
일반적으로, 시상 논리로 프로퍼티를 표현하였을 때에 "G"나 "AG"로 시작되는 프로퍼티(이것은 PSL에서 always라는 키워드를 사용하는 경우에 해당한다)로는 이러한 중복성 상태 변수가 나타난다. 이러한 프로퍼티는 자주 이용되기 때문에, 처음부터 그와 같은 변수는 항상 1이라고 간주하고 생략하면, 도 23과 같은 데이터를 기억할 때의 데이터의 크기를 줄이는 것에 도움이 된다. 그러나, 여기서는 일반적인 예를 도시하기 위해 그와 같은 특별한 처치를 실시하지 않고, tg가 0인 경우에도 도 23에 기재하고 있다.
타블로의 천이 관계(도 23)와 초기 상태의 집합(도 24)을 상태 천이도로서 나타낸 것이 도 25이다. 단, 도면이 번잡해지는 것을 방지하기 위해 tg가 0(거짓)인 상태는 생략되어 있다.
도 25에서, 원으로 나타낸 노드가 상태를 나타내고, 노드로부터 노드를 향하는 화살표가 천이 관계를 나타내고 있다. 노드 안의 숫자 열이 상태 변수의 값을 나타내고 있고, 좌측에서부터 순서대로 tg, tx0, tx1, v, y의 순서대로 5 자릿수의 부울치를 나타내고 있다. 이중 원으로 나타낸 노드는 초기 상태 천이의 집합에 포함되는 상태(즉 초기 상태가 될 수 있는 상태)를 나타내고 있다.
도 23 및 도 24에 나타낸 천이 관계를 나타내는 진리치표 및 초기 상태, 또는 도 25에 나타낸 상태 천이도는 모두 크립키 구조(Kripke structure)를 나타내는 타블로이다.
후속해서, 이 타블로를 순서 기계의 형식으로 변환한다. 크립키 구조와 순서 기계의 차이는 표면적으로는 상태 천이도에 천이 라벨이 있는지의 여부의 차이로서 나타난다. 즉 순서 기계의 경우는 천이에 입출력 값이 미치는 영향을 천이 라벨에 의해 표현하지만, 크립키 구조의 경우에는 입출력이라는 개념이 존재하지 않고, 천이 라벨도 없다. 이 때문에 크립키 구조를 순서 기계로 변환하기 위해서는, 간략하 게 말하면, 크립키 구조의 상태 천이도를 그리고, 상태 천이의 화살표에 입출력 값에 대응하는 천이 라벨을 부가하면 좋다.
통상 자주 이용되는 천이 라벨의 부착법은 「입력/출력」이라는 천이 라벨을 상태 천이의 화살표에 붙이는 방법이다. 본 예에서는 현 상태 "v/y"를 라벨로서 붙이는 방법이다.
이 방법을 도 25도에 적용한다. 결과는 도 26과 같이 된다. v는 외성 신호이며, y는 제어 출력이기 때문에, 상태 천이에는 "입력/출력"의 순서대로 "v/y"라는 형식의 라벨이 붙어 있다. 전술한 바와 같이, 도 25의 상태는 5 자릿수의 숫자로 표현되어 있고, 좌측에서부터 순서대로 tg, tx0, tx1, v, y의 값에 대응하고 있기 때문에, 상태를 나타내는 5자릿수의 말미 2 자릿수가 그 상태의 천이 라벨에 대응하고 있다.
그런데, 도 26을 제어 사양 모델로서 본 발명을 실시하더라도, 원하는 결과는 얻어지지 않는다. 즉 제1 실시형태에서 옳은 결과를 얻을 수 있었던 것과 동일한 방법을 도 26에 적용하더라도, 부여된 제어 사양(도 21)을 만족하는 제어계를 얻을 수 없다. 이 원인은 이하와 같다.
도 26에 도시된 바와 같이, "10010"이라는 상태로부터 가능한 천이에는 모두 "1/0"이라는 라벨이 붙어 있다. "10011"이라는 상태로부터의 천이에는 모두 "1/1"이라는 라벨이 붙어 있다. 이와 같이 어떤 상태로부터 나가는 천이는 그 상태에 따라 입출력이 특정 값으로 정해져 있다. 이는 크립키 구조로부터 순서 기계로의 변환에 있어서, 상기한 변환 방법(천이 라벨을 붙이는 방법)으로는 그렇게 되도록 변 환 방법을 결정한 것이기 때문에 당연한 것이다.
그러나, 본 발명에 따르면, 제어계의 동작에 대한 제어 사양 모델의 관계는 언어 포함 관계(language inclusion relation)가 아닌, 비특허 문헌 1을 기초로 한 모방 관계(simulation relation)에 의해 규정하고 있다. 이 때문에, 제어 사양 모델을 발생할 때에 상태와 상태 천이를 어떻게 정의하는지에 의해 얻어지는 제어 장치의 동작에 차이가 나타난다. 상기한 방법으로 크립키 구조를 변환한 상태 기계로는 그 상태와 상태 천이의 결정법이 제어 사양 모델로서 적절하지 않다. 그 결과, 제어가능 시뮬레이션 관계의 계산에 영향이 미친다.
제어가능 시뮬레이션 관계는 (식 1)의 Hmax에 상당한다. 또한 제어 사양 모델은 이 식에서 M에 상당한다. 이 식에는 외성 신호(v)에 관한 전칭 연산이 포함되어 있다. 상기한 방법으로 크립키 구조로부터 제어 사양 모델을 발생하면 어떤 상태로부터 천이할 때의 외성 신호(v)의 값은 그 상태에 따라 특정 값으로 정해져 버린다. 이 때문에 제어 사양 모델의 천이 관계를 나타내는 (식 3)에 대하여 ∀v라는 전칭 연산을 실시하면 반드시 거짓이 된다. 이 성질은 (식 1)의 계산에 영향을 미친다. 상기 방법으로 제어 사양 모델을 발생하면 전칭 연산의 적용시에 본래의 의도와는 상이한 작용을 하기 때문에, 예기하지 않은 결과가 되는 것이다.
이것은, 다른 시점으로부터 말하면 도 26의 순서 기계가 비결정성(nondeterministic)인 것이 원인이라고 할 수도 있다. 따라서, 도 26을 결정성의 순서 기계로 변환한 후 제어가능 시뮬레이션 관계를 계산하면 이 문제를 방지할 수 있다. 그러나, 일반적으로 비결정성의 순서 기계를 결정성으로 변환하기 위해서는 많은 계산 시간과 기억 용량을 요구한다. 또한, 비결정성 모델로부터 결정성 모델으로의 변환은 결정성 모델의 상태를 부호화하기 위해 새로운 상태 변수가 요구되기 때문에, BDD에서의 구현에 적합하지 않다. 본 발명에 따르면, 제어계의 동작과 제어 사양 모델의 관계를 규정하는데 있어서 모방 관계를 채용하는 것은, 언어 포함 관계를 이용한 방법에 의해서는 계산 시간과 메모리 소비량이 많다는 점이 그 이유 중의 하나였다. 결정성 모델로의 변환을 행하면 본 발명의 장점이 손상되기 때문에, 자제하는 것이 적절하다.
이와 같이, 크립키 구조로부터 순서 기계로의 변환에 있어서, 어떤 상태로부터의 상태 천이에 부가하는 천이 라벨을 그 상태에 포함되는 기본 명제 변수(입력 v, 출력 y)의 값과 동등해지도록 순서 기계를 만들면, 예기하지 않은 결과를 얻을 수 있는 것을 알 수 있었다.
본 실시형태에서는 이 문제를 해결한 타블로 구축 방법을 채용한다. 이하에 이 방법을 설명한다. 설명에 앞서 이 방법을 도 25에 적용한 결과를 도 27에 나타낸다.
도 27은, 크립키 구조로부터 순서 기계로의 변환에 있어서, 천이 라벨을 천이 근원지가 아닌 천이 목적지 상태에 포함되는 기본 명제 변수(입력 v, 출력 y)의 값과 동등해지도록 붙인 것이다. 또한 "init"라는 상태가 새롭게 추가되어 있고, 이것이 초기 상태로 되어 있다.
이와 같이, 현 상태로부터 다음 상태로 천이 할 때에 입출력의 값에 의해 다음 상태가 다른 타블로(이 예에서는 순서 기계)를 "천이 목적지 선택형 타블로"라 고 부르기로 한다. 구별하기 위해 종래의 타블로는 "종래형 타블로(크립키 구조)"라고 부르기로 한다.
도 26에서, 천이 라벨은 (천이 목적지가 아닌) 천이 근원지의 상태에 포함되는 기본 명제 변수의 값과 동등해지도록 붙여져 있다. 상술한 바와 같이, 상태 변수는 5-자릿수로 표현되고 이 수의 마지막 2 자릿수는 v 및 y(즉, 입력 v 및 출력 y)에 대응한다. 이 상태의 천이 라벨은 "v/y"로서 표현된다. 도 26에서, 예를 들어, 상태 A로부터 상태 B로의 천이에 대한 천이 라벨은 상태 A(즉, 소스 노드)의 입력 및 출력 VA 및 yA를 사용한 "VA/yA"이다. 대조적으로, 도 27에서, 상태 A로부터 상태 B로의 천이에 대한 천이 라벨은 상태 B(즉, 천이 목적지 노드)의 입력 및 출력 VB 및 yB를 사용한 "VB/yB"이다. 천이 상태들의 입력 및 출력만의 순서 관점에서는, 도 26의 순서는 언어 포함 관계면에서 도 27과 동등하다. 그러나, 도 26에 도시된 도시된 상태들에서, 입력 및 출력의 값은 현재 상태에 의해 결정되고, 다음 상태는 입력 및 출력의 값에 의해 영향받지 않는다. 따라서, 도 26에 도시된 상태는 천이 목적지 선택형 타블로가 아니다.
천이 목적지 선택형 타블로가 전술한 전칭 연산에 의한 문제를 일으키지 않는 이유를 설명한다. 도 27의 "10010"이라는 상태를 보면, 2 종류의 천이가 가능하고, 상태 "10000"에의 천이에는 "0/0"이라는 천이 라벨이 또한 상태 "11010"에의 천이에는 "1/0"이라는 천이 라벨이 붙어 있다. 즉, 외성 신호(v)가 "1"인 경우와 "0"인 경우 양쪽 모두에 대하여 상태 "10010"로부터의 천이가 정의되어 있게 된다. 이 때문에 종래형 타블로 구축의 방법에 의해 얻어진 순서 기계와는 달리, (식 3)에 대하여 ∀v라는 전칭 연산을 실시하더라도 항상 거짓이 된다고 하는 현상은 일어나지 않는다. 이 성질에 의해 제어가능 시뮬레이션 관계의 계산에 있어서, 예기하지 않은 결과가 되는 것을 방지할 수 있다.
그런데, 도 27에는 중복성이 있다. 즉, 이 상태 기계는 축약하는 것이 가능하고, 그 결과는 도 28과 같이 된다. 도 28에서, 상태 부호는 좌측에서부터 순서대로 tg, tx0, tx1의 값에 대응한다.
이와 같이 축약할 수 있는 이유는 천이 목적지 선택형 타블로를 도출할 때의 원형이 된 종래형 타블로의 정의로부터 설명할 수 있다. 종래형 타블로의 천이 관계는 다음 시점 명제에 의존하지만, 현 상태 변수라도 원자 명제(입출력)에 해당하는 변수(v, y)는 천이 관계에 영향을 미치지 않는다. 이 특정예에서도 (식 11)을 보면, 현 상태의 다음 시점 명제 변수인 tg, tx0, tx1은 천이 관계에 영향을 미치지만, 입출력인 v, y는 영향을 미치지 않는 것을 알 수 있다.
이 것을 도 27에서 설명하면 "10010"이라는 상태로부터는 "1/0"이라는 천이에 의해 다음 상태는 "11010"이 되고, "0/0"이라는 천이에 의해 다음 상태는 "10000"이 된다. 그러나, 잘 보면 "10000", "10001", "10010", "10011"이라는 4개의 상태는 모두 동일한 입출력에 대하여 동일한 다음 상태로 천이하고 있다. 즉 천이 관계를 생각할 때, 다음 시점 명제 변수인 전반 3 비트를 보는 것만으로 충분하고, 원자 명제 변수인 후반 2 비트(v, y)는 무시할 수 있다. 그렇게 하면, 천이 목적지 선택형 타블로의 경우, 상태 변수로서 필요한 것은 다음 시점 명제 기호뿐이 며, 원자 명제에 해당하는 상태 변수의 값은 기억할 필요가 없는 것을 알 수 있다. 도 27에서, "10010"이라는 상태로부터는 "1/0"이라는 천이에 의해 다음 상태는 "11010"이 되지만, 다음 시점 명제 변수에 대응하는 전반 3 비트인 "110"만 기억해 두면, 또한 이후의 상태 천이에는 아무런 지장도 생기지 않는다. 후반 2 비트의 기본 명제 변수 "10"은 "1/0"이라는 천이에 대응하고 있지만, 그것은 이후의 상태 천이에 영향을 주지 않는다. 다시 말하면 입출력의 값은 상태 천이의 순간에 다음 상태의 선택에 영향을 부여하지만, 그러나 다음 상태가 정해져 버리면 그 입출력의 값을 기억해 둘 필요는 없는 것이다.
이상의 고찰에 기초하여, 도 28의 상태 천이도에서 원자 명제를 상태 변수로부터 생략하는 형태로 상태를 축약함으로써, 도 28에 도시된 상태 천이도를 얻을 수 있다. 예컨대, "10000", "10001", "10010", "10011"이라는 4개의 상태는 "100"이라는 1개의 상태로 통합할 수 있다.
이 예에서, 도 28에 도시된 상태 천이도로부터 "init"을 더 삭제하여 도 29에 도시된 상태 천이도로 다시 쓰는 것이 가능하다. 이러한 재기록은 원래의 제어 사양이 「어떠한 시점에서도 ∼가 성립하는 것」이라는 형식을 하고 있으면 즉시 가능하다. 왜냐하면, 제어 사양의 의미로부터 생각하여 도 28에서 초기 상태 "init"로부터 천이한 목적지의 상태를 기점이라고 간주하더라도, 계속해서 「어떠한 시점에서도 ∼가 성립하는 것」이라는 동일한 조건이 성립하기 때문이다. 그래서, 이들을 새로 초기 상태라고 생각하여 상태 천이도를 다시 그리면 도 29와 같이 된다. 「어떠한 시점에서도 ∼가 성립하는 것」이라는 조건은 도 21의 3행에 있는 "always"라는 키워드, 또는 (식 7)에서의 "G"라는 연산자의 의미로부터 유도되는 것이기 때문에, 이들을 안표로 하면 상기와 같은 다시 쓰기가 가능한 제어 사양인지의 여부를 용이하게 식별할 수 있다.
이상의 설명은 상태 천이도에 의해 행하였지만, 도 29의 천이 관계를 표의 형식으로 표현한 것이 도 30이다. 단, 도 29는(그 원인이 된 도 25가 tg=0인 경우를 생략하고 있기 때문에) tg=0인 경우가 생략되어 있지만, 도 30에서는 tg=0인 경우도 포함하고 있다.
도 31은 초기 상태를 나타내는 표이며, tg는 1, 그 이외의 tx0, 및 tx1은 1 또는 0 중 어느 것이라도 좋은 경우를 나타내고 있다.
도 23 및 도 24(또는 도 25)에 나타낸 크립키 구조로부터 전술한 도 30 및 도 31에(또는 도 29) 나타낸 천이 목적지 선택형 타블로를 발생하는 처리는, 도 20에서의 천이 목적지 선택형 타블로 발생 수단(424)에 의해 행해진다.
그런데, 도 30과 도 23을 비교해 보면, 원래의 타블로에서 다음 상태의 기본 명제 변수(v', y')였던 란이 천이 목적지 선택형 타블로에서 v, y의 란으로 교체되어 있는 것만으로 표의 내용은 동일하다는 것을 알 수 있다.
즉, 지금까지 설명해 온 천이 목적지 선택형 타블로는 종래의 타블로 구축과 거의 동일한 단계에 의해 발생하는 것이 가능하다. 단 원자 명제의 취급을 변경함으로써, 종래형 타블로와는 다른 성질의 타블로가 얻어지고, 이에 따라 본 발명의 목적을 달성할 수 있다.
이 착안점에 기초하면, 본 실시예에서의 천이 목적지 선택형 타블로의 구축 방법으로서, 종래 기술에 의한 타블로 구축 방법의 일부를 수정한 구축 방법을 이용할 수 있다. 그 방법을 종래 기술과의 비교에 의해 설명한다.
우선, 상태 변수를 구하는 방법을 비교한다. 도 32는 종래의 타블로 구축 방법에서의 상태 변수를 구하는 법을 나타내는 흐름도이다.
우선, 단계 501에서 시상 논리의 식(f)을 입력한다. 다음에 단계 502에서, 시상 논리식(f)을 타블로 규칙에 기초하여 전개하고, 전개식(g)을 얻는다. 단계 503에서는 전개식(g)에 포함되는 기본 부분식을 열거한다. 마지막으로, 단계 504에서 기본 부분식에 명제 기호를 할당한다. 이와 같이 하여 얻어진 기본 부분식과 명제 기호(현 상태 변수와 다음 상태 변수)의 관계가 도 22에 나타나는 것이다.
대조적으로, 본 실시형태에서는 도 32의 종래형 타블로 구축 방법에서의 상태 변수를 구하는 법을 도 33에 나타내는 흐름도로 수정한다.
종래의 단계 501(도 32)에 대응하는 것이 본 실시형태에서는 단계 516과 단계 517로 되어 있다.
단계 516에서 입력한 시상 논리의 식(e)에 시상 연산자의 X를 단계 517에서 추가한다. 이것은 init라는 상태를 새롭게 추가하는 처리에 상당한다. 단, 단순히 init라는 상태를 추가하는 방법과 비교해 볼 때, 이 방법에는 G에서 시작되는 시상 논리의 식의 경우에 상태 수가 늘지 않는다고 하는 장점이 있다.
후속해서, 천이 관계에 관해서 비교해 본다. 단, 종래 기술의 타블로는 크립키 구조인 것에 대하여, 본 실시예의 천이 목적지 선택형 타블로는 순서 기계이다. 이에 수반하여 본 실시형태에서는 원자 명제가 천이 라벨에 이용된다. 타블로의 상 태 변수가 되는 것은 다음 시점 부분식에 대응하는 명제 기호뿐이다. 이와 같이, 방법뿐만 아니라 출력하는 데이터의 성질이 상이한 것에 유의해야 한다. 또한 천이 관계를 구하는 방법의 차이를 설명한다.
도 34는 종래 기술에 의한 천이 관계(R)를 구하는 흐름도이다.
단계 505에서, 변수(R)를 true(참)로 초기화한다. 천이 관계는 최종적으로 이 R에 기억된다. 그 후, 단계 503(도 32도)에서 열거된 기본 부분식 중, 다음 시점 부분식을 순서대로 추출하여 처리를 행한다. 모든 다음 시점 부분식을 다 처리하였는지의 여부를 판정하는 것이 단계 506이다. 아직 다음 시점 부분식이 남아 있는 경우에는, 단계 507에서 그 1개를 선택한다. 또한 단계 507에서 "Xh로 한다"라는 것은 다음 시점 부분식의 선두인 X를 생략한 나머지 부분을 h로 한다라는 의미이다.
다음 단계 508에서, h에 타블로 규칙을 적용하여 전개한다. 그 결과에 포함되는 기본 부분식을 단계 509에서 다음 상태 변수로 치환한다. 그 결과를 "j"로 한다. 또한, 현재 처리중인 다음 시점 부분식(Xh)에 대응하는 현 상태 변수를 찾아내는 것이 단계 510이다. 그 현 상태 변수를 "t"로 한다. 또한, Xh라는 다음 상태 부분식으로부터 유도되는 관계는
t⇔j ...(13)
이다. 여기서, t는 현 상태 변수, j는 시간 상태 변수로 이루어지는 식이다.
이 결과를 이용하여 천이 관계의 중간 결과를 유지하고 있는 변수(R)를 갱신하는 것이 단계 511이다. 미처리의 다음 시점 부분식이 남아 있는 동안, 단계 506 으로부터 상기 처리를 반복한다. 모든 다음 시점 부분식이 처리 종료가 되면 단계 512 R을 출력하여 종료한다. 이 R이 종래 기술에 관한 타블로의 천이 관계를 나타내고 있다.
도 35는 본 실시형태에 따른 타블로(천이 목적지 선택형 타블로)의 천이 관계를 구하는 흐름도이다.
종래 기술의 단계 509에 대응하는 것이 본 실시형태의 경우는 단계 518로 되어 있다. 다른 점은, 종래 기술에서 다음 상태 변수로의 치환의 대상으로 되어 있던 것이 원자 명제를 포함하는 기본 부분식의 전부였던 것에 비해, 본 실시형태의 경우는 다음 시점 부분식만을 치환하는 점이다. 이 차이는(입출력 신호에 대응한다) 원자 명제를 상태 변수가 아닌 천이 라벨로서 취급하기 때문에 나타난 차이이다.
또한, 초기 상태를 구하는 방법에 관해서는, 본 실시예에서도 종래 기술과 동일하다.
이상이 천이 목적지 선택형 타블로 발생 수단(424)으로 행해지는 천이 목적지 선택형 타블로의 발생 방법의 설명이다. 여기서 얻어진 천이 목적지 선택형 타블로는 제어 사양 모델 기억 수단(406)에 기억된다. 이 이후의 부분[즉, 도 20에서, 제어 사양(시상 논리) 입력 수단(415)과 제어 사양 모델 발생 수단(416) 이외의 부분]의 작용은 제1 실시형태와 동일하기 때문에 설명을 생략한다.
단, 확인을 위해 도중에 얻어지는 중간 결과를 도시해 둔다.
도 10a 및 10b에 나타낸 제어 대상 모델(M1)과, 도 30 및 도 31에 나타낸 제 2 실시형태에 따른 제어 사양 모델(M)을 단순히 합성하면 도 36의 천이 표 및 도 37의 초기 상태의 집합을 나타내는 표가, 모델 합성 수단(421)의 출력으로서 얻어진다.
한편, 제어가능 시뮬레이션 관계(Hmax)는 도 38이며, 제어가능 시뮬레이션 관계 계산 수단(407)으로 계산된 것이다. 도 36의 천이 표 및 도 37의 초기 상태의 집합을 나타내는 표로부터 제어가능 시뮬레이션 관계(Hmax)(도 38)에 포함되는 것을 추출한 것이 허용 동작 모델(Mc)이 된다. 허용 동작 모델(Mc)의 천이 관계는 도 39, 초기 상태의 집합은 도 40이 된다. 또한, 제어 룰은 도 41과 같이 된다.
제2 실시형태의 특정예에서도, 외성 신호(v)나 제어 출력(y), 및 제어 입력(u)이 각각 1 비트의 신호로 되어 있었지만, 이들이 복수 비트라도, 마찬가지로 본 발명을 적용할 수 있는 것은 제1 실시형태와 유사하다. 1 비트의 예를 채용한 것은, 그렇게 하지 않으면 설명에 사용하는 도면이 너무 커져서 기재할 수 없게 되기 때문이다.
또한, 본 실시형태에서는 LTL을 기반으로 하는 제어 사양을 이용하였지만, ACTL로도 마찬가지로 본 발명을 적용할 수 있다. 비특허 문헌 3에는 LTL에서의 타블로 구축과 함께 ACTL의 타블로 구축 방법이 설명되어 있고, 양자는 대략 비슷하다. 이를 참고로 LTL의 X라는 연산에 대응하는 것이 ACTL에서는 AX인 것과, 이에 수반하여 천이 관계의 정의를 변경하는 것에 주의하면 ACTL에 관해서 천이 목적지 선택형 타블로를 발생하는 방법은 명백하다.
또한, 허용 동작 모델의 상태 수는 제어 대상 모델의 상태 수와 제어 사양 모델의 상태 수의 곱의 값 이하가 되는 것을 지적해 둔다. 상태 변수의 수로 말하면, 허용 동작 모델의 상태 변수의 수는 제어 대상 모델의 상태 변수의 수와, 제어 사양 모델의 상태 변수의 수의 합과 동등하거나, 그보다 작아진다. 허용 동작 모델의 상태 변수의 수라는 것은, 제어 장치를 디지털 회로로서 실장한 경우의 플립플롭 수와 같은 것이라고 생각할 수 있다. 즉, 제어 대상의 상태 수와 제어 사양의 다음 시점 명제의 수를 안 시점에서, 제어 장치의 규모를 어림할 수 있다.
특히, 제어 장치의 상태 수의 상한을 미리 알 수 있다는 것은 유용하며, 제어 모방 관계 등의 계산을 행하기 전에 그 계산이 컴퓨터 등에 의해 실시할 수 있는 규모인지의 여부를 예측하는 것에 도움이 된다.
상술한 바와 같이, 본 실시형태의 특징 중의 하나는, 시상 논리를 기반으로 하는 제어 사양으로부터 디지털 장치의 규모를 미리 추정할 수 있다는 것이다. 본 실시형태에서는 아비터나 스케줄러가 요구되는 경우에 그 접속 방법을 나타내지 않지만, 이들을 사용하는 경우에도, 이들 방식을 지정한 시점에서 추가 회로에 포함되는 플립플롭 수는 거의 특정할 수 있기 때문에, 그 규모를 미리 추정할 수 있다.
제2 실시형태에 따르면, 디지털 회로의 자동 설계 장치, 자동 설계 방법, 및 자동 설계 프로그램은, 제어계의 사양의 모델(제어 사양 모델)이 순서 기계가 아닌 시상 논리에 의한 사양으로서 주어진 경우라도, 디지털 회로의 자동 설계를 제공한다. 따라서, 제어 사양을 시상 논리로 표현하는 잇점(예컨대 정확성이나 간편성 등)을 누릴 수 있다.
또한, 본 발명이 양호한 실시예와 연계하여 기술되었지만, 이들 실시예만으 로 한정되는 것은 아님을 이해할 것이다. 본 발명의 특허청구범위에 정의된 본 발명의 사상과 범위 내에서 그 구성요소를 수정하여 구현할 수 있다. 또한, 본 발명은 양호한 실시예들에 공개된 복수의 구성요소들 중에서 적절한 요소들을 조합하여 구현할 수 있다. 예를 들어, 양호한 실시예들에 공개된 모든 구성요소들로부터 일부 구성요소는 제거될 수 있다. 또한, 복수의 양호한 실시예들의 구성요소들이 적절하게 결합될 수 있다.
본 발명에 따른 디지털 회로의 자동 설계 장치, 자동 설계 방법, 및 자동 설계 프로그램에 의하면 제어 대상에 제어 장치를 접속한 제어계의 구성에서, 제어 대상의 사양과 제어계의 제어 사양이 부여되었을 때에, 제어 사양에 합치하도록 제어 장치를 자동 설계하는 동시에, 제어 사양이 시상 논리에 의한 사양으로서 부여된 경우에도 제어 장치를 자동 설계할 수 있다.

Claims (13)

  1. 제어 대상 회로와 제어 장치 회로를 포함하는 디지털 제어계 회로용의 자동 설계 장치로서, 상기 제어 대상 회로의 모델과 상기 디지털 제어계 회로의 사양 모델이 부여된 경우에 상기 제어 장치 회로의 모델을 자동으로 설계하는, 상기 자동 설계 장치에 있어서,
    상기 제어 대상 회로의 모델이며 소정의 설계 기술 언어로 기술된 제1 제어 대상 모델을 입력받도록 구성된 제어 대상 입력 수단과;
    상기 제1 제어 대상 모델로부터 유한 상태 기계의 모델로 표현된 제2 제어 대상 모델을 발생하도록 구성된 제어 대상 모델 발생 수단과;
    발생된 상기 제2 제어 대상 모델을 기억하도록 구성된 제어 대상 모델 기억 수단과;
    상기 제어계 회로의 사양 모델이며 소정의 설계 기술 언어로 기술된 적어도 제1 제어 사양 모델을 입력받도록 구성된 제어 사양 입력 수단과;
    적어도 상기 제1 제어 사양 모델로부터 유한 상태 기계의 모델로 표현된 제2 제어 사양 모델을 발생하도록 구성된 제어 사양 모델 발생 수단과;
    상기 제2 제어 사양 모델을 기억하도록 구성된 제어 사양 모델 기억 수단과;
    상기 제어 대상 모델 기억 수단에 기억된 제2 제어 대상 모델과, 상기 제어 사양 모델 기억 수단에 기억된 제2 제어 사양 모델의 논리곱을 계산함으로써, 상기 제어 장치 회로의 합성 모델인 제어 장치 합성 모델을 발생하도록 구성된 모델 합 성 수단과;
    상기 제2 제어 대상 모델과 상기 제2 제어 사양 모델로부터 상기 제어 장치 합성 모델에 대한 제약 조건을 나타내는 제어가능 시뮬레이션 관계를 계산하도록 구성된 제어가능 시뮬레이션 관계 계산 수단과;
    계산된 상기 제어가능 시뮬레이션 관계를 기억하도록 구성된 제어가능 시뮬레이션 관계 기억 수단과;
    상기 제어 장치 합성 모델이 상기 제어계 회로의 사양을 만족하는 제어를 제공할 수 있는 모델인지의 여부를 상기 제어가능 시뮬레이션 관계에 기초하여 판정하도록 구성된 제어가능성 판정 수단과;
    상기 제어 장치 합성 모델과 상기 제어가능 시뮬레이션 관계로부터 상기 제어 장치 합성 모델의 규모를 축소한 모델인 허용 동작 모델을 발생하도록 구성된 허용 동작 모델 발생 수단과;
    발생된 상기 허용 동작 모델을 기억하도록 구성된 허용 동작 모델 기억 수단과;
    상기 허용 동작 모델의 규모를 더 축소할 수 있는 제어 룰을 결정하도록 구성된 제어 룰 결정 수단과;
    상기 허용 동작 모델과 상기 제어 룰의 논리곱을 계산함으로써, 유한 상태 기계의 모델로 표현된 제어 장치 모델을 발생하도록 구성된 제어 장치 모델 발생 수단
    을 포함하는 자동 설계 장치.
  2. 제1항에 있어서, 상기 제어 장치 모델을 실행가능 사양 기술 언어(executable specification description language)로 변환하도록 구성된 변환 수단을 더 포함하는 자동 설계 장치.
  3. 제1항에 있어서, 상기 제어 사양 입력 수단은 시상 논리식(temporal logic fomula)으로 기술된 상기 제어계 회로의 사양 모델을 더 입력받고, 상기 제어 사양 모델 발생 수단은, 상기 시상 논리식으로 기술된 제어계 회로의 입력받은 사양 모델을 유한 상태 기계의 모델인 타블로(tableau)로 변환하여 상기 제2 제어 사양 모델을 발생하기 위한 타블로 발생 수단을 포함한 것인, 자동 설계 장치.
  4. 제3항에 있어서, 상기 타블로 발생 수단은,
    상기 시상 논리식을 타블로 규칙에 기초하여 기본 부분식으로 전개하고,
    전개한 상기 기본 부분식에 대응되는 상태 변수의 상태 천이에서, 천이 목적지(destination node)의 상태 변수에 포함되는 입력 변수 및 출력 변수를 상기 상태 천이의 라벨값으로서 갖는 천이 목적지 선택형 타블로를 발생함으로써 순서 기계의 모델을 생성하는 것인, 자동 설계 장치.
  5. 제어 대상 회로와 제어 장치 회로를 포함하는 디지털 제어계 회로용의 자동 설계 장치로서, 상기 제어 대상 회로의 모델과 상기 디지털 제어계 회로의 사양 모 델이 부여된 경우에 상기 제어 장치 회로의 모델을 자동으로 설계하는, 상기 자동 설계 장치에 있어서,
    상기 제어 대상 회로의 모델이며 소정의 설계 기술 언어로 기술된 제1 제어 대상 모델을 입력받도록 구성된 제어 대상 입력 수단과;
    상기 제1 제어 대상 모델로부터 유한 상태 기계의 모델로 표현된 제2 제어 대상 모델을 발생하도록 구성된 제어 대상 모델 발생 수단과;
    발생된 상기 제2 제어 대상 모델을 기억하도록 구성된 제어 대상 모델 기억 수단과;
    상기 제어계 회로의 사양 모델이며 소정의 설계 기술 언어로 기술된 적어도 제1 제어 사양 모델을 입력받도록 구성된 제어 사양 입력 수단과;
    적어도 상기 제1 제어 사양 모델로부터 유한 상태 기계의 모델로 표현된 제2 제어 사양 모델을 발생하도록 구성된 제어 사양 모델 발생 수단과;
    상기 제2 제어 사양 모델을 기억하도록 구성된 제어 사양 모델 기억 수단과;
    상기 제어 대상 모델 기억 수단에 기억된 제2 제어 대상 모델과, 상기 제어 사양 모델 기억 수단에 기억된 제2 제어 사양 모델의 논리곱을 계산함으로써, 상기 제어 장치 회로의 합성 모델인 제어 장치 합성 모델을 발생하도록 구성된 모델 합성 수단과;
    상기 제2 제어 대상 모델과 상기 제2 제어 사양 모델로부터 상기 제어 장치 합성 모델에 대한 제약 조건을 나타내는 제어가능 시뮬레이션 관계를 계산하도록 구성된 제어가능 시뮬레이션 관계 계산 수단과;
    계산된 상기 제어가능 시뮬레이션 관계를 기억하도록 구성된 제어가능 시뮬레이션 관계 기억 수단과;
    상기 제어 장치 합성 모델이 상기 제어계 회로의 사양을 만족하는 제어를 제공할 수 있는 모델인지의 여부를 상기 제어가능 시뮬레이션 관계에 기초하여 판정하도록 구성된 제어가능성 판정 수단과;
    상기 제어 장치 합성 모델과 상기 제어가능 시뮬레이션 관계로부터 상기 제어 장치 합성 모델의 규모를 축소한 모델인 허용 동작 모델을 발생하도록 구성된 허용 동작 모델 발생 수단과;
    발생된 상기 허용 동작 모델을 기억하도록 구성된 허용 동작 모델 기억 수단과;
    상기 허용 동작 모델에 기초하여, 유한 상태 기계의 모델로 표현된 제어 장치 모델을 발생하도록 구성된 제어 장치 모델 발생 수단
    을 포함하는 자동 설계 장치.
  6. 제어 대상 회로와 제어 장치 회로를 포함하는 디지털 제어계 회로용의 자동 설계 방법으로서, 상기 제어 대상 회로의 모델과 상기 디지털 제어계 회로의 사양 모델이 부여된 경우에 상기 제어 장치 회로의 모델을 자동으로 설계하는, 상기 자동 설계 방법에 있어서,
    상기 제어 대상 회로의 모델이며 소정의 설계 기술 언어로 기술된 제1 제어 대상 모델을 입력받는 단계와;
    상기 제1 제어 대상 모델로부터 유한 상태 기계의 모델로 표현된 제2 제어 대상 모델을 발생하는 단계와;
    상기 제어계 회로의 사양 모델이며 소정의 설계 기술 언어로 기술된 적어도 제1 제어 사양 모델을 입력받는 단계와;
    적어도 상기 제1 제어 사양 모델로부터 유한 상태 기계의 모델로 표현된 제2 제어 사양 모델을 발생하는 단계와;
    상기 제2 제어 대상 모델과 상기 제2 제어 사양 모델의 논리곱을 계산함으로써, 상기 제어 장치 회로의 합성 모델인 제어 장치 합성 모델을 발생하는 단계와;
    상기 제2 제어 대상 모델과 상기 제2 제어 사양 모델로부터 상기 제어 장치 합성 모델에 대한 제약 조건을 나타내는 제어가능 시뮬레이션 관계를 계산하는 단계와;
    상기 제어 장치 합성 모델이 상기 제어계 회로의 사양을 만족하는 제어를 제공할 수 있는 모델인지의 여부를 상기 제어가능 시뮬레이션 관계에 기초하여 판정하는 단계와;
    상기 제어 장치 합성 모델과 상기 제어가능 시뮬레이션 관계로부터 상기 제어 장치 합성 모델의 규모를 축소한 모델인 허용 동작 모델을 발생하는 단계와;
    상기 허용 동작 모델의 규모를 더 축소할 수 있는 제어 룰을 결정하는 단계와;
    상기 허용 동작 모델과 상기 제어 룰의 논리곱을 계산함으로써, 유한 상태 기계의 모델로 표현된 제어 장치 모델을 발생하는 단계
    를 포함하는 자동 설계 방법.
  7. 제6항에 있어서, 상기 제어 장치 모델을 실행가능 사양 기술 언어로 변환하는 단계를 더 포함하는 자동 설계 방법.
  8. 제6항에 있어서, 상기 적어도 제1 제어 사양 모델을 입력받는 단계는, 시상 논리식으로 기술된 상기 제어계 회로의 사양 모델을 더 입력받고,
    상기 제2 제어 사양 모델을 발생하는 단계는, 상기 제2 제어 사양 모델을 발생하도록, 상기 시상 논리식으로 기술된 제어계 회로의 입력받은 사양 모델을 유한 상태 기계의 모델인 타블로로 변환하는 서브-단계를 포함하는 것인, 자동 설계 방법.
  9. 제8항에 있어서, 상기 시상 논리식으로 기술된 제어계 회로의 입력받은 사양 모델을 유한 상태 기계의 모델인 타블로로 변환하는 서브-단계는,
    상기 시상 논리식을 타블로 규칙에 기초하여 기본 부분식으로 전개하고,
    전개한 상기 기본 부분식에 대응되는 상태 변수의 상태 천이에 있어서, 천이 목적지의 상태 변수에 포함되는 입력 변수 및 출력 변수를 상기 상태 천이의 라벨값으로서 갖는 천이 목적지 선택형 타블로를 발생함으로써 순서 기계의 모델을 생성하는 것인, 자동 설계 방법.
  10. 제어 대상 회로와 제어 장치 회로를 포함하는 디지털 제어계 회로용의 자동 설계 프로그램을 포함하는 컴퓨터-판독가능한 기록 매체로서, 상기 제어 대상 회로의 모델과 상기 디지털 제어계 회로의 사양 모델이 부여된 경우에 상기 제어 장치 회로의 모델을 자동으로 설계하는, 상기 자동 설계 프로그램을 포함하는 컴퓨터-판독가능한 기록 매체에 있어서,
    상기 제어 대상 회로의 모델이며 소정의 설계 기술 언어로 기술된 제1 제어 대상 모델을 입력받는 단계와;
    상기 제1 제어 대상 모델로부터 유한 상태 기계의 모델로 표현된 제2 제어 대상 모델을 발생하는 단계와;
    상기 제어계 회로의 사양 모델이며 소정의 설계 기술 언어로 기술된 적어도 제1 제어 사양 모델을 입력받는 단계와;
    적어도 상기 제1 제어 사양 모델로부터 유한 상태 기계의 모델로 표현된 제2 제어 사양 모델을 발생하는 단계와;
    상기 제2 제어 대상 모델과 상기 제2 제어 사양 모델의 논리곱을 계산함으로써, 상기 제어 장치 회로의 합성 모델인 제어 장치 합성 모델을 발생하는 단계와;
    상기 제2 제어 대상 모델과 상기 제2 제어 사양 모델로부터 상기 제어 장치 합성 모델에 대한 제약 조건을 나타내는 제어가능 시뮬레이션 관계를 계산하는 단계와;
    상기 제어 장치 합성 모델이 상기 제어계 회로의 사양을 만족하는 제어를 제공할 수 있는 모델인지의 여부를 상기 제어가능 시뮬레이션 관계에 기초하여 판정 하는 단계와;
    상기 제어 장치 합성 모델과 상기 제어가능 시뮬레이션 관계로부터 상기 제어 장치 합성 모델의 규모를 축소한 모델인 허용 동작 모델을 발생하는 단계와;
    상기 허용 동작 모델의 규모를 더 축소할 수 있는 제어 룰을 결정하는 단계와;
    상기 허용 동작 모델과 상기 제어 룰의 논리곱을 계산함으로써, 유한 상태 기계의 모델로 표현된 제어 장치 모델을 발생하는 단계
    를 컴퓨터로하여금 실행시키도록 하는 명령을 포함하는, 자동 설계 프로그램을 포함하는 컴퓨터-판독가능한 기록 매체.
  11. 제10항에 있어서, 상기 제어 장치 모델을 실행가능 사양 기술 언어로 변환하는 단계를 더 포함하는, 자동 설계 프로그램을 포함하는 컴퓨터-판독가능한 기록 매체.
  12. 제10항에 있어서, 상기 적어도 제1 제어 사양 모델을 입력받는 단계는, 시상 논리식으로 기술된 상기 제어계 회로의 사양 모델을 더 입력받고,
    상기 제어 사양 모델 발생 단계는, 상기 제2 제어 사양 모델을 발생하도록, 상기 시상 논리식으로 기술된 제어계 회로의 입력받은 사양 모델을 유한 상태 기계의 모델인 타블로로 변환하는 서브-단계를 포함한 것인, 자동 설계 프로그램을 포함하는 컴퓨터-판독가능한 기록 매체.
  13. 제12항에 있어서, 상기 시상 논리식으로 기술된 제어계 회로의 입력받은 사양 모델을 유한 상태 기계의 모델인 타블로로 변환하는 서브-단계는,
    상기 시상 논리식을 타블로 규칙에 기초하여 기본 부분식으로 전개하고,
    전개한 상기 기본 부분식에 대응되는 상태 변수의 상태 천이에 있어서, 천이 목적지의 상태 변수에 포함되는 입력 변수 및 출력 변수를 상기 상태 천이의 라벨값으로서 갖는 천이 목적지 선택형 타블로를 발생함으로써 순서 기계의 모델을 생성하는 것인, 자동 설계 프로그램을 포함하는 컴퓨터-판독가능한 기록 매체.
KR1020060037602A 2006-01-31 2006-04-26 디지털 회로의 자동 설계 장치, 자동 설계 방법, 및 자동설계 프로그램 KR100764588B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2006-00023212 2006-01-31
JP2006023212A JP4528728B2 (ja) 2006-01-31 2006-01-31 デジタル回路の自動設計装置、自動設計方法、および自動設計プログラム

Publications (2)

Publication Number Publication Date
KR20070078960A KR20070078960A (ko) 2007-08-03
KR100764588B1 true KR100764588B1 (ko) 2007-10-09

Family

ID=38323118

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060037602A KR100764588B1 (ko) 2006-01-31 2006-04-26 디지털 회로의 자동 설계 장치, 자동 설계 방법, 및 자동설계 프로그램

Country Status (5)

Country Link
US (1) US7363097B2 (ko)
JP (1) JP4528728B2 (ko)
KR (1) KR100764588B1 (ko)
CN (1) CN101013447A (ko)
TW (1) TWI307030B (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090071596A (ko) * 2006-09-20 2009-07-01 내셔널 아이씨티 오스트레일리아 리미티드 모델 검사를 병용하기 위한 전이 시스템 생성 방법
US8219376B2 (en) * 2008-02-27 2012-07-10 International Business Machines Corporation Verification using directives having local variables
JP2010009384A (ja) * 2008-06-27 2010-01-14 Fujitsu Ltd 検証支援プログラム、検証支援装置、および検証支援方法
JP5195149B2 (ja) * 2008-08-11 2013-05-08 富士通株式会社 真偽判定方法
US8601013B2 (en) 2010-06-10 2013-12-03 Micron Technology, Inc. Analyzing data using a hierarchical structure
CN102567122A (zh) * 2010-12-27 2012-07-11 北京国睿中数科技股份有限公司 多仿真验证平台下的处理器参考模型的通信接口方法
CN102567555A (zh) * 2010-12-27 2012-07-11 北京国睿中数科技股份有限公司 时序电路的拓扑结构分析方法和状态机模型提取方法
US8726253B2 (en) 2011-01-25 2014-05-13 Micron Technology, Inc. Method and apparatus for compiling regular expressions
US8843911B2 (en) 2011-01-25 2014-09-23 Micron Technology, Inc. Utilizing special purpose elements to implement a FSM
WO2012103148A2 (en) 2011-01-25 2012-08-02 Micron Technology, Inc. Unrolling quantifications to control in-degree and/or out degree of automaton
US8418119B2 (en) * 2011-05-10 2013-04-09 International Business Machines Corporation Logical circuit netlist reduction and model simplification using simulation results containing symbolic values
JP2013200787A (ja) * 2012-03-26 2013-10-03 Fukuoka Pref Gov Sangyo Kagaku Gijutsu Shinko Zaidan モデル検査装置、モデル検査処理方法及びプログラム
US9086688B2 (en) * 2013-07-09 2015-07-21 Fisher-Rosemount Systems, Inc. State machine function block with user-definable actions on a transition between states
CN104572028B (zh) * 2014-12-26 2017-06-20 中国科学院自动化研究所 一种状态机等价变换的方法和装置
US10540468B1 (en) 2018-07-11 2020-01-21 International Business Machines Corporation Verification complexity reduction via range-preserving input-to-constant conversion
CN112380802B (zh) * 2019-07-29 2024-04-19 星宸科技股份有限公司 集成电路的半自动化设计的方法以及系统
CN113268890B (zh) * 2021-06-25 2023-06-23 华北电力大学(保定) 一种行为树模型到Kripke结构的映射方法
US11789520B1 (en) 2023-04-24 2023-10-17 RTSync Corp. System and method for activity-based design process framework for discrete event systems chip
US11789517B1 (en) 2023-04-24 2023-10-17 RTSync Corp. System and method for clock-frequency-based design process framework for discrete event systems chip

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990009715A (ko) * 1997-07-11 1999-02-05 디죠오지오 제이 시스템 설계 스펙 정의 장치 및 방법
JP2000286342A (ja) 1999-03-30 2000-10-13 Hitachi Ltd コンピュータ読み取り可能な記憶媒体、半導体集積回路の設計方法、ならびに半導体装置の設計方法
US20030014743A1 (en) 1997-06-27 2003-01-16 Cooke Laurence H. Method for compiling high level programming languages
KR20030056565A (ko) * 2001-12-28 2003-07-04 한국전자통신연구원 아이피 모듈 간에 인터페이스를 생성하는 알고리즘
KR20060114884A (ko) * 2005-05-03 2006-11-08 서강대학교산학협력단 인터페이스 회로 자동생성기 및 이에 의해 구현된인터페이스 회로

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5623418A (en) * 1990-04-06 1997-04-22 Lsi Logic Corporation System and method for creating and validating structural description of electronic system
US5696771A (en) * 1996-05-17 1997-12-09 Synopsys, Inc. Method and apparatus for performing partial unscan and near full scan within design for test applications
JP3600420B2 (ja) * 1997-02-28 2004-12-15 富士通株式会社 論理検証装置
US6324679B1 (en) * 1997-06-03 2001-11-27 Nec Usa, Inc. Register transfer level power optimization with emphasis on glitch analysis and reduction
US6487704B1 (en) * 1997-08-07 2002-11-26 Verisity Design, Inc. System and method for identifying finite state machines and verifying circuit designs
US6182268B1 (en) * 1998-01-05 2001-01-30 Synplicity, Inc. Methods and apparatuses for automatic extraction of finite state machines
US6378123B1 (en) * 1998-02-20 2002-04-23 Lsi Logic Corporation Method of handling macro components in circuit design synthesis
US6477683B1 (en) * 1999-02-05 2002-11-05 Tensilica, Inc. Automated processor generation system for designing a configurable processor and method for the same
US6816825B1 (en) * 1999-06-18 2004-11-09 Nec Corporation Simulation vector generation from HDL descriptions for observability-enhanced statement coverage
JP2001067384A (ja) * 1999-08-26 2001-03-16 Matsushita Electric Ind Co Ltd 集積回路装置の設計用データベース及び集積回路装置の設計方法
US7065481B2 (en) * 1999-11-30 2006-06-20 Synplicity, Inc. Method and system for debugging an electronic system using instrumentation circuitry and a logic analyzer
US6618839B1 (en) * 1999-11-30 2003-09-09 Synplicity, Inc. Method and system for providing an electronic system design with enhanced debugging capabilities
US6823497B2 (en) * 1999-11-30 2004-11-23 Synplicity, Inc. Method and user interface for debugging an electronic system
US6904397B1 (en) * 2000-02-22 2005-06-07 Xilinx, Inc. System and method for assisting in the development and integration of reusable circuit designs
AU2001273057A1 (en) * 2000-06-27 2002-01-08 Fluidigm Corporation A microfluidic design automation method and system
US7222315B2 (en) * 2000-11-28 2007-05-22 Synplicity, Inc. Hardware-based HDL code coverage and design analysis
JP2004054755A (ja) * 2002-07-23 2004-02-19 Nec Electronics Corp システムレベル設計方法及びシステムレベル設計装置
US7865637B2 (en) * 2003-06-18 2011-01-04 Nethra Imaging, Inc. System of hardware objects
US7246331B2 (en) * 2004-10-15 2007-07-17 International Business Machines Corporation Method for optimizing integrated circuit device design and service
US7483823B2 (en) * 2005-06-21 2009-01-27 Nvidia Corporation Building integrated circuits using logical units
US7788646B2 (en) * 2005-10-14 2010-08-31 International Business Machines Corporation Method for optimizing integrated circuit device design and service
JP4657912B2 (ja) * 2005-12-26 2011-03-23 富士通セミコンダクター株式会社 設計装置および設計方法とそのプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030014743A1 (en) 1997-06-27 2003-01-16 Cooke Laurence H. Method for compiling high level programming languages
KR19990009715A (ko) * 1997-07-11 1999-02-05 디죠오지오 제이 시스템 설계 스펙 정의 장치 및 방법
JP2000286342A (ja) 1999-03-30 2000-10-13 Hitachi Ltd コンピュータ読み取り可能な記憶媒体、半導体集積回路の設計方法、ならびに半導体装置の設計方法
KR20030056565A (ko) * 2001-12-28 2003-07-04 한국전자통신연구원 아이피 모듈 간에 인터페이스를 생성하는 알고리즘
KR20060114884A (ko) * 2005-05-03 2006-11-08 서강대학교산학협력단 인터페이스 회로 자동생성기 및 이에 의해 구현된인터페이스 회로

Also Published As

Publication number Publication date
TW200729008A (en) 2007-08-01
JP2007206855A (ja) 2007-08-16
JP4528728B2 (ja) 2010-08-18
US7363097B2 (en) 2008-04-22
CN101013447A (zh) 2007-08-08
TWI307030B (en) 2009-03-01
US20070179639A1 (en) 2007-08-02
KR20070078960A (ko) 2007-08-03

Similar Documents

Publication Publication Date Title
KR100764588B1 (ko) 디지털 회로의 자동 설계 장치, 자동 설계 방법, 및 자동설계 프로그램
US8417504B2 (en) Conversion of circuit description to a transaction model
US5471398A (en) MTOL software tool for converting an RTL behavioral model into layout information comprising bounding boxes and an associated interconnect netlist
Cortadella et al. A region-based theory for state assignment in speed-independent circuits
JPH07160744A (ja) 自律進化型ハードウェア設計システム
KR101275486B1 (ko) 순차적 등가성 검사를 위한 재구성된 설계를 준비하기 위한 방법
Abdel-Hamid et al. A tool converting finite state machine to VHDL
Khatri et al. Engineering change in a non-deterministic FSM setting
US8443314B1 (en) Abstraction level-preserving conversion of flip-flop-inferred hardware description language (HDL) to instantiated HDL
US20030046649A1 (en) Model-based logic design
WO2018066073A1 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
Luk A declarative approach to incremental custom computing
TWI841724B (zh) 執行模擬基礎物理設計規則以最佳化電路佈局
SUDACEVSCHI et al. Digital systems synthesis based on direct translation of petri net model
Lin et al. Hierarchical optimization of asynchronous circuits
Pruteanu et al. GenFSM: A finite state machine generation tool
Mador-Haim et al. Input elimination and abstraction in model checking
Mijalković A Practical Guide to Verilog-A
Gawanmeh et al. Embedding and Verification of PSL using ASM
Schulz Model-based codesign for real-time embedded systems
Stockmayer et al. Design using Standard Description Languages
Zerbe et al. Design flow for automated programming of FPGA
Bei et al. Fsm modeling of synchronous vhdl design for symbolic model checking
Shaw et al. System design based on interface specifications
Schäfer et al. A new approach to the design of concurrent control architectures

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee