Hi Hani,
I can explain the firmware perspective but not the software side of work, hope others on the forum will add their voice.
--- Quote Start ---
Q1:
When you said "the software can be used to download 'itself' into flash", is this what you mean: "that this can be done if I have the utilities for doing this".
As I am now (without friendly firmware and software engineers around to ask for favours ), I would have to convert the *.SOF to *.POF, and write the *.POF to the flash device?.
--- Quote End ---
You don’t need to do this conversion, quartus by default outputs sof, pof(check that in top menu, device programming files).
You can design a handy nios module on its own, compile it and download it as sof directly into the fpga. This nios module can have just enough fpga memory to do small tasks including downloading pof into flash or downloading any other data.
In steps: build nios in sopc, get ptf, go to IDE and produce some small software as mif file(accommodated inside fpga only), go to quartus and compile to include mif, download sof into the chip and you got a working tiny devil.
You will need to add a flash interface to nios to get it working there.
Your final pof is expected to contain your project including the bootloader, the main software(now too large to be accommodated inside fpga) can be stored in flash as well.
when you power cycle the device, your pof is expected to be loaded into device together with its bootloader. The bootloader then is expected to download the main software which is in the flash.
I guess you may be able to run quartus from within IDE, as your words suggest "run the project as Nios II hardware"
--- Quote Start ---
Q2:
In the Nios Software Design, to run a C program in the Nios configured into the FPGA, I need to "run the project as Nios II hardware" from the Nios IDE environment. So if I have a digital part communicating with the Nios II hardware, do I still have to do this through the Nios IDE?
--- Quote End ---
Again as your words suggest "run the project as Nios II hardware" you may have this tiny luxury not to shuttle between tools. It remains a fact that quartus is the mother compiler! That is responsible for generating the programming files.
I normally do my digital work in quartus. I build nios in sopc tool and go back to quartus, add nios to my project as any submodule and compile and add the mif files(bootloader) as any memory initialisation file.
--- Quote Start ---
Q3:
If I just want to use the Nios II in my digital design, is it the "software developer tutorial" or "hardware developer tutorial" that I should be looking at?
Or is the info in Quartus Handbook material which says "Embedded Peripherals" and "SOPC builder" more suitable?
Studying the document is one thing, but finding the right document to study is also another!
--- Quote End ---
I leave that to other people on the forum. I know there is a jungle of altera pdf files