FPGA Toolchains — Suite de dezvoltare: TerosHDL

De la YO3ITI
Sari la navigare Sari la căutare

Toolchains — Suite de dezvoltare

8/02/2026

Cred că cel mai bun echivalent în limba română pentru toolchains este suite de dezvoltare sau instrumente de dezvoltare și reprezintă un ansamblu de instrumente a căror utilizare permite realizarea unor aplicații de la cap la coadă.

Personal prefer termenul de suite de dezvoltare deoarece este mai ilustrativ pentru imaginea unui grup de aplicații și alte instrumente, hardware și software, care conlucrează pentru realizarea produsului finit.

Cel mai mult am lucrat cu Quartus Prime de la Altera (Intel a re-promovat recent brand-ul Altera pentru divizia sa de circuite programabile). Nu am deloc experiență cu platformele similare de la Xilinx (Vivado & co.) sau Lattice (IceCube2). Dar diferențele nu trebuie să fie mari, poate diferă doar anumite detalii de implementare a unor funcționalități specifice. Indiferent de platformă (Intel-Altera, AMD-Xilinx sau Lattice etc) toate trec obligatoriu prin aceleași etape:

  1. Design — Proiectare
  2. Sinteză
  3. Plasare și rutare
  4. Analiza duratelor (timing analysis)
  5. Programarea FPGA-ului
  6. Testarea și verificarea

Pentru Windows și Linux există instrumente care includ atât sinteza cât și plasarea și rutarea circuitelor. Pentru Mac nu există toolchain care să facă asta. Cel mai apropiat este TerosHDL, modul pentru Visual Studio Code. Recent l-am instalat și utilizat cu success, nu fără bătaie de cap. Mai jos sunt câteva lucruri de care trebuie ținut cont pentru o bună funcționare:

  1. Crearea și activarea unui mediu virtual (virtual environment) Python <3.12
  2. Instalare edalize
  3. Instalare vunit
  4. Instalare ghdl
  5. Instalare Icarus Verilog

Mediul virtual Python

Acesta nu trebuie să fie mai mare de 3.11. Edalize are anumite cerințe specifice în ceea ce privește versiunea Python:

python3.11 -m venv venv
source venv/bin/activate

Din acest motiv am folosit versiunea 3.11.14:

python --version
>> Python 3.11.14
pip show edalize | grep Requires
>> Requires: Jinja2

Apoi am instalat modulele:

pip install --upgrade pip
pip install vunit_hdl edalize
pip list
>>
Package    Version
---------- -------
colorama   0.4.6
edalize    0.6.5
Jinja2     3.1.6
MarkupSafe 3.0.3
pip        26.0.1
setuptools 80.9.0
vunit_hdl  4.7.0

Edalize

Edalize este o bibliotecă Python pentru interacțiunea cu instrumente EDA. Poate crea fișiere-proiect pentru instrumentele suportate și le poate rula în mod batch sau GUI (acolo unde modul GUI este suportat). Aici este pagina github pentru edalize iar aici un link direct către un fișier README

Vunit

VUnit este o platformă open source pentru testarea unitară (unit testing) VHDL/Verilog/SystemVerilog. Oferă funcționalitățile necesare realizării unui proces automat de testare a codului HDL. Aici este pagina proiectului iar aici este un link direct către un fișier README.

ghdl

După toate acestea, am avut alte probleme:

---> Build directory: /Users/tom/.teroshdl/build
---> Make installation folder path: System path
Error: '['make', 'run']' exited with an error: 2

Cele mai comunte trei cauze pentru această eroare sunt:

  1. Fișierul Makefile nu a fost găsit → VUnit/edalize nu l-au generat corect
  2. Lipsește simulatorul → trebuie verificat dacă este instalat un simulator (gen ghdl sau ModelSim)
  3. Probleme cu calea către executabil → executabilul simulatorului nu este în variabila PATH de sistem

La mine s-a dovedit a fi a doua problemă

# Check for GHDL (free, open-source)
which ghdl
ghdl --version

Și l-am instalat cu brew:

# Install GHDL via Homebrew
brew install ghdl

Icarus Verilog

Pagina proiectului este aici, iar aici este un fișier README din respozitoriul online.

# Install Icarus Verilog
brew install icarus-verilog

Comenzi compilare și simulare

#!/bin/bash

# Compile
iverilog -o sim logic_gates.v logic_gates_tb.v

# Run simulation
vvp sim

# Open waveform
surfer logic_gates.vcd