January 09, 2025

What are the scripting languages ​​in FPGA development?

Most FPGA developers are accustomed to the graphical interface (GUI). The GUI approach is easy to learn and provides a one-click process for small projects. However, as FPGA projects become more complex, in many cases GUI tools hinder productivity. Because GUI tools do not provide enough flexibility and control over the entire development process. On the other hand, the GUI tool itself takes up a lot of CPU resources and memory.

What are the scripting languages ​​in FPGA development?

Scripting language selection

The most commonly used in IC and FPGA are TCL, Perl and Shell. In addition to this, it is possible to use other scripting languages. For example, the Xilinx tool scripting language is also Ruby and Python.

TCL

As the name implies, the Tool Command Language, which has better tool interactivity, works well for writing tool command scripts. In particular, a large part of the EDA tools currently support the TCL language. It should be said that their native language is TCL. Comprehensive functional EDA software uses TCL language, such as DC, Vivado, quartus, Synplify and so on. TCL is a near-standard scripting language for ASIC and FPGA design tools. EDA tools are constrained in this format (Vivado's timing constraints and pin physical constraints), and TCL itself is designed to work with tools without much independence. TCL syntax is different from other scripting languages, and many developers are hard to get used to. TCL has good documentation and team support. Xilinx comes with a custom TCL - xtclsh in the Vivado installation. If you want to start the TCL input:

$ xtclsh –v #display TCL version.

Perl

Perl is a popular scripting language widely used in tools such as EDA, especially in ASIC verification and back-end design. Perl is used to do some extremely powerful word processing to reduce repetitive work. For example, modifying ECO, integrating small design into large design, and automatically running various randomized simulations is extremely useful. Vivado also comes with a custom Perl interpreter xilperl. Perl should be unmanned in text processing. With a few lines of code, you can do a lot of other lines of code to process good text. But Perl scripts are less readable.

Shell

Linux distributions are generally bash by default. For Unix distributions, for example, the default shell for FreeBSD is csh. Because early EDA software runs on Unix operating systems, and csh's scripting language is similar to C, many csh scripts are used in ASIC development. However, in addition to many of the features of csh, bash provides shell functions, command line editing, and process handling. So bash has a large share of the Linux distribution.

Wittgenstein said: "My language boundaries are the boundaries of my world." There is no perfect language to describe the world, each language has its specific purpose. The choice of language takes into account many factors, such as existing project setup, design team experience, familiar tools and scripts, flexibility, and customization and integration with other tools. If the partial processing text is perl, the partial tool interacts with tcl. On the one hand, language is the same, as long as there is a C language foundation, learning anything is fast. On the other hand, we choose which language to learn because we don't want to learn all of these languages. In actual development, in addition to the scripting language will greatly improve the work, many developers also like to use the make tool for FPGA compilation, because make can be automatic tracking check.

The existence of language is to solve problems, and the characteristics of industrial society are division of labor and efficiency. Therefore, choosing the right language to solve the right problem is king.

Desktop Speaker For PC

Comcn Electronics Limited , https://www.comencnspeaker.com