From 6b6574dd8a741fdc6bd3962ba06d9caba341a23b Mon Sep 17 00:00:00 2001 From: Stephen Williams Date: Sat, 15 Feb 2014 14:44:15 -0800 Subject: [PATCH] sizer support for simple LPM MUX devices. --- tgt-sizer/scan_lpms.cc | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/tgt-sizer/scan_lpms.cc b/tgt-sizer/scan_lpms.cc index 4d23a8f40..6298d1275 100644 --- a/tgt-sizer/scan_lpms.cc +++ b/tgt-sizer/scan_lpms.cc @@ -46,6 +46,21 @@ static void scans_lpms_add(ivl_scope_t, ivl_lpm_t lpm, struct sizer_statistics&s stats.gate_count += 2*wid; } +/* + * Count mux devices as 2m gates. + */ +static void scan_lpms_mux(ivl_scope_t, ivl_lpm_t lpm, struct sizer_statistics&stats) +{ + // For now, don't generate statistics for wide mux devices. + if (ivl_lpm_size(lpm) > 2) { + stats.lpm_bytype[ivl_lpm_type(lpm)] += 1; + return; + } + + unsigned wid = ivl_lpm_width(lpm); + stats.gate_count += 2*wid; +} + void scan_lpms(ivl_scope_t scope, struct sizer_statistics&stats) { for (unsigned idx = 0 ; idx < ivl_scope_lpms(scope) ; idx += 1) { @@ -70,6 +85,10 @@ void scan_lpms(ivl_scope_t scope, struct sizer_statistics&stats) scan_lpms_ff(scope, lpm, stats); break; + case IVL_LPM_MUX: + scan_lpms_mux(scope, lpm, stats); + break; + default: stats.lpm_bytype[ivl_lpm_type(lpm)] += 1; break;