<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: LabVIEW FPGA Memory Compile Time Constants in LabVIEW</title>
    <link>https://ni.lithium.com/t5/LabVIEW/LabVIEW-FPGA-Memory-Compile-Time-Constants/m-p/4252630#M1237506</link>
    <description>&lt;P&gt;This would indeed be a very nice feature.&lt;/P&gt;</description>
    <pubDate>Wed, 31 Aug 2022 12:33:40 GMT</pubDate>
    <dc:creator>Elias_Faraclas</dc:creator>
    <dc:date>2022-08-31T12:33:40Z</dc:date>
    <item>
      <title>LabVIEW FPGA Memory Compile Time Constants</title>
      <link>https://ni.lithium.com/t5/LabVIEW/LabVIEW-FPGA-Memory-Compile-Time-Constants/m-p/4161376#M1201265</link>
      <description>&lt;P&gt;Hi All,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I am trying to circumvent the limitation that LabVIEW FPGA doesn't support 2D Arrays, by leveraging memory. Right now, I have to set the depth of the memory manually, such that when I change the 2D Array dimensions, I need to change my #rows constant, #columns constant, and #elements constant (the memory size). I am looking for a method that allows me to set the memory size based on compile time constants.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Does anyone know anything?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;Tom&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 30 Jun 2021 21:25:48 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/LabVIEW/LabVIEW-FPGA-Memory-Compile-Time-Constants/m-p/4161376#M1201265</guid>
      <dc:creator>tcapuano-aps</dc:creator>
      <dc:date>2021-06-30T21:25:48Z</dc:date>
    </item>
    <item>
      <title>Re: LabVIEW FPGA Memory Compile Time Constants</title>
      <link>https://ni.lithium.com/t5/LabVIEW/LabVIEW-FPGA-Memory-Compile-Time-Constants/m-p/4161456#M1201280</link>
      <description>&lt;P&gt;Hi Tom,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://ni.lithium.com/t5/user/viewprofilepage/user-id/648962"&gt;@tcapuano-aps&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Right now, I have to set the depth of the memory manually, such that when I change the 2D Array dimensions, I need to change my #rows constant, #columns constant, and #elements constant (the memory size). I am looking for a method that allows me to set the memory size based on compile time constants.&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Can you explain the term "compile time constants"?&lt;/P&gt;
&lt;P&gt;What is the difference of "compile time constants" to "constants in your code, evaluated when compiling the FPGA code"?&lt;/P&gt;</description>
      <pubDate>Thu, 01 Jul 2021 06:32:07 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/LabVIEW/LabVIEW-FPGA-Memory-Compile-Time-Constants/m-p/4161456#M1201280</guid>
      <dc:creator>GerdW</dc:creator>
      <dc:date>2021-07-01T06:32:07Z</dc:date>
    </item>
    <item>
      <title>Re: LabVIEW FPGA Memory Compile Time Constants</title>
      <link>https://ni.lithium.com/t5/LabVIEW/LabVIEW-FPGA-Memory-Compile-Time-Constants/m-p/4161581#M1201335</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks for the reply.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I guess there really isn't a difference in this context.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I can't find a method to create a Memory using Block Diagram defined size, so I am hoping that there is some other nob I can spin at the project level. Perhaps, I can implement a Conditional Disable Structure with project defined symbols.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Another example of a similar problem is that the Array Size of a Fixed Size Array is not a constant according to the compiler.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Regards,&lt;/P&gt;
&lt;P&gt;Tom&lt;/P&gt;</description>
      <pubDate>Thu, 01 Jul 2021 12:53:25 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/LabVIEW/LabVIEW-FPGA-Memory-Compile-Time-Constants/m-p/4161581#M1201335</guid>
      <dc:creator>tcapuano-aps</dc:creator>
      <dc:date>2021-07-01T12:53:25Z</dc:date>
    </item>
    <item>
      <title>Re: LabVIEW FPGA Memory Compile Time Constants</title>
      <link>https://ni.lithium.com/t5/LabVIEW/LabVIEW-FPGA-Memory-Compile-Time-Constants/m-p/4161589#M1201339</link>
      <description>&lt;P&gt;Hi Tom,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://ni.lithium.com/t5/user/viewprofilepage/user-id/648962"&gt;@tcapuano-aps&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;I can't find a method to create a Memory using Block Diagram defined size,&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;A memory block is created and defined in the project explorer. You can only use that memory block in your FPGA VI…&lt;/P&gt;
