Wait….Did you say HDL Editor?

Productivity Boosting Features

Satyam Jani, Product Manager Software Division
Like(2)  Comments  (1)

Yes I did, but with no intention to start a holy war on which HDL editor is best. When it comes to HDL editors, each engineer has their own choice and I am not attempting to hurt any madly, deeply felt sentiments. My goal is only to bring the awareness to those using the HDL editor built into Active-HDL™ and to help them use it more efficiently.

There are two main categories for HDL editors (1) general purpose text editors, and (2) integrated text editors. Both have their own pros and cons, and in the end it is for each engineer to decide which suits their needs.

The HDL editor built into Active-HDL falls under the second category of integrated text editors. It offers many basic features (syntax highlighting, templates, columns selection, code folding, auto-formatting) as well as semantic features (code navigation, on-the-fly error detector), and also offers seamless integration with the simulator and version control system. The HDL editor in Active-HDL can be used with VHDL, Verilog, SystemVerilog, SystemC, C/C++, PSL, OVA, Perl scripts and Tcl scripts.

For more details, download the Tutorial: Creating HDL Text Modules, or you can also stream the related Demo Video, HDL Editor in Active-HDL.  Also, while this is probably not the platform to cover every feature, I’ve included more details below on a few select features that can help boost productivity. 

 

At the end of the day, quality of the code depends on the designer not which HDL editor you use, but your HDL editor certainly can help you write code more efficiently.

 

Happy coding…

 


Code Formatting:

Basic Features: Of course it has basic code formatting features such as syntax highlighting, auto-complete (not only keywords but also previously used words in text, e.g. identifiers), smart indent, column selection and code folding.

Auto-Format: It also has auto-format feature that allows users to format the code with single click using their own settings of tabs and space. This is particularly useful when you have received source code files from third party and if you want to quickly format it according to your own settings.

Code Template: Code templates are designed to improve the productivity by helping user write code much faster. It provides number of pre-defined templates as well use user-defined templates.

01-code_templates


Find and Replace: This is the most frequently used feature in HDL editor and it can save you unimaginable amount of time with the powerful features it offers.

02-find_and_replace

Expression: It allows you to use regular expression as well as pre-defined expressions such as “*”, “[]”, “^” etc.

For example –

ba*c matches bc, bac, baac, baaac, and so on

bac?d matches bacd and bad

x[0-9] matches x0, x1, x2, and so on

x[^0-9] matches xa, xb, xc, and so on, but not x0, x1, x2.

Find & Replace in Files/Folders: This feature crawls through specific files or specific folders to match the text. This is extremely useful when you want to expand your search region to multiple files or folders.

Search History: It remembers your recently searched items for repetitive usage.

03-search_history

Code Navigation:

Code navigation features are designed to help users quickly switch between the pieces of codes. In a typical design environment when you are dealing with hundreds if not thousands of files – navigation capabilities in HDL editor can save you a lot of time.

Code Browser: Code browser shows the structure of your HDL code by displaying key elements of the code, such as architecture, components, instances, packages, ports, signals etc. This makes it very efficient navigation tool because user can click on the structure and quickly jump to the related code.

04-code_browser

 

Code Analysis:

One of the biggest advantages of using integrated text editor is the code analysis capabilities. Unlike general purpose editors, HDL editor in Active-HDL is tightly integrated with compiler and simulator. This allows us to offer users a wide range of code analysis features such as – on-the-fly error detection, step debugging using breakpoints, errors/warnings on tooltip and value probes.


Error detection: Wouldn’t it be nice if HDL editor can detect the errors while you are typing the code? On-the-fly error detection enables users to detect errors even prior to compilation.

05-error_detection

 

Code Tracing: code-tracing is an important step in verifying your code functionality. It allows user to set a breakpoint on specific lines of code and check the object values during the simulation. When simulation is stopped on the breakpoint user can execute each line of code using step debugging.

06-code_tracing


Value Probes: Waveform viewer is a great tool to verify the object values but what if you want to quickly check value of object in HDL editor? Value probes in HDL editor allows user to find the object value by just hovering the mouse over the object during simulation which means you are no required to switch the focus from HDL editor to waveform viewer.

07-value_probes


 

Satyam manages Aldec’s leading FPGA design entry and simulation tool – Active-HDL. He received his B.S. in Electronics Engineering from Sardar Patel University, India in 2003 and M.S in Electrical Engineering from NJIT, New Jersey in 2005.  His practical engineering experience includes areas in Solid state electronics, Digital Designing and functional verification. He has worked in wide range of engineering positions that include FPGA Design Engineer, Applications Engineer and Product Manager.

  • Products:
  • Active-HDL
  • FPGA Design Simulation

Comments

scrolling lines in the HDL editor using the mouse wheel jumps 6 rows per click of the mouse wheel. Can this be changed? On the same computer, microsoft word scrolls one line per click, as does notepad++.
Cory A. over 3 years
Ask Us a Question
x
Ask Us a Question
x
Captcha ImageReload Captcha
Incorrect data entered.
Thank you! Your question has been submitted. Please allow 1-3 business days for someone to respond to your question.
Internal error occurred. Your question was not submitted. Please contact us using Feedback form.
We use cookies to ensure we give you the best user experience and to provide you with content we believe will be of relevance to you. If you continue to use our site, you consent to our use of cookies. A detailed overview on the use of cookies and other website information is located in our Privacy Policy.