As for today, this is still a very informative and useful video. I was able to reproduce it on zcu102 with 2018.3 version of the tools. There are some differences here and there, but the principles are the same. Thank you very much for the high quality contents!
It is so much easier to follow your instructions videos, compared to searching in Xilinx' s pdf's for the information I need. I have 3 monitors connected to my desktop. The middle with your video in Full HD. My Vivado on the right screen and my SDK on the left. Then, just pause the video and replicate what you are doing :)
AN UPDATE THAT WILL HOPEFULLY HELP OTHERS. As everyone has said, thanks for this, it's invaluable, I've been able to recreate something very similar with Vivado 2019.2 The XMD shell used above has been dropped but they provide the new "Xilinx Software Command Line Tool" XSCT whicg appears to do the same thing. There are multiple cores now so the commands have changed a bit.......... Open the XSCT shell Navigate to your working directory (tcl shell, directory separators are / not the windows \) Type "connect" , this should connect the shell to the JTAG server (I think) In order to decide what target you want to select type "targets". (We're talking to the PSU so note that number down (5 in my system), you can skip this when you know the number) Type "targets 5" (or the number you selected above) Type the following..... "source init_psu.tcl" "psu_init" "psu_post_config" "psu_ps_pl_reset_config" "psu_ps_pl_isolation_removal" The clocks to the PL should now be configured, the reset removed and the FPGA logic can be programmed and interacted with like normal (I think this can probably all be done with a single tcl script). [Update] I think you have to change the target to one of the ARM cores to do a memory read or write operation. [/Update]
Hi Dr. MohammadSadegh. I have question, at 55:01, I see 1st and 2nd adress line is base on M_AXI_GP0 address because it connect to M_AXI_GP0 of PS. But how do I can check if 3rd adress line is correct or not? which address it base on? I check in TRM that C000_0000 is reserved address. Why we assign it to reserved address? Thank you.
What did your trigger script do to cause the DMA to perform the transfer? PG034 says "Write the number of bytes to transfer to the CDMA Bytes to Transfer (BTT) register ... Writing to the BTT register also starts the transfer."
Dr. Sadri I tried to use CDMA for transferring large data from DDR to block ram but if I store my data on different locatoin other than 0x00000000 the data transferred to Block ram is not the same(corrupted) is there any other location (other than 0x00000000) where I can store my data(its large around 64 k deep and 32 bit wide) on DDR ?
Hi Dr Sadri I have a question. How can i debug a signal many times with ILA? I am using vivado logic analyzer to debug the output from my hls design. How can i configure the analyzer to capture the data when multiple interrupts occur? Thanks
Studing AMBA specification is an overkill, because not all features are supported by Xilinx. For example the mentioned memory regions aren't supported at all. The primary reading for the topic should be Xilinx UG1037
Hi Sadri, I have a question on the zynq AXI GP port. At what clock frequency will I be getting data out of the zynq , is it the FCLK0 and when we send the data back to the Zynq it is the same clock frequency ?
Is there a tutorial that has just an extremely simple example like sending a variable floating point number from one block to another? Nothing fancy or even useful, just a simple exchange of data from one block to another.
Hi.....Myself Brijendra Sharma @IIT Kanpur, My questions are ........I want to boot the Zynq Ultrascale +MPSoC(XCZU9EG-2FFVB1156E) & RFSoC(XCZU28DR-FFVD1156) devices. So i need your help that how we can simulate such booting application on vivado Hlx edition software. Is there any simulation vedio?? Also in vivado when we create the new project, There is option of ports/ boards. Can we board for simulation for testing Booting. If yes than how we can do this job?? Please help me. Brijendra Sharma P Scientist @IIT Kanpur
These videos are a life saver! If only Xilinx made videos that were half as helpful...
Even in 2022, and with ZYNQ-Ultrascale+, these videos are useful. Xilinx (now AMD) should learn from this.
Dr.Sadri,
Thank you for this excellent series of lectures. Nicely done!
I look forward to watching all of them.
As for today, this is still a very informative and useful video. I was able to reproduce it on zcu102 with 2018.3 version of the tools. There are some differences here and there, but the principles are the same. Thank you very much for the high quality contents!
still here in 2023 using a Pynq-Z2 with Vivado 2022.1 😄
Valuable and informative session and i got good overview of using AXI. Thanks a lottttt. Expecting more lectures from you
It is so much easier to follow your instructions videos, compared to searching in Xilinx' s pdf's for the information I need.
I have 3 monitors connected to my desktop. The middle with your video in Full HD. My Vivado on the right screen and my SDK on the left. Then, just pause the video and replicate what you are doing :)
My Good man, after sever or so year...I am studying the same situation and I really really appreciate for sharing this video. Thank you brother.
Fantastic Sir. I commend you on your educational style. Both fundamental and extensive but humorous.
AN UPDATE THAT WILL HOPEFULLY HELP OTHERS. As everyone has said, thanks for this, it's invaluable, I've been able to recreate something very similar with Vivado 2019.2 The XMD shell used above has been dropped but they provide the new "Xilinx Software Command Line Tool" XSCT whicg appears to do the same thing. There are multiple cores now so the commands have changed a bit..........
Open the XSCT shell
Navigate to your working directory (tcl shell, directory separators are / not the windows \)
Type "connect" , this should connect the shell to the JTAG server (I think)
In order to decide what target you want to select type "targets". (We're talking to the PSU so note that number down (5 in my system), you can skip this when you know the number)
Type "targets 5" (or the number you selected above)
Type the following.....
"source init_psu.tcl"
"psu_init"
"psu_post_config"
"psu_ps_pl_reset_config"
"psu_ps_pl_isolation_removal"
The clocks to the PL should now be configured, the reset removed and the FPGA logic can be programmed and interacted with like normal (I think this can probably all be done with a single tcl script).
[Update] I think you have to change the target to one of the ARM cores to do a memory read or write operation. [/Update]
2023, I'm getting a bug where the last write address doesn't work the first time in cases. Also use -force to force a write/read across GP0
this video is pure gold. Dr. Sadr, thank you. We love you 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF.
Very educational and informative. Well done. Keep up the good work. It is very much appreciated.
Thank you Dr. MohammadSadegh for a most excellent tutorial. Well done!
It is the best video i have ever seen , thank you so much !
Excellent presentation!!!
thank you so much. your lecture helped me in viewing axi4 read/write transactions through ILA. previously i failed to get it by VIP.
Really helpful. Keep up the good work. Greetings from Technical University Of Crete Greece!!!
Thank you for this fantastic video lesson!! Learnt so much!!
Thank you so much for your great Video , its very helpful and well explained
Thank you very much for the effort and for the contribution you are making!
Thank for the excellent tutorials
Not all heroes wear capes.
Thanks for the excellent video! It is really helpful for me.
Really good. Thanks Mr. Sadri
Dr.Sadri :P
This is a wonderful lecture
Thank you very much :) The next Lecture will be online soon.
Excellent video
Great video, it looks like Weather Forecast
hope the useless technical training people @Xilinx watch and learn how to explain their system
They just want people to attend their courses for money.
Thank you, excellent!
Hi Dr. MohammadSadegh.
I have question, at 55:01, I see 1st and 2nd adress line is base on M_AXI_GP0 address because it connect to M_AXI_GP0 of PS.
But how do I can check if 3rd adress line is correct or not? which address it base on? I check in TRM that C000_0000 is reserved address. Why we assign it to reserved address?
Thank you.
Awesome video, really useful !
Excellent video, thanks!
Thanks for the video.
Thank you sir
Is the Block Memory on the PL side or the PS side?
What did your trigger script do to cause the DMA to perform the transfer? PG034 says "Write the number of bytes to transfer to the CDMA Bytes to Transfer (BTT) register ... Writing to the BTT register also starts the transfer."
Dr. Sadri I tried to use CDMA for transferring large data from DDR to block ram but if I store my data on different locatoin other than 0x00000000 the data transferred to Block ram is not the same(corrupted) is there any other location (other than 0x00000000) where I can store my data(its large around 64 k deep and 32 bit wide) on DDR ?
How can we repeat this exercise for Microblaze based system in Vertex 7 FPGA?
Thank you so so much !!!
Hi Dr Sadri
I have a question. How can i debug a signal many times with ILA? I am using vivado logic analyzer to debug the output from my hls design. How can i configure the analyzer to capture the data when multiple interrupts occur?
Thanks
Studing AMBA specification is an overkill, because not all features are supported by Xilinx. For example the mentioned memory regions aren't supported at all.
The primary reading for the topic should be Xilinx UG1037
Hi Sadri,
I have a question on the zynq AXI GP port. At what clock frequency will I be getting data out of the zynq , is it the FCLK0 and when we send the data back to the Zynq it is the same clock frequency ?
thank you.
Perfekt .
Is there a tutorial that has just an extremely simple example like sending a variable floating point number from one block to another? Nothing fancy or even useful, just a simple exchange of data from one block to another.
Hi.....Myself Brijendra Sharma @IIT Kanpur,
My questions are ........I want to boot the Zynq Ultrascale +MPSoC(XCZU9EG-2FFVB1156E) & RFSoC(XCZU28DR-FFVD1156) devices. So i need your help that how we can simulate such booting application on vivado Hlx edition software.
Is there any simulation vedio??
Also in vivado when we create the new project, There is option of ports/ boards. Can we board for simulation for testing Booting. If yes than how we can do this job??
Please help me.
Brijendra Sharma
P Scientist @IIT Kanpur