LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

BRAM Parallel read

Solved!
Go to solution
Solution
Accepted by ahmalk71

Yes but they have to be separate BRAM configurations.


Certified LabVIEW Architect, Certified Professional Instructor
ALE Consultants

Introduction to LabVIEW FPGA for RF, Radar, and Electronic Warfare Applications
Message 11 of 20
(2,211 Views)
Solution
Accepted by ahmalk71

@ahmalk71 wrote:

With other words I can read multiple BRAMS in parallel if insaide a SCTL? Or did I misunderstood your "Of course if you have multiple BRAMS, you can read each one simultaneously. In SCTL at least."?


Correct.

Message 12 of 20
(2,210 Views)

Well this is what I want to do, I create 32 memory Items in the project and drag them to the my FPGA VI. But I i don't create all of them manually, what I do is to create one and copay paste it into the project. I believe this is same as configuring each one manually. 

0 Kudos
Message 13 of 20
(2,200 Views)

@ahmalk71 wrote:

Well this is what I want to do, I create 32 memory Items in the project and drag them to the my FPGA VI. But I i don't create all of them manually, what I do is to create one and copay paste it into the project. I believe this is same as configuring each one manually. 


Yes, you can copy and paste in the project.  If you need to make a change, you need to go into all 32 of them.

I recommend using VI defined memory items where it gets configured in the VI and that VI is used over and over.  So a change in config means only one location needs to be changed.


Certified LabVIEW Architect, Certified Professional Instructor
ALE Consultants

Introduction to LabVIEW FPGA for RF, Radar, and Electronic Warfare Applications
0 Kudos
Message 14 of 20
(2,196 Views)

Never used that before, I'll look into it. thank you for your help. 🙂

0 Kudos
Message 15 of 20
(2,180 Views)

I'm with Terry.

 

VI-instantiated FPGA resources are definitely preferable to project-defined items.

0 Kudos
Message 16 of 20
(2,176 Views)

I agree, If you know how to do it 😞 Right now I struggling to figure out how to do this. If I create one VI-defined memory item I need to reference that to 32 reentrant VIS with write and 32 reentrant VI with read (two different loop for read and write). But how can I be sure that the VI I'm reading from is the one I wrote to. I mean If I write the channel 5 sample into the one of my 32 write vis how can I be sure that the right VI is used to read channel 5. I tried to find an example, but the only thing I find is how to configure one memory.

 

I looked at the description of VI-defined memory configuration nod. It says the following:

 

If you use a VI-defined memory item in a reentrant FPGA VI, LabVIEW creates a separate copy of the memory item for each instance of the VI to avoid resource conflicts.

Dose that mean that I should have the configuration node inside the reentrant VI? If so how on earth should I link that to the reader VIs.

 

 

 

0 Kudos
Message 17 of 20
(2,167 Views)

Best to take a step back and think about the whole thing more abstractly.  Whatever manages the BRAM should all be in one VI.  That extra time up front will save you time with code that is hard to manage.


Certified LabVIEW Architect, Certified Professional Instructor
ALE Consultants

Introduction to LabVIEW FPGA for RF, Radar, and Electronic Warfare Applications
0 Kudos
Message 18 of 20
(2,162 Views)

Thats gonna be a tricky challange 🙂

0 Kudos
Message 19 of 20
(2,160 Views)

@ahmalk71 wrote:

I agree, If you know how to do it 😞 Right now I struggling to figure out how to do this. If I create one VI-defined memory item I need to reference that to 32 reentrant VIS with write and 32 reentrant VI with read (two different loop for read and write). But how can I be sure that the VI I'm reading from is the one I wrote to. I mean If I write the channel 5 sample into the one of my 32 write vis how can I be sure that the right VI is used to read channel 5. I tried to find an example, but the only thing I find is how to configure one memory.

 

I looked at the description of VI-defined memory configuration nod. It says the following:

 

If you use a VI-defined memory item in a reentrant FPGA VI, LabVIEW creates a separate copy of the memory item for each instance of the VI to avoid resource conflicts.

Dose that mean that I should have the configuration node inside the reentrant VI? If so how on earth should I link that to the reader VIs.

 

 

 


Quite simple, you pass wires around. YOu can configure a sub-VI connector pane to be a BRAM FPGA reference of a specific datatype. You can then configure the BRAM in yourr top-level VI and pass it into 32 sub-VI instances....

0 Kudos
Message 20 of 20
(2,156 Views)