FlexRIO DRAM problem in Labview FPGA 2010

Hello,
I am just switching from Labview FPGA 2009 to Labview FPGA 2010 and I am having compilation problems with very simple projects that shouldn't fail to compile.
I am using a FlexRIO 7965R board as a target. Initially, I just wanted to recompile a project that was working fine under Labview FPGA 2009. When it failed, I drastically
simplified it to isolate the source of error. I ended up with what is attached. In this very simple VI I just write some values into DRAM banks in one timed loop, read them out in another and send them through a Target to Host DMA FIFO. Both loops are quite slow running at only 40 MHz. Previously, I was able to compile VIs with DRAM clip nodes in timed loops running at 100 MHz without any problems.
The compilation fails with this summary:
"Compilation
failed due to resource overmapping"
although it should fit easily.
The error is definitely related to DRAM. This s what Xilinx log says:
"ERRORlace:543
- This design does not fit into the number of slices available in this device
due to the complexity of
   the design and/or constraints.
   Unplaced instances by type:
     IDELAYCTRL    21 (48.8)  "
Then it lists these instances (about 20):
   0. IDELAYCTRL
Puma20DramMainx/GenBank0or1Mig.u_ddr2_idelay_ctrl/u_idelayctrl_MapLib_replicate0
   1. IDELAYCTRL
Puma20DramMainx/GenBank0or1Mig.u_ddr2_idelay_ctrl/u_idelayctrl_MapLib_replicate1
   2. IDELAYCTRL Puma20DramMainx/GenBank0or1Mig.u_ddr2_idelay_ctrl/u_idelayctrl_MapLib_replicate2
Both DRAM banks are configured with the clip node for 128-bit FIFO version v1.1.0. I also tried using the legacy version v1.0.0 but it didn't make any difference.
It looks like I have some configuration problems I can't identify or there is something wrong with the DRAM clip node in Labview FPGA 2010.
Any ideas on what could be happening here? Any help would be much appreciated.
Regards,
Ivan
Attachments:
flexrio_dram_test.lvproj ‏157 KB
flexrio_dram_test_fpga.vi ‏124 KB

