05-12-2015 04:20 PM
I am using at PXIe-7961/NI-6585. I am uisng a case structure to implement a state machine. I am trying to read data from block memory in one case and us that read data in another case on the next clock tick. I have the output of the block memory wired to a feed back loop outside the case structure (see attached). When I try to complie I get an error Internally pipelijned objects not connected to a feedback node.
The reason i am not doing the read and manimpulate in a single pipelined case is that i am reading the data out of block memory and into a fifo. I don't want the first read of nothing to be in the fifo. any thoughts would be great.
05-12-2015 04:46 PM
@bcat wrote:
The reason i am not doing the read and manimpulate in a single pipelined case is that i am reading the data out of block memory and into a fifo. I don't want the first read of nothing to be in the fifo. any thoughts would be great.
I would just use another shift register/feedback node to conditionally write to the FIFO. The FBN should be initialized to FALSE and always have TRUE being written to it. This way, the value coming out will be FALSE on the first iteration, but TRUE for all others.
05-12-2015 04:55 PM
BRAM requires the data output to be directly connected to feedback nodes to function properly. This is an inherent requirement of the phsyical component that is instantiated when a memory item that uses BRAM is created. Having the feedback nodes outside of the case structure create a construct that prevents the physical component from accessing the feedback nodes in a way that preserves data integrity, thus the compiler throws an error stating it has not been connected to the requiste feedback nodes.
05-13-2015 08:43 AM
That works well for the beginning where I don't want to load the defalt value into the fifo. What would you do about the end case where there is on remaining element to load into the fifo but I don't want try and read past the end of my memory?
05-13-2015 06:29 PM
Hey,
When you get to the last address you want to read, just read it 2 more times and have logic to throw away the next two values that come out of the feedback node