On Thu, Jan 9, 2020 at 12:34 PM Davis Hoover <dhoover_at_geontech.com> wrote:
> From previous discussion you said " I was declaring a signal outside of the
> device, which seems incorrect. The platform attribute in the device
> element inside the HdlPlatform node is the only thing required to perform
> the mapping." which led me to believe you removed the spi_mosi platform
> signal?
>
I remember going back and forth, and I couldn't figure out why. I created
the signal in the platform because I kept getting this error in my empty
assembly when I didn't:
For file gen/empty_pluto_txrx_container.xml: in HdlContainerAssembly for
empty_pluto_txrx_container: External signal "spi_mosi" specified for signal
"ad9361_spi_SPI_DI" of instance "pfconfig" of worker "txrx" is not an
external signal of the assembly
My container is very simple for this:
<HdlContainer platform="pluto" config="txrx">
<Connection interconnect="zynq" device="ad9361_dac" port="in"/>
<Connection device="ad9361_adc" port="out" interconnect="zynq"/>
</HdlContainer>
Do I somehow need the container and/or the assembly to declare the same
signals that I told the platform would be there for mapping?
Thanks,
Brian
>
> ---------- Forwarded message ---------
> From: Brian Padalino <bpadalino_at_gmail.com>
> Date: Thu, Jan 9, 2020 at 11:44 AM
> Subject: Re: [Discuss OpenCPI] Platform Mapping HDL Pins
> To: Davis Hoover <dhoover_at_geontech.com>
> Cc: <discuss_at_lists.opencpi.org>
>
>
> On Wed, Jan 8, 2020 at 4:48 PM Brian Padalino <bpadalino_at_gmail.com> wrote:
>
> > On Wed, Jan 8, 2020 at 3:12 PM Davis Hoover <dhoover_at_geontech.com>
> wrote:
> >
> >> The matchstiq doesn't really have the proper device-specific constraints
> >> implemented anywhere, and relies on the same .xdc file for all of its pf
> >> configs. Either the E310 or the Zedboard/FMCOMMS is the closest to what
> >> you're looking for - each has a platform config which references a
> >> constraints file:
> >>
> >>
> https://github.com/opencpi/opencpi/tree/master/projects/assets/hdl/platforms/zed
> >>
> >> And yes, leaving the platform='' gets rid of the signal in the top
> level.
> >>
> >
> > Perfect - thank you.
> >
> > I'm currently struggling mapping the P0_D_11_6 and P0_D_5_0 ports of the
> > ad9361 to tx_data_out(11 downto 0) and rx_data_in(11 downto 0).
> >
> > I currently have the mapping as such:
> >
> > <signal name="P0_D_5_0(0)" platform="tx_data_out(0)"/>
> > <signal name="P0_D_5_0(1)" platform="tx_data_out(1)"/>
> > <signal name="P0_D_5_0(2)" platform="tx_data_out(2)"/>
> > <signal name="P0_D_5_0(3)" platform="tx_data_out(3)"/>
> > <signal name="P0_D_5_0(4)" platform="tx_data_out(4)"/>
> > <signal name="P0_D_5_0(5)" platform="tx_data_out(5)"/>
> > <signal name="P0_D_11_6(0)" platform="tx_data_out(6)"/>
> > <signal name="P0_D_11_6(1)" platform="tx_data_out(7)"/>
> > <signal name="P0_D_11_6(2)" platform="tx_data_out(8)"/>
> > <signal name="P0_D_11_6(3)" platform="tx_data_out(9)"/>
> > <signal name="P0_D_11_6(4)" platform="tx_data_out(10)"/>
> > <signal name="P0_D_11_6(5)" platform="tx_data_out(11)"/>
> >
> > Outside the device definition, I've placed:
> >
> > <signal output="tx_data_out" width="12" />
> >
> > I've created a pretty simple container with the following configuration:
> >
> > <HdlContainer platform="pluto" config="pluto_txrx">
> > <Connection interconnect="zynq" device="ad9361_dac" port="in"/>
> > <Connection device="ad9361_adc" port="out" interconnect="zynq"/>
> > </HdlContainer>
> >
> > And an empty assembly.
> >
> > When I try to build, I get the following error:
> >
> > For file gen/empty_pluto_pluto_txrx_pluto_txrx_container.xml: in
> > HdlContainerAssembly for empty_pluto_pluto_txrx_pluto_txrx_container:
> > External signal "tx_data_out(6)" specified for signal
> > "ad9361_data_sub_P0_D_11_6(0)" of instance "pfconfig" of worker
> > "pluto_txrx" is not an external signal of the assembly
> >
> > Does the platform reassignment need to be to a single signal and not an
> > array?
> >
>
> I got around this issue by not using an array for the output, and changing
> the XDC file.
>
> However, I get an issue with multiple drivers on the platform nets that I
> am mapping to. It seems that the port map for the specific configuration I
> have has in the txrx-impl.vhd file lists both the platform signal and the
> specific device signal.
>
> When I put it into an assembly, the port mapping will go something like
> this:
>
> spi_mosi => spi_mosi,
> ...
> ad9361_spi_SPI_DI => spi_mosi,
> ...
>
> So the output spi_mosi is being driven by 2 sources, which isn't right at
> all. I can post my HdlPlatform if it helps?
>
> If I map my platform => platform signals to platform => open instead, then
> things work as I expect.
>
> I am guessing it isn't expected that the platform signal should be listed
> in the txrx-impl.vhd file for my platform top level? Is that true?
>
> Thanks,
> Brian
>
> >
>
Received on Thu Jan 09 2020 - 20:47:25 CST