Title: Emulator environment based on an FPGA prototyping board
1Emulator environment based on an FPGA prototyping
board
- Kyung-Soo Oh, Sang-Yong Yoon, Soo-Ik Chae
- School of Electrical Engineering, Seoul National
University - Daewoo Electronics, Co.
2Contents
- Motivation
- Emulator Environment
- Development Flowchart
- FPGA Prototyping Board
- Debug Network
- Virtual Wire
- Automation Program
- Virtual Board
- Test
- Conclusion
3Motivation
- Target processor Vincent6 (dual)
- DSP for multimedia applications
- Dual processor
- We expanded from 4 FPGA board to 9 FPGA board.
- High speed functional verification of DSP
- Software-based VHDL simulator 100 cycles /s
- FPGA prototyping board 40,000 cycles /s
- Verification of Highly integrated DSP processor
- Use 9 FPGA one FPGA is not sufficient.
- Virtual wire overcome pin limitation between
FPGA - Cache and Buffer modeling with SRAM
4 Emulator Environment
FPGA Board
VHDL Library
Vch
ctrl
PCI
ctrl
Debug
Master
Run
Debug
ctrl
Slave
Control Function
Emulator Environment
DownLoad
()
Virtual Board
Debug_read()
Debug_write()
Automation program
EXPAND
PART
VWIRE
virtual board maker
5Development Flowchart
ORIGINAL.VHD
ORIGINAL.VHD
EXPAND
Partition File Generator
MODIFIED.VHD
EXPANDED.VHD
expanded VHDL file
PART
Partition File Generator
PART0_CORE.VHD
partitioned VHDL file
PART0_CORE.VHD
Virtual Wire Auto Generator
VWIRE
virtual wired VHDL file
PART0.VHD
PART0.VHD
Synthesizer Alliance2.1
Virtual Board Generator
Synthesizer Alliance2.1
Virtual Board Generator
V6BOARD.VHD
PART0.RBT
V6BOARD.VHD
PART0.RBT
Cyclone Simulator
FPGA BOARD(PC)
Emulator
Emulator
Virtual board
FPGA board
6FPGA Prototyping board
SDRAM
FLASH
FPGA Xilinx XCV1000-BG560 SRAM Samsung
KM736V890(1MB) SDRAM Samsung KM432S2030C(8MB) FL
ASH Samsung KM29U64000T(4MB) PCI PLX
PCI9050-1 Operating Speed Virtual wire
debug network 4 MHz Core
40 KHz
slave6
slave8
slave7
SRAM
SRAM
80
80
80
80
80
slave3
slave4
slave5
SRAM
SRAM
80
80
80
80
80
slave1
master
slave2
SRAM
SRAM
80
80
PC
pci9050
Parallel port
7FPGA Prototyping board(contd)
8Debug Network
9Debug Network(contd)
DMA_CLK(60 KHz)
Debug_Mode When asserted, all pipeline
in target processor is stopped and target
processor is ready to receive command. Debug_Addr
address and debug command. (master
slaves) Debug_Data_In data for write
function. (master
slaves) Debug_Data_Out data for read function.
(slaves master) Core_Clk
clock for target processor. DMA_Clk
clock for direct memory access.
10Debug Network(contd)
- Basic Function to control board
- Can direct access debug module
- PCIreadData
- PCIreadStatus
- PCIwriteData
- debugRead(int chipId,int debugId,int addr)
- debugWrite(int chipId,int debugId,int addr,int
data) - ex) step 3 debugWrite(0,7,0,3)
- Bases of Emulator program
11Virtual Wire
- To overcome pin limitation
- Increase external signals by time multiplexing
- Comprise of shifter and controller
12Virtual Wire(contd)
- Partition structure
- Flip-Flop to Combination logic
- Combination logic to Flip-Flop
- Combination logic to combination logic
FPGA CLK
CORE CLK
DEBUG_MODE
VCH_STATE
A1
A0
E1
LD
SHIFT1
A1
A0
A1
E3
LD
E2
SHIFT2
phase 1
phase 2
13Virtual Wire(contd)
- Estimate virtual wire size
- Maximu interconnection between partitioned blocks
1876 - Physical wire between FPGAs 80
- Virtual channel per one Physical wire 1876 / 80
23.45 - But we adapted 30 for flexibility.
- Utilization 24 / 30 100 80
- Estimate core clock period
- Time sharing of cache modeling and virtual
channel - Cache and buffer modeling
- required clocks for a buffer 3 clocks
- Maximum buffers allocated to a SRAM 5 ( two
port buffer) - required clock for a SRAM 3 5 2 30 clocks
- Virtual wire
- required clocks 30 2(two phase scheme) 60
clocks - Core clock period
- 30(buffer modeling) 60(virtual wire) 14(for
other state) 104 clocks - 4MHz (FPGA clock) / 104 40 KHz
14Automation programs
- EXPAND
- expand a block to lower level in VHDL code
- output file is used as input file of Part.
- Part
- make partitioned VHDL codes for each FPGA.
- Vwire
- generate virtual wire for partitioned port.
- insert Debug controller for special debug port.
- This output file is input file of synthesis.
15Virtual Board
- Verifying the modified vhdl codes and eliminate
some bugs - Hardware model, slang function and socket program
- Simulate the virtual board in cyclone with waver
Virtual Board(cyclone)
waver
Kernel
Emulator ver0.5
cmd
gtgt
PCI9050 (slang)
Emulator
Socket
SW
16Test
- Quick sort
- test for basic instruction
- Adpcm
- test for basic instruction and cache
- G.723 (752 frame)
- 3 hour
- require 10 MHz for real time test
- H.263
- will be tested in July
17Conclusion
- Implement Emulator Prototype Environment
- 40,000 cycle/s
- contain 9M system gates
- Future Work
- Speed up Core clock
- Do partition to reduce channel between FPGAs
- Solve timing problem such as clock skew and
critical path