Tuesday 23 May 2017

Developing & Delivering KnowHow

Home > Knowhow > Perl for Hardware Designers

Perl for EDA

Perl is a high-level programming language. Larry Wall invented Perl and thousands have contributed their time making it a very powerful tool. Perl borrows heavily from the C programming language and copies the really useful bits from sed, awk, Unix shell, and many other tools and languages.

Perl Productivity

Perl's process, file, and text manipulation facilities make it particularly well-suited for tasks involving automatic code generation, report filtering, netlist patching, generating test vectors and controlling tools.

Perl is FREE so maybe you should use it too.

These pages offer advice and examples for improving design productivity through with Perl.

Quick Start Perl

In just just 20 minutes this tutorial shows you the core elements of the powerful Perl language. Start filtering netlists and generating reports straight away. Make time today to learn some Perl.

Quick Start Perl Tutorial

Automatic Code Generation

Perl has been used for translating between related languages: VHDL to Verilog, Xilinx Netlist Files to VHDL, VHDL to SystemC, etc. Source files with low originality are prime candidates for automatic generation.

VHDL engineers regularly write testbenches. We've written an online demonstration to show you how Perl can do it for you.

VHDL Testbench Creation Using Perl

Perl is also useful for Coding Style conformance checking and enforcement.

Report Filtering

EDA tools are notorious for creating verbose report files. Many megabytes of text may contain little interesting information. Perl is well matched to extracting key information quickly.

Netlist Patching

EDA tools within design flows never fit together perfectly. Often, really useful features are unsupported. Netlists generated from one tool need modifying before the next tool will read them. Perl is well matched to intelligent search and replace jobs.

SDF File Patching Using Perl

Generating Test Vectors

Perl can apply rules for generating sophisticated test vector patterns: ATM packets, MPEG streams, QAM samples with added noise, etc.

Controlling Tools

Perl is able to call any tool installed on its host computer. Perl can even run Telnet and FTP sessions to control remote computers. Any task involving more than one tool can be automated using a Perl script.

A Perl script might run a tool, filter the textual output then decide whether to: modify constraints and try again, move on to the next tool in the flow or abort and send email notification to a project leader.

Where To Get Perl

Many operating systems support Perl. Most importantly ports exist for, Linux, Windows and versions of Unix. The standard Perl release is available in source code only. However, hardware engineers don't have time to compile their own and binary distributions are freely available.

You can find ports for many operating systems on CPAN (Comprehensive Perl Archive Network. Currently, Doulos use the free ActivePerl distributions from ActiveState for Solaris and Windows.

Perl Ports (CPAN)
ActivePerl (ActiveState)

Regular Expressions

Almost every Perl script uses regular expressions. We've written a Perl Regular Expression Viewer tool to help you write them faster. Download your free copy now.

Regular Expressions

Essential Perl training

To become a skilled and efficient user of Perl for hardware design, you need to attend Essential Perl, an intensive 3 day course teaching the application of Perl specifically to ASIC, FPGA and PLD design.

Privacy Policy Site Map Contact Us