Determine which function uses DSP on LabVIEW FPGA Code

Hello All,
I need some help, during optimization of our code on FPGA (sbRIO 9606) we faced with problem where we need to know which function is using DSP and which function is not using DSP (we are talking about on board DSP48's).
Now my question is: Is there any way to find which function is exactly using DSP (for example add, sub, mul and so on) and how many, in which cases it's using it?
Thank you with best regards.
Orbel

Hello Orbel,
I found this thread, I think it is going to be useful for you.
Is there an obvious way to prevent an FPGA multiply from using DSPs?
You are going to find a KB and a CAR associated to that forum. Please check this document linked below, it is also useful (explicit use of DSP).
An Introduction to High-Throughput DSP in LabVIEW FPGA
Regards

Similar Messages

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

  • How to determine which locale uses the specific process

    Hi,
    I would like to get to know which locale uses the specific process.
    I mean that when the process starts it should use the current system locale.
    Where I can check that information which locale are used by the running process?
    I ask because I would like to make sure that for example when the locale are French or Japanese the process/deamon use the current locale.
    Kind regards,
    Daniel

    VivaLaVida wrote:
    Hi,
    currently we are in the process of consolidating our databases. One of the neccessary steps is to figure out which user connects to the database at all. That's easy, we implemented a logon-trigger and log the collected information into a separate table.It could have been even easier by turning on the built-in audit feature.
    If a user with objects (e.g. tables, views, procedures) exists - but this user never connects to the database - does that automatically mean that these objects are not used at all? No need to say that this is not true. But how can we figure out if a connected user has selected an object of this user?audit would be a good choice.
    Our porblem is that we have alot of schemas in our database - but the developers don't know if this schema is not used by an application or not (sad but true).Not sure what developer will do with used/not used application.
    To enable auditing would be one choice to figure out if an object was ever used or not. What's wrong in auditing ?
    Even though audit may have a footprint on performance, that would probably be less costly than any custom solution.
    Nicolas.

  • Generation of a glossary of functions used in a Labview project

    Hello
    I am writing a report which must include screen shots of every VI and sub VI in a labview project that i have created. I am looking for a way to generate a glossary of functions that were used in the project. I need this so people who are not familar with Labview can understand my code.
    It this possible?
    Thank you
    MAC_D
    Message Edited by MAC_D on 09-24-2008 03:50 AM

    Lynn's suggestion will not be able to go as far as giving you the documentation for Build Array, for example. Don't really know of a way to do that. Might be able to do that with scripting, but that's another story. 
    <START PERSONAL COMMENT>
    Speaking on a personal level, if someone gave me documentation that included all of that gory detail I would think they're just trying to "fluff up" the documentation. I see little point in documenting something that has already been documented quite extensively by NI, like I said. You can list the functions, but that's of little use since it doesn't document how you used them, now does it?
    On a side-note, I think Build Array is quite self-explanatory, even if you don't know LabVIEW. And if you don't understand the basic terms "build" and "array", then you have no business reading the documentation or criticizing it in the first place. But that's just my opinion. 
    <END PERSONAL COMMENT> 

  • How to determine which user uses which database-object

    Hi,
    currently we are in the process of consolidating our databases. One of the neccessary steps is to figure out which user connects to the database at all. That's easy, we implemented a logon-trigger and log the collected information into a separate table.
    If a user with objects (e.g. tables, views, procedures) exists - but this user never connects to the database - does that automatically mean that these objects are not used at all? No need to say that this is not true. But how can we figure out if a connected user has selected an object of this user?
    Our porblem is that we have alot of schemas in our database - but the developers don't know if this schema is not used by an application or not (sad but true).
    To enable auditing would be one choice to figure out if an object was ever used or not.
    Are there any other possibilities?
    Any help will be appricated
    Rgds
    Jan

    VivaLaVida wrote:
    Hi,
    currently we are in the process of consolidating our databases. One of the neccessary steps is to figure out which user connects to the database at all. That's easy, we implemented a logon-trigger and log the collected information into a separate table.It could have been even easier by turning on the built-in audit feature.
    If a user with objects (e.g. tables, views, procedures) exists - but this user never connects to the database - does that automatically mean that these objects are not used at all? No need to say that this is not true. But how can we figure out if a connected user has selected an object of this user?audit would be a good choice.
    Our porblem is that we have alot of schemas in our database - but the developers don't know if this schema is not used by an application or not (sad but true).Not sure what developer will do with used/not used application.
    To enable auditing would be one choice to figure out if an object was ever used or not. What's wrong in auditing ?
    Even though audit may have a footprint on performance, that would probably be less costly than any custom solution.
    Nicolas.

  • Is there an obvious way to prevent an FPGA multiply from using DSPs?

    In FPGA coding a High Throughput Multiply function will take advantage of any available DSPs on your FPGA. This is great, unless you have more multipliers than available DSPs. My FPGA code is currently failing to fit, and although it's using just 50% of the Registers/Slices, it's trying to use more DSPs than are available (My Virtex 5 chip has 64 DSPs).
    In the help I'm pretty sure it says the compiler will revert to using slices for multiplications in the absence of sufficient DSPs, but my experience is otherwise.
    If I convert just one of the High Throughput Multiply functions to a standard LabVIEW Math multiply primitive I receive timing errors from the compiler (even though there are minimal timing constraints in my code), and it therefore still fails to compile.
    So my question is: Is there a way to prevent a Multiply function in LabVIEW FPGA from using DSPs?
    Thoric (CLA, CLED, CTD and LabVIEW Champion)

    Dragis wrote:
    Unfortunately, this is a bug/feature of the Xilinx tools. Once the tools have decided to choose DSP blocks for the multipliers, it will only use them and not place any in logic. There is a way to disable automatic usage of DSP blocks, you'll have to work with NI customer support to make that change. If you use this option, you'll have to manually drop the High Throughput Multiplier everywhere you want a DSP48 to be used.
    I've gone through Technical Support with this issue once before about a year ago and there was no mention of a 'solution', just the unhelpful suggestion to "use fewer multipliers". I'll raise another support case and link to this thread, maybe they'll need to speak with you directly to understand what this option is.
    I'm perfectly happy, in fact I'd prefer, to be able to specifically select where a DSP is and isn't used for a multiplication. If reasonable, I'd suggest this option to disable automatic usage of DSPs be made public (either through the knowledgebase, or as an actual feature in the FPGA toolkit perhaps).
    Thanks Dragis.
    Thoric (CLA, CLED, CTD and LabVIEW Champion)

  • 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

  • Labview fpga vs xilinx ise

    hi all 
    i am new to fpga and my question is fairly simple one which one is better ? 
    labview fpga or the xilinx ise platform ?
    or does it depend upon the application? 
    Regards
    Solved!
    Go to Solution.

    It always depends on the application.  Better in what way?
    I like programming in LabVIEW, so I think LabVIEW FPGA is a much better choice.  Learn just a little more than regular LabVIEW and you can program an FPGA!  Unless you have experience using ise, I suspect LabVIEW would be the easier route.
    If you are looking at price, maybe ise wins.  It isn't cheap to get buy LabVIEW and the FPGA module (and probably RT module) so you have all the tools.
    If the task is very complex, you might manage to make the program slightly more efficient using a lower level tool like ise.  You might shave off a few nanoseconds of loop time.  In 99.9% of the cases, this is unlikely.  LabVIEW code does a pretty good job converting over to FPGA.
    Bruce
    Bruce Ammons
    Ammons Engineering

  • Incremental Compile LabVIEW FPGA

    Hello all.
    It is time-consuming that we have to compile all LabVIEW FPGA code even if there is tiny little change on FPGA code.
    I understand there is sampling probe, Desktop execution node and simulation tools to reduce such time.
    Our customer in Japan, would like to use incremental compile function also on LabVIEW.(Please see below)
    I agree his opinion.
    http://www.youtube.com/watch?v=9v50uCVdW3o
    What do you think?
    Eisuke Ono
    Application Engineer at National Instruments Japan.
     

    I think this is something everyone would like to see, I'm glad someone finally posted an idea for it to get feedback from the community. With the introduction of (better) incremental compilation in the latest 3rd party tools like Xilinx there is certainly some features the LabVIEW FPGA compiler could take advantage of. There is also plenty of optimizations within the LabVIEW FPGA compiler itself that could help. 
    The problem with incremental compilation of any kind is doing it well enough that the majority of use cases don't suffer performance issues when squeezing application changes into as few changes in the actual hardware. Getting this balance right takes a lot of work and a lot of sample applications to try it against.

  • LabVIEW FPGA driver for Xilinx SPARTAN 3E Starter Board

    i need drivers for spartan 3E .

    If you are at a university that has a site license for the FPGA module, the following might be of interest to you:
    Using LabVIEW FPGA with the Xilinx SPARTAN-3E XUP Starter Kit
    See also this discussion.
    Quote from the license agreement:
    ...INSTALLATION AND USE OF THE LABVIEW FPGA TARGET MODULE FOR THE XILINX SPARTAN-3E STARTER BOARD (THE “TARGET MODULE”) IS LIMITED TO ACADEMIC INSTITUTIONS THAT HAVE A VALID, CURRENT “ACADEMIC TEACHING LICENSE” FROM NATIONAL INSTRUMENTS FOR THE LABVIEW FPGA MODULE. THIS TARGET MODULE MAY ONLY BE USED FOR INSTRUCTIONAL PURPOSES, SUBJECT TO THE TERMS AND CONDITIONS OF THE NATIONAL INSTRUMENTS SOFTWARE LICENSE AGREEMENT THAT ACCOMPANIES THE SOFTWARE...
    LabVIEW Champion . Do more with less code and in less time .

  • Can I export VHDL from Labview FPGA?

    Hello,
    We have a situation where existing Labview FPGA code works, but we need
    to embed it into an environment where we can't run Labview.  So
    we're considering taking the VHDL generated by Labview FPGA and porting
    it to another FPGA.
    To do that, we need to get our hands on the VHDL output.  How does one do that?
    Thanks,
    Peter H.
    PS: If could find an FPGA forum, I would post my question there...

    Hi M.,
    yes, there is a translator to C. Just call your local NI representative. Take a seat before asking for the price
    Best regards,
    GerdW
    CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
    Kudos are welcome

  • Which programs use the memory card?

    Can anyone help me determine which programs use the memory card? My E90 won't connect in transfer mode because Pc Suite says there is an application using it. As far as I'm concerned, active notes and sms were the ones to blame. They specifically have the option to use the memory card. But I can't find it in other apps. Any suggestions will be appreciated.

    Various installed programs will run from your MMC in the background. I suggest you install and app called Best Taskman from www.symbianware.com.
    Install this to your phone memory!
    Now open it up, press options - view - advanced - processes
    you will see all running processes and an icon next to them. If th icon looks like a memory card, then it is running from that. Press the "C" key on each MMC running process to close them.
    Now you'll be able to connect via mass storage.
    I recommend making a note of which apps these are and re-installing them to your phone memory instead. Also, any app you know will have a feature required to tun in the background, ensure this is installed on the phones memory!
    If I have helped you, please hit the star at the bottom of my posts - it's appreciated!
    Don't forget if your problem is solved to press the "Accept as Solution" button.

  • How can i determine which devices are used at the moment?

    Hi all,
    I am designing an interface with LabVIEW for uing agilent devices. My work colleagues will use this interface.  I want to determine which devices are used at the moment and if I determine used device, i will add automatically device names to interface's main vi. So all my work colleagues can see on the program which devices are used by another colleague. This devices are connected with GPIB. İ want to learn is there any function on Instrument I/O palette.
    Thanks,
    Omer
    Solved!
    Go to Solution.

    Hi Omer,
    so those devices are connected to the PC with a GPIB connection. Will your collegues run several DAQ programs at the same time?
    GPIB-devices being controlled by PC don't have a "in use"-signal. They wait for commands, execute them and send an answer. When you start to control them using two programs they may respond to both programs, mixing up settings/measurement values and so on.
    That being said: In MAX you can see all devices connected to your GPIB port. You could scan the GPIB port using VISA commands in your program. You might even try to access a certain device by it's VISA alias. I really don't know if you will get a "device nopt available" error message when that VISA alias is in use by a different program - but you might do a quick test on your own…
    Best regards,
    GerdW
    CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
    Kudos are welcome

  • Implementing Differential Equations using Labview fpga modules on PXI-7811R

    Dear,
        I am working on   implementing dynamic systems modeled ordinary  differential equations on PXI-7811R FPGA using labview FPGA. Is there any body who can help me how to implement differential equation on PXI devices uding Labview FPGA, please? Is there any integrator in Labview FPGA, module. I used Discrete Integerator in LAbview FPGA  module in Maths palette, but i hesistated if it really works . I really appreciate your help,
                                        Gammee

    Thank you for posting on the discussion forum.
    You can solve differential equations using LabVIEW FPGA but you may run into some significant difficulties in doing so. If you are not tied to using FPGA, you could try using LabVIEW real-time, which may make things much easier. But if you would like to stick with FPGA, see the link below for a list of examples that may be helpful:
    http://search.ni.com/nisearch/app/main/p/bot/no/ap/tech/lang/en/pg/1/sn/ssnav:ipn/q/differential%20e...
    Below is a link that you can review to better understand the functionality of the discrete integrator should you choose to go that route:
    http://zone.ni.com/reference/en-XX/help/371599B-01/lvfpga/discrete_normalized_integrator/
    I hope that helps.
    Best,
    Rachel
    Rachel D.
    Applications Engineer
    National Instruments

  • How to generate a chirp(linear FM) signal using dds theory in LabVIEW FPGA.

    how to generate a chirp(linear FM) signal using dds theory in LabVIEW FPGA.
    attachment:a sine signal using dds theory. Hope to get some help. Thanks!
    Attachments:
    FPGA DDS SineGen IP.vi ‏42 KB

    you need to increment the "accumulator increment" during the duration of the chirp.  the "accumulator increment" controls the frequency of the DDS cycle.  by increasing it's value, you are increasing the frequency.  the math for increment values follows the same math as determining the frequency to increment value.
    Stu McFarlane
    Viewpoint Systems, Inc.

Maybe you are looking for

  • Calling a Stored Procedure from Java

    Hi all I am trying to run a stored proc which has the following name: test.myProcedure(?)} In my Java I am declaring the parameters as follows: declareParameter(new SqlOutParameter("value", Types.DOUBLE)); Then I have a execute() which looks like thi

  • Link button not working in matrix

    Hai To All,           I created one form with only one matrix. On that i have 5 columns. In first column i have linkbutton link to user defined screen. What its not working. My code is here If pVal.ItemUID = "matrix" And pVal.ColUID = "Docno" Then   

  • A few more questions about batteries

    Hi folks, new here. 1. According to www.apple.com/batteries, we don't have to worry about this Nickel-based batteries stuff when charging (cause iPods are Lithium-based). If so, do I really need to charge for 4 hours the first time? Why? 2. I've had

  • Checking no of records in a cube.

    Hi All, I am trying to check the number of records in a cube. I tried two ways . 1) Using listcube -> rowcount -> total 2) RSA1 -> Manage -> Count no of records for each request. I am getting different result for both . Can anyone help me on this? Re

  • Need  trigger when update one column then record sysdate on another collumn

    Hi Gurus I have a table called RTV_PLAN And it have two columns, FORCE_KEYIN_FLAG VARCHAR(2) FORCE_KEYIN_DATE DATE I want when FORCE_KEYIN_FLAG get a value Then FORCE_KEYIN_DATE record the sysdate Please kindly give some help Many thanks saven