Back to Home

How to get started with MIPSfpga

plis · fpga · mips · verilog · vhdl · altera · xilinx · uart · spi · imagination technologies · mips microaptiv UP · mipsfpga

How to get started with MIPSfpga

    MIPSfpga is a package that contains the processor core in the source code on Verilog, which you can change, add new instructions, build multiprocessor systems, change software and hardware at the same time, simulate on a veriog simulator, synthesize for FPGA / FPGA, etc. It can, for example, be run for an experiment at a frequency of 1 clock per second and output information about the status of the cache, pipeline, and any structures inside the processor. At the same time, the MIPS microAptiv UP core inside MIPSfpga is the same core that, for example, is used in the Samsung Artik 1 and Microchip PIC32MZ IoT platforms, i.e. students get the opportunity to work with the same code that engineers at Samsung and Microchip work with.

    MIPSfpga is not intended to be injected into an object from absolute zero. For its fruitful use, it is necessary that the student or researcher already knows the basics of digital circuitry, is able to program in C and assembler, and also introduces the concepts of microarchitecture - conveyor, pipeline conflicts, etc. Before working with MIPSfpga, it is advisable for a student to build their own simple processor from scratch and be able to compare their simple processor with a processor used in industry and compatible with a developed development ecosystem.




    A list of what it is desirable for a student to know in advance, before starting work with MIPSfpga, and, conversely, topics that MIPSfpga can help to study, is in the post:
    At the request of a teacher from a Russian university, I wrote down a list of topics related to MIPSfpga

    If a student and researcher does not have enough knowledge from the list, you can refresh David Harris and Sarah Harris's book “Digital circuitry and computer architecture”, the Russian translation of which can be downloaded for free according to the instructions from the post:
    http://habrahabr.ru/post/259505 / A
    free tutorial on electronics, computer architecture and low-level programming in Russian


    MIPSfpga package as such can be downloaded from the
    manual from the post: MIPSfpga Download Instructions

    First, it is advisable to read the basic presentation in MIPSfpga_Fundamentals / Slides / MIPSfpga_Lectu reSlides.pdf

    Then you can see “MIPSfpga / MIPSfpga Getting Started Guide.pdf” - you don’t have to go in cycles on it; this is a popular description that chews slides, but does not in any way replace commercial documentation with the MIPS microAptiv UP core, the public part of which is located in the MIPSfpga / Documents directory, including documentation for external signals (MIPS32 microAptiv UP Processor Core Family Integrator's Guide) and programming (MIPS32 microAptiv UP Processor Core Family Software User's Manual).

    The MIPS architecture documentation is worth downloading (with registration) from:

    http://imgtec.com/mips/architectures/mips32/
    http://imgtec.com/mips/architectures/mcu-ase/

    and other places on the Imagination Technologies website.

    To understand assembly language somewhere, it is advisable to find a somewhat outdated but useful book http://www.amazon.com/Second-Edition-Kaufmann-Computer-Architecture/dp/0120884216
    See MIPS Run, Second Edition by Dominic Sweetman, 2006
    .

    In addition to the main documentation on MIPSfpga and MIPS, it may be useful to download seminar materials in Russia:
    Public presentations used during MIPSfpga seminars in Russia

    Shortly after the release, MIPSfpga began to appear with various extensions and improvements. Instead of the original packages, we recommend using one of these extensions, which is called MIPSfpga +.

    Its description and code can be found at the following links:
    MIPSfpga + allows loading programs via UART and has a switchable clock

    http://github.com/MIPSfpga/mipsfpga-plus
    https://github.com/MIPSfpga/mipsfpga-plus/blob/master/README.md
    http: // github .com / MIPSfpga / mipsfpga-plus / wiki

    One of the instructions for working with the board and synthesizer:
    Laboratory instructions for MIPSfpga for the Terasic DE0-CV board with Altera Cyclone V

    If you are ready to make a project based on MIPSfpga, but you have difficulties with finding or buying equipment, you can try to lend a FPGA board for free:
    Distribution of elephants: FPGA boards for educational projects with MIPSfpga

    In conclusion, as a lyrical digression - a report on MI seminars PSfpga in Russia:
    Travel through microelectronic Russia in 2015

    Read Next