Skip to content

How are dependencies between files handled, on startup? #380

Answered by Schottkyc137
gco-bmx asked this question in Q&A
Discussion options

You must be logged in to vote

I will preface this by saying that I don't know exactly how this is solved as I didn't write the code. However, I can make a well-educated guess:

Before doing the parallel analysis step, vhdl_lang will add each file to the DesignRoot.
For each DesignUnit, this will create an un-analyzed LockedUnit that is associated with its library. This ensures that every unit is present in the dependency graph.
A LockedUnit generally is just a wrapper around a DesignUnit (i.e., an entity, package, architecture, ...) but locked by a thread-safe RwLock so that reading is shared, but writing requires exclusive access.

This is the first step and it causes all libraries and design units to be visible. The n…

Replies: 1 comment 1 reply

Comment options

You must be logged in to vote
1 reply
@gco-bmx
Comment options

Answer selected by gco-bmx
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants