-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Problem with AMD vendor libraries #91
Comments
Uff. So we need to allow for black boxes. I could imaging the following:
If a symbol is resolved and the component is from library I'm also investigating how to handle warnings in Python. I have a vision for a concept similar to exceptions, but they can be resumed. |
The
When an exception is caught, it can be re-raised like this : try:
int('N/A')
except ValueError:
print("Didn't work")
raise or like this to catch all exceptions : try:
...
except Exception as e:
# Process exception information in some way
...
# Propagate the exception
raise
But maybe I misunderstood the |
Actually, yes ;) Right now, any programming language I know, will abort the execution of the current subprogram (function, method, ...) when an exception is raised. Then the exception traverses its way upwards in the call stack until it reaches either a try-catch/try-except block or it reaches the entry point of the program. In case the exception is caught somewhere on its way upwards, it can be handled. Usually, the exception gets assigned to a variable like Of cause, we can throw:
upwards, but it's only upwards the in the call stack. I would like to go down to the exception source and continue execution. Imagine, not to throw an exception, but throw a warning and after someone caught that warning (saved in a list or printed it or just ignored it), we could resume the execution deep down in the code after the raise statement. What other alternatives exist:
Ok, let's construct another idea: |
I see what you mean. Maybe PubPub can help achieve what you want to do. To try it : |
Sorry, I was not specific enough. Multiple layers in the logical hierarchy of language constructs can be marked as
The value can be By rewriting all
The used Python code looks like this: design = Design()
design.LoadDefaultLibraries(IEEEFlavor.Synopsys)
unisimLibrary = design.GetLibrary("Unisim")
unisimLibrary.AllowBlackbox = True
document = Document(self._root / "dom/examples/unisim_VCOMP.vhd")
design.AddDocument(document, unisimLibrary)
topLibrary = design.GetLibrary("top")
document = Document(self._filename)
design.AddDocument(document, topLibrary)
design.Analyze() Tomorrow, I can clean up the code and push it. |
I try to analyze a design using the AMD UNISIM library.
I get errors like
Entity 'IBUFG' not found for component 'IBUFG' in library 'UNISIM'.
I agree that these errors are legitimate.
But in this case, we should have a mean to tell pyVHDLModel to ignore the error. Right ?
The text was updated successfully, but these errors were encountered: