You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am working on a project involving efficient synthesis for a novel beyond-CMOS gate technology. In this technology, XOR gates require a complementary (inverted) version of one of their two inputs. Currently, I am adding an explicit inverter to each XOR gate implementation, which works fine during technology mapping when using ABC called from Yosys.
However, in this new technology, inverters are almost as large in area as the XOR gate itself (which requires the inverted input). To optimize area, I would like to focus on sharing inverters between XOR gates where possible or invert any constant logic. For this, I created a gate in the Liberty file as follows:
In this design, the input b_bar is the complement of b. However, ABC does not seem to make use of this gate, even though the area is set to 1 to strongly incentivize its use. My goal is to have ABC utilize the pin_opposite property to optimize for inverter sharing across XOR gates instead of adding individual inverters to each instance.
My Questions:
Does ABC support the pin_opposite property from the Liberty file format? If so, how can I configure ABC to recognize and apply this property during technology mapping?
How can I modify the synthesis flow or ABC script to ensure that this custom XOR gate (xor_test) is prioritized and used efficiently?
The ABC script I am using for technology mapping is as follows:
Any insights on how to proceed with integrating the pin_opposite functionality into ABC or other suggestions to improve inverter sharing would be amazing and thank you a head in time.
The text was updated successfully, but these errors were encountered:
I am working on a project involving efficient synthesis for a novel beyond-CMOS gate technology. In this technology, XOR gates require a complementary (inverted) version of one of their two inputs. Currently, I am adding an explicit inverter to each XOR gate implementation, which works fine during technology mapping when using ABC called from Yosys.
However, in this new technology, inverters are almost as large in area as the XOR gate itself (which requires the inverted input). To optimize area, I would like to focus on sharing inverters between XOR gates where possible or invert any constant logic. For this, I created a gate in the Liberty file as follows:
In this design, the input b_bar is the complement of b. However, ABC does not seem to make use of this gate, even though the area is set to 1 to strongly incentivize its use. My goal is to have ABC utilize the pin_opposite property to optimize for inverter sharing across XOR gates instead of adding individual inverters to each instance.
My Questions:
Does ABC support the pin_opposite property from the Liberty file format? If so, how can I configure ABC to recognize and apply this property during technology mapping?
How can I modify the synthesis flow or ABC script to ensure that this custom XOR gate (xor_test) is prioritized and used efficiently?
The ABC script I am using for technology mapping is as follows:
Any insights on how to proceed with integrating the pin_opposite functionality into ABC or other suggestions to improve inverter sharing would be amazing and thank you a head in time.
The text was updated successfully, but these errors were encountered: