Re: [Discuss OpenCPI] XML Code Generation Bug with time_demux

From: Josh Schindehette <jschindehette_at_geontech.com>
Date: Mon, 14 Jan 19 13:32:50 -0500

Thanks Aaron! Good to know.

On Mon, Jan 14, 2019 at 1:18 PM Marasco, Aaron <aaron.marasco_at_bia-boeing.com>
wrote:

> Josh,
>
>
> Thanks for the feedback! We are currently updating the training for 1.4,
> but unfortunately you are a few days ahead of us. Your fix is the correct
> one and the generator code was fixed back in November (pushed to GitHub in
> 0142c161a5cf00e9cbcc191a3bc20259010852cc as "Fixing and merging AV-4899
> multiple-output-ports-broken-in-unit-test-no-backpressure"). For the
> archives, it is included below.
>
>
> I will definitely add the warning to the slide deck; it is a bug that we
> just don't have the bandwidth to revisit right now.
>
>
> Thanks,
>
>
> Aaron
>
>
> <application done='file_write_from_Data_Out'>
> <instance component='ocpi.core.file_read' connect='time_demux_ms_Mux_In'>
> <property name='filename' value='../../gen/inputs/case00.00.Mux_In'/>
> <property name='messagesInFile' value='true'/>
> </instance>
> <instance component='ocpi.core.metadata_stressor'
> name='time_demux_ms_Mux_In' connect='time_demux'>
> </instance>
> <instance component='ocpi.training.time_demux' name='time_demux'/>
> <instance component='ocpi.core.backpressure'
> name='bp_time_demux_Data_Out' connect='file_write_from_Data_Out'>
> <property name='enable_select' value='true'/>
> </instance>
> <instance component='ocpi.core.file_write'
> name='file_write_from_Data_Out'/>
> <connection>
> <port instance='time_demux' name='Data_Out'/>
> <port instance='bp_time_demux_Data_Out' name='in'/>
> </connection>
> <instance component='ocpi.core.backpressure'
> name='bp_time_demux_Time_Out' connect='file_write_from_Time_Out'>
> <property name='enable_select' value='true'/>
> </instance>
> <instance component='ocpi.core.file_write'
> name='file_write_from_Time_Out'/>
> <connection>
> <port instance='time_demux' name='Time_Out'/>
> <port instance='bp_time_demux_Time_Out' name='in'/>
> </connection>
> </application>
>
>
> ------------------------------
> *From:* discuss <discuss-bounces_at_lists.opencpi.org> on behalf of Josh
> Schindehette <jschindehette_at_geontech.com>
> *Sent:* Monday, January 14, 2019 12:51:46 PM
> *To:* discuss_at_lists.opencpi.org
> *Subject:* [Discuss OpenCPI] XML Code Generation Bug with time_demux
>
> I attempted to build and run the Lab5 unit test from the "answer" training
> project at https://github.com/opencpi/training/tree/master/training. I
> got
> the following error:
>
> ```
> $ ocpidev run --verbose --view
> make: Entering directory `./training/training/components/time_demux.test'
> ======== Preparing for execution on available platforms with available
> built workers and assemblies for time_demux:
> Probing for available local platforms:
> Local platforms are: hdl-0-xsim rcc-0-centos7
> Generating execution scripts for each platform that can run.
> Generating run script for platform: centos7
> ======== Running and verifying test outputs on available platforms for
> time_demux:
> Performing test cases for ocpi.training.time_demux on platform centos7.
> Functions are: run verify view
> Executing case case00.00 using worker time_demux.rcc...
>
> OCPI_LIBRARY_PATH=../../../lib/rcc:../../../lib/ocl:../../gen/assemblies:$OCPI_CDK_DIR/$OCPI_TOOL_DIR/artifacts
> $OCPI_CDK_DIR/$OCPI_TOOL_DIR/bin/ocpirun -d -v -mtime_demux=rcc
> -wtime_demux=time_demux -Ptime_demux=centos7
> --sim-dir=case00.00.time_demux.rcc.simulation
> --dump-file=case00.00.time_demux.rcc.props
> -pfile_write_from_Data_Out=fileName=case00.00.time_demux.rcc.Data_Out.out
> -pfile_write_from_Time_Out=fileName=case00.00.time_demux.rcc.Time_Out.out
> ../../gen/applications/case00.00.xml
> Simulation HDL device lsim:xsim for xsim (UUID
> 7f145cbc-1823-11e9-b13d-a34c4663c689, dir
> case00.00.time_demux.rcc.simulation/xsim.xsim.111335.0, ticks 100000000)
> Available containers are: 0: lsim:xsim [model: hdl os: platform: xsim],
> 1: rcc0 [model: rcc os: linux platform: centos7]
> Exiting for exception: No viable candidates found for instance
> "file_write_from_Data_Out"
>
> real 0m7.472s
> user 0m6.677s
> sys 0m0.804s
> Execution FAILED(1) - see log in
> run/centos7/case00.00.time_demux.rcc.log
> make: *** [run] Error 1
> make: Leaving directory `./training/training/components/time_demux.test'
> ```
>
> The file time_demux.test/gen/applications/case00.00.xml had the following
> content:
>
> ```
> <application done='file_write_from_Data_Out'>
> <instance component='ocpi.core.file_read' connect='time_demux_ms_Mux_In'>
> <property name='filename' value='../../gen/inputs/case00.00.Mux_In'/>
> <property name='messagesInFile' value='true'/>
> </instance>
> <instance component='ocpi.core.metadata_stressor'
> name='time_demux_ms_Mux_In' connect='time_demux'>
> </instance>
> <instance component='ocpi.training.time_demux' name='time_demux'/>
> <instance component='ocpi.core.backpressure' name='bp_from_Data_Out'
> connect='file_write_from_Data_Out'>
> <property name='enable_select' value='true'/>
> </instance>
> <instance component='ocpi.core.file_write'
> name='file_write_from_Data_Out'/>
> <connection>
> <port instance='time_demux' name='Data_Out'/>
> <port instance='file_write_from_Data_Out' name='in'/>
> </connection>
> <instance component='ocpi.core.backpressure' name='bp_from_Time_Out'
> connect='file_write_from_Time_Out'>
> <property name='enable_select' value='true'/>
> </instance>
> <instance component='ocpi.core.file_write'
> name='file_write_from_Time_Out'/>
> <connection>
> <port instance='time_demux' name='Time_Out'/>
> <port instance='file_write_from_Time_Out' name='in'/>
> </connection>
> </application>
> ```
>
> The connections are attempting to reference "file_write_from_Data_Out" and
> "file_write_from_Time_Out" which are already connected to the
> "backpressure" components. These connections should instead reference the
> "backpressure" components "bp_from_Data_Out" and "bp_from_Time_Out",
> respectively.
>
> *** Side Note ***
>
> In Lab5, an incorrect port order for:
>
> <Port name="Data_Out" producer="true"
> protocol="iqstream_protocol"></Port>
> <Port name="Time_Out" producer="true"
> protocol="iqstream_with_sync_protocol"></Port>
>
> Caused the unit test execution to hang. This port ordering requirement was
> mentioned in the spec sheet PDF, but I missed it and spend quite a lot of
> time debugging the execution hang. It would be nice to mention this port
> order requirement in the lab presentation on page 6 (
>
> https://github.com/opencpi/training/blob/master/PDFs/presentations/Lab5_TimeDemux.pdf
> ).
>
>
> Thanks,
> Josh Schindehette
>


Received on Mon Jan 14 2019 - 18:32:50 CST

This archive was generated by hypermail 2.3.0 : Fri Jun 05 2026 - 08:45:25 CDT