Altera_Forum
Honored Contributor
20 years agoNios 1 to Nios 2
Up till now I have only played with NIOS2. I have many NIOS1 (3.01) designs out in the field and it has served me well.
Problem. I developed a small dev board running NIOS1 with 128KB SRAM, 1MB Flash and CS8900 LAN. It works perfect with NIOS1. Then I tried to port the design to NIOS2. I have to use legacy mode for several reasons (for one, too many units in the field uses it). The software seemed to work perfectly. When I tried to flash it to 0x140000 it gave me an errors. Tried to use GERMS to write a word or erase and nothing. I eventually gave up and produced another product based on NIOS1 (hey, it works). During the development of the newer product I decided to try NIOS2 again (and again it was designed to only use legacy mode). This time I started with the CS8900. No comms. Hmmmm? Tried to write to Flash with the same problems. I could read it but not write and erase. So I decided to test my new code on the old board on NIOS1. Both the Flash and CS8900 routines worked perfectly. Reloaded NIOS2 and recompiled. No LAN and no Flash. You can read but not write. Checked the relevant write signals on the FPGA and got nice pulses. Eventually I decided to stay with NIOS1 and got the new board up and running in 1 hour. Yesterday I started on a new project. The client needs low CPU bandwidth but also requires a 2 mbit/s data link, all on a 1C3 144 pin device. This is ideal for NIOS2. He insists on the simple RS232 interface as he personally hates fancy IDEs and JTAG cables. So back to legacy mode, that sits really well with me. So I thought it might be that something slipped in. I did a virgin install of Q4.2 and Nios2. Started a project from scratch. The SRAM works like a charm but the Flash still has exactly the same problem, read but no write. Software runs perfectly from SRAM, but you cannot write to flash from both the GERMS monitor or from code. The implentation has the following Nios2/e, 128kb SRAM, 1MB Flash, Tri state and 1x UART running at 20 MHZ. I also tried a custom CFI with timings in the range of 4000ns. Reads perfectly, but no writes and erases. Even the NIOS1 design(working) ported to NIOS2 does the same thing. The same problem occured on a 1C6 240 pin design with 32MB of SDRAM. Any suggestions? VictorS