-
-
Notifications
You must be signed in to change notification settings - Fork 117
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
Replace FreeHDL by GHDL #395
Comments
It seems all VHDL models require a revision after switching to GHDL. I god a simulator freeze trying to simulate simple schematic containing one demultiplexer device. GHDL gives warning about infinite loop. The same schematic could be simulated with iVerilog without warning. Simple schematics containing logic gates work without problem using GHDL. FreeHDL is crashing on every simulation on my machine, so I cannot compare the result. Unfortunately, digital VHDL/Verilog design is not my field of expertise. The help in VHDL models revision is highly welcome. |
I don't pretend to know much about ghdl, but I think that each process must have some wait statement to give the simulator a chance to actually output something (unless it has a sensitivity list as is the case of the process which represents the demux block). In your example can easily work around this problem by appending "wait for 1 ns;" before the "end process;" in the Logic_0 process definition. Having a quick look, it seems that none of the digital components that generate a pattern do this properly except for the 'digital source' which do to create the timing of their output toggle. Simplistically, we could hard-code a "wait for 1 ns;" at the end of each relevant vhdlCode() function, e.g. in pad2bit.cpp, pad3bit.cpp, pad4bit.cpp, logic_0.cpp, and logic_1.cpp. |
Qucs-S uses FreeHDL for VHDL simulation. The FreeHDL is deprecated and doesn't work on modern platforms anymore. It's need to replace it with GHDL. See #393
The text was updated successfully, but these errors were encountered: