KR100751405B1 - Fpga와 usb 간의 인터페이스 장치 - Google Patents

Fpga와 usb 간의 인터페이스 장치 Download PDF

Info

Publication number
KR100751405B1
KR100751405B1 KR1020050129645A KR20050129645A KR100751405B1 KR 100751405 B1 KR100751405 B1 KR 100751405B1 KR 1020050129645 A KR1020050129645 A KR 1020050129645A KR 20050129645 A KR20050129645 A KR 20050129645A KR 100751405 B1 KR100751405 B1 KR 100751405B1
Authority
KR
South Korea
Prior art keywords
usb
fpga
interface device
logic device
interface
Prior art date
Application number
KR1020050129645A
Other languages
English (en)
Other versions
KR20070068017A (ko
Inventor
황인철
Original Assignee
엘지전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지전자 주식회사 filed Critical 엘지전자 주식회사
Priority to KR1020050129645A priority Critical patent/KR100751405B1/ko
Publication of KR20070068017A publication Critical patent/KR20070068017A/ko
Application granted granted Critical
Publication of KR100751405B1 publication Critical patent/KR100751405B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)

Abstract

본 발명은 FPGA와 USB 간의 인터페이스에 관한 것이다.
본 발명은 USB(Universal Serial Bus)의 동작을 제어하는 마이크로 프로세서; 상기 마이크로 프로세서의 시퀀스를 제어할 수 EEPROM(Electrically Erasable Programmable ROM); 및 상기 USB와 FPGA(Field Programmable Gate Array) 간의 중간(Intermediate) 버퍼 로직 장치를 포함하여 이루어지는 것을 특징으로 하는 FPGA와 USB 간의 인터페이스 장치를 제공한다.
따라서, 본 발명에 의하면 FPGA와 USB 간의 버퍼링 타임을 단축할 수 있다.
USB, FPGA, EEPROM

Description

