From October 2 to October 5, a school on the basics of digital circuitry, architecture and the use of Verilog was held in Novosibirsk. The formal name of the event: a school for undergraduates and graduate students, held at the Novosibirsk State Technical University in the framework of the XIV International Scientific and Technical Conference "Actual problems of electronic instrumentation" APEP-2018, held under the auspices of IEEE.
This event was primarily focused on those who:
Announcement: a similar school is scheduled from 6 to 9 November at the Institute of Space and Information Technologies of the Siberian Federal University (IKIT SFU). The school will be led by Alina Leskovskaya - a postgraduate student, a design engineer at AES IMS named after M. Reshetnev, and her colleagues: Dmitry Vlasov and Boris Dudkin. Contact for registration: leskovskayaav@yandex.ru
If your post sounds at least “Junior FPGA Developer”, then with a high probability you will not learn anything new for yourself in this post. For everyone else - welcome under cat.
At one time (back in college), the author of these lines studied computer architecture without using Verilog or VHDL: you come to a lecture, during which a black box called "computer" is laid out into many small black boxes: "processor", " memory ", etc. But they still remain black boxes: you can not "climb" inside, you can not "change" the device. The course ends, and you still have the feeling that you are working with "magical entities of an obscure inner structure." At best, you can configure them (program). In my head there is no holistic picture of the digital world. There is no understanding of how it works inside. That understanding, which distinguishes a good Engineer from "passed by".
In order to get a complete picture, you must be able to change the studied devices and create your own. And here comes Verilog (or VHDL), simulation software and inexpensive debugging boards with FPGAs for testing in hardware. A simple processor ( schoolMIPS ) can be written in 1-2 evenings. And this is not rocket science at all, no magic.
Having in your head a complete picture of the digital world, it is not at all necessary to associate your life with the development of microchips. But I believe that people who really understand how the "magic counting box" works will not write terrible slow programs. I'll draw a parallel: a hammer and a drill lying in a closet do not make you a joiner. At the same time, you are able to drive a nail, you understand why you need these tools, when it is worth using a hammer, why you should not take a microscope instead, and when you should turn to a professional.
Work at the School was practice-oriented. It is very hard to put all the questions of theory and practice described in H & H into four days. Therefore, this goal was not set. The whole theory was given solely in volume, necessary for practice. Therefore, it was not easy for those who did not open the book before.
• Hardware Description Language and why it is needed.
• What is FPGA
• Basics of combinational logic
• Basic logic elements and their description on Verilog
• Test environment (Testbench)
• Verifying the operation of the combinator circuit using a simulator (Icarus Verilog, Modelsim)
• Synthesis of combinational circuit, Intel Quartus and Xilinx Vivado GUI
• What is the synthesis scheme synthesized when implemented on the FPGA
• Programming debug board
• Verification of the project on the debug board
• Basics Makefile and work in non-project mode
• Multiplexer and how to describe it on Verilog HDL
• Demultiplexer and how to describe it on Verilog HDL
• Practical example: working with 7-segment indicators
• Conditional compilation in Verilog HDL
• Combination schemes and signal propagation time
• Clock and sequential circuits
• Different types of assignments in Verilog HDL
• D-trigger and its implementation on Verilog in various variations: asynchronous and synchronous resets, write enable port
• What is the sequential scheme synthesized when implemented on the basis of FPGA
• Register and its implementation
• Counter and its implementation
• Dynamic and static discipline
• Metastability and synchronizer
• Unwanted latch, consequences and ways to avoid
• State machines (Mura and Miles)
• Representation of an automaton in the form of a transition diagram.
• Implementation of the machine on Verilog HDL
• The general approach of designing complex machines
• Step-by-step implementation of the interface module of the ultrasonic distance sensor on Verilog
• Independent work. Implementation of the interface module of the keyboard 4x4 for the FPGA
• Independent work. Implementation of the calculator on the FPGA
• Basics of pipelining
• Architecture and microarchitecture
• Basics of development in MIPS assembly
• Work with the MARS simulator
• Designing the simplest single-ended processor using the example of schoolMIPS
• Data path and control device
• Compile the program, run the processor in the simulator and on the debug board
• Independent work. Adding support for new instructions to the processor
All course materials (slides, scripts, source codes, literature) are available online ( github , additional materials ). Slides are designed in a dubious style, when there is a lot of text on them, in the hope that this will simplify acquaintance with offline materials.
Practical and independent tasks were performed mainly on the Terasic DE10-Lite boards with Intel MAX10 FPGAs on board. We also had Digilent Nexys 4 DDR on the example of which the work with Xilinx Vivado was demonstrated. With rare exception, the examples are prepared in such a way that you can use both DE10-Lite and Nexys 4 DDR. The choice in favor of working with Intel FPGA cards is due to the following reasons:
When the event was announced, I began to receive mail requests to organize a broadcast or videotape. Unfortunately, this did not fit into the format of the organization of the School I chose. We did not have lectures as such: a few slides, then practice. There were questions - we analyze, constant dialogue, funny jokes and moving around the audience. Choosing between working for the camera and building productive contact with the audience, I chose the latter. As far as it turned out - to judge the students. Please treat with understanding.
Are you a teacher who is interested in giving students knowledge? Or are you a student who wants to get this knowledge, regardless of whether their teachers give it or not? In this case, even if you could not attend the event, you have all the information necessary for self-learning and / or building / changing the course:
Please do not expect someone to come to you and do something good. Your knowledge, if you are a student, and the knowledge of your students, if you are a teacher, is 99% dependent on your efforts.
Anna Kazmina
For 4 days <...> we plunged into technology development on the basis of FPGA so that it completely changed my understanding of the use of FPGA in the modern world in real production. Earlier in the educational process we used the FPGA only to speed up the solution of problems, and now we learned how to use microcontroller microarchitecture design <...> This school really interested me so much that I plan to develop in this direction. More such events!
Olesya Radchenko
Many thanks to the team, thanks to which a similar school was held at NSTU. Thank you for the opportunity to "plunge into the head" in programming FPGA, learn how other developers work with Quartus, ModelSim, and also get to know, for example, Vivado. During these 4 days I consolidated the old knowledge and learned a lot of new things, for example about MIPS. <...> I can apply the knowledge gained in my work, which has recently been closely connected with FPGA programming
Vladislav Mayer
Perhaps I want to note that due to limited time, you managed to present enough information for an initial understanding of the material. I personally had some basic knowledge of a hardware programming language. But the main exhaust for me is a change of view on programming as a whole. I now look at familiar things from a different angle and have an idea of how to implement these or other modules in a different way.
Anton Yupashevsky
During these four days, I looked at the programming of the FPGA in a completely different way, at the Verilog hardware description language and at the application of the FPGA at the present time. I got an initial level of knowledge in FPGA and digital circuitry for another 4 years of study at the university and with
there were no problems with the simplest combinational and sequential schemes, but then
more and more complex and interesting ones appeared and in the end we programmed the core
Mips. A huge advantage of this school was a huge amount of practice.
Mikhail Kireev
During the school "from physics to chip" at APEP-2018, dogmas were stated when working with Verilog:
It is necessary to master the book of Harris. In this area, a lot of pitfalls when writing code - absolutely identical (from the logic point of view) blocks can be synthesized in different ways <...> Simulation will give much more possibilities when developing than synthesis - pay more attention to Waveform. In professional activities, you have to work with different FPGA lines from different manufacturers, <...> Save your time in perspective (writing scripts and make-files). From the point of view of practice, a number of basic sequential and combinational circuits were considered; pipeline, 4x4 keyboard, examples of finite automata, the simplest MIPS architecture and other tasks.
ZY I found out about this school and signed up 12 hours before its start, I did not regret about attending this event, though reading the book Harris would have been much more productive.
Source: https://habr.com/ru/post/427285/
All Articles