File tree Expand file tree Collapse file tree 7 files changed +50
-11
lines changed
flow/designs/asap7/mock-array-big Expand file tree Collapse file tree 7 files changed +50
-11
lines changed Original file line number Diff line number Diff line change 1+ include designs/asap7/mock-array-big/defaults.mk
2+
13export DESIGN_NAME = Element
24export DESIGN_NICKNAME = mock-array-big_Element
35
@@ -10,8 +12,8 @@ export PLACE_DENSITY = 0.50
1012export GPL_TIMING_DRIVEN = 0
1113export GPL_ROUTABILITY_DRIVEN = 0
1214
13- export CORE_AREA = $(shell python3 designs/asap7/mock-array-big/ce_core_area.py)
14- export DIE_AREA = $(shell python3 designs/asap7/mock-array-big/ce_die_area.py)
15+ export CORE_AREA = $(shell export MOCK_ARRAY_HEIGHT= $( MOCK_ARRAY_HEIGHT ) && export MOCK_ARRAY_WIDTH= $( MOCK_ARRAY_WIDTH ) && export MOCK_ARRAY_PITCH_SCALE= $( MOCK_ARRAY_PITCH_SCALE ) && python3 designs/asap7/mock-array-big/ce_core_area.py)
16+ export DIE_AREA = $(shell export MOCK_ARRAY_HEIGHT= $( MOCK_ARRAY_HEIGHT ) && export MOCK_ARRAY_WIDTH= $( MOCK_ARRAY_WIDTH ) && export MOCK_ARRAY_PITCH_SCALE= $( MOCK_ARRAY_PITCH_SCALE ) && python3 designs/asap7/mock-array-big/ce_die_area.py)
1517
1618export IO_CONSTRAINTS = designs/asap7/mock-array-big/Element/io.tcl
1719
@@ -20,3 +22,5 @@ export PDN_TCL = designs/asap7/mock-array-big/Element/pdn.tcl
2022# max routing layer need to be set to M5, since M6 is needed for next level up to connect
2123# to the ring and stipe
2224export MAX_ROUTING_LAYER = M5
25+
26+ export PRIVATE_DIR =designs/asap7/mock-array-big
Original file line number Diff line number Diff line change @@ -6,7 +6,30 @@ interesting test-cases.
66
77By default, the array is 8x8 elements and has an 8 bit datapath.
88
9- To create a 4x4 element array with 4 bit datapath, run :
9+ To create a 4x4 element array with 4 bit datapath, first create a settings.mk file :
1010
11- MOCK_ARRAY_WIDTH=4 MOCK_ARRAY_HEIGHT=4 MOCK_ARRAY_DATAWIDTH=4 ./configure.sh
12- MOCK_ARRAY_WIDTH=4 MOCK_ARRAY_HEIGHT=4 MOCK_ARRAY_DATAWIDTH=4 make DESIGN_CONFIG=designs/asap7/mock-array-big/config.mk
11+ ```
12+ export MOCK_ARRAY_WIDTH=4
13+ export MOCK_ARRAY_HEIGHT=4
14+ export MOCK_ARRAY_DATAWIDTH=4
15+ export FLOW_VARIANT=small
16+ # use a different folder for each combination of parameters
17+ #export MOCK_ARRAY_WIDTH=16
18+ #export MOCK_ARRAY_HEIGHT=16
19+ #export MOCK_ARRAY_DATAWIDTH=64
20+ #export FLOW_VARIANT=giant
21+ export DESIGN_CONFIG=designs/asap7/mock-array-big/config.mk
22+ ```
23+
24+ Now run configure, which a custom target in mock-array-big, that runs Chisel to
25+ regenerate the Verilog code for the above configuration:
26+
27+ ```
28+ make verilog
29+ ```
30+
31+ Now build the design as usual:
32+
33+ ```
34+ make
35+ ```
Original file line number Diff line number Diff line change 1+ include designs/asap7/mock-array-big/defaults.mk
2+
13export DESIGN_NAME = MockArray
24export DESIGN_NICKNAME = mock-array-big
35
@@ -10,8 +12,8 @@ export PLATFORM = asap7
1012
1113export PLACE_DENSITY = 0.30
1214
13- export CORE_AREA = $(shell python3 designs/asap7/mock-array-big/core_area.py)
14- export DIE_AREA = $(shell python3 designs/asap7/mock-array-big/die_area.py)
15+ export CORE_AREA = $(shell export MOCK_ARRAY_HEIGHT= $( MOCK_ARRAY_HEIGHT ) && export MOCK_ARRAY_WIDTH= $( MOCK_ARRAY_WIDTH ) && export MOCK_ARRAY_PITCH_SCALE= $( MOCK_ARRAY_PITCH_SCALE ) && python3 designs/asap7/mock-array-big/core_area.py)
16+ export DIE_AREA = $(shell export MOCK_ARRAY_HEIGHT= $( MOCK_ARRAY_HEIGHT ) && export MOCK_ARRAY_WIDTH= $( MOCK_ARRAY_WIDTH ) && export MOCK_ARRAY_PITCH_SCALE= $( MOCK_ARRAY_PITCH_SCALE ) && python3 designs/asap7/mock-array-big/die_area.py)
1517
1618BLOCKS = Element
1719
@@ -23,3 +25,5 @@ export IO_CONSTRAINTS = designs/asap7/mock-array-big/io.tcl
2325
2426export PDN_TCL = designs/asap7/mock-array-big/pdn.tcl
2527export TNS_END_PERCENT ?= 100
28+
29+ export PRIVATE_DIR =designs/asap7/mock-array-big
Original file line number Diff line number Diff line change 11import os
22
33# number of Elements in row and column, user can set via environment variable
4- rows = int (os .environ .get ("MOCK_ARRAY_HEIGHT" , "8" ))
5- cols = int (os .environ .get ("MOCK_ARRAY_WIDTH" , "8" ))
4+ rows = int (os .environ .get ("MOCK_ARRAY_HEIGHT" ))
5+ cols = int (os .environ .get ("MOCK_ARRAY_WIDTH" ))
66
77# Element placement pitch can be control by user
8- pitch_scale = int (os .environ .get ("MOCK_ARRAY_PITCH_SCALE" , "2" ))
8+ pitch_scale = int (os .environ .get ("MOCK_ARRAY_PITCH_SCALE" ))
99
1010if pitch_scale < 1 :
1111 raise Exception ("Element placement pitch must be greater than 1" )
Original file line number Diff line number Diff line change 1+ # single source of truth for defaults.
2+ export MOCK_ARRAY_WIDTH ?= 8
3+ export MOCK_ARRAY_HEIGHT ?= 8
4+ export MOCK_ARRAY_DATAWIDTH ?= 8
5+ export MOCK_ARRAY_PITCH_SCALE ?= 2
Original file line number Diff line number Diff line change 1+ .PHONY : verilog
2+ verilog :
3+ designs/asap7/mock-array-big/verilog.sh
Original file line number Diff line number Diff line change @@ -10,7 +10,7 @@ cd $DIR
1010cd ../../src/mock-array-big
1111
1212sbt -Duser.home=" $HOME " -Djline.terminal=jline.UnsupportedTerminal -batch \
13- " test:runMain GenerateMockArray --width ${MOCK_ARRAY_WIDTH:- 8 } --height ${MOCK_ARRAY_HEIGHT:- 8 } --dataWidth ${MOCK_ARRAY_DATAWIDTH:- 8 } -- --emit-modules verilog --emission-options disableMemRandomization,disableRegisterRandomization --target-dir ."
13+ " test:runMain GenerateMockArray --width ${MOCK_ARRAY_WIDTH} --height ${MOCK_ARRAY_HEIGHT} --dataWidth ${MOCK_ARRAY_DATAWIDTH} -- --emit-modules verilog --emission-options disableMemRandomization,disableRegisterRandomization --target-dir ."
1414
1515# reduce git noise as these comments will change if the line numbers in MockArray.scala changes
1616find . -name " *.v" -type f -exec sed -i ' s/ \/\/.*$//' {} \;
You can’t perform that action at this time.
0 commit comments