Hello Ivan,
It looks like in your project you are using both the NI 5761 adapter module and DRAM.  We have seen a few cases where certain combinations of DRAM, adapter modules, and FlexRIO FPGA targets in LabVIEW FPGA 2010 have caused some resource overmapping errors of the IODelayCtrl components used in the adapter module and DRAM CLIPs. Due to a bug, certain constraints inside of the CLIP cores are misinterpreted by the ISE compiler causing this overmap error when you switch to LabVIEW FPGA 2010. 
This was reported to R&D (# 258076) for further investigation and to create a long term fix.  In the meantime, for this specific issue please use the following knowledgebase article to apply a patch to your FlexRIO fixed logic files.  This patch updates some of the constraints used by the DRAM to ensure that the Xilinx compiler can properly interpret them. There are more details on your issue in the knowledgebase as well. 
Knowledgebase 5E4FNCDP: Error, “Compilation Failed Due to Resource Overmapping,” When Using NI FlexR...
If you do run into any other issues regarding IODelayCtrl components, feel free to reply to this forum topic to let me know about them.
Regards,
Browning G
FlexRIO R&D

Similar Messages

  • FPGA 2010 Compilation error - TclTasklC:project_028: Unknown property value

    Hi, I'm using a cRIO 9075 and a NI 9211 to measure temperature for a project busy with. Everytime I try t compile code I have a compilation error that read as follows:
    Compilation failed due to a Xilinx error.
    Details:
    ERROR: TclTasksC: project_028:Unknown property value "spartan6" specified for "PROP_DevFamily"
    Can someone help me on how to resolve this error, I'm using LabVIEW FPGA 2010 and Xilinx 11.5
    Regards 
    Solved!
    Go to Solution.

    What version of the NI-RIO driver do you have?
    Attached is a chart with the different compatibilities of the RIO driver.
    NI-RIO and LabVIEW Version Compatibility
    http://digital.ni.com/public.nsf/allkb/577CC9A7DCFC73DF8625738400116CC3?OpenDocument
    Is this a 64-bit machine? Also, the minimum version of LabVIEW that will work with the 9075 is LabVIEW 2010SP1. You can verify if you have this version by going into Measurement & Austomation Explorer and expanding software. If you do not have LabVIEW 2010SP1, you will need either the platform DVDs for 2010 SP1 or you can download the content from www.NI.com/src. 
    You will also want to verify that you have the 2010SP1 FPGA module and 2010SP1 RT module.
    Also, does this issue occur with all FPGA VIs that you try to compile or only the one that you are currently working on?
    You can check by doing two things:
    1. Try to compile a blank FPGA VI (i.e. nothing on the block diagram or front panel)
    2. Try to compile an FPGA VI from one of the example LabVIEW projects 
    Please post back if one of these troubleshooting steps resolved your issue or if you're still having problems.
    Jordan

  • FPGA 2010 sp1 Compilatio​n error - TclTasksC:process_077: Failed to complete.

    Hi, I'm using a cRIO 9076, LabVIEW 2010 sp1, LabVIEW RT 2010 sp1, LabVIEW FPGA 2010 sp1, NI-RIO 4.0, Xilinx Compile Tools 11.5. Everytime I try to compile code I have a compilation error that read as follows (The same error come up if I try compiling a very simple VI):
    Compilation failed due to a Xilinx error.
    Details:
    ERROR:TclTasksCrocess_077: Failed to complete. Please inspect the log and report files.false
        while executing
    "process run "Synthesize - XST""
        (file "C:\NIFPGA\jobs\ErIbY60_RB6swoa\synthesize.tcl" line 20)
    ERROR:HDLCompiler:806 - "C:\NIFPGA\jobs\ErIbY60_RB6swoa\PkgCommIntConfiguration.vhd" Line 64: Syntax error near ",".
    ERROR:HDLCompiler:69 - "C:\NIFPGA\jobs\ErIbY60_RB6swoa\PkgCommIntConfiguration.vhd" Line 72: <knumberofdmachannels> is not declared.
    ERROR:HDLCompiler:854 - "C:\NIFPGA\jobs\ErIbY60_RB6swoa\PkgCommIntConfiguration.vhd" Line 29: Unit <pkgcommintconfiguration> ignored due to previous errors.
    Parsing package body <PkgCommIntConfiguration>.
    ERROR:HDLCompiler:688 - "C:\NIFPGA\jobs\ErIbY60_RB6swoa\PkgCommIntConfiguration.vhd" Line 135: Package declaration pkgcommintconfiguration is not yet compiled
    ERROR:HDLCompiler:69 - "C:\NIFPGA\jobs\ErIbY60_RB6swoa\PkgCommIntConfiguration.vhd" Line 137: <boolean> is not declared.
    ERROR:HDLCompiler:69 - "C:\NIFPGA\jobs\ErIbY60_RB6swoa\PkgCommIntConfiguration.vhd" Line 138: <natural> is not declared.
    ERROR:HDLCompiler:69 - "C:\NIFPGA\jobs\ErIbY60_RB6swoa\PkgCommIntConfiguration.vhd" Line 140: <knumberofdmachannels> is not declared.
    ERROR:HDLCompiler:24 - "C:\NIFPGA\jobs\ErIbY60_RB6swoa\PkgCommIntConfiguration.vhd" Line 140: "**" expects 2 arguments
    ERROR:HDLCompiler:69 - "C:\NIFPGA\jobs\ErIbY60_RB6swoa\PkgCommIntConfiguration.vhd" Line 141: <maxwidth> is not declared.
    ERROR:HDLCompiler:69 - "C:\NIFPGA\jobs\ErIbY60_RB6swoa\PkgCommIntConfiguration.vhd" Line 143: <maxwidth> is not declared.
    ERROR:HDLCompiler:69 - "C:\NIFPGA\jobs\ErIbY60_RB6swoa\PkgCommIntConfiguration.vhd" Line 146: <boolean> is not declared.
    ERROR:HDLCompiler:69 - "C:\NIFPGA\jobs\ErIbY60_RB6swoa\PkgCommIntConfiguration.vhd" Line 147: <positive> is not declared.
    ERROR:HDLCompiler:69 - "C:\NIFPGA\jobs\ErIbY60_RB6swoa\PkgCommIntConfiguration.vhd" Line 150: <knumberofdmachannels> is not declared.
    ERROR:HDLCompiler:69 - "C:\NIFPGA\jobs\ErIbY60_RB6swoa\PkgCommIntConfiguration.vhd" Line 151: <maxdepth> is not declared.
    ERROR:HDLCompiler:69 - "C:\NIFPGA\jobs\ErIbY60_RB6swoa\PkgCommIntConfiguration.vhd" Line 154: <maxdepth> is not declared.
    ERROR:HDLCompiler:69 - "C:\NIFPGA\jobs\ErIbY60_RB6swoa\PkgCommIntConfiguration.vhd" Line 157: <natural> is not declared.
    ERROR:HDLCompiler:69 - "C:\NIFPGA\jobs\ErIbY60_RB6swoa\PkgCommIntConfiguration.vhd" Line 158: <natural> is not declared.
    ERROR:HDLCompiler:69 - "C:\NIFPGA\jobs\ErIbY60_RB6swoa\PkgCommIntConfiguration.vhd" Line 161: <knumberofdmachannels> is not declared.
    ERROR:HDLCompiler:69 - "C:\NIFPGA\jobs\ErIbY60_RB6swoa\PkgCommIntConfiguration.vhd" Line 163: <numofchannelsused> is not declared.
    Sorry, too many errors..
    -->
    Total memory usage is 136244 kilobytes
    Number of errors   :   19 (   0 filtered)
    Number of warnings :    0 (   0 filtered)
    Number of infos    :    0 (   0 filtered)
    Process "Synthesis" failed
    Start Time: 10:15:58 a.m.
    End Time: 10:16:24 a.m.
    Total Time: 00:00:26,171
    Can someone help me on how to resolve this error?
    Regards 

    Hello CracKatoA
    Did you make some update before this error starts to occur? Or you have never compliled any VI on this computer.
    In case you have compiled any VI previously successfully on this computer, try to reinstall the LabVIEW FPGA module.
    You can also try the following knowledge base:
    http://digital.ni.com/public.nsf/allkb/1F8F94CF0B7D2608862577AF0072662B
    Regards,
    Plínio Costa
    Application Engineer
    National Instruments Brazil

  • Run-time engine problem in Labview 2009 and Labview 2010

    I have a problem with Labview 2009 and Labview 2010. I updated my Labview 2009 into 2010. But it turned out to be a trial one, because i did not have the serial number. So I uninstalled the Labview 2010. however, the funny stuff came over. I cannot use my Labview 2009. So i uninstalled Labview 2009 again. But eventually, I could not reinstall Labview 2009. Every time i had a runtime error and i could not proceed with the installation. in addition, any installation  related to Labview is not permitted and the same error came up every time. it is very annoying.
    So, What is the deal?
    I attached the error here. Any comments or advice are welcomed and appreciated.
    Attachments:
    error.docx ‏2305 KB

    By chance is this machine's language set to any non-English locale?  You would check the locale setting by:
    Opening Control Panel.
    Opening "Regional and Language Options".
    Looking Under "Regional Options" >> "Standards and Formats"
    If it is set to something besides English, trying setting it to English and please report back what locale it was set to (or if this even solves the problem).
    Regards,
    - WesW

  • Problems getting started with LabVIEW FPGA

    Two (probably) related questions:
    1. I am trying to get started with LabVIEW FPGA, and I am having trouble using a host VI to test my FPGA VI. I started with a basic QAM modulator VI, to be run on the FPGA, and I have reached the point where I need to verify the logic and timing with this VI running on the development computer with simulated IO. I have tried various combinations of putting the code inside single-cycle timed loops vs not; putting the modulator block directly into the host VI, and using the "FPGA reference" block. When neither the host VI nor the modulator VI use a single-cycle timed loop, I see correct behavior. In every other case, the output of the VI is either absent or incorrect. I need to use a single-cycle timed loop in the FPGA VI to properly verify timing behavior (as far as I know), so the one functioning case is not enough for me.
    I'm sure there is a key step I'm missing or misunderstanding, but I have not been able to figure it out myself yet. I've attached my modulator diagram as well as two different attempts at host VIs. I can share other information, but I'm not sure what is most relevant.
    2. I am also trying to test a simple wrapper VI for the Xilinx FFT block, and I am having trouble accessing FIFOs inside the host VI. I thought this would be relatively straightforward, but when I tried to change the "method" on an "invoke method" block, there were no options for accessing FIFOs, as I understood there should be. This is a total roadblock for me. These two diagrams are also attached, the test diagram shows the options available to me for the "invoke method" block.
    Labview 2013, PXIe-7965R, PXIe-8133 controller. 
    I had to combine the diagram images; in case they are hard to follow this way, see the individual images here: http://imgur.com/a/oB6OD .
    Thanks in advance for any suggestions.
    Attachments:
    mod_all.png ‏68 KB
    fft_all.png ‏52 KB

    Hello Monguin61
    If you are having problems reading from DMA FIFO's you should test them using a very simple code to understand their behavior. First, you could start taking a look to the linked documents:
    Reading DMA FIFOs from Host VIs (FPGA Interface)
    Using DMA FIFO to Develop High-Speed Data Acquisition Applications for Reconfigurable I/O Devices
    FIFO.Read (Invoke Method)
    Then you could test and analyze a simple example to understand how it works, for example this one: Simple DMA FIFO Example for FPGA.
    Check the references when you are using DMA FIFO's, I noticed you did not connect them in the second picture attached.
    Regards
    Frank R.

  • Labview 2010 Student Edition, will it work with the Labview FPGA module and Xilinx Spartan 3E??

    Just as the title states.
    I did a search here on compatibility, but I am coming up short with not much to show for it.
    I have Labview 2010 student edition, 32bit and 64 bit. I am trying to do a Senior Design project for my undergrad, and I am having some issues.
    I was able to download the Support for the Xilinx Spartan 3E and Labview FPGA.
    I install it, it runs through the unzipping process, installs, and then mysteriously I cannot find it. I have looked through my programs list and it is not listed. I open both editions of LabView and I find ABSOLUTELY NOTHING indicating that either one has ANYTHING to do with FPGA.
    Did I install it wrong? Or is it just not supported in the studend version of Labview???
    Can someone help me, please?

    M Boat wrote:
    What about the trial version? Any chance of it being on there?
    I think everything is available for download, and without activation it will be in trial mode and you have about a month (?) before the trial expires.
    A trial version of the FPGA module is available for download here. I have no idea if it would work with the student version.
    I would recommend to talk to your local NI sales representative for advice. Good luck.
    LabVIEW Champion . Do more with less code and in less time .

  • "LabVIEW FPGA: The compilation failed due to timing violations, but there is no path information because the timing violations are not of type PERIOD

    The compilation of my labview fpga vi fails with the error message "LabVIEW FPGA:  The compilation failed due to timing violations, but there is no path information because the timing violations are not of type PERIOD".
    In the 'final timing (place and route)' report, the requested frequencies are all below the maximum frequencies and the compilation error message is only displayed at the very end on the 'summary' page.
    I tried to optimize my labview fpga vi with pipelining, but had no success.
    Can anybody offer some advice on how to debug fpga code with this error? Is this really a timing error or something else?
    Software:
    Labview 2011, fpga 2011, xilinx tools 12.4 sp1
    Hardware:
    NI PXIe-1071 Chassis
    NI PXIe-8108 Embedded controller
    NI PXIe-7965R FPGA FlexRIO FPGA module
    NI 5761 250 MS/s 14 bit Analog input digitizer
    The Xilinx log of the compilation run is attached.
    Also, this issue was already discussed in this thread ~6 months ago, but no satisfying answer was offered so far...
    Thanks,
    Fabrizio
    Attachments:
    xilinxlogc.txt ‏2313 KB

    Hi Kyle,
    the problem is: I have one computer which compiles the VI successfully and a second one which shows that error. Both use the same software setup (LV2011SP1+RT+FPGA from DS2012-01). Both use the same project file - atleast SVN shows no difference.
    - You can have one FPGA VI where one computer is compiling successful and a second one complains. (Btw. I have a SRQ running in Germany on this topic.)
    - More problems: After successful compiling on first computer and transferring all to second computer (using SVN, including the full project folder with all files like bitfiles, lvproj, and everything) the second computer is unable to start the RT executable due to error "FPGA VI needs to recompile". Solution so far: Call the FPGA-OpenReference with the bitfile instead of the VI (as I used to do until now)...
    - More problems: After modifying the FPGA-OpenReference to use the bitfile (on the 2nd computer) and transferring all the files back to the 1st computer (using SVN as before, including the whole project) the 1st computer complains: FPGA-OpenReference is creating a different reference than is used in the VI. So what happens here? On one computer my VI is ok, the reference is typed correctly. Transferring all the files to a different computer the VI isn't ok anymore due to changes of the reference??? You know: all files are the same: lvproj, FPGA bitfile didn't change, cRIO reference didn't change...
    All those problems didn't occur on my RT-FPGA projects in LV2010SP1. I'm not pleased...
    Best regards,
    GerdW
    CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
    Kudos are welcome

  • Labview FPGA compile stuck at "Place and Routing"

    I am using LabVIEW 2010 SP1 32-bit FPGA module.  I've built a very large program that was first done back using LabVIEW 8.6, so I have several years experience on LabVIEW FPGA.
    When I say it's a large program, I mean that a several times over the last couple years I've tried to add more functionality that has failed to compile do to not enough space on the target or timing restraints.  My target has mostly been the PCI/PXI NI-7813R.  Due to the nature of our product, a lot has to be done on one FPGA board.
    When I do go "over the limit" the compile (after a couple hours) fails and tells me that there's just not enough room on the 7813.
    Recently, however, I added some more code, thinking the odds were good that it might push me over the edge.  However, the compile never fails.  Unfortunately, it never stops either.  It gets to the "Placing and routing" portion of the compile and just stays there.  When I say stays there, I mean I've run it over night, and when I check it the next morning, the "Elapsed time" is over 10 hours, and still counting up.  The device utilization and estimated timing numbers are all under max.  And I see no errors in the report so far that I'm used to seeing.  Like I said, it just keeps compiling.
    I've attached the Xilinx log.  It looks much like the log before I added the extra code, except it just stops logging with reporting any useful error.
    Anyone have an idea what I could be doing wrong?
    Thanks,
    Rick
    Attachments:
    XilinxLog.txt ‏3936 KB

    tannerite,
    Thanks for your response.
    I added code that measures the "on time" of incoming DIO pulses.  If the pulses are HIGH for one given amount of time (eg. 60[+/- 5] usecs) it means one thing, if HIGH for a different amount of time (eg. 120[+/- 5] usecs) it means something else.  Generally speaking, I just keep a tick count between the rising and falling edge of the pulse, and use the "In Range and Coerce" from the Comparison Functions palette to check where the count lies.
    When it compiled successfully, I duplicated the above code for 10 seperate DIOs.  Then I realized I needed to monitor 20 DIOs.  It was when I added the code for these extra 10 DIOs that I got the "forever" compile.  The compile problem occurs everytime I try to compile with the extra 10 DIO code in place.  As an experiment, I just added 4 extra DIOs, i.e. code to monitor a total of 14 DIOs.  This causes the same compile problem.
    And yes, the compile seems to hang in the same place every time it hangs.  Like I said, I wouldn't be surprised if I'm just beyond the available resources available.  But when I've done this in the past, the compile does finally fail, and I get a useful error message.  I've never seen it go "forever".
    Thanks ahead of time for any insight you might have.
    - Rick

  • LabVIEW FPGA: Multiple SCTL versus one SCTL (same clock domain)

    Hello NI forums,
    Question:
    See the attached picture from a modified version of the LabVIEW DRAM FIFO example. It probably explains my question more effectively than the paragraphs below.
    What is the difference to the LabVIEW / Xilinx compiliers, if any, between placing two independent branches of code in the same SCTL, versus placing them in individual SCTLs (in the same clock domain)?
    Misc. comments:
    I have briefly experimented with this concept using the included LabVIEW DRAM FIFO example (example finder >> Hardware Input and Output >> FlexRIO >> External Memory >> Simple External Memory FIFO.lvproj).
    I compiled the default example (the read and write interfaces are in separate 40MHz SCTLs) five separate times. Then I put the read and write interfaces in the same 40MHz SCTL and compiled another five times. The result (when both read and write interfaces were in the same SCTL) was a reduction in resource usage (according to the compilation summary).
    However, due to my lack of knowledge I'm hesitant to conclude that placing everything in one SCTL is always the best option. For example, I do not know what is created 'behind the scenes' with each SCTL. Perhaps putting independent branches of code in separate SCTLs makes it possible to route clock, reset, implicit enable, etc. signals more effectively.
    Background information:
    My task involves acquiring 2 channels of analog data using the NI 5772 and PXIe-7966. Data acquisition takes place in a 200MHz SCTL, and downstream processing is performed in a 100MHz SCTL.
    During a vast majority of the 100MHz SCTL processing stages of the FPGA VI, the 2 channels of data do not interact with eachother. So it would be easy for me to place them in separate 100MHz loops if doing so would somehow help the design (timing, resource usage, etc.).
    Thanks!
    Attachments:
    question.png ‏76 KB

    Intaris
    Trusted Enthusiast
    Posts: 3,264
    Re: LabVIEW FPGA: Multiple SCTL versus one SCTL (same clock domain)
    ‎10-28-2014 12:11 PM
    Just out of interest, what is the resource usage differential between the two versions?
    In response to the above comment,
    This is a little embarrassing, but it seems like the resource usage is similar than I initially thought for this particular example. I think the previous compilations that I based my assumption on coincidentally used more resources in the 2-SCTL loop case. I just compiled each version two additional times (see below).
    Here's the version with everything in one loop:
    Device Utilization
    Total Slices: 17.6% (2587 out of 14720)
    Slice Registers: 9.5% (5583 out of 58880)
    Slice LUTs: 8.2% (4855 out of 58880)
    DSP48s: 0.0% (0 out of 640)
    Block RAMs: 2.5% (6 out of 244)
    Device Utilization
    Total Slices: 16.9% (2493 out of 14720)
    Slice Registers: 9.5% (5583 out of 58880)
    Slice LUTs: 8.3% (4858 out of 58880)
    DSP48s: 0.0% (0 out of 640)
    Block RAMs: 2.5% (6 out of 244)
    Here's the version with the read and write in separate loops:
    Device Utilization
    Total Slices: 16.4% (2407 out of 14720)
    Slice Registers: 9.5% (5583 out of 58880)
    Slice LUTs: 8.2% (4852 out of 58880)
    DSP48s: 0.0% (0 out of 640)
    Block RAMs: 2.5% (6 out of 244)
    Device Utilization
    Total Slices: 19.4% (2859 out of 14720)
    Slice Registers: 9.5% (5583 out of 58880)
    Slice LUTs: 8.3% (4859 out of 58880)
    DSP48s: 0.0% (0 out of 640)
    Block RAMs: 2.5% (6 out of 244)

  • Compilation time - LabVIEW FPGA project

    I am trying to compile a LabVIEW FPGA project over NI PXIe-1071 chassis.
    My problem briefly lies in the compilation time which last hours while only takes approximately 20 minutes on another chassis I am having with exactly the same specifications.
    Is there any project settings I should check which may casuing this problem ?
    Thanks.

    The FPGA boards exactly the same and the VI is exactly the same? All you are changing is the chassis? R Series or FlexRIO? What version of LabVIEW FPGA? How much are the designs "filled up" (like what is the percent utilization of slices)? There are project settings for effort levels of the Xilinx tools depending on what version of LabVIEW you are using. 

  • How to import Verilog codes into LabVIEW FPGA?

    I tried to import Verilog code by instantiation followed by the instruction in http://digital.ni.com/public.nsf/allkb/7269557B205B1E1A86257640000910D3, 
    but still I can see some errors while compiling the VI file.
    Simple test Verilog file is as follows:
    ==============================
    module andtwobits (xx, yy, zz);
    input xx, yy;
    output reg zz;
    always @(xx,yy) begin
    zz <= xx & yy;
    end
    endmodule
    ==============================
    and after following up the above link, we created the instantiation file as
    ==============================================
    library ieee;
    use ieee.std_logic_1164.all;
    entity mainVHDL is
    port(
    xxin: in std_logic;
    yyin: in std_logic;
    zzout: out std_logic
    end mainVHDL;
    architecture mainVHDL1 of mainVHDL is
    COMPONENT andtwobits PORT (
    zz : out std_logic;
    xx : in std_logic;
    yy : in std_logic);
    END COMPONENT;
    begin
    alu : andtwobits port map(
    zz => zzout,
    xx => xxin,
    yy => yyin);
    end mainVHDL1;
    ==============================================
    Sometimes, we observe the following error when we put the indicator on the output port,
    ERROR:ConstraintSystem:58 - Constraint <INST "*ChinchLvFpgaIrq*bIpIrq_ms*" TNM =
    TNM_ChinchIrq_IpIrq_ms;> [Puma20Top.ucf(890)]: INST
    "*ChinchLvFpgaIrq*bIpIrq_ms*" does not match any design objects.
    ERROR:ConstraintSystem:58 - Constraint <INST "*ChinchLvFpgaIrq*bIpIrq*" TNM =
    TNM_ChinchIrq_IpIrq;> [Puma20Top.ucf(891)]: INST "*ChinchLvFpgaIrq*bIpIrq*"
    does not match any design objects.
    and interestingly, if we remove the indicator from the output port, it sucessfully compiles on the LabVIEW FPGA.
    Could you take a look at and please help me to import Verilog to LabVIEW FPGA?
    I've followed the basic steps of instantiation on the above link, but still it won't work.
    Please find the attachment for the all files.
    - andtwobits.v : original Verilog file
    - andtwobits.ngc: NGC file
    - andtwobits.vhd: VHD file after post-translate simulation model
    - mainVHDL.vhd: instantiation main file
    Since there is no example file for Verilog (there is VHDL file, but not for Verilog), it is a bit hard to do the simple execution on LabVIEW FPGA even for the examples.
    Thank you very much for your support, and I'm looking forward to seeing your any help/reply as soon as possible.
    Bests,
    Solved!
    Go to Solution.
    Attachments:
    attach.zip ‏57 KB

    Hi,
    I am facing problem in creating successfully importing  VHDL wrapper file for a Verilog module,into LabVIEW FPGA using CLIP Node method. Please note that:
    I am working on platform SbRIO-9606.
    Labiew version used is 2011 with Xilinx 12.4 compiler tools
    NI RIO 4.0 is installed
    Xilinx ISE version installed in PC is also 12.4 webpack ( Though I used before Xilinx 10.1 in PC for generating .ngc file for verilog code FOR SbRIO 9642 platform, but problem remains same for both versions)
    Query1. Which versions of Xilinx ISE (to be installed in PC for generating .ngc file) are compatible with Labview 2011.1(with Xilinx 12.4 Compiler tools)? Can any version be used up to 12.4?
    Initially I took a basic and gate verilog example to import into LabVIEW FPGA i.e. simple_and.v and its corresponding VHDL file is SimpleAnd_Wrapper.vhd
    ///////////////// Verilog code of “simple_and.v”//////////////////////
    module simple_and(in1, in2, out1);
       input in1,in2;
       output reg out1;
       always@( in1 or in2)
       begin
          out1 <= in1 & in2;
       end
    endmodule
    /////////////////VHDL Wrapper file code of “SimpleAnd_Wrapper.vhd” //////////////////////
    LIBRARY ieee;
    USE ieee.std_logic_1164.ALL;
    ENTITY SimpleAnd_Wrapper IS
        port (
            in1    : in std_logic;
            in2    : in std_logic;
            out1   : out std_logic
    END SimpleAnd_Wrapper;
    ARCHITECTURE RTL of SimpleAnd_Wrapper IS
    component simple_and
       port(
             in1    : in std_logic;
             in2    : in std_logic;
             out1   : out std_logic
    end component;
    BEGIN
    simple_and_instant: simple_and
       port map(
                in1 => in1,
                in2 => in2,
                out1 => out1
    END RTL;
    Documents/tutorials followed for generating VHDL Wrapper file for Verilog core are:
    NI tutorial “How do I Integrate Verilog HDL with LabView FPGA module”. Link is http://digital.ni.com/public.nsf/allkb/7269557B205B1E1A86257640000910D3
    In this case, I did not get any vhdl file after “post-translate simulation model step” in netlist project using simple_and.ngc file previously generated through XST. Instead I got was simple_and_translate.v.
    Query2. Do I hv to name tht “v” file into “simple_and.vhd”?? Anyways it did not work both ways i.e. naming it as “simple_and with a “v” or “vhd” extension. In end I copied that “simple_and.v” post translate model file, “simple_and.ngc”, and VHDL Wrapper file “SimpleAnd_Wrapper.vhd” in the respective labview project directory.
    Query3. The post-translate model file can  also be generated by implementing verilog simple_and.v  file, so why have to generate it by making a separate netlist project using “simple_and.ngc” file? Is there any difference between these two files simple_and_translate.v generated through separate approaches as I mentioned?
    2. NI tutorial “Using Verilog Modules in a Component-Level IP Design”. Link is https://decibel.ni.com/content/docs/DOC-8218.
    In this case, I generated only “simple_and.ngc” file by synthesizing “simple_and.v “file using Xilinx ISE 12.4 tool. Copied that “simple_and.ngc” and “SimpleAnd_Wrapper.vhd” file in the same directory.
    Query4. What is the difference between this method and the above one?
    2. I followed tutorial “Importing External IP into LABVIEW FPGA” for rest steps of creating a CLIP, declaring it and passing data between CLIP and FPGA VI. Link is http://www.ni.com/white-paper/7444/en. This VI executes perfectly on FPGA for the example”simple_and.vhd” file being provided in this tutorial.
    Compilation Errors Warnings received after compiling my SimpleAnd_Wrapper.vhd file
    Elaborating entity <SimpleAnd_Wrapper> (architecture <RTL>) from library <work>.
    WARNING:HDLCompiler:89"\NIFPGA\jobs\WcD1f16_fqu2nOv\SimpleAnd_Wrapper.vhd"    Line 35: <simple_and> remains a black-box since it has no binding entity.
    2. WARNING:NgdBuild:604 - logical block 'window/theCLIPs/Component_ dash_Level _IP_ CLIP0/simple_and_instant' with type   'simple_and' could not be resolved. A pin name misspelling can cause this, a missing edif or ngc file, case mismatch between the block name and the edif or ngc file name, or the misspelling of a type name. Symbol 'simple_and' is not supported in target 'spartan6'.
    3. ERROR:MapLib:979 - LUT6 symbol   "window/theVI/Component_dash_Level_IP_bksl_out1_ind_2/PlainIndicator.PlainInd icator/cQ_0_rstpot" (output signal=window/theVI/ Component_dash_Level _IP_bksl_out1_ ind_2/PlainIndicator.PlainIndicator/cQ_0_rstpot) has input signal "window/internal_Component_dash_Level_IP_out1" which will be trimmed. SeeSection 5 of the Map Report File for details about why the input signal willbecome undriven.
    Query5. Where lays that “section5” of map report? It maybe a ridiculous question, but sorry I really can’t find it; maybe it lays in xilnx log file!
    4. ERROR:MapLib:978 - LUT6 symbol  "window/theVI/Component_dash_Level_IP_bksl_ out1_ind_2/PlainIndicator.PlainIndicator/cQ_0_rstpot" (output signal= window / theVI/Component_dash_Level_IP_bksl_out1_ind_2/PlainIndicator.PlainIndicator/ cQ_0_rstpot) has an equation that uses input pin I5, which no longer has a connected signal. Please ensure that all the pins used in the equation for this LUT have signals that are not trimmed (see Section 5 of the Map Report File for details on which signals were trimmed). Error found in mapping process, exiting.Errors found during the mapping phase. Please see map report file for more details.  Output files will not be written.
    Seeing these errors I have reached the following conclusions.
    There is some problem in making that VHDL Wrapper file, LabVIEW does not recognize the Verilog component instantiated in it and treat it as unresolved black box.
    Query6. Is there any step I maybe missing while making this VHDL wrapper file; in my opinion I have tried every possibility in docs/help available in NI forums?
    2. Query7. Maybe it is a pure Xilinx issue i.e. some sort of library conflict as verilog module is not binding to top VHDL module as can be seen from warning HDLCompiler89. If this is the case then how to resolve that library conflict? Some hint regarding this expected issue has been given in point 7 of tutorial “How do I Integrate Verilog HDL with LabView FPGA module”. http://digital.ni.com/public.nsf/allkb/7269557B205B1E1A86257640000910D3. But nothing has been said much about resolving that issue.  
    3. Because of this unidentified black box, the whole design could not be mapped and hence could not be compiled.
    P.S.
    I have attached labview project zip folder containing simple_translate.v, simple_and_verilog.vi file,SimpleAnd_Wrapper.xml,  Xilinx log file after compilation alongwith other files. Kindly analyze and help me out in resolving this basic issue.
    Please note that I have made all settings regarding:
    Unchecked add I/O buffers option in XST of Xilinx ISE 12.4 project
    Have set “Pack I/O Registers into IOBs” to NO in XST properties of project.
    Synchronization registers are also set to zero by default of all CLIP I/O terminals.
    Please I need speedy help.Thanking in you in anticipation.
    Attachments:
    XilinxLog.txt ‏256 KB
    labview project files.zip ‏51 KB

  • Labview fpga module Spartan 6 LX9 FPGA

    Does Spartan 6 LX9 FPGA  supported in labview FPGA module ?

    varunme,
    The only FPGA targets that can be programmed with LabVIEW FPGA are National Instruments FPGA products (cRIO, sbRIO, R-Series, FlexRIO, etc) and the Xilinx Spartan 3E XUP board. Unfortunately, LabVIEW FPGA doesn't support third party devices containing the LX9 FPGA.
    -Nick-
    Nick C | Staff LabVIEW Platform Product Support Engineer | National Instruments

  • Labview FPGA encoder reading

    hello,
    I an new in LabVIEW FPGA programing so I would appreciate any help. I am using sb-rio 9636 card and optocoupler for speed messaurment of DC motor. I have conected everyting right and the sensor is giving me date. But messauring the speed the oscilations of sensor data are huge. I am not changing the speed and motor continiousliy is rotating in the same speed but data are not the same. For example im 12 V that is the max speed motor schould rotate in 6500 rpm/min but in one second it is showing 6500 and in the other 5500 rpm/min.  think that there is not problem in the code but that the messaurment are not reliable. I will put my code. I need to know is there anz other way to do encoder readings.
    Thank you

    I don't see anything in your loop that guarantees the timing of your sampling of the digital encoder pulses.  It appears you expect that loop to run at 1MHz based on the uS unit label on your time of flight indicator.
    Because you are using front panel indicators for some of your calculation variables, I can't see all the numbers going into your calculations.
    How much variance do you see in the time of flight measurement on your front panel?  You must remember that you are making measurements in whole integers of uS.  How much change in the RPM calculation do you see if the uS measurement drifts by 1 uS?
    If the impact of 1uS change in pulse to pulse measurement has a big impact on your calculation, then you will need to adjust your algorithm to get a more precise measure of the time of flight.
    Some ideas:
    The faster your sampling loop runs, the more likely you will sample the signal right after the pulse transistion.  Consider using a Single-Cycle Timed Loop to sample at speeds in the 40MHz (25ns period) range.  This will give you more precision.  One risk I can't rule out in your existing code is that you may be sampling slow enough that in some cases you miss a pulse completely.  If you want to ensure that you do not miss any pulse edged, then you must ensure that the loop is sampling at least 2x the frequency of your pulse train, assuming the pulses have a clean 50% duty cycle. If that duty cycle is not 50%, then the maximum sampling period must be shorter than the shortest pulse you expect.
    Rather than measuring the time difference from pulse to pulse, measure the time of 10 pulses, or 1000 pulses, or some other larger number. This averages a larger number of pulses so that the difference of 1us resolution has less impact on the calculated measurement.
     

  • 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.

  • LabVIEW FPGA Sine Wave Generator Reset Input Behavior

    I would like to know what the output from the Sine Wave Generator express VI is while the reset input is true, and what happens to the output immediately after the reset input is set false.
    I need to generate a regular sequence of positive half-cycles of a sine wave, with an arbitrary delay between them that is not related to the actual frequency of the sine wave. So my plan is basically to periodically fire a trigger in the fpga software that resets a sine wave generator and directs its output to an analog output until the sine wave goes negative, at which point the analog output is set to 0 until the next trigger.
    Thanks

    Muchas gracias por responder steve.bm
    El problema que tengo es el siguiente, estoy desarrollando un proyecto en el cual uso los conversores DAC y ADC de la  tarjeta FPGA Spartan 3E para lo cual use como base el proyecto que esta subido por la NI que se encuentra en uno de los enlaces que me dejaste,( Lesson 8 - Linking Existing VHDL Code from WebPACK into LabVIEW FPGA) del mismo solo modifique para usar el ADC y el DAC mediante el cual adquiero una señal senosoidal y la tengo que reconstruir, el problema es que como uso un generador de señal de laboratorio al ingresar la frecuencia de muestreo para obtener una buena reconstruccion, la frecuencia se baja lo cual en el proyecto real no podra pasar ya que la frecuencia ya en proyecto final la adquiero de la red electrica publica pero ahora para pruebas estoy con un generador, la verdad no se que pasa porque tiene un retrazo la señal.....
    Te parece si te puedo dejar mi proyecto subido en enlace para que lo revices ??

Maybe you are looking for