vtr-verilog-to-routing icon indicating copy to clipboard operation
vtr-verilog-to-routing copied to clipboard

Enabled BLIF buffer elimination in preparation for InOuts

Open djns99 opened this issue 3 years ago • 6 comments

Description

Enables the logic for eliminating the redundant final buffer in the BLIF output. This is a necessary precursor to InOuts as the extra buffer is not driven by the input correctly

Types of changes

  • [x] Bug fix (change which fixes an issue)
  • [ ] New feature (change which adds functionality)
  • [ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • [ ] All new and existing tests passed

djns99 avatar Sep 01 '20 23:09 djns99

@kmurray This changes Odin II's BLIF output slightly which seems to have had some QoR changes for VPR. The issues on Travis appear to be improvements. What do I need to do to regenerate the golden results to make this pass?

djns99 avatar Sep 02 '20 01:09 djns99

Running the regression tests (with -create_golden to regenerate golden) for basic, strong and nightly I get this error:

vtr_func_formal:          k6_frac_N10_40nm.xml/stereovision3.v/common           			file        :  abc.lec.out
failed: Couldn't determine Logical Equivalence status between stereovision3.odin.blif <-> sv_chip3_hierarchy_no_mem_post_synthesis.blif (took 3.21 seconds)

I assume this means ABC somehow broke with these changes?

My concern here is that I believe this modification must definitionally be identical behaviour, since the driving net can only have a fanout of one (otherwise I do not do this optimisation) so the drivers of this net must necessarily assign directly to the output wire.

The only thing I can think is that somehow there is a combinational loop formed somewhere, but I dont see how this could be possible since fanout = 1 and we dont have InOuts yet (and if we did it would be a bug in stereovision not Odin II)

@jeanlego Thoughts?

djns99 avatar Sep 05 '20 00:09 djns99

Does @jeanlego's suggested code change above fix the logical equivalence failure or is there still an issue with that?

vaughnbetz avatar Sep 10 '20 17:09 vaughnbetz

Does @jeanlego's suggested code change above fix the logical equivalence failure or is there still an issue with that?

Sadly no but I'm out for the week so I can't pull the code to diff the resulting blif

jeanlego avatar Sep 10 '20 17:09 jeanlego

Assigning this to @sdamghan to see if he wants to finish this PR, or abandon it.

vaughnbetz avatar Jun 21 '21 21:06 vaughnbetz

@vaughnbetz not sure why this is left, I was not aware of the progress of this PR. Will investigate more in the future

sdamghan avatar Jun 22 '21 22:06 sdamghan