Why should I adopt LABVIEW FPGA as a tool for developing my FPGA projects?

Dear Friends, 
Since I have started using LABVIEW FPGA, I got too many questions in my mind looking for answers! 
1-      Does anybody can tell me “why should I adopt LABVIEW FPGA as a tool for developing my FPGA projects?”
I mean there are many great tools in this field (e.g. Xilinx ISE, ….); what makes LABVIEW FPGA the perfect tools that can save my time and my money? 
I’m looking for a comparison can show the following points:
·         The Code size and speed optimization.
·         Developing time.
·         Compiling time.
·         Verifying time.
·         Ability to developing in future.
·         …etc.. 2-     
I’ve Spartan-3E kit, I’m so glad that LABVIEW support this kit; I do enjoyed programming the kit using LABVIEW FPGA, but there are too many obstacles!
The examples come with Spartan-3E driver don't cover all peripherals on board (e.g. LAN port is not covered)! There is a declaration at NI website which is "LabVIEW FPGA drivers and examples for all on-board resources" Located at: http://digital.ni.com/express.nsf/bycode/spartan3eI don’t think that is true!
Anyway, I will try to develop examples for the unsupported peripherals, but if the Pins of these peripherals are not defined in the UCF file, the effort is worthless! The only solution in this case is to develop VHDL code in ISE and use it in Labview FPGA using HDL node!?
3-      I wonder if NI has any plan to add support for Processor setup in Labview FPGA (Like we do in EDK)?
4-      I wonder if NI has any plan to develop a driver for Virtex-5 OpenSPARC Evaluation Platform ?http://www.digilentinc.com/Products/Detail.cfm?Nav​Path=2,400,599&Prod=XUPV5 
Thnaks & regards,Walid
Solved!
Go to Solution.

Thanks for your questions and I hope I can answer them appropriately
1. LabVIEW FPGA utilizes the intuitive graphical dataflow language of LabVIEW to target FPGA technology. LabVIEW is particularly nice for FPGA programming because of its ability to represent parallelism inherent to FPGAs. It also serves as a software-like programming experience with loops and structures which has become a focus of industry lately with C-to-gates and other abstraction efforts. Here are some general comparison along the vectors you mentioned
Code Size and speed optimization - LabVIEW FPGA is a programming language. As such, one can program badly and create designs that are too big to fit on a chip and too slow to meet timing. However, there are two main programming paradigms which you can use. The normal LabVIEW dataflow programming (meaning outside a single-cycle loop) adds registers in order to enforce dataflow and synchronization in parity with the LabVIEW model of computation. As with any abstraction, this use of registers is logic necessary to enforce LabVIEW dataflow and might not be what an expert HDL programmer would create. You trade off the simplicity of LabVIEW dataflow in this case. On the other hand, when you program inside a Single-Cycle timed loop you can achieve size and speed efficiencies comparable to many VHDL implementations. We have had many users that understand that way LabVIEW is transformed to hardware and program in such a way to create very efficient and complex systems.
Development Time - Compared to VHDL many of our users get near infinite improvements in development time due to the fact that they do not know (nor do they have to know) VHDL or Verilog. Someone who knows LabVIEW can now reach the speeds and parallelism afforded by FPGAs without learning a new language. For harware engineers (that might actually have an alternative to LabVIEW) there are still extreme time saving aspects of LabVIEW including ready-made I/O interfaces, Simple FIFO DMA transfers, stichable IP blocks, and visualizable parallism.  I talk to many hardware engineers that are able to drastically improve development time with LabVIEW, especially since they are more knowledgable about the target hardware.
Compilation Time - Comparable to slightly longer to due to the extra step of generating intermediate files from the LabVIEW diagram, and the increased level of hierarchy in the design to handle abstraction.
Verification Time - One of our key development initiatives moving forward is increased debugging capabilities. Today we have the abilities to functionally simulate anything included in LabVIEW FPGA, and we recently added simluation capabilities for Imported IP through the IP Integration node on NI Labs and the ability to excite your design with simulated I/O. This functional simualation is very fast and is great for verification and quick-turn design iteration. However, we still want to provide more debugging from the timing prespective with better cycle-accurate simulation. Although significantly slower than functional simulation. Cycle-accuracy give us the next level of verification before compilation. The single cycle loop running in emulation mode is cycle accurate simluation, but we want more system level simulation moving forwrad. Finally, we have worked to import things like Xilinx chipscope (soon to be on NI Labs) for on-chip debugging, which is the final step in the verification process. In terms of verification time there are aspects (like functional simulation) that are faster than traditional methods and others that are comparable, and still other that we are continuing to refine.
Ability to develop in the future - I am not sure what you mean here but we are certainly continuing to activiely develop on the RIO platform which includes FPGA as the key diffentiating technolgoy.  If you take a look at the NI Week keynote videos (ni.com/niweek) there is no doubt from both Day 1 and Day 2 that FPGA will be an important well maintained platform for many years to come.
2. Apologies for the statement in the document. The sentence should read that there are example for most board resources.
3. We do have plans to support a processor on the FPGA through LabVIEW FPGA. In fact, you will see technology on NI Labs soon that addresses this with MicroBlaze.
4. We do not currently have plans to support any other evaluation platforms. This support was created for our counterparts in the academic space to have a platform to learn the basics of digital design on a board that many schools already have in house. We are currently foccussing on rounding out more of our off-the-shelf platform with new PCI Express R Series boards, FlexRIO with new adapter modules, cRIO with new Virtex 5 backplanes, and more.
 I hope this has anwered some of the questions you have.
Regards 
Rick Kuhlman | LabVIEW FPGA Product Manager | National Instruments | ni.com/fpga
Check out the FPGA IPNet for browsing, downloading, and learning about LabVIEW FPGA IP Cores

Similar Messages

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

  • Why should we select all key fields when using for all entries

    Hi,
    Why should we select all key fields in our select query when using for all entries statement?
    I read about for all entries but this point was not clear in any post.
    Please explain me
    Regards,
    Subhashini

    Dear Subhasini,
    It is because FOR ALL ENTRIES deletes the duplicate entries before populating the target internal table.
    Please do an F1 on FOR ALL ENTRIES & read the SAP documentation.
    I mean how duplicate entries will not get deleted when we use this?
    Quite simple, if you select  all key fields then each entry will be unique & there will not be any duplicate entries to delete !!
    BR,
    Suhas
    Edited by: Suhas Saha on Oct 16, 2009 9:41 AM

  • Why should we trust the web app pool account for delegation?

    Hello,
    Can someone explain to me why we must trust the web app pool account for delegation in AD?
    here's what I understood:
    {Client computer}                                    {Web server}                         
    {SQL Server}
    domain\user1 ---auth. on web portal ----> [web portal]-domain\appPool-> the appPool account takes the identity of user1
    correct ?
    Thanks !

    To enable the MBAM Servers to authenticate communication from the Administration and Monitoring Website and the Self-Service Portal,
    you must register a Service Principal Name (SPN) for the host name under the domain account that you are using for the web application pool. More via https://technet.microsoft.com/en-us/library/dn645356.aspx?
    Eswar Koneti | Configmgr Blog: www.eskonr.com | Linkedin: Eswar Koneti
    | Twitter: eskonr

  • Why should users in Korea go to service center for request of bumper?

    As far as I know, users in USA can request Apple to send bumper through application.
    But the company called "Apple Korea" tells users to walk to service center for bumper and they just provides only black bumper!!
    And you should wait for 1~3 weeks to get the bumper. Definitely you should walk to service center again to get the bumper....What the ...
    What makes us more angry is that the company, "Apple Korea" sells other same bumpers in apple store of online site. The bumpers are not only black...but also green, white...
    I am very doubtful that the company,"Apple Korea" is really a company related to Apple. Why do they do differently about CS???

    It's unlikely anyone here would know the answer to your question. This is a user-to-user forum and Apple does not answer questions. You really have two choices.
    1. Call Apple directly and ask
    2. Send feedback to Apple by clicking on this link:
    http://www.apple.com/feedback/iphone.html

  • Why should I wrap String objects in a class for my HtmlDataTable?

    Hi,
    Let me describe a basic scenario in which my problem occurs. I have a backing bean and a JSP. The JSP gets a List<String> which is displayed inside a column in an editable HtmlDataTable. Each row in the data table has a UICommandLink that can perform an update to the value in the first column. Hence, the table only has two columns: one input field and one command link.
    My problem is this: When I try to execute HtmlDataTable#getRowData() when the command link is pressed, the updated values are not retrieved, but instead the values that have been in the input field before any changes were made. However, if I instead wrap my List objects inside a StringWrapper class (with a String property and appropriate getters and setters) such that I have a List<StringWrapper>, the problem does not occur. Why is this and is there any way to avoid it?
    I typed out some code to illustrate my scenario. Example 1 is where the table displays a list of String objects and Example 2 is where the table displays a list of StringWrapper objects.
    Example 1: [http://pastebin.com/m2ec5d122|http://pastebin.com/m2ec5d122]
    Example 2: [http://pastebin.com/d4e8c3fa3|http://pastebin.com/d4e8c3fa3]
    I'll appreciate any feedback, many thanks!

    Hi,
    Let me describe a basic scenario in which my problem occurs. I have a backing bean and a JSP. The JSP gets a List<String> which is displayed inside a column in an editable HtmlDataTable. Each row in the data table has a UICommandLink that can perform an update to the value in the first column. Hence, the table only has two columns: one input field and one command link.
    My problem is this: When I try to execute HtmlDataTable#getRowData() when the command link is pressed, the updated values are not retrieved, but instead the values that have been in the input field before any changes were made. However, if I instead wrap my List objects inside a StringWrapper class (with a String property and appropriate getters and setters) such that I have a List<StringWrapper>, the problem does not occur. Why is this and is there any way to avoid it?
    I typed out some code to illustrate my scenario. Example 1 is where the table displays a list of String objects and Example 2 is where the table displays a list of StringWrapper objects.
    Example 1: [http://pastebin.com/m2ec5d122|http://pastebin.com/m2ec5d122]
    Example 2: [http://pastebin.com/d4e8c3fa3|http://pastebin.com/d4e8c3fa3]
    I'll appreciate any feedback, many thanks!

  • Why should I have to give up other apps. for a new Firefox Upgrade?

    Today (Fri; 6/24/11) I got a pop-up informing me of a newer version of Mozilla Firefox. I have been using it for years and LOVE the browser; BUT.... AFTER it was installed, it tells me that DAP apps; download accel; video accel; DAP downloads; and about 10 or 12 other apps WON'T WORK with the new Firefox upgrade.. GEE, THAT'S NICE! WHY didn't you tell me that BEFORE I clicked the upgrade. That's the POLITE and PROPER way to do it. BESIDES THAT, I got an (an I think, PHONY) "looking for compatible apps installer" that ran & ran & ran & ran & ran & ran & ran AND APPEARED TO BE INSTALL-ING NOTHING AT ALL. It appears I may HAVE to UNINSTALL the upgrade and roll-back my browser because I REFUSE TO NOT USE THE APPS I WANT TO USE. LET'S GET IT TOGETHER, FIREFOX... IT'S A GREAT PRODUCT, LET'S NOT MAKE IT LESS BY MAKING USERS HAVE TO GIVE UP APPS THEY LIKE... George

    Do you recall what version you were using before the update? Due to security vulnerabilities, rolling back to Firefox 4.0.1 is not recommended.
    If Firefox disabled some add-ons (especially extensions), it likely is because they include a list of compatible Firefox versions and haven't yet been updated for Firefox 5. If they worked on Firefox 4, there is a very good chance they will work on Firefox 5.
    You can force Firefox to ''ignore'' add-on version restrictions by (what else) installing an add-on. Then you can test whether the add-ons important to you actually work in Firefox 5.
    [https://addons.mozilla.org/en-US/firefox/addon/add-on-compatibility-reporter/ Add-on Compatibility Reporter :: Add-ons for Firefox]
    Please report back on your results.

  • Why should I ever use iBooks to purchase books for iPhone again?

    I have purchased books from my iPad and opened them in iBooks. I now cannot transfer/sync them with my iPhone or iMac. Mac products have always been supportive of their users. However, this is a slap in the face of loyal users (me, since 1988)
    Doesn't anyone know of a way to transfer iBooks content from iPad to my iPhone? ( I noticed that Apple has been conspicuously absent in resolving this issue for years— much the same way as it handled the iMovie fiasco in 2010.)

    Bob McAdams wrote:
    I purchased a document in pdf format;
    Where?  Apple's iBookstore does not accept/sell .pdf format, only .epub and .ibooks.  So you presumably got it somewhere else and might be able to go there to get another copy for your phone.   What is the title?

  • I am looking for a LabView programmer to volunteer time for an endangered species project.

    I need to produce an analog signal that mimics the click of an endangered porpoise.  We are developing a method of acoustically monitoring vaquita in the Gulf of California using their echo-location clicks.  We need to produce simulated clicks to test this equipment.  We have both M-series (USB-6251) and E-series (DAQCard-6062E) A/D/A equipment as well as the amps and transducers to output the signals.  We have a synthesized porpoise click available in a WAV file (133 kHz, 100 uSec).  We are lacking the software to output the analog signals.  Is there anyone out there who could write stand-alone software to read a WAV file and output it to one of our NI devices (we don't own LabView or have any expertise with it)? 

    This application should be able to output 2 channels of the wav file to AO0 and AO1 of at least the USB-6251 device.
    It requires that you install:
    1. The DAQmx drivers;
    2. The LabVIEW 8.5 (or 8.5.1) runtime engine.
    I have included everything (source) necessary for people to add to the code.
    Executable can be found in Builds/EXE.
    Regards,
    André
    Using whatever version of LV the customer requires. (LV5.1-LV2012) (www.carya.nl)
    Attachments:
    Output WAV file to AO_20080602-1131.zip ‏735 KB

  • Why does Xcode crash after it finds a device for development and I press "ignore"?

    When I try to program with java, inevitably, Xcode detects an iOS device and asks me if I want to use it for development, even with bluetooth disabled. When I press either button, it crashes. How do I stop this?

    It's likely that the startup drive, or some other hardware component, is failing. Back up all data immediately, then make a "Genius" appointment at an Apple Store to have the machine tested. Do this before the warranty expires.
    There are ways to back up a computer that isn't fully functional. Ask if you need guidance.

  • 64 bits: why should I use it?

    Just for the sake of discussion: If I have a program offered in 32 and 64 bit modes, why should I use the 64 bit version?
    For example, the well known Videolan Player, aka VLC Media Player, recently updated to version 1.0.2, comes in 32 an 64 bit flavors. When would one version be used in lieu of the other?
    And saying "because it is bigger and hence better" is not true. Even Apple points out in the developer pages about the 64-bit fallacy: in that mode, all data structures duplicate in size and if the hardware remains the same, performance will suffer cause you have to push twice the amount of information.

    I just did a test with VLC Player (version 1.0.2), I played the same video in both 32 bit and 64 bit modes (NOTE: NOT talking about the kernel, but the program). Played it several times in both modes and even alternated between modes. In 64 bit mode it caused one of my processors to spike to 104% usage for the first 20 sec before dropping to 4-5%. In 32 bit mode processor usage remained at 4-5% the entire time.
    Played the same video in Quicktime Player X in both modes and saw no difference (used 5-8% processor usage).
    So to answer the question about when to use one version over the other I would say if one version causes notable problems/issues and the other doesn't than use the one that doesn't. Generally you shouldn't see a noticeable difference except in high-end programs that are crunching massive amounts of data.

  • Why is there no option to tweak the EQ for music on the iPhone?

    Apple iPhones should have this option stock standard who the **** is running this backyard operation? Why should I have to DL third party apps for something the iPhone should already have? If apple didn't bring back google maps I would have never updated to ios6.... If apple tries to play hard ball ill chuck this piece of crap in the bin and get an android phone!

    Please do get an Android.

  • Why do we need IDE or tools for java card programming?

    Hi,
    I am a newbie to java card, using java card kit tools themself, we can test and burn the code into card right?
    then why do we need IDE for java card, please correct me , if i am wrong,
    Thanks in advance,
    Sri.

    Dear Sri,
    We have compiler, linker etc for every language starting of from C or C++ or Java. JDK has all the tools necessary to develop and run a Java program. Similarly Java Card Development Kit has all the tools for developing and deploying a Java Card applet. But what an IDE does is too integrate all these tools and make it easier for the JavaCard programmer to develop his applets. Just like Eclipse is used for Java applet development.And not everytime the code is burned to the card. Its only during masking code is burned to the card, i.e if u can call it burning. Masking makes an applet permanent on the card.

  • 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 can I install (download) a Labview FPGA code onto Altera FPGA chip using Labview FPGA module?

    Hi there
    Guys i'm a very new labview user (PhD student), my project is about ( design and implementation of a high speed-yet sophisticated system using Labview environment then install this project's code (using Labview FPGA module) onto Altera-made FPGA chip).
    so kindly, can any body help me in this?...is there any way to connect labview with Altera FPGA?...please anything would be said 'd be of great benifits
    thanks a lot in advance.

    as previously mentioned, labview fpga only supports national instruments targets utilizing xilinx fpgas. the hdl generated by labview fpga is encrypted and cannot be used to synthesize a design outside the labview fpga design flow. 
    however, if you must use labview for your project, it might be possible for you to design the system in labview and use one of the labview embedded modules ( http://www.ni.com/embedded )to generate c code which you can then port to systemc and compile for the altera fpga. i'm not saying it will be easy, but it should be possible. 

Maybe you are looking for

  • Why does my battery die so quickly after updating to iOS 6.0.2 on the iPhone 5!?

    Is there a fix to this or do we have to wait for the next update? My iPhone has become a useless 2-hour-running brick in my pocket...

  • RESET button is not working in EDIT form

    Hi, I am going to make news item in xml form,but the created 'Reset' button in edit form is not working in it.Will you please help me?

  • ERROR ifrun60_dump_2700 PLZ HELP...

    The folder in which i keep my forms contains a file ifrun60_dump_2700. It increases day by day. [10/03/06 19:06:17 Pacific Standard Time]::Client Status [ConnId=0, PID=2700] ERROR: Abnormal termination, Error Code: C0000005 ACCESS_VIOLATION

  • Image motion tween

    I'm trying to motion tween jpeg image from one side of the screen to another but by the motion everything gets so framey instead running smoothly. I tried to convert image to the movie clip and I tried increase number of frames and fps but with no su

  • Year totals not showing in my report

    I have a Account by Time report where I have to show the balances at the year end totals for each account. Everything is working fine for all accounts but except for the accounts which have ACT_TYPE as AST. How to show the year total for accounts wit