cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
tanvirheer
Visitor
Visitor
1,053 Views
Registered: ‎06-25-2018

Understanding IP Configurator Implementation

Jump to solution

Hello,

 

Vivado Version: 2017.4 (WebPack).

FPGA: Artix-7 Cmod-A7

 

I am new to using Vivado and I had a question regarding using the IP Integrator. From what I have read, the IP integrator allows to create simple digital circuit and a typical flow design; such as a block design that can be synthesized, implemented, and resulting in the generation of the bit-stream onto our FPGA.

 

So, I have the choice to either program my logic in verilog by manually creating the source files or use the IP integrator tool to generate my logic? This is my confusion.

 

To give an example, let's assume a simple program that turns the LED on when I push the button on my FPGA. This can be easily accomplished with 4 lines of Verilog code, leading to the synthesizing, implementing, and generating bit stream onto my FPGA.

 

However, if I want to use the IP integrator, I could initialize and configure an empty block diagram that consists of this same logic with same output? Basically, I wouldn't have to "write" the logic when I can implement it via block diagram system. Of course I would have to initiate the connections, inputs and outputs, etc. 

 

This was my main confusion, maybe someone could clear it out for me. I gave a very simple example but my goal is to maybe implement a logical abstracted circuit via IP integrator rather than write the verilog logic from scratch.

 

Hope this makes sense.

 

Thank You.

--------------------------------------------------------------------------------------
“If you want to find the secrets of the universe, think in terms of energy, frequency and vibration.” ― Nikola Tesla
0 Kudos
1 Solution

Accepted Solutions
kenryan2
Explorer
Explorer
1,172 Views
Registered: ‎04-22-2015

Well, yes and no.

 

At first glance it looks like a schematic capture tool - put down AND gates, flops, etc and wire them up to do what you want.  You can use it that way if you really want to, but that isn't what it's for.

 

Instead of putting down individual gates to do the job, imagine putting down blocks which represent high-level objects: a CPU, a UART, memory, etc.  That is what IPI does.  You can rack up a huge design rather quickly.

 

Use it with care though: there's a lot that goes on under the hood, and if you just drop blocks down and hook them up you can end up with something that doesn't really work and you have no way to find out why.  Xilinx has lots of wizards and automation but you cannot trust it to build something sensible for you - you have to know enough to check what it did and fix it if needed.

 

If you're just starting out with logic design, and really want to learn how to do design properly, I suggest ignoring IPI and doing everything in an HDL (Verilog or VHDL).  Your skills will then be directly portable to other devices and manufacturers.  Once you understand the basics and get reasonably good at it, then use the high level design tools when appropriate (and at that point you'll have opinions on what "appropriate" means to you. :-) )

 

Good luck,

 

ken

View solution in original post

1 Reply
kenryan2
Explorer
Explorer
1,173 Views
Registered: ‎04-22-2015

Well, yes and no.

 

At first glance it looks like a schematic capture tool - put down AND gates, flops, etc and wire them up to do what you want.  You can use it that way if you really want to, but that isn't what it's for.

 

Instead of putting down individual gates to do the job, imagine putting down blocks which represent high-level objects: a CPU, a UART, memory, etc.  That is what IPI does.  You can rack up a huge design rather quickly.

 

Use it with care though: there's a lot that goes on under the hood, and if you just drop blocks down and hook them up you can end up with something that doesn't really work and you have no way to find out why.  Xilinx has lots of wizards and automation but you cannot trust it to build something sensible for you - you have to know enough to check what it did and fix it if needed.

 

If you're just starting out with logic design, and really want to learn how to do design properly, I suggest ignoring IPI and doing everything in an HDL (Verilog or VHDL).  Your skills will then be directly portable to other devices and manufacturers.  Once you understand the basics and get reasonably good at it, then use the high level design tools when appropriate (and at that point you'll have opinions on what "appropriate" means to you. :-) )

 

Good luck,

 

ken

View solution in original post