- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi all,
am pretty new to using NIOS processor. I have been using Quartus II for cyclone for making block diagrams. I have moved to NIOS as i need reduction in Logic cells. I have installed NIOS II IDE 10.1 I have installed Quartus II 10.1 Please help me to write a simple assembly program to take 2 inputs using a i/o port and output the sum into an output port which i would configure using SOPC builder. Am very new to the technology please help me out regarding the same. thanks in advance.Link Copied
5 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Start with one of the 'hello world' samples from Altera.
You might need one of the 'small footprint' versions.- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have been trying to do some basic stuff as follows,
I have made a basic cpu with one in-port and one out-port given a constant value at the inport want to read the value in the outport by implementing the CPU using assembly prog. .text .global _start _start: movia r15, 0x00000000 /*base address of input port*/ movia r16, 0x00000010 /*base address of output port*/ ldwio r4, 0(r15) stwio r4, 0(r16) .end how shud i compile this and write into the FPGA ??? I much complicated project is awaiting me... if i get through these basics i and pick up and go ahead. please help.- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Most people write most of their code in C.
Often with a view to expecting the compiler to generate specific instructions!- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
For stuff like this unless you prefer doing things the hard way just write this in C.
# include "altera_avalon_pio_regs.h" int main () { unsigned long read_data; read_data = IORD_ALTERA_AVALON_PIO_DATA(INPUT_PIO_BASE); IOWR_ALTERA_AVALON_PIO_DATA(OUTPUT_PIO_BASE, read_data); return 1; }- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
And if you still want to do it the hard way, you could do something like the following in the Nios command shell:
nios2-elf-gcc -nostdlib -Ttext=0x1000 test.S
elf2hex --input a.out --output test.hex --width 32 --base 0x1000 --end 0x1FFF
The above assumes you have put your source in a file named "test.S" and that your on chip memory starts at 0x1000 and ends at 0x1FFF. You can adjust accordingly. If you assign the resulting test.hex file to on chip memory and set your Nios reset vector to this memory, it should run. Note that your program should have some kind of loop or something at the end so it doesn't keep executing beyond the end of your source with unpredictable results.

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page