@@ -602,9 +602,12 @@ def addlogiccell(self,name,celltype, nets):
602
602
self .insertcell (name + "a" ,"rt_NOT" , [nets [0 ], nets [3 ]])
603
603
self .insertcell (name + "b" ,"rt_NOT" , [nets [1 ], nets [3 ]])
604
604
self .insertcell (name + "c" ,"rt_NOT" , [nets [2 ], nets [3 ]])
605
+ elif celltype == "rt_TBUF_N" :
606
+ self .addlogiccell (name + "a" ,"rt_NOR2" , [nets [0 ] , nets [1 ], name + "a" ])
607
+ self .addlogiccell (name + "b" ,"rt_NOT" , [name + "a" , nets [2 ] ])
605
608
elif celltype == "rt_DFF" : # pin order: C, D, Q
606
- self .insertcell (name + "c#" ,"rt_NOT" , [nets [0 ] , name + "CI" ] ) # clock inversion
607
- self .insertcell (name + "d" ,"rt_NOT" , [name + "CI" , name + "CNI" ]) # clock inversion
609
+ self .insertcell (name + "c#" ,"rt_NOT" , [nets [0 ] , name + "CI" ] ) # clock inversion
610
+ self .insertcell (name + "d" ,"rt_NOT" , [name + "CI" , name + "CNI" ]) # clock inversion
608
611
self .addlogiccell (name + "a" ,"PHLATCH" , [name + "CI" , nets [1 ] , name + "DI" ]) # pin order: E, D, Q
609
612
self .addlogiccell (name + "b" ,"PHLATCH" , [name + "CNI" , name + "DI" , nets [2 ] ]) # pin order: E, D, Q
610
613
elif celltype == "PHLATCH" : # pin order: E, D, Q
@@ -1129,8 +1132,8 @@ def detailedoptimization(startarray, initialtemp=1, coolingrate=0.95, optimizati
1129
1132
1130
1133
# !!! You need to update the lines below to adjust for your design!!!
1131
1134
1132
- ArrayXwidth = 7 # This is the width of the grid and should be equal to or larger than the number of I/O pins plus two supply pins!
1133
- DesignArea = 70 # This is the number of unit cells required for the design. It is outputted as "chip area" during the Synthesis step
1135
+ ArrayXwidth = 28 # This is the width of the grid and should be equal to or larger than the number of I/O pins plus two supply pins!
1136
+ DesignArea = 720 # This is the number of unit cells required for the design. It is outputted as "chip area" during the Synthesis step
1134
1137
# Fixedio fixes I/O positions within the first row. Leave empty if you want the tool to assign positions.
1135
1138
FixedIO = [] # Default, tool assigns I/O
1136
1139
# FixedIO = ["VCC","inv_a", "inv_y", "xor_a", "xor_b", "xor_y", "and_a", "and_b", "and_y", "d", "clk", "q"] # for moregates.vhd
@@ -1146,7 +1149,7 @@ def detailedoptimization(startarray, initialtemp=1, coolingrate=0.95, optimizati
1146
1149
1147
1150
# Optimizer settings. Only change when needed
1148
1151
1149
- AreaMargin = 0.5 # This is additional area that is reserved for empty cells. This value should be larger than zero to allow optimization.
1152
+ AreaMargin = 0.2 # This is additional area that is reserved for empty cells. This value should be larger than zero to allow optimization.
1150
1153
# Too large values will result in waste of area. Default: 0.3
1151
1154
CoarseAttempts = 20 # Default: 20
1152
1155
CoarseCycles = 1000 # Default: 1000
@@ -1165,12 +1168,12 @@ def detailedoptimization(startarray, initialtemp=1, coolingrate=0.95, optimizati
1165
1168
1166
1169
# File names. Don't touch unless you want to modify the flow
1167
1170
1168
- InputFileName = "209_synthesized_output.sp"
1169
- PCBTemplateFile = "../30_PLACE/board_template.brd"
1170
- PCBOutputFile = "309_board_output.brd"
1171
- SpiceOutputFile = "308_extracted_netlist.sp"
1172
- FanoutOutputFile = "307_fanout.txt"
1173
- NetsOutputFile = "306_nets.csv"
1171
+ InputFileName = "209_synthesized_output.sp"
1172
+ PCBTemplateFile = "../30_PLACE/board_template.brd"
1173
+ PCBOutputFile = "309_board_output.brd"
1174
+ SpiceOutputFile = "308_extracted_netlist.sp"
1175
+ FanoutOutputFile = "307_fanout.txt"
1176
+ NetsOutputFile = "306_nets.csv"
1174
1177
PlacementOutputFile = "305_placement.csv"
1175
1178
1176
1179
# =========== START OF MAIN ===============================
0 commit comments