Re: [Discuss OpenCPI] Platform Worker Connected to Pins

MA
Marasco, Aaron
Wed, Apr 24, 2019 4:33 PM

(I accidentally sent directly to Josh and not the list sorry - to populate the archives, here's the response.)


From: Marasco, Aaron
Sent: Tuesday, April 23, 2019 11:51
To: EXT-Schindehette, Joshua (Geon)
Subject: Re: [Discuss OpenCPI] Platform Worker Connected to Pins

Hi Josh... here's some feedback you can try:

Here's a couple of observations/recommendations:

  1. It looks like your platform worker has incorrect XML tags (e.g. HdlDevice). I would recommend using 'ocpidev create hdl platform foo' to create platform worker skeletons, and using an example XML (e.g. opencpi.git/projects/assets/hdl/platforms/zed/zed.xml ) for filling in functionality.
  2. Custom platform worker specs are not supported at this time, platform-spec must be used.
  3. Device pins are connected to the FPGA via device worker signals or platform worker signals.
  4. Device workers must be instanced in either
    a) a card XML (if the device exists on a card connected to the platform via a slot), e.g. opencpi.git/projects/assets/hdl/cards/spec/fmcomms_2_3_lpc.xml, or
    b) in the platform XML itself (if the device exists on the FPGA's PCB, e.g. opencpi.git/projects/assets/hdl/platforms/matchstiq_z1/matchstiq_z1.xml ).
  5. Device workers must be instanced in either:
    a) a platform config XML, e.g. opencpi.git/projects/assets/hdl/platforms/zed/cfg_1rx_1tx_fmcomms_2_3_lpc_lvds.xml, or
    b) a container XML, e.g. opencpi.git/projects/assets/hdl/assemblies/empty/cnt_hsmc_alst4_debug_header_breakout_card_hsmc_alst4_a.xml

Let us know if you have more questions or need more clarification


From: discuss discuss-bounces@lists.opencpi.org on behalf of Josh Schindehette jschindehette@geontech.com
Sent: Monday, April 22, 2019 15:00
To: discuss@lists.opencpi.org
Subject: [Discuss OpenCPI] Platform Worker Connected to Pins

Hello,

I'm trying to develop a Platform worker that connects to the pins of the
FPGA. I can build the platform worker and the platform ok, but when I try
to build a bitstream with the testbias assembly, the following error is
generated:

External signal "MY_PIN" specified for signal
"my_platform_worker_my_vhdl_port" of instance "pfconfig" of worker
"my_platform_config" is not an external signal of the assembly

In the Platform XML I listed the device like so:

<Device worker='my_platform_worker'> <Signal name='my_vhdl_port' platform='MY_PIN'/> ... </Device>

I created a Platform configuration which instantiates the worker, and I
added the configuration to the Makefile "Configurations":

<HdlConfig Language='vhdl'> <Device name='my_platform_worker'/> </HdlConfig>

The Platform worker has an XML configuration:

<HdlDevice language='vhdl' spec='my_platform_worker-spec'> <Signal input='my_vhdl_port' /> ... </HdlDevice>

The "my_platform_worker-spec" is EMPTY.

In the testbias assembly, I added a "container XML" with the following
code, and I added it to the Makefile's "Containers".

<HdlContainer only='zcu111' config='my_platform_config' default='1'/>

Any idea what is going wrong?

Thanks,
Josh Schindehette

(I accidentally sent directly to Josh and not the list sorry - to populate the archives, here's the response.) ________________________________ From: Marasco, Aaron Sent: Tuesday, April 23, 2019 11:51 To: EXT-Schindehette, Joshua (Geon) Subject: Re: [Discuss OpenCPI] Platform Worker Connected to Pins Hi Josh... here's some feedback you can try: Here's a couple of observations/recommendations: 1. It looks like your platform worker has incorrect XML tags (e.g. HdlDevice). I would recommend using 'ocpidev create hdl platform foo' to create platform worker skeletons, and using an example XML (e.g. opencpi.git/projects/assets/hdl/platforms/zed/zed.xml ) for filling in functionality. 2. Custom platform worker specs are not supported at this time, platform-spec must be used. 3. Device pins are connected to the FPGA via device worker signals or platform worker signals. 4. Device workers must be instanced in either a) a card XML (if the device exists on a card connected to the platform via a slot), e.g. opencpi.git/projects/assets/hdl/cards/spec/fmcomms_2_3_lpc.xml, or b) in the platform XML itself (if the device exists on the FPGA's PCB, e.g. opencpi.git/projects/assets/hdl/platforms/matchstiq_z1/matchstiq_z1.xml ). 5. Device workers must be instanced in either: a) a platform config XML, e.g. opencpi.git/projects/assets/hdl/platforms/zed/cfg_1rx_1tx_fmcomms_2_3_lpc_lvds.xml, or b) a container XML, e.g. opencpi.git/projects/assets/hdl/assemblies/empty/cnt_hsmc_alst4_debug_header_breakout_card_hsmc_alst4_a.xml Let us know if you have more questions or need more clarification ________________________________ From: discuss <discuss-bounces@lists.opencpi.org> on behalf of Josh Schindehette <jschindehette@geontech.com> Sent: Monday, April 22, 2019 15:00 To: discuss@lists.opencpi.org Subject: [Discuss OpenCPI] Platform Worker Connected to Pins Hello, I'm trying to develop a Platform worker that connects to the pins of the FPGA. I can build the platform worker and the platform ok, but when I try to build a bitstream with the testbias assembly, the following error is generated: External signal "MY_PIN" specified for signal "my_platform_worker_my_vhdl_port" of instance "pfconfig" of worker "my_platform_config" is not an external signal of the assembly In the Platform XML I listed the device like so: <Device worker='my_platform_worker'> <Signal name='my_vhdl_port' platform='MY_PIN'/> ... </Device> I created a Platform configuration which instantiates the worker, and I added the configuration to the Makefile "Configurations": <HdlConfig Language='vhdl'> <Device name='my_platform_worker'/> </HdlConfig> The Platform worker has an XML configuration: <HdlDevice language='vhdl' spec='my_platform_worker-spec'> <Signal input='my_vhdl_port' /> ... </HdlDevice> The "my_platform_worker-spec" is EMPTY. In the testbias assembly, I added a "container XML" with the following code, and I added it to the Makefile's "Containers". <HdlContainer only='zcu111' config='my_platform_config' default='1'/> Any idea what is going wrong? Thanks, Josh Schindehette