KR100779014B1 - Method of designing hardware based on a systemc - Google Patents
Method of designing hardware based on a systemc Download PDFInfo
- Publication number
- KR100779014B1 KR100779014B1 KR1020050106503A KR20050106503A KR100779014B1 KR 100779014 B1 KR100779014 B1 KR 100779014B1 KR 1020050106503 A KR1020050106503 A KR 1020050106503A KR 20050106503 A KR20050106503 A KR 20050106503A KR 100779014 B1 KR100779014 B1 KR 100779014B1
- Authority
- KR
- South Korea
- Prior art keywords
- module
- hardware
- hardware module
- software
- memory
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
Abstract
본 발명은 시스템씨를 기반으로 하드웨어를 설계함으로써 개발 기간을 단축하는 것으로서, C함수로 설계된 JPEG-2000 시스템을 소프트웨어 모듈과 하드웨어 모듈로 분리하는 단계, 소프트웨어 모듈과 상기 하드웨어 모듈의 통신을 위해 채널을 형성하는 단계, 소프트웨어 모듈에 마스터 라이브러리(master library)를 적용하는 단계, 하드웨어 모듈에 슬레이브 라이브러리(slave library)를 적용하는 단계, C함수로 설계된 하드웨어 모듈을 행동적 시스템씨(behavioral SystemC)로 설계하여 합성 가능한 하드웨어 모듈로 형성하는 단계, 그리고 합성 가능한 하드웨어 모듈을 시스템씨 컴파일러로 컴파일하는 단계를 포함한다. 이와 같이, C언어로 설계된 JPEC-2000 부호화 시스템을 재사용하여 시스템씨를 기반으로 하는 하드웨어를 설계함으로써 제품 개발의 시간을 단축 할 수 있고, 하드웨어와 소프트웨어의 통합 설계를 통해 개발 도중에 코시뮬레이션이 가능하다. The present invention shortens the development period by designing hardware based on the system, and separating the JPEG-2000 system designed by the C function into a software module and a hardware module, and forming a channel for communication between the software module and the hardware module. Step of applying a master library to a software module, applying a slave library to a hardware module, and designing and synthesizing a hardware module designed as a C function as a behavioral SystemC. Forming a possible hardware module, and compiling a synthesizable hardware module with a SystemC compiler. In this way, by reusing the JPEC-2000 coding system designed in C language, designing the hardware based on the system seed can shorten the product development time, and cosimulation is possible during the development through the integrated design of the hardware and software.
소프트웨어, 하드웨어, 코시뮬레이션, 합성, 시스템씨 Software, hardware, cosimulation, synthesis, system
Description
도 1은 본 발명의 한 실시예에 따른 소프트웨어 알고리즘으로 설계된 JPEG-2000 부호화 시스템에 대한 순서도이다.1 is a flowchart of a JPEG-2000 encoding system designed by a software algorithm according to an embodiment of the present invention.
도 2는 본 발명의 한 실시예에 따른 언타임 레벨(untime level)에서의 JPEG-2000 부호화 시스템에 관한 블록도이다.2 is a block diagram of a JPEG-2000 encoding system at an untime level according to an embodiment of the present invention.
도 3은 본 발명의 한 실시예에 따른 합성 MQ 코더의 시스템씨 모델에 대한 블록도이다.3 is a block diagram of a system C model of a synthetic MQ coder according to one embodiment of the invention.
도 4는 본 발명의 한 실시예에 따른 JPEG-2000 부호화 시스템을 검증하는 것에 대한 순서도이다.4 is a flowchart for verifying a JPEG-2000 encoding system according to an embodiment of the present invention.
본 발명은 시스템씨를 기반으로 하드웨어를 설계하는 방법에 관한 것으로서, 특히 JPEG-2000 부호화 시스템에서 하드웨어를 설계하는 방법에 관한 것이다.The present invention relates to a method of designing hardware based on system seed, and more particularly, to a method of designing hardware in a JPEG-2000 encoding system.
JPEG-2000은 기존의 JPEG에 다양한 기능을 종합한 차세대 정지영상규격으로서, 특히 국제전기통신연합 ITU-RSG8과 ISO, IEC, JTC1, SC29 및 WG1에서 표준화를 수행하고 있다. 이것은 자연영상, 과학영상, 의료영상, 원격탐사영상, 문서영상, 그래픽영상 등과 같이 서로 다른 특성을 갖는 다양한 형태의 정지영상에 하나의 통합된 부호를 부여한다.JPEG-2000 is a next-generation still image standard that integrates various functions in the existing JPEG, and is standardized in particular by the International Telecommunication Union ITU-RSG8 and ISO, IEC, JTC1, SC29 and WG1. This gives a single unified code to various types of still images with different characteristics such as natural image, scientific image, medical image, remote sensing image, document image, and graphic image.
이러한 JPEG-2000은 의료영상, 원격탐사, 영상저장, 그래픽스 및 컴퓨터 합성영상, 팩시필리, 인쇄 및 출판영상, 레이저 인쇄, 디지털카메라, 스캐너 및 디지털 복사기, 경제 문서, 보안용 카메라, 지구영상처리, 사진 및 미술품의 디지털도서관 및 카메라폰 등 정지영상이 관련되는 전분야에 걸쳐 다양하게 이용될 수 있다.These JPEG-2000s include medical images, remote sensing, image storage, graphics and computer composite images, facsimile, printed and published images, laser printing, digital cameras, scanners and digital copiers, economic documents, security cameras, earth image processing, It can be used in various fields such as digital library of photographs and artworks, camera phones, and all related fields.
이와 같은 JPEG-2000의 부호화 시스템은 소프트웨어 개발자에 의해 C-model로 설계된다.The JPEG-2000 encoding system is designed as a C-model by a software developer.
JPEG-2000 부호화 시스템은 프로그래밍 언어를 이용하여 하나의 이미지(image)를 적절하게 나누는 타일링(tilling) 작업을 진행하고, 분할된 이미지에 대한 부호화(encoding)를 수행한다. 이어, JPEC-2000의 부호화 시스템의 하드웨어(hardware, HW)를 설계하기 위해 모델링(modeling)을 진행한다.The JPEG-2000 encoding system performs a tiling operation of appropriately dividing an image using a programming language, and performs encoding on the divided image. Next, modeling is performed to design hardware (HW) of the encoding system of JPEC-2000.
그런 다음, 하드웨어 개발자는 소프트웨어 시스템을 바탕으로하여 ASIC 설계 흐름을 따라 RTL(register transfer level)의 VHDL 이나 Verilog로 재작성한다.The hardware developer then rewrites the VHDL or Verilog at the register transfer level (RTL) along the ASIC design flow based on the software system.
한편, 이와 같이 하드웨어 설계를 위한 프로그램의 재작성은 설계자의 수작업으로 진행되므로 시스템에 오류가 발생하기 쉽다.On the other hand, since the rewriting of the program for hardware design is performed by the designer's manual operation, it is easy to cause an error in the system.
또한, 소프트웨어(software, SW) 개발자와 하드웨어 개발자가 서로 다른 언 어로 개발함으로써 서로 다른 수준의 테스트벤치(testbench)를 가지고 시스템 검증을 진행해야하므로 개발 도중의 코시뮬레이션(co-simulation)을 진행하기 어렵다. 이로 인해 종래의 시스템 검증은 하드웨어 개발을 완료한 다음에 이루어진다.In addition, co-simulation during development is difficult because software (SW) developers and hardware developers must develop systems with different levels of testbenches by developing in different languages. . Because of this, conventional system verification occurs after hardware development is completed.
코시뮬레이션은 소프트웨어의 시뮬레이션과 하드웨어 에뮬레이션을 동기화하는 것으로서, 매우 큰 기능 블록으로 독립적으로 분리된 순수 소프트웨어 시뮬레이션 프로세스와 순수 에뮬레이션 가속화 프로세스를 보다 사용자 친화적으로 만들기 위한 것이다.Cosimulation is a synchronization of software simulation and hardware emulation, which aims to make the pure software simulation process and the pure emulation acceleration process independent of very large functional blocks.
이러한, 코시뮬레이션 진행시 오류가 발생할 경우, 하드웨어 설계자는 하드웨어 설계를 처음 단계부터 다시 시작해야 하므로 개발 기간이 길어진다.If an error occurs during the co-simulation process, the hardware designer has to restart the hardware design from the beginning and the development period is long.
따라서, 본 발명의 기술적 과제는 시스템씨를 기반으로 하드웨어를 설계함으로써 개발 기간을 단축하는 것이다.Therefore, the technical problem of the present invention is to shorten the development period by designing hardware based on the system.
본 발명에 따른 시스템씨를 기반으로 하드웨어를 설계하는 방법으로, C함수로 설계된 JPEG-2000 시스템을 소프트웨어 모듈과 하드웨어 모듈로 분리하는 단계, 상기 소프트웨어 모듈과 상기 하드웨어 모듈의 통신을 위해 채널을 형성하는 단계, 상기 소프트웨어 모듈에 마스터 라이브러리(master library)를 적용하는 단계, 상기 하드웨어 모듈에 슬레이브 라이브러리(slave library)를 적용하는 단계, 상기 C함수로 설계된 상기 하드웨어 모듈을 행동적 시스템씨(behavioral SystemC)로 설계하여 합성 가능한 하드웨어 모듈로 형성하는 단계, 그리고 상기 합성 가능한 하드웨어 모듈을 시스템씨 컴파일러로 컴파일하는 단계를 포함한다.A method of designing hardware based on the system of the present invention, comprising: separating a JPEG-2000 system designed with a C function into a software module and a hardware module, and forming a channel for communication between the software module and the hardware module. Applying a master library to the software module, applying a slave library to the hardware module, and designing the hardware module designed by the C function as a behavioral system C. Forming a synthesizable hardware module, and compiling the synthesizable hardware module with a system C compiler.
상기 채널은 시스템씨 랩퍼(SystemC wrapper)를 통해 형성하는 시스템씨를 기반으로 할 수 있다.The channel may be based on SystemC, which is formed through a SystemC wrapper.
상기 시스템씨 랩퍼는 상기 마스터 및 상기 슬레이브 라이브러리의 풀 핸드쉐이크(full-handshake) 방법으로 형성할 수 있다.The system C wrapper may be formed by a full handshake method of the master and the slave libraries.
상기 소프트웨어 모듈이 상기 하드웨어 모듈의 동작을 요청(req) 및 응답(ack) 신호를 통해 제어하는 시스템씨를 기반으로 할 수 있다.The software module may be based on a system that controls the operation of the hardware module through request and ack signals.
상기 소프트웨어 모듈과 상기 하드웨어 모듈 사이에 주고 받는 신호는 객체지향적 C언어의 클래스(class)형태로 정의하여 사용할 수 있다.Signals transmitted and received between the software module and the hardware module may be defined and used in a class form of an object-oriented C language.
상기 합성 가능한 하드웨어 모듈 형성 단계는, 상기 C함수로 설계된 상기 하드웨어 모듈을 독립적 모듈, 메모리 인터페이스 및 메모리로 나누는 단계, 상기 독립적 모듈과 상기 메모리 인터페이스 사이에 데이터 전달을 위한 제1 포트를 선언하는 단계, 상기 메모리 인터페이스와 상기 메모리 사이에 데이터 전달을 위한 제2 포트를 선언하는 단계를 포함한다.The synthesizable hardware module forming step may include dividing the hardware module designed as the C function into an independent module, a memory interface, and a memory, declaring a first port for data transfer between the independent module and the memory interface; Declaring a second port for data transfer between the memory interface and the memory.
상기 제1 포트 및 상기 제2 포트는 상기 채널을 기반으로 지정할 수 있다.The first port and the second port may be designated based on the channel.
상기 독립적 모듈간의 데이터 전달은 이진(binary) 변수를 사용하여 제3 포트를 생성함으로써 전달할 수 있다.Data transfer between the independent modules can be transferred by creating a third port using a binary variable.
상기 메모리에 저장된 전역변수를 사용하여 상기 독립적 모듈간의 데이터룰 전달하는 경우, 상기 메모리 인터페이스를 통해 상기 메모리에 접근함으로써 데이터를 전달할 수 있다.When transferring data between the independent modules using global variables stored in the memory, data may be transferred by accessing the memory through the memory interface.
첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기 술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. DETAILED DESCRIPTION Embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art may easily implement the present invention. As those skilled in the art would realize, the described embodiments may be modified in various different ways, all without departing from the spirit or scope of the present invention.
도면에서 여러 층 및 영역을 명확하게 표현하기 위하여 두께를 확대하여 나타내었다. 명세서 전체를 통하여 유사한 부분에 대해서는 동일한 도면 부호를 붙였다. 층, 막, 영역, 판 등의 부분이 다른 부분 위에 있다고 할 때, 이는 다른 부분 바로 위에 있는 경우뿐 아니라 그 중간에 또 다른 부분이 있는 경우도 포함한다. 반대로 어떤 부분이 다른 부분 바로 위에 있다고 할 때에는 중간에 다른 부분이 없는 것을 뜻한다.In the drawings, the thickness of layers, films, panels, regions, etc., are exaggerated for clarity. Like parts are designated by like reference numerals throughout the specification. When a part of a layer, film, area, plate, etc. is over another part, this includes not only the part directly above the other part but also another part in the middle. On the contrary, when a part is just above another part, it means that there is no other part in the middle.
그러면 본 발명의 실시예에 따른 시스템씨를 기반으로 하드웨어를 설계하는 방법에 대하여 도 1 내지 도 4를 참고로 하여 상세하게 설명한다.Next, a method of designing hardware based on the system C according to an embodiment of the present invention will be described in detail with reference to FIGS. 1 to 4.
도 1은 본 발명의 한 실시예에 따른 소프트웨어 알고리즘으로 설계된 JPEG-2000 부호화 시스템에 대한 순서도이고, 도 2는 본 발명의 한 실시예에 따른 언타임 레벨(untime level)에서의 JPEG-2000 부호화 시스템에 대한 블록도이고, 도 3은 본 발명의 한 실시예에 따른 버스 액큐래잇 레벨(bus accurate level)에서 합성된 MQ 코더의 시스템씨 모델에 대한 블록도이고, 도 4는 본 발명의 한 실시예에 따른 JPEG-2000 부호화 시스템을 검증하는 것에 대한 순서도이다.1 is a flowchart of a JPEG-2000 encoding system designed by a software algorithm according to an embodiment of the present invention, and FIG. 2 is a JPEG-2000 encoding system at an untime level according to an embodiment of the present invention. 3 is a block diagram of a system C model of an MQ coder synthesized at a bus accurate level according to an embodiment of the present invention, and FIG. 4 is an embodiment of the present invention. Is a flowchart for verifying a JPEG-2000 encoding system according to the present invention.
도 1에 도시한 바와 같이, C-model로 설계된 JPEG-2000 부호화 시스템(90)은 반도체 회로의 명확한 모델에 대한 이미지(image)를 식별하고(S10), 이미지를 적절하게 분할하는 이미지 타일링(image tiling) 작업을 수행하고(S20), 분할된 이미지 를 디지털화 하여 각 이미지 패킷(packet)에 헤더(header)를 더하고(S30), 이것을 이산 웨이블렛 변환기(Discrete wavelet transform)에 전달하여 이미지를 시간(t) 및 주파수(f)에 대하여 국부성을 가진 신호를 생성하고(S40), 블락 코딩(block coding) 과정을 통해 CX(context), D(decision) 및 확률 테이블(Qe)의 값을 생성한 다음(S50), MQ 코더(coder)에 CX(context), D(decision) 및 확률 테이블(Qe) 값을 전달하여 이미지 데이터를 압축하고(S60), 압축된 이미지 데이터는 Tier2에 전달되어 하나의 코드 블락에 대한 처리가 끝나면 데이터 종결(termination) 부호를 더한 패킷을 생성한 다음(S70), 이미지 데이터를 비트(bit) 단위로 나열하여 이미지 데이터 비트 스트림(bit stream)을 형성하는(S80) C함수들로 구성되어 있다. 여기서, 압축된 이미지 데이터는 0 또는 1로 표현되며 1byte 단위로 저장한다.As shown in FIG. 1, a JPEG-2000
그런 다음, C-model로 작성한 JPEG-2000을 재사용하여 SystemC-model을 기반으로한 하드웨어를 설계하기 위해 도 2에 도시한 바와 같이, 기존의 C-model을 하드웨어 모듈(hardware module)(HWM)과 소프트웨어 모듈(software module)(SWM)로 나눈다.Then, to design hardware based on SystemC-model by reusing JPEG-2000 made by C-model, as shown in FIG. 2, the existing C-model is replaced with a hardware module (HWM). Divide into software modules (SWMs).
본 발명에서의 하드웨어 모듈(HWM)은 C-model로 작성되어 이미지 데이터를 압축하는 MQ 코더(coder)(S60)를 포함하고, 소프트웨어 모듈(SWM)은 C-model로 작성한 JPEG-2000 부호화 시스템 중 하드웨어 모듈(HWM) 부분을 제외한 C함수(S20, S30, S40, S50, S70, S80)를 포함한다.The hardware module (HWM) in the present invention includes an MQ coder (S60) written in C-model and compresses the image data, and the software module (SWM) in the JPEG-2000 encoding system created in C-model. C functions S20, S30, S40, S50, S70, and S80 except for the hardware module (HWM) portion are included.
이어, 소프트웨어 모듈(SWM)과 하드웨어 모듈(HWM)을 동시에 시뮬레이션 할 수 있도록 만든다.The software module (SWM) and the hardware module (HWM) can then be simulated simultaneously.
소프트웨어 모듈(SW)은 순차적으로 작업을 진행하는 반면, 하드웨어 모듈(HW)은 하드웨어가 포함하는 모든 모듈이 동시에 작업을 진행한다.The software module SW performs the tasks sequentially, while the hardware module HW processes all the modules included in the hardware at the same time.
따라서, 소프트웨어 모듈(SWM)과 하드웨어 모듈(HWM) 사이의 통신을 위해 시스템씨 랩퍼(SystemC wrapper)를 설계하여 채널(ch1, ch2)을 생성한다. 그리고 JPEG-2000 부호화 시스템의 순차적인 처리를 위해 소프트웨어 모듈(SWM)에 마스터 라이브러리(master library)를 사용하고, 하드웨어 모듈(HWM)에 슬레이브 라이브러리(slave library)를 사용한다. 이것은 하드웨어 모듈(HWM)인 MQ 코더가 C함수의 호출을 통해 수행되던 부분을 하드웨어적으로 시뮬레이션하기 위한 방법으로으로서, 마스터인 소프트웨어 모듈(SW)이 슬레이브인 하드웨어 모듈(HW)의 동작을 요구 신호(request signal, req) 및 응답 신호(acknowledge signal, ack)를 통해 제어함으로써 데이터를 순차적으로 처리할 수 있다. 이러한 이유로 시스템씨 랩퍼는 마스터 라이브러리 및 슬레이브 라이브러리의 풀 핸드쉐이크(full-handshake) 방법을 사용하여 만들 수 있다.Therefore, a SystemC wrapper is designed to generate channels ch1 and ch2 for communication between the software module SWM and the hardware module HWM. The master library is used for the software module (SWM) and the slave library is used for the hardware module (HWM) for the sequential processing of the JPEG-2000 encoding system. This is a method for hardware simulation of the part performed by the MQ coder, which is a hardware module (HWM), through a call to the C function. A signal requesting the operation of the hardware module (HW), which is a slave, is a software module (SW), which is a master. Data can be processed sequentially by controlling through (request signal, req) and acknowledgment signal (acck). For this reason, System Sea wrappers can be created using the full-handshake method of master and slave libraries.
그리고 하드웨어 모듈(HWM)과 소프트웨어 모듈(SWM) 사이에 주고 받는 신호는 객체지향적인 C언어의 클래스(class) 형태로 정의한다.Signals transmitted and received between the hardware module (HWM) and the software module (SWM) are defined in the form of a class of object-oriented C language.
이어, 소프트웨어 모듈(SWM)과 하드웨어 모듈(HWM) 사이에 통신 여부를 언타임드 레벨(untimed level)에서 시뮬레이션을 수행하여 확인한다.Subsequently, whether communication between the software module (SWM) and the hardware module (HWM) is confirmed by performing a simulation at an untimed level.
그런 다음, 도 3에 도시한 바와 같이, MQ 코더를 설계하는데 사용된 C언어를 재사용하여 하드웨어에도 적용이 가능한 시스템씨로 MQ 코더(700)를 버스 액큐래이트 레벨(bus accurate level)에서 설계하여 합성 가능한 MQ 코더(700)를 형성한다.Then, as shown in FIG. 3, the
우선, C함수로 작성된 MQ 코더의 각 C함수를 하드웨어 모듈(HWM)이 포함하는 MQ 모듈(module)(145)과 메모리 인터페이스(memory interface)(140), 그리고 메모리(memory)(150, 155, 160, 165)로 정의한다.First, the C module of the MQ coder written in the C function is included in the
MQ 모듈(145)은 MQ 코더(700) 내부 변수들을 초기화 하는 mqc_init_enc 모듈(100), 리셋 신호(reset signal)가 MQ 코더(700)로 인입할 경우 MQ 코더(700) 내부 변수들을 리셋하는 mqc_reset 모듈(105), 입력된 데이터를 부호화 하는 mqc_encode 모듈(110), 확률 테이블(Qe) 값을 재정의 하여 부호화 하는 mqc_renorme 모듈(115), 데이터를 부호화 하는 mqc_setcurctx 모듈(120), 부호화된 출력을 1byte씩 처리하는 mqc_byteout 모듈(125), MQ 코더(700)로 입력된 모든 데이터에 대한 부호화 작업이 완료되었을 때 종료 신호(termination signal)를 발생하는 mqc_flush 모듈(130) 및 부호화된 데이터의 길이를 계산하는 mqc_bytelength 모듈(135)을 포함한다.The
메모리(150, 155, 160, 165)는 MQ 코더(700) 설계시 필요한 전역변수를 저장하고, 메모리 인터페이스(140)는 데이터를 처리하는 MQ 모듈(145)과 메모리(150, 155, 160, 165) 사이의 데이터를 처리 장소로 보내주는 역할을 한다.The
그런 다음, MQ 모듈(145)과 메모리 인터페이스(140) 간의 통신을 위한 제1 포트(P1, P2, P3, P4, P5, P6, P7, P8)와 메모리 인터페이스(140)와 메모리(150, 155, 160, 165) 간의 통신을 위한 제2 포트(P9, P10, P11, P12)를 생성한다. 이때, 제1 및 제2 포트(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12)는 앞서 서술한 시스템씨 랩퍼를 통해 생성된 채널(ch1, ch2)을 기반으로하여 만든다.Then, the first ports (P1, P2, P3, P4, P5, P6, P7, P8) for communication between the
그리고 mqc_encode 모듈(110)과 mqc_renorme 모듈(115), mqc_encode 모듈(110)과 mqc_setcurctx 모듈(120), mqc_encode 모듈(110)과 mqc_byteout 모듈(125), mqc_renorme 모듈(115)과 mqc_flush 모듈(130), mqc_byteout 모듈(125)과 mqc_flush 모듈(130) 간의 데이터 전달은 이진(binary) 변수를 사용하여 제3 포트(P13, P14, P15, P16, P17)를 생성함으로써 전달한다. 한편, 메모리(150, 155, 160, 165)에 저장된 전역변수를 사용하여 데이터를 전달하는 경우, 메모리 인터페이스(140)을 통해 메모리(150, 155, 160, 165)에 접근하여 데이터를 전달한다. 이때, 메모리(150, 155, 160, 165)에 접근하는 mqc_encode 모듈(110), mqc_renorme 모듈(115), mqc_setcurctx 모듈(120), mqc_byteout 모듈(125) 및 mqc_flush 모듈(130)은 메모리 데이터를 읽고(read) 쓰는(write)데에 필요한 신호들을 고려하여 설계한다.
이러한 설계 방법을 통해 시스템씨로 설계된 MQ 코더(700)는 C언어를 재사용하여 설계함에 따라 종래와 같이 하드웨어 개발자가 소프트웨어 시스템을 바탕으로하여 ASIC 설계 흐름을 따라 처음부터 RTL(register transfer level)의 VHDL 이나 Verilog로 설계자의 수작업으로 재작성하지 않으므로 개발기간을 단축할 수 있다.As the
또한, 하드웨어 모듈(HWM)과 소프트웨어 모듈(SWM)이 통합 설계되어 있으므로 개발 도중에도 코시뮬레이션(co-simulation)이 가능하다.In addition, since the hardware module (HWM) and software module (SWM) are integrated design, co-simulation is possible even during development.
그런 다음, 도 4에 도시한 바와 같이, 버스 액큐래이트 레벨에서 설계된 MQ 코더(S200)를 FPGA 라이브러리를 적용한(S215) 시스템씨 컴파일러(compiler)로 (S210) 하드웨어적인 언어.db/HDL로 합성(S230)하고, .db/HDL로 합성된 MQ 코더를 FPGA 컴파일러를 통해 시뮬레이션을 하고(S235) 이로써 얻어진 네트리스트 결과물(end netlist)(S240)을 iPROVE와 같은 보드(board)를 사용하여 FPGA칩(field programmable gate array chip)에 다운로드(S250)하고, FPGA칩과 컴퓨터에 입력된 소프트웨어 모듈(SWM)의 프로그램을 버스 시스템인 PCI(peripheral component interconnect)를 통하여 FPGA칩과 소프트웨어 모듈(SW)의 프로그램이 입력된 컴퓨터 통신을 실행하여 JPEG-2000 C-model을 이용한 인코딩 결과와 시스템씨로 설계하여 합성된 MQ 코더를 이용한 인코딩 결과가 일치하는 것을 검증할 수 있다.Then, as shown in FIG. 4, the MQ coder (S200) designed at the bus accumulator level (S215) is applied to the FPGA library (S215) by the system's compiler (S210). (S230), the .db / HDL synthesized MQ coder is simulated by the FPGA compiler (S235), and the netlist result (end netlist) (S240) obtained is a FPGA chip using a board such as iPROVE. The program of the FPGA chip and the software module (SW) is downloaded to the field programmable gate array chip (S250), and the program of the software module (SWM) input to the FPGA chip and the computer is transferred through a peripheral component interconnect (PCI), which is a bus system. This input computer communication can be executed to verify that the encoding result using the JPEG-2000 C-model and the encoding result using the synthesized MQ coder match.
따라서, 소프트웨어 알고리즘 수준에서 빠르고 손쉽게 RTL 수준의 재설계 없이 하드웨어를 설계함으로써, 기존의 설계보다 빠르게 하드웨어를 설계할 수 있다.Therefore, by designing hardware at the software algorithm level quickly and easily without redesigning at the RTL level, the hardware can be designed faster than the existing design.
본 발명에 따르면 C언어로 설계된 JPEC-2000 부호화 시스템을 재사용하여 시스템씨를 기반으로 하는 하드웨어를 설계함으로써 제품 개발의 시간을 단축 할 수 있다.According to the present invention, it is possible to reduce the time for product development by designing hardware based on the system seed by reusing the JPEC-2000 encoding system designed in the C language.
또한, 하드웨어와 소프트웨어의 통합 설계를 통해 개발 도중에 코시뮬레이션이 가능하다.In addition, the integrated design of the hardware and software enables cosimulation during development.
이상에서 본 발명의 바람직한 실시예에 대하여 상세하게 설명하였지만, 당해 기술 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 수 있을 것이다. 따라서, 본 발명의 권리 범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.Although the preferred embodiments of the present invention have been described in detail above, those skilled in the art will understand that various modifications and equivalent other embodiments are possible therefrom. Accordingly, the scope of the present invention is not limited thereto, and various modifications and improvements of those skilled in the art using the basic concept of the present invention as defined in the following claims also fall within the scope of the present invention.
Claims (9)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050106503A KR100779014B1 (en) | 2005-11-08 | 2005-11-08 | Method of designing hardware based on a systemc |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050106503A KR100779014B1 (en) | 2005-11-08 | 2005-11-08 | Method of designing hardware based on a systemc |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20070049391A KR20070049391A (en) | 2007-05-11 |
KR100779014B1 true KR100779014B1 (en) | 2007-11-22 |
Family
ID=38273375
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020050106503A KR100779014B1 (en) | 2005-11-08 | 2005-11-08 | Method of designing hardware based on a systemc |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100779014B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100928181B1 (en) * | 2007-06-22 | 2009-11-25 | 재단법인서울대학교산학협력재단 | Digital system design method |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09153077A (en) * | 1995-12-01 | 1997-06-10 | Pfu Ltd | Digital circuit design support system, and method for design of hardware and software of digital circuit |
KR19990064824A (en) * | 1999-05-12 | 1999-08-05 | 노명래 | Apparatus and method for hardware/software co-emulating by supporting multi-function module |
US20030005392A1 (en) | 2001-06-29 | 2003-01-02 | Matsushita Electric Industrial Co., Ltd. | Method of designing a logic circuit |
KR20030054061A (en) * | 2001-12-24 | 2003-07-02 | 한국전자통신연구원 | Method for Synthesizing Hardware-Software interface |
-
2005
- 2005-11-08 KR KR1020050106503A patent/KR100779014B1/en not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09153077A (en) * | 1995-12-01 | 1997-06-10 | Pfu Ltd | Digital circuit design support system, and method for design of hardware and software of digital circuit |
KR19990064824A (en) * | 1999-05-12 | 1999-08-05 | 노명래 | Apparatus and method for hardware/software co-emulating by supporting multi-function module |
US20030005392A1 (en) | 2001-06-29 | 2003-01-02 | Matsushita Electric Industrial Co., Ltd. | Method of designing a logic circuit |
KR20030054061A (en) * | 2001-12-24 | 2003-07-02 | 한국전자통신연구원 | Method for Synthesizing Hardware-Software interface |
Non-Patent Citations (1)
Title |
---|
단일칩시스템 설계 검증을 위한 가상 프로토타이핑 |
Also Published As
Publication number | Publication date |
---|---|
KR20070049391A (en) | 2007-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7509647B2 (en) | Method and apparatus for modeling dataflow systems and realization to hardware | |
US6606588B1 (en) | Design apparatus and a method for generating an implementable description of a digital system | |
TWI329821B (en) | Transferring software assertions to hardware description language code | |
Ferrandi et al. | A design methodology for dynamic reconfiguration: The caronte architecture | |
KR100779014B1 (en) | Method of designing hardware based on a systemc | |
Tumeo et al. | Prototyping pipelined applications on a heterogeneous fpga multiprocessor virtual platform | |
US7113901B1 (en) | Reuse of hardware components | |
Rincón et al. | Model reuse through hardware design patterns | |
Madl et al. | Formal performance evaluation of AMBA-based system-on-chip designs | |
Daroui | A loosely-timed tlm-2.0 model of a jpeg encoder on a checkerboard gpc | |
KR20080022878A (en) | Method for designing jpeg2000 encoder | |
Baganne et al. | A multi-level design flow for incorporating IP cores: Case study of 1D wavelet IP integration | |
Derrien et al. | Automatic synthesis of efficient interfaces for compiled regular architectures | |
Zhenxin et al. | A UML-based approach for heterogeneous IP integration | |
Thomas et al. | Framework for development and distribution of hardware acceleration | |
Messaoudi et al. | Hardware/software implementation of image processing systems based on ARM processor | |
Walstrom | System-level design refinement using SystemC | |
Park et al. | Reusable component IP design using refinement-based design environment | |
Danowitz | Exploring abstract interfaces in system-on-chip integration | |
Varma | A Study of FPGA Resource Utilization for Pipelined Windowed Image Computations | |
Mokrani et al. | Assisting refinement in system-on-chip design | |
Gupta et al. | System Design of Digital Camera Using Specfic | |
Chureau et al. | Interface-based design of systems-on-chip using UML-RT | |
Fayad | Co-design and communication synthesis of embedded systems for multimedia applications | |
SFAR et al. | TRANSACTION LEVEL MODELS'STRUCTURING: FROM IDIOMS TO TLM-2. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20111020 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |