Intel® FPGA University Program
University Program Material, Education Boards, and Laboratory Exercises
Intel Support hours are Monday-Fridays, 8am-5pm PST, except Holidays. Thanks to our community members who provide support during our down time or before we get to your questions. We appreciate you!

Need Forum Guidance? Click here
Search our FPGA Knowledge Articles here.
1087 Discussions

Why do I get the "Unable to bind (112)" error message?


I have to build a system with two NIOS2 processors, each of them linked to its corresponding on-chip memory block by means of the reset and exception vectors, and some PIO's. This configuration must then be put to work with two separate instances of Altera Monitor, each of them running its own C program independently. With version 12.0 of Quartus II Web Edition this was very easy, using SOPC Builder to ellaborate the two-processor system and loading the system on the Altera DE1 board. Then the first instance of Altera Monitor is launched, and the system is loaded by means of the PTF, SOF and JDI files issued by Quartus, taking care to use CPU1, MEMO1 and program1. The second instance of Altera Monitor is launched in a different folder, the system is loaded by means of the same above-mentioned PTF, SOF and JDI files issued by Quartus, taking care to use CPU2, MEMO2 and program2. Now both instances of Altera Monitor can run independently.

Due to objective circumstances, I had to completely reinstall Quartus II Web Edition, and now I used version 12.1 service pack1. It was quite an adventure, but finally I succeeded. This task now does not operate, which is a big problem that must be solved.

First of all, if I build the system with SOPC Builder and I use the PTF file in Altera Monitor, I cannot select the memory devices any more, thus I cannot complete the configuration...

errors to be reported Altera Monitor 01.jpg

... and I cannot even think of completing this task.

If I use the SOPCINFO file instead of the PTF file, then I can select CPU1, MEMO1 and program1 for the first instance, and CPU2, MEMO2 and program2 for the second instance. Both programs can be compiled correctly, but only one of them can be loaded and run, and the attempt to load the other one fails.

unable to bind 112 - program 1 right - program 2 wrong.jpg

OK, I disconnect the first instance and manage to load the second program, and now the attempt to load the first program fails.

unable to bind 112 - program 1 wrong - program 2 right.jpg

In both cases I get the error message "Unable to bind (112)".

I managed to rebuild the system by means of QSYS, in fresh new folders obviously, and tried again this task using the QSYS, SOF and JDI files... with the same negative results.

I reiterate, this task succeeded perfectly with version 12.0 using the PTF, SOF and JDI files. What happened, what does "Unable to bind (112)" mean and, most importantly, what can be done to solve this unpleasant situation?

0 Kudos
1 Reply

First of all you mentioned that the two CPUs are sharing the same PIO, you must use mutex IP to control this hared peripheral and any other shared peripherals. Then tell me how you want to boot the NIOS II? I mean, are you creating a jic file to combine the sof file with the two HEX files? I prefer this way as it will solve any confusion that might happen.

BTW you can download the "Multi-Core NIOS processor example" from the link below and see how to have 4 NIOS processors running together and sharing the same peripherals.