{"top":"global.SimpleALU",
"namespaces":{
"global":{
"modules":{
"Add4_cin":{
"type":["Record",[
["I0",["Array",4,"BitIn"]],
["I1",["Array",4,"BitIn"]],
["O",["Array",4,"Bit"]],
["CIN","BitIn"]
]],
"instances":{
"bit_const_0_None":{
"modref":"corebit.const",
"modargs":{"value":["Bool",false]}
},
"coreir_add4_inst0":{
"genref":"coreir.add",
"genargs":{"width":["Int",4]}
},
"coreir_add4_inst1":{
"genref":"coreir.add",
"genargs":{"width":["Int",4]}
}
},
"connections":[
["coreir_add4_inst1.in0.1","bit_const_0_None.out"],
["coreir_add4_inst1.in0.2","bit_const_0_None.out"],
["coreir_add4_inst1.in0.3","bit_const_0_None.out"],
["coreir_add4_inst1.out","coreir_add4_inst0.in0"],
["self.I1","coreir_add4_inst0.in1"],
["self.O","coreir_add4_inst0.out"],
["self.CIN","coreir_add4_inst1.in0.0"],
["self.I0","coreir_add4_inst1.in1"]
]
},
"SimpleALU":{
"type":["Record",[
["a",["Array",4,"BitIn"]],
["b",["Array",4,"BitIn"]],
["opcode",["Array",2,"BitIn"]],
["out",["Array",4,"Bit"]]
]],
"instances":{
"Sub4_inst0":{
"modref":"global.Sub4"
},
"and4_inst0":{
"genref":"coreir.and",
"genargs":{"width":["Int",4]}
},
"and4_inst1":{
"genref":"coreir.and",
"genargs":{"width":["Int",4]}
},
"and4_inst2":{
"genref":"coreir.and",
"genargs":{"width":["Int",4]}
},
"and4_inst3":{
"genref":"coreir.and",
"genargs":{"width":["Int",4]}
},
"const_0_2":{
"genref":"coreir.const",
"genargs":{"width":["Int",2]},
"modargs":{"value":[["BitVector",2],"2'h0"]}
},
"const_1_2":{
"genref":"coreir.const",
"genargs":{"width":["Int",2]},
"modargs":{"value":[["BitVector",2],"2'h1"]}
},
"const_2_2":{
"genref":"coreir.const",
"genargs":{"width":["Int",2]},
"modargs":{"value":[["BitVector",2],"2'h2"]}
},
"const_3_2":{
"genref":"coreir.const",
"genargs":{"width":["Int",2]},
"modargs":{"value":[["BitVector",2],"2'h3"]}
},
"coreir_add4_inst0":{
"genref":"coreir.add",
"genargs":{"width":["Int",4]}
},
"coreir_eq_2_inst0":{
"genref":"coreir.eq",
"genargs":{"width":["Int",2]}
},
"coreir_eq_2_inst1":{
"genref":"coreir.eq",
"genargs":{"width":["Int",2]}
},
"coreir_eq_2_inst2":{
"genref":"coreir.eq",
"genargs":{"width":["Int",2]}
},
"coreir_eq_2_inst3":{
"genref":"coreir.eq",
"genargs":{"width":["Int",2]}
},
"or4_inst0":{
"genref":"coreir.or",
"genargs":{"width":["Int",4]}
},
"or4_inst1":{
"genref":"coreir.or",
"genargs":{"width":["Int",4]}
},
"or4_inst2":{
"genref":"coreir.or",
"genargs":{"width":["Int",4]}
}
},
"connections":[
["self.a","Sub4_inst0.I0"],
["self.b","Sub4_inst0.I1"],
["and4_inst1.in0","Sub4_inst0.O"],
["coreir_add4_inst0.out","and4_inst0.in0"],
["coreir_eq_2_inst0.out","and4_inst0.in1.0"],
["coreir_eq_2_inst0.out","and4_inst0.in1.1"],
["coreir_eq_2_inst0.out","and4_inst0.in1.2"],
["coreir_eq_2_inst0.out","and4_inst0.in1.3"],
["or4_inst0.in0","and4_inst0.out"],
["coreir_eq_2_inst1.out","and4_inst1.in1.0"],
["coreir_eq_2_inst1.out","and4_inst1.in1.1"],
["coreir_eq_2_inst1.out","and4_inst1.in1.2"],
["coreir_eq_2_inst1.out","and4_inst1.in1.3"],
["or4_inst0.in1","and4_inst1.out"],
["self.a","and4_inst2.in0"],
["coreir_eq_2_inst2.out","and4_inst2.in1.0"],
["coreir_eq_2_inst2.out","and4_inst2.in1.1"],
["coreir_eq_2_inst2.out","and4_inst2.in1.2"],
["coreir_eq_2_inst2.out","and4_inst2.in1.3"],
["or4_inst1.in1","and4_inst2.out"],
["self.b","and4_inst3.in0"],
["coreir_eq_2_inst3.out","and4_inst3.in1.0"],
["coreir_eq_2_inst3.out","and4_inst3.in1.1"],
["coreir_eq_2_inst3.out","and4_inst3.in1.2"],
["coreir_eq_2_inst3.out","and4_inst3.in1.3"],
["or4_inst2.in1","and4_inst3.out"],
["coreir_eq_2_inst0.in1","const_0_2.out"],
["coreir_eq_2_inst1.in1","const_1_2.out"],
["coreir_eq_2_inst2.in1","const_2_2.out"],
["coreir_eq_2_inst3.in1","const_3_2.out"],
["self.a","coreir_add4_inst0.in0"],
["self.b","coreir_add4_inst0.in1"],
["self.opcode","coreir_eq_2_inst0.in0"],
["self.opcode","coreir_eq_2_inst1.in0"],
["self.opcode","coreir_eq_2_inst2.in0"],
["self.opcode","coreir_eq_2_inst3.in0"],
["or4_inst1.in0","or4_inst0.out"],
["or4_inst2.in0","or4_inst1.out"],
["self.out","or4_inst2.out"]
]
},
"Sub4":{
"type":["Record",[
["I0",["Array",4,"BitIn"]],
["I1",["Array",4,"BitIn"]],
["O",["Array",4,"Bit"]]
]],
"instances":{
"Add4_cin_inst0":{
"modref":"global.Add4_cin"
},
"Invert4_inst0":{
"genref":"coreir.not",
"genargs":{"width":["Int",4]}
},
"bit_const_1_None":{
"modref":"corebit.const",
"modargs":{"value":["Bool",true]}
}
},
"connections":[
["bit_const_1_None.out","Add4_cin_inst0.CIN"],
["self.I0","Add4_cin_inst0.I0"],
["Invert4_inst0.out","Add4_cin_inst0.I1"],
["self.O","Add4_cin_inst0.O"],
["self.I1","Invert4_inst0.in"]
]
}
}
}
}
}