sb10q Add a SPI core to the FPGA design - driving the appropriate pins, add the SPI core channel to the RTIO core, add entries to the device database with the correct RTIO channel number for the SPI core, write AD9915 driver that talks to the DDS over RTIO and SPI core. That's how it is done for the Urukul or Mirny and there is no simpler way, the AD9915 is currently not supported, so you will have to write the code (or fund it and have it written).
Thanks for your replay. May be I was not clear with what I want to do. I want to use Sampler digital output channels to program AD9915 in serial mode. All what I need is to be able to use write() function on a particular channel (for example tt0) instead of using ttl0.on() delay() ttl0.off() 32 times to encode 32 bits of information. I guess that it should be much easier as spi2 is already configured for sampler as far as I understood from device_db.py
device_db.update({
"spi_sampler0_adc": {
"type": "local",
"module": "artiq.coredevice.spi2",
"class": "SPIMaster",
"arguments": {"channel": 53}
},
"spi_sampler0_pgia": {
"type": "local",
"module": "artiq.coredevice.spi2",
"class": "SPIMaster",
"arguments": {"channel": 54}
},
"spi_sampler0_cnv": {
"type": "local",
"module": "artiq.coredevice.ttl",
"class": "TTLOut",
"arguments": {"channel": 55},
},
"sampler0": {
"type": "local",
"module": "artiq.coredevice.sampler",
"class": "Sampler",
"arguments": {
"spi_adc_device": "spi_sampler0_adc",
"spi_pgia_device": "spi_sampler0_pgia",
"cnv_device": "spi_sampler0_cnv"
}
}
})