FPGA와 USB 간의 인터페이스 장치{An interface device between FPGA and USB}
도 1은 FPGA와 USB 간의 인터페이스의 구성블럭도.
도 2는 종래의 일방향성을 갖는 FPGA와 USB 간의 인터페이스의 구성블럭도.
도 3은 본 발명에 따른 양방향성을 갖는 FPGA와 USB 간의 인터페이스의 구성블럭도.
<도면의 주요 부분에 대한 부호의 설명>
100 : FPGA 120 : 중간 버퍼 로직
120a : 입력 신호 120b : 출력 신호
130 : SRAM 140 : USB 모듈
142 : EEPROM 144 : 16 비트 RISC 프로세서
146 : USB 컨트롤러 150 : 트라이-스테이트 버퍼
160 : PC 162 : 호스트 컨트롤러
164 : 호스트 컨트롤러 드라이버 166 : USB 코어
168 : OSI(디바이스 드라이버) 180 : Application
본 발명은 인터페이스 장치에 관한 것으로서, 보다 상세하게는 FPGA와 USB의 인터페이스 장치에 관한 것이다.
2개의 호스트(host) 사이의 데이터(data) 또는 커맨드(command)의 전송을 중개하는 인터페이스 장치로서, 한 쪽의 호스트는 컴퓨터이고 다른 한 쪽의 호스트는 프린터(print) 등의 하드웨어인 경우 또는 컴퓨터와 컴퓨터를 접속하는 허브로서 기능하는 인터페이스 장치 등이 있다. 컴퓨터에서 다른 하드웨어로 데이터나 커맨드를 전송할 때 여러 가지 경로를 거치게 되며, USB(Universal Serial Bus)나 IEEE(Institute of Electrical and Electronic Engineers)1394 등을 사용하게 된다. 본 발명은 USB를 사용하게 되는 경우의 인터페이스 장치에 관한 것으로, 구체적으로는 FPGA와 USB의 인터페이스 장치에 관한 것이다.
최근 IP(Intellectual Property)의 게이트 카운트(gare count)가 커지면서 IP 검증 시간이 문제가 되고 있으며, IP에 따라 빈번히 변하는 제어(control) 신호 처리의 어려움 때문에 IP 검증을 위한 인터페이스(interface) 설계가 쉽지 않다. 또한, IP 디자인(design) 검증시에 데이터(data) 전송 에러가 발생하여 정확한 IP 검증이 어렵다.
도 1은 FPGA와 USB 간의 인터페이스의 구성블럭도이고, 도 2는 종래의 일방향성을 갖는 FPGA와 USB 간의 인터페이스의 구성블럭도이다.
도 1 및 도 2를 참조하여, 종래의 일방향성을 갖는 인터페이스 장치를 설명하면 다음과 같다.
도 1에서 PC 어플리케이션(Application, 180) 프로그램으로부터 OSI(168), USB(166), 호스트 컨트롤러 드라이버(164), 호스트 컨트롤러(162)를 각각 순서대로 거친 데이터는 USB 컨트롤러(146)로 연속적으로 전달된다. 이 때, USB 장치(device)에 해당되는 FPGA(100)와 통신을 초기화하기 위해서 USB에서는 앤드포인트 파이프(endpoint pipe)를 형성하고 제어 트랜스퍼(control transfer)를 사용하여 FPGA(100)와 신호를 주고 받게 된다.
한편, USB 컨트롤러(146)는 데이터를 전달하기 위해서 벌크 트랜스퍼(bulk transfer)를 사용하여 PC(160)로부터 64바이트(byte)의 데이터를 한 번에 USB 컨트롤러(146) 내부 메모리에 전달한다. USB 컨트롤러(146) 내부 메모리에 데이터 버퍼링(buffering)이 끝나면 USB(140)는 중간 버퍼 로직(Intermediate Buffer Logic, 120)으로 한 번에 16비트(bit)씩 데이터를 순차적으로 보내게 된다. 버퍼 설계(design)는 선입선출(FIFO, First in First out)와 후입선출(LIFO, Last in First out) 둘 다 가능하다.
도 2에서, 일방향을 갖는 USB인터페이스를 설계할 경우에 USB 컨트롤러가 한 번에 데이터를 주고받을 수 있는 데이터 폭이 8비트가 되고,입력(input, 120a)과 출력(output, 120b) 경로(path)를 같이 쓰는 16비트의 입력 포트보다 입력에서 2배의 클럭(clock)이 소모되고, 출력에서 2배의 클럭이 소모되어서 결과적으로 4배의 버퍼링 타임(biffering time)이 지연(delay)된다.
따라서, 상술한 종래의 FPGA와 USB 간의 인터페이스는 다음과 같은 문제점이 있었다.
첫째, 8비트의 작은 데이터 폭(width)를 통하여 내부 데이터 신호(signal)를 버퍼링하기 때문에 버퍼링 시간이 오래 걸린다.
둘째, 상술한 버퍼링 시간의 지연에 의하여 입력 데이터의 실시간 처리가 어렵다.
본 발명은 상기와 같은 문제점을 해결하기 위한 것으로서, 본 발명의 목적은 입력 데이터 신호의 버퍼링 시간을 단축하는 FPGA와 USB 간의 인터페이스를 제공하는 것이다.
본 발명의 다른 목적은 입력 데이터를 실시간으로 처리하는 FPGA와 USB 간의 인터페이스를 제공하는 것이다.
상기 목적을 달성하기 위하여, 본 발명은 USB(Universal Serial Bus)의 동작을 제어하는 마이크로 프로세서; 상기 마이크로 프로세서의 시퀀스를 제어하는 EEPROM(Electrically Erasable Programmable ROM); 및 상기 USB와 FPGA(Field Programmable Gate Array) 간의 중간(Intermediate) 버퍼 로직 장치를 포함하여 이루어지는 것을 특징으로 하는 FPGA와 USB 간의 인터페이스 장치를 제공한다.
이하 상기의 목적을 구체적으로 실현할 수 있는 본 발명의 바람직한 실시예를 첨부한 도면을 참조하여 설명한다. 종래와 동일한 구성 요소는 설명의 편의상 동일 명칭 및 동일 부호를 부여하며 이에 대한 상세한 설명은 생략한다.
도 3은 본 발명에 따른 양방향성을 갖는 FPGA와 USB 간의 인터페이스의 구성 블럭도이다. 도 3을 참조하여 본 발명에 따른 양방향성을 갖는 FPGA와 USB 간의 인터페이스를 설명하면 다음과 같다.
본 발명에 따른 양방향성을 갖는 FPGA와 USB 간의 인터페이스는 마이크로 프로세서와 EEPROM 및 버퍼 로직 장치를 포함하여 이루어진다. 상기 마이크로 프로세서는 USB(Universal Serial Bus, 140)의 동작을 제어하고, 상기 EEPROM은 상기 마이크로 프로세서의 시퀀스(sequence)를 제어하며, 상기 버퍼 로직 장치는 상기 USB와 FPGA(Field Programmable Gate Array) 간의 중간(Intermediate) 매개체 역할을 한다.
상기 중간 버퍼 로직 장치는, 트라이-스테이트(Tri-state, 150) 버퍼를 가지고 16비트(bit)의 인-아웃 버스(In-Out Bus)를 제어하며, 상기 인-아웃 버스는 각각 8 비트의 입력과 8비트의 출력을 한 개의 데이터 버스로 처리하는 것이 바람직하다. 또한, 상기 중간 버퍼 로직 장치는, 버퍼 크기를 자동으로 조정하는 제어신호 및 상기 FPGA 내부에 다운로드될 IP의 제어신호를 가지는 것이 바람직하다.또한 상기 EEPROM은, 상기 USB 벌크(bulk) 트랜스퍼(transfer)를 제어하고, 소프트웨어 클럭(software clock)을 사용하여, 클럭의 듀티(duty)와 주기를 제어하는 것이 바람직하다.
도 3에서의 INOUT_SEL 신호는 입력과 출력을 선택하기 위한 신호이다. 상기 INPUT_SEL이 1이면 상기 트라이-스테이트 버퍼(150)는 하이 임피던스(high impedance) 상태가 되며, 도 3의 ①번 경로를 따라서 USB에서 입력 버퍼로 신호가 전달된다. 상기 INOUT_SEL이 0이면 상기 트라이-스테이트 버퍼(150)는 온(On) 상태 가 되며, ②번 경로를 따라서 출력 버퍼에서 USB로 데이터가 전송된다. 도면 3에서의 Sel 신호는 FPGA 내부에 다운로드(Download)될 IP(Intellectual Property)의 제어신호와 버퍼 사이즈의 제어신호로 구성된다.
상기 트라이-스테이트 버퍼(150)의 동작을 설명하면 다음과 같다. 상기 USB는 중간 버퍼 로직에 INOUT_SEL 신호 1을 보내고, 상기 FPGA에서 연산할 데이터를 ①번 경로로 보낸다. 입력 버퍼는 상기 USB로부터 sel신호를 입력받아서 버퍼 사이즈를 정하게 되고, ①번 경로를 통하여 입력 데이터를 버퍼링하기 시작한다. 이어서, 버퍼 사이즈만큼 데이터가 전부 저장되면 입력 버퍼는 FPGA에게 BUFF_DONE 신호를 내보내며, FPGA는 BUFF_DONE 신호를 Reset 신호로 사용하여 IP 동작을 일으킨다. 이어서, FPGA 내부에 다운로드 된 프로그램의 연산이 끝난 후에 출력 버퍼는 FPGA로부터 출력 플래그(flag) 신호를 전달받으며 출력 버퍼는 다시 USB로 데이터를 내보내는 의미를 지닌 START_SIG를 전달하고, 16비트씩 USB로 데이터를 전달한다. 그리고, 출력 버퍼는 데이터 전송이 완료되면 END_SIG를 전송해준다. 이 때, 데이터는 ②번 경로를 통해 전송되며, 상기 USB는 START_SIG를 받게 되면 데이터를 출력 버퍼로부터 전송 받기 위해서 INOUT_SEL=0인 신호를 중간 버퍼 로직에 전달하고 대기한다. 또한, 상기 중간 버퍼 로직에 사용된 클럭은 소프트웨어 프로그래밍에 의하여 발생된 클럭이다. 즉, EEPROM에서 다운로드하는 어셈블리 코딩(Assembly coding)를 이용하여 특정 USB 제너럴 IO핀을 클럭 핀으로 선정하여 프로그램에서 1과 0을 내보내는 방식을 채택하여 클럭 듀티(duty)와 주기(period)를 조정하는 방식을 채택하고 있다.
상술한 바와 같이, FPGA와 USB 간의 인터페이스 장치를 양방향으로 설계하면, 버퍼링 클럭의 소모가 일방향으로 설계된 인터페이스 장치보다 시간이 4배 줄어드는 효과가 있다. 또한, EEPROM에 다운로드하는 어셈블리 코딩(Assembly coding)을 이용하여 특정 USB 제너럴(general) IO 핀을 클럭 핀으로 선정하여 프로그램에서 1과 0을 내보내는 방식을 채택하여 클럭 듀티와 주기를 조절할 수 있다. 즉, 클럭이 포지티브 에지(positive edge)에서 동작하기 전에 프로그램에서 미리 데이터를 내보냄으로써 데이터 전송 에러(error)를 0%로 낮출 수 있다. 따라서, FPGA에 다운로드된 디자인의 클럭 주기를 맞추기 위하여 하드웨어(Hardware)를 변경할 필요 없이 소프트웨어로 조절이 가능하기 때문에, 한 개의 중간 버퍼 로직으로 여러 종류의 설계를 검증할 수 있다.
또한, 본 발명은 FPGA IP 검증 등의 분야 외에 다른 IP 장치 및 SoC 칩의 응용 설계도 가능할 것이다.
본 발명은 상술한 실시예에 한정되지 않으며, 첨부된 청구범위에서 알 수 있는 바와 같이 본 발명이 속한 분야의 통상의 지식을 가진 자에 의해 변형이 가능해도 이러한 변형은 본 발명의 범위에 속한다.
상기에서 설명한 본 발명에 따른 FPGA와 USB 간의 인터페이스 장치의 효과를 설명하면 다음과 같다.
첫째, 본 발명에 따른 FPGA와 USB 간의 인터페이스 장치는 입력 데이터 신호의 버퍼링 시간을 단축할 수 있다.
둘째, 본 발명에 따른 FPGA와 USB 간의 인터페이스 장치는 입력 데이터를 실시간으로 처리할 수 있다.
셋째, 본 발명에 따른 FPGA와 USB 간의 인터페이스 장치는 PS나 워크 스테이션(work station)에서 쉽게 IP검증을 할 수 있다.
넷째, 본 발명에 따른 FPGA와 USB 간의 인터페이스 장치는 에러 없는 데이터 전송을 할 수 있다.

