LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Why does selecting a new bitfile cause FPGA VI Reference to show a coercion dot?

Solved!
Go to solution

I am trying to understand why a coercion dot is happening with LabVIEW FPGA and if it is a problem.  

To test this I created a brand new FPGA project and a blank FPGA.vi.

 

1) I place an "Open FPGA VI Reference" on my block diagram and configure it to the bitfile.  I then create an indicator from the "Open FPGA VI Reference."  The FPGA VI Reference Out indicator does not have a coercion dot.  This seems reasonable.  

2) If I then configure the indicator and select "Import from Bitfile" and select the same exact bit file then a coercion dot appears.  

Capture.PNG

 

Does this make sense and is there a way to eliminate the coercion dot?

 

 

 

 

 

Mark | CLA
0 Kudos
Message 1 of 11
(4,574 Views)

If you are selecting the exact same bitfile, then that seems like a bug. The type of the reference wire coming out of the node describes the interface to the FPGA application, and for the same bitfile that interface should be identical.

0 Kudos
Message 2 of 11
(4,524 Views)

Yes, that is what I am thinking too.  

Mark | CLA
0 Kudos
Message 3 of 11
(4,493 Views)

Hello Mark,

 

What version of LabVIEW is this running on? And can you please attach your project? If this is indeed a bug, I can file a Corrective Action Request to bring this to the attention of our developers.

 

Eric

Applications Engineering

0 Kudos
Message 4 of 11
(4,471 Views)

Hi Eric,  

I am running LabVIEW 2015 Service Pack 1 (version 15.0.1f7, 32-bit)

I used the Cloud Compile server to create the bit file.

 

I do have several other versions of LabVIEW on my computer.

 

Attached is a Test Project that shows the issue.  

Look at the comments in the block diagrams to see the sequence that show how the coercion dot appeared.  

 

 

Mark | CLA
0 Kudos
Message 5 of 11
(4,463 Views)

By the way, my original intent was to modify the FPGA code from a project I created using the Sample Project "LabVIEW FPGA Waveform Acquisition and Logging on Compact RIO."  

I kept coming up with broken wires and also this coercion dot.  So I narrowed it down to just re-configuring the indicator. 

What I really want to do is to somehow update the Global FPGA Reference in the project I am making from the Sample Project.  

 

 

Mark | CLA
0 Kudos
Message 6 of 11
(4,462 Views)
Solution
Accepted by topic author Mark_L

@Mark_L wrote:

What I really want to do is to somehow update the Global FPGA Reference in the project I am making from the Sample Project.  


You can make an FPGA Reference into a type definition; then you only need to update the type definition and all the instances of it will be updated. Does that help, or did I misunderstand your question? Also, if the Open FPGA VI Reference function is configured with the Bind to Type Definition option, then when you reconfigure it to point at a different FPGA bitfile, it will update the type definition, overriding any changes you might have already made to that linked type definition. If you're using the Bind to Type Definition option, don't edit the type definition yourself.

Message 7 of 11
(4,459 Views)

Thank you Nathan.  I am going to try the Binding of an FPGA VI Reference. I'm trying to follow the instructions here 

http://digital.ni.com/public.nsf/allkb/2906287B989006EA862576AB005BE08E

 

I'll let you know if this works.

 

The Sample Project "LabVIEW FPGA Waveform Acquisition and Logging on Compact RIO"  does have a type def (not strict though).  

 

 

Mark | CLA
0 Kudos
Message 8 of 11
(4,451 Views)

After I posted I opened your project (I had to find a machine with LabVIEW 2016 first). It opens the FPGA reference in Dynamic mode, so binding to a type definition isn't an option. However, you can still use a type definition, you just need to create one from the indicator instead of binding it within the Open FPGA VI configuration.

 

Also, I didn't check if it's the case here, but note that you may see a coercion dot when you wire data to a type definition if the data source isn't that same type definition, even though the data itself is the same type. There's no downside or problem with a coercion like that, and it's not worth trying to avoid it.

0 Kudos
Message 9 of 11
(4,440 Views)

I still need some experience with understanding which is better to use Dynamic or Binding and when.  But for now the Bind FPGA host reference to type definition option is letting me go forward.  

 

Thanks.  

 

 

Mark | CLA
0 Kudos
Message 10 of 11
(4,431 Views)

This happens when the data cluster within that reference does not match that of the control or indicator. Front panel items, memory items, FIFOs, etc. and their data types are all contained within that reference wire and if they don't match between the sink and the source, it will coerce it.

 

To fix this problem, make sure all the FPGA VI items match perfectly between inputs and outputs you are trying to wire together.

0 Kudos
Message 11 of 11
(272 Views)