fix incorrect block for syn/par, but still have timing violations

This commit is contained in:
Harrison Liew
2019-09-01 10:42:49 -07:00
parent 6179a91a29
commit fb35782841
2 changed files with 29 additions and 11 deletions

View File

@@ -18,7 +18,15 @@ make buildfile
``` ```
# Example design # Example design
In this example, you will be running a SHA-3 accelerator through the VLSI flow. It is assumed that you have already run through the flow to elaborate the Chisel into Verilog. In this example, you will be running a SHA-3 accelerator through the VLSI flow. To elaborate the Sha3RocketConfig and set up all prerequisites for the build system:
```shell
export MACROCOMPILER_MODE=' --mode synflops'
export CONFIG=Sha3RocketConfig
export TOP=Sha3Accel
make buildfile
```
Note that because the ASAP7 process does not yet have a memory compiler, synflops are elaborated instead.
>>>>>>> fix incorrect block for syn/par, but still have timing violations
HAMMER's configuration is driven by a JSON/YAML format. For HAMMER, JSON and YAML files are equivalent - you can use either one since HAMMER will convert them to the same representation for itself. HAMMER's configuration is driven by a JSON/YAML format. For HAMMER, JSON and YAML files are equivalent - you can use either one since HAMMER will convert them to the same representation for itself.

View File

@@ -2,8 +2,10 @@
# Technology used is ASAP7 # Technology used is ASAP7
vlsi.core.technology: asap7 vlsi.core.technology: asap7
vlsi.core.node: 7 vlsi.core.node: 7
technology.asap7.tarball_dir: "SPECIFY DIR WITH ASAP7 TARBALL" # Specify dir with ASAP7 tarball
technology.asap7.install_dir: "SPECIFY EXTRACTED DIR HERE IF NOT USING TARBALL" technology.asap7.tarball_dir: "/tools/B/asap7"
# Specify extracted dir here if not using tarball
technology.asap7.install_dir: "/tools/B/asap7"
vlsi.core.max_threads: 12 vlsi.core.max_threads: 12
@@ -13,16 +15,17 @@ vlsi.inputs.supplies.VDD: "0.7 V"
# Hammer will auto-generate a CPF for simple power designs; see hammer/src/hammer-vlsi/defaults.yml for more info # Hammer will auto-generate a CPF for simple power designs; see hammer/src/hammer-vlsi/defaults.yml for more info
vlsi.inputs.power_spec_mode: "auto" vlsi.inputs.power_spec_mode: "auto"
vlsi.inputs.power_spec_type: "cpf"
# Specify the setup and hold corners for ASAP7 # Specify the setup and hold corners for ASAP7
vlsi.inputs.mmmc_corners: [ vlsi.inputs.mmmc_corners: [
{name: "PVT_0P63V_100C", type: "setup", voltage: "0.63 V", temp: "100 C"}, {name: "PVT_0P63V_100C", type: "setup", voltage: "0.63 V", temp: "100 C"},
{name: "PVT_0P77V_0C", type: "hold", voltage: "0.77 V", temp: "0 C"} {name: "PVT_0P77V_0C", type: "hold", voltage: "0.77 V", temp: "0 C"}
] ]
# Specify clock signals # Specify clock signals
vlsi.inputs.clocks: [ vlsi.inputs.clocks: [
{name: "clock", period: "10ns", uncertainty: "0.1ns"} {name: "clock", period: "20ns", uncertainty: "0.1ns"}
] ]
# Generate Make include to aid in flow # Generate Make include to aid in flow
@@ -50,18 +53,25 @@ par.generate_power_straps_options:
# Placement Constraints # Placement Constraints
vlsi.inputs.placement_constraints: vlsi.inputs.placement_constraints:
- path: "ExampleTop" - path: "Sha3Accel"
type: "toplevel" type: "toplevel"
x: 0 x: 0
y: 0 y: 0
width: 50 width: 500
height: 50 height: 500
margins: margins:
left: 0 left: 0
right: 0 right: 0
top: 0 top: 0
bottom: 0 bottom: 0
# Pin placement constraints
vlsi.inputs.pin_mode: generated
vlsi.inputs.pin.generate_mode: semi_auto
vlsi.inputs.pin.assignments: [
{pins: "*", layers: ["M5", "M7"], side: "bottom"}
]
# SRAM Compiler compiler options # SRAM Compiler compiler options
vlsi.core.sram_generator_tool: "sram_compiler" vlsi.core.sram_generator_tool: "sram_compiler"
vlsi.core.sram_generator_tool_path: ["SPECIFY LOCATION OF SRAM GENERATOR IN TECH PLUGIN"] vlsi.core.sram_generator_tool_path: ["SPECIFY LOCATION OF SRAM GENERATOR IN TECH PLUGIN"]
@@ -82,6 +92,6 @@ par.innovus.design_flow_effort: "standard"
par.inputs.gds_merge: true par.inputs.gds_merge: true
# Calibre options # Calibre options
vlsi.core.drc_tool: "calibre" vlsi.core.drc_tool: "calibre"
vlsi.core.drc_tool_path: ["hammer-cad-plugins/drc"] vlsi.core.drc_tool_path: ["hammer-mentor-plugins/drc"]
vlsi.core.lvs_tool: "calibre" vlsi.core.lvs_tool: "calibre"
vlsi.core.lvs_tool_path: ["hammer-cad-plugins/lvs"] vlsi.core.lvs_tool_path: ["hammer-mentor-plugins/lvs"]