Claims (7)

  1. USB(Universal Serial Bus)의 데이터 입출력 동작을 제어하는 마이크로 프로세서;
    상기 마이크로 프로세서의 시퀀스(sequence)를 제어하는 EEPROM(Electrically Erasable and Programmable ROM); 및
    상기 USB와 FPGA(Field Programmable Gate Array) 간의 양방향 데이터 입출력을 수행하는 중간(Intermediate) 버퍼 로직 장치를 포함하여 이루어지는 것을 특징으로 하는 FPGA와 USB 간의 인터페이스 장치.
  2. 제 1 항에 있어서, 상기 중간 버퍼 로직 장치는,
    트라이-스테이트(Tri-state) 버퍼를 가지고 16비트(bit)의 인-아웃 버스(In-Out Bus)를 제어하는 것을 특징으로 하는 FPGA와 USB 간의 인터페이스 장치.
  3. 제 2 항에 있어서, 상기 인-아웃 버스는,
    각각 8 비트의 입력과 8비트의 출력을 한 개의 데이터 버스로 처리하는 것을 특징으로 하는 FPGA와 USB간의 인터페이스 장치.
  4. 제 1 항에 있어서, 상기 중간 버퍼 로직 장치는,
    버퍼 크기를 자동으로 조정하는 제어신호를 가지는 것을 특징으로 하는 FPGA와 USB간의 인터페이스 장치.
  5. 제 1 항에 있어서, 상기 중간 버퍼 로직 장치는,
    상기 FPGA 내부에 다운로드될 IP의 제어신호를 가지는 것을 특징으로 하는 FPGA와 USB간의 인터페이스 장치.
  6. 제 1 항에 있어서, 상기 EEPROM은,
    상기 USB 벌크(bulk) 트랜스퍼(transfer)를 제어하는 것을 특징으로 하는 FPGA와 USB간의 인터페이스 장치.
  7. 제 1 항에 있어서, 상기 EEPROM은,
    소프트웨어 클럭(software clock)을 사용하여, 클럭의 듀티(duty)와 주기를 제어하는 것을 특징으로 하는 FPGA와 USB간의 인터페이스 장치.
