Jump to content

Spartan 3e transfer array elelement by elelement without DMA support


Recommended Posts

I am having trouble realising an FIR filter in Spartan 3E XUP board. I have succesfully compiled the FPGA VI generated from "Generate IP" (However, IP Builder sub menu is not existing this board in Project explorer as given in FPGA IP bulider tutorial). The FPGA Vi wil be running in SCTL receiving FXP data elements. But an array of data is required for the filtering to happen. How to do this without DMA FIFO as the board supports only Target scoped FIFO?

post-53001-0-32653000-1417145030_thumb.p

post-53001-0-62833400-1417148360_thumb.p

post-53001-0-03474800-1417148366_thumb.p

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Similar Content

    • By Taylorh140
      I posted This on the Idea exchange a few days ago. I have been wondering why no-one sees the need for constant generation at compile time. I think this would be especially useful in FPGA, but also for constants that need data from the build environment. Perhaps there is just a better way of doing these types of operations? Let me know what you think?
       
    • By Jean LINISA
      Bonjour,
      Je recherche pour une mission chez un équipementier aéronautique en région parisienne un(e) ingénieur(e) LabVIEW expérimenté(e).
      Compétences souhaitées : LabVIEW RT et LabVIEW FPGA.
      Une connaissance des bus de communication CAN, ARINC et AFDX ainsi que de TestStand serait fortement appreciée.
      Disponibilité ASAP
      Contactez-moi en MP ou par Mail : jlinisa@linsys-technologies.fr
      Jean LINISA
      Certified LabVIEW Architect Consultant
       
    • By PJM_labview
      Hi
      We have an application where we need to have a custom PCIe board transfer data to the PC using DMA.
      We are able to get this to work using NI-VISA Driver Wizard for PXI/PCI board.
      The recommended approach is to have VISA allocate memory on the host (PC) and have the PCIe board write to it (as seen below).

      While this approach works well, the memory allocated by VISA for this task is quite limited (~ around 1-2MB) and we would like to expand this to tens of MB.
      Note: The documentation (and help available on the web) regarding these advanced VISA function (for instance "VISA Move out 32" and "VISA Move In 32") is parse. If someone has some deep knowledge regarding theses, please feel free to share how we could allocate more memory.
      Since we are not able to allocate more memory using the VISA function at this time, we investigate doing the same operation using the LabVIEW Memory Manager Functions which allow us to allocate much larger memory block.
      Below is the resulting code.

      Unfortunately while we can validate that reading and writing to memory using this work well outside the context of DMA transfer, doing a DMA transfer do NOT work (although the board think it did and the computer is not crashing).
      We are wondering why this is not working and would welcome any feedback.
      Note: the DMA transfer implemented on the board requires contiguous memory for it to be successful. I believe that the LabVIEW Memory Manager Functions do allocate continuous memory, but correct me if I am wrong.
      To troubleshoot this, I did allocate memory using the LabVIEW memory manager function and try to read it back using VISA and I got a "wrong offset" error (Note: This test may not be significant)
      Another data point; while the documentation for DSNewPtr do not talk about DMA transfer, the one for DSNewAlignedHandle does. Experiment using LV memory manager Handles has not got us anywhere either.
      We would welcome any feedback regarding either approach and about the LabVIEW Memory Manager Functions capabilities in that use case.
      Thanks in advance.
      PJM
      Note: We are using LabVIEW 2014 if that matter at all.
       
    • By Fathy
      I have a system that composed of
      1- NI-cRIO9014
      2- Chassis (cRIO-9104)
      3- Three Mods. NI9215
       
      I use this system to capture 12 analog signals.
      What is the relation between sampling frequency defined by time delay in fpga.vi and the Requested number of Elements defined in FIFO?. 
      When I use a time delay of 40us and Requested number of Elements 8191, it produces wrong data.
      When I use a time delay of 40us and Requested number of Elements 65535, it produces correct data.
    • By Fathy
      I have a system that composed of
      1- NI-cRIO9014
      2- Chassis (cRIO-9104)
      3- Three Mods. NI9215
       
      The following are properties of my current FPGA
       
      Target Class: cRIO-9104
       
      FPGA Device Information:
         Family: Virtex-II
         Type: xc2v3000
         Speed Grade: -4
         Package: fg676
       
      Compiler Information:  
         Version: Xilinx 10.1
         Xilinx Options in Build Specifications: Supported
       
      Host Computer/FPGA Communication:
         Programmatic FPGA Interface Communication: Supported
         Interactive Front Panel Communication: Supported
         Number of Logical Interrupts: 32 
         DMA: 
            Number of DMA Channels: 3 
            Multi-Element Access on Target: Not supported
            Peer-to-Peer Streaming: Not supported
       
      Type: Target to Host - DMA
      Control logic: Slice Fabric 
       
       
      I am reading 12 Analog signals, I do not know what is the maximum value for Requested Number of Elements I can use?
      The General page help says a size of 2^M-1, What is M?
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.