Semiwiki 400x100 1 final
WP_Term Object
(
    [term_id] => 42
    [name] => AMIQ EDA
    [slug] => amiq-eda
    [term_group] => 0
    [term_taxonomy_id] => 42
    [taxonomy] => category
    [description] => 
    [parent] => 157
    [count] => 28
    [filter] => raw
    [cat_ID] => 42
    [category_count] => 28
    [category_description] => 
    [cat_name] => AMIQ EDA
    [category_nicename] => amiq-eda
    [category_parent] => 157
)

Adding an AI Assistant to a Hardware Language IDE

Adding an AI Assistant to a Hardware Language IDE
by Tom Anderson on 10-31-2024 at 10:00 am

dvt ai assistant

I’ve been working with AMIQ EDA for several years, and have frequently been impressed by new capabilities in their Design and Verification Tools Integrated Development Environment (DVT IDE) family. They just announced AI Assistant, which leverages large language model (LLM) technology. LLMs are much in the news these days, so I interviewed AMIQ EDA R&D Engineer Serban Ionica to learn more about their solution.

What is AI Assistant?

It’s a new feature of our DVT IDE family that helps hardware engineers be even more productive when developing code for the design and verification of complex chips. The knowledge contained in LLMs, when combined with our own insight into the design and testbench, enables users to generate, modify, and understand code more easily.

We’ve all seen tools like ChatGPT generate code; how is this different?

That’s a great question. Like any LLM-based solution, AI Assistant uses all the knowledge accumulated over the years to generate correct code for specific tasks. One reason that our approach is different is that the generation happens in the context of our DVT IDE, which compiles all the design and verification code. It also builds and maintains a project database that the users can query. They can compose requests including information from the compilation database, and the LLM can leverage sections of code or other design and verification artifacts to improve the accuracy of its responses.

How does users know that the generated code is acceptable for their project?

Any code in the IDE, whether entered manually or generated, is incrementally compiled and checked. In addition, our Verissimo SystemVerilog Linter can incrementally check for any violations of project coding guidelines. Users can type something like “create a SystemVerilog 8-input round-robin arbiter” and the generated code will meet all the same requirements as code written by hand. 

Is AI Assistant used only for generating new code?

It can also explain or improve existing code. Often an engineer inherits code from other projects and would like to understand what it’s doing. Typing “explain the highlighted code” or “make the highlighted code faster” leverages the knowledge embedded in the LLM in the context of the user project. This significantly increases code development efficiency.

Is it a lot of work to start using the new feature?

We make usage easier with predefined LLM interactions called blueprints. DVT IDE ships with a set of blueprints that can be used out of the box for performing common coding tasks. Blueprints can be used directly in the editor window or in a chat window. Users can define their own library of blueprints based on the fully transparent predefined blueprints as examples. Thus, reusable LLM interactions in the form of blueprints can be shared across the entire project team. 

Did you develop your own LLM or include an existing one?

We do not include an LLM. We found that most users have preferences or even company requirements for using specific LLMs. Instead, we tested extensively to be sure that we support popular LLMs from OpenAI, Github Copilot, Google AI, and locally hosted Ollama as well in-house proprietary LLMs. We are open, flexible, and transparent.

How do you handle concerns about leaking proprietary information to cloud-based LLMs?

That’s where transparency comes in. Users can preview all communication with third-party LLMs to ensure that no confidential information or proprietary IP is being transferred. We are well aware of industry concerns that some AI tools seem to be doing things users cannot control or even understand. We ensure that this is not the case for AI Assistant.

Was this new feature a big step for AMIQ EDA?

It certainly was a significant project that took us in some exciting new directions, but it is a natural extension to features we have had in DVT IDE for years. Auto-correct, quick fix suggestions, code templates, and refactoring all involve some amount of code generation. The power of LLMs enables us to take users to the next level of productivity.

Are you underselling the value of your solution?

Make no mistake: AI Assistant is a real-world, sophisticated application of LLMs and AI technology that is valuable today. However, we’re not draping our show booths in huge banners that say things like “THE AI EDA Company” as some vendors do. We want to focus on the value to users and not trumpet AI for its own sake. We also recognize that the nature of LLMs and generative AI (GenAI) means that their results improve over time. This initial release is powerful, but our capabilities will get even broader with lots of hands-on experience. Developing any advanced EDA technology is really a partnership between a vendor and its users.

Finally, is AI Assistant a new product or feature that users must pay for?

It is included at no extra cost in the latest release of both DVT IDE for Visual Studio (VS) Code and DVT Eclipse IDE. We want all our users to be able to take advantage of this new feature and we want to benefit from their usage as we evolve it further.

Thank you for your time, Serban.

You’re most welcome, and thank you for the opportunity to talk.

Also Read:

Writing Better Code More Quickly with an IDE and Linting

AMIQ EDA Integrated Development Environment #61DAC

Handling Preprocessed Files in a Hardware IDE

Share this post via:

Comments

There are no comments yet.

You must register or log in to view/post comments.