KR1020050129645A 2005-12-26 2005-12-26 Fpga와 usb 간의 인터페이스 장치 KR100751405B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050129645A KR100751405B1 (ko) 2005-12-26 2005-12-26 Fpga와 usb 간의 인터페이스 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050129645A KR100751405B1 (ko) 2005-12-26 2005-12-26 Fpga와 usb 간의 인터페이스 장치

Publications (2)

Publication Number Publication Date
KR20070068017A KR20070068017A (ko) 2007-06-29
KR100751405B1 true KR100751405B1 (ko) 2007-08-23

Family

ID=38366522

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050129645A KR100751405B1 (ko) 2005-12-26 2005-12-26 Fpga와 usb 간의 인터페이스 장치

Country Status (1)

Country Link
KR (1) KR100751405B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117056259B (zh) * 2023-08-08 2024-07-26 广东高云半导体科技股份有限公司 一种数据处理装置及方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050101850A (ko) * 2004-04-20 2005-10-25 주식회사 하이닉스반도체 멀티 프로토콜 시리얼 인터페이스 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050101850A (ko) * 2004-04-20 2005-10-25 주식회사 하이닉스반도체 멀티 프로토콜 시리얼 인터페이스 시스템

Also Published As

Publication number Publication date
KR20070068017A (ko) 2007-06-29

