Nios® V/II Embedded Design Suite (EDS)
Support for Embedded Development Tools, Processors (SoCs and Nios® V/II processor), Embedded Development Suites (EDSs), Boot and Configuration, Operating Systems, C and C++
12589 Discussions

IS C2H available on the free web edition of Nios 2 12.1?

Altera_Forum
Honored Contributor II
992 Views

Can't seem to find the "Accelerate with the Nios II C2H Compiler" option when right clicking on a selection function name.. Thanks in advance.

0 Kudos
3 Replies
Altera_Forum
Honored Contributor II
308 Views

I think that C2H was only ever available as a paid for extra. 

I believe it has also been (more or less) discontinued - probably because it didn't actually meet the expectations of those who tried to use it.
0 Kudos
Altera_Forum
Honored Contributor II
308 Views

Thanks for the quick reply. Quite surprising to hear that it is kind of discontinued. I have just completed the BeMicroSDK tutorial that demonstrated an FIR sample in both SW and HW implementation, but can't quite understand the code in the hardware implementation. After googling found an older version (Quartus v6?) document showing the exact same C code but demonstrating the C2H. The following is the sample code from the BeMicroSDK tutorial for the HW implementation: 

 

IOWR_32DIRECT(ACCELERATOR_FIR_FIR_HW_MANAGED_INSTANCE_CPU_INTERFACE0_BASE, (4), (int) (input_data)); IOWR_32DIRECT(ACCELERATOR_FIR_FIR_HW_MANAGED_INSTANCE_CPU_INTERFACE0_BASE, (8), (int) (length)); IOWR_32DIRECT(ACCELERATOR_FIR_FIR_HW_MANAGED_INSTANCE_CPU_INTERFACE0_BASE, (12), (int) (output_data)); IOWR_32DIRECT(ACCELERATOR_FIR_FIR_HW_MANAGED_INSTANCE_CPU_INTERFACE0_BASE, (16), (int) (tap_length)); IOWR_32DIRECT(ACCELERATOR_FIR_FIR_HW_MANAGED_INSTANCE_CPU_INTERFACE0_BASE, (20), (int) (coefA)); IOWR_32DIRECT(ACCELERATOR_FIR_FIR_HW_MANAGED_INSTANCE_CPU_INTERFACE0_BASE, (24), (int) (coefB)); ...  

 

Is this code sample from the tutorial generated by C2H? How does it work?
0 Kudos
Altera_Forum
Honored Contributor II
308 Views

Judging by the names in those macros the hardware was generated by C2H. The C code used to generate the hardware accelerator can be somewhat confusing because that taps had to be written backwards to prevent the C2H compiler from optimizing everything away. If you are trying to look at the generated hardware files I wouldn't even bother, it's machine generated and it would be much quicker to look at a hand written implementation instead. 

 

I don't know anything about that BeMicro design but I'm guessing the designer either used the old legacy tools that C2H supports, or they managed to use the legacy tools and then shoehorned the accelerator into a Qsys system and managed the accelerator manually. The latter is time consuming and very error prone so I don't recommend that anyone even attempt such a thing..... it would take too long to describe what can go wrong but from what I've seen others trying to do it normally doesn't work.
0 Kudos
Reply