&lt;P&gt;Which memory block sizes are we talking about?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://ni.lithium.com/t5/user/viewprofilepage/user-id/648962"&gt;@tcapuano-aps&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Another example of a similar problem is that the Array Size of a Fixed Size Array is not a constant according to the compiler.&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;The result of the ArraySize function is a value (in a wire). Why should it be a "constant"?&lt;/P&gt;</description>
      <pubDate>Thu, 01 Jul 2021 13:07:02 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/LabVIEW/LabVIEW-FPGA-Memory-Compile-Time-Constants/m-p/4161589#M1201339</guid>
      <dc:creator>GerdW</dc:creator>
      <dc:date>2021-07-01T13:07:02Z</dc:date>
    </item>
    <item>
      <title>Re: LabVIEW FPGA Memory Compile Time Constants</title>
      <link>https://ni.lithium.com/t5/LabVIEW/LabVIEW-FPGA-Memory-Compile-Time-Constants/m-p/4161604#M1201349</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I agree that memory blocks are created and defined in the project explorer. This is the fundamental problem that I am trying to circumvent. The size of my memory block is a function of the #row and #columns of my matrix. Therefore, I would like to set the size of my memory block based on an equation that is resolvable at compile. This will make my API much more flexible.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I disagree with your argument that the size of a fixed array shouldn't be constant because it travels on a wire. All constants in LabVIEW still travel on wires. For comparison, this is how you can implement the behavior I would like in C. (&lt;A href="https://stackoverflow.com/questions/3388656/how-to-determine-the-length-of-an-array-at-compile-time" target="_blank"&gt;https://stackoverflow.com/questions/3388656/how-to-determine-the-length-of-an-array-at-compile-time&lt;/A&gt;)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;At this point, I guess these are more feature requests than anything else. I am just find it very difficult to implement good design practices in LabVIEW FPGA, given the limitations.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Another example is that there is no function that can initialize a Fixed Size Array.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;Tom&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 01 Jul 2021 13:59:43 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/LabVIEW/LabVIEW-FPGA-Memory-Compile-Time-Constants/m-p/4161604#M1201349</guid>
      <dc:creator>tcapuano-aps</dc:creator>
      <dc:date>2021-07-01T13:59:43Z</dc:date>
    </item>
    <item>
      <title>Re: LabVIEW FPGA Memory Compile Time Constants</title>
      <link>https://ni.lithium.com/t5/LabVIEW/LabVIEW-FPGA-Memory-Compile-Time-Constants/m-p/4161608#M1201352</link>
      <description>&lt;P&gt;Hi Tom,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://ni.lithium.com/t5/user/viewprofilepage/user-id/648962"&gt;@tcapuano-aps&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;The size of my memory block is a function of the #row and #columns of my matrix. Therefore, I would like to set the size of my memory block based on an equation that is resolvable at compile. This will make my API much more flexible.&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Nice ideas: did you post them in the FPGA-IdeaExchange?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Again: which memory block sizes do we speak about?&lt;/P&gt;
&lt;P&gt;Which API functions are we talking about?&lt;/P&gt;
&lt;P&gt;Can you attach an example implementation of the desired API?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://ni.lithium.com/t5/user/viewprofilepage/user-id/648962"&gt;@tcapuano-aps&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;For comparison, this is how you can implement the behavior I would like in C.&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;I guess that C code will not create code for a FPGA target?&lt;/P&gt;
&lt;P&gt;I still don't get the point of reading the size of a FixedSizeArray, create by you at edit time!? You already know its size, don't you?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://ni.lithium.com/t5/user/viewprofilepage/user-id/648962"&gt;@tcapuano-aps&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Another example is that there is no function that can initialize a Fixed Size Array.&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Simply place an array constant in your FPGA code and set its size: now you have your array initialized…&lt;/P&gt;</description>
      <pubDate>Thu, 01 Jul 2021 14:07:28 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/LabVIEW/LabVIEW-FPGA-Memory-Compile-Time-Constants/m-p/4161608#M1201352</guid>
      <dc:creator>GerdW</dc:creator>
      <dc:date>2021-07-01T14:07:28Z</dc:date>
    </item>
    <item>
      <title>Re: LabVIEW FPGA Memory Compile Time Constants</title>
      <link>https://ni.lithium.com/t5/LabVIEW/LabVIEW-FPGA-Memory-Compile-Time-Constants/m-p/4161646#M1201380</link>
      <description>&lt;P&gt;I think Tom would like is to define the size of his FPGA memory by e.g. a "conditional diable symbol" before he runs his FPGA compilation...&lt;/P&gt;
&lt;P&gt;Not sure if that is possible or not...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Regards, Jens&lt;/P&gt;</description>
      <pubDate>Thu, 01 Jul 2021 16:06:22 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/LabVIEW/LabVIEW-FPGA-Memory-Compile-Time-Constants/m-p/4161646#M1201380</guid>
      <dc:creator>JensG69</dc:creator>
      <dc:date>2021-07-01T16:06:22Z</dc:date>
    </item>
    <item>
      <title>Re: LabVIEW FPGA Memory Compile Time Constants</title>
      <link>https://ni.lithium.com/t5/LabVIEW/LabVIEW-FPGA-Memory-Compile-Time-Constants/m-p/4252630#M1237506</link>
      <description>&lt;P&gt;This would indeed be a very nice feature.&lt;/P&gt;</description>
      <pubDate>Wed, 31 Aug 2022 12:33:40 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/LabVIEW/LabVIEW-FPGA-Memory-Compile-Time-Constants/m-p/4252630#M1237506</guid>
      <dc:creator>Elias_Faraclas</dc:creator>
      <dc:date>2022-08-31T12:33:40Z</dc:date>
    </item>
  </channel>
</rss>

