Nios® II Embedded Design Suite (EDS)
Support for Embedded Development Tools, Processors (SoCs and Nios® II processor), Embedded Development Suites (EDSs), Boot and Configuration, Operating Systems, C and C++
Announcements
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.
12410 Discussions

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

Altera_Forum
Honored Contributor II
783 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
99 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.
Altera_Forum
Honored Contributor II
99 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?
Altera_Forum
Honored Contributor II
99 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.
Reply