Git Product home page Git Product logo

Comments (16)

czfpga avatar czfpga commented on June 10, 2024

Hi @Gogul-N,

Can you please let m know which part in this page is confusing you?

It sounds like you have 2 AFIs with similar designs, register offsets, etc. In this case, you will need to launch, at least, a f1.4xlarge instance and load the two AFIs to 2 slots mapped in the same group. For example, transmitter AFI to Slot0 and receiver AFI to Slot1. It's unclear which interface does the design take to "transmit" or "receive". Assuming you can "visualize" it to use the PCIS/PCIM interfaces, you can do P2P transmission targeting at the peer card's 128GB BAR4 space that's dedicated to the P2P.

Regarding to ARM processor design, I'm assuming these are soft logic. It can certainly be implemented in the CL region as long as there is enough space for it to fit. I hope this helps. Please let me know if you still have questions.

Thanks,

Chen

from aws-fpga.

Gogul-N avatar Gogul-N commented on June 10, 2024

Hi @czfpga (Chen),

I am working with f1.4xlarge instance only. I am confused here, consider that same AFI is loaded in both slots. And the register I want to configure is 0x30041001. Slot 0 has to be configured with the value 0x11001001 and the slot 1 has to be configured with the value 0x11000001. How can I achieve this?

Edit: Also I have a doubt. Which port of the ARM processor has to be connected to shell? i.e., PCIM(BAR4).?
Thank you.

from aws-fpga.

czfpga avatar czfpga commented on June 10, 2024

Hi @Gogul-N,

The two slots will have different BDFs. In this case, you will need to write different values to the same register address offset using different BDFs.

Regarding to the port, please note F1 does NOT expose any physical I/O pins to CL designs. Therefore, you must "virtualize" the ports by connecting them to the provided CL interface to emulate a I/O on the soft core. We have no visibility to your design. So you will need to make a decision on which need to be connected.

Thanks,

Chen

from aws-fpga.

Gogul-N avatar Gogul-N commented on June 10, 2024

Hi @czfpga (Chen),

Thank you for the reply. I will explore it regarding P2P using your guidelines.

Actually I have completed receiver validation using f1 instance. Now I have to connect the ARM processor to it. It is a softcore logic only. My doubt is, which BAR of Shell interface has to be connected to ARM processor soft logic? or with out shell interface can I talk to my CL through ARM or I have to talk to my CL through Shell to ARM to CL?

Thank you

from aws-fpga.

czfpga avatar czfpga commented on June 10, 2024

Hi @Gogul-N,

Interfacing with the soft core in CL have to be done through the shell. Depending on the type of interface, if the number of signals is small and they're very simple, like DIP switches, you can consider using the miscellaneous signals. If you need access to the core's control & status registers, you might consider using the OCL or BAR1 interface (AppPF, BAR0 or BAR1).

Thanks,

Chen

from aws-fpga.

Gogul-N avatar Gogul-N commented on June 10, 2024

Hi @czfpga (Chen)

Thank you so much for the quick reply. I will continue as per your suggestion.

Thank you.

from aws-fpga.

Gogul-N avatar Gogul-N commented on June 10, 2024

Hi @czfpga (Chen)

Blank diagram

This is my exact requirement. The signals A (10 bits) and B (10 bits) from Transmitter should be connected to A (10 bits) and B (10 bits) of the receiver. How can I achieve this? Also both transmitter and receiver will have ARM soft core connected to it.

Edit: I am using f1.4xlarge instance. I will take slot 0 as the transmitter and slot 1 as the receiver. As you suggested ARM soft core will be connected to BAR 0 or BAR 1. And here BAR 4 I am using it for configuring the registers in both transmitter and receiver.

Thank you.

from aws-fpga.

czfpga avatar czfpga commented on June 10, 2024

Hi @Gogul-N

Thank you for clarifying the application. As I mentioned before, F1 does NOT expose any physical I/O pins to CL designs.

So one option here is, if it's applicable, you can consider encapsulating data patterns on signal A/B to AXI-MM transactions and forwarding the transactions to the PCIM interface on the Tx instance. Rx will receive them from the PCIS interface and de-capsulate them before sending them to the receiver. However, this option might not work if A/B signals are expected to stream data all the time. F1 doesn't support any direct signal connection between slots.

Thanks,

Chen

from aws-fpga.

Gogul-N avatar Gogul-N commented on June 10, 2024

Hi @czfpga (Chen),

Shall I use AXI GPIO for transmitting the signals A, B as well as to receive it..? Actually, there will be continues data transmission. I mean, each clock cycle data will be changing.

Thank you.

from aws-fpga.

czfpga avatar czfpga commented on June 10, 2024

Hi @Gogul-N,

That will not work as you expect. All signals are handled by the Shell. And for P2P eventually all data will be encapsulated to PCIe packets in order to be transmitted to the P2P partner. There is NO direct GPIO connection between 2 slots.

Thanks,

Chen

from aws-fpga.

Gogul-N avatar Gogul-N commented on June 10, 2024

Hi @czfpga (Chen)

Thank you so much for your patience.

I have understood.

To communicate with the shell any how we need an axi interface from CL then how the signals A and B are connected to Shell without any interface to PCIM/PCIS. Here only I am confused a lot.

Thank you.

from aws-fpga.

AWScsaralay avatar AWScsaralay commented on June 10, 2024

Hi,

As Chen stated previously, there cannot be any direct connections between A/B ports of TX to A/B of RX blocks. One possible way you could do is as shown below:
image

However, transferring only 10-bits at a time between two FPGAs will be extremely slow due to PCIe overhead. If your goal is to synthesize a TX and RX block in the same FPGA then it might be simpler to just use a GPIO block or simple signaling/handshake between TX and RX blocks.

Please let us know if you have any questions.

Thanks!
Chakra

from aws-fpga.

Gogul-N avatar Gogul-N commented on June 10, 2024

Hi @AWScsaralay ,

Thank you so much for your deep explanation.
I try to synthesize both blocks in the same FPGA if there is enough space. If not, I will go with 2 FPGAs.

Thank you.

from aws-fpga.

Gogul-N avatar Gogul-N commented on June 10, 2024

Hi @czfpga and @AWScsaralay ,

Please look at the below image. How can I communicate with ARM soft IP through Shell. Kindly help me on this.

image

Edit: My CL has to be connected with ARM.

Thank you.

from aws-fpga.

AWScsaralay avatar AWScsaralay commented on June 10, 2024

Hello,

The arm core should be part of your CL design. The AWS Shell provides various AXI-L and AXI4 interface, so depending on how you would like to access arm core, you may need some kind of convertor logic.

For example, you may use Shell's PCIS AXI4 --> AXI4-to-AXI3 Convertor --> Arm core. But it really depends on customers intended functionality.

Please let us know if you need any additional details.

-Chakra

from aws-fpga.

Gogul-N avatar Gogul-N commented on June 10, 2024

Hi @AWScsaralay ,

Thank you for your reply. I will try and update here.

Thank you.

from aws-fpga.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.