rainwater Posted September 7, 2023 Share Posted September 7, 2023 (edited) Hello everyone About me I have never worked with an fpga before a few weeks ago (tang nano 9k) and have been researching the basics of fpga's to see how practical my next hobby project is. Ive been coding c for over 25 years (windows/linux) and arduinos for about 10. My main area of focus is industrial controls, manufacturing equipment, networking and process automation. I interface with a lot of plc's, modbus systems, and sensor arrays. Why am I here it was recommended that I look into the Eclypse Z7 to run my next big project. I have a rough idea how much "horse power" I need. And from what I have read so far about this board, it will have more than enough. I am needing a highspeed adc (+100msps), lots of storage(16g@+100MB/s), dsp and FFT processing and an mcu to run the user interface and post processing of the data collected. What I want to do. 1) Push a button to launch a procedure 2) control the timing and firing sequence of a few external appratus with high precision. 3) Store the adc data to the sdcard along with time stamps. 4) begin post-processing of the collected data Questions 1) Can the 1gig ddr3 ram be accessed by the mcu and fpga? If so, can the same data be shared between the two? Answer: Yes. Page 8, https://docs.xilinx.com/v/u/en-US/ds190-Zynq-7000-Overview 2) what is the maxium write speed of the micro sd socket? with the appropriate micro sd card, will it support uhs-i? 4) are there any additional i/o pins, not connected to the pmod or zmod sockets available for use? Not counting the leds or buttons. Edited September 7, 2023 by rainwater Link to comment Share on other sites More sharing options...
artvvb Posted September 8, 2023 Share Posted September 8, 2023 Hi @rainwater Quote 1) Can the 1gig ddr3 ram be accessed by the mcu and fpga? If so, can the same data be shared between the two? Answer: Yes. Page 8, https://docs.xilinx.com/v/u/en-US/ds190-Zynq-7000-Overview As you see, yes. One way to approach this would be to use Xilinx's AXI DMA controller to write data passed to it via an AXI stream interface into memory, and to read it back out into a separate AXI stream. In this scenario, the MCU coordinates transfers. Just so you are aware - for someone just getting into FPGAs, this is non-trivial. Quote 2) what is the maxium write speed of the micro sd socket? with the appropriate micro sd card, will it support uhs-i? Quoting the manual, "Both low speed and high speed cards are supported, the maximum clock frequency being 50 MHz. A Class 4 card or better is recommended.". In addition to any limits imposed by the PCB design, SD card, and Zynq chip itself, the level translator used limits the data rate to 15 MB/s. I'm not certain of the actual max rate, which may be lower than this. Quote 4) are there any additional i/o pins, not connected to the pmod or zmod sockets available for use? Not counting the leds or buttons. No, just Zmods and Pmods. Thanks, Arthur Link to comment Share on other sites More sharing options...
rainwater Posted September 8, 2023 Author Share Posted September 8, 2023 Thank you for your reply. A more accurate and detailed description of what Im trying to build can be found over at eevblog. This is where the Eclypse Z7 was recommended. Do you have any suggestions that will enable me to store 30 seconds (7.5gigs) of adc data on board? Any advice or suggestions are greatly appreciated. Even search terms are helpful. Plan b is to use a ring buffer or FIFO in memory, then start buffering data As this occurs, open a file on the sd card and begin storing the data. The difference in transfer rates will allow me to squeeze a little more recording time in. Plan C is to compress the data being stored. Compress is not a good description. The data stream will consist of pulses of 3-10nS lengths with empty space in-between (30-40nS). The important data I need to collect is the pulses, and the length of time between the start of these pulses. I could optimize the data stored by buffering everything, detect these pulses and use time stamps to slice the useless information out. This would be complicated but reduce the amount of data being recorded. This is what I planned on doing in software anyways, and already have the code written. With ideal inputs, this procedure has reduced my test data by 65%. If this figure holds with real data this decrease the transfer rate to about 90mb/s or 2.6g over 30 seconds. Plan D, is to send the data over ethernet for storage on a pc. I would really like to keep everything on the dev board for post processing. This option does not make use of the board's true potential. Thank you for your time. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now