--- /dev/null
+ LOGICAL_SYNTHESIS = Yosys
+ PHYSICAL_SYNTHESIS = Coriolis
+ DESIGN_KIT = sxlib
+
+ USE_CLOCKTREE = No
+ USE_DEBUG = No
+ USE_KITE = No
+ VST_FLAGS = --vst-use-concat
+
+ NETLISTS = test_fu_fu_matrix
+
+
+ include ./mk/design-flow.mk
+
+
+%_flat.vst: %.vst ; $(FLATLO) -r $* $*_flat
+
+
+blif: test_fu_fu_matrix.blif
+vst: test_fu_fu_matrix.vst
+vstf: test_fu_fu_matrix_flat.vst
+
+#blif: test_fu_reg_matrix.blif
+#vst: test_fu_reg_matrix.vst
+#layout: test_fu_reg_matrix_r.ap
+#gds: test_fu_reg_matrix_r.gds
+#
+#lvx: lvx-test_fu_reg_matrix_r
+#druc: druc-test_fu_reg_matrix_r
+#view: cgt-test_fu_reg_matrix_r
+viewf: cgt-test_fu_fu_matrix_flat
+#sim: asimut-test_fu_reg_matrix_r
--- /dev/null
+
+ Matrix placement:
+ 8630 x 9000 we can suppress 50*30 to compensate for the 30
+ empty rows. So, 8630*7500
+ Areas: 77670000
+ 64725000 (83%) -> linear ratio sgrt(.83) = .91
+ for wire shrink.
+ Wirelength: 10971965
+ Events: 283040 (6 repairs)
+
+ Automated placement: (5% margin)
+
+ 7300 x 7350 Area: 53655000
+
+ Wirelength: 9253708
+ Events: 247879 (0 repairs)
+
+ Ratios: Manual vs. automated:
+
+ Areas: 1.206 (i.e. ~21% increase in area).
+ Wirelength: 1.078
--- /dev/null
+from Hurricane import DebugSession
+
+#DebugSession.addToTrace( katana.getCell().getNet( 'add_o(1)' ) )
+#DebugSession.addToTrace( katana.getCell().getNet( 'add_o(2)' ) )
+#DebugSession.addToTrace( katana.getCell().getNet( 'b(3)' ) )
+#DebugSession.addToTrace( katana.getCell().getNet( 'b(15)' ) )
+#DebugSession.addToTrace( katana.getCell().getNet( 'add_o(12)' ) )
--- /dev/null
+# -*- Mode:Python -*-
+
+import Cfg
+import CRL
+import Viewer
+import symbolic.cmos # do not remove
+
+
+Cfg.Configuration.pushDefaultPriority(Cfg.Parameter.Priority.UserFile)
+
+Viewer.Graphics.setStyle('Alliance.Classic [black]')
+
+Cfg.getParamBool('misc.catchCore').setBool(False)
+Cfg.getParamBool('misc.info').setBool(False)
+Cfg.getParamBool('misc.paranoid').setBool(False)
+Cfg.getParamBool('misc.bug').setBool(False)
+Cfg.getParamBool('misc.logMode').setBool(True)
+Cfg.getParamBool('misc.verboseLevel1').setBool(True)
+Cfg.getParamBool('misc.verboseLevel2').setBool(True)
+Cfg.getParamEnumerate('etesian.effort').setInt(2)
+Cfg.getParamPercentage('etesian.spaceMargin').setPercentage(1.0)
+Cfg.getParamPercentage('etesian.aspectRatio').setPercentage(100.0)
+Cfg.getParamBool('etesian.uniformDensity').setBool(True)
+Cfg.getParamInt('anabatic.edgeLenght').setInt(24)
+Cfg.getParamInt('anabatic.edgeWidth').setInt(8)
+Cfg.getParamString('anabatic.topRoutingLayer').setString('METAL5')
+Cfg.getParamInt('katana.eventsLimit').setInt(1000000)
+Cfg.getParamInt('katana.hTracksReservedLocal').setInt(7)
+Cfg.getParamInt('katana.vTracksReservedLocal').setInt(6)
+
+Cfg.Configuration.popDefaultPriority()
+
+af = CRL.AllianceFramework.get()
+env = af.getEnvironment()
+env.setCLOCK('^clk$|m_clock')
+env.setPOWER('vdd')
+env.setGROUND('vss')
end
attribute \generator "nMigen"
attribute \top 1
-attribute \nmigen.hierarchy "top"
-module \top
+attribute \nmigen.hierarchy "test_fu_fu_matrix"
+module \test_fu_fu_matrix
attribute \src "scoremulti/fu_fu_matrix.py:23"
wire width 30 input 0 \rd_pend_i
attribute \src "scoremulti/fu_fu_matrix.py:24"
attribute \generator "nMigen"
attribute \top 1
attribute \nmigen.hierarchy "top"
-module \top
+module \test_fu_reg_matrix
attribute \src "scoremulti/fu_reg_matrix.py:51"
wire width 4 input 0 \dst1
attribute \src "scoremulti/fu_reg_matrix.py:51"
end
attribute \generator "nMigen"
attribute \top 1
-attribute \nmigen.hierarchy "top"
-module \top
+attribute \nmigen.hierarchy "test_mem_fus"
+module \test_mem_fus
attribute \src "scoreboard/test_mem_fu_matrix.py:72"
wire width 8 input 0 \ld_i
attribute \src "scoreboard/test_mem_fu_matrix.py:73"