ADDBDDCIRCUITABL(3)
β¨ ADDBDDCIRCUITABL β¨
okay bestie, we're in the addbddcircuitabl page of the manual β section 3, the BDD FUNCTIONS era π
. yes this is the one that takes an abl expression and turns it into a bdd node. iconic behaviour honestly.
πΈ ORIGIN πΈ
so this software belongs to the ALLIANCE CAD SYSTEM, which was built by the ASIM team at the LIP6 laboratory of UniversitΓ© Pierre et Marie CURIE, in Paris, France π«π·π«Ά. very chic, very academic, very much the main character energy of 90s EDA.
- Web :
http://asim.lip6.fr/recherche/alliance/ - E-mail :
alliance-users@asim.lip6.fr
π¦ SYNOPSIS π¦
#include "bdd101.h"
bddnode βaddbddcircuitabl( BddCircuit, Expr )
bddcircuit βBddCircuit;
chain_list βExpr;
π PARAMETERS π
BddCircuitβ the bdd circuit, bestie. literally the whole circuit vibe.Exprβ the expression we're converting. the lil glow-up subject.
π DESCRIPTION π
addbddcircuitabl converts the abl expression Expr into a bdd node. that's the whole job, and it ate π₯.
BddCircuit is what gets used to translate the atomic expressions into variable nodes. and if you hand it a null pointer? no worries, it just uses the default bdd circuit. slay, defaults.
now here's the lil plot twist π β if an atomic expression doesn't appear in the BddCircuit input names hash table or the output names hash table, then addbddcircuitabl goes and adds a new input by calling the function addbddcircuitin with the BDD_IN_MODE_LAST mode. it just does it. unbothered. periodt.
β RETURN VALUE β
addbddcircuitabl returns a pointer to the bdd node it translated. that's your gift back π
π ERRORS π
"bad operator xxx error !"β yeah so theExprparameter must be a well defined abl expression. if it's notβ¦ this is what you get. no cap, don't test it.
π EXAMPLE π
here's the whole thing in action, literally copy-paste-able:
#include "bdd101.h"
bddsystem βBddSystem;
bddcircuit βBddCircuit;
bddnode βBddNode;
chain_list βExpr;
BddSystem = createbddsystem( 100, 1000, 100, 50000 );
BddCircuit = createbddcircuit( "hello_world", 10, 10, BddSystem );
Expr = createablbinexpr( ABL_AND,
createablatom( "i0" ),
createablatom( "i1" ) );
BddNode = addbddcircuitabl( BddCircuit, Expr );
freeablexpr( Expr );
Expr = convertbddcircuitabl( BddCircuit, BddNode );
/* displays (i0 and i1) */
viewablexpr( Expr, ABL_VIEW_VHDL );
freeablexpr( Expr );
destroybddsystem( (bddsystem β)0 );
destroybddcircuit( (bddcircuit β)0 );
note the /* displays (i0 and i1) */ comment up there β that's what it shows you. cute, right? π
π§ SEE ALSO π§
iykyk, go read those next π
π«Ά BUG REPORT π«Ά
so this tool is still under development at the ASIM department of the LIP6 laboratory. they need your feedback to improve the documentation and the tools β so like, pls speak up, your input is valid and wanted πβ¨
and that's a wrap bestie!! this page is from the ASIM/LIP6 girlies, dated October 1, 1997 β yes, an actual vintage icon ππ¦. go build something gorgeous with your bdd nodes. mwah π
π¦ where this page comes from
- fedora 43: alliance-devel 5.1.1-35.20160506gitd8c05cd.fc42 Β· GPL-2.0-only
- fedora 43: alliance-devel 5.1.1-35.20160506gitd8c05cd.fc42 Β· GPL-2.0-only
- fedora 44: alliance-devel 5.1.1-35.20160506gitd8c05cd.fc42 Β· GPL-2.0-only
- fedora 44: alliance-devel 5.1.1-35.20160506gitd8c05cd.fc42 Β· GPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms