LabVIEW FPGA: Problem compiling look-up Table

Current versions of software:

LabVIEW 2014 SP1

LabVIEW FPGA 2014

Xilinx Vivado

I'm having a huge problem in trying to compile my LabVIEW FPGA code.

Some recall of the code:

It's all in a SCTL.

I am streaming in a FIFO DMA and comparing it with the values previously stored in the shift registers (which are initialized to 0 at the start of the loop) in the SCTL.

The results of the comparison are then piled into a U16 and loaded into a lookup table (I use the LUT - 1 d), and I'm so help this LUT to decide what value will be charged to travel to record for the next iteration of the loop, which, in any case, would be either the current values of the flow, or the post previous registry value.

(It's a triage loop)

I am able to run very well in simulation mode code, but when I try to compile, I get this error:

"The selected object has a built-in shift register that makes the output on a particular loop iteration correspond to the entries in the previous iteration."

Connect the outputs of the object directly to a minimum number of nodes of Feedback or uninitialized shift registers. You cannot connect the outputs to another object.

See using LabVIEW for more information on the objects with registers embedded offset. »

Someone at - it ideas why this happens, and what might be the possible solutions?

I'm tempted to break it down into separate loops, but I prefer not to because it is now a loop (and working in my simulation).

I found my problem.

Any time that a LUT is in a chain shift register, it cannot:

1. be part of a string of shift register that has a variable initialized

2. follow-up to no decisive structure, like a box structure.

I just moved the position of LUT and it works.

Tags: NI Software

Similar Questions

  • LabVIEW FPGA, 2015 compilation error

    I've recently switched to LabVIEW 2015 and I'm working on OR myRIO. So also installed myRIO 2015 bundled software. The problem I have is that the compilation of fpga fails within 10 seconds.

    and the target Xilinx journal report is empty

    The first time when I tried to compile on 2015 version, it failed and the message box that failed came alongwith the avast antivirus warning for malicious activity. I reported it as wrong and now I tried several times with avast shield disabled control, but the results are the same. While the version of labVIEW 2014 works very well.

    Now, I'm sure that there is something wrong with the installation of Vivado because this dll is part of it. The dll must be default in the2014_4\lib\win32.o directory C:\NIFPGA\programs\Vivado if you are using an operating system for 32-bit AND also in C:\NIFPGA\programs\Vivado2014_4\lib\win64.o If you use a 64-bit operating system. If the dll is not here, it is probably that the anti virus (I've never seen what happens to Xilinx but I have for other stuff).

    I'm emphasizing the 2014_4 because LabVIEW 2015 uses Vivado 2014_4 while 2014 LabVIEW uses Vivado 2013_4. Since you have also installed LabVIEW 2014, you must have 2013_4 as well and if it works, you will find the dll I just wanted you make sure you check the correct directory for the Vivado 2014_4.

    Download and install (reinstall or repair if already installed) 2015 LabVIEW FPGA Module Xilinx tools Vivado 2014.4. You can also use the DVD Setup if you have. It would be a good idea to do the installation with the disabled and even anti-virus try the first compilation the same. Try and let me know if the problem persists.

    Kind regards

  • Error starting compile step: make sure that a compatible version of Xilinx tools is installed in the location specified in the Setup from LabVIEW FPGA.

    Please help me for this problem "error starting compile step: make sure that a compatible version of Xilinx tools is installed in the location specified in the setup of LabVIEW FPGA.»

    Look for the error on the Web site of or or on the forums. Take a look at the following links:

    http://forums.NI.com/NI/board/message?board.ID=170&message.ID=381394&requireLogin=false

    http://forums.NI.com/NI/board/message?board.ID=170&message.ID=205754&requireLogin=false

  • The project-centric issue of peer to Peer with an external compiler in LabVIEW FPGA

    Hi all

    FPGA OR Version: 14.0

    I have an application developed in LabVIEW interfacing FPGAs developed in LabVIEW FPGA making of peer to peer Communications.

    Everything works fine.

    I try on the port to Visual Studio 2013 (on the same PC) and am able to communicate with the FPGA very well using the C API.

    However, I have a problem now with the help files or the peer supported external compiler peer.

    I get these errors:

    1. cannot open the file source 'PublicIncludes/nistreamCommon/prefix.h '.

    2. impossible opening the file source 'PublicIncludes/nistreamCommon/postfix.h '.

    in

    c:\Program Files (x 86) \National Instruments\Shared\ExternalCompilerSupport\C\include\nip2p.h

    in my project...

    I looked in the folder c:\Program Files (x 86) \National Instruments\Shared\ExternalCompilerSupport\C\include\ and the PublicIncludes\nistreamCommon folder does not exist.

    What I am doing wrong?

    Hello!

    It seems that you have worked with another engineer of Applications on this issue.  For the love of documents, the nip2p library is not supported in CVI. There has been cases where users were able to get this work to comment on the two header files.

    Thank you!

  • Compilation of LabVIEW FPGA on crash RT cRIO 9082

    Hello

    I developed a project of NI VeriStand FPGA (see Project.png) for a target of 9082RT cRIO (which contains 2 cRIO: 9205 & 9264).

    I have develop a piece of software code to run it on the chassis of RT cRIO 9082 because I never used this kind of front frame.

    The problem appears when I tried to compile the FPGA.

    Start the compilation, I see a pop-up (see Msg.bmp) and failed to compile (cf.). Details.bmp).

    With the following error, I'm sure that the failure is not because of my code.

    Can you help me?

    I found the problem that comes from the installation of 2012 more develop.

    When the FPGA module and 13.4 Xilinx tools is installed, the DLL 'LIBBz2.dll' (of the NIFPGA\...\Common\nt\Xilinx record 13.4 "is not copied in the following"C:\Windows\system32"folder.

    After I manually copied this dll to the "system32" folder, I restart labview and the compilation was successful.

    A. Kaszubiak

  • Download NI LabVIEW FPGA Module Xilinx Tools 10.1 2013 problems

    I'm trying to download the Xilinx tools 10.1 to use with a chassis 9113 in LV2011.  Based on this white paper, that the compiler below should work perfectly.  The problem is that I can't seem to download all the way.

    I can't seem to cross ~ 336MB using the standard or the downloader OR.  Any ideas?  Does anyone else have this problem?

    http://www.NI.com/download/LabVIEW-FPGA-Module-2013/4249/en/

    Thank you

    -PBD

    Well well... on the good side of things, you don't want 10.1 anyway!

    Virtex-5 LX50 FPGA<- requires xilinx="">

    10.1 is only for devices FPGA Virtex-II! (.. .after LabVIEW 2009 it was, just for all of you who read this know).

    so... try this link: http://www.ni.com/download/labview-fpga-module-2013/4248/en/

  • LabVIEW FPGA failure with compiler Xlinx?

    I'm in LabVIEW FPGA 8.6 with NOR-RIO 3.0.1 (to 8.6).  When I compile a simple program, I get the notorious:

    «Error starting compile step: make sure that a compatible version of Xilinx tools is installed in the location specified in the setup of LabVIEW FPGA.»

    I checked the FPGA compile server and I ran the utility fixTlink.VI with no improvement.  This produces two identical PC, neither one having a FPGA installed card.

    Any ideas?

    After further analysis, the problem was to be in our facility in LabVIEW FPGA 8.6.   Using the correct Installer of NEITHER solved the problem.

    This thread is now resolved.

  • LabVIEW FPGA CLIP node compilation error

    Hello NO,.

    I work on an application for my Single-Board RIO (sbRIO-9601) and faced with a compile error when I try to compile my FPGA personality via the ELEMENT node.  I have two .vhd files that I declare in my .xml file and all at this point works great.  I add the IP-level component to my project and then drag it to the VI I created under my FPGA.

    Within the FPGA personality, I essentially have to add some constants on the indicators and entries CLIP to my CLIP out and attempt to save/compile.  With this simple configuration, I met a compilation error (ERROR: MapLib:820 - symbol LUT4... see report filling for details on which signals were cut).  If I go back to my VI and delete indicators on the output (making the output pin of the CLIP connected to nothing), compiles fine.

    I've included screenshots, VHDL and LV project files.  What could be causing an indicator of the output of my VI to force compilation errors?

    Otherwise that it is attached to the output ELEMENT, a successful compilation...

    After that the output indicator comes with CLIP, compilation to fail...

    NEITHER sbRIO-9601
    LabVIEW 8.6.0
    LabVIEW FPGA
    Windows XP (32-bit, English)
    No conflicting background process (not Google desktop, etc.).

    Usually a "trimming" error gives to think that there are a few missing IP.  Often, a CLIP source file is missing or the path specified in the XML file is incorrect.

    In your case I believe that there is an error in the XML declaration:


      1.0
      RandomNumberGenerator
     
        urng_n11213_w36dp_t4_p89.vhd
        fifo2.vhd
     

    This indicates LV FPGA to expect a higher level entity called "RandomNumberGenerator" defined in one of two VHDL files.  However, I couldn't see this entity in one of two files.  If urng_n11213_w36dp_t4_p89 is the top-level entity, edit the XML to instead set the HDLName tag as follows:

    urng_n11213_w36dp_t4_p89

    Also - in your XML, you set the 'oBits' music VIDEO for output as a U32, however the VHDL port is defined as a vector of bits 89:

    oBits: out std_logic_vector (89-1 downto 0)

    These definitions must match and the maximum size of the vector CLIP IO is 32, so you have to break your oBits in three exits U32 output.  I have added the ports and changed your logic of assignment as follows:

    oBits1(31 downto 0)<= srcs(31="" downto="">
    oBits2(31 downto 0)<= srcs(63="" downto="">
    oBits3(31 downto 0)<= "0000000"="" &="" srcs(88="" downto="">

    Both of these changes resulted in a successful compilation.

    Note: The only compiler errors when you add the flag because otherwise your CUTTING code is optimized design.  If the IP is instantiated in a design, but nothing is connected to its output, it consumes all logic?  Most of the time the FPGA compiler is smart enough to get it out.

  • LabVIEW fpga 2012: problems

    Hello

    I'm trying to interface labview fpga to 2012 with Spartan E 500

    I am facing two problem

    a first in the figure below when I try to download Flash memory of Spartan E?

    I run vi on Spartan works well but when I download it the error appear

    also there is no "" "run when loading" "button which are available in a previous version of labview.

    Please help

    I don't have a LVFPGA version with the support of 3rd Spartan installed in front of me, so I'm working from memory here, but the option to run the VI on charge moved to the target property page (available on a right click on the target'Properties) of the standard build for the VI (as shown in your own message here)

  • Compilation of the variable results in LabVIEW FPGA

    Hello. I would ask why LabVIEW FPGA generates different results of compilation for the same code. When I compile several times my code, the maximum speed and total changes bitfile slices generated according to the compilation, but I does not alter with the FPGA VI. In addition, is the precise relationship of compilation? Thank you

    It's normal. The FPGA compiler starts to place pieces of code on the FPGA somewhat randomly and adjusts them until either the design adapts and responds to the criteria of the moment or there that the compiler determines that it cannot fit all the code and meet time constraints. The outputs that the FPGA VI generates when run will always be the same.

  • problems with the project of example LabVIEW FPGA

    I'm trying to adapt the example project record on CompactRIO and LabVIEW FPGA Waveform Acquisition for my hardware, but can't seem to do things. I'm just following the instructions in the tutorial, but can not make sense out of section adapt this example to your hardware project, in particular, the instruction to "Drag FPGA Main.vi in the Project Explorer in the Open FPGA VI service window reference VI." Can someone explain on what is supposed to happen here? BTW, the target hardware that I'm doing this work on is a cRIO-9068 with some C series i/o modules.

    Finally, I came across the answer. For anyone else who may encounter this problem, the attached screenshot is worth a thousand words.

  • Funny problem with generating xml looks like table.

    Hello
    I have the following problem:

    1.I has table:
    CREATE TABLE DESCRIPTION
    (
    NUMBER OF DESC_ID
    SK VARCHAR2 (500 BYTE),
    OF VARCHAR2 (500 BYTE).
    EN VARCHAR2 (500 BYTE)
    )

    2.I need to create an xml looks like:

    < "NODE1" >
    < "NODE2" >
    data column < /de > < >
    column < www.tourocloudbackup.com > < en > data
    given < sk > column < /sk > sk
    < / "NODE2" >
    < / "NODE1 >"

    where "PAR1" and "PAR2" is CASE-SENSITIVE SETTING of RESPECT.

    3. I create for that to be the next function:


    CREATE or REPLACE FUNCTION F_CREATE_XML_DESC (inDescId, NUMBER of)
    inNode1 VARCHAR2,
    inNode2 VARCHAR2)
    RETURN OF XMLTYPE
    IS
    tmpVar NUMBER;
    /******************************************************************************


    ******************************************************************************/
    vXml XMLTYPE.

    CTX DBMS_XMLGEN.ctxHandle;
    vColumnList VARCHAR2 (1000);
    vXmlStr VARCHAR2 (1000);

    BEGIN


    If (inDescId is not null) then
    SELECT SUBSTR (list) of LENGTH (list) - 1, 1,
    IN vColumnList
    FROM (SELECT (LISTAGG (COLUMN_NAME |))) ',')
    TO WITHIN THE GROUP (ORDER OF COLUMN_NAME))
    As a list
    Of user_tab_columns
    WHERE table_name = 'DESCRIPTION' AND COLUMN_NAME <>'DESC_ID');


    CTX: =.
    DBMS_XMLGEN.
    NewContext)
    "select".
    || vColumnList
    || "description d where d.desc_id ='".
    || inDescId);

    on the other
    -yesterday to return null if DESC_ID is null
    Returns a null value.

    SELECT SUBSTR (list) of LENGTH (list) - 1, 1,
    IN vColumnList
    FROM (SELECT (LISTAGG ("'"' |))) "ACE" | COLUMN_NAME | ' ,')
    TO WITHIN THE GROUP (ORDER OF COLUMN_NAME))
    As a list
    Of user_tab_columns
    WHERE table_name = 'DESCRIPTION' AND COLUMN_NAME <>'DESC_ID');

    CTX: =.
    DBMS_XMLGEN.
    NewContext)
    "select".
    || vColumnList
    || "of the double");


    end if;

    -DBMS_XMLGEN.setRowSetTag (ctx, inNode1);
    DBMS_XMLGEN.setRowTag (ctx, 'NŒUD');
    DBMS_XMLGEN. SETNULLHANDLING (ctx, 2);

    -I DON'T KNOW WHY THIS DOESN'T WORK!
    -DBMS_XMLGEN.useLowerCaseTagNames ();


    vXmlStr: low = (DBMS_XMLGEN.getxml (ctx));

    DBMS_XMLGEN. CLOSECONTEXT (ctx);

    If (inNode1 is not null and)
    inNode2 is not null) then

    Select xmlelement (EVALNAME (inNode1),
    XmlElement (EVALNAME (inNode2),
    Extract (XmlType (vXMLStr), '//node/*')))
    in vXml
    Double;
    end if;

    If (inNode1 is null and)
    inNode2 is not null) then

    Select xmlelement (EVALNAME (inNode2),
    Extract (XmlType (vXMLStr), '//node/*'))
    in vXml
    Double;
    end if;


    If (inNode1 is not null and)
    inNode2 is null) then

    Select xmlelement (EVALNAME (inNode1),
    Extract (XmlType (vXMLStr), '//node/*'))
    in vXml
    Double;
    end if;



    VXML BACK;
    END F_CREATE_XML_DESC;
    /


    4 Requriments:
    If I add the new column to the table Description the XML should include this new column.
    Problem is a RESPECT for the CASE, the table tags MUST be LOWER case, and of course without column DESC_ID, BUT the two NODE1 and NODE2 SHOULD be case-sensitive.

    5. function whihch I cooked up in my opinion is not fast enough. IS THERE a SOLUTION to make this better? Help, please.

    6 DB: Oracle 11 g R2.

    Edited by: kozand 2011-06-26 05:06

    Hello

    -I DON'T KNOW WHY THIS DOESN'T WORK!
    -DBMS_XMLGEN.useLowerCaseTagNames ();

    I don't see in the package specification.

    I'm not a big fan of this but you can try the following solutions:

    SQL> DECLARE
      2
      3   inNode1      varchar2(30) := 'NODE1';
      4   inNode2      varchar2(30) := 'NODE2';
      5   inDescId     number := 1;
      6
      7   colList      varchar2(4000);
      8
      9   xml_data     xmltype;
     10   doc          clob;
     11
     12  BEGIN
     13
     14   SELECT listagg(column_name || ' as "' || lower(column_name) || '"', ',') within group (order by column_name)
     15   INTO colList
     16   FROM user_tab_columns
     17   WHERE table_name = 'DESCRIPTION'
     18   AND column_name != 'DESC_ID';
     19
     20   EXECUTE IMMEDIATE 'SELECT XMLForest(' || colList || ') FROM description WHERE desc_id = :1'
     21   INTO xml_data
     22   USING inDescId;
     23
     24   SELECT nvl2( inNode1
     25              , XMLElement(evalname(inNode1), xml_data)
     26              , xml_data )
     27   INTO xml_data
     28   FROM (
     29     SELECT nvl2( inNode2
     30                , XMLElement(evalname(inNode2), xml_data)
     31                , xml_data ) as xml_data
     32     FROM dual
     33   );
     34
     35   dbms_output.put_line(xml_data.getclobval());
     36
     37  END;
     38  /
    
    data from column dedata from column endata from column sk
    
    PL/SQL procedure successfully completed
     
    

    Or a single XQuery:

    SQL> show user
    User is "dev"
    
    SQL>
    SQL> SELECT XMLSerialize(document
      2    XMLQuery(
      3      'let $data :=
      4         for $i in fn:collection("oradb:/DEV/DESCRIPTION")/ROW
      5         where $i/DESC_ID = $id
      6         return
      7           for $j in $i/child::*
      8           let $node-name := name($j)
      9           where $node-name != "DESC_ID"
     10           return element {fn:lower-case($node-name)} {fn:data($j)}
     11       let $node2 := if ($inNode2) then element {$inNode2} {$data} else ($data)
     12       return if ($inNode1) then element {$inNode1} {$node2} else ($node2)'
     13      passing cast(1 as number) as "id"
     14            , 'NODE1' as "inNode1"
     15            , 'NODE2' as "inNode2"
     16      returning content
     17    )
     18    as clob indent
     19  )
     20  FROM dual
     21  ;
    
    XMLSERIALIZE(DOCUMENTXMLQUERY(
    --------------------------------------------------------------------------------
    
      
        data from column sk
        data from column de
        data from column en
      
    
     
    
  • Internal software error of LabVIEW FPGA Module - 61499

    I get the error next (in a pop-up window) in the phase of sompilation for the FPGA target with a vhdl IP. This error continues to occur even after restart LabVIEW and the PC. Someone at - it solved is this kind of problem before without having to re - install the software?

    Here is the error information:

    Error-61499 occurred at niFpgaXml_GetValue_String.vi<><><><>

    Possible reasons:

    LabVIEW FPGA: An internal software error in the LabVIEW FPGA Module has occurred. Please contact National Instruments technical support on ni.com/support.

    Additional information: lack the tag required XML (/ CompileServerList)

    As a first step, I can compile the vhdl IP node successfully. However, once when I'm running a VI with the FPGA, the bureau stop working. After that I restarted by force, it cannot perform the build of a vhdl IP node. Even without connecing to the jury of LabView, he pointed out errors before the end of the sompilation.

    Interestingly, the screw which also includes nodes IP vhdl that I properly compiled before, I can still run the VI to the Commission and it works correctly.

    Thank you

    Looks like your ActiveJobsList somehow has been corrupted. I saw occur when computers are hard stop or blue screen during compilation. I don't have that LabVIEW 2014 installed on my machine, so your path will be a little different, and the file extension will be a .txt or .xml instead of .json, but try this:

    Move the file "C:\Program Files (x 86) \National Instruments\LabVIEW 2014\vi.lib\rvi\CDR\niFpgaActiveJobList.json" (or your equivalent) out of the above directory (back it upward and delete essentially) and restart LabVIEW. Must regenerate the file and resolve the problem.

  • Model a block synchronous dual-port RAM with LabVIEW FPGA

    This question caught my attention recently.

    I am trying to model a particular design element called "RAMB4_S8_S8" with the LabVIEW FPGA module. This element is a block synchronous dual-port RAM allowing simultaneous access to two ports independently from each other. That being said, a port can perform read/write operation to this RAM while at the same time, the other port might be able to do the same thing. There are two opportunities of possible port conflict, however. The first is when both ports are trying to write to the same memory cell. The other scenario is when a port writes in a cell memory while at the same time the other port reads from it. Other than that, everything should be a legitimate operation.

    In order to reproduce this I select memory block that is integrated into my FPGA target. An interface is configured to be the playback mode, and the other is set to write fashion. For the option of arbitration, I let the two interfaces to be "arbitrate if several applicants only. Then I got a compiler error when I tried to run my FPGA code for this model in a SCTL. The error message is something like "several objects to request access to a resource through a resource configured with option interface" arbitrate if several applicants only ", which is supported only in the single-cycle Timed loop if there is only a single applicant by interface.

    This error goes away if I replace the SCTL with a simple while loop, but not what I would like to implement. So I wonder if there is a better solution to this problem, or is it just the limitation of the LabVIEW FPGA module.

    Thank you.

    Yes, you can use a form of conduct to perform the operations you want in the generations clock cycles, but all the code is inside a single SCTL. Basically, read the first address and storing in a register in a single cycle and then read the second address in the second clock cycle. This would allow you to two readings of valid memory every clock cycle 2. I have included a crude extract to illustrate the concept. The case selectors are identical with address A being connected to the memory in the true case, B in the case of fake address. Your biggest model memory dual port will be intact, but it will operate at 1/2 rate.

    Take a look at the white paper that provides more details on the construction of memory:

    Data on a target FPGAS (FPGA Module)

    The ball on the memory block indicates that memory block double port cannot be applied in a configuration of reading, which is a double ROM. access read/write port must be imitated with custom code.

  • Integration of IP node evil in LabVIEW FPGA

    Hi all

    I am having trouble with the integration of LabVIEW FPGA IP option and was hoping someone could shed some light here.

    I use a simple VHDL code for a bit, 2: 1 MUX in order to familiarize themselves with the integration of IP for the LabVIEW FPGA.

    In the IP properties of the context node, the syntax checking integration says:

    ERROR: HDLParsers:813 - "C:/NIFPGA/iptemp/ipin482231194540D2B0CC68A8AF0F43AAED/TwoToOneOneBitMux.vhd", line 15. Enumerated value U is absent from the selection.

    but I'm still able to compile. Once the node is made and connected, I get the arrow to run the VI but when I do, I get a build errors in Code Pop up that says:

    The selected object is only supported inside the single-cycle Timed loop.

    Place a single cycle timed loop around the object.

     

    The selected object in question is my IP integration node.

    I add a loop timed to the node, but even if I am able to run the VI, it nothing happens. the output does not illuminate regardless of the configuration.

    I would say that I tried everything, but I can't imagine would be the problem might be at this point given that everything compiles and the code is so simple.

    I have attached the VI both VHDL code. Please let me know if any problems occur following different boards of the FPGA.

    Would be really grateful for the help,

    Yusif Nurizade

    Hey, Yusif,.

    Looks that you enter in the loop timed Cycle and never, leave while the indicator of Output never actually is updated. Try a real constant of wiring to the break of the SCTL condition. Otherwise, you could spend all controls/indicators inside the SCTL and get rid of the outside while loop. You can race in the calendar of meeting bad in larger designs without pipeling or by optimizing the code if you take this approach, however.

Maybe you are looking for

  • How to export to maintain the extension of the PDF

    When I export to PDF of Pages (5.6.2), there is no option to show or hide the extension of the Ang, given that in many applications. But he still has the name of the file: BUT, when I see the file in the Finder, the extension is hidden, and then I ha

  • remove a shared reminders list

    Hello I saw a list of reminders with 3 other people and I wish to remove it. Unlike other lists, whether on the reminder application or in iCloud, I can not delete this list, or remove users from this list. The only action I have is members 'consulta

  • Tecra 9000 USB port failure

    Hello Helpers,My Tecra 9000 IGH with Windows XP model has two usb ports dead and taken from mouse. From what I've read, it's a defect with this model. The USB ports are on a separate module that is plugged into the main Board. Is the fault on the set

  • Recovery problem

    HelloI have y510p Lenovo and a problem with recovery.My knees comes with windows 8, and I'm trying to install windows 7, so I had to format my C partition.Now I'm tryin to get my windows 8 back but recovery does not work it keep tellin that failed to

  • How to remove Virus searchnu/406

    I have this searchnu/406, he keeps changing my homepage, how I can remove it