Generating Custom User IP Core in Vivado

  Рет қаралды 31,397

Vipin Kizheppatt

Vipin Kizheppatt

Күн бұрын

Пікірлер: 24
@motassynth1507
@motassynth1507 Жыл бұрын
I don't normally comment on videos, but your series of videos on Xilinx Zynq, Vivado and Vitis tools is superb! You cover the material at the right speed and you explain all the important details. You clearly understand these complex topics very well. I have watched about 10 so far on this series. Keep up the excellent work! Thank you.
@skabdulhaibasha3263
@skabdulhaibasha3263 6 ай бұрын
simple and clear explanation. Thanks very much Vipin
@SUPRATIKMONDAL
@SUPRATIKMONDAL Жыл бұрын
But sir, in this tutorial, you have written "assign leds = slv_reg0" . But sir, here the slave registers are 32 bits but the leds has a dimension of 8 bits, so, won't there be a bit size mismatch betwee leds and slv_reg0 in the mentioned instruction?
@chiragatreya530
@chiragatreya530 5 ай бұрын
I think AXI interconnect takes care of that
@Jocjabes
@Jocjabes 4 жыл бұрын
I remember hearing for loops cannot be done in always blocks because everything needs to be executed in that cycle. But there are for loops in GPIO IP block. How do they work for example say @25:23? Thanks in advance.
@Vipinkmenon
@Vipinkmenon 4 жыл бұрын
This may require a long explanation. It will be incorrect to say all for loops are non-synthesizable or all for loops are synthesizable. It depends on what the loop does and how smart the EDA tools are. But all for loops which can be statically unrolled are definitely synthesizable. For example you have a memory with depth 5 and you need to initialize it to 0 when reset come always @(posedge clk) begin if(reset) begin mem[0]
@TM-wd3pp
@TM-wd3pp 4 жыл бұрын
@@Vipinkmenon This indeed is very interesting, specifically, that both combinational and sequential logic can be mixed in a single always block. However, in your sorting example, you are using non-blocking assignment to storeData[addr] when dataValid is high, but then are using blocking assignments for storeData[j]= and storeData[j+1]= (within the else branch). If both non-blocking and blocking assignments are made to the same storeData element, how will the tool decide whether storeData should be actual register flops or just combinational signals? Also, you are using a nested loop, to successfully implement a bubble-sort algorithm, during each iteration of the outer loop where are the results of the inner loop being held? Thank you in advance for your time, your insights are quite helpful.
@Vipinkmenon
@Vipinkmenon 4 жыл бұрын
One thing we need to remember is that the HDL languages (both VHDL and Verilog) were developed not with an intention for logic synthesis but with an intention of modeling and some kind of short cut for storing the schematic representation of the circuit. Later when EDA tools developed further, they were adopted as input for logic synthesis also. So like any models, they are not perfect and seems Verilog has more imperfections. Some of them are induced by the synthesis tools itself. For example as I mentioned before Xilinx's ISE tools they didn't support mixing blocking and non-blocking, which actually make sense, or dividing by any number which is not a power of 2. In Vivado both these constraints are removed. But there are still some constraints like you cannot mix edge and level triggering in sensitivity list. So always @(posedge clk or reset) begin if(reset) c
@TM-wd3pp
@TM-wd3pp 4 жыл бұрын
@@Vipinkmenon This was an amazing explanation and has made things crystal clear for me. I also tried your bubble-sort code with a reduced storeData array size of only 4 elements, then looked at the Elaborated design schematic in Vivado. It perfectly matched the unrolled mux/comparator combo chain logic that I had drew by hand! You have really taught me something new about Vivado, thank you!
@Vipinkmenon
@Vipinkmenon 4 жыл бұрын
@@TM-wd3pp Thank you.. Happy coding..
@javeriaehsan369
@javeriaehsan369 Жыл бұрын
hello! where did you make the ip for reading 3 pixels at a time. I wanted to see that.
@mohsentarashi
@mohsentarashi Жыл бұрын
Hello. How do you do? Can you help me to create a custom IP-core for SPI module on Zynq 7020??
@amud234
@amud234 4 жыл бұрын
Your videos are really helpful. Could you keep a lecture on using the IP created in this video by exporting to SDK.
@Vipinkmenon
@Vipinkmenon 4 жыл бұрын
The next video is exactly that
@electroready9759
@electroready9759 2 жыл бұрын
Could you tell about how netlist file is generated?
@SUPRATIKMONDAL
@SUPRATIKMONDAL Жыл бұрын
Again sir in the instruction "slv_reg1 = switches" there would be bit size mismatch because switches is of 8 bits and slv_reg1 is of 32 bits. Please clear the doubt sir.
@kaverihatti7472
@kaverihatti7472 3 жыл бұрын
very useful video but i request how to use the MicroBlaze and UART connection on ZYNQ board
@jhallimisti205
@jhallimisti205 3 жыл бұрын
How to do the pin planning sir?
@dheerajchumble5602
@dheerajchumble5602 3 жыл бұрын
Excellent video sir. As a beginner doesn't get it exactly which file goes where, where to edit and all that. How much it takes to reach such a proficiency....
@Vipinkmenon
@Vipinkmenon 3 жыл бұрын
After doing 3-4 projects should get used to it
@dheerajchumble5602
@dheerajchumble5602 3 жыл бұрын
@@Vipinkmenon Thank you sir. Can you please suggest me some of the projects which can be done on zynq ultrascale+ mpsoc zcu104 evaluation kit and where i can get some basic tutorials regarding the same. I searched on internet, however nothing more than a 'Hello World' or single LED lowing program is there.This information will be really helpful sir
@rux17858
@rux17858 4 ай бұрын
bro can you show the result on the board
@iammituraj
@iammituraj 3 жыл бұрын
Bro can you make video with how to add interrupt to a custom IP in Vivado and use it in software?
@Vipinkmenon
@Vipinkmenon 3 жыл бұрын
There r many videos already in the playlist on it. Like the image processing IP
Drivers for custom IP
30:30
Vipin Kizheppatt
Рет қаралды 9 М.
Using Xilinx IP Cores Within Your Design
45:38
Vipin Kizheppatt
Рет қаралды 21 М.
Chain Game Strong ⛓️
00:21
Anwar Jibawi
Рет қаралды 41 МЛН
Quando A Diferença De Altura É Muito Grande 😲😂
00:12
Mari Maria
Рет қаралды 45 МЛН
Каха и дочка
00:28
К-Media
Рет қаралды 3,4 МЛН
Generating custom AXI4-Stream IP core using Xilinx Vivado
40:38
Vipin Kizheppatt
Рет қаралды 36 М.
Hardware Software Codesign 1
33:32
Vipin Kizheppatt
Рет қаралды 10 М.
Vivado Custom IP with Memory Mapped I/O
26:15
BOPV
Рет қаралды 26 М.
AI on FPGAs Explained
6:34
beetlebox
Рет қаралды 3 М.
The First Amiga Virus - Something Wonderful Has Happened
17:05
Modern Vintage Gamer
Рет қаралды 101 М.
In-System Debugging with Vivado Using ILA Core
43:58
Vipin Kizheppatt
Рет қаралды 40 М.
PCIe on Xilinx FPGAs
1:00:30
FPGA Zealot
Рет қаралды 17 М.
Google’s Quantum Chip: Did We Just Tap Into Parallel Universes?
9:34
Developing application software for Xilinx AXI DMA
1:11:12
Vipin Kizheppatt
Рет қаралды 32 М.
Chain Game Strong ⛓️
00:21
Anwar Jibawi
Рет қаралды 41 МЛН