OpenCPI v2.0.1, platform_ad9361 devices, and Legacy FSK Application

BP
Brian Padalino
Fri, Jan 15, 2021 10:45 PM

I am utilizing the platform_ad9361 devices from the ocpi.platform project,
and I am trying to run the FSK application.  I am running into an issue
with the interfaces of the new platform data subs.

When I run the application, I get the following Exception being thrown:

Exception thrown: Protocols in connection are incompatible: port "out" of
instance "data_src_qadc" has protocol "ComplexShortWithMetadata" vs. port
"in" of instance "dc_offset_filter" has protocol "iqstream"

While I can understand a mismatch of protocol is definitely an error and
some adapter needs to be made, I am a bit confused since I have a bit file
that is loaded and has the devices connected together, so the HDL assembly
knew how to connect them together but the software doesn't understand how
they're connected?

Note that I get the same thing with the DAC side of things as well, just
swapped iqstream and ComplexShortWithMetadata.

Do I need an adapter in here somewhere?  How can I go from
ComplexShortWithMetadata over to iqstream and, subsequently, vice-versa?

Thanks,
Brian

I am utilizing the platform_ad9361 devices from the ocpi.platform project, and I am trying to run the FSK application. I am running into an issue with the interfaces of the new platform data subs. When I run the application, I get the following Exception being thrown: Exception thrown: Protocols in connection are incompatible: port "out" of instance "data_src_qadc" has protocol "ComplexShortWithMetadata" vs. port "in" of instance "dc_offset_filter" has protocol "iqstream" While I can understand a mismatch of protocol is definitely an error and some adapter needs to be made, I am a bit confused since I have a bit file that is loaded and has the devices connected together, so the HDL assembly knew how to connect them together but the software doesn't understand how they're connected? Note that I get the same thing with the DAC side of things as well, just swapped iqstream and ComplexShortWithMetadata. Do I need an adapter in here somewhere? How can I go from ComplexShortWithMetadata over to iqstream and, subsequently, vice-versa? Thanks, Brian
AO
Aaron Olivarez
Sat, Jan 16, 2021 3:01 AM

There are two adapter workers in projects/assets/components/misc_comps/ ;
one called iqstream_to_cswm and cswm_to_iqstream. cswm is short for
ComplexShortwithMetaData, these allow you to hook up legacy workers. A good
application to reference is fsk_dig_radio_ctrlr/fsk_modem_app.xml

Aaron

On Fri, Jan 15, 2021 at 4:46 PM Brian Padalino bpadalino@gmail.com wrote:

I am utilizing the platform_ad9361 devices from the ocpi.platform project,
and I am trying to run the FSK application.  I am running into an issue
with the interfaces of the new platform data subs.

When I run the application, I get the following Exception being thrown:

Exception thrown: Protocols in connection are incompatible: port "out" of
instance "data_src_qadc" has protocol "ComplexShortWithMetadata" vs. port
"in" of instance "dc_offset_filter" has protocol "iqstream"

While I can understand a mismatch of protocol is definitely an error and
some adapter needs to be made, I am a bit confused since I have a bit file
that is loaded and has the devices connected together, so the HDL assembly
knew how to connect them together but the software doesn't understand how
they're connected?

Note that I get the same thing with the DAC side of things as well, just
swapped iqstream and ComplexShortWithMetadata.

Do I need an adapter in here somewhere?  How can I go from
ComplexShortWithMetadata over to iqstream and, subsequently, vice-versa?

Thanks,
Brian

There are two adapter workers in projects/assets/components/misc_comps/ ; one called iqstream_to_cswm and cswm_to_iqstream. cswm is short for ComplexShortwithMetaData, these allow you to hook up legacy workers. A good application to reference is fsk_dig_radio_ctrlr/fsk_modem_app.xml Aaron On Fri, Jan 15, 2021 at 4:46 PM Brian Padalino <bpadalino@gmail.com> wrote: > I am utilizing the platform_ad9361 devices from the ocpi.platform project, > and I am trying to run the FSK application. I am running into an issue > with the interfaces of the new platform data subs. > > When I run the application, I get the following Exception being thrown: > > Exception thrown: Protocols in connection are incompatible: port "out" of > instance "data_src_qadc" has protocol "ComplexShortWithMetadata" vs. port > "in" of instance "dc_offset_filter" has protocol "iqstream" > > While I can understand a mismatch of protocol is definitely an error and > some adapter needs to be made, I am a bit confused since I have a bit file > that is loaded and has the devices connected together, so the HDL assembly > knew how to connect them together but the software doesn't understand how > they're connected? > > Note that I get the same thing with the DAC side of things as well, just > swapped iqstream and ComplexShortWithMetadata. > > Do I need an adapter in here somewhere? How can I go from > ComplexShortWithMetadata over to iqstream and, subsequently, vice-versa? > > Thanks, > Brian >
BP
Brian Padalino
Sat, Jan 16, 2021 6:01 PM

On Fri, Jan 15, 2021 at 10:01 PM Aaron Olivarez aaron@olivarez.info wrote:

There are two adapter workers in projects/assets/components/misc_comps/ ;
one called iqstream_to_cswm and cswm_to_iqstream. cswm is short for
ComplexShortwithMetaData, these allow you to hook up legacy workers. A good
application to reference is fsk_dig_radio_ctrlr/fsk_modem_app.xml

Thanks for the quick response.  I'll try using the cswm_to_iqstream and
iqstream_to_cswm components, but when I look at the example, they seem
commented out:

https://gitlab.com/opencpi/opencpi/-/blob/develop/projects/assets/applications/fsk_dig_radio_ctrlr/fsk_modem_app.xml#L121

There's also some DRC component (digital radio controller?) that is listed
but doesn't rely on the other slaves yet?  Lastly, this seems to be called
an Application and not an HdlAssembly?  Is that something new?  Should I be
calling them applications and not HdlAssemblies?

My main confusion, now, is how the HDL was created and a bit file generated
when the protocols weren't matched up.  I would imagine the mismatch at the
HDL level would cause tons of errors, but I only ran into an error when
running the actual FSK application on the host.  Is it normal that the bit
file generated can have two components with different protocols connected
to each other?

Sorry for my confusion, but I thought part of the point of OpenCPI was to
not run into these issues at runtime but more at build time to ensure
compatibility.

Thanks,
Brian

On Fri, Jan 15, 2021 at 10:01 PM Aaron Olivarez <aaron@olivarez.info> wrote: > There are two adapter workers in projects/assets/components/misc_comps/ ; > one called iqstream_to_cswm and cswm_to_iqstream. cswm is short for > ComplexShortwithMetaData, these allow you to hook up legacy workers. A good > application to reference is fsk_dig_radio_ctrlr/fsk_modem_app.xml > Thanks for the quick response. I'll try using the cswm_to_iqstream and iqstream_to_cswm components, but when I look at the example, they seem commented out: https://gitlab.com/opencpi/opencpi/-/blob/develop/projects/assets/applications/fsk_dig_radio_ctrlr/fsk_modem_app.xml#L121 There's also some DRC component (digital radio controller?) that is listed but doesn't rely on the other slaves yet? Lastly, this seems to be called an Application and not an HdlAssembly? Is that something new? Should I be calling them applications and not HdlAssemblies? My main confusion, now, is how the HDL was created and a bit file generated when the protocols weren't matched up. I would imagine the mismatch at the HDL level would cause tons of errors, but I only ran into an error when running the actual FSK application on the host. Is it normal that the bit file generated can have two components with different protocols connected to each other? Sorry for my confusion, but I thought part of the point of OpenCPI was to not run into these issues at runtime but more at build time to ensure compatibility. Thanks, Brian
BP
Brian Padalino
Sat, Jan 16, 2021 6:07 PM

On Sat, Jan 16, 2021 at 1:01 PM Brian Padalino bpadalino@gmail.com wrote:

On Fri, Jan 15, 2021 at 10:01 PM Aaron Olivarez aaron@olivarez.info
wrote:

There are two adapter workers in projects/assets/components/misc_comps/ ;
one called iqstream_to_cswm and cswm_to_iqstream. cswm is short for
ComplexShortwithMetaData, these allow you to hook up legacy workers. A good
application to reference is fsk_dig_radio_ctrlr/fsk_modem_app.xml

Thanks for the quick response.  I'll try using the cswm_to_iqstream and
iqstream_to_cswm components, but when I look at the example, they seem
commented out:

https://gitlab.com/opencpi/opencpi/-/blob/develop/projects/assets/applications/fsk_dig_radio_ctrlr/fsk_modem_app.xml#L121

There's also some DRC component (digital radio controller?) that is listed
but doesn't rely on the other slaves yet?  Lastly, this seems to be called
an Application and not an HdlAssembly?  Is that something new?  Should I be
calling them applications and not HdlAssemblies?

Sorry, I was all wrapped around.  I was looking at the application and not
the HdlAssembly which is here:

https://gitlab.com/opencpi/opencpi/-/blob/develop/projects/assets/hdl/assemblies/fsk_modem/fsk_modem.xml

Please disregard the Application questions.

Brian

On Sat, Jan 16, 2021 at 1:01 PM Brian Padalino <bpadalino@gmail.com> wrote: > On Fri, Jan 15, 2021 at 10:01 PM Aaron Olivarez <aaron@olivarez.info> > wrote: > >> There are two adapter workers in projects/assets/components/misc_comps/ ; >> one called iqstream_to_cswm and cswm_to_iqstream. cswm is short for >> ComplexShortwithMetaData, these allow you to hook up legacy workers. A good >> application to reference is fsk_dig_radio_ctrlr/fsk_modem_app.xml >> > > Thanks for the quick response. I'll try using the cswm_to_iqstream and > iqstream_to_cswm components, but when I look at the example, they seem > commented out: > > > https://gitlab.com/opencpi/opencpi/-/blob/develop/projects/assets/applications/fsk_dig_radio_ctrlr/fsk_modem_app.xml#L121 > > There's also some DRC component (digital radio controller?) that is listed > but doesn't rely on the other slaves yet? Lastly, this seems to be called > an Application and not an HdlAssembly? Is that something new? Should I be > calling them applications and not HdlAssemblies? > Sorry, I was all wrapped around. I was looking at the application and not the HdlAssembly which is here: https://gitlab.com/opencpi/opencpi/-/blob/develop/projects/assets/hdl/assemblies/fsk_modem/fsk_modem.xml Please disregard the Application questions. Brian >