NIOS II development learning experience and methods[Copy link]
The popularity of FPGA applications and the flexibility of NIOS II system have attracted more and more people to learn and use it. We are very happy and encouraged. The forum has become a place for communication and learning. If everyone can provide more of their own development and learning methods, we can grow faster. I will talk about my own development and learning experience for everyone to laugh at. I hope you will forgive me if I make a fool of myself. First of all, we must be clear: learning anything, as long as you have a certain foundation (I think everyone who comes to this website has this foundation Moreover, this foundation can be gradually improved), make hard efforts, and use appropriate methods, you can learn it well. With this understanding, I guarantee that you have learned half of it. Sometimes friends talk about: So-and-so is a master, so great. So everyone agrees: Yes, yes. It has been mystified and become out of reach. I think God was created in this way, but we should know that this is equivalent to blocking the way forward and imprisoning our thinking. Don't use these as reasons for not learning. We should try to think about what he is good at, list a few, don't be dazzled by the halo behind him, understand that only those who have suffered can become the best, and there is no telling how much sweat, distress and helpless compromise are behind the masters. So you can learn anything. Second, information. You can't learn without rice, there are still many ways to find information, but first you must read the help of the software itself (a friend in the forum said: Wow, there are so many materials here, I have studied English for more than ten years and finally I can use it ), I think this can solve most of the problems. A small problem is that many of them are in English and it is not as fluent as Chinese, but this is not a problem, especially for college students nowadays. English is not a problem, not to mention that there are tool software such as Kingsoft PowerWord. Another point is that what should I do if I understand the words but can't understand them? There is a way: read a book a thousand times, and its meaning will become clear. My English is very poor, and the information often has my phonetic symbols and Chinese translations. If I don't understand, I will read it repeatedly, and ask, don't be ashamed to ask (it is also difficult to really do this). The second way to get information is: the provider's website (www.altera.com.cn), where there are often rich information examples, etc. You should visit it often and be a careful person. If you visit it often, you will find new information on the website. The third source of information is our forum. The advantage of the forum is interaction and sharing. The fourth source of information is newspapers and magazines. Some people may ask: Now that electronic media is so convenient, you are really old-fashioned and still spend money on this. You don’t know this. There is a lot of information in electronic media, but too much, the benefits become disadvantages, and you will drown in the ocean of information. It is better to have less information (military fans know a way to deal with American information reconnaissance: just give them more information, anyway, their supercomputers are fast). One advantage of magazines is that the information in the magazines is sorted by editors and is relatively valuable when retrieved. The Nth source of information: No matter what problem you encounter, think of the expression first, and search it on Google and other search tools. The ocean of information is huge. You may not catch a big whale with this net, but you can always catch some shrimps or something. There are many ways to find information. You can use all kinds of weapons. Third, hardware and software. The circuit to make FPGA work is not very complicated, but the circuit implemented in FPGA can be very complicated. To learn NIOS II, you need to understand the relationship between Quartus II, SOPC Builder, and NIOS II IDE, and understand what they do specifically. Some documents closely related to NIOS II development need to be read, generally including NIOS II processor manual, peripheral manual, software development manual, AVALONE bus specification, and of course SOPC user manual is also necessary. It is best to read the manual of QUTUS II. These materials are available at www.altera.com.cn. Fourth, grasp the overall architecture of NIOS II IDE development. In learning, we usually focus on specific implementations, such as how to implement a certain function, etc. It would be very helpful if we could climb a little higher and have a general view. The current development environment of NIOS II has integrated the C basic environment, UCOS II operating system, and LWIP network protocol stack. In fact, this environment is similar to the ARM environment. Many people have implemented this environment on ARM. Transplanting UCOS II and LWIP on ARM is directly related to learning NIOS II. The only difference is that the ARM environment requires Boot Load, which has been integrated into the compilation system in NIOS II. Developing a simple C program will have the function of boot load, and the relocation problem has also been solved. Fifth, the devices in NIOS III HAL. Since NIOS III HAL integrates the basic implementation of C, its device management is similar to that of UNIX system. If you are familiar with LINUX/UNIX system programming, it will be helpful to understand NIOS III HAL. I have done an analysis of the devices in NIOS III HAL before. You can refer to: www.pld.com.cn/blog/blog.asp?name=jhljs. Sixth, make full use of the program generation template in NIOS III IDE. The underlying driver and automatically generated template program in NIOS III IDE are all developed source code. I think the best object for learning is these codes. No other examples or samples are as good as this. The only disadvantage is that you need to understand or find information on many functions used. NIOS II IDE uses GNU GCC and NEWLIB libraries, so it may be more convenient for people who are familiar with LINUX. In addition, for some large software systems (such as LINUX system code reading), code analysis requires the use of some code analysis tools such as SOURCE INSIGHT, etc., which are also very good for NIOS II code analysis. Copy the /altera/kits/nios2/componet directory, create a project in the SOURCE INSIGHT software, and then read it. Don't be hard on yourself. You must use code analysis tools when reading code. Seventh, comprehensive application ability. The development of NIOS II belongs to the category of embedded development, but compared with some developments using SOC chips such as ARM, there are new requirements. NIOS II can customize peripherals and even instructions, and naturally integrate modules written in HDL or IP Cores into the system. This requires a person to have more comprehensive skills. First of all, you need to understand such an environment. When developing and debugging software, you need to use the ability of hardware design and software design in a comprehensive way. The cooperation and debugging of the two often solve the problem better. There is such a stage for training people, come on, practice Eighth, pressure, motivation and opportunity. A few days ago, I introduced the relevant development environment of NIOS II to their hardware developers in a friend's company. Their hardware personnel sighed: Now the company's business is very busy, and there is no time to contact these new things. Yes, the business is busy, and I work overtime eight days a week. How can I have time to learn these? Yes, everyone in Chinese society is under great pressure now. I often suffer from insomnia. When I dream, I dream about programs or data. I always have a problem that I haven't solved, and I toss and turn. Reality tells us that only by constantly absorbing new technologies can we gain a foothold in the market. Innovation ability is the fundamental guarantee for corporate profitability. So I told them to absorb some new development methods and new development technologies no matter what. If you are a college student, you must practice more, learn development skills, and comprehensive abilities. When I get up in the morning, I say whatever comes to my mind. I'm sorry.