fpga vhdl ep32 design 2012 fig taiwan conference february 17, 2012 chen-hanson ting

31
FPGA VHDL eP32 Design 2012 FIG Taiwan Conference February 17, 2012 Chen-Hanson Ting

Upload: erik-parker

Post on 22-Dec-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: FPGA VHDL eP32 Design 2012 FIG Taiwan Conference February 17, 2012 Chen-Hanson Ting

FPGA VHDL eP32 Design

2012 FIG Taiwan Conference

February 17, 2012

Chen-Hanson Ting

Page 2: FPGA VHDL eP32 Design 2012 FIG Taiwan Conference February 17, 2012 Chen-Hanson Ting

Summary

Brevia FPGA Development Kit Architecture of eP32 Implementing eP32 Memory and IO Brevia Board and LatticeXP2 ispLEVEL and Diamond IDE Demomnstration

Page 3: FPGA VHDL eP32 Design 2012 FIG Taiwan Conference February 17, 2012 Chen-Hanson Ting

Brevia FPGA Development Kit Lattice XP2 Brevia Kit is a complete FP

GA development system for $49. The FPGA chip on Lattice Brevia Kit let

us design and implement your own microcontrollers.

A 32-bit Forth microcontroller eP32 is demonstrated here.

Page 4: FPGA VHDL eP32 Design 2012 FIG Taiwan Conference February 17, 2012 Chen-Hanson Ting

Brevia FPGA Development Kit For $49, you can design, build and

test your own microcontroller. The on-board FPGA chip,

LatticeXP5E, can host a complete 32-bit microcontroller system.

eP32 is implemented in VHDL, with Forth operating system and programming language.

Page 5: FPGA VHDL eP32 Design 2012 FIG Taiwan Conference February 17, 2012 Chen-Hanson Ting

LatticeXP2 Brevia Kit

Page 6: FPGA VHDL eP32 Design 2012 FIG Taiwan Conference February 17, 2012 Chen-Hanson Ting

Brevia Board LatticeXP2-5E 6TN144C FPGA 2-Mbit SPI flash memory 128K by 8-bit SRAM 8 switches/pushbuttons 8 status LEDs USB download and serial cable

Page 7: FPGA VHDL eP32 Design 2012 FIG Taiwan Conference February 17, 2012 Chen-Hanson Ting

LatticeXP2-5E 6TN144C

5K LUT4 Logic cells 166K Bits Embedded block

memory 10K Bits Distributed memory 3 DSP Blocks 12 18x18 Multipliers 144 Pin TQFP Package

Page 8: FPGA VHDL eP32 Design 2012 FIG Taiwan Conference February 17, 2012 Chen-Hanson Ting

The Most Satisfying FPGA I have tried FPGA’s from all Big 4:

Market Share 2009 Sales FPGA Xilinx 50% $1,825M Virtex, Spartan Altera 30% $360M Stratix, Cyclone Lattice 10% $194M ECP3, XP2 Actel 6% $190M IGLOO, ProASI

Lattice has the most satisfying FPGA, a single chip SOC solution

Lattice has the cheapest development board. $49 Lattice provides free development software.

Page 9: FPGA VHDL eP32 Design 2012 FIG Taiwan Conference February 17, 2012 Chen-Hanson Ting

Brevia Design Tools ispLEVEL or DIAMOND IDE Synthesis: Synplify Simulation: Active-HDL from Aldec Layout: Design Planner Flash Programming: ispVMR Tracing and Debugging: ispReveal

Page 10: FPGA VHDL eP32 Design 2012 FIG Taiwan Conference February 17, 2012 Chen-Hanson Ting

Architecture of eP32 A 32-bit CPU (Central Processing Unit) Two stacks to support Forth Language:

Return stack for nested return addresses Parameter stack to pass parameters

among nested subroutines Minimal instruction set Single clock cycle execution time Optimized subroutine call and return

Page 11: FPGA VHDL eP32 Design 2012 FIG Taiwan Conference February 17, 2012 Chen-Hanson Ting

Block Diagram of eP32 CPU

Page 12: FPGA VHDL eP32 Design 2012 FIG Taiwan Conference February 17, 2012 Chen-Hanson Ting

ALU and Data Processing Unit

Page 13: FPGA VHDL eP32 Design 2012 FIG Taiwan Conference February 17, 2012 Chen-Hanson Ting

Program and Data Memory Unit

Page 14: FPGA VHDL eP32 Design 2012 FIG Taiwan Conference February 17, 2012 Chen-Hanson Ting

Return Address Processing Unit

Page 15: FPGA VHDL eP32 Design 2012 FIG Taiwan Conference February 17, 2012 Chen-Hanson Ting

Instruction Execution Unit

Page 16: FPGA VHDL eP32 Design 2012 FIG Taiwan Conference February 17, 2012 Chen-Hanson Ting

Instruction Execution Timing

Page 17: FPGA VHDL eP32 Design 2012 FIG Taiwan Conference February 17, 2012 Chen-Hanson Ting

Instruction Set of eP32 CPU

Minimum Instruction Set Computer (MISC)

Only 27 Instructions, expandable to 64 instructions

4 Types of instructions: Program transfer instructions Memory access instructions ALU instructions Register and stack instructions

Page 18: FPGA VHDL eP32 Design 2012 FIG Taiwan Conference February 17, 2012 Chen-Hanson Ting

Program Transfer Instructions

BRA Branch always RET Return from subroutine BZ Branch on zero BC Branch on carry CALL Call subroutine NEXT Loop until R is 0

Page 19: FPGA VHDL eP32 Design 2012 FIG Taiwan Conference February 17, 2012 Chen-Hanson Ting

Memory Access Instructions

LDX Load from memory LDXP Load from memory

and increment X register LDI Load immediate value STX Store to memory STXP Store to memory and

increment X register

Page 20: FPGA VHDL eP32 Design 2012 FIG Taiwan Conference February 17, 2012 Chen-Hanson Ting

ALU Instructions

ADD Add S to T AND AND S to T XOR XOR S to T COM One’s Complement of T SHR Shift T to right SHL Shift T to left RR8 Rotate T right by 8 bits MUL Multiplication step DIV Division step

Page 21: FPGA VHDL eP32 Design 2012 FIG Taiwan Conference February 17, 2012 Chen-Hanson Ting

Register and Stack Instructions

DUP Duplicate T to S DROP Pop S to T PUSH Push T to R POP Pop R to T OVER Duplicate S over T TX Load X to T XT Store T to X NOP No operation

Page 22: FPGA VHDL eP32 Design 2012 FIG Taiwan Conference February 17, 2012 Chen-Hanson Ting

Implementing eP32

eP32_chip.vhd, top level design eP32q_tb.vhd, test bench Modules

eP32.vhd, CPU core Ram_memory.vhd, 4096x32 auto-i

nitialized RAM memory Uart.vhd, 115200 baud Gpio.vhd, 16 bit bidirectional

Page 23: FPGA VHDL eP32 Design 2012 FIG Taiwan Conference February 17, 2012 Chen-Hanson Ting

Synthesizing eP32 Ep32.vhd, uart.vhd and gpio.vhd are s

ynthesized without modification Ram_memory.vhd must be construct

ed to use RAM_Q modules in LatticeXP2-5E FPGA chip.

Ep32_chip.vhd instantiates new ram_memory.vhd with all other modules

Page 24: FPGA VHDL eP32 Design 2012 FIG Taiwan Conference February 17, 2012 Chen-Hanson Ting
Page 25: FPGA VHDL eP32 Design 2012 FIG Taiwan Conference February 17, 2012 Chen-Hanson Ting

Simulating eP32

Active-HDL simulation tools are supplied by Aldec.

ispLEVEL needs a test bench module for functional simulation of eP32 chip: ep32q_tb.vhd

DIMOND simulates ep32_chip directly.

Page 26: FPGA VHDL eP32 Design 2012 FIG Taiwan Conference February 17, 2012 Chen-Hanson Ting
Page 27: FPGA VHDL eP32 Design 2012 FIG Taiwan Conference February 17, 2012 Chen-Hanson Ting

Memory and IO Design Planner to assign following

signals to physical pins: External reset External master clock Interrupts GPIO to LED and switches UART transmit UART receiver

Page 28: FPGA VHDL eP32 Design 2012 FIG Taiwan Conference February 17, 2012 Chen-Hanson Ting
Page 29: FPGA VHDL eP32 Design 2012 FIG Taiwan Conference February 17, 2012 Chen-Hanson Ting

Programming XP25E FPGA

Connect USB cable to PC. Invoke Programmer to download ep3

2_xp2.jed file. eP32 eForth boots up and sends sign-

on message to HyperTerminal console.

Page 30: FPGA VHDL eP32 Design 2012 FIG Taiwan Conference February 17, 2012 Chen-Hanson Ting
Page 31: FPGA VHDL eP32 Design 2012 FIG Taiwan Conference February 17, 2012 Chen-Hanson Ting

Demonstration

Boot up eForth on eP32. Universal greeting “Hello, World!”. Turn LED’s on and off. Read switches and push buttons.