-
Notifications
You must be signed in to change notification settings - Fork 7
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
Error When Adding synth_gatemate Command in CDC Workflow #29
Comments
Step 1: Ignore
There's more to do.
This problem should be addressed by someone who knows yosys and/or GateMate better than me. |
@pu-cc any insights on Larry's insights above, from your GateMate and Yosys-for-GateMate expert viewpoint?! |
To be honest, I would first have to familiarize myself with this CDC workflow, which I have not yet managed to do. But I can say something about the “invented” clock signals. Since the signal names suggests that it is a memory, I assume that it is either emulated asynchronous RAM, which we have already discussed in this thread #26 (comment), or it is synchronous RAM that exceeds the size of the existing 20K/40K cells. Yosys then merges several Block RAMs in order to achieve the desired memory width or memory depth. This also “invents” several clock signals that have to be routed to all RAMs. That's all I can say so far, but maybe it will help you understand and troubleshoot. |
@ldoolitt if this is merely about increased fanout, why would it be reported as BAD: 149, esp. given that we had no BAD findings before?! |
@ldoolitt please advise if you are OK with having this issue closed. |
We are currently working on porting the OPL3 Yamaha FM synthesizer to the GateMate FPGA. Within this effort, we're incorporating CDC checks into our workflow. As there aren't many open-source CDC tools available, Larry's
cdc_snitch
came to rescue (it can be found on the Bedrock github).The cdc_snitch is made out of a (1) Python script and a (2) .ys script. The Python script takes the .json output file from Yosys synthesis. There is no problem when tool is used with a general Yosys command like the one given below (taken from the Makefile line 301) :
But we get incorrect flop counts because the basic Yosys synthesis isn't the same as the GateMate synthesis being done with
synth_gatemate
. The resulting resource utilization discrepancy between GateMate and basic Yosys synthesis is quite drastic, see this.When tool is invoked using this command (line 302 of Makefile):
or using the form from line 303 of Makefile):
we get the following error:
We left the
opl3_cdc.json
file in the 3.build folder.Replicate this error
To replicate this error, you need to clone the repository. Navigate to
openCologne/4.Advanced--4--Yamaha-OPL3-FM-Synth/3.build/
, delete theopl3_cdc.json
file and run themake cdc
command.Before that you need to install a few open-source tools (see Makefile):
The text was updated successfully, but these errors were encountered: