ghdl, what’s new

31
GHDL, What’s new ? Tristan Gingold

Upload: others

Post on 08-Jun-2022

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: GHDL, What’s new

GHDL, What’s new ?Tristan Gingold

Page 2: GHDL, What’s new

Agenda

What is GHDL ?

Improvements since FOSDEM’15

Multi language simulation - Proof of concept

Page 3: GHDL, What’s new

What is GHDL ?

Page 4: GHDL, What’s new

What is GHDL ?

If you have missed last year presentation:

Free, open-source VHDL simulator

Generate object code (with gcc, LLVM or it’s generator)

Support VHDL 1987 till 2008

github.com/tgingold/ghdl

Page 5: GHDL, What’s new

What is GHDL ?

Command line tool (no IDE)

Generate VCD, GHW or FST waveforms

GTKwave compatible

VHPI and VPI support

Partial support of PSL

Page 6: GHDL, What’s new

Typical use cases

FOSS activist: use a free tool

Nightly testing

Coverage (with gcov)

Page 7: GHDL, What’s new

What’s new ?

Page 8: GHDL, What’s new

What’s new ?

Switch to git

Move to github

Docs on ghdl.readthedocs.org

Continuous integration on travis-ci.org

Page 9: GHDL, What’s new

GHDL 0.33 released

For Linux x86, x86-64

generic, debian and Ubuntu

For Mac OS X

For Windows

First version with good VHDL 2008 support

Page 10: GHDL, What’s new

New featuresMore VHDL 2008 features

Many bugs fixed

Support of VUnit

OSS unit testing framework

Support of OSVVM

Open Source VHDL Verification Methodology

Page 11: GHDL, What’s new

Post release featuresMcode for x86-64:

Mcode is builtin code generator

Code generation is much faster than llvm or gcc

Scale very well

Easy to build (no dependencies)

Was i386 + fpu only

Now i386 or x86-64 + SSE2

Page 12: GHDL, What’s new

Post release features

Optimizations

Better handling of signals

Explicit process state

Page 13: GHDL, What’s new

Future work

More optimisations

Multi language simulation

Synthesis ?

Page 14: GHDL, What’s new

Multi language simulation

Page 15: GHDL, What’s new

VHDL + SystemC

Purpose: simulate both VHDL and SystemC

Using GHDL

Page 16: GHDL, What’s new

Why SystemC ?And not Verilog ?

SystemC is simpler

Simulation cycle is like VHDL

Use the same compilation model as GHDL

Object files

Final link

Page 17: GHDL, What’s new

Proof of Concept

TestBench (SC)

Counter (SC)

TestBench (SC)

Counter (VHDL)

Unmodified

Standard

VHDL

Page 18: GHDL, What’s new

Proof of concept: constraints

Main is SystemC

No change in test bench or VHDL code

No change in SystemC kernel

Page 19: GHDL, What’s new

Proof of concept: simplifications

Only one VHDL module

Multi-language semantic weakly defined

Can change GHDL code

Page 20: GHDL, What’s new

Proof of Concept

Page 21: GHDL, What’s new

Proof of Concept: Adapter

TestBench (SC)

Adapter

Counter (VHDL)

Page 22: GHDL, What’s new

Adapter

Initialize GHDL simulator

Instantiate the VHDL blocks

Convert values between SystemC and VHDL

Page 23: GHDL, What’s new

GHDL initialization

Page 24: GHDL, What’s new

VHDL instantiation

C representation of the VHDL entity, as compiled by GHDL

Page 25: GHDL, What’s new

Pseudo process for Inputs

Page 26: GHDL, What’s new

Value Conversions: input

Ask SystemC to run GHDL kernel

So if an input change, it is propagated to VHDL

Page 27: GHDL, What’s new

Kernel interleaving

Need a new delta cycle

So VHDL kernel is run in case of event

Page 28: GHDL, What’s new

Value Conversions: Output

So if a VHDL signal change, a method is called

Page 29: GHDL, What’s new

Value Conversions: Output

Convert from a VHDL signal to a SystemC signal

Page 30: GHDL, What’s new

Proof of concept: Conclusions

Just of Proof of Concept but:

It works!

required only changes in GHDL runtime (kernel)

need to split the simulation loop

Page 31: GHDL, What’s new

Proof of concept: Future

Generate the adapter automatically

Mapping is not obvious

Avoid delta-cycles between SC and VHDL

Need to modify SystemC kernel

Multiple VHDL instances

Instantiation of SC by VHDL blocks