Application of Forth CPU for Control and Debugging of FPGA-Implemented Systems

Total Page:16

File Type:pdf, Size:1020Kb

Application of Forth CPU for Control and Debugging of FPGA-Implemented Systems Introduction Forth introduction Forth in FPGA Practical applications Conclusions Application of Forth CPU for control and debugging of FPGA-implemented systems Wojciech M. Zabołotny1, Grzegorz H. Kasprowicz1, 1Institute of Electronic Systems, Warsaw University of Technology XLIV-th IEEE-SPIE Joint Symposium Wilga 2019 Forth CPU for FPGA However, sometimes more complex initialization procedure may be needed In simple cases it may provided by small state machines In more complicated cases initialization via control bus may be needed Similarly debugging and testing of the system usually requires access via control bus Those tasks may be done from external computer via control interface, e.g., IPbus However, in case if we need an autonomous initialization of our system, the local CPU may be needed Introduction Forth introduction Forth in FPGA Practical applications Conclusions Initialization and debugging of FPGA-based systems The HDL description of FPGA-based system allows to assign initial values to the internal signals Forth CPU for FPGA In simple cases it may provided by small state machines In more complicated cases initialization via control bus may be needed Similarly debugging and testing of the system usually requires access via control bus Those tasks may be done from external computer via control interface, e.g., IPbus However, in case if we need an autonomous initialization of our system, the local CPU may be needed Introduction Forth introduction Forth in FPGA Practical applications Conclusions Initialization and debugging of FPGA-based systems The HDL description of FPGA-based system allows to assign initial values to the internal signals However, sometimes more complex initialization procedure may be needed Forth CPU for FPGA In more complicated cases initialization via control bus may be needed Similarly debugging and testing of the system usually requires access via control bus Those tasks may be done from external computer via control interface, e.g., IPbus However, in case if we need an autonomous initialization of our system, the local CPU may be needed Introduction Forth introduction Forth in FPGA Practical applications Conclusions Initialization and debugging of FPGA-based systems The HDL description of FPGA-based system allows to assign initial values to the internal signals However, sometimes more complex initialization procedure may be needed In simple cases it may provided by small state machines Forth CPU for FPGA Similarly debugging and testing of the system usually requires access via control bus Those tasks may be done from external computer via control interface, e.g., IPbus However, in case if we need an autonomous initialization of our system, the local CPU may be needed Introduction Forth introduction Forth in FPGA Practical applications Conclusions Initialization and debugging of FPGA-based systems The HDL description of FPGA-based system allows to assign initial values to the internal signals However, sometimes more complex initialization procedure may be needed In simple cases it may provided by small state machines In more complicated cases initialization via control bus may be needed Forth CPU for FPGA Those tasks may be done from external computer via control interface, e.g., IPbus However, in case if we need an autonomous initialization of our system, the local CPU may be needed Introduction Forth introduction Forth in FPGA Practical applications Conclusions Initialization and debugging of FPGA-based systems The HDL description of FPGA-based system allows to assign initial values to the internal signals However, sometimes more complex initialization procedure may be needed In simple cases it may provided by small state machines In more complicated cases initialization via control bus may be needed Similarly debugging and testing of the system usually requires access via control bus Forth CPU for FPGA However, in case if we need an autonomous initialization of our system, the local CPU may be needed Introduction Forth introduction Forth in FPGA Practical applications Conclusions Initialization and debugging of FPGA-based systems The HDL description of FPGA-based system allows to assign initial values to the internal signals However, sometimes more complex initialization procedure may be needed In simple cases it may provided by small state machines In more complicated cases initialization via control bus may be needed Similarly debugging and testing of the system usually requires access via control bus Those tasks may be done from external computer via control interface, e.g., IPbus Forth CPU for FPGA Introduction Forth introduction Forth in FPGA Practical applications Conclusions Initialization and debugging of FPGA-based systems The HDL description of FPGA-based system allows to assign initial values to the internal signals However, sometimes more complex initialization procedure may be needed In simple cases it may provided by small state machines In more complicated cases initialization via control bus may be needed Similarly debugging and testing of the system usually requires access via control bus Those tasks may be done from external computer via control interface, e.g., IPbus However, in case if we need an autonomous initialization of our system, the local CPU may be needed Forth CPU for FPGA That must be done at the PCB design stage, and increases complexity of the board Another possibility is to use a soft CPU implemented in FPGA There are many soft CPUs that may be programmed in C - LatticeMico32, microblaze, RiscV and many more... Modification of the program is long (requires editing of source code and recompilation), and the dedicated C toolchain must be available Another possibility is to use Forth-capable CPU Introduction Forth introduction Forth in FPGA Practical applications Conclusions Local CPU The easiest method to solve that problem is to connect an external CPU (e.g., a simple and cheap ARM) External world UART? External CPU How many lines? FPGA-based system Forth CPU for FPGA Another possibility is to use a soft CPU implemented in FPGA There are many soft CPUs that may be programmed in C - LatticeMico32, microblaze, RiscV and many more... Modification of the program is long (requires editing of source code and recompilation), and the dedicated C toolchain must be available Another possibility is to use Forth-capable CPU Introduction Forth introduction Forth in FPGA Practical applications Conclusions Local CPU The easiest method to solve that problem is to connect an external CPU (e.g., a simple and cheap ARM) External world That must be done at the PCB design stage, and UART? increases complexity of the board External CPU How many lines? FPGA-based system Forth CPU for FPGA There are many soft CPUs that may be programmed in C - LatticeMico32, microblaze, RiscV and many more... Modification of the program is long (requires editing of source code and recompilation), and the dedicated C toolchain must be available Another possibility is to use Forth-capable CPU Introduction Forth introduction Forth in FPGA Practical applications Conclusions Local CPU The easiest method to solve that problem is to connect an external CPU (e.g., a simple and cheap ARM) External world That must be done at the PCB design stage, and UART? increases complexity of the board Another possibility is to use a soft CPU implemented in FPGA soft CPU Fully connected to internal logic FPGA-based system Forth CPU for FPGA Modification of the program is long (requires editing of source code and recompilation), and the dedicated C toolchain must be available Another possibility is to use Forth-capable CPU Introduction Forth introduction Forth in FPGA Practical applications Conclusions Local CPU The easiest method to solve that problem is to connect an external CPU (e.g., a simple and cheap ARM) External world That must be done at the PCB design stage, and UART? increases complexity of the board Another possibility is to use a soft CPU implemented in FPGA soft CPU There are many soft CPUs that may be programmed in C Fully connected - LatticeMico32, microblaze, RiscV and many more... to internal logic FPGA-based system Forth CPU for FPGA Another possibility is to use Forth-capable CPU Introduction Forth introduction Forth in FPGA Practical applications Conclusions Local CPU The easiest method to solve that problem is to connect an external CPU (e.g., a simple and cheap ARM) Code editing That must be done at the PCB design stage, and increases complexity of the board Another possibility is to use a soft CPU implemented in Compilation FPGA There are many soft CPUs that may be programmed in C Transfer of - LatticeMico32, microblaze, RiscV and many more... code Modification of the program is long (requires editing of source code and recompilation), and the dedicated C Testing toolchain must be available Forth CPU for FPGA Introduction Forth introduction Forth in FPGA Practical applications Conclusions Local CPU The easiest method to solve that problem is to connect an external CPU (e.g., a simple and cheap ARM) Code editing That must be done at the PCB design stage, and increases complexity of the board Another possibility is to use a soft CPU implemented in Compilation FPGA There are many soft CPUs that may be programmed in C Transfer of - LatticeMico32, microblaze, RiscV and many more... code Modification of the program is long (requires editing of source code and recompilation), and the dedicated C Testing toolchain must be available Another possibility is to use Forth-capable CPU Forth CPU for FPGA Very efficient
Recommended publications
  • Latticemico32 Development Kit User's Guide for Latticeecp
    LatticeMico32 Development Kit User’s Guide for LatticeECP Lattice Semiconductor Corporation 5555 NE Moore Court Hillsboro, OR 97124 (503) 268-8000 May 2007 Copyright Copyright © 2007 Lattice Semiconductor Corporation. This document may not, in whole or part, be copied, photocopied, reproduced, translated, or reduced to any electronic medium or machine- readable form without prior written consent from Lattice Semiconductor Corporation. Trademarks Lattice Semiconductor Corporation, L Lattice Semiconductor Corporation (logo), L (stylized), L (design), Lattice (design), LSC, E2CMOS, Extreme Performance, FlashBAK, flexiFlash, flexiMAC, flexiPCS, FreedomChip, GAL, GDX, Generic Array Logic, HDL Explorer, IPexpress, ISP, ispATE, ispClock, ispDOWNLOAD, ispGAL, ispGDS, ispGDX, ispGDXV, ispGDX2, ispGENERATOR, ispJTAG, ispLEVER, ispLeverCORE, ispLSI, ispMACH, ispPAC, ispTRACY, ispTURBO, ispVIRTUAL MACHINE, ispVM, ispXP, ispXPGA, ispXPLD, LatticeEC, LatticeECP, LatticeECP-DSP, LatticeECP2, LatticeECP2M, LatticeMico8, LatticeMico32, LatticeSC, LatticeSCM, LatticeXP, LatticeXP2, MACH, MachXO, MACO, ORCA, PAC, PAC-Designer, PAL, Performance Analyst, PURESPEED, Reveal, Silicon Forest, Speedlocked, Speed Locking, SuperBIG, SuperCOOL, SuperFAST, SuperWIDE, sysCLOCK, sysCONFIG, sysDSP, sysHSI, sysI/O, sysMEM, The Simple Machine for Complex Design, TransFR, UltraMOS, and specific product designations are either registered trademarks or trademarks of Lattice Semiconductor Corporation or its subsidiaries in the United States and/or other countries. ISP, Bringing the Best Together, and More of the Best are service marks of Lattice Semiconductor Corporation. Other product names used in this publication are for identification purposes only and may be trademarks of their respective companies. Disclaimers NO WARRANTIES: THE INFORMATION PROVIDED IN THIS DOCUMENT IS “AS IS” WITHOUT ANY EXPRESS OR IMPLIED WARRANTY OF ANY KIND INCLUDING WARRANTIES OF ACCURACY, COMPLETENESS, MERCHANTABILITY, NONINFRINGEMENT OF INTELLECTUAL PROPERTY, OR FITNESS FOR ANY PARTICULAR PURPOSE.
    [Show full text]
  • Latticemico32 Software Developer User Guide
    LatticeMico32 Software Developer User Guide May 2014 Copyright Copyright © 2014 Lattice Semiconductor Corporation. This document may not, in whole or part, be copied, photocopied, reproduced, translated, or reduced to any electronic medium or machine-readable form without prior written consent from Lattice Semiconductor Corporation. Trademarks Lattice Semiconductor Corporation, L Lattice Semiconductor Corporation (logo), L (stylized), L (design), Lattice (design), LSC, CleanClock, Custom Mobile Device, DiePlus, E2CMOS, ECP5, Extreme Performance, FlashBAK, FlexiClock, flexiFLASH, flexiMAC, flexiPCS, FreedomChip, GAL, GDX, Generic Array Logic, HDL Explorer, iCE Dice, iCE40, iCE65, iCEblink, iCEcable, iCEchip, iCEcube, iCEcube2, iCEman, iCEprog, iCEsab, iCEsocket, IPexpress, ISP, ispATE, ispClock, ispDOWNLOAD, ispGAL, ispGDS, ispGDX, ispGDX2, ispGDXV, ispGENERATOR, ispJTAG, ispLEVER, ispLeverCORE, ispLSI, ispMACH, ispPAC, ispTRACY, ispTURBO, ispVIRTUAL MACHINE, ispVM, ispXP, ispXPGA, ispXPLD, Lattice Diamond, LatticeCORE, LatticeEC, LatticeECP, LatticeECP-DSP, LatticeECP2, LatticeECP2M, LatticeECP3, LatticeECP4, LatticeMico, LatticeMico8, LatticeMico32, LatticeSC, LatticeSCM, LatticeXP, LatticeXP2, MACH, MachXO, MachXO2, MachXO3, MACO, mobileFPGA, ORCA, PAC, PAC-Designer, PAL, Performance Analyst, Platform Manager, ProcessorPM, PURESPEED, Reveal, SensorExtender, SiliconBlue, Silicon Forest, Speedlocked, Speed Locking, SuperBIG, SuperCOOL, SuperFAST, SuperWIDE, sysCLOCK, sysCONFIG, sysDSP, sysHSI, sysI/O, sysMEM, The Simple Machine for Complex
    [Show full text]
  • Openpiton: an Open Source Manycore Research Framework
    OpenPiton: An Open Source Manycore Research Framework Jonathan Balkind Michael McKeown Yaosheng Fu Tri Nguyen Yanqi Zhou Alexey Lavrov Mohammad Shahrad Adi Fuchs Samuel Payne ∗ Xiaohua Liang Matthew Matl David Wentzlaff Princeton University fjbalkind,mmckeown,yfu,trin,yanqiz,alavrov,mshahrad,[email protected], [email protected], fxiaohua,mmatl,[email protected] Abstract chipset Industry is building larger, more complex, manycore proces- sors on the back of strong institutional knowledge, but aca- demic projects face difficulties in replicating that scale. To Tile alleviate these difficulties and to develop and share knowl- edge, the community needs open architecture frameworks for simulation, synthesis, and software exploration which Chip support extensibility, scalability, and configurability, along- side an established base of verification tools and supported software. In this paper we present OpenPiton, an open source framework for building scalable architecture research proto- types from 1 core to 500 million cores. OpenPiton is the world’s first open source, general-purpose, multithreaded manycore processor and framework. OpenPiton leverages the industry hardened OpenSPARC T1 core with modifica- Figure 1: OpenPiton Architecture. Multiple manycore chips tions and builds upon it with a scratch-built, scalable uncore are connected together with chipset logic and networks to creating a flexible, modern manycore design. In addition, build large scalable manycore systems. OpenPiton’s cache OpenPiton provides synthesis and backend scripts for ASIC coherence protocol extends off chip. and FPGA to enable other researchers to bring their designs to implementation. OpenPiton provides a complete verifica- tion infrastructure of over 8000 tests, is supported by mature software tools, runs full-stack multiuser Debian Linux, and has been widespread across the industry with manycore pro- is written in industry standard Verilog.
    [Show full text]
  • FPGA Design Guide
    FPGA Design Guide Lattice Semiconductor Corporation 5555 NE Moore Court Hillsboro, OR 97124 (503) 268-8000 September 16, 2008 Copyright Copyright © 2008 Lattice Semiconductor Corporation. This document may not, in whole or part, be copied, photocopied, reproduced, translated, or reduced to any electronic medium or machine- readable form without prior written consent from Lattice Semiconductor Corporation. Trademarks Lattice Semiconductor Corporation, L Lattice Semiconductor Corporation (logo), L (stylized), L (design), Lattice (design), LSC, E2CMOS, Extreme Performance, FlashBAK, flexiFlash, flexiMAC, flexiPCS, FreedomChip, GAL, GDX, Generic Array Logic, HDL Explorer, IPexpress, ISP, ispATE, ispClock, ispDOWNLOAD, ispGAL, ispGDS, ispGDX, ispGDXV, ispGDX2, ispGENERATOR, ispJTAG, ispLEVER, ispLeverCORE, ispLSI, ispMACH, ispPAC, ispTRACY, ispTURBO, ispVIRTUAL MACHINE, ispVM, ispXP, ispXPGA, ispXPLD, LatticeEC, LatticeECP, LatticeECP-DSP, LatticeECP2, LatticeECP2M, LatticeMico8, LatticeMico32, LatticeSC, LatticeSCM, LatticeXP, LatticeXP2, MACH, MachXO, MACO, ORCA, PAC, PAC-Designer, PAL, Performance Analyst, PURESPEED, Reveal, Silicon Forest, Speedlocked, Speed Locking, SuperBIG, SuperCOOL, SuperFAST, SuperWIDE, sysCLOCK, sysCONFIG, sysDSP, sysHSI, sysI/O, sysMEM, The Simple Machine for Complex Design, TransFR, UltraMOS, and specific product designations are either registered trademarks or trademarks of Lattice Semiconductor Corporation or its subsidiaries in the United States and/or other countries. ISP, Bringing the Best Together, and More
    [Show full text]
  • Small Soft Core up Inventory ©2019 James Brakefield Opencore and Other Soft Core Processors Reverse-U16 A.T
    tool pip _uP_all_soft opencores or style / data inst repor com LUTs blk F tool MIPS clks/ KIPS ven src #src fltg max max byte adr # start last secondary web status author FPGA top file chai e note worthy comments doc SOC date LUT? # inst # folder prmary link clone size size ter ents ALUT mults ram max ver /inst inst /LUT dor code files pt Hav'd dat inst adrs mod reg year revis link n len Small soft core uP Inventory ©2019 James Brakefield Opencore and other soft core processors reverse-u16 https://github.com/programmerby/ReVerSE-U16stable A.T. Z80 8 8 cylcone-4 James Brakefield11224 4 60 ## 14.7 0.33 4.0 X Y vhdl 29 zxpoly Y yes N N 64K 64K Y 2015 SOC project using T80, HDMI generatorretro Z80 based on T80 by Daniel Wallner copyblaze https://opencores.org/project,copyblazestable Abdallah ElIbrahimi picoBlaze 8 18 kintex-7-3 James Brakefieldmissing block622 ROM6 217 ## 14.7 0.33 2.0 57.5 IX vhdl 16 cp_copyblazeY asm N 256 2K Y 2011 2016 wishbone extras sap https://opencores.org/project,sapstable Ahmed Shahein accum 8 8 kintex-7-3 James Brakefieldno LUT RAM48 or block6 RAM 200 ## 14.7 0.10 4.0 104.2 X vhdl 15 mp_struct N 16 16 Y 5 2012 2017 https://shirishkoirala.blogspot.com/2017/01/sap-1simple-as-possible-1-computer.htmlSimple as Possible Computer from Malvinohttps://www.youtube.com/watch?v=prpyEFxZCMw & Brown "Digital computer electronics" blue https://opencores.org/project,bluestable Al Williams accum 16 16 spartan-3-5 James Brakefieldremoved clock1025 constraint4 63 ## 14.7 0.67 1.0 41.1 X verilog 16 topbox web N 4K 4K N 16 2 2009
    [Show full text]
  • Mico32 White Paper 2008-02
    OPEN AND EASY MICROPROCESSOR DESIGNS USING THE LatticeMico32 A Lattice Semiconductor White Paper February 2008 Lattice Semiconductor 5555 Northeast Moore Ct. Hillsboro, Oregon 97124 USA Telephone: (503) 268-8000 www.latticesemi.com 1 Open and Easy Microprocessor Designs Using the LatticeMico32 A Lattice Semiconductor White Paper Embedded Microprocessor Trends and Challenges The last few years have witnessed a growing trend to use embedded microprocessors in FPGA designs. Figure 1 illustrates this trend. 120,000 Without Embedded µP 100,000 With Embedded µP 80,000 60,000 40,000 20,000 Number ofDesign FPGA/PLD Starts 0 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 Figure 1 – FPGA Design Starts With Embedded µµµP Source: Gartner, August 9, 2005 As illustrated in the graph, this trend is not showing any signs of slowing down. Three important benefits of the embedded microprocessor approach are driving this trend. The first is that a soft processor provides the preferred way to implement control-plane functionality in an FPGA while leaving the datapath functionality to the programmable hardware. Control plane functionality that can be implemented in software rather than hardware allows the designer much greater freedom to make changes. Also, many control plane functions are just too difficult to reasonably implement in hardware. The second benefit is that, with software-based processing, it is possible for the hardware logic to remain stable because functional upgrades can be made through software modification. The third benefit is that FPGA embedded soft processors will not become obsolete. One of the risks that any user faces when designing with an off-the-shelf microprocessor is obsolescence.
    [Show full text]
  • Open-Source 32-Bit RISC Soft-Core Processors
    IOSR Journal of VLSI and Signal Processing (IOSR-JVSP) Volume 2, Issue 4 (May. – Jun. 2013), PP 43-46 e-ISSN: 2319 – 4200, p-ISSN No. : 2319 – 4197 www.iosrjournals.org Open-Source 32-Bit RISC Soft-Core Processors Rahul R.Balwaik, Shailja R.Nayak, Prof. Amutha Jeyakumar Department of Electrical Engineering, VJTI, Mumbai-19, INDIA Abstract: A soft-core processor build using a Field-Programmable Gate Array (FPGA)’s general-purpose logic represents an embedded processor commonly used for implementation. In a large number of applications; soft-core processors play a vital role due to their ease of usage. Soft-core processors are more advantageous than their hard-core counterparts due to their reduced cost, flexibility, platform independence and greater immunity to obsolescence. This paper presents a survey of a considerable number of soft core processors available from the open-source communities. Some real world applications of these soft-core processors are also discussed followed by the comparison of their several features and characteristics. The increasing popularity of these soft-core processors will inevitably lead to more widespread usage in embedded system design. This is due to the number of significant advantages that soft-core processors hold over their hard-core counterparts. Keywords: Field-Programmable Gate Array (FPGA), Application-Specific Integrated Circuit (ASIC), open- source, soft-core processors. I. INTRODUCTION Field-Programmable Gate Array (FPGA) has grown in capacity and performance, and is now one of the main implementation fabrics for designs, particularly where the products do not demand for custom integrated circuits. And in recent past due to the increased capacity and falling cost of the FPGA’s relatively fast and high density devices are today becoming available to the general public.
    [Show full text]
  • Latticemico32 Hardware Developer User Guide
    LatticeMico32 Hardware Developer User Guide May 2014 Copyright Copyright © 2014 Lattice Semiconductor Corporation. This document may not, in whole or part, be copied, photocopied, reproduced, translated, or reduced to any electronic medium or machine-readable form without prior written consent from Lattice Semiconductor Corporation. Trademarks Lattice Semiconductor Corporation, L Lattice Semiconductor Corporation (logo), L (stylized), L (design), Lattice (design), LSC, CleanClock, Custom Mobile Device, DiePlus, E2CMOS, ECP5, Extreme Performance, FlashBAK, FlexiClock, flexiFLASH, flexiMAC, flexiPCS, FreedomChip, GAL, GDX, Generic Array Logic, HDL Explorer, iCE Dice, iCE40, iCE65, iCEblink, iCEcable, iCEchip, iCEcube, iCEcube2, iCEman, iCEprog, iCEsab, iCEsocket, IPexpress, ISP, ispATE, ispClock, ispDOWNLOAD, ispGAL, ispGDS, ispGDX, ispGDX2, ispGDXV, ispGENERATOR, ispJTAG, ispLEVER, ispLeverCORE, ispLSI, ispMACH, ispPAC, ispTRACY, ispTURBO, ispVIRTUAL MACHINE, ispVM, ispXP, ispXPGA, ispXPLD, Lattice Diamond, LatticeCORE, LatticeEC, LatticeECP, LatticeECP-DSP, LatticeECP2, LatticeECP2M, LatticeECP3, LatticeECP4, LatticeMico, LatticeMico8, LatticeMico32, LatticeSC, LatticeSCM, LatticeXP, LatticeXP2, MACH, MachXO, MachXO2, MachXO3, MACO, mobileFPGA, ORCA, PAC, PAC-Designer, PAL, Performance Analyst, Platform Manager, ProcessorPM, PURESPEED, Reveal, SensorExtender, SiliconBlue, Silicon Forest, Speedlocked, Speed Locking, SuperBIG, SuperCOOL, SuperFAST, SuperWIDE, sysCLOCK, sysCONFIG, sysDSP, sysHSI, sysI/O, sysMEM, The Simple Machine for Complex
    [Show full text]
  • Embedded Processor Selection/Performance Estimation Using FPGA-Based Profiling
    Virginia Commonwealth University VCU Scholars Compass Theses and Dissertations Graduate School 2010 Embedded Processor Selection/Performance Estimation using FPGA-based Profiling Fadi Obeidat Virginia Commonwealth University Follow this and additional works at: https://scholarscompass.vcu.edu/etd Part of the Engineering Commons © The Author Downloaded from https://scholarscompass.vcu.edu/etd/2232 This Dissertation is brought to you for free and open access by the Graduate School at VCU Scholars Compass. It has been accepted for inclusion in Theses and Dissertations by an authorized administrator of VCU Scholars Compass. For more information, please contact [email protected]. School of Engineering Virginia Commonwealth University This is to certify that the dissertation prepared by Fadi Obeidat entitled EMBEDDED PROCESSOR SELECTION/PERFORMANCE ESTIMATION USING FPGA-BASED PROFILING has been approved by his committee as satisfactory completion of the dissertation requirement for the degree of Doctor of Philosophy Robert Klenke, Ph.D., Committee Chair, Department of Electrical and Computer Engineering, School of Engineering Mike McCollum, Ph.D., Dept. Department of Electrical and Computer Engineering, School of Engineering Afroditi V Filippas, Ph.D., Department of Electrical and Computer Engineering, School of Engineering Kayvan Najarian, Ph.D., Department of Computer Science, School of Engineering Vojislav Kecman, Ph.D., Department of Computer Science, School of Engineering Date i EMBEDDED PROCESSOR SELECTION/PERFORMANCE ESTIMATION USING
    [Show full text]
  • A High Performance Microprocessor with Dsp Extensions Optimized for the Virtex-4 Fpga
    A HIGH PERFORMANCE MICROPROCESSOR WITH DSP EXTENSIONS OPTIMIZED FOR THE VIRTEX-4 FPGA Andreas Ehliar∗, Per Karlstrom¨ †, Dake Liu Department of Electrical Engineering Linkoping¨ University Sweden email: [email protected], [email protected], [email protected] ABSTRACT In this paper we will present a high speed soft micropro- As the use of FPGAs increases, the importance of highly cessor core with DSP extensions optimized for the Virtex- optimized processors for FPGAs will increase. In this paper 4 FPGA family. The microarchitecture of the processor is we present the microarchitecture of a soft microprocessor carefully designed to allow for high speed operation. core optimized for the Virtex-4 architecture. The core can operate at 357 MHz, which is significantly faster than Xil- 2. RELATED WORK inx’ Microblaze architecture on the same FPGA. At this fre- quency it is necessary to keep the logic complexity down There are many soft processor cores available for FPGA us- and this paper shows how this can be done while retaining age although Nios II, Mico32, and Microblaze are common sufficient functionality for a high performance processor. choices thanks to the support from their vendors. Altera’s Nios II [2]. is a 32-bit RISC processor that 1. INTRODUCTION comes in three flavors; e, s, and, f with a one, five, or six pipeline stages respectively. The use of FPGAs has increased steadily since their in- Xilinx’ Microblaze is a 32-bit RISC processor [10] opti- troduction. The first FPGAs were limited devices, usable mized for Xilinx FPGAs. mainly for glue logic whereas the capabilities of modern FP- Lattice’ Mico32 is a 32 bit RISC processor [7] with a six GAs allow for extremely varied use cases in everything from stage pipeline.
    [Show full text]
  • Introduction to Embedded System Design Using Field Programmable Gate Arrays Rahul Dubey
    Introduction to Embedded System Design Using Field Programmable Gate Arrays Rahul Dubey Introduction to Embedded System Design Using Field Programmable Gate Arrays 123 Rahul Dubey, PhD Dhirubhai Ambani Institute of Information and Communication Technology (DA-IICT) Gandhinagar 382007 Gujarat India ISBN 978-1-84882-015-9 e-ISBN 978-1-84882-016-6 DOI 10.1007/978-1-84882-016-6 A catalogue record for this book is available from the British Library Library of Congress Control Number: 2008939445 © 2009 Springer-Verlag London Limited ChipScope™, MicroBlaze™, PicoBlaze™, ISE™, Spartan™ and the Xilinx logo, are trademarks or registered trademarks of Xilinx, Inc., 2100 Logic Drive, San Jose, CA 95124-3400, USA. http://www.xilinx.com Cyclone®, Nios®, Quartus® and SignalTap® are registered trademarks of Altera Corporation, 101 Innovation Drive, San Jose, CA 95134, USA. http://www.altera.com Modbus® is a registered trademark of Schneider Electric SA, 43-45, boulevard Franklin-Roosevelt, 92505 Rueil-Malmaison Cedex, France. http://www.schneider-electric.com Fusion® is a registered trademark of Actel Corporation, 2061 Stierlin Ct., Mountain View, CA 94043, USA. http://www.actel.com Excel® is a registered trademark of Microsoft Corporation, One Microsoft Way, Redmond, WA 98052- 6399, USA. http://www.microsoft.com MATLAB® and Simulink® are registered trademarks of The MathWorks, Inc., 3 Apple Hill Drive, Natick, MA 01760-2098, USA. http://www.mathworks.com Apart from any fair dealing for the purposes of research or private study, or criticism or review, as permitted under the Copyright, Designs and Patents Act 1988, this publication may only be reproduced, stored or transmitted, in any form or by any means, with the prior permission in writing of the publishers, or in the case of reprographic reproduction in accordance with the terms of licences issued by the Copyright Licensing Agency.
    [Show full text]
  • Designing Application-Specific Processors for Image Processing
    Copyright is owned by the Author of the thesis. Permission is given for a copy to be downloaded by an individual for the purpose of research and private study only. The thesis may not be reproduced elsewhere without the permission of the Author. Designing Application-Specific Processors for Image Processing A thesis presented in partial fulfilment of the requirements for the degree of Master of Science in Computer Science Massey University, Palmerston North, New Zealand Aaron Bishell 2008 Abstract Implementing a real-time image-processing algorithm on a serial processor is difficult to achieve because such a processor cannot cope with the volume of data in the low-level operations. However, a parallel implementation, required to meet timing constraints for the low-level operations, results in low resource utilisation when implementing the high-level operations. These factors suggested a combination of parallel hardware, for the low-level operations, and a serial processor, for the high-level operations, for implementing a high-level image-processing algorithm. Several types of serial processors were available. A general-purpose processor requires an extensive instruction set to be able to execute any arbitrary algorithm resulting in a relatively complex instruction decoder and possibly extra FUs. An application-specific processor, which was considered in this research, implements enough FUs to execute a given algorithm and implements a simpler, and more efficient, instruction decoder. In addition, an algorithms behaviour on a processor could be represented in either hardware (i.e. hardwired logic), which limits the ability to modify the algorithm behaviour of a processor, or “software” (i.e.
    [Show full text]