12-18-2020 05:23 AM
I am working on ZCU111 board. I made a design as follows. Now I want to control and be able to change phase, frequency and amplitude of the Sinewave on the fly. Is there anyway that can be done?
I can keep the phase offset and phase increment of the DDS block to be programmable or streaming which would add slave ports to DDS block as follows.
How to bring these to the external of the board and then tune them. Also there is only one slave port which is a bus. How to drive these signals from outside and how to bring these to the outside of board? What about Amplitude? Can we change amplitude of the sinewave also similarly on the fly? Please help. Thank You.
12-18-2020 06:28 AM
What I did on a Zynq ultrascale is to use a streaming interface and tied the tvalid signal high. Whatever was on the AXIS data pins was applied to the DDS. You can run the data pins to pins on your device or to a software writable register. Just be sure to synchronize the data to your sclk. As for amplitude, you will need to put in a multiplier or if you can live with 6dB steps, a shift register.
12-20-2020 11:36 PM
How can we take these signals out on the device? Also, I see that S_AXIS_PHASE is a 32bit wide data. What value of the S_AXIS_PHASE corresponds to a value in [0,360] degrees? I could not find the range of values information in DDS IP Datasheet.
12-21-2020 03:52 AM
Check the "Has Phase Out" box. You will get a phase port on the block diagram. Right click on the phase port. Choose "Make External". You will need to assign pins and an IO Standard in the xdc file. As for the second question, look in chapter 3, the Phase Increment section of the DDS Product Guide.