FPGA 2210010149-5 2005 2 21
RISC Verilog-HDL FPGA (celoxica RC100 ) LSI LSI HDL CAD HDL 3 HDL FPGA MPU i
1. 1 2. 3 2.1 HDL FPGA 3 2.2 5 2.3 6 2.3.1 FPGA 6 2.3.2 Flash Memory 6 2.3.3 Flash Memory 7 2.3.4 MPU 7 2.3.5 Flash Memory 8 2.3.6 Flash Memory 8 2.4 MPU 10 2.4.1 MPU 10 2.4.2 MPU 11 2.4.3 MPU 12 3. 15 3.1 Flash RAM Module 15 3.2 Sequencer 17 3.3 Instruction Clock Counte r 19 3.4 System Status Decoder 19 4. FPGA 20 4.1 20 4.2 MPU 20 4.3 21 4.3.1 22 4.3.2 23 4.3.3 24 5. KUE-CHIPII 25 5.1 KUE-CHIPII 25 5.2 FPGA KUE-CHIPII 25 6 27 28 29 ii
1 HDL 3 2 FPGA 4 3 5 4 FPGA 6 5 Flash Memory 7 6 Flash Memory 7 7 MPU 8 8 Flash Memory 8 9 Flash Memory 9 10 MPU 10 11 MPU 12 12 Flash Memory 15 13 Flash Memory Read/Write 16 14 Flash RAM Module 17 15 Sequencer 18 16 21 17 KUE-CHIPII 25 1 MPU 22 2 MPU 23 3 23 iii
1. 1970 LSI 1Chip SoC : System on Chip RTL(Register Transfer Level) 1 RTL 10 RTL LSI RTL HDL(Hardware Description Language) HDL Verilog-HDL VHDL 2 HDL HDL HDL HDL HDL HDL FPGA MPU 16bit RISC 2 MPU MPU ROM 8bit FPGA MPU 1
HDL HDL CAD LSI FPGA FPGA 2 3 4 FPGA 5 KUE-CHIPII 2
2. 2.1 HDL FPGA HDL 1 HDL RTL HDL NO NO YES YES FPGA or LSI NO YES 1 HDL HDL HDL RTL [7] RTL LSI FPGA HDL 3
FPGA FPGA Field Programmable Gate Array LSI CPLD CPLD Complex Programmable Logic Device FPGA FPGA FPGA 2 FPGA FPGA FPGA ASIC FPGA 2 FPGA FPGA FPGA FPGA 4
FPGA LSI LSI FPGA FPGA IP Intellectual Property FPGA FPGA FPGA IP CPU 2.2 MPU MPU MPU System Xilinx MPU Status Sequencer XCR3128XL PC Decoder CPLD Instruction Flash Intel Memory Clock RAM Strata Flash Counter Module Memory Xilinx SpartanII FPGA Celoxica RC100 Board 3 Xilinx SpartanII FPGA Xilinx CPLD Intel Strata Flash Memory Celoxica RC100 LSI FPGA MPU System Status Decoder Sequencer Memory Instruction Clock Counter Flash RAM Module HDL 5
MPU Sequencer System Status Decoder Sequencer Instruction Clock Counter MPU Memory MPU Flash RAM Module Flash Memory 2.3 MPU 2.3.1 FPGA FPGA FPGA FPGA FPGA PC CPLD Sequencer ROM MPU System Status Decoder Sequencer CPLD PC Memory Instruction Clock Counter Flash RAM Module Flash Memory FPGA RC100 Board 4 FPGA 2.3.2 Flash Memory Flash Memory FPGA Memory FPGA Sequencer Flash RAM Module System Status Decoder Sequencer Sequencer Flash RAM Module System Status Decoder Flash Memory Flash RAM Module Memory 6
MPU System Status Decoder Sequencer CPLD Memory Instruction Clock Counter Flash RAM Module Flash Memory FPGA RC100 Board 5 Flash Memory 2.3.3 Flash Memory 2.3.2 Flash Memory Memory MPU System Status Decoder Sequencer CPLD Memory Instruction Clock Counter FPGA Flash RAM Module Flash Memory RC100 Board 6 Flash Memory 2.3.4 MPU MPU MPU Memory Sequencer MPU Instruction Clock Counter MPU 7
MPU System Status Decoder Sequencer CPLD Memory Instruction Clock Counter Flash RAM Module Flash Memory FPGA RC100 Board 7 MPU 2.3.5 Flash Memory MPU Flash Memory Flash Memory Flash Memory Flash Memory Flash RAM Module System Status Decoder MPU System Status Decoder Sequencer CPLD Memory Instruction Clock Counter Flash RAM Module Flash Memory FPGA RC100 Board 8 Flash Memory 2.3.6 Flash Memory Memory Instruction Clock Counter Flash Memory 2.3.2 2.3.3 Flash RAM Module System Status Decoder Sequencer Flash RAM Module FPGA Memory Flash Memory Instruction Clock Counter Flash Memory Flash Memory PC 8
MPU System Status Decoder Sequencer CPLD Memory Instruction Clock Counter FPGA Flash RAM Module Flash Memory RC100 Board 9 Flash Memory 9
2.4 MPU 2.4.1 MPU MPU 10 MPU 10 11 INSTRUCTION DATA MEMORY PC SP MEMORY DECODER RF ALU 10 MPU MPU INSTRUCTION MEMORY DATA MEMORY MPU PC INSTRUCTION MEMORY SP DATA MEMORY DECODER RF ALU DATA MEMORY PC ALU [8] MPU 16bit RISC 16bit FPGA RISC 10
2.4.2 MPU MPU [1, 2, 3] R 3 3 3 3 4 OP Rd Rs Rt Func 3 3 2 8 I OP Rd Func Imm 3 1 12 J OP Func Offset OP Rd Rs, Rt Func Imm Offset MPU ADD SUB ADC SBC AND OR XOR NOR SRL SLL SRA SLA SLT ADI SBI LIL LIH BRZ BNZ LD ST LR POP PUSH JR JMP JAL ITP NOP HLT MPU (4 ) MPU RISC Load/Store 11
MPU Verilog-HDL 360 4,988 39MHz CPI 4 10MIPS 2.4.3 MPU MPU 11 PC DATA MEMORY SP INSTRUCTION MEMORY RF ALU <IF> <ID> <EX> <WB> Forwarding (Branch) Forwarding (ALU and Address) 11 MPU MPU IF ID EX WB 4 MPU Verilog-HDL 410 8,007 66MHz (1) IF IF PC INSTRUCTION MEMORY 12
PC ID ID ID PC INSTRUCTION MEMORY ID ID INSTRUCTION MEMORY ID PC 2 PC 2 (2) ID ID PC 2.4.3.5 EX WB EX (3) EX EX DATA MEMORY ALU INSTRUCTION MEMORY DATA MEMORY DATA MEMORY ALU ID (4) WB WB ID EX ID EX (5) IF ID EX WB 13
ID IF EX ID EX WB ID WB EX 11 WB EX EX WB ID WB ID ID 2 WB 1 ALU ALU MPU IF ID ID EX WB WB MPU 4 14
3. FPGA 3 MPU 3.1 Flash RAM Module Flash RAM Module Celoxica RC100 Intel Strata Flash Memory Flash Memory 2 12 Wait Addr:X Data:X Start Read Operation Finish Read Operation Read Addr:PA Data:PD Finish Erase Operation Start Write Operation Start Erase Operation Write Addr:BA Write Addr:BA Data:20h Data:D0h Write Finish Write Operation Write Write Read Status Register If SRD[7] = 1 Read Addr:PA Addr:PA Addr:X Addr:X Data:40h Data:PD Data:70h Data:SRD If SRD[7] = 0 12 Flash Memory Flash Memory Read/Write 12 Read Read Read Flash Memory Erase 2 Write 2 Write 15
Write 4 Write Write 3 4 Write (X) Read 1 Write Flash Memory 8 1 Write 8 1 3 4 Read/Write Flash Memory Flash Memory 80MHz 13 13 CLK Flash Memory Flash RAM Module 40MHz(25ns) Read Waveform Address 125ns CE OE WE DATA 50n 25ns BYTE CLK 25n Write Waveform 75n Address CE OE WE 50n 50n DATA STS CLK 25n 500ns 13 Flash Memory Read/Write 16
Flash RAM Module 2 2 14 Interface Interface Operation Control Read Operation Control Read/Write Control Operation Control Interface Read/Write Control Read/Write Read/Write Control Operation Control Flash Memory Read/Write Control Bus Flash RAM Module Read/Write Interface Operation Control Read/Write Control Read/Write Flash Memory 14 Flash RAM Module Flash RAM Module Verilog-HDL 210 1,118 40MHz 3.2 Sequencer Sequencer 8bit ROM 15 Sequencer 17
PROGRAM COUNTER ALU INSTRUCTION ROM REGISTER I/O PORT 15 Sequencer Sequencer INSTRUCTION ROM FPGA RAM FPGA PROGRAM COUNTER ROM ROM REGISTER 8bit ALU I/O PORT 8bit Sequencer 4 4 I/O PORT 32bit Sequencer ADD SUB ADC SBC AND OR XOR LDI CMP RIO WIO bit CHK JPC NOP HLT Sequencer REGISTER 1bit bit bit Sequencer Sequencer 1 4 Verilog-HDL 500 18,552 53Mhz 18
3.3 Instruction Clock Counter Instruction Clock Counter Instruction Clock Counter MPU 3.4 System Status Decoder System Status Decoder Sequencer Sequencer Instruction Clock Counter System Status Decoder Sequencer 19
4. FPGA 2 MPU 3 FPGA 4.1 LSI 1000 10 DFT(Design For Test) FPGA FPGA 4.2 MPU Memory 2k Byte RC100 7 LED 2 16 7 LED System Status Decoder Sequencer 7 LED 2.2 FPGA Sequencer 20
Reset Push System Instruction Xilinx Status MPU Clock Sequencer XCR3128XL PC Decoder Counter CPLD Memory 2k Byte 2k Byte Instruction Data Flash RAM Module FPGA Intel Strata Flash Memory RC100 Board 16 4.3 4.2 1 10 ( 50) 1 2 3 NOP HLT MPU 21
1 MPU 1 10 ( 50) ( 40) 1 2% 1 1% 1 1% 1 1% 2 0% 23 36% 104 26% 31 49% 34 52% 2882 33% 15 24% 100 25% 5 10% 4 6% 1707 19% 12 19% 99 24% 15 24% 15 23% 1639 19% 1 2% 49 12% 3 5% 4 6% 1772 20% 0 0% 0 0% 0 0% 0 0% 0 0% 0 0% 0 0% 0 0% 0 0% 0 0% 11 17% 49 12% 7 11% 8 12% 819 9% 63 100% 402 100% 63 100% 66 100% 8821 100% 4.3.1 1 MPU 1 10 12 20% 1 10 1 10 C FOR FOR IF IF FOR 22
2 MPU 1 10 ( 50) ( 40) 3 5% 1 1% 2 3% 1 2% 2 0% 23 35% 106 26% 30 50% 32 50% 2882 33% 15 23% 102 25% 6 10% 4 6% 1707 19% 12 18% 101 24% 13 22% 15 23% 1639 19% 1 2% 51 12% 3 5% 4 6% 1772 20% 0 0% 0 0% 0 0% 0 0% 0 0% 0 0% 0 0% 0 0% 0 0% 0 0% 11 17% 50 12% 6 10% 8 13% 819 9% 65 100% 411 100% 60 100% 64 100% 8821 100% 0 0 0 1 0 3 1 10 ( 50) ( 40) 251 1606 251 263 35283 65 411 60 64 8822 / 25.90% 25.59% 23.90% 24.33% 25.00% 4.3.2 2 4 2 0 23
0 4.3.3 3 1 4 1 1 4 1 1 4 1 1.5 6 1 2 CPI [1] FPGA 1 FPGA RC100 PC PC PC 24
5. KUE-CHIPII KUE-CHIPII(Kyoto University Education Chip2) FPGA [11] KUE-CHIPII FPGA KUE-CHIPII 5.1 KUE-CHIPII KUE-CHIPII 8 KUE-CHIPII 5.2 FPGA KUE-CHIPII KUE-CHIPII FPGA FPGA SpartanII KUE-CHIPII XSP-006 KUE-CHIPII KUE-CHIPII FPGA 17 KUE-CHIPII Connector Cable Connector Connector Cable Connector XSP-006 17 KUE-CHIPII XSP-006 KUE-CHIPII KUE-CHIPII KUE-CHIPII 25
KUE-CHIPII 1 1 1 1 KUE-CHIPII KUE-CHIPII KUE-CHIPII RC100 26
6 HDL FPGA MPU FPGA HDL HDL 5 27
28
[1] John L.Hennessy, David A.Patterson: ( )( ), BP,1999. [2] Andrew S. Tanenbaum:,,2000. [3] Jorgen Staunstrup,Wayne Wolf:Hardware/Software Co-Design,Principles and Practice, Kluwer Academic Pub.,1997. [4] FrancoisXavier Standaert, Gael Rouvroy, JeanJacques Quisquater, JeanDidier Legat: A Methodology to Implement Block Ciphers in Reconfigurable Hardware and its Application to Fast and Compact AES RIJNDAEL, FPGA 03, February 23 25, pp 216-224, 2003. [5] Pablo Moisset, Pedro Diniz and Joonseok Park: Matching and Searching Analysis for Parallel Hardware Implementation on FPGAs, FPGA 2001, February 11-13, pp 125-133, 2001. [6] Dirk Koch, Jurgen Teich: Platform Independent Methodology for Partial Reconfiguration, CF 04, April 14 6, pp 398-403, 2004. [7] : VerilogHDL,CQ,2001. [8] : ASIC, Design Wave Magazine 2003 7 pp 20-47, 2003. [9] : CPU!, Design Wave Magazine 2003 8, 2003 [10] : /,, 2002. [11] : FPGA,, 2005. 29