We use a Socketed CLIP in our FPGA design. We are evaluating a new architecture to reduce resource usage and are looking at leveraging a simple dual-port Block RAM as interface for our system which ultimately send and receives over an 8-bit serial bus. We want to instantiate a 32 bit write port with an 8 bit read port BRAM in VHDL but have the 32 bit port run in a clock domain defined by our LabVIEW code. That is, we want to be able to assign the clock for the CLIP BRAM port in our LV code.
The idea is to utilise completely non-registered CLIP nodes for accessing the BRAM which, when instantiated means we are essentially writing directly to the CLIP BRAM from LabVIEW (we expose Data dnd Address busses). This only works well if we can guarantee that the clock can be specified by LabVIEW because our design may change at a future date and CLIP modifications are very expensive for us in both time and money terms because we don't do the changes in house. We also don't want to have to manage X different CLIPs with different clocks for different applications of the same code.
I know how we can pass a clock from CLIP to LabVIEW but how to do it the other way? Is it possible? Can we define a CLIP node as a Clock and simply feed a clock constant to it?
Solved! Go to Solution.
The CLIP Adder example that FlexRIO installs demonstrates how to do this. Go to the example finder and navigate to Hardware Input and Output>>FlexRIO>>FPGA Fundamentals>>CLIP Adder.
You may want to create a copy of the example on disk you can inspect the CLIP files. They are located at <LabVIEW>\examples\FlexRIO\FPGA Fundamentals\User CLIP\Adder.
You'll notice that the top level vhd file has a std_logic input on its port map named CLK. It doesn't matter what the name is, just thats marked as a std_logic input. When you go to create an xml file for you CLIP using the CLIP wizard, page 4 of 8 is the Basic Signal Settings page. This is where you define the signal as a clock. Once you've completed this you can now add the CLIP to your target. Once you've added it to your target you can add it to the socket and on the CLIP Socket property page there is a clock selections category. Select your clock and assign a clock from LabVIEW.