Similar Documents

Publication Publication Date Title
US8239708B2 (en) System on chip (SoC) device verification system using memory interface
GB2288954A (en) Programmable serial communications
US7984239B2 (en) Control program download device
CN111078614A (zh) 一种基于fpga的功能模块
US20060218445A1 (en) Semiconductor integrated circuit device, debug system, microcomputer, and electronic apparatus
TW201731272A (zh) 具有自動從屬選擇產生之串列週邊介面
US9389979B2 (en) Debug system, and related integrated circuit and method
KR100751405B1 (ko) Fpga와 usb 간의 인터페이스 장치
US9160338B2 (en) Adaptive interface for coupling FPGA modules
CN111026691A (zh) 基于apb总线的owi通讯设备
Deepika et al. Design of dual master I2C bus controller and interfacing it with DC motor
JP3949429B2 (ja) Iicバス制御システム
TWI719684B (zh) 通訊系統以及運作方法
EP2135386B1 (en) Hardware interface board for connecting an emulator to a network
US20090282177A1 (en) Apparatus and method for signal transmission in embedded system
US6925505B2 (en) Method and device for data transmission control between IDE apparatuses
US6704516B1 (en) Method of and apparatus for optimizing a minimum turn around time during an infrared data communication
US11762794B2 (en) Processing system, related integrated circuit, device and method
Badhe et al. Accelerating functional verification of PCI express endpoint by emulating host system using PCI express core
EP1080410A1 (en) Vlsi emulator comprising processors and reconfigurable circuits
Mantripragada et al. Verifying performance of PCI express in a system for multi giga byte per second data transmission
US20230385215A1 (en) Processing system, related integrated circuit, device and method
CN116932449B (zh) 串口重定向到远端设备的实现方法、系统、设备及介质
US20070217451A1 (en) Data transmission method and transmission circuit thereof
Nandini et al. Implementation of SDC Using I2C Multi Master-Multi Slave with Wishbone Signal

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
G170 Publication of correction
LAPS Lapse due to unpaid annual fee