Skip to content

Commit 1a8812a

Browse files
committed
gt2n: add jpeg design as a third reference
Adds jpeg_encoder as a larger reference benchmark alongside gcd and aes -- representative of designs that meaningfully exercise the upper-stack routing layers and the multi-W / multi-Vt library menu. config.mk mirrors the asap7 / nangate45 jpeg configurations (ABC_AREA=1, TNS_END_PERCENT=100, conservative CORE_UTILIZATION). constraint.sdc uses a 1500 ps clock as a first-pass loose target; period_min lands around 950 ps so the design has substantial headroom to tighten once OpenRCX rules replace the analytical RC. Signed-off-by: Matthew Guthaus <mrg@ucsc.edu>
1 parent 5eb5cb2 commit 1a8812a

2 files changed

Lines changed: 32 additions & 0 deletions

File tree

flow/designs/gt2n/jpeg/config.mk

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
export DESIGN_NICKNAME = jpeg
2+
export DESIGN_NAME = jpeg_encoder
3+
export PLATFORM = gt2n
4+
5+
export VERILOG_FILES = $(sort $(wildcard $(DESIGN_HOME)/src/$(DESIGN_NICKNAME)/*.v))
6+
export VERILOG_INCLUDE_DIRS = $(DESIGN_HOME)/src/$(DESIGN_NICKNAME)/include
7+
export SDC_FILE = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NICKNAME)/constraint.sdc
8+
9+
export ABC_AREA = 1
10+
11+
# Floorplan: jpeg_encoder is larger than aes; start conservative.
12+
export CORE_UTILIZATION = 40
13+
export CORE_ASPECT_RATIO = 1
14+
export CORE_MARGIN = 2
15+
export PLACE_DENSITY_LB_ADDON = 0.20
16+
export TNS_END_PERCENT = 100
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
current_design jpeg_encoder
2+
3+
set clk_name clk
4+
set clk_port_name clk
5+
# GT2N lib uses time_unit = 1 ps. 1500 ps -> 667 MHz. Loose first-pass
6+
# target with the analytical-RC stand-in -- tighten once the optimize-ppa
7+
# loop has the baseline period_min.
8+
set clk_period 1000
9+
set clk_io_pct 0.2
10+
11+
set clk_port [get_ports $clk_port_name]
12+
create_clock -name $clk_name -period $clk_period $clk_port
13+
14+
set non_clock_inputs [all_inputs -no_clocks]
15+
set_input_delay [expr $clk_period * $clk_io_pct] -clock $clk_name $non_clock_inputs
16+
set_output_delay [expr $clk_period * $clk_io_pct] -clock $clk_name [all_outputs]

0 commit comments

Comments
 (0)