📜 ⬆️ ⬇️

How to start working with MIPSfpga

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

MIPSfpga is not intended to be introduced into an item from absolute zero. For its fruitful use it is necessary that the student or the researcher already knew the basics of digital circuitry, knew how to program in C and assembler, and also represent the concepts of microarchitecture - pipeline, pipeline conflicts, etc. It is desirable that before working with MIPSfpga a student would already build his own simple processor from scratch and could compare his simple processor with a processor used in industry and compatible with a developed development ecosystem.


')

The list of things that it is desirable for a student to know in advance, before starting work with MIPSfpga, and also, on the contrary, topics that MIPSfpga can help in studying, is in the post:
At the request of a teacher from a Russian university, he wrote out a list of topics related to MIPSfpga

If a student and a researcher do not have enough knowledge from the list, you can freshen up from the book by David Harris and Sarah Harris “Digital circuit design and computer architecture”, the Russian translation of which can be downloaded free of charge according to the instructions from the post:
http://habrahabr.ru/post/259505/
Free textbook of electronics, computer architecture and low-level programming in Russian

As such, the MIPSfpga package can be downloaded from the post:
Instructions for downloading MIPSfpga

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

Then you can view "MIPSfpga / MIPSfpga Getting Started Guide.pdf" - you do not need to loop around; This is a popular description that chews slides, but does not in any way replace commercial duplication of the MIPS microAptiv UP core, the public part of which is located in the MIPSfpga / Documents directory, including the external signal documentation (MIPS32 microAptiv UP Processor 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 Imagination Technologies.

To understand programming in an assembler somewhere it is desirable to find a slightly 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 basic 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 graduation, various extensions and improvements began to appear in MIPSfpga. Instead of the original packages, we recommend using one of these extensions, called MIPSfpga +.

Its description and code can be found at the following links:
MIPSfpga + allows loading switch 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 difficulty finding or purchasing equipment, you can try borrowing an FPGA fee for free:
Distributing Elephants: FPGA boards for educational projects with MIPSfpga

In conclusion, as a lyrical digression, a report on the seminars on MIPSfpga in Russia:
Journey to the microelectronic Russia 2015

Source: https://habr.com/ru/post/275215/


All Articles