// Opensource Liberty test file library ("myLib") { cell ("myCombinational") { pin ("A") { direction : input ; } pin ("B") { direction : input ; } pin ("C") { direction : input ; } pin ("X") { function : "A * B" ; direction : output ; } pin ("Y") { function : "A' + B'" ; direction : output ; } } cell ("myLatch") { latch (var1,var2) { preset : "S" ; clear : "R" ; enable : "CN'" ; data_in : "D" ; clear_preset_var1 : "1" ; clear_preset_var2 : "0" ; } pin ("EN") { direction : input ; } pin ("S") { direction : input ; } pin ("R") { direction : input ; } pin ("CN") { direction : input ; } pin ("D") { direction : input ; } pin ("QI") { function : "var1" ; inverted_output : false ; direction : internal ; } pin ("Q") { function : "QI * EN'" ; direction : output ; } } cell ("myFlipflop") { ff (var1,var2) { preset : "SN'" ; clear : "RN'" ; clocked_on : "C'" ; next_state : "D" ; clear_preset_var1 : "x" ; clear_preset_var2 : "x" ; } pin ("C") { direction : input ; } pin ("SN") { direction : input ; } pin ("RN") { direction : input ; } pin ("D") { direction : input ; } pin ("Q") { function : "var1" ; inverted_output : false ; direction : output ; } pin ("QN") { function : "var2" ; inverted_output : true ; direction : output ; } } cell ("myFlipflop2") { ff (var1,var2) { preset : "SN'" ; clear : "RN'" ; clocked_on : "C'" ; next_state : "D" ; clear_preset_var1 : "L" ; clear_preset_var2 : "H" ; } dont_use : true ; dont_touch : true ; pin ("C") { direction : input ; } pin ("SN") { direction : input ; } pin ("RN") { direction : input ; } pin ("D") { direction : input ; } pin ("QN") { function : "var2" ; inverted_output : true ; direction : output ; } } cell ("myScanFlipflop") { ff (var1,var2) { clocked_on : "C" ; next_state : "SE * SI + SE' * D" ; } pin ("C") { direction : input ; } pin ("D") { direction : input ; } pin ("SI") { direction : input ; } pin ("SE") { direction : input ; } pin ("Q") { function : "var1" ; inverted_output : false ; direction : output ; } } cell ("myMasterSlaveFlipflop") { ff (var1,var2) { clocked_on : "MC" ; clocked_on_also : "SC'" ; next_state : "D" ; } pin ("MC") { direction : input ; } pin ("SC") { direction : input ; } pin ("D") { direction : input ; } pin ("QI") { function : "var1" ; inverted_output : false ; direction : internal ; } pin ("QN") { function : "var2" ; inverted_output : true ; direction : output ; } } cell ("myMasterSlaveFlipflop2") { ff (var1,var2) { clocked_on : "C" ; clocked_on_also : "C'" ; next_state : "D" ; } dont_use : true ; dont_touch : true ; pin ("C") { direction : input ; } pin ("D") { direction : input ; } pin ("QI") { function : "var1" ; inverted_output : false ; direction : internal ; } pin ("QN") { function : "var2" ; inverted_output : true ; direction : output ; } } }