Altera_Forum
Honored Contributor
14 years agoMulti NIOS2 system Custom instruction opcode reuse problem in QSys
I'm currently using Qsys version 11.0, Build 157.
Currently I have a system that consists of two NIOS2 processors and they are both connected to their own custom instruction component. As far as I can understand, the two NIOS2 processors should not be able to see the other's Custom Instruction component. If I set the OpCode Base to 0 for both custom instructions, I get these error when trying to generate the system in QSys: Info: cpu: Info: cpu: ERROR: Info: cpu: msb of '2' is less than lsb of '3' for custom instruction 'crc_0' (addr_base='0', addr_width='3', master_n_field_decode_sz='3' Error: cpu: Failed to generate module niosii_3c25_system_cpu "cpu" is the name of one of the NIOS with the other called "cpu_0". "cpu" is hooked up to custom instruction "CRC_0" and "cpu_0" is hooked to "CRC_1". The system also contains a DDR SDRAM Controller, JTAG UART, Interval Timer and Clock Source. There are two copies of each, one for each half of the system. None of the connections I made in QSys cross between the two halves and the two sides are connected in exactly the same way. This is sort of a test system based off the CRC Custom Instruction tutorial from the Nios 2 Custom Instruction User Guide. I essentially duplicated every component in the system. Currently the system has the opcode range for both custom instructions set to 0-7. If I change one custom instruction range to 8-15 the system will generate without problems. However, this workaround will not work if I have a larger number of custom instructions since I'll eventually go past the limit of 255 for opcodes. Is there any way to have two custom instructions in one system that use the same opcode range? I'm currently having a problem understanding why QSys currently has a problem with what I'm doing even though the components don't seem to connect to each other. Are they connected in a way I don't currently realize?