LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

LabVIEW to FPGA?

I heard a rumour on the grapevine that NI is about to launch
a new 'silcon compiler' which enables us to go from labVIEW
straight to an FPGA hardware design. Is this true - when is the launch?


Tom
0 Kudos
Message 1 of 22
(16,963 Views)
Cool!!!

I've always wanted to get into FPGA and ASIC but it's such a Catch-22
situation. Got to have FPGA experience to get FPGA experience. Same
for ASIC.

Douglas De Clue
ddeclue@bellsouth.net


tom wrote in message news:<3D4A2BDF.D86C21B5@NAESPAM.yahoo.com>...
> I heard a rumour on the grapevine that NI is about to launch
> a new 'silcon compiler' which enables us to go from labVIEW
> straight to an FPGA hardware design. Is this true - when is the launch?
>
>
> Tom
0 Kudos
Message 2 of 22
(16,961 Views)
And I heard a rumor that LabVIEW 7 was coming out.

Funny thing about rumors, they are just that.

I think it would be an incredible thing of National Instruments were to expand the capabilities of LabVIEW in this way, and others. I have been hounding them to create a version of LabVIEW that allows the creation of smaller executables, by eliminating libraries that aren't needed in a particular application. It is my guess that LabVIEW compiles with the equivalent to a #include section that is always the same, and is a mile long. I have asked for the capability to pare this down with a #exclude, or allow #include, something to make the applications smaller when they are so simple (better yet, dynamic and automatic library inclusion based on the code hie
rarchy.)

As for this rumor, I have heard nothing. Go to NI Week, (good idea anyway) you might hear something there. And if you don't hear anything that can be substantiated, then don't post it here. I'm probably not the only one that doesn't appreciate rumors, especially ones like this that offer false hope for a better version of LabVIEW.
0 Kudos
Message 3 of 22
(16,960 Views)
If it's release matierial, I have no clue; but I had a buddy who worked on
it so it could technically exist.

Then again the guy's not so smart, so I wouldn't get my hopes up.

-joey

"Labviewguru" wrote in message
news:506500000005000000E0900000-1027480788000@exchange.ni.com...
> And I heard a rumor that LabVIEW 7 was coming out.
>
> Funny thing about rumors, they are just that.
>
> I think it would be an incredible thing of National Instruments were
> to expand the capabilities of LabVIEW in this way, and others. I have
> been hounding them to create a version of LabVIEW that allows the
> creation of smaller executables, by eliminating libraries that aren't
> needed in a particular application. It is my guess that LabVIEW
> compiles with
the equivalent to a #include section that is always the
> same, and is a mile long. I have asked for the capability to pare
> this down with a #exclude, or allow #include, something to make the
> applications smaller when they are so simple (better yet, dynamic and
> automatic library inclusion based on the code hierarchy.)
>
> As for this rumor, I have heard nothing. Go to NI Week, (good idea
> anyway) you might hear something there. And if you don't hear
> anything that can be substantiated, then don't post it here. I'm
> probably not the only one that doesn't appreciate rumors, especially
> ones like this that offer false hope for a better version of LabVIEW.
0 Kudos
Message 4 of 22
(16,960 Views)
Labviewguru wrote:

> And I heard a rumor that LabVIEW 7 was coming out.
>
> Funny thing about rumors, they are just that.
>
> I think it would be an incredible thing of National Instruments were
> to expand the capabilities of LabVIEW in this way, and others. I have
> been hounding them to create a version of LabVIEW that allows the
> creation of smaller executables, by eliminating libraries that aren't
> needed in a particular application. It is my guess that LabVIEW
> compiles with the equivalent to a #include section that is always the
> same, and is a mile long. I have asked for the capability to pare
> this down with a #exclude, or allow #include, something to make the
> applications smaller when they are so simple (better yet, dynamic and
> automatic l
ibrary inclusion based on the code hierarchy.)
>
> As for this rumor, I have heard nothing. Go to NI Week, (good idea
> anyway) you might hear something there. And if you don't hear
> anything that can be substantiated, then don't post it here. I'm
> probably not the only one that doesn't appreciate rumors, especially
> ones like this that offer false hope for a better version of LabVIEW.

Well I had heard it was more than justa rumour - that it was due this
month sometime. You know how things get delayed however. I thought
LabVEIW 7 was due for Feb next year but that really is rumour!
I had heard that it was 50 times faster than a 2G PIII but that would be
difficult
to substantiate as it would depend on a number of factors.
If they really do have LabVIEW - FPGA it will blow all the opposition into

the last century. Imagine going from a block diagram to silicon!

Tom
0 Kudos
Message 5 of 22
(16,960 Views)
Labviewguru et. al:

FIRST LET ME SAY THAT I DO NOT WORK FOR NI AND NEVER HAVE. IF THERE
ARE ACTUAL NI ENGINEERS SITTING OUT THERE READING THIS BOARD WITH
EXPERIENCEE IN DEVELOPING THE LABVIEW PRODUCT WHO CAN CORRECT MY
ASSUMPTIONS IN THIS POST, PLEASE DO SO. IF I AM CORRECT IN MY
ASSUMPTIONS, PLEASE LET US KNOW THAT ALSO. I TOO WOULD LIKE TO KNOW
FOR CERTAIN THE ANSWERS TO THESE SORTS OF QUESTIONS..

...BATTERIES NOT INCLUDED...SOME ASSEMBLY REQUIRED...PRODUCT SOLD BY
WEIGHT NOT VOLUME, CONTENTS MAY HAVE SETTLED DURING SHIPPING...BEST IF
USED BY SEPTEMBER 30, 2002...CHECK WITH YOUR PHARMACIST BEFORE USING
THIS IN COMBINATION ANY OTHER PRODUCT...THERE IS A LOW OCCURRENCE OF
SIDE EFFECTS WITH USE OF THIS PRODUCT, AMONG SOME USERS THIS PRODUCT
MAY CAUSE DROWZINESS, IRRITABILITY, TREMORS, HEADACHES, BLURRED
VISION, LOSS OF HAIR, UNCONTROLLED BLEEDING, HEART PALPITATIONS,
RASHES, OR UPSET STOMACH....ELECTROCUTION HAZARD DO NOT USE NEAR
WATER...DO NOT USE NEAR POWER LINES...CALL BEFORE DIGGING...NO
ANCHORING OR DREDGING....SPARK HAZARD DO NOT USE NEAR FLAMMABLE
LIQUIDS OR VAPORS...DO NOT PLACE IN MICROWAVE...DO NOT DISPOSE OF IN
OPEN FLAME...READ ALL INSTRUCTIONS CAREFULLY BEFORE USING
PRODUCT....NOT RESPONSIBLE FOR MISUSE OF THIS PRODUCT.....CONSULT YOUR
PHYSICIAN OR THE NEAREST POISON CONTROL CENTER IF ACCIDENTALLY
INGESTED....THE CHECK IS IN THE MAIL....I HAD AN ACCIDENT...THE DOG
ATE MY HOMEWORK.....:)

With the above disclaimers about LabVIEW in PLAIN VIEW, here goes:

As far as I understand it, LabVIEW doesn't really "compile" at all as
you might think of it for C, FORTRAN, or Pascal programming, i.e.
compile source code into object files, link the objects, and set
addresses and create a binary executable file that can be handed
straight to the processor. This is called n-code compiling for
"native code".

LabVIEW as I understand it is a p-code compiler. The "p" stands for
"pseudo". What this means is that compiled "executable" LabVIEW code
is really being interpreted by the LabVIEW run-time engine in a manner
very similar to that used by the old MS-BASIC, QBASIC (don't jump on
me if you are a QuickBASIC programmer, I don't mean QuickBasic but
rather QBASIC that ships with MS-DOS), and GW-BASIC interpreters. For
all you young whipper snappers out there who've never heard of GW
BASIC, I'll give another example - PERL.

That is why LabVIEW executing processes are always so large and
sometimes slow, because the LabVIEW runtime engine is running in that
execution space. An interpreter is by it's nature is very general
purpose, it always has to be ready to support all of the features of
the implemented interpreted language. Also it has to implement a
parser to process the next line of code. What the "next line of code"
means to LabVIEW's processor is difficult for me to say. I guess it
means executing whatever is sitting at the other end of the current
wire.

The LabVIEW run-time engine / interpreter has to be pretty complex -
think about it, it suppports multiple parallel threads of execution
and dynamically launching VI's. This is a far cry from the good old
days of MS-BASIC interpreters. Of course all this complexity comes
with a price tag: size. Whether your program actually uses the
multi-threading features of LV or not, you pay for it with a larger
execution footprint.

C programs on the other hand is compiled to native code and it is up
to the developer to pick and choose libraries to include and whether
to link to them statically or dynamically. Dynamic linking is a
significant improvement in that it has significantly reduced the size
of executing C applications. On the other hand DLL's can have a
series of run time problems that statically linked libraries don't
usually suffer from. In any event, compiled n-code C source almost
always comes out smaller than p-code LabVIEW in terms of execution
footprint.

The actual LabVIEW VI's themselves are large because they have to
maintain a database of all the objects on the front panel and the back
panel including their graphical location and all the interconnecting
wires and their locations and how the various objects actually do
connect.

This is also why LabVIEW vi's, once corrupted are usually not
salvageable except for sometimes it workes to cut and paste into a new
diagram. This VI file size is the price we pay for being a graphical
programming language.

Douglas De Clue
LabVIEW programmer
ddeclue@bellsouth.net


Labviewguru wrote in message news:<506500000005000000E0900000-1027480788000@exchange.ni.com>...
> And I heard a rumor that LabVIEW 7 was coming out.
>
> Funny thing about rumors, they are just that.
>
> I think it would be an incredible thing of National Instruments were
> to expand the capabilities of LabVIEW in this way, and others. I have
> been hounding them to create a version of LabVIEW that allows the
> creation of smaller executables, by eliminating libraries that aren't
> needed in a particular application. It is my guess that LabVIEW
> compiles with the equivalent to a #include section that is always the
> same, and is a mile long. I have asked for the capability to pare
> this down with a #exclude, or allow #include, something to make the
> applications smaller when they are so simple (better yet, dynamic and
> automatic library inclusion based on the code hierarchy.)
>
> As for this rumor, I have heard nothing. Go to NI Week, (good idea
> anyway) you might hear something there. And if you don't hear
> anything that can be substantiated, then don't post it here. I'm
> probably not the only one that doesn't appreciate rumors, especially
> ones like this that offer false hope for a better version of LabVIEW.
0 Kudos
Message 6 of 22
(16,959 Views)
....


> LabVIEW as I understand it is a p-code compiler. The "p" stands for
> "pseudo".


If you were talking about LV1, you would be correct, but since 1990, LV
VIs have been compiled to machine code -- meaning to native code.

LV compiles the VIs when it needs to when saving or when the run button
is pressed. To be more accurate, a typical compilation of C starts with
syntax checking, then does its lexical analysis, optimization passes,
allocation of registers, stack offsets, and global offsets, then code
generation, and perhaps another optimization pass. Then another program
or code module takes over and does the linking, checking to see if all
references are satisfied and resolving those being used. finally, the
linker merges the objects files and writes out an executable file.

LV does the syntax check after each edit. It does the optimization and
code generation passes only when needed to run the VI or save the VI.
Linking happens when the VIs are loaded into memory, as each VI is
essentially a DLL, not an EXE or an object file. The executable builder
typically recompiles the VIs with different options such as turning off
debugging options, and it merges the VIs into one file and writes it out.

Different, but very similar to how C or other compiled languages do it.

The runtime library contains the dataflow scheduler, essential to LV
execution, but not very big. It also contains the code for the panel
objects such as the table, graph, tab, etc. No need to build this into
each VI since they are used over and over. It also contains support
routines for things like file I/O and TCP. These are essentially the
same as the MSVCRT DLL. Again, they are the most common of functions
and do not need to be built into each VI. In previous versions of LV,
the runtime DLL was always statically linked into each EXE built by LV,
but it is now shared to reduce the size of the built EXE.

As for why LV executables are big. They contain the code, data, and
potentially the panel or diagram of the VIs all merged together. The
executable's size is affected mostly by the size of the VIs. As for why
VIs are so big. Part of it is due to the non-stack based execution of
VIs. Essentially each VI has its own built-in stack frame ready for
parallel execution. It also contains default data for the parameters,
descriptions, colors, everything that defines the appearance of the
panel and the behavior of the VI. Our current save format was built for
slow computers and slow disks. We hope that a new approach will shrink
the VI size on disk by encoding the data differently, similar to a form
of compression.

Ask away if some of this didn't make sense.
Greg McKaskle
0 Kudos
Message 7 of 22
(16,959 Views)
Greg:

