Aldec Design and Verification
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. « Less
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 … More »
Wait….Did you say HDL Editor?
June 24th, 2013 by Satyam Jani
Productivity Boosting Features
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.
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.
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.
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.
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.
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.
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.
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.
Tags: Active-HDL, auto-formatting, c/c++, code analysis, code browser, code folding, code navigation, code template, columns selection, creating hdl text modules, HDL, hdl editors, on-the-fly error detector, ova, perl scripts, psl, syntax highlighting, system verilog, systemc, Tcl scripts, templates, value probes, verilog, VHDL
Category: Functional Verification