Intel® High Level Design
Support for Intel® High Level Synthesis Compiler, DSP Builder, OneAPI for Intel® FPGAs, Intel® FPGA SDK for OpenCL™
695 Discussions

oneAPI FPGA use RTL module with avalon ST

Jia3Xu
Employee
1,755 Views

I want to insert an RTL module into oneAPI, my RTL modules includes multiple avalon ST interface. how can I create a C model and what argument type should I choose correspond to the avalon ST interface?

0 Kudos
11 Replies
hareesh
Employee
1,722 Views

Hi,


I am working on this issue. I'll check and update you.


0 Kudos
hareesh
Employee
1,676 Views

Hi,


I think bellow video will help you. please watch it.


https://www.youtube.com/watch?v=1SdBctS4SKw


0 Kudos
Jia3Xu
Employee
1,663 Views

Hi hareesh,

 

I've watched that video, but I think the problem still exists.

 

1. the video is about OpenCL, not oneAPI, they are the same in most part, but some slightly different in some way like compiling etc.

 

2. the video is mostly the same as the document and of the oneAPI https://www.intel.com/content/www/us/en/docs/oneapi/programming-guide/2023-1/use-of-rtl-libraries-for-fpga.html and I've tried that, and also tried the corresponding sample provided in https://github.com/oneapi-src/oneAPI-samples/blob/master/DirectProgramming/C%2B%2BSYCL_FPGA/Tutorials/Tools/use_library/README.md
but both of them doesn't mention about how to implement an RTL module with multiple avalonST interfaces as an oneAPI library.

 

I did some attempt but it doesn't work.

the problem I stcuk is in the fpga_crossgen. 
the verilog declaration of my module is like this:

ip_handler_top ip_handler_top_inst (
// Interface: clock (clock end)
.clock ( ), // 1-bit clk input
// Interface: reset (reset end)
.resetn ( ), // 1-bit reset_n input
// Interface: s_axis_raw (avalon_streaming sink)
.s_axis_raw_data ( ), // 640-bit data input
.s_axis_raw_ready ( ), // 1-bit ready output
.s_axis_raw_valid ( ), // 1-bit valid input
// Interface: m_axis_arp (avalon_streaming source)
.m_axis_arp_data ( ), // 640-bit data output
.m_axis_arp_ready ( ), // 1-bit ready input
.m_axis_arp_valid ( ), // 1-bit valid output
// Interface: call (conduit sink)
.start ( ), // 1-bit valid input
.busy ( ), // 1-bit stall output
// Interface: return (conduit source)
.done ( ), // 1-bit valid output
.stall ( ), // 1-bit stall input
// Interface: myIpAddress (conduit sink)
.myIpAddress ( ) // 32-bit data input
);

first time I tried to set the avalone interface as input in the xml file:(snippet below)

      <INPUT port="s_axis_raw_data"  width="640" />
      <OUTPUT port="s_axis_raw_ready"  width="1" />
      <INPUT port="s_axis_raw_valid"  width="1" />
      <OUTPUT port="m_axis_arp_data"  width="640" />
      <INPUT port="m_axis_arp_ready"  width="1" />
      <OUTPUT port="m_axis_arp_valid"  width="1" />
<OUTPUT port="m_axis_icmp_data"  width="640" />

it return error says 


Errors in HDL component specification file:Error in './ip_handler_ip.xml', line 21
Expected element <OUTPUT> to appear exactly once.

 and if change the type to avalon, seems no luck to me. 

is there any possible way to do this, that is to use a RTL module with avalonST interface as a oneAPI library?

0 Kudos
hareesh
Employee
1,624 Views

Hi,

let me check. about this. i am trying to find an example design.


0 Kudos
hareesh
Employee
1,605 Views

Hi,


sorry for taking the time. actually, I am discussing it with the team. It may take some more time.


0 Kudos
hareesh
Employee
1,580 Views

Hi,


I can't find out the example design. so, we are trying to create a new design please give me some tome.


Thank you,

Hareesh B


0 Kudos
hareesh
Employee
1,543 Views

Hi,


https://www.intel.com/content/www/us/en/docs/oneapi/programming-guide/2023-2/use-of-rtl-libraries-for-fpga.html


please follow this page. this information only we have. i trying to find some more information.




0 Kudos
hareesh
Employee
1,516 Views

any update on your issue?


0 Kudos
Jia3Xu
Employee
1,508 Views

hi harresh,

 

This problem is basically from the website you provided. 

as illustrated in the document, I need to execute the following command
fpga_crossgen lib_rtl_spec.xml --emulation_model lib_rtl_model.cpp --source sycl --target sycl -o lib_rtl.o

and the error above occurs. 
could you please find some more information ? thanks a lot.

 

B.R

 

jia

 

0 Kudos
hareesh
Employee
1,482 Views

Hi,


https://github.com/oneapi-src/oneAPI-samples/tree/master/DirectProgramming/C%2B%2BSYCL_FPGA/Tutorials/Tools/experimental/platform_designer


please go through this page it has a complete tutorial of oneAPI. please check this.


Thank you,

Hareesh B


0 Kudos
hareesh
Employee
1,418 Views

As we do not receive any response from you on the previous question/reply/answer that we have provided. Please login to ‘https://supporttickets.intel.com’, view details of the desire request, and post a feed/response within the next 15 days to allow me to continue to support you. After 15 days, this thread will be transitioned to community support. The community users will be able to help you on your follow-up questions.


0 Kudos
Reply