Thanks for the info. I didn't realize that LV compiled to n-code.
Based on what you have written, I still can't justify the vast
difference in executable size between a LabVIEW application and an
equivalent C++ application written using MFC.

Executable size, execution speed, and development tools cost ($1500+)
have been my biggest complaints about LabVIEW.

LabVIEW is tremendously easy to use but if it is to ever catch on for
more general computing tasks outside of instrumentation, National
Instruments will need to address these 3 issues.

On my wish list also would be some generic support for pointers and
handles and built in support for database connectivity (ODBC, ADO, OLE
DB, etc.)

Douglas De Clue
ddeclue@bellsouth.net


Greg McKaskle wrote in message news:<3D4DF3AD.2010702@austin.rr.com>...
> ...
>
>
> > LabVIEW as I understand it is a p-code compiler. The "p" stands for
> > "pseudo".
>
>
> If you were talking about LV1, you would be correct, but since 1990, LV
> VIs have been compiled to machine code -- meaning to native code.
>
> LV compiles the VIs when it needs to when saving or when the run button
> is pressed. To be more accurate, a typical compilation of C starts with
> syntax checking, then does its lexical analysis, optimization passes,
> allocation of registers, stack offsets, and global offsets, then code
> generation, and perhaps another optimization pass. Then another program
> or code module takes over and does the linking, checking to see if all
> references are satisfied and resolving those being used. finally, the
> linker merges the objects files and writes out an executable file.
>
> LV does the syntax check after each edit. It does the optimization and
> code generation passes only when needed to run the VI or save the VI.
> Linking happens when the VIs are loaded into memory, as each VI is
> essentially a DLL, not an EXE or an object file. The executable builder
> typically recompiles the VIs with different options such as turning off
> debugging options, and it merges the VIs into one file and writes it out.
>
> Different, but very similar to how C or other compiled languages do it.
>
> The runtime library contains the dataflow scheduler, essential to LV
> execution, but not very big. It also contains the code for the panel
> objects such as the table, graph, tab, etc. No need to build this into
> each VI since they are used over and over. It also contains support
> routines for things like file I/O and TCP. These are essentially the
> same as the MSVCRT DLL. Again, they are the most common of functions
> and do not need to be built into each VI. In previous versions of LV,
> the runtime DLL was always statically linked into each EXE built by LV,
> but it is now shared to reduce the size of the built EXE.
>
> As for why LV executables are big. They contain the code, data, and
> potentially the panel or diagram of the VIs all merged together. The
> executable's size is affected mostly by the size of the VIs. As for why
> VIs are so big. Part of it is due to the non-stack based execution of
> VIs. Essentially each VI has its own built-in stack frame ready for
> parallel execution. It also contains default data for the parameters,
> descriptions, colors, everything that defines the appearance of the
> panel and the behavior of the VI. Our current save format was built for
> slow computers and slow disks. We hope that a new approach will shrink
> the VI size on disk by encoding the data differently, similar to a form
> of compression.
>
> Ask away if some of this didn't make sense.
> Greg McKaskle
0 Kudos
Message 8 of 22
(16,959 Views)
On 5 Aug 2002 09:52:12 -0700, ddeclue@bellsouth.net (Douglas De Clue)
wrote:

>
>LabVIEW is tremendously easy to use but if it is to ever catch on for
>more general computing tasks outside of instrumentation, National
>Instruments will need to address these 3 issues.
>

Granted I don't really keep up with this sort of thing, but I didn't
know that NI was pushing for LabVIEW to be a general purpose
language/environment.
0 Kudos
Message 9 of 22
(16,959 Views)
"Eric Inazaki" wrote in message
news:jestku0s2lpvbcmvgm1cmubi7t2pqgm0hb@4ax.com...
> >LabVIEW is tremendously easy to use but if it is to ever catch on for
> >more general computing tasks outside of instrumentation, National
> >Instruments will need to address these 3 issues.
>
> Granted I don't really keep up with this sort of thing, but I didn't
> know that NI was pushing for LabVIEW to be a general purpose
> language/environment.

Maybe it'll become general purpose when its actually price competitive with
Visual Studio.

Come on..... $3495 for a Labview PDS license verus $1079 for a full
non-upgrade Visual Studio license? And to think NI makes money on the DAQ
hardware on top of it.

-joey
0 Kudos
Message 10 of 22
(16,957 Views)