From 7c75f7097470b11b6914b212f8048372c30700fe Mon Sep 17 00:00:00 2001 From: Jean-Paul Chaput Date: Thu, 18 Feb 2021 00:10:43 +0100 Subject: [PATCH] First working integration of a SRAM block. The placement itself is completely goofy in order to stress the P&R system to flush out bugs. --- experiments12/coriolis2/katana.py | 8 ++++++++ experiments12/doDesign.py | 15 +++++++++------ 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/experiments12/coriolis2/katana.py b/experiments12/coriolis2/katana.py index b7dd7b3..19d5c4f 100644 --- a/experiments12/coriolis2/katana.py +++ b/experiments12/coriolis2/katana.py @@ -3,3 +3,11 @@ from Hurricane import DebugSession #DebugSession.addToTrace( katana.getCell().getNet( 'core.result(24)' ) ) #DebugSession.addToTrace( katana.getCell().getNet( 'core.result(1)' ) ) +#DebugSession.addToTrace( katana.getCell().getNet( 'core.result(58)' ) ) +#DebugSession.addToTrace( katana.getCell().getNet( 'core.result(12)' ) ) +#DebugSession.addToTrace( katana.getCell().getNet( 'core.result(56)' ) ) +#DebugSession.addToTrace( katana.getCell().getNet( 'f_to_pad(3)' ) ) +#DebugSession.addToTrace( katana.getCell().getNet( 'we_from_pad(0)' ) ) +#DebugSession.addToTrace( katana.getCell().getNet( 'a_from_pad(2)' ) ) +#DebugSession.addToTrace( katana.getCell().getNet( 'core.result(0)' ) ) +#DebugSession.addToTrace( katana.getCell().getNet( 'a_from_pad(6)' ) ) diff --git a/experiments12/doDesign.py b/experiments12/doDesign.py index 5c525c4..7a2822e 100644 --- a/experiments12/doDesign.py +++ b/experiments12/doDesign.py @@ -11,6 +11,7 @@ from helpers.io import ErrorMessage, WarningMessage from helpers.overlay import UpdateSession import plugins from Hurricane import Breakpoint, DbU, Transformation, Box, Instance +from plugins.alpha.macro.macro import Macro from plugins.alpha.block.block import Block from plugins.alpha.block.configuration import IoPin, GaugeConf from plugins.alpha.core2chip.libresocio import CoreToChip @@ -119,11 +120,13 @@ def scriptMain ( **kw ): if not sram: print( '[ERROR] SRAM instance "{}" not found.'.format(sramName) ) else: + Macro.wrap( sram.getMasterCell(), 'FlexLib', 3, 2 ) sramAb = sram.getMasterCell().getAbutmentBox() - sram.setTransformation( Transformation( coreAb.getXMax() - sramAb.getWidth() - , u(0.0) - , Transformation.Orientation.ID ) ) - sram.setPlacementStatus( Instance.PlacementStatus.FIXED ) + Macro.place( sram + , Transformation( coreAb.getXMax() - sramAb.getWidth() + , u(0.0) + , Transformation.Orientation.ID ) + , Instance.PlacementStatus.FIXED ) sramAb = sram.getAbutmentBox() memoryConf.placeArea = Box( coreAb.getXMin() , coreAb.getYMax() - sliceHeight*10 @@ -133,8 +136,8 @@ def scriptMain ( **kw ): Breakpoint.stop( 99, 'After core block placement.' ) if buildChip: - arlet6502ToChip = CoreToChip( memoryConf ) - arlet6502ToChip.buildChip() + memoryToChip = CoreToChip( memoryConf ) + memoryToChip.buildChip() chipBuilder = Chip( memoryConf ) rvalue = chipBuilder.doPnR() chipBuilder.save() -- 2.30.2