280 likes | 482 Views
DDRIII BASED General Purpose FIFO on Virtex-6 FPGA ML605 board PART B presentation. Students: Oleg Korenev Eugene Reznik Supervisor: Rolf Hilgendorf. Semester: spring 2013. Content. Project overview Specifications Part B goals Memory on ml605 AXI4 Part A overview
E N D
DDRIII BASED General Purpose FIFO on Virtex-6 FPGA ML605 boardPART B presentation Students: Oleg Korenev Eugene Reznik Supervisor: Rolf Hilgendorf Semester: spring 2013
Content • Project overview • Specifications • Part B goals • Memory on ml605 • AXI4 • Part A overview • Part B overview • Design • Performance
Project Overview • Design and implementation of General Purpose FIFO IP core which allows usage of external memory (DDR3) as FIFO storage on Xilinx FPGA device • Design and implement generic IP core of FIFO • Design and implement GUI generator of IP core on PC • Create sample design with implemented IP core
Specifications • Hardware • Xilinx Virtex-6 ML605 FPGA Evaluation Kit • DDR III memory • Ethernet interface • PC with Ethernet interface • Software • ISE Design Suite Logic Edition Version 14.3 • Modelsim • Wireshark • Winpcap library
MEMORY on ml605 • DDR3 memory • Capacity: 512MB • Max theoretical bandwidth: 800MT/s*64bit = 48.8Gb/sec • Xilinx provides us with DDR3 controller which has AXI Memory Mapped interface • AXI bus data width up to 1024 bit • 256 bit for max memory performance, assuming bus works with 200Mhz
4AXI • Xilinx provides us with AXI4 Memory Mapped bus, which is a standard bus used in modern ARM SoC. • Features • Separate Address/Control and Data Phases • burst-based transactions with only start address issued • separate read and write data channels
General purpose Fifo AXI4 Interface CONTROLLER FIFO TO MEMORY MEMORY TO FIFO FIFO FIFO Native Fifo Interface
General purpose Fifo interface AXI4 Native FIFO GP FIFO
part Aoverview general purpose Fifo • Interface • GP FIFO has native FIFO interface • In Word size is 32 bit • Out Word size is 32 bit • Utilizes DDR3 memory through AXI interconnect 32 bit wide • Depth is limited only by available RAM memory on DDR3 • Same clock domain for IN and OUT • Internal architecture • Internal FIFO-To-Memory controller • Internal Memory-To-FIFO controller • Internal Bypass controller • Arbitration between GP FIFOs is managed by AXI interconnect
Example DESIGN Block Diagram DDR3 HOST STORAGE USER STORAGE LOGIC STORAGE MEMORY CONTROLLER AXI4 BUS (INTERCONNECT) General Purpose Fifo General Purpose Fifo MAC Module MAC Controller HOST Example Design
part a overview example design • Interface • Utilizes Ethernet MAC level of communication • Software has simple and intuitive interface • Software handles all the data transmission in between host and GP FIFO • Internal architecture • MAC module • GP FIFO • Simple example of a logic which uses GP FIFO • Example design of part A is dedicated to verify GP FIFO core under maximum performance condition. In part B we tested different configurations (variable word size).
Our goals part b • Generalize our GP FIFO • Develop software generator for GP FIFO IP core • Write detailed manual for IP core and for it’s generator • Develop simple design to test performance • Simulate and test all the possible configurations and their exceptional case • Make possible optimizations
part B overview general purpose Fifo • Interface • GP FIFO has native FIFO interface • GP FIFO has configurable internal word size: 64, 128, 256 bit • In/Out word size can be 8, 16, 32, 64, 128, 256 bitMaximum ratio of internal word size to In/Out is x8 • Depth is defined by two addresses: start and end.Those two addresses define continuous region of memory which is used for GP FIFO and thus its depth. • Same clock domain for reader and writer • Internal architecture • Input and output buffers has fixed depth of 128 wordsto maximize performance
part B overview software generator for GP FIFO IP core • Developed in Java • Available GP FIFO core configuration parameters • Name • Start address of utilized RAM memory • End address of utilized RAM memory • In word size • Out word size • Internal word size: 64b, 128b, 256b • Maximum ratio of internal word size to In/Out is x8
part B overview software generator for GP FIFO IP core • Provides user with a convenient way of GP FIFO parameterization • Prepares simulation of generated GP FIFO
Example DESIGN Block Diagram DDR3 HOST STORAGE USER STORAGE LOGIC STORAGE MEMORY CONTROLLER AXI4 BUS (INTERCONNECT) General Purpose Fifo Example Design MAC Module MAC Controller HOST
part B overview example design • Example design of part B is dedicated to measure maximum performance of GP FIFO core with different configurations. • Interface with host • Utilizes Ethernet MAC level of communication • Software developed in Part A • Internal architecture • MAC module • GP FIFO • Simple logic • Simultaneously writes/reads GP FIFO. • Sends word count to Host every second.
part B overview performance of different configurations • We defined three stages in exploring performance of GP FIFO under different configurations. GP FIFO of size 64Mb In/Out is symmetric (variable) Example Design and GP FIFO are running with 200MHz clock • Performance dependence on depth of In/Out buffer • Internal word size 64 bit • In/Out buffer depth is variable • Performance dependence on internal word size • Internal word size: 128, 256 bit is variable • In/Out buffer depth is 128 words
part B overview performance dependence on in/out buffer depth
part B overview performance dependence on in/out buffer depth
part B overview performance dependence on in/out buffer depth
part B overview performance dependence on internal word size
part B overview performance dependence on internal word size
part B overview performance dependence on internal word size
part B overview performance dependence on internal word size
part B overview performance of different configurations • Performance dependence on depth of In/Out buffer • Deeper buffer results in higher average speed only when in/out word size is greater/equals internal word size • Performance dependence on internal word size • Increasing internal word size provides significant speedup • Optimal internal word size is twice as in/out word size • Experiment shows that speed of GP FIFO in real design correlates well with simulated values • Conclusion • Changing buffer depth can hide some latency in case of not optimal internal word size, does not provide significant speedup to the system • Optimal internal word size is x2 max{in, out} word size
Project overview • Our design meets the requirements of the project. • GP FIFO is fast limited only by interconnect bus available bandwidth • GP FIFO has configurable depth and word size • GP FIFO is simple, utilizes small amount of resources on the board • GP FIFO gives you another easy way to pass big chunks of data from one module to another. • GP FIFO core generator provides an easy way to configure the core. • Our example design provides you with efficient communication in between a host and the board. • After one and a half year of hard work we finally reached all sgoals of the project