Vivado ML 2024.2 Developer AMI
Extensive low-level design has enabled robust FPGA integration and reliable timing closure
What is our primary use case?
My primary use case for AMD Vivado Design Suite is RTL development in VHDL targeting AMD FPGAs and SoCs. I also use it extensively for system integration, combining RTL modules with designs generated through High-Level Synthesis (HLS) and MATLAB/Simulink.
I use Vivado across a wide range of projects. For example, I have developed FPGA-based prototypes for industrial automation systems and recently automated the integration of third-party IP cores into FPGA-based subsystems. Vivado is the central tool in my FPGA development workflow, from RTL implementation to final device integration.
How has it helped my organization?
AMD Vivado Design Suite has had a positive impact on our organization because it is the reference implementation environment for AMD FPGA and SoC devices. It represents the final integration stage of our FPGA development flow, where all hardware components come together before deployment.
Its stability and robustness are essential because every project ultimately passes through Vivado for synthesis, implementation, timing analysis, and bitstream generation.
One of the biggest benefits is the quality of the reports and diagnostics generated during implementation. Vivado provides detailed timing reports, implementation statistics, and design rule checks that help us identify problems early. However, interpreting some warnings and timing reports can still require significant experience, and determining the best corrective action is not always straightforward.
What is most valuable?
The most valuable aspect of AMD Vivado Design Suite is its comprehensive low-level implementation flow together with the ML-based implementation strategies introduced in recent releases. These capabilities help improve timing closure and provide better implementation results for complex FPGA designs.
When working on timing closure and Static Timing Analysis (STA), these implementation strategies are particularly valuable because they often improve placement and routing decisions while helping achieve timing requirements more efficiently.
Another important feature is Vivado's infrastructure for developing reusable IP cores compliant with the IP-XACT standard. This greatly simplifies subsystem integration and enables reusable hardware architectures across multiple projects.
I also appreciate the flexibility offered by Vivado during synthesis and implementation. The ability to select different optimization strategies and apply custom implementation constraints allows developers to tailor the design flow according to the specific requirements of each FPGA project.
Another valuable capability is interoperability with third-party tools. I have extensive experience using Synopsys Synplify Premier, particularly for space applications involving Triple Modular Redundancy (TMR), Clock Domain Crossing (CDC) verification, and complex FPGA architectures. Integration with tools such as QuestaSim, ModelSim, MATLAB, and Vitis enables a complete and flexible development workflow.
What needs improvement?
One area where AMD Vivado Design Suite could improve is helping developers better understand the root causes of implementation problems. While Vivado provides excellent support for VHDL, Verilog, and SystemVerilog development, physical implementation remains highly dependent on the engineer's experience.
An AI assistant capable of analyzing timing reports, constraints, placement decisions, routing congestion, and implementation results could significantly improve developer productivity, especially for high-frequency and high-performance FPGA designs.
Another improvement would be better support for integrating domain-specific scripting languages into subsystem generation. The recent support for P4 is a step in the right direction, but integrating additional scripting languages and design-generation frameworks would make it much easier to automate subsystem creation and third-party IP integration.
Finally, implementation times can become quite long on very large designs. Although FPGA devices continue to grow in complexity, reducing synthesis and implementation times would significantly improve overall development productivity.
For how long have I used the solution?
I have been using AMD Vivado Design Suite for over 20 years.
What do I think about the stability of the solution?
In terms of stability, I find that the latest version of AMD Vivado Design Suite is quite stable, especially when using the command line interface, allowing for fast operations without a GUI. I have not encountered crashes or problems, although using important constraints such as the DCP format during design is necessary.
What do I think about the scalability of the solution?
Scalability within AMD Vivado Design Suite is inherent, as one can manage projects in various ways, importing half products such as EDIF and RTL for completion within Vivado, as well as generating projects and integrating semi-products from third-party tools without issues, although middle formats for low-level integration are required.
How are customer service and support?
My experience with customer support for AMD Vivado Design Suite has been very positive. I have been in direct contact with AMD and received valuable advice for past issues, and I find that the community provides a wealth of information on resolving various problems related to constraints and TCL scripting issues at a low level.
Which solution did I use previously and why did I switch?
Before using AMD Vivado Design Suite, I worked with ISE for the previous FPGA versions, and I switched to Vivado because it is essential for the latest products such as Ultrascale and Versal, making this transition mandatory.
Which other solutions did I evaluate?
Currently, I do not evaluate other options when it comes to using AMD Vivado Design Suite for physical implementation. However, I do consider switching to a tool with greater synthesis capabilities from the Synopsys family in the near future for synthesis purposes.
What other advice do I have?
To others considering using AMD Vivado Design Suite, I recommend that it can be a fantastic tool for various applications, emphasizing the importance of integrating with third-party software. I previously mentioned that improving the interface with external tools such as P4 scripts for the development of various applications is essential. Although the code generated from third-party tools is often not optimal, Vivado does provide optimization capabilities for that code, so it would be beneficial to improve the generation quality of code from external tools. I would rate my overall experience with AMD Vivado Design Suite as a 10.
Integrated design suite has streamlined FPGA projects but still needs faster analysis and schematics
What is our primary use case?
My main use case for AMD Vivado Design Suite is FPGA development. I used it to develop a game where I designed a game on a Nexys board, and I also used it for an asynchronous communication system on an RT-AXA7 board.
What is most valuable?
The best features AMD Vivado Design Suite offers include integrated IPs, which is the best thing. If you design anything, you can see everything in AMD Vivado Design Suite, including the schematic view, timing analysis, simulation waves, and tools to test the device internally.
I find myself using simulation and schematic the most because whatever I developed, I need to test, so I used the simulation and schematic mostly, along with the performance analysis tools as well.
AMD Vivado Design Suite has positively impacted my organization because it helped very well by having everything in one tool. You don't need to go for another tool for simulation. While we have some other tools as well, for development and simulation, you have to use one tool, and in AMD Vivado Design Suite, everything is included, which saved me time and made it easy to operate.
What needs improvement?
AMD Vivado Design Suite could be improved regarding speed. Sometimes it will take so much time to show the schematics and performance analyzing tool.
For how long have I used the solution?
I have been using AMD Vivado Design Suite for the last two years.
What was our ROI?
I estimate that I can save ten days on a six-month project by having everything in one tool.
What other advice do I have?
If you are developing any device using AMD Vivado Design Suite, you can check from the beginning to the end of the entire device development cycle.
I gave AMD Vivado Design Suite a rating of six out of ten because while we have everything, it is very slow, and it is also not free; it is licensed.
Regarding AMD Vivado Design Suite's AI capabilities, I think its governance and security are good. Regarding AMD Vivado Design Suite's AI capabilities, I believe the accuracy and reliability of output are good.
I am not sure which cloud provider we are using. I have no experience with pricing, setup cost, and licensing. My overall review rating for AMD Vivado Design Suite is six out of ten.
Fpga workflows have become highly automated and now support fast AI accelerator development
What is our primary use case?
I primarily work with FPGAs, specifically AMD and Xilinx FPGAs, so I use AMD Vivado Design Suite for both SOC-based software design as well as hardware design, which goes on to the fabric, and I use their HLS tools as well.
I have been working on a machine learning-based accelerator design on an FPGA called the A-LINX VD200, which is basically a Versal-based SOC and FPGA on a single chip. I have used that to design my software to use the accelerator that I designed on the FPGA. The software which runs on the CPU that is present on the Versal device runs some algorithm; in my case, it is a simple matrix multiplication, and it offloads the instructions to the accelerator that I designed on the FPGA part. I have designed this using AMD Vivado Design Suite.
One other specific use case that picked my interest was exploring DPI-C based emulation environments using AMD Vivado Design Suite. I have a project that I have been working on for a while wherein I was trying to design a mock device for FPGA for the JTAG protocol. I envision having a mock that acts as a JTAG device, developed in C++, and I would like to use this model and connect it with my protocol analyzer, which is basically an RTL code that I dumped onto the FPGA. I have an RTL code and I want to have an environment where my design talks to the mock, the C++ mock. I have been trying to use the DPI-C based communication between the SystemVerilog and C++ module in AMD Vivado Design Suite, and I am primarily exploring the XSIM capabilities to do this using CLI. This has been a unique workflow that I have been working on lately.
If people are working on FPGA design, AMD Vivado Design Suite is the one go-to tool that I would recommend for everyone. It is very user-friendly to use and it gets into the crux of how to work with the FPGAs and primarily the Vivado tool itself in their toolkit. If people feel complicated with the SOC aspects and working with them using Vitis toolkit, I would at least recommend them to definitely work on the Vivado tool and explore its capabilities, and then understand how to actually improve your use case and how to make your use case FPGA-inclined and make the best out of it. I would recommend looking into AMD's toolkit and exploring options on how to achieve that.
What is most valuable?
There are a lot of valuable features when it comes to AMD Vivado Design Suite. I primarily appreciate their support for CLI; pretty much all their tools support CLI, which helps me with automating different workflows right from RTL synthesis, implementation, bitstream generation, building the C++, and creating Xcel-Bin packages and other automation tasks.
Nowadays using AI-based agents to perform automation makes much more sense with tools supporting CLI, and AMD Vivado Design Suite is right at the top when it comes to FPGA-based development environments. I have been using these agents to design scripts for me to basically automate all the work that I have been working on. I used to spend more than a week to come up with a script once I have my design ready, and for incremental changes on top of that, this script used to help me fasten the process through rebuilding and regenerating the bitstreams, testing, and other tasks. Now using AI-based integration for generating CLI scripts, it has fastened the process much faster, so I can complete this whole respawning of things within a day.
AMD Vivado Design Suite provides a very powerful FPGA platform. I particularly appreciate the CPU and FPGA integration, which is pretty strong. All the use cases these days require heterogeneous compute where I need multiple kinds of devices in a single place in order to really make the best out of the device and also tune my use case accordingly in order to get the best results. In my work, it is about bringing the best throughput and the best latency out of the device, and all these capabilities and the strong AMD Vivado Design Suite helps me to achieve these goals.
The time saved in development is a bigger factor. I could not go into specific details of how I improved the throughput or latency using an FPGA device as that is more of a design challenge, but when it comes to the tool perspective, for all the reasons that I have mentioned before, the CLI support, pretty strong tool set, and all of that at one place helps me to reduce my development time much and made it a much shorter process.
What needs improvement?
The UI aspects of the tools could be improved personally. I have been looking at CLI aspects much more as compared to the UI aspects, and I feel at many times I get confused with the options that are actually available in the CLI through the dash parameters to the commands they offer, and finding an equivalent in the UI has always been a hassle for me. A better way to design a UI or documenting it would be helpful.
In summary, having both CLI and UI on a single page and helping users like me find the correlation between a specific option in both CLI and UI and making that workflow much easier is a significant improvement that AMD could possibly work on.
The only disadvantage would be the CLI and UI not being on the same page, and I personally have run into a lot of issues on that aspect. That actually pulled me from giving a perfect rating.
For how long have I used the solution?
I have been in hardware design for more than five years.
What other advice do I have?
The rest of the tool set is pretty much stable. One other thing to highlight is their PetaLinux support for developing Linux-based SOC applications which run on the FPGA board. It has support for scripting-based automation, and that is another capability which I really appreciate, which I do not think other providers like Altera or Microchip tools support.
When it comes to AI capabilities, I think their Versal device set is a pretty strong contender out there, and pretty much their AI engine and Versal NOC, all of that has been designed for AI use cases, so their capabilities are pretty strong, but I am not entirely sure on their governance or security aspects as I have never thought about it in depth.
AMD Vivado Design Suite is pretty good, particularly with the Versal toolkit. I have been able to use their tools and follow their documentation, tune their example code base for my use cases with the project on my AI accelerator design on the A-LINX board, and I think it is pretty strong.
This interview was pretty interesting, and to be honest, it is my first interview with AI, and I really appreciate the way the questions were asked and how they touched upon the aspects which I was really looking for in this interview, going into the specifics of the tool and the way I used it, and the kind of questions that were asked to gain more insights on my workflow. My overall rating for AMD Vivado Design Suite is eight out of ten.
Fpga design flow has streamlined video research and optimizes complex real time projects
What is our primary use case?
My most appreciating and most fascinating project with AMD Vivado Design Suite was my final year project, which was video enhancing for better communication on an FPGA. For the IP integrations and our RTL designs, I have used AMD Vivado Design Suite. I have also made many projects on cryptography, on MUXes, and on AR and VR, but my most major project is my final year project.
The project with AMD Vivado Design Suite is a driven video enhancement system. The goal is to transmit a low resolution, such as 240p, and enhance it to 3x, 720p, making the pixels more robust and accurate for about seven times to the original video I got. I have used FSRCNN, which is custom-made. I have not gotten it from any website. I made it myself. The project focuses on improving video quality while reducing transmission bandwidth requirements. Currently, I have developed and trained the CNN model in Python and am working on understanding its optimization. I have implemented all the components, including making IPs of my CNN model in AMD Vivado Design Suite, working with GPUs, making reference files, and making a chip of my FPGA project, which is video enhancing, so that it gets the enhanced image of 480p.
What is most valuable?
AMD Vivado Design Suite played a major role in FPGA integration. It provided a complete design flow of RTL development, bitstream generation, synthesizing the hardware design, performing implementation, analyzing timing, and verifying the timing diagram. One of the most important roles was that I got the IP of my CNN, but I had to integrate it with all the other components including Artix-7, interconnects, DMAs, and other components. I used those components.
The most important and valuable task of AMD Vivado Design Suite was its optimization. For example, if I got an FPGA board of Artix-7 20T, and I was facing the same problem, I got lots of DSPs, about 220 DSPs, but when I synthesized the program, the DSPs went out of the range. They demanded 300 flip-flops, about 80 above its maximum range it can reach. I found an option in AMD Vivado Design Suite where I can easily degrade and optimize my code so that it would get for about 220, less than 220 DSPs, so that they could be utilized even better.
The best feature AMD Vivado Design Suite offers in my experience is its automatic optimization. I can optimize things, including flip-flops and timing. For example, if I am working on an RTOS project and I want real-time performance, it must be a timing issue. AMD Vivado Design Suite provides me an automated, real-time timing diagram, and that could fix any issues in the RTL design that could affect the timing.
What needs improvement?
AMD Vivado Design Suite can be improved in some of its components. For example, if I want to do something on my Artix-7 or any PS side, I need to plan for three or four attempts and then I find the solution. I think it can be improved by just a bit more help, and the integration of AI is a must. It must tell me that I need to make this correct or that correct.
For how long have I used the solution?
I have been using AMD Vivado Design Suite for about two years.
What other advice do I have?
This automation in AMD Vivado Design Suite has saved me a lot of time. For example, as I was working on my FPGA Final Year Project (FYP), and it was pretty much extensive and hard, that optimization design feature really helped me a lot.
AMD Vivado Design Suite could be decomposed into many little parts, for example, in seconds. I can exactly view where the hysteresis loss is happening and where the signal is losing its hold.
AMD Vivado Design Suite has positively impacted my organization. I usually use AMD Vivado Design Suite. It really helped me in my studies and research.
Using AMD Vivado Design Suite has helped me personally be more productive and improve the quality of my work. I would rate this product an 8 out of 10.