Lire écrire block memory (fpga)

Bonjour,
Est-il possible de lire/écrire sumultanément dans un block memory sous labview 2010 fpga ?
Dans le fichier joint, j'ai l'impression que ma block memory se rempli une fois, puis envoie continuellement ce que je lui ai envoyé la première fois même si je change entre temps le contenu de cette block memory (par l'intermédiaire de la FIFO.
Merci d'avance.
Résolu !
Accéder à la solution.
Pièces jointes :
blockmemory.JPG ‏106 KB

Bon, je me réponds
C'était bien le noeud de rétroaction qui restait bloqué à sa valeur max. Je l'ai donc changé par un registre à décalage qui se reinitialise à chaque fois que le signal est entièrement généré.

Similar Messages

  • Fpga: Re-Initialize Block Memory during Execution

    Hello,
    I am working on a project in labview fpga 2010, using the Spartan 3e board. At the present, I am using a large chunk of block memory in a VI and initialize it using an initialization VI that reads values from a spreadsheet and places them in the memory. It works for the first time, however I want to be able to re-initialize the memory during execution of the VI (i.e. I overwrite all the values in the table, then after a certain time I wish to reset them back to their initial values). Is there any way of accomplishing this on the FPGA without using double the memory and simply writing the changed values in a different location while leaving the originals unharmed? Thanks for your help

    I think the approach I would take to solve this would be as follows:
    Protect access to the block RAM with helper VIs that provide some level of locking (see http://zone.ni.com/devzone/cda/epd/p/id/6014 for some ideas)
    Lock the block RAM when you're about to change it, and the go ahead and push the new values to the FPGA, pull the old values to remember them on the host, or both
    Unlock when you've completed updating the RAM contents.
    Note that, depending on how large this block RAM is, this approach could be painfully slow (since the Spartan 3E boards don't support DMA, you'll have to create your own mechanism for pushing the data to the device)

  • FPGA Compilation fails with Xilinx "Block Memory Generator 8.1" configured with a Coefficient File

    Hello All,
    I have a SubVI that uses block memory, which has been created using Xilinx "Block Memory Generator 8.1". I have configured this block memory to be a "Single Port ROM", and I use a coefficient file to initialize the memory contents. In simulation mode, everything works as it should.
    Next, when I try to compile the top-level VI, I get the following error:
    http://www.cs.nyu.edu/~aditya/Compilation_Log_100.txt
    http://www.cs.nyu.edu/~aditya/Dividing (This is the coefficient file)
    Essentially, the compiler is looking at an ill-formed path to find the coefficient file.
    My environment:
    -- LabView 2014 f1 (32 Bit)
    -- FPGA module 2014
    -- RT Module 2014
    -- Xilinx Vivado 2013.4
    -- NI RIO Drivers 14
    -- Development Machine and Conpile Server: Windows 7 Professional, 32GB RAM
    -- Compile Worker running Linux, with Xilinx Compile tools installed
    Is this a bug, or am I doing something wrong? Thanks!
    Best,
    Aditya

    Next, I tried compiling on the windows machine itself. And here is the error that I get. (See attached image).
    Thanks!
    best,
    aditya
    Attachments:
    Capture.PNG ‏18 KB

  • How to interface AXI BRAM Controller with Block Memory generator in Single Port ROM(standalone mode)

    Hi,
    I initialized the block memory with coe file to use it as single port ROM in standalone mode. So, the data width of ROM is 32 bits and depth of 62000(this would need 16 bit address for reading).  AXI BRAM controller was instantiated in Block design and data width was set to 32.
    But upon synthesis, I get following error
    [BD 41-1228] Width mismatch when connecting input pin '/blk_mem_gen_0/addra'(16) to net 'axi_bram_ctrl_0_bram_addr_a'(14) - Only lower order bits will be connected, and other input bits of this pin will be left unconnected.
    So, the problem is BRAM controller 's interface which has bram_addr_a of only 14 bits. This is strange. I don't know how bram_addr_a width is determined?

    ,
    Are you sure you have 62000 x 32-bits in your coe and not just 62000 bytes? That could explain the 2-bit difference. 8-bit bytes versus 32-bit words.
    I tried this with Block Memory Generator 8.2 (Vivado 2015.1) and looks ok. Setting up a Single-Port ROM with 32 width and 62000 depth shows addres Width A: 16 in the Summary and the generated files show 16 bit address as well:
    -bisector

  • Vivado simulation - block memory module failure

    Hi,
    I'm simulating a project with my own IPs. one of the IPs has a block memory generator (8.2).
    The simulation stops after 35 ns and tck message:
    Block Memory Generator module TOP030815.design_1_i.golgol_0.U0.blk_mem_gen_GOLAY_inst.inst.native_mem_module.blk_mem_gen_v8_2_inst is using a behavioral model for simulation which will not precisely model memory collision behavior.
    Failure: ERROR:add_1 must be in range [-1,DEPTH-1]
    Time: 35 ns Iteration: 2
    $finish called at time : 35 ns : File "../../../project_1.srcs/sources_1/ipshared/ornim.medical/golgol_v1_0/a6138b30/hdl/golgol_v1_0.vhd" Line 93
    xsim: Time (s): cpu = 00:00:05 ; elapsed = 00:00:34 . Memory (MB): peak = 980.820 ; gain = 37.723
    INFO: [USF-XSim-96] XSim completed. Design snapshot 'TOP030815_behav' loaded.
    what is the problem? 
    Thanks,
    Danna

    Did you use the AXI4 interface for the block memory generator IP?
    This kind of failure is typically seen when master and slave AXI are not initialized. e.g. when the slave TVALID and TDATA are in an 'U' or 'X' state.
    You need to firstly examine the testbench (or the AXI bus drivers) and ensure they're all initialized.
    For instance,
      -- Data slave channel signals
      signal s_axis_data_tvalid              : std_logic := '0';  -- payload is valid
      signal s_axis_data_tready              : std_logic := '1';  -- slave is ready
      signal s_axis_data_tdata               : std_logic_vector(15 downto 0) := (others => '0');  -- data payload
      -- Data master channel signals
      signal m_axis_data_tvalid              : std_logic := '0';  -- payload is valid
      signal m_axis_data_tdata               : std_logic_vector(23 downto 0) := (others => '0');  -- data payload

  • Blocked Memory card!!

    My memory card is blocked and I don't know the password, I can't find any helplines with Nokia to help me redeem this problem, it would be much appreciated if anyone could answer to my problem as soon possbile.

    I suspect the card is toast, if you don't have/remember the password. If it was easy to overcome, it'd be a pretty useless security feature.

  • Effective GUI for monitoring blocks, memory, cpu,io in SQL server

    Hi,
    Is there any GUI/ tool to monitor SQL server 2008 R2 memory, CPU, IO, blocks?

    Hi,
    Is there any GUI/ tool to monitor SQL server 2008 R2 memory, CPU, IO, blocks?
    Simply run below query to see SQL Server memory utilization.
    select
    (physical_memory_in_use_kb/1024)Memory_usedby_Sqlserver_MB,
    (locked_page_allocations_kb/1024 )Locked_pages_used_Sqlserver_MB,
    (total_virtual_address_space_kb/1024 )Total_VAS_in_MB,
    process_physical_memory_low,
    process_virtual_memory_low
    from sys. dm_os_process_memory
    Schedule it through agent job and add database mail to send mail to you.
    I use Quest spotlight it does no gives memory utilization but shows Buffer cache hit ratio.Which is important parameter to mark.SQL utilizes memory heavily so any tool can flash message like memory utilization high which actually is not correct.I have seen
    it with many tools.
    For others you can go for Quest tool.
    Please mark this reply as the answer or vote as helpful, as appropriate, to make it useful for other readers

  • FPGA memory limitation

    Hi...
    I have tried to use more than 2 MB memory (using memory blocks) on FPGA. During compilation Xilinx tool chain generated error "AR #21955"....which is explained as memory limitation (in xilinx website). Can't we create memory blocks of more than 2 MB?? (or) all memory blocks size in a vi should not cross 2 MB??. I need to create arbitrary wave forms of milli/micro second precision for some minutes......so i need many no. of points to get required waveform....Is there any way to achive it....when I transfered each point from a RT vi (not on FPGA) it takes more time (to transfer data from RT vi to FPGA vi for every iteration).
    Thank you,
    Cheers,
    Ravinder

    The size of the memory blocks you can allocate in the project and use in your FPGA VI is limited by the size of the memory available on your FPGA device. This memory is in the range of 80-192 kB depending on which FPGA device you are using. Please check the data sheet or manual for your device for details.
    http://sine.ni.com/manuals/
    So unfortunately you will not be able to store the complete waveform on the FPGA device.
    Your best option is to stream the waveform from host memory to the FPGA device using DMA and generate the data from the DMA FIFO in the FPGA VI.  
    Message Edited by Christian L on 08-06-2008 06:24 PM
    Christian Loew, CLA
    Principal Systems Engineer, National Instruments
    Please tip your answer providers with kudos.
    Any attached Code is provided As Is. It has not been tested or validated as a product, for use in a deployed application or system,
    or for use in hazardous environments. You assume all risks for use of the Code and use of the Code is subject
    to the Sample Code License Terms which can be found at: http://ni.com/samplecodelicense

  • FPGA dynamic read of memory item

    I am using a flex rio PXIe-7961R/NI-6585.  When I try to complie my code i get
    An internal software error has occurred. Please contact National Instruments technical support at ni.com/support with the following information:
    Error -61175 occurred at
    Possible reason(s):
    LabVIEW FPGA: FPGA FIFO Node not wired with constant FPGA FIFO Name.
    =========================
    LabVIEW FPGA: FPGA FIFO Node not wired with constant FPGA FIFO Name.
    I am trying to read from block memory in a subvi that gets a memory name passed into it.  I get the error in the writeTxFifo vi. The tlmMessageBuilder is the calling the vi.  Any ideas on how to fix this problem?
    Attachments:
    tlmMessageBuilder.vi ‏56 KB
    writeTxFifo.vi ‏41 KB

    I just took another look at the VI you posted.
    The error message you're getting probably has nothing to do with the case structure. The error is a result of using a control as the source of your reference rather than a constant. 
    National Instruments
    FlexRIO Product Support Engineer

  • FPGA An internal software error has occurred. memory write

    Hi everybody
    We are encountering an error during compilation of an FPGA VI. It is probably related to our use of FPGA block memory. We have a non-timed while loop that is reading from an FPGA host-to-target FIFO and writing into block memory (inside a sub-VI called z_scan_write.vi). In another loop (this one is timed-loop), there is a subVI called we z_scan_read.vi, inside which we read from the block memory.
    Does anybody have an idea what is going wrong and how we could avoid this problem? Thank you very much in advance for any hint!
    The full error message is as follows. Note that it refers to the above-mentioned two subVIs z_scan_write.vi and z_scan_read.vi...
    An internal software error has occurred. Please contact National Instruments technical support at ni.com/support with the following information:
    nirviUIDToObject.vi<ERR>
    Error getting object reference for UID.
    All text parsed:
    <CodeGenErr>
    <ErrorCode>-61060</ErrorCode>
    <DynamicText><TreeLineInfo><LineInfo><ErrorInfoCallback><VIPath>C:\Program Files (x86)\National Instruments\LabVIEW 2010\vi.lib\rvi\ClientSDK\Core\ErrorReporting\Private\nirviPersistentNameToProjectItemLineInfoCallback.vi</VIPath>
    <Data>zIntensityTuples/{29C03A58-DC8D-4BC7-BAFA-66AFAE4E42D1}/%s</Data>
    </ErrorInfoCallback>
    </LineInfo>
    <TreeInfo><TreeID>ProjItem</TreeID>
    </TreeInfo>
    </TreeLineInfo>
    <TreeLineInfo><LineInfo><DiagramObject><VIPath>C:\NIFPGA\compilation\FPGAWrapperAK101_PXI-7813R_main_C0C9511F\MungedForFPGA\NI.Munge.z_scan_write.vi_FPGACompileCopy00000021.vi</VIPath>
    <UID>2747</UID>
    <ObjectName>Memory Write &apos;Memory Method Node&apos;</ObjectName>
    </DiagramObject>
    </LineInfo>
    <TreeInfo><ParentID>ProjItem</ParentID>
    </TreeInfo>
    </TreeLineInfo>
    <TreeLineInfo><LineInfo><DiagramObject><VIPath>C:\NIFPGA\compilation\FPGAWrapperAK101_PXI-7813R_main_C0C9511F\MungedForFPGA\NI.Munge.z_scan_read.vi_FPGACompileCopy00000001.vi</VIPath>
    <UID>194</UID>
    <ObjectName>Memory Read &apos;Memory Method Node&apos;</ObjectName>
    </DiagramObject>
    </LineInfo>
    <TreeInfo><ParentID>ProjItem</ParentID>
    </TreeInfo>
    </TreeLineInfo>
    </DynamicText>
    </CodeGenErr>
    <CodeGenErr>
    <ErrorCode>-61060</ErrorCode>
    <DynamicText><TreeLineInfo><LineInfo><ErrorInfoCallback><VIPath>C:\Program Files (x86)\National Instruments\LabVIEW 2010\vi.lib\rvi\ClientSDK\Core\ErrorReporting\Private\nirviPersistentNameToProjectItemLineInfoCallback.vi</VIPath>
    <Data>zIntensityTuples/{29C03A58-DC8D-4BC7-BAFA-66AFAE4E42D1}/%s</Data>
    </ErrorInfoCallback>
    </LineInfo>
    <TreeInfo><TreeID>ProjItem</TreeID>
    </TreeInfo>
    </TreeLineInfo>
    <TreeLineInfo><LineInfo><DiagramObject><VIPath>C:\NIFPGA\compilation\FPGAWrapperAK101_PXI-7813R_main_C0C9511F\MungedForFPGA\NI.Munge.z_scan_write.vi_FPGACompileCopy00000021.vi</VIPath>
    <UID>2747</UID>
    <ObjectName>Memory Write &apos;Memory Method Node&apos;</ObjectName>
    </DiagramObject>
    </LineInfo>
    <TreeInfo><ParentID>ProjItem</ParentID>
    </TreeInfo>
    </TreeLineInfo>
    <TreeLineInfo><LineInfo><DiagramObject><VIPath>C:\NIFPGA\compilation\FPGAWrapperAK101_PXI-7813R_main_C0C9511F\MungedForFPGA\NI.Munge.z_scan_read.vi_FPGACompileCopy00000001.vi</VIPath>
    <UID>194</UID>
    <ObjectName>Memory Read &apos;Memory Method Node&apos;</ObjectName>
    </DiagramObject>
    </LineInfo>
    <TreeInfo><ParentID>ProjItem</ParentID>
    </TreeInfo>
    </TreeLineInfo>
    </DynamicText>
    </CodeGenErr>
    <CodeGenErr>
    <ErrorCode>-61106</ErrorCode>
    <DynamicText><TreeLineInfo><TreeInfo><TreeID>1</TreeID>
    </TreeInfo>
    <LineInfo><VI><VIPath>C:\NIFPGA\compilation\FPGAWrapperAK101_PXI-7813R_main_C0C9511F\MungedForFPGA\NI.Munge.generate_DAC_voltages.vi_FPGACompileCopy00000001.vi</VIPath>
    <Name>NI.Munge.generate_DAC_voltages.vi_FPGACompileCopy00000001.vi</Name>
    </VI>
    </LineInfo>
    </TreeLineInfo>
    <TreeLineInfo><TreeInfo><TreeID>2</TreeID>
    <ParentID>1</ParentID>
    </TreeInfo>
    <LineInfo><DiagramObject><VIPath>C:\NIFPGA\compilation\FPGAWrapperAK101_PXI-7813R_main_C0C9511F\MungedForFPGA\NI.Munge.main.vi_FPGACompileCopy00000001.vi</VIPath>
    <UID>2803</UID>
    <ObjectName>SubVI: &apos;NI.Munge.generate_DAC_voltages.vi_FPGACompileCopy00000001.vi&apos;</ObjectName>
    </DiagramObject>
    </LineInfo>
    </TreeLineInfo>
    <TreeLineInfo><TreeInfo><TreeID>3</TreeID>
    <ParentID>1</ParentID>
    </TreeInfo>
    <LineInfo><DiagramObject><VIPath>C:\NIFPGA\compilation\FPGAWrapperAK101_PXI-7813R_main_C0C9511F\MungedForFPGA\NI.Munge.main.vi_FPGACompileCopy00000001.vi</VIPath>
    <UID>2816</UID>
    <ObjectName>SubVI: &apos;NI.Munge.generate_DAC_voltages.vi_FPGACompileCopy00000001.vi&apos;</ObjectName>
    </DiagramObject>
    </LineInfo>
    </TreeLineInfo>
    </DynamicText>
    </CodeGenErr>
    <CodeGenErr>
    <ErrorCode>-61106</ErrorCode>
    <DynamicText><TreeLineInfo><TreeInfo><TreeID>1</TreeID>
    </TreeInfo>
    <LineInfo><VI><VIPath>C:\NIFPGA\compilation\FPGAWrapperAK101_PXI-7813R_main_C0C9511F\MungedForFPGA\NI.Munge.generate_DAC_voltages.vi_FPGACompileCopy00000001.vi</VIPath>
    <Name>NI.Munge.generate_DAC_voltages.vi_FPGACompileCopy00000001.vi</Name>
    </VI>
    </LineInfo>
    </TreeLineInfo>
    <TreeLineInfo><TreeInfo><TreeID>2</TreeID>
    <ParentID>1</ParentID>
    </TreeInfo>
    <LineInfo><DiagramObject><VIPath>C:\NIFPGA\compilation\FPGAWrapperAK101_PXI-7813R_main_C0C9511F\MungedForFPGA\NI.Munge.main.vi_FPGACompileCopy00000001.vi</VIPath>
    <UID>2803</UID>
    <ObjectName>SubVI: &apos;NI.Munge.generate_DAC_voltages.vi_FPGACompileCopy00000001.vi&apos;</ObjectName>
    </DiagramObject>
    </LineInfo>
    </TreeLineInfo>
    <TreeLineInfo><TreeInfo><TreeID>3</TreeID>
    <ParentID>1</ParentID>
    </TreeInfo>
    <LineInfo><DiagramObject><VIPath>C:\NIFPGA\compilation\FPGAWrapperAK101_PXI-7813R_main_C0C9511F\MungedForFPGA\NI.Munge.main.vi_FPGACompileCopy00000001.vi</VIPath>
    <UID>2816</UID>
    <ObjectName>SubVI: &apos;NI.Munge.generate_DAC_voltages.vi_FPGACompileCopy00000001.vi&apos;</ObjectName>
    </DiagramObject>
    </LineInfo>
    </TreeLineInfo>
    </DynamicText>
    </CodeGenErr>
    <CodeGenErr>
    <ErrorCode>-61106</ErrorCode>
    <DynamicText><TreeLineInfo><TreeInfo><TreeID>1</TreeID>
    </TreeInfo>
    <LineInfo><VI><VIPath>C:\NIFPGA\compilation\FPGAWrapperAK101_PXI-7813R_main_C0C9511F\MungedForFPGA\NI.Munge.generate_DAC_voltages.vi_FPGACompileCopy00000001.vi</VIPath>
    <Name>NI.Munge.generate_DAC_voltages.vi_FPGACompileCopy00000001.vi</Name>
    </VI>
    </LineInfo>
    </TreeLineInfo>
    <TreeLineInfo><TreeInfo><TreeID>2</TreeID>
    <ParentID>1</ParentID>
    </TreeInfo>
    <LineInfo><DiagramObject><VIPath>C:\NIFPGA\compilation\FPGAWrapperAK101_PXI-7813R_main_C0C9511F\MungedForFPGA\NI.Munge.main.vi_FPGACompileCopy00000001.vi</VIPath>
    <UID>2803</UID>
    <ObjectName>SubVI: &apos;NI.Munge.generate_DAC_voltages.vi_FPGACompileCopy00000001.vi&apos;</ObjectName>
    </DiagramObject>
    </LineInfo>
    </TreeLineInfo>
    <TreeLineInfo><TreeInfo><TreeID>3</TreeID>
    <ParentID>1</ParentID>
    </TreeInfo>
    <LineInfo><DiagramObject><VIPath>C:\NIFPGA\compilation\FPGAWrapperAK101_PXI-7813R_main_C0C9511F\MungedForFPGA\NI.Munge.main.vi_FPGACompileCopy00000001.vi</VIPath>
    <UID>2816</UID>
    <ObjectName>SubVI: &apos;NI.Munge.generate_DAC_voltages.vi_FPGACompileCopy00000001.vi&apos;</ObjectName>
    </DiagramObject>
    </LineInfo>
    </TreeLineInfo>
    </DynamicText>
    </CodeGenErr>
    <CodeGenErr>
    <ErrorCode>-61106</ErrorCode>
    <DynamicText><TreeLineInfo><TreeInfo><TreeID>1</TreeID>
    </TreeInfo>
    <LineInfo><VI><VIPath>C:\NIFPGA\compilation\FPGAWrapperAK101_PXI-7813R_main_C0C9511F\MungedForFPGA\NI.Munge.generate_DAC_voltages.vi_FPGACompileCopy00000001.vi</VIPath>
    <Name>NI.Munge.generate_DAC_voltages.vi_FPGACompileCopy00000001.vi</Name>
    </VI>
    </LineInfo>
    </TreeLineInfo>
    <TreeLineInfo><TreeInfo><TreeID>2</TreeID>
    <ParentID>1</ParentID>
    </TreeInfo>
    <LineInfo><DiagramObject><VIPath>C:\NIFPGA\compilation\FPGAWrapperAK101_PXI-7813R_main_C0C9511F\MungedForFPGA\NI.Munge.main.vi_FPGACompileCopy00000001.vi</VIPath>
    <UID>2803</UID>
    <ObjectName>SubVI: &apos;NI.Munge.generate_DAC_voltages.vi_FPGACompileCopy00000001.vi&apos;</ObjectName>
    </DiagramObject>
    </LineInfo>
    </TreeLineInfo>
    <TreeLineInfo><TreeInfo><TreeID>3</TreeID>
    <ParentID>1</ParentID>
    </TreeInfo>
    <LineInfo><DiagramObject><VIPath>C:\NIFPGA\compilation\FPGAWrapperAK101_PXI-7813R_main_C0C9511F\MungedForFPGA\NI.Munge.main.vi_FPGACompileCopy00000001.vi</VIPath>
    <UID>2816</UID>
    <ObjectName>SubVI: &apos;NI.Munge.generate_DAC_voltages.vi_FPGACompileCopy00000001.vi&apos;</ObjectName>
    </DiagramObject>
    </LineInfo>
    </TreeLineInfo>
    </DynamicText>
    </CodeGenErr>
    Solved!
    Go to Solution.

    Removing the two subVIs that read from/write to the block memory doesn't avoid the error showing up during compilation. The error details are obviously different now; they don't refer to the two subVIs (mentioned in the previous post) anymore...
    An internal software error has occurred. Please contact National Instruments technical support at ni.com/support with the following information:
    nirviUIDToObject.vi<ERR>
    Error getting object reference for UID.
    All text parsed:
    <CodeGenErr>
    <ErrorCode>-61106</ErrorCode>
    <DynamicText><TreeLineInfo><TreeInfo><TreeID>1</TreeID>
    </TreeInfo>
    <LineInfo><VI><VIPath>C:\NIFPGA\compilation\FPGAWrapperAK101_PXI-7813R_main_C0C9511F\MungedForFPGA\NI.Munge.generate_DAC_voltages.vi_FPGACompileCopy00000001.vi</VIPath>
    <Name>NI.Munge.generate_DAC_voltages.vi_FPGACompileCopy00000001.vi</Name>
    </VI>
    </LineInfo>
    </TreeLineInfo>
    <TreeLineInfo><TreeInfo><TreeID>2</TreeID>
    <ParentID>1</ParentID>
    </TreeInfo>
    <LineInfo><DiagramObject><VIPath>C:\NIFPGA\compilation\FPGAWrapperAK101_PXI-7813R_main_C0C9511F\MungedForFPGA\NI.Munge.main.vi_FPGACompileCopy00000001.vi</VIPath>
    <UID>2735</UID>
    <ObjectName>SubVI: &apos;NI.Munge.generate_DAC_voltages.vi_FPGACompileCopy00000001.vi&apos;</ObjectName>
    </DiagramObject>
    </LineInfo>
    </TreeLineInfo>
    <TreeLineInfo><TreeInfo><TreeID>3</TreeID>
    <ParentID>1</ParentID>
    </TreeInfo>
    <LineInfo><DiagramObject><VIPath>C:\NIFPGA\compilation\FPGAWrapperAK101_PXI-7813R_main_C0C9511F\MungedForFPGA\NI.Munge.main.vi_FPGACompileCopy00000001.vi</VIPath>
    <UID>2748</UID>
    <ObjectName>SubVI: &apos;NI.Munge.generate_DAC_voltages.vi_FPGACompileCopy00000001.vi&apos;</ObjectName>
    </DiagramObject>
    </LineInfo>
    </TreeLineInfo>
    </DynamicText>
    </CodeGenErr>
    <CodeGenErr>
    <ErrorCode>-61106</ErrorCode>
    <DynamicText><TreeLineInfo><TreeInfo><TreeID>1</TreeID>
    </TreeInfo>
    <LineInfo><VI><VIPath>C:\NIFPGA\compilation\FPGAWrapperAK101_PXI-7813R_main_C0C9511F\MungedForFPGA\NI.Munge.generate_DAC_voltages.vi_FPGACompileCopy00000001.vi</VIPath>
    <Name>NI.Munge.generate_DAC_voltages.vi_FPGACompileCopy00000001.vi</Name>
    </VI>
    </LineInfo>
    </TreeLineInfo>
    <TreeLineInfo><TreeInfo><TreeID>2</TreeID>
    <ParentID>1</ParentID>
    </TreeInfo>
    <LineInfo><DiagramObject><VIPath>C:\NIFPGA\compilation\FPGAWrapperAK101_PXI-7813R_main_C0C9511F\MungedForFPGA\NI.Munge.main.vi_FPGACompileCopy00000001.vi</VIPath>
    <UID>2735</UID>
    <ObjectName>SubVI: &apos;NI.Munge.generate_DAC_voltages.vi_FPGACompileCopy00000001.vi&apos;</ObjectName>
    </DiagramObject>
    </LineInfo>
    </TreeLineInfo>
    <TreeLineInfo><TreeInfo><TreeID>3</TreeID>
    <ParentID>1</ParentID>
    </TreeInfo>
    <LineInfo><DiagramObject><VIPath>C:\NIFPGA\compilation\FPGAWrapperAK101_PXI-7813R_main_C0C9511F\MungedForFPGA\NI.Munge.main.vi_FPGACompileCopy00000001.vi</VIPath>
    <UID>2748</UID>
    <ObjectName>SubVI: &apos;NI.Munge.generate_DAC_voltages.vi_FPGACompileCopy00000001.vi&apos;</ObjectName>
    </DiagramObject>
    </LineInfo>
    </TreeLineInfo>
    </DynamicText>
    </CodeGenErr>
    <CodeGenErr>
    <ErrorCode>-61106</ErrorCode>
    <DynamicText><TreeLineInfo><TreeInfo><TreeID>1</TreeID>
    </TreeInfo>
    <LineInfo><VI><VIPath>C:\NIFPGA\compilation\FPGAWrapperAK101_PXI-7813R_main_C0C9511F\MungedForFPGA\NI.Munge.generate_DAC_voltages.vi_FPGACompileCopy00000001.vi</VIPath>
    <Name>NI.Munge.generate_DAC_voltages.vi_FPGACompileCopy00000001.vi</Name>
    </VI>
    </LineInfo>
    </TreeLineInfo>
    <TreeLineInfo><TreeInfo><TreeID>2</TreeID>
    <ParentID>1</ParentID>
    </TreeInfo>
    <LineInfo><DiagramObject><VIPath>C:\NIFPGA\compilation\FPGAWrapperAK101_PXI-7813R_main_C0C9511F\MungedForFPGA\NI.Munge.main.vi_FPGACompileCopy00000001.vi</VIPath>
    <UID>2735</UID>
    <ObjectName>SubVI: &apos;NI.Munge.generate_DAC_voltages.vi_FPGACompileCopy00000001.vi&apos;</ObjectName>
    </DiagramObject>
    </LineInfo>
    </TreeLineInfo>
    <TreeLineInfo><TreeInfo><TreeID>3</TreeID>
    <ParentID>1</ParentID>
    </TreeInfo>
    <LineInfo><DiagramObject><VIPath>C:\NIFPGA\compilation\FPGAWrapperAK101_PXI-7813R_main_C0C9511F\MungedForFPGA\NI.Munge.main.vi_FPGACompileCopy00000001.vi</VIPath>
    <UID>2748</UID>
    <ObjectName>SubVI: &apos;NI.Munge.generate_DAC_voltages.vi_FPGACompileCopy00000001.vi&apos;</ObjectName>
    </DiagramObject>
    </LineInfo>
    </TreeLineInfo>
    </DynamicText>
    </CodeGenErr>
    <CodeGenErr>
    <ErrorCode>-61106</ErrorCode>
    <DynamicText><TreeLineInfo><TreeInfo><TreeID>1</TreeID>
    </TreeInfo>
    <LineInfo><VI><VIPath>C:\NIFPGA\compilation\FPGAWrapperAK101_PXI-7813R_main_C0C9511F\MungedForFPGA\NI.Munge.generate_DAC_voltages.vi_FPGACompileCopy00000001.vi</VIPath>
    <Name>NI.Munge.generate_DAC_voltages.vi_FPGACompileCopy00000001.vi</Name>
    </VI>
    </LineInfo>
    </TreeLineInfo>
    <TreeLineInfo><TreeInfo><TreeID>2</TreeID>
    <ParentID>1</ParentID>
    </TreeInfo>
    <LineInfo><DiagramObject><VIPath>C:\NIFPGA\compilation\FPGAWrapperAK101_PXI-7813R_main_C0C9511F\MungedForFPGA\NI.Munge.main.vi_FPGACompileCopy00000001.vi</VIPath>
    <UID>2735</UID>
    <ObjectName>SubVI: &apos;NI.Munge.generate_DAC_voltages.vi_FPGACompileCopy00000001.vi&apos;</ObjectName>
    </DiagramObject>
    </LineInfo>
    </TreeLineInfo>
    <TreeLineInfo><TreeInfo><TreeID>3</TreeID>
    <ParentID>1</ParentID>
    </TreeInfo>
    <LineInfo><DiagramObject><VIPath>C:\NIFPGA\compilation\FPGAWrapperAK101_PXI-7813R_main_C0C9511F\MungedForFPGA\NI.Munge.main.vi_FPGACompileCopy00000001.vi</VIPath>
    <UID>2748</UID>
    <ObjectName>SubVI: &apos;NI.Munge.generate_DAC_voltages.vi_FPGACompileCopy00000001.vi&apos;</ObjectName>
    </DiagramObject>
    </LineInfo>
    </TreeLineInfo>
    </DynamicText>
    </CodeGenErr>

  • MyRIO memory, data transfer and clock rate

    Hi
    I am trying to do some computations on a previously obtained file sampled at 100Msps using myRIO module. I have some doubts regarding the same. There are mainly two doubts, one regarding data transfer and other regarding clock rate. 
    1. Currently, I access my file (size 50 MB) from my development computer hard drive in FPGA through DMA FIFO, taking one block consisting of around 5500 points at a time. I have been running the VI in emulation mode for the time being. I was able to transfer through DMA from host, but it is very slow (i can see each point being transferred!!). The timer connected in while loop in FPGA says 2 ticks for each loop, but the data transfer is taking long. There could be two reasons for this, one being that the serial cable used is the problem, the DMA happens fast but the update as seen to the user is slower, the second being that the timer is not recording the time for data trasfer. Which one could be the reason?
    If I put the file in the myRIO module, I will have to compile it each and every time, but does it behave the same way as I did before with dev PC(will the DMA transfer be faster)? And here too, do I need to put the file in the USB stick? My MAX says that there is 293 MB of primary disk free space in the module. I am not able to see this space at all. If I put my file in this memory, will the data transfer be faster? That is, can I use any static memory in the board (>50MB) to put my file? or can I use any data transfer method other than FIFO? This forum (http://forums.ni.com/t5/Academic-Hardware-Products-ELVIS/myRIO-Compile-Error/td-p/2709721/highlight/... discusses this issue, but I would like to know the speed of the transfer too. 
    2. The data in the file is sampled at 100Msps. The filter blocks inside FPGA ask to specify the FPGA clock rate and sampling rate, i created a 200MHz derived clock and mentioned the same, gave sampling rate as 100Msps, but the filter is giving zero results. Do these blocks work with derived clock rates? or is it the property of SCTL alone?
    Thanks a lot
    Arya

    Hi Sam
    Thanks for the quick reply. I will keep the terminology in mind. I am trying analyse the data file (each of the 5500 samples corresponds to a single frame of data)  by doing some intensive signal processing algorithms on each frame, then average the results and disply it.
    I tried putting the file on the RT target, both using a USB stick and using the RT target internal memory. I thought I will write back the delay time for each loop after the transfer has occured completely, to a text tile in the system. I ran the code my making an exe for both the USB stick and RT target internal memory methods; and compiling using the FPGA emulater in the dev PC VI. (A screenshot of the last method is attached, the same is used for both the other methods with minor modifications. )To my surprise, all three of them gave 13 ms as the delay. I certainly expect the transfer from RT internal memory faster than USB and the one from the dev PC to be the slowest. I will work more on the same and try to figure out why this is happening so.
    When I transferred the data file (50MB) into the RT flash memory, the MAX shows 50MB decrease in the free physical memory but only 20MB decrease in the primary disk free space. Why is this so? Could you please tell me the differences between them? I did not get any useful online resources when I searched.
    Meanwhile, the other doubt still persists, is it possible to run filter blocks with the derived clock rates? Can we specify clock rates like 200MHz and sampling rates like 100Msps in the filter configuration window? I tried, but obtained zero results.
    Thanks and regards
    Arya
    Attachments:
    Dev PC VI.PNG ‏33 KB
    FPGA VI.PNG ‏16 KB
    Delay text file.PNG ‏4 KB

  • Labview FPGA: Why not have local variable without indicator?

    In Labview FPGA, to transfer data among parallel loops, there are three ways or maybe more, local variable, global variable and block memory. The problem with local variable is that it needs an indicator along with, not like global variable. I was thinking why Labview doesn't make a kind of local variable not need indicator? I guess local variable itself doesn't cost resource much compared to global variable, however when it comes into indicator, it will cost more. Just an idea, though. I guess there is a reason NI doesn't do that. 

    As in Labview document, global variable can be used for transfer data among VIs, which local variable isn't capable of. 
    Global variable is not always a better solution. From my experience, it is still unclear among different compilations using local vs global in terms of resources. A thread here http://forums.ni.com/t5/LabVIEW/FPGA-global-variables-vs-front-panel-items/td-p/1407282 talks about that too.
    Stephen, is there any documents say that global makes timing worse? I didn't see this noticeable.

  • How to enlarge the memory in Microblaze for software applications?

    Dear, I wrote a C program, which after compiled generates a ELF binary with around 85KB. However, it is known that the Microblaze by default uses only 64KB. So my question is how can I enlarge the memory in Microblaze for software applications? The application does not use any kind of buffer or data that could be stored in another block memory. The size is larger due to the complexity of the algorithm in question. Is there any way to increase the default block memory in Microblaze? BR,Rodolfo Lossio

    lossiox wrote:
    Dear, I wrote a C program, which after compiled generates a ELF binary with around 85KB. However, it is known that the Microblaze by default uses only 64KB. So my question is how can I enlarge the memory in Microblaze for software applications? The application does not use any kind of buffer or data that could be stored in another block memory. The size is larger due to the complexity of the algorithm in question. Is there any way to increase the default block memory in Microblaze? BR,Rodolfo Lossio MicroBlaze uses the amount of BRAM that you specified when you created the system using the BSB. There is no "default." To change the amount of BRAM after creating the project: in the EDK, click on the "addresses" tab. Look for the instance of xps_bram_if_ctrl. Change its size using the drop-down combo box. Note that you can only do this in powers-of-two, so if you've already allocated 64 kB the next option is 128 kB. Make sure your FPGA has enough BRAMs to do this!

  • Image/Spri​te Display on FPGA

    Awhile back I created a system that used a FPGA to generate a VGA signal for low latency visual-stimulus display.  It originally just displayed squares, and was later upgraded to support rectangles and rotation.
    We would now like to display an actual image.  I think the only issue I'm running into is transferring the pixel-data array from the host (a realtime controller) to the FPGA (PXI-7813R).  I'd like to start with a 100x100 pixel image, which would require a 10,000 element array (of U8).  The transfer rate doesn't have to be fast; I'd transfer just a single image before a trial began and it would be displayed statically.
    What transfer mechanism would work for this?  The FPGA doesn't support statically-sized arrays this big.  BlockRAM only works within the context of the FPGA.  FIFO's are no good because the same data has to be present for many VGA clock cycles/frames.  DRAM isn't available on that FPGA (as far as I can tell).
    Any ideas?  If DRAM is the answer, I could probably swing a new FPGA purchase.  Thanks.
    -Joe

    You most definitely want to avoid that type of array in the FPGA... especially on the Front Panel for communication.
    You will want to use FIFOs here: I would transfer the data using FIFOs, and then read chunks of that data into Block Memory (not DRAM) on your FPGA target.
    Basically, use the "Get Number of Elements to Read" Fifo property, wait until you hit 10k elements or more, then read out 10k into your sprite buffer (again, you'll want to implement this using BRAM memory items). 
    I'm not sure what all you're doing on the FPGA, but that 7813 is pretty small and old... and if you want a bunch of these sprites, you could run out of room fairly quickly.
    Cheers!
    TJ G

  • Saving portion of data acquired from FPGA and visualize it on HOST RT Waveform Graph

    Hi all,
    i'm using FPGA to acquire data @1 Mhz from a Custom module in a SCTL an place it in a block memory Target Scoped FIFO1 Block memory of 1023 elements.
    What i want to do is acquire a known waveform and and visualize acquired data just to check if data is corrupted or if samples are correctly representing waveform.
    I'm reading data from FIFO1 and placing in a MEMORY in another SCTL to not affect 1st SCTL.
    My intention in this is to create a one shot reading operation to place 1023 elements from FIFO1 to MEMORY (attached pic).
    After this i have another while loop that perform communication with the HOST to read data from MEMORY.
    data type is FXP signed 24 bits word with 24 bit integer part. 
    I cannot visualize anything on the host waveform graph.. Can you tell me why?
    I've attached FPGA vi and HOST vi.
    Thanks in advance.
    Attachments:
    1.png ‏60 KB
    TEST acquired waveform.vi ‏170 KB
    Host Testing Acquired Data.vi ‏112 KB

    Hi Mariano,
    I need your complete project in order to review your application. Anywhere, you could try to run this example, that shows you the best practice in order to achieve data integrity ensuring no underflow/overflow events in data transfer.
    In RT VI you can try to use Type Cast function in order to obtain DBL values from FXP ones.
    Look @ this white paper that allows you to use floating point in FPGA side.
    I hope that the above informations will help you in solve your issue.
    Best Regards.
    CLA_CUP

Maybe you are looking for