Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
12 years ago

New IP development

Hello,

I am interested in developing some instructions which can do the bignum operations (like adding two operands of 1024 bit)

and hence by plan to implement a simple Full Adder like this: {carry,sum} = OP_A + OP_B;

I am a beginner in Altera and realized that I can develop an IP component with Avalon MM slave interface which can talk with the NIOS II processor.

I was wondering how to give the bignum values as the operand from the NIOS II processor (master) to the IP component (slave) from the application code?

I see only these macros in the generated 'io.h' file: # define IOWR_32DIRECT(BASE, OFFSET, DATA)

io_write((BASE_APB_ADDR) + __AVL_TO_APB((alt_u32)((BASE) + (OFFSET))), DATA, (BASE) + (OFFSET))

# define IORD_32DIRECT(BASE, OFFSET)

io_read((BASE_APB_ADDR) + __AVL_TO_APB((alt_u32)((BASE) + (OFFSET))), (BASE) + (OFFSET))

I guess these are the 32 bits write and read instructions. So, do I get to clock in the 1024 bits as a single instruction?

Or do I have to wait for 32 clock cycles (sampling the 32 bits in a clock cycle, do for 32 clocks. Please say a no to this..) !

Hope that question is clear and someone can respond. Really appreciate it.

Thank You,

Akhil

48 Replies