Stage 5b: popcount reformulation, 907 gates (71 pct fewer than Stage 5), F1 0.876
Browse files- stage_5b/README.md +63 -0
- stage_5b/calibrate_popcount.py +153 -0
- stage_5b/per_dim_thresholds.json +292 -0
- stage_5b/person_classifier_popcount.v +70 -0
- stage_5b/person_classifier_popcount_folded.v +64 -0
- stage_5b/person_classifier_sum_folded.v +32 -0
- stage_5b/synth.log +914 -0
- stage_5b/synth.ys +11 -0
- stage_5b/synth_folded.log +976 -0
- stage_5b/synth_folded.ys +11 -0
- stage_5b/synth_sum_folded.log +910 -0
- stage_5b/synth_sum_folded.ys +10 -0
- stage_5b/synthesized.v +0 -0
- stage_5b/synthesized_folded.v +1943 -0
stage_5b/README.md
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Stage 5b: Popcount Reformulation
|
| 2 |
+
|
| 3 |
+
Reformulate the Stage 0 classifier so each of 40 feature channels first binarizes against an offline-calibrated INT8 threshold, then two 20-bit popcounts replace Stage 5's 40-term 8-bit signed adder tree.
|
| 4 |
+
|
| 5 |
+
## Reformulation
|
| 6 |
+
|
| 7 |
+
Stage 5 form:
|
| 8 |
+
|
| 9 |
+
```
|
| 10 |
+
score = sum(pos_dims) − sum(neg_dims) // 40 × 8-bit adder tree
|
| 11 |
+
output = score > T // signed comparator
|
| 12 |
+
```
|
| 13 |
+
|
| 14 |
+
Stage 5b form:
|
| 15 |
+
|
| 16 |
+
```
|
| 17 |
+
for each dim i: b_i = (f_i > t_i) // 40 × 8-bit comparators
|
| 18 |
+
count_pos = popcount(b_0 .. b_19) // 20 → 5 bits
|
| 19 |
+
count_neg = popcount(b_20 .. b_39) // 20 → 5 bits
|
| 20 |
+
score_int = count_pos − count_neg // 6-bit subtract
|
| 21 |
+
output = score_int > K // small comparator
|
| 22 |
+
```
|
| 23 |
+
|
| 24 |
+
Offline calibration (see `calibrate_popcount.py`):
|
| 25 |
+
- For each of the 40 classifier dims, sweep a per-dim threshold on COCO val pooled-LN features, pick the one that best separates person-positive vs person-negative.
|
| 26 |
+
- Pick the final integer threshold K by sweeping K ∈ [−20, 20].
|
| 27 |
+
|
| 28 |
+
## Accuracy
|
| 29 |
+
|
| 30 |
+
```
|
| 31 |
+
variant F1 ΔF1 vs Stage 0
|
| 32 |
+
Stage 0 additive (float) 0.884 —
|
| 33 |
+
Stage 5b popcount (quantized, K=13) 0.876 −0.008
|
| 34 |
+
```
|
| 35 |
+
|
| 36 |
+
40 per-dim thresholds live in `per_dim_thresholds.json`; K = 13.
|
| 37 |
+
|
| 38 |
+
## Synthesis (Yosys + ABC, target gate library AND + XOR)
|
| 39 |
+
|
| 40 |
+
Both variants are synthesized with their constants baked in — the realistic deployment shape where calibrated thresholds are hard-wired.
|
| 41 |
+
|
| 42 |
+
| Variant | Cells | AND | NOT | XOR |
|
| 43 |
+
|---|---:|---:|---:|---:|
|
| 44 |
+
| Stage 5 additive (threshold baked) | 3,129 | 1,133 | 1,281 | 715 |
|
| 45 |
+
| **Stage 5b popcount (thresholds baked)** | **907** | **378** | **452** | **77** |
|
| 46 |
+
| Reduction | **−71 %** | −67 % | −65 % | −89 % |
|
| 47 |
+
|
| 48 |
+
The XOR drop is the cleanest signal: popcount barely needs any, because there is no multi-bit addition chain to implement.
|
| 49 |
+
|
| 50 |
+
For historical reference, the unfolded-threshold variants (thresholds as runtime inputs) came in at Stage 5 = 3,220 cells and Stage 5b = 3,040 cells — much narrower gap. Constant folding is where the popcount reformulation earns its keep.
|
| 51 |
+
|
| 52 |
+
## Files
|
| 53 |
+
|
| 54 |
+
- `calibrate_popcount.py` — per-dim threshold calibration + F1 sweep
|
| 55 |
+
- `per_dim_thresholds.json` — calibrated float thresholds + INT8-quantized forms used in the Verilog
|
| 56 |
+
- `person_classifier_popcount.v` — RTL with runtime thresholds
|
| 57 |
+
- `person_classifier_popcount_folded.v` — RTL with thresholds baked in
|
| 58 |
+
- `person_classifier_sum_folded.v` — Stage 5-equivalent additive classifier with threshold baked in (fair-comparison baseline)
|
| 59 |
+
- `synth*.ys`, `synth*.log` — Yosys scripts and logs
|
| 60 |
+
|
| 61 |
+
## Deployment implication
|
| 62 |
+
|
| 63 |
+
907 gates at a modern 22 nm FD-SOI process is sub-0.01 mm². The circuit fits inside an always-on wake block of a camera sensor ISP. Throughput is combinational and one-cycle; the only external cost is the per-frame backbone forward feeding the 40 selected INT8 channels.
|
stage_5b/calibrate_popcount.py
ADDED
|
@@ -0,0 +1,153 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Stage 5b: popcount reformulation of the Stage 0 classifier.
|
| 2 |
+
|
| 3 |
+
Replace 8-bit signed addition of 40 features with:
|
| 4 |
+
- per-dim comparator against a learned threshold (1 bit per dim)
|
| 5 |
+
- popcount of 20 positive-dim bits minus popcount of 20 negative-dim bits
|
| 6 |
+
- final scalar comparison
|
| 7 |
+
|
| 8 |
+
Offline calibration:
|
| 9 |
+
1. For each of the 40 classifier dims, pick a per-dim threshold from the
|
| 10 |
+
COCO val feature distribution that best separates person-positive vs
|
| 11 |
+
person-negative images. Use quantile of the pooled-dim activation pool.
|
| 12 |
+
2. Binarize per-image: for each of the 40 dims, compute a 1-bit indicator.
|
| 13 |
+
3. Score = popcount(pos 20 bits) - popcount(neg 20 bits).
|
| 14 |
+
4. Sweep the final scalar threshold, report F1.
|
| 15 |
+
|
| 16 |
+
Output: per_dim_thresholds.json + F1 report.
|
| 17 |
+
"""
|
| 18 |
+
import os, sys, json, time
|
| 19 |
+
import torch
|
| 20 |
+
import torch.nn.functional as F
|
| 21 |
+
from pycocotools.coco import COCO
|
| 22 |
+
|
| 23 |
+
COCO_ROOT = '/home/zootest/datasets/coco'
|
| 24 |
+
VAL_CACHE = f'{COCO_ROOT}/val_feature_cache_768/val.pt'
|
| 25 |
+
CLASSIFIER = '/mnt/d/_tmp/1pc_repo/stage_0/classifier.json'
|
| 26 |
+
OUT_DIR = '/mnt/d/_tmp/1pc_repo/stage_5b'
|
| 27 |
+
DEVICE = 'cuda'
|
| 28 |
+
D = 768
|
| 29 |
+
|
| 30 |
+
|
| 31 |
+
def ln_pool(sp_feat):
|
| 32 |
+
ln = F.layer_norm(sp_feat.permute(1, 2, 0).reshape(-1, D), [D])
|
| 33 |
+
return ln.max(dim=0).values
|
| 34 |
+
|
| 35 |
+
|
| 36 |
+
def main():
|
| 37 |
+
os.makedirs(OUT_DIR, exist_ok=True)
|
| 38 |
+
with open(CLASSIFIER) as f:
|
| 39 |
+
c = json.load(f)
|
| 40 |
+
pos_dims = c['pos_dims']
|
| 41 |
+
neg_dims = c['neg_dims']
|
| 42 |
+
all_dims = pos_dims + neg_dims # 40 dims
|
| 43 |
+
|
| 44 |
+
print('[load] COCO val features + person labels', flush=True)
|
| 45 |
+
val = torch.load(VAL_CACHE, map_location='cpu', weights_only=False)
|
| 46 |
+
coco = COCO(f'{COCO_ROOT}/annotations/instances_val2017.json')
|
| 47 |
+
feats, labels = [], []
|
| 48 |
+
for e in val:
|
| 49 |
+
img_id = int(e['img_id'])
|
| 50 |
+
feats.append(ln_pool(e['spatial'].float()))
|
| 51 |
+
ann_ids = coco.getAnnIds(imgIds=img_id, iscrowd=False)
|
| 52 |
+
labels.append(any(a['category_id'] == 1 for a in coco.loadAnns(ann_ids)))
|
| 53 |
+
F_mat = torch.stack(feats).to(DEVICE)[:, all_dims] # (N, 40)
|
| 54 |
+
y = torch.tensor(labels, dtype=torch.bool, device=DEVICE)
|
| 55 |
+
print(f' N={F_mat.shape[0]} person_rate={y.float().mean():.3f}', flush=True)
|
| 56 |
+
|
| 57 |
+
# Balanced subsample for calibration
|
| 58 |
+
pos_mask_pool = y.nonzero(as_tuple=True)[0]
|
| 59 |
+
neg_mask_pool = (~y).nonzero(as_tuple=True)[0]
|
| 60 |
+
n = min(len(pos_mask_pool), len(neg_mask_pool))
|
| 61 |
+
sel = torch.cat([pos_mask_pool[torch.randperm(len(pos_mask_pool))[:n]],
|
| 62 |
+
neg_mask_pool[torch.randperm(len(neg_mask_pool))[:n]]])
|
| 63 |
+
sel = sel[torch.randperm(len(sel))]
|
| 64 |
+
X = F_mat[sel]
|
| 65 |
+
yb = y[sel]
|
| 66 |
+
|
| 67 |
+
# --- 1. per-dim threshold: sweep values, find best F1 as a standalone 1-bit classifier
|
| 68 |
+
per_dim_thr = []
|
| 69 |
+
for d_local, d_global in enumerate(all_dims):
|
| 70 |
+
vals = X[:, d_local]
|
| 71 |
+
cand = torch.quantile(vals, torch.linspace(0.05, 0.95, 19, device=DEVICE))
|
| 72 |
+
best = (0, 0)
|
| 73 |
+
is_pos_dim = d_local < len(pos_dims)
|
| 74 |
+
for t in cand.tolist():
|
| 75 |
+
pred = (vals > t) if is_pos_dim else (vals < t)
|
| 76 |
+
tp = (pred & yb).sum().float()
|
| 77 |
+
fp = (pred & ~yb).sum().float()
|
| 78 |
+
fn = (~pred & yb).sum().float()
|
| 79 |
+
prec = tp / (tp + fp).clamp(min=1)
|
| 80 |
+
rec = tp / (tp + fn).clamp(min=1)
|
| 81 |
+
f1 = (2 * prec * rec / (prec + rec).clamp(min=1e-9)).item()
|
| 82 |
+
if f1 > best[0]:
|
| 83 |
+
best = (f1, t)
|
| 84 |
+
per_dim_thr.append({'dim_index_in_40': d_local, 'dim_global': int(d_global),
|
| 85 |
+
'is_pos': is_pos_dim, 'threshold': best[1], 'per_dim_F1': best[0]})
|
| 86 |
+
|
| 87 |
+
print('[per-dim] calibration done (per-dim F1 ranges '
|
| 88 |
+
f'{min(p["per_dim_F1"] for p in per_dim_thr):.3f} - '
|
| 89 |
+
f'{max(p["per_dim_F1"] for p in per_dim_thr):.3f})', flush=True)
|
| 90 |
+
|
| 91 |
+
# --- 2. Binarize: 1 if pos-dim triggers or neg-dim does NOT trigger (we want high activation)
|
| 92 |
+
bits_pos = torch.stack([
|
| 93 |
+
(X[:, p['dim_index_in_40']] > p['threshold']).int()
|
| 94 |
+
for p in per_dim_thr[:len(pos_dims)]
|
| 95 |
+
], dim=1) # (N, 20)
|
| 96 |
+
bits_neg = torch.stack([
|
| 97 |
+
(X[:, p['dim_index_in_40']] > p['threshold']).int()
|
| 98 |
+
for p in per_dim_thr[len(pos_dims):]
|
| 99 |
+
], dim=1) # (N, 20)
|
| 100 |
+
count_pos = bits_pos.sum(dim=1) # (N,) in [0, 20]
|
| 101 |
+
count_neg = bits_neg.sum(dim=1)
|
| 102 |
+
score = (count_pos - count_neg).float() # in [-20, 20]
|
| 103 |
+
|
| 104 |
+
# --- 3. Sweep final threshold
|
| 105 |
+
best = (0, 0, 0, 0)
|
| 106 |
+
for t in range(-20, 21):
|
| 107 |
+
pred = score > t
|
| 108 |
+
tp = (pred & yb).sum().float()
|
| 109 |
+
fp = (pred & ~yb).sum().float()
|
| 110 |
+
fn = (~pred & yb).sum().float()
|
| 111 |
+
prec = tp / (tp + fp).clamp(min=1)
|
| 112 |
+
rec = tp / (tp + fn).clamp(min=1)
|
| 113 |
+
f1 = (2 * prec * rec / (prec + rec).clamp(min=1e-9)).item()
|
| 114 |
+
if f1 > best[0]:
|
| 115 |
+
best = (f1, t, prec.item(), rec.item())
|
| 116 |
+
f1_pop, t_pop, p_pop, r_pop = best
|
| 117 |
+
print(f'[popcount] F1={f1_pop:.4f} P={p_pop:.4f} R={r_pop:.4f} θ_int={t_pop}', flush=True)
|
| 118 |
+
|
| 119 |
+
# For baseline comparison: Stage 0 int-8 sum classifier on the same X
|
| 120 |
+
s_sum = X[:, :len(pos_dims)].sum(dim=1) - X[:, len(pos_dims):].sum(dim=1)
|
| 121 |
+
uniq = torch.unique(s_sum).sort().values[::max(1, len(s_sum)//500)]
|
| 122 |
+
best0 = (0, 0, 0, 0)
|
| 123 |
+
for t in uniq.tolist():
|
| 124 |
+
pred = s_sum > t
|
| 125 |
+
tp = (pred & yb).sum().float()
|
| 126 |
+
fp = (pred & ~yb).sum().float()
|
| 127 |
+
fn = (~pred & yb).sum().float()
|
| 128 |
+
prec = tp / (tp + fp).clamp(min=1)
|
| 129 |
+
rec = tp / (tp + fn).clamp(min=1)
|
| 130 |
+
f1 = (2 * prec * rec / (prec + rec).clamp(min=1e-9)).item()
|
| 131 |
+
if f1 > best0[0]:
|
| 132 |
+
best0 = (f1, t, prec.item(), rec.item())
|
| 133 |
+
print(f'[stage 0] F1={best0[0]:.4f} P={best0[2]:.4f} R={best0[3]:.4f} θ={best0[1]:.3f}',
|
| 134 |
+
flush=True)
|
| 135 |
+
|
| 136 |
+
result = {
|
| 137 |
+
'per_dim_thresholds': per_dim_thr,
|
| 138 |
+
'popcount_final_threshold': int(t_pop),
|
| 139 |
+
'popcount_F1': float(f1_pop),
|
| 140 |
+
'popcount_precision': float(p_pop),
|
| 141 |
+
'popcount_recall': float(r_pop),
|
| 142 |
+
'stage_0_sum_F1': float(best0[0]),
|
| 143 |
+
'stage_0_sum_precision': float(best0[2]),
|
| 144 |
+
'stage_0_sum_recall': float(best0[3]),
|
| 145 |
+
'F1_delta_popcount_vs_stage_0': float(f1_pop - best0[0]),
|
| 146 |
+
}
|
| 147 |
+
with open(f'{OUT_DIR}/per_dim_thresholds.json', 'w') as f:
|
| 148 |
+
json.dump(result, f, indent=2)
|
| 149 |
+
print(f'[done] -> {OUT_DIR}/per_dim_thresholds.json', flush=True)
|
| 150 |
+
|
| 151 |
+
|
| 152 |
+
if __name__ == '__main__':
|
| 153 |
+
main()
|
stage_5b/per_dim_thresholds.json
ADDED
|
@@ -0,0 +1,292 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"per_dim_thresholds": [
|
| 3 |
+
{
|
| 4 |
+
"dim_index_in_40": 0,
|
| 5 |
+
"dim_global": 48,
|
| 6 |
+
"is_pos": true,
|
| 7 |
+
"threshold": 6.572150230407715,
|
| 8 |
+
"per_dim_F1": 0.8464522361755371
|
| 9 |
+
},
|
| 10 |
+
{
|
| 11 |
+
"dim_index_in_40": 1,
|
| 12 |
+
"dim_global": 525,
|
| 13 |
+
"is_pos": true,
|
| 14 |
+
"threshold": 7.047104358673096,
|
| 15 |
+
"per_dim_F1": 0.7466137409210205
|
| 16 |
+
},
|
| 17 |
+
{
|
| 18 |
+
"dim_index_in_40": 2,
|
| 19 |
+
"dim_global": 475,
|
| 20 |
+
"is_pos": true,
|
| 21 |
+
"threshold": 3.269585132598877,
|
| 22 |
+
"per_dim_F1": 0.6843164563179016
|
| 23 |
+
},
|
| 24 |
+
{
|
| 25 |
+
"dim_index_in_40": 3,
|
| 26 |
+
"dim_global": 645,
|
| 27 |
+
"is_pos": true,
|
| 28 |
+
"threshold": 7.4769134521484375,
|
| 29 |
+
"per_dim_F1": 0.7112371325492859
|
| 30 |
+
},
|
| 31 |
+
{
|
| 32 |
+
"dim_index_in_40": 4,
|
| 33 |
+
"dim_global": 273,
|
| 34 |
+
"is_pos": true,
|
| 35 |
+
"threshold": 2.0735650062561035,
|
| 36 |
+
"per_dim_F1": 0.7335397005081177
|
| 37 |
+
},
|
| 38 |
+
{
|
| 39 |
+
"dim_index_in_40": 5,
|
| 40 |
+
"dim_global": 292,
|
| 41 |
+
"is_pos": true,
|
| 42 |
+
"threshold": 1.5521039962768555,
|
| 43 |
+
"per_dim_F1": 0.732986569404602
|
| 44 |
+
},
|
| 45 |
+
{
|
| 46 |
+
"dim_index_in_40": 6,
|
| 47 |
+
"dim_global": 158,
|
| 48 |
+
"is_pos": true,
|
| 49 |
+
"threshold": 2.054447889328003,
|
| 50 |
+
"per_dim_F1": 0.6832557320594788
|
| 51 |
+
},
|
| 52 |
+
{
|
| 53 |
+
"dim_index_in_40": 7,
|
| 54 |
+
"dim_global": 510,
|
| 55 |
+
"is_pos": true,
|
| 56 |
+
"threshold": 0.10592363774776459,
|
| 57 |
+
"per_dim_F1": 0.6806007027626038
|
| 58 |
+
},
|
| 59 |
+
{
|
| 60 |
+
"dim_index_in_40": 8,
|
| 61 |
+
"dim_global": 506,
|
| 62 |
+
"is_pos": true,
|
| 63 |
+
"threshold": 0.642810583114624,
|
| 64 |
+
"per_dim_F1": 0.7115705609321594
|
| 65 |
+
},
|
| 66 |
+
{
|
| 67 |
+
"dim_index_in_40": 9,
|
| 68 |
+
"dim_global": 337,
|
| 69 |
+
"is_pos": true,
|
| 70 |
+
"threshold": 1.3417854309082031,
|
| 71 |
+
"per_dim_F1": 0.705616295337677
|
| 72 |
+
},
|
| 73 |
+
{
|
| 74 |
+
"dim_index_in_40": 10,
|
| 75 |
+
"dim_global": 8,
|
| 76 |
+
"is_pos": true,
|
| 77 |
+
"threshold": 0.520650327205658,
|
| 78 |
+
"per_dim_F1": 0.6678624749183655
|
| 79 |
+
},
|
| 80 |
+
{
|
| 81 |
+
"dim_index_in_40": 11,
|
| 82 |
+
"dim_global": 309,
|
| 83 |
+
"is_pos": true,
|
| 84 |
+
"threshold": 0.44822290539741516,
|
| 85 |
+
"per_dim_F1": 0.6864839196205139
|
| 86 |
+
},
|
| 87 |
+
{
|
| 88 |
+
"dim_index_in_40": 12,
|
| 89 |
+
"dim_global": 267,
|
| 90 |
+
"is_pos": true,
|
| 91 |
+
"threshold": 0.7230344414710999,
|
| 92 |
+
"per_dim_F1": 0.7057974338531494
|
| 93 |
+
},
|
| 94 |
+
{
|
| 95 |
+
"dim_index_in_40": 13,
|
| 96 |
+
"dim_global": 217,
|
| 97 |
+
"is_pos": true,
|
| 98 |
+
"threshold": 1.1072767972946167,
|
| 99 |
+
"per_dim_F1": 0.6852783560752869
|
| 100 |
+
},
|
| 101 |
+
{
|
| 102 |
+
"dim_index_in_40": 14,
|
| 103 |
+
"dim_global": 79,
|
| 104 |
+
"is_pos": true,
|
| 105 |
+
"threshold": 0.9621400237083435,
|
| 106 |
+
"per_dim_F1": 0.6922308206558228
|
| 107 |
+
},
|
| 108 |
+
{
|
| 109 |
+
"dim_index_in_40": 15,
|
| 110 |
+
"dim_global": 13,
|
| 111 |
+
"is_pos": true,
|
| 112 |
+
"threshold": 2.015596389770508,
|
| 113 |
+
"per_dim_F1": 0.6755585670471191
|
| 114 |
+
},
|
| 115 |
+
{
|
| 116 |
+
"dim_index_in_40": 16,
|
| 117 |
+
"dim_global": 657,
|
| 118 |
+
"is_pos": true,
|
| 119 |
+
"threshold": 0.7083938121795654,
|
| 120 |
+
"per_dim_F1": 0.6905635595321655
|
| 121 |
+
},
|
| 122 |
+
{
|
| 123 |
+
"dim_index_in_40": 17,
|
| 124 |
+
"dim_global": 207,
|
| 125 |
+
"is_pos": true,
|
| 126 |
+
"threshold": 0.7881279587745667,
|
| 127 |
+
"per_dim_F1": 0.7052351236343384
|
| 128 |
+
},
|
| 129 |
+
{
|
| 130 |
+
"dim_index_in_40": 18,
|
| 131 |
+
"dim_global": 722,
|
| 132 |
+
"is_pos": true,
|
| 133 |
+
"threshold": 0.895519495010376,
|
| 134 |
+
"per_dim_F1": 0.6906405091285706
|
| 135 |
+
},
|
| 136 |
+
{
|
| 137 |
+
"dim_index_in_40": 19,
|
| 138 |
+
"dim_global": 311,
|
| 139 |
+
"is_pos": true,
|
| 140 |
+
"threshold": 1.051217794418335,
|
| 141 |
+
"per_dim_F1": 0.6888962388038635
|
| 142 |
+
},
|
| 143 |
+
{
|
| 144 |
+
"dim_index_in_40": 20,
|
| 145 |
+
"dim_global": 642,
|
| 146 |
+
"is_pos": false,
|
| 147 |
+
"threshold": 4.502034664154053,
|
| 148 |
+
"per_dim_F1": 0.6846261024475098
|
| 149 |
+
},
|
| 150 |
+
{
|
| 151 |
+
"dim_index_in_40": 21,
|
| 152 |
+
"dim_global": 224,
|
| 153 |
+
"is_pos": false,
|
| 154 |
+
"threshold": 5.5922465324401855,
|
| 155 |
+
"per_dim_F1": 0.6726456880569458
|
| 156 |
+
},
|
| 157 |
+
{
|
| 158 |
+
"dim_index_in_40": 22,
|
| 159 |
+
"dim_global": 113,
|
| 160 |
+
"is_pos": false,
|
| 161 |
+
"threshold": 2.338114023208618,
|
| 162 |
+
"per_dim_F1": 0.6799814701080322
|
| 163 |
+
},
|
| 164 |
+
{
|
| 165 |
+
"dim_index_in_40": 23,
|
| 166 |
+
"dim_global": 565,
|
| 167 |
+
"is_pos": false,
|
| 168 |
+
"threshold": 1.811521291732788,
|
| 169 |
+
"per_dim_F1": 0.6747174263000488
|
| 170 |
+
},
|
| 171 |
+
{
|
| 172 |
+
"dim_index_in_40": 24,
|
| 173 |
+
"dim_global": 49,
|
| 174 |
+
"is_pos": false,
|
| 175 |
+
"threshold": 1.7180224657058716,
|
| 176 |
+
"per_dim_F1": 0.680044949054718
|
| 177 |
+
},
|
| 178 |
+
{
|
| 179 |
+
"dim_index_in_40": 25,
|
| 180 |
+
"dim_global": 637,
|
| 181 |
+
"is_pos": false,
|
| 182 |
+
"threshold": 7.861576080322266,
|
| 183 |
+
"per_dim_F1": 0.6734788417816162
|
| 184 |
+
},
|
| 185 |
+
{
|
| 186 |
+
"dim_index_in_40": 26,
|
| 187 |
+
"dim_global": 45,
|
| 188 |
+
"is_pos": false,
|
| 189 |
+
"threshold": 2.251237630844116,
|
| 190 |
+
"per_dim_F1": 0.6706920266151428
|
| 191 |
+
},
|
| 192 |
+
{
|
| 193 |
+
"dim_index_in_40": 27,
|
| 194 |
+
"dim_global": 520,
|
| 195 |
+
"is_pos": false,
|
| 196 |
+
"threshold": 6.079483985900879,
|
| 197 |
+
"per_dim_F1": 0.675870954990387
|
| 198 |
+
},
|
| 199 |
+
{
|
| 200 |
+
"dim_index_in_40": 28,
|
| 201 |
+
"dim_global": 219,
|
| 202 |
+
"is_pos": false,
|
| 203 |
+
"threshold": 2.141653060913086,
|
| 204 |
+
"per_dim_F1": 0.668889582157135
|
| 205 |
+
},
|
| 206 |
+
{
|
| 207 |
+
"dim_index_in_40": 29,
|
| 208 |
+
"dim_global": 290,
|
| 209 |
+
"is_pos": false,
|
| 210 |
+
"threshold": 2.1265642642974854,
|
| 211 |
+
"per_dim_F1": 0.6621823906898499
|
| 212 |
+
},
|
| 213 |
+
{
|
| 214 |
+
"dim_index_in_40": 30,
|
| 215 |
+
"dim_global": 529,
|
| 216 |
+
"is_pos": false,
|
| 217 |
+
"threshold": 2.183765411376953,
|
| 218 |
+
"per_dim_F1": 0.669143795967102
|
| 219 |
+
},
|
| 220 |
+
{
|
| 221 |
+
"dim_index_in_40": 31,
|
| 222 |
+
"dim_global": 617,
|
| 223 |
+
"is_pos": false,
|
| 224 |
+
"threshold": 2.6399528980255127,
|
| 225 |
+
"per_dim_F1": 0.6687593460083008
|
| 226 |
+
},
|
| 227 |
+
{
|
| 228 |
+
"dim_index_in_40": 32,
|
| 229 |
+
"dim_global": 269,
|
| 230 |
+
"is_pos": false,
|
| 231 |
+
"threshold": 1.357992172241211,
|
| 232 |
+
"per_dim_F1": 0.6660473942756653
|
| 233 |
+
},
|
| 234 |
+
{
|
| 235 |
+
"dim_index_in_40": 33,
|
| 236 |
+
"dim_global": 745,
|
| 237 |
+
"is_pos": false,
|
| 238 |
+
"threshold": 2.195744514465332,
|
| 239 |
+
"per_dim_F1": 0.6753367185592651
|
| 240 |
+
},
|
| 241 |
+
{
|
| 242 |
+
"dim_index_in_40": 34,
|
| 243 |
+
"dim_global": 576,
|
| 244 |
+
"is_pos": false,
|
| 245 |
+
"threshold": 2.358708620071411,
|
| 246 |
+
"per_dim_F1": 0.6699551939964294
|
| 247 |
+
},
|
| 248 |
+
{
|
| 249 |
+
"dim_index_in_40": 35,
|
| 250 |
+
"dim_global": 701,
|
| 251 |
+
"is_pos": false,
|
| 252 |
+
"threshold": 1.7730076313018799,
|
| 253 |
+
"per_dim_F1": 0.670412540435791
|
| 254 |
+
},
|
| 255 |
+
{
|
| 256 |
+
"dim_index_in_40": 36,
|
| 257 |
+
"dim_global": 105,
|
| 258 |
+
"is_pos": false,
|
| 259 |
+
"threshold": 2.2044856548309326,
|
| 260 |
+
"per_dim_F1": 0.6687593460083008
|
| 261 |
+
},
|
| 262 |
+
{
|
| 263 |
+
"dim_index_in_40": 37,
|
| 264 |
+
"dim_global": 694,
|
| 265 |
+
"is_pos": false,
|
| 266 |
+
"threshold": 2.0147933959960938,
|
| 267 |
+
"per_dim_F1": 0.6694493293762207
|
| 268 |
+
},
|
| 269 |
+
{
|
| 270 |
+
"dim_index_in_40": 38,
|
| 271 |
+
"dim_global": 82,
|
| 272 |
+
"is_pos": false,
|
| 273 |
+
"threshold": 2.640681743621826,
|
| 274 |
+
"per_dim_F1": 0.6809103488922119
|
| 275 |
+
},
|
| 276 |
+
{
|
| 277 |
+
"dim_index_in_40": 39,
|
| 278 |
+
"dim_global": 283,
|
| 279 |
+
"is_pos": false,
|
| 280 |
+
"threshold": 1.7581170797348022,
|
| 281 |
+
"per_dim_F1": 0.6612855195999146
|
| 282 |
+
}
|
| 283 |
+
],
|
| 284 |
+
"popcount_final_threshold": 13,
|
| 285 |
+
"popcount_F1": 0.8764044642448425,
|
| 286 |
+
"popcount_precision": 0.8911290168762207,
|
| 287 |
+
"popcount_recall": 0.8621586561203003,
|
| 288 |
+
"stage_0_sum_F1": 0.8842884302139282,
|
| 289 |
+
"stage_0_sum_precision": 0.8891323208808899,
|
| 290 |
+
"stage_0_sum_recall": 0.8794971704483032,
|
| 291 |
+
"F1_delta_popcount_vs_stage_0": -0.007883965969085693
|
| 292 |
+
}
|
stage_5b/person_classifier_popcount.v
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// Stage 5b: popcount-reformulated 1-parameter person classifier.
|
| 2 |
+
//
|
| 3 |
+
// For each of 40 selected INT8 feature channels, compare against a per-dim
|
| 4 |
+
// offline-calibrated INT8 threshold. 40 resulting bits are split into 20
|
| 5 |
+
// positive and 20 negative; popcount each side; compute their signed
|
| 6 |
+
// difference; compare against a small integer threshold.
|
| 7 |
+
//
|
| 8 |
+
// This replaces Stage 5's 8-bit signed adder tree (3,220 gates) with 40
|
| 9 |
+
// single-comparator-per-dim gates plus a 5-bit subtract and comparator.
|
| 10 |
+
// Per-dim thresholds and the final scalar threshold come from the offline
|
| 11 |
+
// calibration in per_dim_thresholds.json.
|
| 12 |
+
|
| 13 |
+
module person_classifier_popcount (
|
| 14 |
+
// Feature inputs (40 signed INT8)
|
| 15 |
+
input signed [7:0] f00, f01, f02, f03, f04, f05, f06, f07, f08, f09,
|
| 16 |
+
input signed [7:0] f10, f11, f12, f13, f14, f15, f16, f17, f18, f19,
|
| 17 |
+
input signed [7:0] f20, f21, f22, f23, f24, f25, f26, f27, f28, f29,
|
| 18 |
+
input signed [7:0] f30, f31, f32, f33, f34, f35, f36, f37, f38, f39,
|
| 19 |
+
// Per-dim INT8 thresholds (40)
|
| 20 |
+
input signed [7:0] t00, t01, t02, t03, t04, t05, t06, t07, t08, t09,
|
| 21 |
+
input signed [7:0] t10, t11, t12, t13, t14, t15, t16, t17, t18, t19,
|
| 22 |
+
input signed [7:0] t20, t21, t22, t23, t24, t25, t26, t27, t28, t29,
|
| 23 |
+
input signed [7:0] t30, t31, t32, t33, t34, t35, t36, t37, t38, t39,
|
| 24 |
+
// Final popcount difference threshold (5-bit signed, range roughly [-20, 20])
|
| 25 |
+
input signed [5:0] final_threshold,
|
| 26 |
+
output person_present
|
| 27 |
+
);
|
| 28 |
+
// Per-dim binarization: bit[i] = 1 if f_i > t_i
|
| 29 |
+
wire [19:0] pos_bits;
|
| 30 |
+
assign pos_bits[ 0] = f00 > t00; assign pos_bits[ 1] = f01 > t01;
|
| 31 |
+
assign pos_bits[ 2] = f02 > t02; assign pos_bits[ 3] = f03 > t03;
|
| 32 |
+
assign pos_bits[ 4] = f04 > t04; assign pos_bits[ 5] = f05 > t05;
|
| 33 |
+
assign pos_bits[ 6] = f06 > t06; assign pos_bits[ 7] = f07 > t07;
|
| 34 |
+
assign pos_bits[ 8] = f08 > t08; assign pos_bits[ 9] = f09 > t09;
|
| 35 |
+
assign pos_bits[10] = f10 > t10; assign pos_bits[11] = f11 > t11;
|
| 36 |
+
assign pos_bits[12] = f12 > t12; assign pos_bits[13] = f13 > t13;
|
| 37 |
+
assign pos_bits[14] = f14 > t14; assign pos_bits[15] = f15 > t15;
|
| 38 |
+
assign pos_bits[16] = f16 > t16; assign pos_bits[17] = f17 > t17;
|
| 39 |
+
assign pos_bits[18] = f18 > t18; assign pos_bits[19] = f19 > t19;
|
| 40 |
+
|
| 41 |
+
wire [19:0] neg_bits;
|
| 42 |
+
assign neg_bits[ 0] = f20 > t20; assign neg_bits[ 1] = f21 > t21;
|
| 43 |
+
assign neg_bits[ 2] = f22 > t22; assign neg_bits[ 3] = f23 > t23;
|
| 44 |
+
assign neg_bits[ 4] = f24 > t24; assign neg_bits[ 5] = f25 > t25;
|
| 45 |
+
assign neg_bits[ 6] = f26 > t26; assign neg_bits[ 7] = f27 > t27;
|
| 46 |
+
assign neg_bits[ 8] = f28 > t28; assign neg_bits[ 9] = f29 > t29;
|
| 47 |
+
assign neg_bits[10] = f30 > t30; assign neg_bits[11] = f31 > t31;
|
| 48 |
+
assign neg_bits[12] = f32 > t32; assign neg_bits[13] = f33 > t33;
|
| 49 |
+
assign neg_bits[14] = f34 > t34; assign neg_bits[15] = f35 > t35;
|
| 50 |
+
assign neg_bits[16] = f36 > t36; assign neg_bits[17] = f37 > t37;
|
| 51 |
+
assign neg_bits[18] = f38 > t38; assign neg_bits[19] = f39 > t39;
|
| 52 |
+
|
| 53 |
+
// Popcount over 20 bits: Yosys will recognize + synthesize efficiently
|
| 54 |
+
wire [5:0] count_pos =
|
| 55 |
+
pos_bits[ 0] + pos_bits[ 1] + pos_bits[ 2] + pos_bits[ 3] +
|
| 56 |
+
pos_bits[ 4] + pos_bits[ 5] + pos_bits[ 6] + pos_bits[ 7] +
|
| 57 |
+
pos_bits[ 8] + pos_bits[ 9] + pos_bits[10] + pos_bits[11] +
|
| 58 |
+
pos_bits[12] + pos_bits[13] + pos_bits[14] + pos_bits[15] +
|
| 59 |
+
pos_bits[16] + pos_bits[17] + pos_bits[18] + pos_bits[19];
|
| 60 |
+
|
| 61 |
+
wire [5:0] count_neg =
|
| 62 |
+
neg_bits[ 0] + neg_bits[ 1] + neg_bits[ 2] + neg_bits[ 3] +
|
| 63 |
+
neg_bits[ 4] + neg_bits[ 5] + neg_bits[ 6] + neg_bits[ 7] +
|
| 64 |
+
neg_bits[ 8] + neg_bits[ 9] + neg_bits[10] + neg_bits[11] +
|
| 65 |
+
neg_bits[12] + neg_bits[13] + neg_bits[14] + neg_bits[15] +
|
| 66 |
+
neg_bits[16] + neg_bits[17] + neg_bits[18] + neg_bits[19];
|
| 67 |
+
|
| 68 |
+
wire signed [6:0] diff = {1'b0, count_pos} - {1'b0, count_neg};
|
| 69 |
+
assign person_present = diff > final_threshold;
|
| 70 |
+
endmodule
|
stage_5b/person_classifier_popcount_folded.v
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// Stage 5b folded: thresholds baked in as constants.
|
| 2 |
+
// Comparing against an INT8 constant is much cheaper than against a runtime
|
| 3 |
+
// INT8 input (Yosys constant-propagates). This is the realistic deployment
|
| 4 |
+
// shape of the classifier — thresholds are offline calibrated and frozen.
|
| 5 |
+
|
| 6 |
+
module person_classifier_popcount_folded (
|
| 7 |
+
input signed [7:0] f00, f01, f02, f03, f04, f05, f06, f07, f08, f09,
|
| 8 |
+
input signed [7:0] f10, f11, f12, f13, f14, f15, f16, f17, f18, f19,
|
| 9 |
+
input signed [7:0] f20, f21, f22, f23, f24, f25, f26, f27, f28, f29,
|
| 10 |
+
input signed [7:0] f30, f31, f32, f33, f34, f35, f36, f37, f38, f39,
|
| 11 |
+
output person_present
|
| 12 |
+
);
|
| 13 |
+
// Per-dim thresholds, quantized INT8 (x8 scaling of float LN'd values)
|
| 14 |
+
localparam signed [7:0] T00 = 53, T01 = 56, T02 = 26, T03 = 60, T04 = 17,
|
| 15 |
+
T05 = 12, T06 = 16, T07 = 1, T08 = 5, T09 = 11,
|
| 16 |
+
T10 = 4, T11 = 4, T12 = 6, T13 = 9, T14 = 8,
|
| 17 |
+
T15 = 16, T16 = 6, T17 = 6, T18 = 7, T19 = 8,
|
| 18 |
+
T20 = 36, T21 = 45, T22 = 19, T23 = 14, T24 = 14,
|
| 19 |
+
T25 = 63, T26 = 18, T27 = 49, T28 = 17, T29 = 17,
|
| 20 |
+
T30 = 17, T31 = 21, T32 = 11, T33 = 18, T34 = 19,
|
| 21 |
+
T35 = 14, T36 = 18, T37 = 16, T38 = 21, T39 = 14;
|
| 22 |
+
localparam signed [5:0] FINAL_T = 13;
|
| 23 |
+
|
| 24 |
+
wire [19:0] pos_bits;
|
| 25 |
+
assign pos_bits[ 0] = f00 > T00; assign pos_bits[ 1] = f01 > T01;
|
| 26 |
+
assign pos_bits[ 2] = f02 > T02; assign pos_bits[ 3] = f03 > T03;
|
| 27 |
+
assign pos_bits[ 4] = f04 > T04; assign pos_bits[ 5] = f05 > T05;
|
| 28 |
+
assign pos_bits[ 6] = f06 > T06; assign pos_bits[ 7] = f07 > T07;
|
| 29 |
+
assign pos_bits[ 8] = f08 > T08; assign pos_bits[ 9] = f09 > T09;
|
| 30 |
+
assign pos_bits[10] = f10 > T10; assign pos_bits[11] = f11 > T11;
|
| 31 |
+
assign pos_bits[12] = f12 > T12; assign pos_bits[13] = f13 > T13;
|
| 32 |
+
assign pos_bits[14] = f14 > T14; assign pos_bits[15] = f15 > T15;
|
| 33 |
+
assign pos_bits[16] = f16 > T16; assign pos_bits[17] = f17 > T17;
|
| 34 |
+
assign pos_bits[18] = f18 > T18; assign pos_bits[19] = f19 > T19;
|
| 35 |
+
|
| 36 |
+
wire [19:0] neg_bits;
|
| 37 |
+
assign neg_bits[ 0] = f20 > T20; assign neg_bits[ 1] = f21 > T21;
|
| 38 |
+
assign neg_bits[ 2] = f22 > T22; assign neg_bits[ 3] = f23 > T23;
|
| 39 |
+
assign neg_bits[ 4] = f24 > T24; assign neg_bits[ 5] = f25 > T25;
|
| 40 |
+
assign neg_bits[ 6] = f26 > T26; assign neg_bits[ 7] = f27 > T27;
|
| 41 |
+
assign neg_bits[ 8] = f28 > T28; assign neg_bits[ 9] = f29 > T29;
|
| 42 |
+
assign neg_bits[10] = f30 > T30; assign neg_bits[11] = f31 > T31;
|
| 43 |
+
assign neg_bits[12] = f32 > T32; assign neg_bits[13] = f33 > T33;
|
| 44 |
+
assign neg_bits[14] = f34 > T34; assign neg_bits[15] = f35 > T35;
|
| 45 |
+
assign neg_bits[16] = f36 > T36; assign neg_bits[17] = f37 > T37;
|
| 46 |
+
assign neg_bits[18] = f38 > T38; assign neg_bits[19] = f39 > T39;
|
| 47 |
+
|
| 48 |
+
wire [5:0] count_pos =
|
| 49 |
+
pos_bits[ 0] + pos_bits[ 1] + pos_bits[ 2] + pos_bits[ 3] +
|
| 50 |
+
pos_bits[ 4] + pos_bits[ 5] + pos_bits[ 6] + pos_bits[ 7] +
|
| 51 |
+
pos_bits[ 8] + pos_bits[ 9] + pos_bits[10] + pos_bits[11] +
|
| 52 |
+
pos_bits[12] + pos_bits[13] + pos_bits[14] + pos_bits[15] +
|
| 53 |
+
pos_bits[16] + pos_bits[17] + pos_bits[18] + pos_bits[19];
|
| 54 |
+
|
| 55 |
+
wire [5:0] count_neg =
|
| 56 |
+
neg_bits[ 0] + neg_bits[ 1] + neg_bits[ 2] + neg_bits[ 3] +
|
| 57 |
+
neg_bits[ 4] + neg_bits[ 5] + neg_bits[ 6] + neg_bits[ 7] +
|
| 58 |
+
neg_bits[ 8] + neg_bits[ 9] + neg_bits[10] + neg_bits[11] +
|
| 59 |
+
neg_bits[12] + neg_bits[13] + neg_bits[14] + neg_bits[15] +
|
| 60 |
+
neg_bits[16] + neg_bits[17] + neg_bits[18] + neg_bits[19];
|
| 61 |
+
|
| 62 |
+
wire signed [6:0] diff = {1'b0, count_pos} - {1'b0, count_neg};
|
| 63 |
+
assign person_present = diff > FINAL_T;
|
| 64 |
+
endmodule
|
stage_5b/person_classifier_sum_folded.v
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// Stage 5-equivalent additive classifier with threshold baked in,
|
| 2 |
+
// for a fair apples-to-apples gate-count comparison with the popcount
|
| 3 |
+
// folded variant.
|
| 4 |
+
|
| 5 |
+
module person_classifier_sum_folded (
|
| 6 |
+
input signed [7:0] f00, f01, f02, f03, f04, f05, f06, f07, f08, f09,
|
| 7 |
+
input signed [7:0] f10, f11, f12, f13, f14, f15, f16, f17, f18, f19,
|
| 8 |
+
input signed [7:0] f20, f21, f22, f23, f24, f25, f26, f27, f28, f29,
|
| 9 |
+
input signed [7:0] f30, f31, f32, f33, f34, f35, f36, f37, f38, f39,
|
| 10 |
+
output person_present
|
| 11 |
+
);
|
| 12 |
+
// Calibrated signed INT8 sum threshold (from Stage 0 classifier.json: 25.28 float).
|
| 13 |
+
// Quantized with the same x8 scaling used for per-dim thresholds.
|
| 14 |
+
localparam signed [15:0] FINAL_T = 16'sd202;
|
| 15 |
+
|
| 16 |
+
wire signed [15:0] pos_sum =
|
| 17 |
+
{{8{f00[7]}}, f00} + {{8{f01[7]}}, f01} + {{8{f02[7]}}, f02} + {{8{f03[7]}}, f03} +
|
| 18 |
+
{{8{f04[7]}}, f04} + {{8{f05[7]}}, f05} + {{8{f06[7]}}, f06} + {{8{f07[7]}}, f07} +
|
| 19 |
+
{{8{f08[7]}}, f08} + {{8{f09[7]}}, f09} + {{8{f10[7]}}, f10} + {{8{f11[7]}}, f11} +
|
| 20 |
+
{{8{f12[7]}}, f12} + {{8{f13[7]}}, f13} + {{8{f14[7]}}, f14} + {{8{f15[7]}}, f15} +
|
| 21 |
+
{{8{f16[7]}}, f16} + {{8{f17[7]}}, f17} + {{8{f18[7]}}, f18} + {{8{f19[7]}}, f19};
|
| 22 |
+
|
| 23 |
+
wire signed [15:0] neg_sum =
|
| 24 |
+
{{8{f20[7]}}, f20} + {{8{f21[7]}}, f21} + {{8{f22[7]}}, f22} + {{8{f23[7]}}, f23} +
|
| 25 |
+
{{8{f24[7]}}, f24} + {{8{f25[7]}}, f25} + {{8{f26[7]}}, f26} + {{8{f27[7]}}, f27} +
|
| 26 |
+
{{8{f28[7]}}, f28} + {{8{f29[7]}}, f29} + {{8{f30[7]}}, f30} + {{8{f31[7]}}, f31} +
|
| 27 |
+
{{8{f32[7]}}, f32} + {{8{f33[7]}}, f33} + {{8{f34[7]}}, f34} + {{8{f35[7]}}, f35} +
|
| 28 |
+
{{8{f36[7]}}, f36} + {{8{f37[7]}}, f37} + {{8{f38[7]}}, f38} + {{8{f39[7]}}, f39};
|
| 29 |
+
|
| 30 |
+
wire signed [15:0] score = pos_sum - neg_sum;
|
| 31 |
+
assign person_present = score > FINAL_T;
|
| 32 |
+
endmodule
|
stage_5b/synth.log
ADDED
|
@@ -0,0 +1,914 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
|
| 2 |
+
/----------------------------------------------------------------------------\
|
| 3 |
+
| yosys -- Yosys Open SYnthesis Suite |
|
| 4 |
+
| Copyright (C) 2012 - 2026 Claire Xenia Wolf <claire@yosyshq.com> |
|
| 5 |
+
| Distributed under an ISC-like license, type "license" to see terms |
|
| 6 |
+
\----------------------------------------------------------------------------/
|
| 7 |
+
Yosys 0.63+222 (git sha1 a4b6a8c58-dirty, x86_64-w64-mingw32-g++ 13.2.1 -O3)
|
| 8 |
+
|
| 9 |
+
-- Executing script file `synth.ys' --
|
| 10 |
+
|
| 11 |
+
1. Executing Verilog-2005 frontend: person_classifier_popcount.v
|
| 12 |
+
Parsing Verilog input from `person_classifier_popcount.v' to AST representation.
|
| 13 |
+
Generating RTLIL representation for module `\person_classifier_popcount'.
|
| 14 |
+
Successfully finished Verilog frontend.
|
| 15 |
+
|
| 16 |
+
2. Executing HIERARCHY pass (managing design hierarchy).
|
| 17 |
+
|
| 18 |
+
2.1. Analyzing design hierarchy..
|
| 19 |
+
Top module: \person_classifier_popcount
|
| 20 |
+
|
| 21 |
+
2.2. Analyzing design hierarchy..
|
| 22 |
+
Top module: \person_classifier_popcount
|
| 23 |
+
Removed 0 unused modules.
|
| 24 |
+
|
| 25 |
+
3. Executing PROC pass (convert processes to netlists).
|
| 26 |
+
|
| 27 |
+
3.1. Executing PROC_CLEAN pass (remove empty switches from decision trees).
|
| 28 |
+
Cleaned up 0 empty switches.
|
| 29 |
+
|
| 30 |
+
3.2. Executing PROC_RMDEAD pass (remove dead branches from decision trees).
|
| 31 |
+
Removed a total of 0 dead cases.
|
| 32 |
+
|
| 33 |
+
3.3. Executing PROC_PRUNE pass (remove redundant assignments in processes).
|
| 34 |
+
Removed 0 redundant assignments.
|
| 35 |
+
Promoted 0 assignments to connections.
|
| 36 |
+
|
| 37 |
+
3.4. Executing PROC_INIT pass (extract init attributes).
|
| 38 |
+
|
| 39 |
+
3.5. Executing PROC_ARST pass (detect async resets in processes).
|
| 40 |
+
|
| 41 |
+
3.6. Executing PROC_ROM pass (convert switches to ROMs).
|
| 42 |
+
Converted 0 switches.
|
| 43 |
+
|
| 44 |
+
3.7. Executing PROC_MUX pass (convert decision trees to multiplexers).
|
| 45 |
+
|
| 46 |
+
3.8. Executing PROC_DLATCH pass (convert process syncs to latches).
|
| 47 |
+
|
| 48 |
+
3.9. Executing PROC_DFF pass (convert process syncs to FFs).
|
| 49 |
+
|
| 50 |
+
3.10. Executing PROC_MEMWR pass (convert process memory writes to cells).
|
| 51 |
+
|
| 52 |
+
3.11. Executing PROC_CLEAN pass (remove empty switches from decision trees).
|
| 53 |
+
Cleaned up 0 empty switches.
|
| 54 |
+
|
| 55 |
+
3.12. Executing OPT_EXPR pass (perform const folding).
|
| 56 |
+
Optimizing module person_classifier_popcount.
|
| 57 |
+
|
| 58 |
+
4. Executing OPT pass (performing simple optimizations).
|
| 59 |
+
|
| 60 |
+
4.1. Executing OPT_EXPR pass (perform const folding).
|
| 61 |
+
Optimizing module person_classifier_popcount.
|
| 62 |
+
|
| 63 |
+
4.2. Executing OPT_MERGE pass (detect identical cells).
|
| 64 |
+
Finding identical cells in module `\person_classifier_popcount'.
|
| 65 |
+
Computing hashes of 80 cells of `\person_classifier_popcount'.
|
| 66 |
+
Finding duplicate cells in `\person_classifier_popcount'.
|
| 67 |
+
Removed a total of 0 cells.
|
| 68 |
+
|
| 69 |
+
4.3. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
|
| 70 |
+
Running muxtree optimizer on module \person_classifier_popcount..
|
| 71 |
+
Creating internal representation of mux trees.
|
| 72 |
+
No muxes found in this module.
|
| 73 |
+
Removed 0 multiplexer ports.
|
| 74 |
+
|
| 75 |
+
4.4. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
|
| 76 |
+
Optimizing cells in module \person_classifier_popcount.
|
| 77 |
+
Performed a total of 0 changes.
|
| 78 |
+
|
| 79 |
+
4.5. Executing OPT_MERGE pass (detect identical cells).
|
| 80 |
+
Finding identical cells in module `\person_classifier_popcount'.
|
| 81 |
+
Computing hashes of 80 cells of `\person_classifier_popcount'.
|
| 82 |
+
Finding duplicate cells in `\person_classifier_popcount'.
|
| 83 |
+
Removed a total of 0 cells.
|
| 84 |
+
|
| 85 |
+
4.6. Executing OPT_DFF pass (perform DFF optimizations).
|
| 86 |
+
|
| 87 |
+
4.7. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 88 |
+
Finding unused cells or wires in module \person_classifier_popcount..
|
| 89 |
+
Removed 0 unused cells and 44 unused wires.
|
| 90 |
+
<suppressed ~1 debug messages>
|
| 91 |
+
|
| 92 |
+
4.8. Executing OPT_EXPR pass (perform const folding).
|
| 93 |
+
Optimizing module person_classifier_popcount.
|
| 94 |
+
|
| 95 |
+
4.9. Rerunning OPT passes. (Maybe there is more to do..)
|
| 96 |
+
|
| 97 |
+
4.10. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
|
| 98 |
+
Running muxtree optimizer on module \person_classifier_popcount..
|
| 99 |
+
Creating internal representation of mux trees.
|
| 100 |
+
No muxes found in this module.
|
| 101 |
+
Removed 0 multiplexer ports.
|
| 102 |
+
|
| 103 |
+
4.11. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
|
| 104 |
+
Optimizing cells in module \person_classifier_popcount.
|
| 105 |
+
Performed a total of 0 changes.
|
| 106 |
+
|
| 107 |
+
4.12. Executing OPT_MERGE pass (detect identical cells).
|
| 108 |
+
Finding identical cells in module `\person_classifier_popcount'.
|
| 109 |
+
Computing hashes of 80 cells of `\person_classifier_popcount'.
|
| 110 |
+
Finding duplicate cells in `\person_classifier_popcount'.
|
| 111 |
+
Removed a total of 0 cells.
|
| 112 |
+
|
| 113 |
+
4.13. Executing OPT_DFF pass (perform DFF optimizations).
|
| 114 |
+
|
| 115 |
+
4.14. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 116 |
+
Finding unused cells or wires in module \person_classifier_popcount..
|
| 117 |
+
|
| 118 |
+
4.15. Executing OPT_EXPR pass (perform const folding).
|
| 119 |
+
Optimizing module person_classifier_popcount.
|
| 120 |
+
|
| 121 |
+
4.16. Finished fast OPT passes. (There is nothing left to do.)
|
| 122 |
+
|
| 123 |
+
5. Executing FLATTEN pass (flatten design).
|
| 124 |
+
|
| 125 |
+
6. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 126 |
+
Finding unused cells or wires in module \person_classifier_popcount..
|
| 127 |
+
|
| 128 |
+
7. Executing SYNTH pass.
|
| 129 |
+
|
| 130 |
+
7.1. Executing HIERARCHY pass (managing design hierarchy).
|
| 131 |
+
|
| 132 |
+
7.1.1. Analyzing design hierarchy..
|
| 133 |
+
Top module: \person_classifier_popcount
|
| 134 |
+
|
| 135 |
+
7.1.2. Analyzing design hierarchy..
|
| 136 |
+
Top module: \person_classifier_popcount
|
| 137 |
+
Removed 0 unused modules.
|
| 138 |
+
|
| 139 |
+
7.2. Executing PROC pass (convert processes to netlists).
|
| 140 |
+
|
| 141 |
+
7.2.1. Executing PROC_CLEAN pass (remove empty switches from decision trees).
|
| 142 |
+
Cleaned up 0 empty switches.
|
| 143 |
+
|
| 144 |
+
7.2.2. Executing PROC_RMDEAD pass (remove dead branches from decision trees).
|
| 145 |
+
Removed a total of 0 dead cases.
|
| 146 |
+
|
| 147 |
+
7.2.3. Executing PROC_PRUNE pass (remove redundant assignments in processes).
|
| 148 |
+
Removed 0 redundant assignments.
|
| 149 |
+
Promoted 0 assignments to connections.
|
| 150 |
+
|
| 151 |
+
7.2.4. Executing PROC_INIT pass (extract init attributes).
|
| 152 |
+
|
| 153 |
+
7.2.5. Executing PROC_ARST pass (detect async resets in processes).
|
| 154 |
+
|
| 155 |
+
7.2.6. Executing PROC_ROM pass (convert switches to ROMs).
|
| 156 |
+
Converted 0 switches.
|
| 157 |
+
|
| 158 |
+
7.2.7. Executing PROC_MUX pass (convert decision trees to multiplexers).
|
| 159 |
+
|
| 160 |
+
7.2.8. Executing PROC_DLATCH pass (convert process syncs to latches).
|
| 161 |
+
|
| 162 |
+
7.2.9. Executing PROC_DFF pass (convert process syncs to FFs).
|
| 163 |
+
|
| 164 |
+
7.2.10. Executing PROC_MEMWR pass (convert process memory writes to cells).
|
| 165 |
+
|
| 166 |
+
7.2.11. Executing PROC_CLEAN pass (remove empty switches from decision trees).
|
| 167 |
+
Cleaned up 0 empty switches.
|
| 168 |
+
|
| 169 |
+
7.2.12. Executing OPT_EXPR pass (perform const folding).
|
| 170 |
+
Optimizing module person_classifier_popcount.
|
| 171 |
+
|
| 172 |
+
7.3. Executing OPT_EXPR pass (perform const folding).
|
| 173 |
+
Optimizing module person_classifier_popcount.
|
| 174 |
+
|
| 175 |
+
7.4. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 176 |
+
Finding unused cells or wires in module \person_classifier_popcount..
|
| 177 |
+
|
| 178 |
+
7.5. Executing CHECK pass (checking for obvious problems).
|
| 179 |
+
Checking module person_classifier_popcount...
|
| 180 |
+
Found and reported 0 problems.
|
| 181 |
+
|
| 182 |
+
7.6. Executing OPT pass (performing simple optimizations).
|
| 183 |
+
|
| 184 |
+
7.6.1. Executing OPT_EXPR pass (perform const folding).
|
| 185 |
+
Optimizing module person_classifier_popcount.
|
| 186 |
+
|
| 187 |
+
7.6.2. Executing OPT_MERGE pass (detect identical cells).
|
| 188 |
+
Finding identical cells in module `\person_classifier_popcount'.
|
| 189 |
+
Computing hashes of 80 cells of `\person_classifier_popcount'.
|
| 190 |
+
Finding duplicate cells in `\person_classifier_popcount'.
|
| 191 |
+
Removed a total of 0 cells.
|
| 192 |
+
|
| 193 |
+
7.6.3. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
|
| 194 |
+
Running muxtree optimizer on module \person_classifier_popcount..
|
| 195 |
+
Creating internal representation of mux trees.
|
| 196 |
+
No muxes found in this module.
|
| 197 |
+
Removed 0 multiplexer ports.
|
| 198 |
+
|
| 199 |
+
7.6.4. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
|
| 200 |
+
Optimizing cells in module \person_classifier_popcount.
|
| 201 |
+
Performed a total of 0 changes.
|
| 202 |
+
|
| 203 |
+
7.6.5. Executing OPT_MERGE pass (detect identical cells).
|
| 204 |
+
Finding identical cells in module `\person_classifier_popcount'.
|
| 205 |
+
Computing hashes of 80 cells of `\person_classifier_popcount'.
|
| 206 |
+
Finding duplicate cells in `\person_classifier_popcount'.
|
| 207 |
+
Removed a total of 0 cells.
|
| 208 |
+
|
| 209 |
+
7.6.6. Executing OPT_DFF pass (perform DFF optimizations).
|
| 210 |
+
|
| 211 |
+
7.6.7. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 212 |
+
Finding unused cells or wires in module \person_classifier_popcount..
|
| 213 |
+
|
| 214 |
+
7.6.8. Executing OPT_EXPR pass (perform const folding).
|
| 215 |
+
Optimizing module person_classifier_popcount.
|
| 216 |
+
|
| 217 |
+
7.6.9. Finished fast OPT passes. (There is nothing left to do.)
|
| 218 |
+
|
| 219 |
+
7.7. Executing FSM pass (extract and optimize FSM).
|
| 220 |
+
|
| 221 |
+
7.7.1. Executing FSM_DETECT pass (finding FSMs in design).
|
| 222 |
+
|
| 223 |
+
7.7.2. Executing FSM_EXTRACT pass (extracting FSM from design).
|
| 224 |
+
|
| 225 |
+
7.7.3. Executing FSM_OPT pass (simple optimizations of FSMs).
|
| 226 |
+
|
| 227 |
+
7.7.4. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 228 |
+
Finding unused cells or wires in module \person_classifier_popcount..
|
| 229 |
+
|
| 230 |
+
7.7.5. Executing FSM_OPT pass (simple optimizations of FSMs).
|
| 231 |
+
|
| 232 |
+
7.7.6. Executing FSM_RECODE pass (re-assigning FSM state encoding).
|
| 233 |
+
|
| 234 |
+
7.7.7. Executing FSM_INFO pass (dumping all available information on FSM cells).
|
| 235 |
+
|
| 236 |
+
7.7.8. Executing FSM_MAP pass (mapping FSMs to basic logic).
|
| 237 |
+
|
| 238 |
+
7.8. Executing OPT pass (performing simple optimizations).
|
| 239 |
+
|
| 240 |
+
7.8.1. Executing OPT_EXPR pass (perform const folding).
|
| 241 |
+
Optimizing module person_classifier_popcount.
|
| 242 |
+
|
| 243 |
+
7.8.2. Executing OPT_MERGE pass (detect identical cells).
|
| 244 |
+
Finding identical cells in module `\person_classifier_popcount'.
|
| 245 |
+
Computing hashes of 80 cells of `\person_classifier_popcount'.
|
| 246 |
+
Finding duplicate cells in `\person_classifier_popcount'.
|
| 247 |
+
Removed a total of 0 cells.
|
| 248 |
+
|
| 249 |
+
7.8.3. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
|
| 250 |
+
Running muxtree optimizer on module \person_classifier_popcount..
|
| 251 |
+
Creating internal representation of mux trees.
|
| 252 |
+
No muxes found in this module.
|
| 253 |
+
Removed 0 multiplexer ports.
|
| 254 |
+
|
| 255 |
+
7.8.4. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
|
| 256 |
+
Optimizing cells in module \person_classifier_popcount.
|
| 257 |
+
Performed a total of 0 changes.
|
| 258 |
+
|
| 259 |
+
7.8.5. Executing OPT_MERGE pass (detect identical cells).
|
| 260 |
+
Finding identical cells in module `\person_classifier_popcount'.
|
| 261 |
+
Computing hashes of 80 cells of `\person_classifier_popcount'.
|
| 262 |
+
Finding duplicate cells in `\person_classifier_popcount'.
|
| 263 |
+
Removed a total of 0 cells.
|
| 264 |
+
|
| 265 |
+
7.8.6. Executing OPT_DFF pass (perform DFF optimizations).
|
| 266 |
+
|
| 267 |
+
7.8.7. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 268 |
+
Finding unused cells or wires in module \person_classifier_popcount..
|
| 269 |
+
|
| 270 |
+
7.8.8. Executing OPT_EXPR pass (perform const folding).
|
| 271 |
+
Optimizing module person_classifier_popcount.
|
| 272 |
+
|
| 273 |
+
7.8.9. Finished fast OPT passes. (There is nothing left to do.)
|
| 274 |
+
|
| 275 |
+
7.9. Executing WREDUCE pass (reducing word size of cells).
|
| 276 |
+
Removed top 4 bits (of 6) from port Y of cell person_classifier_popcount.$add$person_classifier_popcount.v:55$41 ($add).
|
| 277 |
+
Removed top 4 bits (of 6) from port A of cell person_classifier_popcount.$add$person_classifier_popcount.v:55$42 ($add).
|
| 278 |
+
Removed top 3 bits (of 6) from port Y of cell person_classifier_popcount.$add$person_classifier_popcount.v:55$42 ($add).
|
| 279 |
+
Removed top 3 bits (of 6) from port A of cell person_classifier_popcount.$add$person_classifier_popcount.v:55$43 ($add).
|
| 280 |
+
Removed top 2 bits (of 6) from port Y of cell person_classifier_popcount.$add$person_classifier_popcount.v:55$43 ($add).
|
| 281 |
+
Removed top 2 bits (of 6) from port A of cell person_classifier_popcount.$add$person_classifier_popcount.v:55$44 ($add).
|
| 282 |
+
Removed top 1 bits (of 6) from port Y of cell person_classifier_popcount.$add$person_classifier_popcount.v:55$44 ($add).
|
| 283 |
+
Removed top 1 bits (of 6) from port A of cell person_classifier_popcount.$add$person_classifier_popcount.v:55$45 ($add).
|
| 284 |
+
Removed top 4 bits (of 6) from port Y of cell person_classifier_popcount.$add$person_classifier_popcount.v:62$60 ($add).
|
| 285 |
+
Removed top 4 bits (of 6) from port A of cell person_classifier_popcount.$add$person_classifier_popcount.v:62$61 ($add).
|
| 286 |
+
Removed top 3 bits (of 6) from port Y of cell person_classifier_popcount.$add$person_classifier_popcount.v:62$61 ($add).
|
| 287 |
+
Removed top 3 bits (of 6) from port A of cell person_classifier_popcount.$add$person_classifier_popcount.v:62$62 ($add).
|
| 288 |
+
Removed top 2 bits (of 6) from port Y of cell person_classifier_popcount.$add$person_classifier_popcount.v:62$62 ($add).
|
| 289 |
+
Removed top 2 bits (of 6) from port A of cell person_classifier_popcount.$add$person_classifier_popcount.v:62$63 ($add).
|
| 290 |
+
Removed top 1 bits (of 6) from port Y of cell person_classifier_popcount.$add$person_classifier_popcount.v:62$63 ($add).
|
| 291 |
+
Removed top 1 bits (of 6) from port A of cell person_classifier_popcount.$add$person_classifier_popcount.v:62$64 ($add).
|
| 292 |
+
Removed top 1 bits (of 7) from port A of cell person_classifier_popcount.$sub$person_classifier_popcount.v:68$79 ($sub).
|
| 293 |
+
Removed top 1 bits (of 7) from port B of cell person_classifier_popcount.$sub$person_classifier_popcount.v:68$79 ($sub).
|
| 294 |
+
Removed top 4 bits (of 6) from wire person_classifier_popcount.$add$person_classifier_popcount.v:55$41_Y.
|
| 295 |
+
Removed top 4 bits (of 6) from wire person_classifier_popcount.$add$person_classifier_popcount.v:62$60_Y.
|
| 296 |
+
Removed top 3 bits (of 6) from wire person_classifier_popcount.$add$person_classifier_popcount.v:62$61_Y.
|
| 297 |
+
Removed top 2 bits (of 6) from wire person_classifier_popcount.$add$person_classifier_popcount.v:62$62_Y.
|
| 298 |
+
Removed top 1 bits (of 6) from wire person_classifier_popcount.$add$person_classifier_popcount.v:62$63_Y.
|
| 299 |
+
Removed top 3 bits (of 6) from wire person_classifier_popcount.$add$person_classifier_popcount.v:55$42_Y.
|
| 300 |
+
Removed top 2 bits (of 6) from wire person_classifier_popcount.$add$person_classifier_popcount.v:55$43_Y.
|
| 301 |
+
Removed top 1 bits (of 6) from wire person_classifier_popcount.$add$person_classifier_popcount.v:55$44_Y.
|
| 302 |
+
|
| 303 |
+
7.10. Executing PEEPOPT pass (run peephole optimizers).
|
| 304 |
+
|
| 305 |
+
7.11. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 306 |
+
Finding unused cells or wires in module \person_classifier_popcount..
|
| 307 |
+
Removed 0 unused cells and 8 unused wires.
|
| 308 |
+
<suppressed ~1 debug messages>
|
| 309 |
+
|
| 310 |
+
7.12. Executing ALUMACC pass (create $alu and $macc cells).
|
| 311 |
+
Extracting $alu and $macc cells in module person_classifier_popcount:
|
| 312 |
+
creating $macc model for $sub$person_classifier_popcount.v:68$79 ($sub).
|
| 313 |
+
creating $macc model for $add$person_classifier_popcount.v:62$78 ($add).
|
| 314 |
+
creating $macc model for $add$person_classifier_popcount.v:62$77 ($add).
|
| 315 |
+
creating $macc model for $add$person_classifier_popcount.v:62$76 ($add).
|
| 316 |
+
creating $macc model for $add$person_classifier_popcount.v:62$75 ($add).
|
| 317 |
+
creating $macc model for $add$person_classifier_popcount.v:62$74 ($add).
|
| 318 |
+
creating $macc model for $add$person_classifier_popcount.v:62$73 ($add).
|
| 319 |
+
creating $macc model for $add$person_classifier_popcount.v:62$72 ($add).
|
| 320 |
+
creating $macc model for $add$person_classifier_popcount.v:62$71 ($add).
|
| 321 |
+
creating $macc model for $add$person_classifier_popcount.v:62$70 ($add).
|
| 322 |
+
creating $macc model for $add$person_classifier_popcount.v:62$69 ($add).
|
| 323 |
+
creating $macc model for $add$person_classifier_popcount.v:62$68 ($add).
|
| 324 |
+
creating $macc model for $add$person_classifier_popcount.v:62$67 ($add).
|
| 325 |
+
creating $macc model for $add$person_classifier_popcount.v:62$66 ($add).
|
| 326 |
+
creating $macc model for $add$person_classifier_popcount.v:62$65 ($add).
|
| 327 |
+
creating $macc model for $add$person_classifier_popcount.v:62$64 ($add).
|
| 328 |
+
creating $macc model for $add$person_classifier_popcount.v:62$63 ($add).
|
| 329 |
+
creating $macc model for $add$person_classifier_popcount.v:62$62 ($add).
|
| 330 |
+
creating $macc model for $add$person_classifier_popcount.v:62$61 ($add).
|
| 331 |
+
creating $macc model for $add$person_classifier_popcount.v:62$60 ($add).
|
| 332 |
+
creating $macc model for $add$person_classifier_popcount.v:55$59 ($add).
|
| 333 |
+
creating $macc model for $add$person_classifier_popcount.v:55$58 ($add).
|
| 334 |
+
creating $macc model for $add$person_classifier_popcount.v:55$57 ($add).
|
| 335 |
+
creating $macc model for $add$person_classifier_popcount.v:55$56 ($add).
|
| 336 |
+
creating $macc model for $add$person_classifier_popcount.v:55$55 ($add).
|
| 337 |
+
creating $macc model for $add$person_classifier_popcount.v:55$54 ($add).
|
| 338 |
+
creating $macc model for $add$person_classifier_popcount.v:55$53 ($add).
|
| 339 |
+
creating $macc model for $add$person_classifier_popcount.v:55$52 ($add).
|
| 340 |
+
creating $macc model for $add$person_classifier_popcount.v:55$51 ($add).
|
| 341 |
+
creating $macc model for $add$person_classifier_popcount.v:55$50 ($add).
|
| 342 |
+
creating $macc model for $add$person_classifier_popcount.v:55$49 ($add).
|
| 343 |
+
creating $macc model for $add$person_classifier_popcount.v:55$48 ($add).
|
| 344 |
+
creating $macc model for $add$person_classifier_popcount.v:55$47 ($add).
|
| 345 |
+
creating $macc model for $add$person_classifier_popcount.v:55$46 ($add).
|
| 346 |
+
creating $macc model for $add$person_classifier_popcount.v:55$45 ($add).
|
| 347 |
+
creating $macc model for $add$person_classifier_popcount.v:55$44 ($add).
|
| 348 |
+
creating $macc model for $add$person_classifier_popcount.v:55$43 ($add).
|
| 349 |
+
creating $macc model for $add$person_classifier_popcount.v:55$42 ($add).
|
| 350 |
+
creating $macc model for $add$person_classifier_popcount.v:55$41 ($add).
|
| 351 |
+
merging $macc model for $add$person_classifier_popcount.v:55$41 into $add$person_classifier_popcount.v:55$42.
|
| 352 |
+
merging $macc model for $add$person_classifier_popcount.v:55$42 into $add$person_classifier_popcount.v:55$43.
|
| 353 |
+
merging $macc model for $add$person_classifier_popcount.v:55$43 into $add$person_classifier_popcount.v:55$44.
|
| 354 |
+
merging $macc model for $add$person_classifier_popcount.v:55$44 into $add$person_classifier_popcount.v:55$45.
|
| 355 |
+
merging $macc model for $add$person_classifier_popcount.v:55$45 into $add$person_classifier_popcount.v:55$46.
|
| 356 |
+
merging $macc model for $add$person_classifier_popcount.v:55$46 into $add$person_classifier_popcount.v:55$47.
|
| 357 |
+
merging $macc model for $add$person_classifier_popcount.v:55$47 into $add$person_classifier_popcount.v:55$48.
|
| 358 |
+
merging $macc model for $add$person_classifier_popcount.v:55$48 into $add$person_classifier_popcount.v:55$49.
|
| 359 |
+
merging $macc model for $add$person_classifier_popcount.v:55$49 into $add$person_classifier_popcount.v:55$50.
|
| 360 |
+
merging $macc model for $add$person_classifier_popcount.v:55$50 into $add$person_classifier_popcount.v:55$51.
|
| 361 |
+
merging $macc model for $add$person_classifier_popcount.v:55$51 into $add$person_classifier_popcount.v:55$52.
|
| 362 |
+
merging $macc model for $add$person_classifier_popcount.v:55$52 into $add$person_classifier_popcount.v:55$53.
|
| 363 |
+
merging $macc model for $add$person_classifier_popcount.v:55$53 into $add$person_classifier_popcount.v:55$54.
|
| 364 |
+
merging $macc model for $add$person_classifier_popcount.v:55$54 into $add$person_classifier_popcount.v:55$55.
|
| 365 |
+
merging $macc model for $add$person_classifier_popcount.v:55$55 into $add$person_classifier_popcount.v:55$56.
|
| 366 |
+
merging $macc model for $add$person_classifier_popcount.v:55$56 into $add$person_classifier_popcount.v:55$57.
|
| 367 |
+
merging $macc model for $add$person_classifier_popcount.v:55$57 into $add$person_classifier_popcount.v:55$58.
|
| 368 |
+
merging $macc model for $add$person_classifier_popcount.v:55$58 into $add$person_classifier_popcount.v:55$59.
|
| 369 |
+
merging $macc model for $add$person_classifier_popcount.v:62$60 into $add$person_classifier_popcount.v:62$61.
|
| 370 |
+
merging $macc model for $add$person_classifier_popcount.v:62$61 into $add$person_classifier_popcount.v:62$62.
|
| 371 |
+
merging $macc model for $add$person_classifier_popcount.v:62$62 into $add$person_classifier_popcount.v:62$63.
|
| 372 |
+
merging $macc model for $add$person_classifier_popcount.v:62$63 into $add$person_classifier_popcount.v:62$64.
|
| 373 |
+
merging $macc model for $add$person_classifier_popcount.v:62$64 into $add$person_classifier_popcount.v:62$65.
|
| 374 |
+
merging $macc model for $add$person_classifier_popcount.v:62$65 into $add$person_classifier_popcount.v:62$66.
|
| 375 |
+
merging $macc model for $add$person_classifier_popcount.v:62$66 into $add$person_classifier_popcount.v:62$67.
|
| 376 |
+
merging $macc model for $add$person_classifier_popcount.v:62$67 into $add$person_classifier_popcount.v:62$68.
|
| 377 |
+
merging $macc model for $add$person_classifier_popcount.v:62$68 into $add$person_classifier_popcount.v:62$69.
|
| 378 |
+
merging $macc model for $add$person_classifier_popcount.v:62$69 into $add$person_classifier_popcount.v:62$70.
|
| 379 |
+
merging $macc model for $add$person_classifier_popcount.v:62$70 into $add$person_classifier_popcount.v:62$71.
|
| 380 |
+
merging $macc model for $add$person_classifier_popcount.v:62$71 into $add$person_classifier_popcount.v:62$72.
|
| 381 |
+
merging $macc model for $add$person_classifier_popcount.v:62$72 into $add$person_classifier_popcount.v:62$73.
|
| 382 |
+
merging $macc model for $add$person_classifier_popcount.v:62$73 into $add$person_classifier_popcount.v:62$74.
|
| 383 |
+
merging $macc model for $add$person_classifier_popcount.v:62$74 into $add$person_classifier_popcount.v:62$75.
|
| 384 |
+
merging $macc model for $add$person_classifier_popcount.v:62$75 into $add$person_classifier_popcount.v:62$76.
|
| 385 |
+
merging $macc model for $add$person_classifier_popcount.v:62$76 into $add$person_classifier_popcount.v:62$77.
|
| 386 |
+
merging $macc model for $add$person_classifier_popcount.v:62$77 into $add$person_classifier_popcount.v:62$78.
|
| 387 |
+
merging $macc model for $add$person_classifier_popcount.v:55$59 into $sub$person_classifier_popcount.v:68$79.
|
| 388 |
+
merging $macc model for $add$person_classifier_popcount.v:62$78 into $sub$person_classifier_popcount.v:68$79.
|
| 389 |
+
creating $macc cell for $sub$person_classifier_popcount.v:68$79: $auto$alumacc.cc:382:replace_macc$89
|
| 390 |
+
creating $alu model for $gt$person_classifier_popcount.v:69$80 ($gt): new $alu
|
| 391 |
+
creating $alu model for $gt$person_classifier_popcount.v:51$40 ($gt): new $alu
|
| 392 |
+
creating $alu model for $gt$person_classifier_popcount.v:51$39 ($gt): new $alu
|
| 393 |
+
creating $alu model for $gt$person_classifier_popcount.v:50$38 ($gt): new $alu
|
| 394 |
+
creating $alu model for $gt$person_classifier_popcount.v:50$37 ($gt): new $alu
|
| 395 |
+
creating $alu model for $gt$person_classifier_popcount.v:49$36 ($gt): new $alu
|
| 396 |
+
creating $alu model for $gt$person_classifier_popcount.v:49$35 ($gt): new $alu
|
| 397 |
+
creating $alu model for $gt$person_classifier_popcount.v:48$34 ($gt): new $alu
|
| 398 |
+
creating $alu model for $gt$person_classifier_popcount.v:48$33 ($gt): new $alu
|
| 399 |
+
creating $alu model for $gt$person_classifier_popcount.v:47$32 ($gt): new $alu
|
| 400 |
+
creating $alu model for $gt$person_classifier_popcount.v:47$31 ($gt): new $alu
|
| 401 |
+
creating $alu model for $gt$person_classifier_popcount.v:46$30 ($gt): new $alu
|
| 402 |
+
creating $alu model for $gt$person_classifier_popcount.v:46$29 ($gt): new $alu
|
| 403 |
+
creating $alu model for $gt$person_classifier_popcount.v:45$28 ($gt): new $alu
|
| 404 |
+
creating $alu model for $gt$person_classifier_popcount.v:45$27 ($gt): new $alu
|
| 405 |
+
creating $alu model for $gt$person_classifier_popcount.v:44$26 ($gt): new $alu
|
| 406 |
+
creating $alu model for $gt$person_classifier_popcount.v:44$25 ($gt): new $alu
|
| 407 |
+
creating $alu model for $gt$person_classifier_popcount.v:43$24 ($gt): new $alu
|
| 408 |
+
creating $alu model for $gt$person_classifier_popcount.v:43$23 ($gt): new $alu
|
| 409 |
+
creating $alu model for $gt$person_classifier_popcount.v:42$22 ($gt): new $alu
|
| 410 |
+
creating $alu model for $gt$person_classifier_popcount.v:42$21 ($gt): new $alu
|
| 411 |
+
creating $alu model for $gt$person_classifier_popcount.v:39$20 ($gt): new $alu
|
| 412 |
+
creating $alu model for $gt$person_classifier_popcount.v:39$19 ($gt): new $alu
|
| 413 |
+
creating $alu model for $gt$person_classifier_popcount.v:38$18 ($gt): new $alu
|
| 414 |
+
creating $alu model for $gt$person_classifier_popcount.v:38$17 ($gt): new $alu
|
| 415 |
+
creating $alu model for $gt$person_classifier_popcount.v:37$16 ($gt): new $alu
|
| 416 |
+
creating $alu model for $gt$person_classifier_popcount.v:37$15 ($gt): new $alu
|
| 417 |
+
creating $alu model for $gt$person_classifier_popcount.v:36$14 ($gt): new $alu
|
| 418 |
+
creating $alu model for $gt$person_classifier_popcount.v:36$13 ($gt): new $alu
|
| 419 |
+
creating $alu model for $gt$person_classifier_popcount.v:35$12 ($gt): new $alu
|
| 420 |
+
creating $alu model for $gt$person_classifier_popcount.v:35$11 ($gt): new $alu
|
| 421 |
+
creating $alu model for $gt$person_classifier_popcount.v:34$10 ($gt): new $alu
|
| 422 |
+
creating $alu model for $gt$person_classifier_popcount.v:34$9 ($gt): new $alu
|
| 423 |
+
creating $alu model for $gt$person_classifier_popcount.v:33$8 ($gt): new $alu
|
| 424 |
+
creating $alu model for $gt$person_classifier_popcount.v:33$7 ($gt): new $alu
|
| 425 |
+
creating $alu model for $gt$person_classifier_popcount.v:32$6 ($gt): new $alu
|
| 426 |
+
creating $alu model for $gt$person_classifier_popcount.v:32$5 ($gt): new $alu
|
| 427 |
+
creating $alu model for $gt$person_classifier_popcount.v:31$4 ($gt): new $alu
|
| 428 |
+
creating $alu model for $gt$person_classifier_popcount.v:31$3 ($gt): new $alu
|
| 429 |
+
creating $alu model for $gt$person_classifier_popcount.v:30$2 ($gt): new $alu
|
| 430 |
+
creating $alu model for $gt$person_classifier_popcount.v:30$1 ($gt): new $alu
|
| 431 |
+
creating $alu cell for $gt$person_classifier_popcount.v:30$1: $auto$alumacc.cc:512:replace_alu$131
|
| 432 |
+
creating $alu cell for $gt$person_classifier_popcount.v:30$2: $auto$alumacc.cc:512:replace_alu$144
|
| 433 |
+
creating $alu cell for $gt$person_classifier_popcount.v:31$3: $auto$alumacc.cc:512:replace_alu$157
|
| 434 |
+
creating $alu cell for $gt$person_classifier_popcount.v:31$4: $auto$alumacc.cc:512:replace_alu$170
|
| 435 |
+
creating $alu cell for $gt$person_classifier_popcount.v:32$5: $auto$alumacc.cc:512:replace_alu$183
|
| 436 |
+
creating $alu cell for $gt$person_classifier_popcount.v:32$6: $auto$alumacc.cc:512:replace_alu$196
|
| 437 |
+
creating $alu cell for $gt$person_classifier_popcount.v:33$7: $auto$alumacc.cc:512:replace_alu$209
|
| 438 |
+
creating $alu cell for $gt$person_classifier_popcount.v:33$8: $auto$alumacc.cc:512:replace_alu$222
|
| 439 |
+
creating $alu cell for $gt$person_classifier_popcount.v:34$9: $auto$alumacc.cc:512:replace_alu$235
|
| 440 |
+
creating $alu cell for $gt$person_classifier_popcount.v:34$10: $auto$alumacc.cc:512:replace_alu$248
|
| 441 |
+
creating $alu cell for $gt$person_classifier_popcount.v:35$11: $auto$alumacc.cc:512:replace_alu$261
|
| 442 |
+
creating $alu cell for $gt$person_classifier_popcount.v:35$12: $auto$alumacc.cc:512:replace_alu$274
|
| 443 |
+
creating $alu cell for $gt$person_classifier_popcount.v:36$13: $auto$alumacc.cc:512:replace_alu$287
|
| 444 |
+
creating $alu cell for $gt$person_classifier_popcount.v:36$14: $auto$alumacc.cc:512:replace_alu$300
|
| 445 |
+
creating $alu cell for $gt$person_classifier_popcount.v:37$15: $auto$alumacc.cc:512:replace_alu$313
|
| 446 |
+
creating $alu cell for $gt$person_classifier_popcount.v:37$16: $auto$alumacc.cc:512:replace_alu$326
|
| 447 |
+
creating $alu cell for $gt$person_classifier_popcount.v:38$17: $auto$alumacc.cc:512:replace_alu$339
|
| 448 |
+
creating $alu cell for $gt$person_classifier_popcount.v:38$18: $auto$alumacc.cc:512:replace_alu$352
|
| 449 |
+
creating $alu cell for $gt$person_classifier_popcount.v:39$19: $auto$alumacc.cc:512:replace_alu$365
|
| 450 |
+
creating $alu cell for $gt$person_classifier_popcount.v:39$20: $auto$alumacc.cc:512:replace_alu$378
|
| 451 |
+
creating $alu cell for $gt$person_classifier_popcount.v:42$21: $auto$alumacc.cc:512:replace_alu$391
|
| 452 |
+
creating $alu cell for $gt$person_classifier_popcount.v:42$22: $auto$alumacc.cc:512:replace_alu$404
|
| 453 |
+
creating $alu cell for $gt$person_classifier_popcount.v:43$23: $auto$alumacc.cc:512:replace_alu$417
|
| 454 |
+
creating $alu cell for $gt$person_classifier_popcount.v:43$24: $auto$alumacc.cc:512:replace_alu$430
|
| 455 |
+
creating $alu cell for $gt$person_classifier_popcount.v:44$25: $auto$alumacc.cc:512:replace_alu$443
|
| 456 |
+
creating $alu cell for $gt$person_classifier_popcount.v:44$26: $auto$alumacc.cc:512:replace_alu$456
|
| 457 |
+
creating $alu cell for $gt$person_classifier_popcount.v:45$27: $auto$alumacc.cc:512:replace_alu$469
|
| 458 |
+
creating $alu cell for $gt$person_classifier_popcount.v:45$28: $auto$alumacc.cc:512:replace_alu$482
|
| 459 |
+
creating $alu cell for $gt$person_classifier_popcount.v:46$29: $auto$alumacc.cc:512:replace_alu$495
|
| 460 |
+
creating $alu cell for $gt$person_classifier_popcount.v:46$30: $auto$alumacc.cc:512:replace_alu$508
|
| 461 |
+
creating $alu cell for $gt$person_classifier_popcount.v:47$31: $auto$alumacc.cc:512:replace_alu$521
|
| 462 |
+
creating $alu cell for $gt$person_classifier_popcount.v:47$32: $auto$alumacc.cc:512:replace_alu$534
|
| 463 |
+
creating $alu cell for $gt$person_classifier_popcount.v:48$33: $auto$alumacc.cc:512:replace_alu$547
|
| 464 |
+
creating $alu cell for $gt$person_classifier_popcount.v:48$34: $auto$alumacc.cc:512:replace_alu$560
|
| 465 |
+
creating $alu cell for $gt$person_classifier_popcount.v:49$35: $auto$alumacc.cc:512:replace_alu$573
|
| 466 |
+
creating $alu cell for $gt$person_classifier_popcount.v:49$36: $auto$alumacc.cc:512:replace_alu$586
|
| 467 |
+
creating $alu cell for $gt$person_classifier_popcount.v:50$37: $auto$alumacc.cc:512:replace_alu$599
|
| 468 |
+
creating $alu cell for $gt$person_classifier_popcount.v:50$38: $auto$alumacc.cc:512:replace_alu$612
|
| 469 |
+
creating $alu cell for $gt$person_classifier_popcount.v:51$39: $auto$alumacc.cc:512:replace_alu$625
|
| 470 |
+
creating $alu cell for $gt$person_classifier_popcount.v:51$40: $auto$alumacc.cc:512:replace_alu$638
|
| 471 |
+
creating $alu cell for $gt$person_classifier_popcount.v:69$80: $auto$alumacc.cc:512:replace_alu$651
|
| 472 |
+
created 41 $alu and 1 $macc cells.
|
| 473 |
+
|
| 474 |
+
7.13. Executing SHARE pass (SAT-based resource sharing).
|
| 475 |
+
|
| 476 |
+
7.14. Executing OPT pass (performing simple optimizations).
|
| 477 |
+
|
| 478 |
+
7.14.1. Executing OPT_EXPR pass (perform const folding).
|
| 479 |
+
Optimizing module person_classifier_popcount.
|
| 480 |
+
|
| 481 |
+
7.14.2. Executing OPT_MERGE pass (detect identical cells).
|
| 482 |
+
Finding identical cells in module `\person_classifier_popcount'.
|
| 483 |
+
Computing hashes of 285 cells of `\person_classifier_popcount'.
|
| 484 |
+
Finding duplicate cells in `\person_classifier_popcount'.
|
| 485 |
+
Removed a total of 0 cells.
|
| 486 |
+
|
| 487 |
+
7.14.3. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
|
| 488 |
+
Running muxtree optimizer on module \person_classifier_popcount..
|
| 489 |
+
Creating internal representation of mux trees.
|
| 490 |
+
No muxes found in this module.
|
| 491 |
+
Removed 0 multiplexer ports.
|
| 492 |
+
|
| 493 |
+
7.14.4. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
|
| 494 |
+
Optimizing cells in module \person_classifier_popcount.
|
| 495 |
+
Performed a total of 0 changes.
|
| 496 |
+
|
| 497 |
+
7.14.5. Executing OPT_MERGE pass (detect identical cells).
|
| 498 |
+
Finding identical cells in module `\person_classifier_popcount'.
|
| 499 |
+
Computing hashes of 285 cells of `\person_classifier_popcount'.
|
| 500 |
+
Finding duplicate cells in `\person_classifier_popcount'.
|
| 501 |
+
Removed a total of 0 cells.
|
| 502 |
+
|
| 503 |
+
7.14.6. Executing OPT_DFF pass (perform DFF optimizations).
|
| 504 |
+
|
| 505 |
+
7.14.7. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 506 |
+
Finding unused cells or wires in module \person_classifier_popcount..
|
| 507 |
+
Removed 38 unused cells and 79 unused wires.
|
| 508 |
+
<suppressed ~41 debug messages>
|
| 509 |
+
|
| 510 |
+
7.14.8. Executing OPT_EXPR pass (perform const folding).
|
| 511 |
+
Optimizing module person_classifier_popcount.
|
| 512 |
+
|
| 513 |
+
7.14.9. Rerunning OPT passes. (Maybe there is more to do..)
|
| 514 |
+
|
| 515 |
+
7.14.10. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
|
| 516 |
+
Running muxtree optimizer on module \person_classifier_popcount..
|
| 517 |
+
Creating internal representation of mux trees.
|
| 518 |
+
No muxes found in this module.
|
| 519 |
+
Removed 0 multiplexer ports.
|
| 520 |
+
|
| 521 |
+
7.14.11. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
|
| 522 |
+
Optimizing cells in module \person_classifier_popcount.
|
| 523 |
+
Performed a total of 0 changes.
|
| 524 |
+
|
| 525 |
+
7.14.12. Executing OPT_MERGE pass (detect identical cells).
|
| 526 |
+
Finding identical cells in module `\person_classifier_popcount'.
|
| 527 |
+
Computing hashes of 247 cells of `\person_classifier_popcount'.
|
| 528 |
+
Finding duplicate cells in `\person_classifier_popcount'.
|
| 529 |
+
Removed a total of 0 cells.
|
| 530 |
+
|
| 531 |
+
7.14.13. Executing OPT_DFF pass (perform DFF optimizations).
|
| 532 |
+
|
| 533 |
+
7.14.14. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 534 |
+
Finding unused cells or wires in module \person_classifier_popcount..
|
| 535 |
+
|
| 536 |
+
7.14.15. Executing OPT_EXPR pass (perform const folding).
|
| 537 |
+
Optimizing module person_classifier_popcount.
|
| 538 |
+
|
| 539 |
+
7.14.16. Finished fast OPT passes. (There is nothing left to do.)
|
| 540 |
+
|
| 541 |
+
7.15. Executing MEMORY pass.
|
| 542 |
+
|
| 543 |
+
7.15.1. Executing OPT_MEM pass (optimize memories).
|
| 544 |
+
Performed a total of 0 transformations.
|
| 545 |
+
|
| 546 |
+
7.15.2. Executing OPT_MEM_PRIORITY pass (removing unnecessary memory write priority relations).
|
| 547 |
+
Performed a total of 0 transformations.
|
| 548 |
+
|
| 549 |
+
7.15.3. Executing OPT_MEM_FEEDBACK pass (finding memory read-to-write feedback paths).
|
| 550 |
+
|
| 551 |
+
7.15.4. Executing MEMORY_BMUX2ROM pass (converting muxes to ROMs).
|
| 552 |
+
|
| 553 |
+
7.15.5. Executing MEMORY_DFF pass (merging $dff cells to $memrd).
|
| 554 |
+
|
| 555 |
+
7.15.6. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 556 |
+
Finding unused cells or wires in module \person_classifier_popcount..
|
| 557 |
+
|
| 558 |
+
7.15.7. Executing MEMORY_SHARE pass (consolidating $memrd/$memwr cells).
|
| 559 |
+
|
| 560 |
+
7.15.8. Executing OPT_MEM_WIDEN pass (optimize memories where all ports are wide).
|
| 561 |
+
Performed a total of 0 transformations.
|
| 562 |
+
|
| 563 |
+
7.15.9. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 564 |
+
Finding unused cells or wires in module \person_classifier_popcount..
|
| 565 |
+
|
| 566 |
+
7.15.10. Executing MEMORY_COLLECT pass (generating $mem cells).
|
| 567 |
+
|
| 568 |
+
7.16. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 569 |
+
Finding unused cells or wires in module \person_classifier_popcount..
|
| 570 |
+
|
| 571 |
+
7.17. Executing OPT pass (performing simple optimizations).
|
| 572 |
+
|
| 573 |
+
7.17.1. Executing OPT_EXPR pass (perform const folding).
|
| 574 |
+
Optimizing module person_classifier_popcount.
|
| 575 |
+
|
| 576 |
+
7.17.2. Executing OPT_MERGE pass (detect identical cells).
|
| 577 |
+
Finding identical cells in module `\person_classifier_popcount'.
|
| 578 |
+
Computing hashes of 247 cells of `\person_classifier_popcount'.
|
| 579 |
+
Finding duplicate cells in `\person_classifier_popcount'.
|
| 580 |
+
Removed a total of 0 cells.
|
| 581 |
+
|
| 582 |
+
7.17.3. Executing OPT_DFF pass (perform DFF optimizations).
|
| 583 |
+
|
| 584 |
+
7.17.4. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 585 |
+
Finding unused cells or wires in module \person_classifier_popcount..
|
| 586 |
+
|
| 587 |
+
7.17.5. Finished fast OPT passes.
|
| 588 |
+
|
| 589 |
+
7.18. Executing MEMORY_MAP pass (converting memories to logic and flip-flops).
|
| 590 |
+
|
| 591 |
+
7.19. Executing OPT pass (performing simple optimizations).
|
| 592 |
+
|
| 593 |
+
7.19.1. Executing OPT_EXPR pass (perform const folding).
|
| 594 |
+
Optimizing module person_classifier_popcount.
|
| 595 |
+
|
| 596 |
+
7.19.2. Executing OPT_MERGE pass (detect identical cells).
|
| 597 |
+
Finding identical cells in module `\person_classifier_popcount'.
|
| 598 |
+
Computing hashes of 247 cells of `\person_classifier_popcount'.
|
| 599 |
+
Finding duplicate cells in `\person_classifier_popcount'.
|
| 600 |
+
Removed a total of 0 cells.
|
| 601 |
+
|
| 602 |
+
7.19.3. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
|
| 603 |
+
Running muxtree optimizer on module \person_classifier_popcount..
|
| 604 |
+
Creating internal representation of mux trees.
|
| 605 |
+
No muxes found in this module.
|
| 606 |
+
Removed 0 multiplexer ports.
|
| 607 |
+
|
| 608 |
+
7.19.4. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
|
| 609 |
+
Optimizing cells in module \person_classifier_popcount.
|
| 610 |
+
Performed a total of 0 changes.
|
| 611 |
+
|
| 612 |
+
7.19.5. Executing OPT_MERGE pass (detect identical cells).
|
| 613 |
+
Finding identical cells in module `\person_classifier_popcount'.
|
| 614 |
+
Computing hashes of 247 cells of `\person_classifier_popcount'.
|
| 615 |
+
Finding duplicate cells in `\person_classifier_popcount'.
|
| 616 |
+
Removed a total of 0 cells.
|
| 617 |
+
|
| 618 |
+
7.19.6. Executing OPT_SHARE pass.
|
| 619 |
+
|
| 620 |
+
7.19.7. Executing OPT_DFF pass (perform DFF optimizations).
|
| 621 |
+
|
| 622 |
+
7.19.8. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 623 |
+
Finding unused cells or wires in module \person_classifier_popcount..
|
| 624 |
+
|
| 625 |
+
7.19.9. Executing OPT_EXPR pass (perform const folding).
|
| 626 |
+
Optimizing module person_classifier_popcount.
|
| 627 |
+
|
| 628 |
+
7.19.10. Finished fast OPT passes. (There is nothing left to do.)
|
| 629 |
+
|
| 630 |
+
7.20. Executing TECHMAP pass (map to technology primitives).
|
| 631 |
+
|
| 632 |
+
7.20.1. Executing Verilog-2005 frontend: D:\oss-cad-suite\bin\../share/yosys/techmap.v
|
| 633 |
+
Parsing Verilog input from `D:\oss-cad-suite\bin\../share/yosys/techmap.v' to AST representation.
|
| 634 |
+
Generating RTLIL representation for module `\_90_simplemap_bool_ops'.
|
| 635 |
+
Generating RTLIL representation for module `\_90_simplemap_reduce_ops'.
|
| 636 |
+
Generating RTLIL representation for module `\_90_simplemap_logic_ops'.
|
| 637 |
+
Generating RTLIL representation for module `\_90_simplemap_compare_ops'.
|
| 638 |
+
Generating RTLIL representation for module `\_90_simplemap_various'.
|
| 639 |
+
Generating RTLIL representation for module `\_90_simplemap_registers'.
|
| 640 |
+
Generating RTLIL representation for module `\_90_shift_ops_shr_shl_sshl_sshr'.
|
| 641 |
+
Generating RTLIL representation for module `\_90_shift_shiftx'.
|
| 642 |
+
Generating RTLIL representation for module `\_90_fa'.
|
| 643 |
+
Generating RTLIL representation for module `\_90_lcu_brent_kung'.
|
| 644 |
+
Generating RTLIL representation for module `\_90_alu'.
|
| 645 |
+
Generating RTLIL representation for module `\_90_macc'.
|
| 646 |
+
Generating RTLIL representation for module `\_90_alumacc'.
|
| 647 |
+
Generating RTLIL representation for module `$__div_mod_u'.
|
| 648 |
+
Generating RTLIL representation for module `$__div_mod_trunc'.
|
| 649 |
+
Generating RTLIL representation for module `\_90_div'.
|
| 650 |
+
Generating RTLIL representation for module `\_90_mod'.
|
| 651 |
+
Generating RTLIL representation for module `$__div_mod_floor'.
|
| 652 |
+
Generating RTLIL representation for module `\_90_divfloor'.
|
| 653 |
+
Generating RTLIL representation for module `\_90_modfloor'.
|
| 654 |
+
Generating RTLIL representation for module `\_90_pow'.
|
| 655 |
+
Generating RTLIL representation for module `\_90_pmux'.
|
| 656 |
+
Generating RTLIL representation for module `\_90_demux'.
|
| 657 |
+
Generating RTLIL representation for module `\_90_lut'.
|
| 658 |
+
Generating RTLIL representation for module `$connect'.
|
| 659 |
+
Generating RTLIL representation for module `$input_port'.
|
| 660 |
+
Successfully finished Verilog frontend.
|
| 661 |
+
|
| 662 |
+
7.20.2. Continuing TECHMAP pass.
|
| 663 |
+
Using extmapper simplemap for cells of type $not.
|
| 664 |
+
Using extmapper simplemap for cells of type $or.
|
| 665 |
+
Using extmapper simplemap for cells of type $reduce_and.
|
| 666 |
+
Using extmapper simplemap for cells of type $xor.
|
| 667 |
+
Using template $paramod$6f90ffee354dc895e8b3739fded47e42472db361\_90_alu for cells of type $alu.
|
| 668 |
+
Using template $paramod$08c2d337fba0d8fba53e35b89be96dd105931d9e\_90_alu for cells of type $alu.
|
| 669 |
+
Using extmapper maccmap for cells of type $macc_v2.
|
| 670 |
+
add \pos_bits [0] (1 bits, unsigned)
|
| 671 |
+
sub \neg_bits [0] (1 bits, unsigned)
|
| 672 |
+
add \pos_bits [19] (1 bits, unsigned)
|
| 673 |
+
add \pos_bits [18] (1 bits, unsigned)
|
| 674 |
+
add \pos_bits [17] (1 bits, unsigned)
|
| 675 |
+
add \pos_bits [16] (1 bits, unsigned)
|
| 676 |
+
add \pos_bits [15] (1 bits, unsigned)
|
| 677 |
+
add \pos_bits [14] (1 bits, unsigned)
|
| 678 |
+
add \pos_bits [13] (1 bits, unsigned)
|
| 679 |
+
add \pos_bits [12] (1 bits, unsigned)
|
| 680 |
+
add \pos_bits [11] (1 bits, unsigned)
|
| 681 |
+
add \pos_bits [10] (1 bits, unsigned)
|
| 682 |
+
add \pos_bits [9] (1 bits, unsigned)
|
| 683 |
+
add \pos_bits [8] (1 bits, unsigned)
|
| 684 |
+
add \pos_bits [7] (1 bits, unsigned)
|
| 685 |
+
add \pos_bits [6] (1 bits, unsigned)
|
| 686 |
+
add \pos_bits [5] (1 bits, unsigned)
|
| 687 |
+
add \pos_bits [4] (1 bits, unsigned)
|
| 688 |
+
add \pos_bits [3] (1 bits, unsigned)
|
| 689 |
+
add \pos_bits [2] (1 bits, unsigned)
|
| 690 |
+
add \pos_bits [1] (1 bits, unsigned)
|
| 691 |
+
sub \neg_bits [19] (1 bits, unsigned)
|
| 692 |
+
sub \neg_bits [18] (1 bits, unsigned)
|
| 693 |
+
sub \neg_bits [17] (1 bits, unsigned)
|
| 694 |
+
sub \neg_bits [16] (1 bits, unsigned)
|
| 695 |
+
sub \neg_bits [15] (1 bits, unsigned)
|
| 696 |
+
sub \neg_bits [14] (1 bits, unsigned)
|
| 697 |
+
sub \neg_bits [13] (1 bits, unsigned)
|
| 698 |
+
sub \neg_bits [12] (1 bits, unsigned)
|
| 699 |
+
sub \neg_bits [11] (1 bits, unsigned)
|
| 700 |
+
sub \neg_bits [10] (1 bits, unsigned)
|
| 701 |
+
sub \neg_bits [9] (1 bits, unsigned)
|
| 702 |
+
sub \neg_bits [8] (1 bits, unsigned)
|
| 703 |
+
sub \neg_bits [7] (1 bits, unsigned)
|
| 704 |
+
sub \neg_bits [6] (1 bits, unsigned)
|
| 705 |
+
sub \neg_bits [5] (1 bits, unsigned)
|
| 706 |
+
sub \neg_bits [4] (1 bits, unsigned)
|
| 707 |
+
sub \neg_bits [3] (1 bits, unsigned)
|
| 708 |
+
sub \neg_bits [2] (1 bits, unsigned)
|
| 709 |
+
sub \neg_bits [1] (1 bits, unsigned)
|
| 710 |
+
packed 19 (19) bits / 19 words into adder tree
|
| 711 |
+
Using template $paramod\_90_fa\WIDTH=32'00000000000000000000000000000111 for cells of type $fa.
|
| 712 |
+
Using template $paramod$dbcdc7e8aa1a4080cea2deda6fdc8772064f4d90\_90_alu for cells of type $alu.
|
| 713 |
+
Using template $paramod\_90_lcu_brent_kung\WIDTH=32'00000000000000000000000000000111 for cells of type $lcu.
|
| 714 |
+
Using extmapper simplemap for cells of type $pos.
|
| 715 |
+
Using extmapper simplemap for cells of type $mux.
|
| 716 |
+
Using template $paramod\_90_fa\WIDTH=32'00000000000000000000000000001000 for cells of type $fa.
|
| 717 |
+
Using template $paramod\_90_lcu_brent_kung\WIDTH=32'00000000000000000000000000001000 for cells of type $lcu.
|
| 718 |
+
Using extmapper simplemap for cells of type $and.
|
| 719 |
+
No more expansions possible.
|
| 720 |
+
<suppressed ~2431 debug messages>
|
| 721 |
+
|
| 722 |
+
7.21. Executing OPT pass (performing simple optimizations).
|
| 723 |
+
|
| 724 |
+
7.21.1. Executing OPT_EXPR pass (perform const folding).
|
| 725 |
+
Optimizing module person_classifier_popcount.
|
| 726 |
+
<suppressed ~2126 debug messages>
|
| 727 |
+
|
| 728 |
+
7.21.2. Executing OPT_MERGE pass (detect identical cells).
|
| 729 |
+
Finding identical cells in module `\person_classifier_popcount'.
|
| 730 |
+
Computing hashes of 3076 cells of `\person_classifier_popcount'.
|
| 731 |
+
Finding duplicate cells in `\person_classifier_popcount'.
|
| 732 |
+
Computing hashes of 2951 cells of `\person_classifier_popcount'.
|
| 733 |
+
Finding duplicate cells in `\person_classifier_popcount'.
|
| 734 |
+
Computing hashes of 2911 cells of `\person_classifier_popcount'.
|
| 735 |
+
Finding duplicate cells in `\person_classifier_popcount'.
|
| 736 |
+
<suppressed ~495 debug messages>
|
| 737 |
+
Removed a total of 165 cells.
|
| 738 |
+
|
| 739 |
+
7.21.3. Executing OPT_DFF pass (perform DFF optimizations).
|
| 740 |
+
|
| 741 |
+
7.21.4. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 742 |
+
Finding unused cells or wires in module \person_classifier_popcount..
|
| 743 |
+
Removed 479 unused cells and 2169 unused wires.
|
| 744 |
+
<suppressed ~481 debug messages>
|
| 745 |
+
|
| 746 |
+
7.21.5. Finished fast OPT passes.
|
| 747 |
+
|
| 748 |
+
7.22. Executing ABC pass (technology mapping using ABC).
|
| 749 |
+
|
| 750 |
+
7.22.1. Extracting gate netlist of module `\person_classifier_popcount' to `<abc-temp-dir>/input.blif'..
|
| 751 |
+
|
| 752 |
+
7.22.1.1. Executed ABC.
|
| 753 |
+
Extracted 2432 gates and 3078 wires to a netlist network with 646 inputs and 1 outputs.
|
| 754 |
+
Running ABC script: <abc-temp-dir>/abc.script
|
| 755 |
+
ABC: ======== ABC command line "source <abc-temp-dir>/abc.script"
|
| 756 |
+
ABC: + read_blif <abc-temp-dir>/input.blif
|
| 757 |
+
ABC: + read_library <abc-temp-dir>/stdcells.genlib
|
| 758 |
+
ABC: + strash
|
| 759 |
+
ABC: + &get -n
|
| 760 |
+
ABC: + &fraig -x
|
| 761 |
+
ABC: + &put
|
| 762 |
+
ABC: + scorr
|
| 763 |
+
ABC: Warning: The network is combinational (run "fraig" or "fraig_sweep").
|
| 764 |
+
ABC: + dc2
|
| 765 |
+
ABC: + dretime
|
| 766 |
+
ABC: + strash
|
| 767 |
+
ABC: + &get -n
|
| 768 |
+
ABC: + &dch -f
|
| 769 |
+
ABC: + &nf
|
| 770 |
+
ABC: + &put
|
| 771 |
+
ABC: + write_blif <abc-temp-dir>/output.blif
|
| 772 |
+
|
| 773 |
+
7.22.1.2. Re-integrating ABC results.
|
| 774 |
+
ABC RESULTS: AND cells: 253
|
| 775 |
+
ABC RESULTS: ANDNOT cells: 13
|
| 776 |
+
ABC RESULTS: MUX cells: 2
|
| 777 |
+
ABC RESULTS: NAND cells: 438
|
| 778 |
+
ABC RESULTS: NOR cells: 5
|
| 779 |
+
ABC RESULTS: NOT cells: 1
|
| 780 |
+
ABC RESULTS: OR cells: 11
|
| 781 |
+
ABC RESULTS: ORNOT cells: 607
|
| 782 |
+
ABC RESULTS: XNOR cells: 23
|
| 783 |
+
ABC RESULTS: XOR cells: 53
|
| 784 |
+
ABC RESULTS: internal signals: 2431
|
| 785 |
+
ABC RESULTS: input signals: 646
|
| 786 |
+
ABC RESULTS: output signals: 1
|
| 787 |
+
Removing temp directory.
|
| 788 |
+
Removing global temp directory.
|
| 789 |
+
|
| 790 |
+
7.23. Executing OPT pass (performing simple optimizations).
|
| 791 |
+
|
| 792 |
+
7.23.1. Executing OPT_EXPR pass (perform const folding).
|
| 793 |
+
Optimizing module person_classifier_popcount.
|
| 794 |
+
|
| 795 |
+
7.23.2. Executing OPT_MERGE pass (detect identical cells).
|
| 796 |
+
Finding identical cells in module `\person_classifier_popcount'.
|
| 797 |
+
Computing hashes of 1406 cells of `\person_classifier_popcount'.
|
| 798 |
+
Finding duplicate cells in `\person_classifier_popcount'.
|
| 799 |
+
Removed a total of 0 cells.
|
| 800 |
+
|
| 801 |
+
7.23.3. Executing OPT_DFF pass (perform DFF optimizations).
|
| 802 |
+
|
| 803 |
+
7.23.4. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 804 |
+
Finding unused cells or wires in module \person_classifier_popcount..
|
| 805 |
+
Removed 0 unused cells and 1736 unused wires.
|
| 806 |
+
<suppressed ~3 debug messages>
|
| 807 |
+
|
| 808 |
+
7.23.5. Finished fast OPT passes.
|
| 809 |
+
|
| 810 |
+
7.24. Executing HIERARCHY pass (managing design hierarchy).
|
| 811 |
+
Attribute `top' found on module `person_classifier_popcount'. Setting top module to person_classifier_popcount.
|
| 812 |
+
|
| 813 |
+
7.24.1. Analyzing design hierarchy..
|
| 814 |
+
Top module: \person_classifier_popcount
|
| 815 |
+
|
| 816 |
+
7.24.2. Analyzing design hierarchy..
|
| 817 |
+
Top module: \person_classifier_popcount
|
| 818 |
+
Removed 0 unused modules.
|
| 819 |
+
|
| 820 |
+
7.25. Printing statistics.
|
| 821 |
+
|
| 822 |
+
=== person_classifier_popcount ===
|
| 823 |
+
|
| 824 |
+
+----------Local Count, excluding submodules.
|
| 825 |
+
|
|
| 826 |
+
1487 wires
|
| 827 |
+
2052 wire bits
|
| 828 |
+
82 public wires
|
| 829 |
+
647 public wire bits
|
| 830 |
+
82 ports
|
| 831 |
+
647 port bits
|
| 832 |
+
1406 cells
|
| 833 |
+
13 $_ANDNOT_
|
| 834 |
+
253 $_AND_
|
| 835 |
+
2 $_MUX_
|
| 836 |
+
438 $_NAND_
|
| 837 |
+
5 $_NOR_
|
| 838 |
+
1 $_NOT_
|
| 839 |
+
607 $_ORNOT_
|
| 840 |
+
11 $_OR_
|
| 841 |
+
23 $_XNOR_
|
| 842 |
+
53 $_XOR_
|
| 843 |
+
|
| 844 |
+
7.26. Executing CHECK pass (checking for obvious problems).
|
| 845 |
+
Checking module person_classifier_popcount...
|
| 846 |
+
Found and reported 0 problems.
|
| 847 |
+
|
| 848 |
+
8. Executing ABC pass (technology mapping using ABC).
|
| 849 |
+
|
| 850 |
+
8.1. Extracting gate netlist of module `\person_classifier_popcount' to `<abc-temp-dir>/input.blif'..
|
| 851 |
+
|
| 852 |
+
8.1.1. Executed ABC.
|
| 853 |
+
Extracted 1406 gates and 2052 wires to a netlist network with 646 inputs and 1 outputs.
|
| 854 |
+
Running ABC script: <abc-temp-dir>/abc.script
|
| 855 |
+
ABC: ======== ABC command line "source <abc-temp-dir>/abc.script"
|
| 856 |
+
ABC: + read_blif <abc-temp-dir>/input.blif
|
| 857 |
+
ABC: + read_library <abc-temp-dir>/stdcells.genlib
|
| 858 |
+
ABC: + strash
|
| 859 |
+
ABC: + &get -n
|
| 860 |
+
ABC: + &fraig -x
|
| 861 |
+
ABC: + &put
|
| 862 |
+
ABC: + scorr
|
| 863 |
+
ABC: Warning: The network is combinational (run "fraig" or "fraig_sweep").
|
| 864 |
+
ABC: + dc2
|
| 865 |
+
ABC: + dretime
|
| 866 |
+
ABC: + strash
|
| 867 |
+
ABC: + &get -n
|
| 868 |
+
ABC: + &dch -f
|
| 869 |
+
ABC: + &nf
|
| 870 |
+
ABC: + &put
|
| 871 |
+
ABC: + write_blif <abc-temp-dir>/output.blif
|
| 872 |
+
|
| 873 |
+
8.1.2. Re-integrating ABC results.
|
| 874 |
+
ABC RESULTS: AND cells: 1299
|
| 875 |
+
ABC RESULTS: NOT cells: 1658
|
| 876 |
+
ABC RESULTS: XOR cells: 83
|
| 877 |
+
ABC RESULTS: internal signals: 1405
|
| 878 |
+
ABC RESULTS: input signals: 646
|
| 879 |
+
ABC RESULTS: output signals: 1
|
| 880 |
+
Removing temp directory.
|
| 881 |
+
Removing global temp directory.
|
| 882 |
+
|
| 883 |
+
9. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 884 |
+
Finding unused cells or wires in module \person_classifier_popcount..
|
| 885 |
+
Removed 0 unused cells and 2052 unused wires.
|
| 886 |
+
<suppressed ~1 debug messages>
|
| 887 |
+
|
| 888 |
+
10. Printing statistics.
|
| 889 |
+
|
| 890 |
+
=== person_classifier_popcount ===
|
| 891 |
+
|
| 892 |
+
+----------Local Count, excluding submodules.
|
| 893 |
+
|
|
| 894 |
+
3121 wires
|
| 895 |
+
3686 wire bits
|
| 896 |
+
82 public wires
|
| 897 |
+
647 public wire bits
|
| 898 |
+
82 ports
|
| 899 |
+
647 port bits
|
| 900 |
+
3040 cells
|
| 901 |
+
1299 $_AND_
|
| 902 |
+
1658 $_NOT_
|
| 903 |
+
83 $_XOR_
|
| 904 |
+
|
| 905 |
+
11. Executing Verilog backend.
|
| 906 |
+
|
| 907 |
+
11.1. Executing BMUXMAP pass.
|
| 908 |
+
|
| 909 |
+
11.2. Executing DEMUXMAP pass.
|
| 910 |
+
Dumping module `\person_classifier_popcount'.
|
| 911 |
+
|
| 912 |
+
End of script. Logfile hash: 886d17e0b9
|
| 913 |
+
Yosys 0.63+222 (git sha1 a4b6a8c58-dirty, x86_64-w64-mingw32-g++ 13.2.1 -O3)
|
| 914 |
+
Time spent: 1% 22x opt_expr (0 sec), 1% 20x opt_clean (0 sec), ...
|
stage_5b/synth.ys
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
read_verilog person_classifier_popcount.v
|
| 2 |
+
hierarchy -top person_classifier_popcount
|
| 3 |
+
proc
|
| 4 |
+
opt
|
| 5 |
+
flatten
|
| 6 |
+
opt_clean
|
| 7 |
+
synth -top person_classifier_popcount
|
| 8 |
+
abc -g AND,XOR
|
| 9 |
+
opt_clean
|
| 10 |
+
stat
|
| 11 |
+
write_verilog synthesized.v
|
stage_5b/synth_folded.log
ADDED
|
@@ -0,0 +1,976 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
|
| 2 |
+
/----------------------------------------------------------------------------\
|
| 3 |
+
| yosys -- Yosys Open SYnthesis Suite |
|
| 4 |
+
| Copyright (C) 2012 - 2026 Claire Xenia Wolf <claire@yosyshq.com> |
|
| 5 |
+
| Distributed under an ISC-like license, type "license" to see terms |
|
| 6 |
+
\----------------------------------------------------------------------------/
|
| 7 |
+
Yosys 0.63+222 (git sha1 a4b6a8c58-dirty, x86_64-w64-mingw32-g++ 13.2.1 -O3)
|
| 8 |
+
|
| 9 |
+
-- Executing script file `synth_folded.ys' --
|
| 10 |
+
|
| 11 |
+
1. Executing Verilog-2005 frontend: person_classifier_popcount_folded.v
|
| 12 |
+
Parsing Verilog input from `person_classifier_popcount_folded.v' to AST representation.
|
| 13 |
+
Generating RTLIL representation for module `\person_classifier_popcount_folded'.
|
| 14 |
+
Successfully finished Verilog frontend.
|
| 15 |
+
|
| 16 |
+
2. Executing HIERARCHY pass (managing design hierarchy).
|
| 17 |
+
|
| 18 |
+
2.1. Analyzing design hierarchy..
|
| 19 |
+
Top module: \person_classifier_popcount_folded
|
| 20 |
+
|
| 21 |
+
2.2. Analyzing design hierarchy..
|
| 22 |
+
Top module: \person_classifier_popcount_folded
|
| 23 |
+
Removed 0 unused modules.
|
| 24 |
+
|
| 25 |
+
3. Executing PROC pass (convert processes to netlists).
|
| 26 |
+
|
| 27 |
+
3.1. Executing PROC_CLEAN pass (remove empty switches from decision trees).
|
| 28 |
+
Cleaned up 0 empty switches.
|
| 29 |
+
|
| 30 |
+
3.2. Executing PROC_RMDEAD pass (remove dead branches from decision trees).
|
| 31 |
+
Removed a total of 0 dead cases.
|
| 32 |
+
|
| 33 |
+
3.3. Executing PROC_PRUNE pass (remove redundant assignments in processes).
|
| 34 |
+
Removed 0 redundant assignments.
|
| 35 |
+
Promoted 0 assignments to connections.
|
| 36 |
+
|
| 37 |
+
3.4. Executing PROC_INIT pass (extract init attributes).
|
| 38 |
+
|
| 39 |
+
3.5. Executing PROC_ARST pass (detect async resets in processes).
|
| 40 |
+
|
| 41 |
+
3.6. Executing PROC_ROM pass (convert switches to ROMs).
|
| 42 |
+
Converted 0 switches.
|
| 43 |
+
|
| 44 |
+
3.7. Executing PROC_MUX pass (convert decision trees to multiplexers).
|
| 45 |
+
|
| 46 |
+
3.8. Executing PROC_DLATCH pass (convert process syncs to latches).
|
| 47 |
+
|
| 48 |
+
3.9. Executing PROC_DFF pass (convert process syncs to FFs).
|
| 49 |
+
|
| 50 |
+
3.10. Executing PROC_MEMWR pass (convert process memory writes to cells).
|
| 51 |
+
|
| 52 |
+
3.11. Executing PROC_CLEAN pass (remove empty switches from decision trees).
|
| 53 |
+
Cleaned up 0 empty switches.
|
| 54 |
+
|
| 55 |
+
3.12. Executing OPT_EXPR pass (perform const folding).
|
| 56 |
+
Optimizing module person_classifier_popcount_folded.
|
| 57 |
+
|
| 58 |
+
4. Executing OPT pass (performing simple optimizations).
|
| 59 |
+
|
| 60 |
+
4.1. Executing OPT_EXPR pass (perform const folding).
|
| 61 |
+
Optimizing module person_classifier_popcount_folded.
|
| 62 |
+
|
| 63 |
+
4.2. Executing OPT_MERGE pass (detect identical cells).
|
| 64 |
+
Finding identical cells in module `\person_classifier_popcount_folded'.
|
| 65 |
+
Computing hashes of 80 cells of `\person_classifier_popcount_folded'.
|
| 66 |
+
Finding duplicate cells in `\person_classifier_popcount_folded'.
|
| 67 |
+
Removed a total of 0 cells.
|
| 68 |
+
|
| 69 |
+
4.3. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
|
| 70 |
+
Running muxtree optimizer on module \person_classifier_popcount_folded..
|
| 71 |
+
Creating internal representation of mux trees.
|
| 72 |
+
No muxes found in this module.
|
| 73 |
+
Removed 0 multiplexer ports.
|
| 74 |
+
|
| 75 |
+
4.4. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
|
| 76 |
+
Optimizing cells in module \person_classifier_popcount_folded.
|
| 77 |
+
Performed a total of 0 changes.
|
| 78 |
+
|
| 79 |
+
4.5. Executing OPT_MERGE pass (detect identical cells).
|
| 80 |
+
Finding identical cells in module `\person_classifier_popcount_folded'.
|
| 81 |
+
Computing hashes of 80 cells of `\person_classifier_popcount_folded'.
|
| 82 |
+
Finding duplicate cells in `\person_classifier_popcount_folded'.
|
| 83 |
+
Removed a total of 0 cells.
|
| 84 |
+
|
| 85 |
+
4.6. Executing OPT_DFF pass (perform DFF optimizations).
|
| 86 |
+
|
| 87 |
+
4.7. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 88 |
+
Finding unused cells or wires in module \person_classifier_popcount_folded..
|
| 89 |
+
Removed 0 unused cells and 44 unused wires.
|
| 90 |
+
<suppressed ~1 debug messages>
|
| 91 |
+
|
| 92 |
+
4.8. Executing OPT_EXPR pass (perform const folding).
|
| 93 |
+
Optimizing module person_classifier_popcount_folded.
|
| 94 |
+
|
| 95 |
+
4.9. Rerunning OPT passes. (Maybe there is more to do..)
|
| 96 |
+
|
| 97 |
+
4.10. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
|
| 98 |
+
Running muxtree optimizer on module \person_classifier_popcount_folded..
|
| 99 |
+
Creating internal representation of mux trees.
|
| 100 |
+
No muxes found in this module.
|
| 101 |
+
Removed 0 multiplexer ports.
|
| 102 |
+
|
| 103 |
+
4.11. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
|
| 104 |
+
Optimizing cells in module \person_classifier_popcount_folded.
|
| 105 |
+
Performed a total of 0 changes.
|
| 106 |
+
|
| 107 |
+
4.12. Executing OPT_MERGE pass (detect identical cells).
|
| 108 |
+
Finding identical cells in module `\person_classifier_popcount_folded'.
|
| 109 |
+
Computing hashes of 80 cells of `\person_classifier_popcount_folded'.
|
| 110 |
+
Finding duplicate cells in `\person_classifier_popcount_folded'.
|
| 111 |
+
Removed a total of 0 cells.
|
| 112 |
+
|
| 113 |
+
4.13. Executing OPT_DFF pass (perform DFF optimizations).
|
| 114 |
+
|
| 115 |
+
4.14. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 116 |
+
Finding unused cells or wires in module \person_classifier_popcount_folded..
|
| 117 |
+
|
| 118 |
+
4.15. Executing OPT_EXPR pass (perform const folding).
|
| 119 |
+
Optimizing module person_classifier_popcount_folded.
|
| 120 |
+
|
| 121 |
+
4.16. Finished fast OPT passes. (There is nothing left to do.)
|
| 122 |
+
|
| 123 |
+
5. Executing FLATTEN pass (flatten design).
|
| 124 |
+
|
| 125 |
+
6. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 126 |
+
Finding unused cells or wires in module \person_classifier_popcount_folded..
|
| 127 |
+
|
| 128 |
+
7. Executing SYNTH pass.
|
| 129 |
+
|
| 130 |
+
7.1. Executing HIERARCHY pass (managing design hierarchy).
|
| 131 |
+
|
| 132 |
+
7.1.1. Analyzing design hierarchy..
|
| 133 |
+
Top module: \person_classifier_popcount_folded
|
| 134 |
+
|
| 135 |
+
7.1.2. Analyzing design hierarchy..
|
| 136 |
+
Top module: \person_classifier_popcount_folded
|
| 137 |
+
Removed 0 unused modules.
|
| 138 |
+
|
| 139 |
+
7.2. Executing PROC pass (convert processes to netlists).
|
| 140 |
+
|
| 141 |
+
7.2.1. Executing PROC_CLEAN pass (remove empty switches from decision trees).
|
| 142 |
+
Cleaned up 0 empty switches.
|
| 143 |
+
|
| 144 |
+
7.2.2. Executing PROC_RMDEAD pass (remove dead branches from decision trees).
|
| 145 |
+
Removed a total of 0 dead cases.
|
| 146 |
+
|
| 147 |
+
7.2.3. Executing PROC_PRUNE pass (remove redundant assignments in processes).
|
| 148 |
+
Removed 0 redundant assignments.
|
| 149 |
+
Promoted 0 assignments to connections.
|
| 150 |
+
|
| 151 |
+
7.2.4. Executing PROC_INIT pass (extract init attributes).
|
| 152 |
+
|
| 153 |
+
7.2.5. Executing PROC_ARST pass (detect async resets in processes).
|
| 154 |
+
|
| 155 |
+
7.2.6. Executing PROC_ROM pass (convert switches to ROMs).
|
| 156 |
+
Converted 0 switches.
|
| 157 |
+
|
| 158 |
+
7.2.7. Executing PROC_MUX pass (convert decision trees to multiplexers).
|
| 159 |
+
|
| 160 |
+
7.2.8. Executing PROC_DLATCH pass (convert process syncs to latches).
|
| 161 |
+
|
| 162 |
+
7.2.9. Executing PROC_DFF pass (convert process syncs to FFs).
|
| 163 |
+
|
| 164 |
+
7.2.10. Executing PROC_MEMWR pass (convert process memory writes to cells).
|
| 165 |
+
|
| 166 |
+
7.2.11. Executing PROC_CLEAN pass (remove empty switches from decision trees).
|
| 167 |
+
Cleaned up 0 empty switches.
|
| 168 |
+
|
| 169 |
+
7.2.12. Executing OPT_EXPR pass (perform const folding).
|
| 170 |
+
Optimizing module person_classifier_popcount_folded.
|
| 171 |
+
|
| 172 |
+
7.3. Executing OPT_EXPR pass (perform const folding).
|
| 173 |
+
Optimizing module person_classifier_popcount_folded.
|
| 174 |
+
|
| 175 |
+
7.4. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 176 |
+
Finding unused cells or wires in module \person_classifier_popcount_folded..
|
| 177 |
+
|
| 178 |
+
7.5. Executing CHECK pass (checking for obvious problems).
|
| 179 |
+
Checking module person_classifier_popcount_folded...
|
| 180 |
+
Found and reported 0 problems.
|
| 181 |
+
|
| 182 |
+
7.6. Executing OPT pass (performing simple optimizations).
|
| 183 |
+
|
| 184 |
+
7.6.1. Executing OPT_EXPR pass (perform const folding).
|
| 185 |
+
Optimizing module person_classifier_popcount_folded.
|
| 186 |
+
|
| 187 |
+
7.6.2. Executing OPT_MERGE pass (detect identical cells).
|
| 188 |
+
Finding identical cells in module `\person_classifier_popcount_folded'.
|
| 189 |
+
Computing hashes of 80 cells of `\person_classifier_popcount_folded'.
|
| 190 |
+
Finding duplicate cells in `\person_classifier_popcount_folded'.
|
| 191 |
+
Removed a total of 0 cells.
|
| 192 |
+
|
| 193 |
+
7.6.3. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
|
| 194 |
+
Running muxtree optimizer on module \person_classifier_popcount_folded..
|
| 195 |
+
Creating internal representation of mux trees.
|
| 196 |
+
No muxes found in this module.
|
| 197 |
+
Removed 0 multiplexer ports.
|
| 198 |
+
|
| 199 |
+
7.6.4. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
|
| 200 |
+
Optimizing cells in module \person_classifier_popcount_folded.
|
| 201 |
+
Performed a total of 0 changes.
|
| 202 |
+
|
| 203 |
+
7.6.5. Executing OPT_MERGE pass (detect identical cells).
|
| 204 |
+
Finding identical cells in module `\person_classifier_popcount_folded'.
|
| 205 |
+
Computing hashes of 80 cells of `\person_classifier_popcount_folded'.
|
| 206 |
+
Finding duplicate cells in `\person_classifier_popcount_folded'.
|
| 207 |
+
Removed a total of 0 cells.
|
| 208 |
+
|
| 209 |
+
7.6.6. Executing OPT_DFF pass (perform DFF optimizations).
|
| 210 |
+
|
| 211 |
+
7.6.7. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 212 |
+
Finding unused cells or wires in module \person_classifier_popcount_folded..
|
| 213 |
+
|
| 214 |
+
7.6.8. Executing OPT_EXPR pass (perform const folding).
|
| 215 |
+
Optimizing module person_classifier_popcount_folded.
|
| 216 |
+
|
| 217 |
+
7.6.9. Finished fast OPT passes. (There is nothing left to do.)
|
| 218 |
+
|
| 219 |
+
7.7. Executing FSM pass (extract and optimize FSM).
|
| 220 |
+
|
| 221 |
+
7.7.1. Executing FSM_DETECT pass (finding FSMs in design).
|
| 222 |
+
|
| 223 |
+
7.7.2. Executing FSM_EXTRACT pass (extracting FSM from design).
|
| 224 |
+
|
| 225 |
+
7.7.3. Executing FSM_OPT pass (simple optimizations of FSMs).
|
| 226 |
+
|
| 227 |
+
7.7.4. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 228 |
+
Finding unused cells or wires in module \person_classifier_popcount_folded..
|
| 229 |
+
|
| 230 |
+
7.7.5. Executing FSM_OPT pass (simple optimizations of FSMs).
|
| 231 |
+
|
| 232 |
+
7.7.6. Executing FSM_RECODE pass (re-assigning FSM state encoding).
|
| 233 |
+
|
| 234 |
+
7.7.7. Executing FSM_INFO pass (dumping all available information on FSM cells).
|
| 235 |
+
|
| 236 |
+
7.7.8. Executing FSM_MAP pass (mapping FSMs to basic logic).
|
| 237 |
+
|
| 238 |
+
7.8. Executing OPT pass (performing simple optimizations).
|
| 239 |
+
|
| 240 |
+
7.8.1. Executing OPT_EXPR pass (perform const folding).
|
| 241 |
+
Optimizing module person_classifier_popcount_folded.
|
| 242 |
+
|
| 243 |
+
7.8.2. Executing OPT_MERGE pass (detect identical cells).
|
| 244 |
+
Finding identical cells in module `\person_classifier_popcount_folded'.
|
| 245 |
+
Computing hashes of 80 cells of `\person_classifier_popcount_folded'.
|
| 246 |
+
Finding duplicate cells in `\person_classifier_popcount_folded'.
|
| 247 |
+
Removed a total of 0 cells.
|
| 248 |
+
|
| 249 |
+
7.8.3. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
|
| 250 |
+
Running muxtree optimizer on module \person_classifier_popcount_folded..
|
| 251 |
+
Creating internal representation of mux trees.
|
| 252 |
+
No muxes found in this module.
|
| 253 |
+
Removed 0 multiplexer ports.
|
| 254 |
+
|
| 255 |
+
7.8.4. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
|
| 256 |
+
Optimizing cells in module \person_classifier_popcount_folded.
|
| 257 |
+
Performed a total of 0 changes.
|
| 258 |
+
|
| 259 |
+
7.8.5. Executing OPT_MERGE pass (detect identical cells).
|
| 260 |
+
Finding identical cells in module `\person_classifier_popcount_folded'.
|
| 261 |
+
Computing hashes of 80 cells of `\person_classifier_popcount_folded'.
|
| 262 |
+
Finding duplicate cells in `\person_classifier_popcount_folded'.
|
| 263 |
+
Removed a total of 0 cells.
|
| 264 |
+
|
| 265 |
+
7.8.6. Executing OPT_DFF pass (perform DFF optimizations).
|
| 266 |
+
|
| 267 |
+
7.8.7. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 268 |
+
Finding unused cells or wires in module \person_classifier_popcount_folded..
|
| 269 |
+
|
| 270 |
+
7.8.8. Executing OPT_EXPR pass (perform const folding).
|
| 271 |
+
Optimizing module person_classifier_popcount_folded.
|
| 272 |
+
|
| 273 |
+
7.8.9. Finished fast OPT passes. (There is nothing left to do.)
|
| 274 |
+
|
| 275 |
+
7.9. Executing WREDUCE pass (reducing word size of cells).
|
| 276 |
+
Removed top 1 bits (of 8) from port B of cell person_classifier_popcount_folded.$gt$person_classifier_popcount_folded.v:25$1 ($gt).
|
| 277 |
+
Removed top 1 bits (of 8) from port B of cell person_classifier_popcount_folded.$gt$person_classifier_popcount_folded.v:25$2 ($gt).
|
| 278 |
+
Removed top 2 bits (of 8) from port B of cell person_classifier_popcount_folded.$gt$person_classifier_popcount_folded.v:26$3 ($gt).
|
| 279 |
+
Removed top 1 bits (of 8) from port B of cell person_classifier_popcount_folded.$gt$person_classifier_popcount_folded.v:26$4 ($gt).
|
| 280 |
+
Removed top 2 bits (of 8) from port B of cell person_classifier_popcount_folded.$gt$person_classifier_popcount_folded.v:27$5 ($gt).
|
| 281 |
+
Removed top 3 bits (of 8) from port B of cell person_classifier_popcount_folded.$gt$person_classifier_popcount_folded.v:27$6 ($gt).
|
| 282 |
+
Removed top 2 bits (of 8) from port B of cell person_classifier_popcount_folded.$gt$person_classifier_popcount_folded.v:28$7 ($gt).
|
| 283 |
+
Removed top 6 bits (of 8) from port B of cell person_classifier_popcount_folded.$gt$person_classifier_popcount_folded.v:28$8 ($gt).
|
| 284 |
+
Removed top 4 bits (of 8) from port B of cell person_classifier_popcount_folded.$gt$person_classifier_popcount_folded.v:29$9 ($gt).
|
| 285 |
+
Removed top 3 bits (of 8) from port B of cell person_classifier_popcount_folded.$gt$person_classifier_popcount_folded.v:29$10 ($gt).
|
| 286 |
+
Removed top 4 bits (of 8) from port B of cell person_classifier_popcount_folded.$gt$person_classifier_popcount_folded.v:30$11 ($gt).
|
| 287 |
+
Removed top 4 bits (of 8) from port B of cell person_classifier_popcount_folded.$gt$person_classifier_popcount_folded.v:30$12 ($gt).
|
| 288 |
+
Removed top 4 bits (of 8) from port B of cell person_classifier_popcount_folded.$gt$person_classifier_popcount_folded.v:31$13 ($gt).
|
| 289 |
+
Removed top 3 bits (of 8) from port B of cell person_classifier_popcount_folded.$gt$person_classifier_popcount_folded.v:31$14 ($gt).
|
| 290 |
+
Removed top 3 bits (of 8) from port B of cell person_classifier_popcount_folded.$gt$person_classifier_popcount_folded.v:32$15 ($gt).
|
| 291 |
+
Removed top 2 bits (of 8) from port B of cell person_classifier_popcount_folded.$gt$person_classifier_popcount_folded.v:32$16 ($gt).
|
| 292 |
+
Removed top 4 bits (of 8) from port B of cell person_classifier_popcount_folded.$gt$person_classifier_popcount_folded.v:33$17 ($gt).
|
| 293 |
+
Removed top 4 bits (of 8) from port B of cell person_classifier_popcount_folded.$gt$person_classifier_popcount_folded.v:33$18 ($gt).
|
| 294 |
+
Removed top 4 bits (of 8) from port B of cell person_classifier_popcount_folded.$gt$person_classifier_popcount_folded.v:34$19 ($gt).
|
| 295 |
+
Removed top 3 bits (of 8) from port B of cell person_classifier_popcount_folded.$gt$person_classifier_popcount_folded.v:34$20 ($gt).
|
| 296 |
+
Removed top 1 bits (of 8) from port B of cell person_classifier_popcount_folded.$gt$person_classifier_popcount_folded.v:37$21 ($gt).
|
| 297 |
+
Removed top 1 bits (of 8) from port B of cell person_classifier_popcount_folded.$gt$person_classifier_popcount_folded.v:37$22 ($gt).
|
| 298 |
+
Removed top 2 bits (of 8) from port B of cell person_classifier_popcount_folded.$gt$person_classifier_popcount_folded.v:38$23 ($gt).
|
| 299 |
+
Removed top 3 bits (of 8) from port B of cell person_classifier_popcount_folded.$gt$person_classifier_popcount_folded.v:38$24 ($gt).
|
| 300 |
+
Removed top 3 bits (of 8) from port B of cell person_classifier_popcount_folded.$gt$person_classifier_popcount_folded.v:39$25 ($gt).
|
| 301 |
+
Removed top 1 bits (of 8) from port B of cell person_classifier_popcount_folded.$gt$person_classifier_popcount_folded.v:39$26 ($gt).
|
| 302 |
+
Removed top 2 bits (of 8) from port B of cell person_classifier_popcount_folded.$gt$person_classifier_popcount_folded.v:40$27 ($gt).
|
| 303 |
+
Removed top 1 bits (of 8) from port B of cell person_classifier_popcount_folded.$gt$person_classifier_popcount_folded.v:40$28 ($gt).
|
| 304 |
+
Removed top 2 bits (of 8) from port B of cell person_classifier_popcount_folded.$gt$person_classifier_popcount_folded.v:41$29 ($gt).
|
| 305 |
+
Removed top 2 bits (of 8) from port B of cell person_classifier_popcount_folded.$gt$person_classifier_popcount_folded.v:41$30 ($gt).
|
| 306 |
+
Removed top 2 bits (of 8) from port B of cell person_classifier_popcount_folded.$gt$person_classifier_popcount_folded.v:42$31 ($gt).
|
| 307 |
+
Removed top 2 bits (of 8) from port B of cell person_classifier_popcount_folded.$gt$person_classifier_popcount_folded.v:42$32 ($gt).
|
| 308 |
+
Removed top 3 bits (of 8) from port B of cell person_classifier_popcount_folded.$gt$person_classifier_popcount_folded.v:43$33 ($gt).
|
| 309 |
+
Removed top 2 bits (of 8) from port B of cell person_classifier_popcount_folded.$gt$person_classifier_popcount_folded.v:43$34 ($gt).
|
| 310 |
+
Removed top 2 bits (of 8) from port B of cell person_classifier_popcount_folded.$gt$person_classifier_popcount_folded.v:44$35 ($gt).
|
| 311 |
+
Removed top 3 bits (of 8) from port B of cell person_classifier_popcount_folded.$gt$person_classifier_popcount_folded.v:44$36 ($gt).
|
| 312 |
+
Removed top 2 bits (of 8) from port B of cell person_classifier_popcount_folded.$gt$person_classifier_popcount_folded.v:45$37 ($gt).
|
| 313 |
+
Removed top 2 bits (of 8) from port B of cell person_classifier_popcount_folded.$gt$person_classifier_popcount_folded.v:45$38 ($gt).
|
| 314 |
+
Removed top 2 bits (of 8) from port B of cell person_classifier_popcount_folded.$gt$person_classifier_popcount_folded.v:46$39 ($gt).
|
| 315 |
+
Removed top 3 bits (of 8) from port B of cell person_classifier_popcount_folded.$gt$person_classifier_popcount_folded.v:46$40 ($gt).
|
| 316 |
+
Removed top 4 bits (of 6) from port Y of cell person_classifier_popcount_folded.$add$person_classifier_popcount_folded.v:49$41 ($add).
|
| 317 |
+
Removed top 4 bits (of 6) from port A of cell person_classifier_popcount_folded.$add$person_classifier_popcount_folded.v:49$42 ($add).
|
| 318 |
+
Removed top 3 bits (of 6) from port Y of cell person_classifier_popcount_folded.$add$person_classifier_popcount_folded.v:49$42 ($add).
|
| 319 |
+
Removed top 3 bits (of 6) from port A of cell person_classifier_popcount_folded.$add$person_classifier_popcount_folded.v:49$43 ($add).
|
| 320 |
+
Removed top 2 bits (of 6) from port Y of cell person_classifier_popcount_folded.$add$person_classifier_popcount_folded.v:49$43 ($add).
|
| 321 |
+
Removed top 2 bits (of 6) from port A of cell person_classifier_popcount_folded.$add$person_classifier_popcount_folded.v:49$44 ($add).
|
| 322 |
+
Removed top 1 bits (of 6) from port Y of cell person_classifier_popcount_folded.$add$person_classifier_popcount_folded.v:49$44 ($add).
|
| 323 |
+
Removed top 1 bits (of 6) from port A of cell person_classifier_popcount_folded.$add$person_classifier_popcount_folded.v:49$45 ($add).
|
| 324 |
+
Removed top 4 bits (of 6) from port Y of cell person_classifier_popcount_folded.$add$person_classifier_popcount_folded.v:56$60 ($add).
|
| 325 |
+
Removed top 4 bits (of 6) from port A of cell person_classifier_popcount_folded.$add$person_classifier_popcount_folded.v:56$61 ($add).
|
| 326 |
+
Removed top 3 bits (of 6) from port Y of cell person_classifier_popcount_folded.$add$person_classifier_popcount_folded.v:56$61 ($add).
|
| 327 |
+
Removed top 3 bits (of 6) from port A of cell person_classifier_popcount_folded.$add$person_classifier_popcount_folded.v:56$62 ($add).
|
| 328 |
+
Removed top 2 bits (of 6) from port Y of cell person_classifier_popcount_folded.$add$person_classifier_popcount_folded.v:56$62 ($add).
|
| 329 |
+
Removed top 2 bits (of 6) from port A of cell person_classifier_popcount_folded.$add$person_classifier_popcount_folded.v:56$63 ($add).
|
| 330 |
+
Removed top 1 bits (of 6) from port Y of cell person_classifier_popcount_folded.$add$person_classifier_popcount_folded.v:56$63 ($add).
|
| 331 |
+
Removed top 1 bits (of 6) from port A of cell person_classifier_popcount_folded.$add$person_classifier_popcount_folded.v:56$64 ($add).
|
| 332 |
+
Removed top 1 bits (of 7) from port A of cell person_classifier_popcount_folded.$sub$person_classifier_popcount_folded.v:62$79 ($sub).
|
| 333 |
+
Removed top 1 bits (of 7) from port B of cell person_classifier_popcount_folded.$sub$person_classifier_popcount_folded.v:62$79 ($sub).
|
| 334 |
+
Removed top 1 bits (of 6) from port B of cell person_classifier_popcount_folded.$gt$person_classifier_popcount_folded.v:63$80 ($gt).
|
| 335 |
+
Removed top 4 bits (of 6) from wire person_classifier_popcount_folded.$add$person_classifier_popcount_folded.v:49$41_Y.
|
| 336 |
+
Removed top 4 bits (of 6) from wire person_classifier_popcount_folded.$add$person_classifier_popcount_folded.v:56$60_Y.
|
| 337 |
+
Removed top 3 bits (of 6) from wire person_classifier_popcount_folded.$add$person_classifier_popcount_folded.v:56$61_Y.
|
| 338 |
+
Removed top 2 bits (of 6) from wire person_classifier_popcount_folded.$add$person_classifier_popcount_folded.v:56$62_Y.
|
| 339 |
+
Removed top 1 bits (of 6) from wire person_classifier_popcount_folded.$add$person_classifier_popcount_folded.v:56$63_Y.
|
| 340 |
+
Removed top 3 bits (of 6) from wire person_classifier_popcount_folded.$add$person_classifier_popcount_folded.v:49$42_Y.
|
| 341 |
+
Removed top 2 bits (of 6) from wire person_classifier_popcount_folded.$add$person_classifier_popcount_folded.v:49$43_Y.
|
| 342 |
+
Removed top 1 bits (of 6) from wire person_classifier_popcount_folded.$add$person_classifier_popcount_folded.v:49$44_Y.
|
| 343 |
+
|
| 344 |
+
7.10. Executing PEEPOPT pass (run peephole optimizers).
|
| 345 |
+
|
| 346 |
+
7.11. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 347 |
+
Finding unused cells or wires in module \person_classifier_popcount_folded..
|
| 348 |
+
Removed 0 unused cells and 8 unused wires.
|
| 349 |
+
<suppressed ~1 debug messages>
|
| 350 |
+
|
| 351 |
+
7.12. Executing ALUMACC pass (create $alu and $macc cells).
|
| 352 |
+
Extracting $alu and $macc cells in module person_classifier_popcount_folded:
|
| 353 |
+
creating $macc model for $sub$person_classifier_popcount_folded.v:62$79 ($sub).
|
| 354 |
+
creating $macc model for $add$person_classifier_popcount_folded.v:56$78 ($add).
|
| 355 |
+
creating $macc model for $add$person_classifier_popcount_folded.v:56$77 ($add).
|
| 356 |
+
creating $macc model for $add$person_classifier_popcount_folded.v:56$76 ($add).
|
| 357 |
+
creating $macc model for $add$person_classifier_popcount_folded.v:56$75 ($add).
|
| 358 |
+
creating $macc model for $add$person_classifier_popcount_folded.v:56$74 ($add).
|
| 359 |
+
creating $macc model for $add$person_classifier_popcount_folded.v:56$73 ($add).
|
| 360 |
+
creating $macc model for $add$person_classifier_popcount_folded.v:56$72 ($add).
|
| 361 |
+
creating $macc model for $add$person_classifier_popcount_folded.v:56$71 ($add).
|
| 362 |
+
creating $macc model for $add$person_classifier_popcount_folded.v:56$70 ($add).
|
| 363 |
+
creating $macc model for $add$person_classifier_popcount_folded.v:56$69 ($add).
|
| 364 |
+
creating $macc model for $add$person_classifier_popcount_folded.v:56$68 ($add).
|
| 365 |
+
creating $macc model for $add$person_classifier_popcount_folded.v:56$67 ($add).
|
| 366 |
+
creating $macc model for $add$person_classifier_popcount_folded.v:56$66 ($add).
|
| 367 |
+
creating $macc model for $add$person_classifier_popcount_folded.v:56$65 ($add).
|
| 368 |
+
creating $macc model for $add$person_classifier_popcount_folded.v:56$64 ($add).
|
| 369 |
+
creating $macc model for $add$person_classifier_popcount_folded.v:56$63 ($add).
|
| 370 |
+
creating $macc model for $add$person_classifier_popcount_folded.v:56$62 ($add).
|
| 371 |
+
creating $macc model for $add$person_classifier_popcount_folded.v:56$61 ($add).
|
| 372 |
+
creating $macc model for $add$person_classifier_popcount_folded.v:56$60 ($add).
|
| 373 |
+
creating $macc model for $add$person_classifier_popcount_folded.v:49$59 ($add).
|
| 374 |
+
creating $macc model for $add$person_classifier_popcount_folded.v:49$58 ($add).
|
| 375 |
+
creating $macc model for $add$person_classifier_popcount_folded.v:49$57 ($add).
|
| 376 |
+
creating $macc model for $add$person_classifier_popcount_folded.v:49$56 ($add).
|
| 377 |
+
creating $macc model for $add$person_classifier_popcount_folded.v:49$55 ($add).
|
| 378 |
+
creating $macc model for $add$person_classifier_popcount_folded.v:49$54 ($add).
|
| 379 |
+
creating $macc model for $add$person_classifier_popcount_folded.v:49$53 ($add).
|
| 380 |
+
creating $macc model for $add$person_classifier_popcount_folded.v:49$52 ($add).
|
| 381 |
+
creating $macc model for $add$person_classifier_popcount_folded.v:49$51 ($add).
|
| 382 |
+
creating $macc model for $add$person_classifier_popcount_folded.v:49$50 ($add).
|
| 383 |
+
creating $macc model for $add$person_classifier_popcount_folded.v:49$49 ($add).
|
| 384 |
+
creating $macc model for $add$person_classifier_popcount_folded.v:49$48 ($add).
|
| 385 |
+
creating $macc model for $add$person_classifier_popcount_folded.v:49$47 ($add).
|
| 386 |
+
creating $macc model for $add$person_classifier_popcount_folded.v:49$46 ($add).
|
| 387 |
+
creating $macc model for $add$person_classifier_popcount_folded.v:49$45 ($add).
|
| 388 |
+
creating $macc model for $add$person_classifier_popcount_folded.v:49$44 ($add).
|
| 389 |
+
creating $macc model for $add$person_classifier_popcount_folded.v:49$43 ($add).
|
| 390 |
+
creating $macc model for $add$person_classifier_popcount_folded.v:49$42 ($add).
|
| 391 |
+
creating $macc model for $add$person_classifier_popcount_folded.v:49$41 ($add).
|
| 392 |
+
merging $macc model for $add$person_classifier_popcount_folded.v:49$41 into $add$person_classifier_popcount_folded.v:49$42.
|
| 393 |
+
merging $macc model for $add$person_classifier_popcount_folded.v:49$42 into $add$person_classifier_popcount_folded.v:49$43.
|
| 394 |
+
merging $macc model for $add$person_classifier_popcount_folded.v:49$43 into $add$person_classifier_popcount_folded.v:49$44.
|
| 395 |
+
merging $macc model for $add$person_classifier_popcount_folded.v:49$44 into $add$person_classifier_popcount_folded.v:49$45.
|
| 396 |
+
merging $macc model for $add$person_classifier_popcount_folded.v:49$45 into $add$person_classifier_popcount_folded.v:49$46.
|
| 397 |
+
merging $macc model for $add$person_classifier_popcount_folded.v:49$46 into $add$person_classifier_popcount_folded.v:49$47.
|
| 398 |
+
merging $macc model for $add$person_classifier_popcount_folded.v:49$47 into $add$person_classifier_popcount_folded.v:49$48.
|
| 399 |
+
merging $macc model for $add$person_classifier_popcount_folded.v:49$48 into $add$person_classifier_popcount_folded.v:49$49.
|
| 400 |
+
merging $macc model for $add$person_classifier_popcount_folded.v:49$49 into $add$person_classifier_popcount_folded.v:49$50.
|
| 401 |
+
merging $macc model for $add$person_classifier_popcount_folded.v:49$50 into $add$person_classifier_popcount_folded.v:49$51.
|
| 402 |
+
merging $macc model for $add$person_classifier_popcount_folded.v:49$51 into $add$person_classifier_popcount_folded.v:49$52.
|
| 403 |
+
merging $macc model for $add$person_classifier_popcount_folded.v:49$52 into $add$person_classifier_popcount_folded.v:49$53.
|
| 404 |
+
merging $macc model for $add$person_classifier_popcount_folded.v:49$53 into $add$person_classifier_popcount_folded.v:49$54.
|
| 405 |
+
merging $macc model for $add$person_classifier_popcount_folded.v:49$54 into $add$person_classifier_popcount_folded.v:49$55.
|
| 406 |
+
merging $macc model for $add$person_classifier_popcount_folded.v:49$55 into $add$person_classifier_popcount_folded.v:49$56.
|
| 407 |
+
merging $macc model for $add$person_classifier_popcount_folded.v:49$56 into $add$person_classifier_popcount_folded.v:49$57.
|
| 408 |
+
merging $macc model for $add$person_classifier_popcount_folded.v:49$57 into $add$person_classifier_popcount_folded.v:49$58.
|
| 409 |
+
merging $macc model for $add$person_classifier_popcount_folded.v:49$58 into $add$person_classifier_popcount_folded.v:49$59.
|
| 410 |
+
merging $macc model for $add$person_classifier_popcount_folded.v:56$60 into $add$person_classifier_popcount_folded.v:56$61.
|
| 411 |
+
merging $macc model for $add$person_classifier_popcount_folded.v:56$61 into $add$person_classifier_popcount_folded.v:56$62.
|
| 412 |
+
merging $macc model for $add$person_classifier_popcount_folded.v:56$62 into $add$person_classifier_popcount_folded.v:56$63.
|
| 413 |
+
merging $macc model for $add$person_classifier_popcount_folded.v:56$63 into $add$person_classifier_popcount_folded.v:56$64.
|
| 414 |
+
merging $macc model for $add$person_classifier_popcount_folded.v:56$64 into $add$person_classifier_popcount_folded.v:56$65.
|
| 415 |
+
merging $macc model for $add$person_classifier_popcount_folded.v:56$65 into $add$person_classifier_popcount_folded.v:56$66.
|
| 416 |
+
merging $macc model for $add$person_classifier_popcount_folded.v:56$66 into $add$person_classifier_popcount_folded.v:56$67.
|
| 417 |
+
merging $macc model for $add$person_classifier_popcount_folded.v:56$67 into $add$person_classifier_popcount_folded.v:56$68.
|
| 418 |
+
merging $macc model for $add$person_classifier_popcount_folded.v:56$68 into $add$person_classifier_popcount_folded.v:56$69.
|
| 419 |
+
merging $macc model for $add$person_classifier_popcount_folded.v:56$69 into $add$person_classifier_popcount_folded.v:56$70.
|
| 420 |
+
merging $macc model for $add$person_classifier_popcount_folded.v:56$70 into $add$person_classifier_popcount_folded.v:56$71.
|
| 421 |
+
merging $macc model for $add$person_classifier_popcount_folded.v:56$71 into $add$person_classifier_popcount_folded.v:56$72.
|
| 422 |
+
merging $macc model for $add$person_classifier_popcount_folded.v:56$72 into $add$person_classifier_popcount_folded.v:56$73.
|
| 423 |
+
merging $macc model for $add$person_classifier_popcount_folded.v:56$73 into $add$person_classifier_popcount_folded.v:56$74.
|
| 424 |
+
merging $macc model for $add$person_classifier_popcount_folded.v:56$74 into $add$person_classifier_popcount_folded.v:56$75.
|
| 425 |
+
merging $macc model for $add$person_classifier_popcount_folded.v:56$75 into $add$person_classifier_popcount_folded.v:56$76.
|
| 426 |
+
merging $macc model for $add$person_classifier_popcount_folded.v:56$76 into $add$person_classifier_popcount_folded.v:56$77.
|
| 427 |
+
merging $macc model for $add$person_classifier_popcount_folded.v:56$77 into $add$person_classifier_popcount_folded.v:56$78.
|
| 428 |
+
merging $macc model for $add$person_classifier_popcount_folded.v:49$59 into $sub$person_classifier_popcount_folded.v:62$79.
|
| 429 |
+
merging $macc model for $add$person_classifier_popcount_folded.v:56$78 into $sub$person_classifier_popcount_folded.v:62$79.
|
| 430 |
+
creating $macc cell for $sub$person_classifier_popcount_folded.v:62$79: $auto$alumacc.cc:382:replace_macc$89
|
| 431 |
+
creating $alu model for $gt$person_classifier_popcount_folded.v:63$80 ($gt): new $alu
|
| 432 |
+
creating $alu model for $gt$person_classifier_popcount_folded.v:46$40 ($gt): new $alu
|
| 433 |
+
creating $alu model for $gt$person_classifier_popcount_folded.v:46$39 ($gt): new $alu
|
| 434 |
+
creating $alu model for $gt$person_classifier_popcount_folded.v:45$38 ($gt): new $alu
|
| 435 |
+
creating $alu model for $gt$person_classifier_popcount_folded.v:45$37 ($gt): new $alu
|
| 436 |
+
creating $alu model for $gt$person_classifier_popcount_folded.v:44$36 ($gt): new $alu
|
| 437 |
+
creating $alu model for $gt$person_classifier_popcount_folded.v:44$35 ($gt): new $alu
|
| 438 |
+
creating $alu model for $gt$person_classifier_popcount_folded.v:43$34 ($gt): new $alu
|
| 439 |
+
creating $alu model for $gt$person_classifier_popcount_folded.v:43$33 ($gt): new $alu
|
| 440 |
+
creating $alu model for $gt$person_classifier_popcount_folded.v:42$32 ($gt): new $alu
|
| 441 |
+
creating $alu model for $gt$person_classifier_popcount_folded.v:42$31 ($gt): new $alu
|
| 442 |
+
creating $alu model for $gt$person_classifier_popcount_folded.v:41$30 ($gt): new $alu
|
| 443 |
+
creating $alu model for $gt$person_classifier_popcount_folded.v:41$29 ($gt): new $alu
|
| 444 |
+
creating $alu model for $gt$person_classifier_popcount_folded.v:40$28 ($gt): new $alu
|
| 445 |
+
creating $alu model for $gt$person_classifier_popcount_folded.v:40$27 ($gt): new $alu
|
| 446 |
+
creating $alu model for $gt$person_classifier_popcount_folded.v:39$26 ($gt): new $alu
|
| 447 |
+
creating $alu model for $gt$person_classifier_popcount_folded.v:39$25 ($gt): new $alu
|
| 448 |
+
creating $alu model for $gt$person_classifier_popcount_folded.v:38$24 ($gt): new $alu
|
| 449 |
+
creating $alu model for $gt$person_classifier_popcount_folded.v:38$23 ($gt): new $alu
|
| 450 |
+
creating $alu model for $gt$person_classifier_popcount_folded.v:37$22 ($gt): new $alu
|
| 451 |
+
creating $alu model for $gt$person_classifier_popcount_folded.v:37$21 ($gt): new $alu
|
| 452 |
+
creating $alu model for $gt$person_classifier_popcount_folded.v:34$20 ($gt): new $alu
|
| 453 |
+
creating $alu model for $gt$person_classifier_popcount_folded.v:34$19 ($gt): new $alu
|
| 454 |
+
creating $alu model for $gt$person_classifier_popcount_folded.v:33$18 ($gt): new $alu
|
| 455 |
+
creating $alu model for $gt$person_classifier_popcount_folded.v:33$17 ($gt): new $alu
|
| 456 |
+
creating $alu model for $gt$person_classifier_popcount_folded.v:32$16 ($gt): new $alu
|
| 457 |
+
creating $alu model for $gt$person_classifier_popcount_folded.v:32$15 ($gt): new $alu
|
| 458 |
+
creating $alu model for $gt$person_classifier_popcount_folded.v:31$14 ($gt): new $alu
|
| 459 |
+
creating $alu model for $gt$person_classifier_popcount_folded.v:31$13 ($gt): new $alu
|
| 460 |
+
creating $alu model for $gt$person_classifier_popcount_folded.v:30$12 ($gt): new $alu
|
| 461 |
+
creating $alu model for $gt$person_classifier_popcount_folded.v:30$11 ($gt): new $alu
|
| 462 |
+
creating $alu model for $gt$person_classifier_popcount_folded.v:29$10 ($gt): new $alu
|
| 463 |
+
creating $alu model for $gt$person_classifier_popcount_folded.v:29$9 ($gt): new $alu
|
| 464 |
+
creating $alu model for $gt$person_classifier_popcount_folded.v:28$8 ($gt): new $alu
|
| 465 |
+
creating $alu model for $gt$person_classifier_popcount_folded.v:28$7 ($gt): new $alu
|
| 466 |
+
creating $alu model for $gt$person_classifier_popcount_folded.v:27$6 ($gt): new $alu
|
| 467 |
+
creating $alu model for $gt$person_classifier_popcount_folded.v:27$5 ($gt): new $alu
|
| 468 |
+
creating $alu model for $gt$person_classifier_popcount_folded.v:26$4 ($gt): new $alu
|
| 469 |
+
creating $alu model for $gt$person_classifier_popcount_folded.v:26$3 ($gt): new $alu
|
| 470 |
+
creating $alu model for $gt$person_classifier_popcount_folded.v:25$2 ($gt): new $alu
|
| 471 |
+
creating $alu model for $gt$person_classifier_popcount_folded.v:25$1 ($gt): new $alu
|
| 472 |
+
creating $alu cell for $gt$person_classifier_popcount_folded.v:25$1: $auto$alumacc.cc:512:replace_alu$131
|
| 473 |
+
creating $alu cell for $gt$person_classifier_popcount_folded.v:25$2: $auto$alumacc.cc:512:replace_alu$144
|
| 474 |
+
creating $alu cell for $gt$person_classifier_popcount_folded.v:26$3: $auto$alumacc.cc:512:replace_alu$157
|
| 475 |
+
creating $alu cell for $gt$person_classifier_popcount_folded.v:26$4: $auto$alumacc.cc:512:replace_alu$170
|
| 476 |
+
creating $alu cell for $gt$person_classifier_popcount_folded.v:27$5: $auto$alumacc.cc:512:replace_alu$183
|
| 477 |
+
creating $alu cell for $gt$person_classifier_popcount_folded.v:27$6: $auto$alumacc.cc:512:replace_alu$196
|
| 478 |
+
creating $alu cell for $gt$person_classifier_popcount_folded.v:28$7: $auto$alumacc.cc:512:replace_alu$209
|
| 479 |
+
creating $alu cell for $gt$person_classifier_popcount_folded.v:28$8: $auto$alumacc.cc:512:replace_alu$222
|
| 480 |
+
creating $alu cell for $gt$person_classifier_popcount_folded.v:29$9: $auto$alumacc.cc:512:replace_alu$235
|
| 481 |
+
creating $alu cell for $gt$person_classifier_popcount_folded.v:29$10: $auto$alumacc.cc:512:replace_alu$248
|
| 482 |
+
creating $alu cell for $gt$person_classifier_popcount_folded.v:30$11: $auto$alumacc.cc:512:replace_alu$261
|
| 483 |
+
creating $alu cell for $gt$person_classifier_popcount_folded.v:30$12: $auto$alumacc.cc:512:replace_alu$274
|
| 484 |
+
creating $alu cell for $gt$person_classifier_popcount_folded.v:31$13: $auto$alumacc.cc:512:replace_alu$287
|
| 485 |
+
creating $alu cell for $gt$person_classifier_popcount_folded.v:31$14: $auto$alumacc.cc:512:replace_alu$300
|
| 486 |
+
creating $alu cell for $gt$person_classifier_popcount_folded.v:32$15: $auto$alumacc.cc:512:replace_alu$313
|
| 487 |
+
creating $alu cell for $gt$person_classifier_popcount_folded.v:32$16: $auto$alumacc.cc:512:replace_alu$326
|
| 488 |
+
creating $alu cell for $gt$person_classifier_popcount_folded.v:33$17: $auto$alumacc.cc:512:replace_alu$339
|
| 489 |
+
creating $alu cell for $gt$person_classifier_popcount_folded.v:33$18: $auto$alumacc.cc:512:replace_alu$352
|
| 490 |
+
creating $alu cell for $gt$person_classifier_popcount_folded.v:34$19: $auto$alumacc.cc:512:replace_alu$365
|
| 491 |
+
creating $alu cell for $gt$person_classifier_popcount_folded.v:34$20: $auto$alumacc.cc:512:replace_alu$378
|
| 492 |
+
creating $alu cell for $gt$person_classifier_popcount_folded.v:37$21: $auto$alumacc.cc:512:replace_alu$391
|
| 493 |
+
creating $alu cell for $gt$person_classifier_popcount_folded.v:37$22: $auto$alumacc.cc:512:replace_alu$404
|
| 494 |
+
creating $alu cell for $gt$person_classifier_popcount_folded.v:38$23: $auto$alumacc.cc:512:replace_alu$417
|
| 495 |
+
creating $alu cell for $gt$person_classifier_popcount_folded.v:38$24: $auto$alumacc.cc:512:replace_alu$430
|
| 496 |
+
creating $alu cell for $gt$person_classifier_popcount_folded.v:39$25: $auto$alumacc.cc:512:replace_alu$443
|
| 497 |
+
creating $alu cell for $gt$person_classifier_popcount_folded.v:39$26: $auto$alumacc.cc:512:replace_alu$456
|
| 498 |
+
creating $alu cell for $gt$person_classifier_popcount_folded.v:40$27: $auto$alumacc.cc:512:replace_alu$469
|
| 499 |
+
creating $alu cell for $gt$person_classifier_popcount_folded.v:40$28: $auto$alumacc.cc:512:replace_alu$482
|
| 500 |
+
creating $alu cell for $gt$person_classifier_popcount_folded.v:41$29: $auto$alumacc.cc:512:replace_alu$495
|
| 501 |
+
creating $alu cell for $gt$person_classifier_popcount_folded.v:41$30: $auto$alumacc.cc:512:replace_alu$508
|
| 502 |
+
creating $alu cell for $gt$person_classifier_popcount_folded.v:42$31: $auto$alumacc.cc:512:replace_alu$521
|
| 503 |
+
creating $alu cell for $gt$person_classifier_popcount_folded.v:42$32: $auto$alumacc.cc:512:replace_alu$534
|
| 504 |
+
creating $alu cell for $gt$person_classifier_popcount_folded.v:43$33: $auto$alumacc.cc:512:replace_alu$547
|
| 505 |
+
creating $alu cell for $gt$person_classifier_popcount_folded.v:43$34: $auto$alumacc.cc:512:replace_alu$560
|
| 506 |
+
creating $alu cell for $gt$person_classifier_popcount_folded.v:44$35: $auto$alumacc.cc:512:replace_alu$573
|
| 507 |
+
creating $alu cell for $gt$person_classifier_popcount_folded.v:44$36: $auto$alumacc.cc:512:replace_alu$586
|
| 508 |
+
creating $alu cell for $gt$person_classifier_popcount_folded.v:45$37: $auto$alumacc.cc:512:replace_alu$599
|
| 509 |
+
creating $alu cell for $gt$person_classifier_popcount_folded.v:45$38: $auto$alumacc.cc:512:replace_alu$612
|
| 510 |
+
creating $alu cell for $gt$person_classifier_popcount_folded.v:46$39: $auto$alumacc.cc:512:replace_alu$625
|
| 511 |
+
creating $alu cell for $gt$person_classifier_popcount_folded.v:46$40: $auto$alumacc.cc:512:replace_alu$638
|
| 512 |
+
creating $alu cell for $gt$person_classifier_popcount_folded.v:63$80: $auto$alumacc.cc:512:replace_alu$651
|
| 513 |
+
created 41 $alu and 1 $macc cells.
|
| 514 |
+
|
| 515 |
+
7.13. Executing SHARE pass (SAT-based resource sharing).
|
| 516 |
+
|
| 517 |
+
7.14. Executing OPT pass (performing simple optimizations).
|
| 518 |
+
|
| 519 |
+
7.14.1. Executing OPT_EXPR pass (perform const folding).
|
| 520 |
+
Optimizing module person_classifier_popcount_folded.
|
| 521 |
+
|
| 522 |
+
7.14.2. Executing OPT_MERGE pass (detect identical cells).
|
| 523 |
+
Finding identical cells in module `\person_classifier_popcount_folded'.
|
| 524 |
+
Computing hashes of 285 cells of `\person_classifier_popcount_folded'.
|
| 525 |
+
Finding duplicate cells in `\person_classifier_popcount_folded'.
|
| 526 |
+
Removed a total of 0 cells.
|
| 527 |
+
|
| 528 |
+
7.14.3. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
|
| 529 |
+
Running muxtree optimizer on module \person_classifier_popcount_folded..
|
| 530 |
+
Creating internal representation of mux trees.
|
| 531 |
+
No muxes found in this module.
|
| 532 |
+
Removed 0 multiplexer ports.
|
| 533 |
+
|
| 534 |
+
7.14.4. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
|
| 535 |
+
Optimizing cells in module \person_classifier_popcount_folded.
|
| 536 |
+
Performed a total of 0 changes.
|
| 537 |
+
|
| 538 |
+
7.14.5. Executing OPT_MERGE pass (detect identical cells).
|
| 539 |
+
Finding identical cells in module `\person_classifier_popcount_folded'.
|
| 540 |
+
Computing hashes of 285 cells of `\person_classifier_popcount_folded'.
|
| 541 |
+
Finding duplicate cells in `\person_classifier_popcount_folded'.
|
| 542 |
+
Removed a total of 0 cells.
|
| 543 |
+
|
| 544 |
+
7.14.6. Executing OPT_DFF pass (perform DFF optimizations).
|
| 545 |
+
|
| 546 |
+
7.14.7. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 547 |
+
Finding unused cells or wires in module \person_classifier_popcount_folded..
|
| 548 |
+
Removed 38 unused cells and 79 unused wires.
|
| 549 |
+
<suppressed ~41 debug messages>
|
| 550 |
+
|
| 551 |
+
7.14.8. Executing OPT_EXPR pass (perform const folding).
|
| 552 |
+
Optimizing module person_classifier_popcount_folded.
|
| 553 |
+
|
| 554 |
+
7.14.9. Rerunning OPT passes. (Maybe there is more to do..)
|
| 555 |
+
|
| 556 |
+
7.14.10. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
|
| 557 |
+
Running muxtree optimizer on module \person_classifier_popcount_folded..
|
| 558 |
+
Creating internal representation of mux trees.
|
| 559 |
+
No muxes found in this module.
|
| 560 |
+
Removed 0 multiplexer ports.
|
| 561 |
+
|
| 562 |
+
7.14.11. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
|
| 563 |
+
Optimizing cells in module \person_classifier_popcount_folded.
|
| 564 |
+
Performed a total of 0 changes.
|
| 565 |
+
|
| 566 |
+
7.14.12. Executing OPT_MERGE pass (detect identical cells).
|
| 567 |
+
Finding identical cells in module `\person_classifier_popcount_folded'.
|
| 568 |
+
Computing hashes of 247 cells of `\person_classifier_popcount_folded'.
|
| 569 |
+
Finding duplicate cells in `\person_classifier_popcount_folded'.
|
| 570 |
+
Removed a total of 0 cells.
|
| 571 |
+
|
| 572 |
+
7.14.13. Executing OPT_DFF pass (perform DFF optimizations).
|
| 573 |
+
|
| 574 |
+
7.14.14. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 575 |
+
Finding unused cells or wires in module \person_classifier_popcount_folded..
|
| 576 |
+
|
| 577 |
+
7.14.15. Executing OPT_EXPR pass (perform const folding).
|
| 578 |
+
Optimizing module person_classifier_popcount_folded.
|
| 579 |
+
|
| 580 |
+
7.14.16. Finished fast OPT passes. (There is nothing left to do.)
|
| 581 |
+
|
| 582 |
+
7.15. Executing MEMORY pass.
|
| 583 |
+
|
| 584 |
+
7.15.1. Executing OPT_MEM pass (optimize memories).
|
| 585 |
+
Performed a total of 0 transformations.
|
| 586 |
+
|
| 587 |
+
7.15.2. Executing OPT_MEM_PRIORITY pass (removing unnecessary memory write priority relations).
|
| 588 |
+
Performed a total of 0 transformations.
|
| 589 |
+
|
| 590 |
+
7.15.3. Executing OPT_MEM_FEEDBACK pass (finding memory read-to-write feedback paths).
|
| 591 |
+
|
| 592 |
+
7.15.4. Executing MEMORY_BMUX2ROM pass (converting muxes to ROMs).
|
| 593 |
+
|
| 594 |
+
7.15.5. Executing MEMORY_DFF pass (merging $dff cells to $memrd).
|
| 595 |
+
|
| 596 |
+
7.15.6. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 597 |
+
Finding unused cells or wires in module \person_classifier_popcount_folded..
|
| 598 |
+
|
| 599 |
+
7.15.7. Executing MEMORY_SHARE pass (consolidating $memrd/$memwr cells).
|
| 600 |
+
|
| 601 |
+
7.15.8. Executing OPT_MEM_WIDEN pass (optimize memories where all ports are wide).
|
| 602 |
+
Performed a total of 0 transformations.
|
| 603 |
+
|
| 604 |
+
7.15.9. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 605 |
+
Finding unused cells or wires in module \person_classifier_popcount_folded..
|
| 606 |
+
|
| 607 |
+
7.15.10. Executing MEMORY_COLLECT pass (generating $mem cells).
|
| 608 |
+
|
| 609 |
+
7.16. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 610 |
+
Finding unused cells or wires in module \person_classifier_popcount_folded..
|
| 611 |
+
|
| 612 |
+
7.17. Executing OPT pass (performing simple optimizations).
|
| 613 |
+
|
| 614 |
+
7.17.1. Executing OPT_EXPR pass (perform const folding).
|
| 615 |
+
Optimizing module person_classifier_popcount_folded.
|
| 616 |
+
<suppressed ~22 debug messages>
|
| 617 |
+
|
| 618 |
+
7.17.2. Executing OPT_MERGE pass (detect identical cells).
|
| 619 |
+
Finding identical cells in module `\person_classifier_popcount_folded'.
|
| 620 |
+
Computing hashes of 289 cells of `\person_classifier_popcount_folded'.
|
| 621 |
+
Finding duplicate cells in `\person_classifier_popcount_folded'.
|
| 622 |
+
Removed a total of 0 cells.
|
| 623 |
+
|
| 624 |
+
7.17.3. Executing OPT_DFF pass (perform DFF optimizations).
|
| 625 |
+
|
| 626 |
+
7.17.4. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 627 |
+
Finding unused cells or wires in module \person_classifier_popcount_folded..
|
| 628 |
+
Removed 0 unused cells and 42 unused wires.
|
| 629 |
+
<suppressed ~1 debug messages>
|
| 630 |
+
|
| 631 |
+
7.17.5. Finished fast OPT passes.
|
| 632 |
+
|
| 633 |
+
7.18. Executing MEMORY_MAP pass (converting memories to logic and flip-flops).
|
| 634 |
+
|
| 635 |
+
7.19. Executing OPT pass (performing simple optimizations).
|
| 636 |
+
|
| 637 |
+
7.19.1. Executing OPT_EXPR pass (perform const folding).
|
| 638 |
+
Optimizing module person_classifier_popcount_folded.
|
| 639 |
+
|
| 640 |
+
7.19.2. Executing OPT_MERGE pass (detect identical cells).
|
| 641 |
+
Finding identical cells in module `\person_classifier_popcount_folded'.
|
| 642 |
+
Computing hashes of 289 cells of `\person_classifier_popcount_folded'.
|
| 643 |
+
Finding duplicate cells in `\person_classifier_popcount_folded'.
|
| 644 |
+
Removed a total of 0 cells.
|
| 645 |
+
|
| 646 |
+
7.19.3. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
|
| 647 |
+
Running muxtree optimizer on module \person_classifier_popcount_folded..
|
| 648 |
+
Creating internal representation of mux trees.
|
| 649 |
+
No muxes found in this module.
|
| 650 |
+
Removed 0 multiplexer ports.
|
| 651 |
+
|
| 652 |
+
7.19.4. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
|
| 653 |
+
Optimizing cells in module \person_classifier_popcount_folded.
|
| 654 |
+
Performed a total of 0 changes.
|
| 655 |
+
|
| 656 |
+
7.19.5. Executing OPT_MERGE pass (detect identical cells).
|
| 657 |
+
Finding identical cells in module `\person_classifier_popcount_folded'.
|
| 658 |
+
Computing hashes of 289 cells of `\person_classifier_popcount_folded'.
|
| 659 |
+
Finding duplicate cells in `\person_classifier_popcount_folded'.
|
| 660 |
+
Removed a total of 0 cells.
|
| 661 |
+
|
| 662 |
+
7.19.6. Executing OPT_SHARE pass.
|
| 663 |
+
|
| 664 |
+
7.19.7. Executing OPT_DFF pass (perform DFF optimizations).
|
| 665 |
+
|
| 666 |
+
7.19.8. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 667 |
+
Finding unused cells or wires in module \person_classifier_popcount_folded..
|
| 668 |
+
|
| 669 |
+
7.19.9. Executing OPT_EXPR pass (perform const folding).
|
| 670 |
+
Optimizing module person_classifier_popcount_folded.
|
| 671 |
+
|
| 672 |
+
7.19.10. Finished fast OPT passes. (There is nothing left to do.)
|
| 673 |
+
|
| 674 |
+
7.20. Executing TECHMAP pass (map to technology primitives).
|
| 675 |
+
|
| 676 |
+
7.20.1. Executing Verilog-2005 frontend: D:\oss-cad-suite\bin\../share/yosys/techmap.v
|
| 677 |
+
Parsing Verilog input from `D:\oss-cad-suite\bin\../share/yosys/techmap.v' to AST representation.
|
| 678 |
+
Generating RTLIL representation for module `\_90_simplemap_bool_ops'.
|
| 679 |
+
Generating RTLIL representation for module `\_90_simplemap_reduce_ops'.
|
| 680 |
+
Generating RTLIL representation for module `\_90_simplemap_logic_ops'.
|
| 681 |
+
Generating RTLIL representation for module `\_90_simplemap_compare_ops'.
|
| 682 |
+
Generating RTLIL representation for module `\_90_simplemap_various'.
|
| 683 |
+
Generating RTLIL representation for module `\_90_simplemap_registers'.
|
| 684 |
+
Generating RTLIL representation for module `\_90_shift_ops_shr_shl_sshl_sshr'.
|
| 685 |
+
Generating RTLIL representation for module `\_90_shift_shiftx'.
|
| 686 |
+
Generating RTLIL representation for module `\_90_fa'.
|
| 687 |
+
Generating RTLIL representation for module `\_90_lcu_brent_kung'.
|
| 688 |
+
Generating RTLIL representation for module `\_90_alu'.
|
| 689 |
+
Generating RTLIL representation for module `\_90_macc'.
|
| 690 |
+
Generating RTLIL representation for module `\_90_alumacc'.
|
| 691 |
+
Generating RTLIL representation for module `$__div_mod_u'.
|
| 692 |
+
Generating RTLIL representation for module `$__div_mod_trunc'.
|
| 693 |
+
Generating RTLIL representation for module `\_90_div'.
|
| 694 |
+
Generating RTLIL representation for module `\_90_mod'.
|
| 695 |
+
Generating RTLIL representation for module `$__div_mod_floor'.
|
| 696 |
+
Generating RTLIL representation for module `\_90_divfloor'.
|
| 697 |
+
Generating RTLIL representation for module `\_90_modfloor'.
|
| 698 |
+
Generating RTLIL representation for module `\_90_pow'.
|
| 699 |
+
Generating RTLIL representation for module `\_90_pmux'.
|
| 700 |
+
Generating RTLIL representation for module `\_90_demux'.
|
| 701 |
+
Generating RTLIL representation for module `\_90_lut'.
|
| 702 |
+
Generating RTLIL representation for module `$connect'.
|
| 703 |
+
Generating RTLIL representation for module `$input_port'.
|
| 704 |
+
Successfully finished Verilog frontend.
|
| 705 |
+
|
| 706 |
+
7.20.2. Continuing TECHMAP pass.
|
| 707 |
+
Using extmapper simplemap for cells of type $not.
|
| 708 |
+
Using extmapper simplemap for cells of type $or.
|
| 709 |
+
Using extmapper simplemap for cells of type $reduce_and.
|
| 710 |
+
Using extmapper simplemap for cells of type $xor.
|
| 711 |
+
Using template $paramod$297518c194a8ad6f44154a9c5ecf19486562def9\_90_alu for cells of type $alu.
|
| 712 |
+
Using template $paramod$f7b328629d450626581b38fa77678b64840b1bd3\_90_alu for cells of type $alu.
|
| 713 |
+
Using template $paramod$b72146ddedeedf6b20d77d4e250bab582e4592bc\_90_alu for cells of type $alu.
|
| 714 |
+
Using template $paramod$26bc1555e7e0f98bd36dce43959f94aabea489fb\_90_alu for cells of type $alu.
|
| 715 |
+
Using template $paramod$545c15afbd432ae0238c822091cfd2c3caed17cb\_90_alu for cells of type $alu.
|
| 716 |
+
Using template $paramod$7428e76e62a73bc15e032afd19bff97c9bfc295a\_90_alu for cells of type $alu.
|
| 717 |
+
Using template $paramod$acb50aac1033d58dd99234b0e18364ce3b729ad2\_90_alu for cells of type $alu.
|
| 718 |
+
Using template $paramod$d962484f5f83e7cf93ec14aa287647fe30a8e420\_90_alu for cells of type $alu.
|
| 719 |
+
Using template $paramod$8c3c356f3c281cd9ae1e645f5294d6a2a1427462\_90_alu for cells of type $alu.
|
| 720 |
+
Using template $paramod$00325734e079d13ca2c28a5c21677fbdd584b592\_90_alu for cells of type $alu.
|
| 721 |
+
Using template $paramod$c3b99e8941462f3f0961a07bbdd1cb43e85cc481\_90_alu for cells of type $alu.
|
| 722 |
+
Using template $paramod$0e3c1a094065a85d0fda905f8f45176693bebe5a\_90_alu for cells of type $alu.
|
| 723 |
+
Using template $paramod$026a25b0ac8923e25340c48710b92fe5b83aead0\_90_alu for cells of type $alu.
|
| 724 |
+
Using template $paramod$15650b5f68527c2737f08685d9884042e045002a\_90_alu for cells of type $alu.
|
| 725 |
+
Using extmapper maccmap for cells of type $macc_v2.
|
| 726 |
+
add \pos_bits [0] (1 bits, unsigned)
|
| 727 |
+
sub \neg_bits [0] (1 bits, unsigned)
|
| 728 |
+
add \pos_bits [19] (1 bits, unsigned)
|
| 729 |
+
add \pos_bits [18] (1 bits, unsigned)
|
| 730 |
+
add \pos_bits [17] (1 bits, unsigned)
|
| 731 |
+
add \pos_bits [16] (1 bits, unsigned)
|
| 732 |
+
add \pos_bits [15] (1 bits, unsigned)
|
| 733 |
+
add \pos_bits [14] (1 bits, unsigned)
|
| 734 |
+
add \pos_bits [13] (1 bits, unsigned)
|
| 735 |
+
add \pos_bits [12] (1 bits, unsigned)
|
| 736 |
+
add \pos_bits [11] (1 bits, unsigned)
|
| 737 |
+
add \pos_bits [10] (1 bits, unsigned)
|
| 738 |
+
add \pos_bits [9] (1 bits, unsigned)
|
| 739 |
+
add \pos_bits [8] (1 bits, unsigned)
|
| 740 |
+
add \pos_bits [7] (1 bits, unsigned)
|
| 741 |
+
add \pos_bits [6] (1 bits, unsigned)
|
| 742 |
+
add \pos_bits [5] (1 bits, unsigned)
|
| 743 |
+
add \pos_bits [4] (1 bits, unsigned)
|
| 744 |
+
add \pos_bits [3] (1 bits, unsigned)
|
| 745 |
+
add \pos_bits [2] (1 bits, unsigned)
|
| 746 |
+
add \pos_bits [1] (1 bits, unsigned)
|
| 747 |
+
sub \neg_bits [19] (1 bits, unsigned)
|
| 748 |
+
sub \neg_bits [18] (1 bits, unsigned)
|
| 749 |
+
sub \neg_bits [17] (1 bits, unsigned)
|
| 750 |
+
sub \neg_bits [16] (1 bits, unsigned)
|
| 751 |
+
sub \neg_bits [15] (1 bits, unsigned)
|
| 752 |
+
sub \neg_bits [14] (1 bits, unsigned)
|
| 753 |
+
sub \neg_bits [13] (1 bits, unsigned)
|
| 754 |
+
sub \neg_bits [12] (1 bits, unsigned)
|
| 755 |
+
sub \neg_bits [11] (1 bits, unsigned)
|
| 756 |
+
sub \neg_bits [10] (1 bits, unsigned)
|
| 757 |
+
sub \neg_bits [9] (1 bits, unsigned)
|
| 758 |
+
sub \neg_bits [8] (1 bits, unsigned)
|
| 759 |
+
sub \neg_bits [7] (1 bits, unsigned)
|
| 760 |
+
sub \neg_bits [6] (1 bits, unsigned)
|
| 761 |
+
sub \neg_bits [5] (1 bits, unsigned)
|
| 762 |
+
sub \neg_bits [4] (1 bits, unsigned)
|
| 763 |
+
sub \neg_bits [3] (1 bits, unsigned)
|
| 764 |
+
sub \neg_bits [2] (1 bits, unsigned)
|
| 765 |
+
sub \neg_bits [1] (1 bits, unsigned)
|
| 766 |
+
packed 19 (19) bits / 19 words into adder tree
|
| 767 |
+
Using template $paramod\_90_fa\WIDTH=32'00000000000000000000000000000111 for cells of type $fa.
|
| 768 |
+
Using template $paramod$dbcdc7e8aa1a4080cea2deda6fdc8772064f4d90\_90_alu for cells of type $alu.
|
| 769 |
+
Using template $paramod\_90_lcu_brent_kung\WIDTH=32'00000000000000000000000000000111 for cells of type $lcu.
|
| 770 |
+
Using extmapper simplemap for cells of type $pos.
|
| 771 |
+
Using extmapper simplemap for cells of type $mux.
|
| 772 |
+
Using template $paramod\_90_fa\WIDTH=32'00000000000000000000000000001000 for cells of type $fa.
|
| 773 |
+
Using template $paramod\_90_lcu_brent_kung\WIDTH=32'00000000000000000000000000001000 for cells of type $lcu.
|
| 774 |
+
Using template $paramod\_90_fa\WIDTH=32'00000000000000000000000000000100 for cells of type $fa.
|
| 775 |
+
Using template $paramod\_90_lcu_brent_kung\WIDTH=32'00000000000000000000000000000100 for cells of type $lcu.
|
| 776 |
+
Using template $paramod\_90_fa\WIDTH=32'00000000000000000000000000000110 for cells of type $fa.
|
| 777 |
+
Using template $paramod\_90_lcu_brent_kung\WIDTH=32'00000000000000000000000000000110 for cells of type $lcu.
|
| 778 |
+
Using template $paramod\_90_fa\WIDTH=32'00000000000000000000000000000101 for cells of type $fa.
|
| 779 |
+
Using template $paramod\_90_lcu_brent_kung\WIDTH=32'00000000000000000000000000000101 for cells of type $lcu.
|
| 780 |
+
Using extmapper simplemap for cells of type $and.
|
| 781 |
+
No more expansions possible.
|
| 782 |
+
<suppressed ~2836 debug messages>
|
| 783 |
+
|
| 784 |
+
7.21. Executing OPT pass (performing simple optimizations).
|
| 785 |
+
|
| 786 |
+
7.21.1. Executing OPT_EXPR pass (perform const folding).
|
| 787 |
+
Optimizing module person_classifier_popcount_folded.
|
| 788 |
+
<suppressed ~2971 debug messages>
|
| 789 |
+
|
| 790 |
+
7.21.2. Executing OPT_MERGE pass (detect identical cells).
|
| 791 |
+
Finding identical cells in module `\person_classifier_popcount_folded'.
|
| 792 |
+
Computing hashes of 1889 cells of `\person_classifier_popcount_folded'.
|
| 793 |
+
Finding duplicate cells in `\person_classifier_popcount_folded'.
|
| 794 |
+
Computing hashes of 1791 cells of `\person_classifier_popcount_folded'.
|
| 795 |
+
Finding duplicate cells in `\person_classifier_popcount_folded'.
|
| 796 |
+
Computing hashes of 1767 cells of `\person_classifier_popcount_folded'.
|
| 797 |
+
Finding duplicate cells in `\person_classifier_popcount_folded'.
|
| 798 |
+
Computing hashes of 1766 cells of `\person_classifier_popcount_folded'.
|
| 799 |
+
Finding duplicate cells in `\person_classifier_popcount_folded'.
|
| 800 |
+
<suppressed ~369 debug messages>
|
| 801 |
+
Removed a total of 123 cells.
|
| 802 |
+
|
| 803 |
+
7.21.3. Executing OPT_DFF pass (perform DFF optimizations).
|
| 804 |
+
|
| 805 |
+
7.21.4. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 806 |
+
Finding unused cells or wires in module \person_classifier_popcount_folded..
|
| 807 |
+
Removed 383 unused cells and 2441 unused wires.
|
| 808 |
+
<suppressed ~385 debug messages>
|
| 809 |
+
|
| 810 |
+
7.21.5. Finished fast OPT passes.
|
| 811 |
+
|
| 812 |
+
7.22. Executing ABC pass (technology mapping using ABC).
|
| 813 |
+
|
| 814 |
+
7.22.1. Extracting gate netlist of module `\person_classifier_popcount_folded' to `<abc-temp-dir>/input.blif'..
|
| 815 |
+
|
| 816 |
+
7.22.1.1. Executed ABC.
|
| 817 |
+
Extracted 1383 gates and 1703 wires to a netlist network with 320 inputs and 1 outputs.
|
| 818 |
+
Running ABC script: <abc-temp-dir>/abc.script
|
| 819 |
+
ABC: ======== ABC command line "source <abc-temp-dir>/abc.script"
|
| 820 |
+
ABC: + read_blif <abc-temp-dir>/input.blif
|
| 821 |
+
ABC: + read_library <abc-temp-dir>/stdcells.genlib
|
| 822 |
+
ABC: + strash
|
| 823 |
+
ABC: + &get -n
|
| 824 |
+
ABC: + &fraig -x
|
| 825 |
+
ABC: + &put
|
| 826 |
+
ABC: + scorr
|
| 827 |
+
ABC: Warning: The network is combinational (run "fraig" or "fraig_sweep").
|
| 828 |
+
ABC: + dc2
|
| 829 |
+
ABC: + dretime
|
| 830 |
+
ABC: + strash
|
| 831 |
+
ABC: + &get -n
|
| 832 |
+
ABC: + &dch -f
|
| 833 |
+
ABC: + &nf
|
| 834 |
+
ABC: + &put
|
| 835 |
+
ABC: + write_blif <abc-temp-dir>/output.blif
|
| 836 |
+
|
| 837 |
+
7.22.1.2. Re-integrating ABC results.
|
| 838 |
+
ABC RESULTS: AND cells: 89
|
| 839 |
+
ABC RESULTS: ANDNOT cells: 15
|
| 840 |
+
ABC RESULTS: NAND cells: 135
|
| 841 |
+
ABC RESULTS: NOR cells: 80
|
| 842 |
+
ABC RESULTS: NOT cells: 1
|
| 843 |
+
ABC RESULTS: OR cells: 51
|
| 844 |
+
ABC RESULTS: ORNOT cells: 7
|
| 845 |
+
ABC RESULTS: XNOR cells: 10
|
| 846 |
+
ABC RESULTS: XOR cells: 59
|
| 847 |
+
ABC RESULTS: internal signals: 1382
|
| 848 |
+
ABC RESULTS: input signals: 320
|
| 849 |
+
ABC RESULTS: output signals: 1
|
| 850 |
+
Removing temp directory.
|
| 851 |
+
Removing global temp directory.
|
| 852 |
+
|
| 853 |
+
7.23. Executing OPT pass (performing simple optimizations).
|
| 854 |
+
|
| 855 |
+
7.23.1. Executing OPT_EXPR pass (perform const folding).
|
| 856 |
+
Optimizing module person_classifier_popcount_folded.
|
| 857 |
+
|
| 858 |
+
7.23.2. Executing OPT_MERGE pass (detect identical cells).
|
| 859 |
+
Finding identical cells in module `\person_classifier_popcount_folded'.
|
| 860 |
+
Computing hashes of 447 cells of `\person_classifier_popcount_folded'.
|
| 861 |
+
Finding duplicate cells in `\person_classifier_popcount_folded'.
|
| 862 |
+
Removed a total of 0 cells.
|
| 863 |
+
|
| 864 |
+
7.23.3. Executing OPT_DFF pass (perform DFF optimizations).
|
| 865 |
+
|
| 866 |
+
7.23.4. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 867 |
+
Finding unused cells or wires in module \person_classifier_popcount_folded..
|
| 868 |
+
Removed 0 unused cells and 1132 unused wires.
|
| 869 |
+
<suppressed ~3 debug messages>
|
| 870 |
+
|
| 871 |
+
7.23.5. Finished fast OPT passes.
|
| 872 |
+
|
| 873 |
+
7.24. Executing HIERARCHY pass (managing design hierarchy).
|
| 874 |
+
Attribute `top' found on module `person_classifier_popcount_folded'. Setting top module to person_classifier_popcount_folded.
|
| 875 |
+
|
| 876 |
+
7.24.1. Analyzing design hierarchy..
|
| 877 |
+
Top module: \person_classifier_popcount_folded
|
| 878 |
+
|
| 879 |
+
7.24.2. Analyzing design hierarchy..
|
| 880 |
+
Top module: \person_classifier_popcount_folded
|
| 881 |
+
Removed 0 unused modules.
|
| 882 |
+
|
| 883 |
+
7.25. Printing statistics.
|
| 884 |
+
|
| 885 |
+
=== person_classifier_popcount_folded ===
|
| 886 |
+
|
| 887 |
+
+----------Local Count, excluding submodules.
|
| 888 |
+
|
|
| 889 |
+
487 wires
|
| 890 |
+
767 wire bits
|
| 891 |
+
41 public wires
|
| 892 |
+
321 public wire bits
|
| 893 |
+
41 ports
|
| 894 |
+
321 port bits
|
| 895 |
+
447 cells
|
| 896 |
+
15 $_ANDNOT_
|
| 897 |
+
89 $_AND_
|
| 898 |
+
135 $_NAND_
|
| 899 |
+
80 $_NOR_
|
| 900 |
+
1 $_NOT_
|
| 901 |
+
7 $_ORNOT_
|
| 902 |
+
51 $_OR_
|
| 903 |
+
10 $_XNOR_
|
| 904 |
+
59 $_XOR_
|
| 905 |
+
|
| 906 |
+
7.26. Executing CHECK pass (checking for obvious problems).
|
| 907 |
+
Checking module person_classifier_popcount_folded...
|
| 908 |
+
Found and reported 0 problems.
|
| 909 |
+
|
| 910 |
+
8. Executing ABC pass (technology mapping using ABC).
|
| 911 |
+
|
| 912 |
+
8.1. Extracting gate netlist of module `\person_classifier_popcount_folded' to `<abc-temp-dir>/input.blif'..
|
| 913 |
+
|
| 914 |
+
8.1.1. Executed ABC.
|
| 915 |
+
Extracted 447 gates and 738 wires to a netlist network with 291 inputs and 1 outputs.
|
| 916 |
+
Running ABC script: <abc-temp-dir>/abc.script
|
| 917 |
+
ABC: ======== ABC command line "source <abc-temp-dir>/abc.script"
|
| 918 |
+
ABC: + read_blif <abc-temp-dir>/input.blif
|
| 919 |
+
ABC: + read_library <abc-temp-dir>/stdcells.genlib
|
| 920 |
+
ABC: + strash
|
| 921 |
+
ABC: + &get -n
|
| 922 |
+
ABC: + &fraig -x
|
| 923 |
+
ABC: + &put
|
| 924 |
+
ABC: + scorr
|
| 925 |
+
ABC: Warning: The network is combinational (run "fraig" or "fraig_sweep").
|
| 926 |
+
ABC: + dc2
|
| 927 |
+
ABC: + dretime
|
| 928 |
+
ABC: + strash
|
| 929 |
+
ABC: + &get -n
|
| 930 |
+
ABC: + &dch -f
|
| 931 |
+
ABC: + &nf
|
| 932 |
+
ABC: + &put
|
| 933 |
+
ABC: + write_blif <abc-temp-dir>/output.blif
|
| 934 |
+
|
| 935 |
+
8.1.2. Re-integrating ABC results.
|
| 936 |
+
ABC RESULTS: AND cells: 378
|
| 937 |
+
ABC RESULTS: NOT cells: 452
|
| 938 |
+
ABC RESULTS: XOR cells: 77
|
| 939 |
+
ABC RESULTS: internal signals: 446
|
| 940 |
+
ABC RESULTS: input signals: 291
|
| 941 |
+
ABC RESULTS: output signals: 1
|
| 942 |
+
Removing temp directory.
|
| 943 |
+
Removing global temp directory.
|
| 944 |
+
|
| 945 |
+
9. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 946 |
+
Finding unused cells or wires in module \person_classifier_popcount_folded..
|
| 947 |
+
Removed 0 unused cells and 738 unused wires.
|
| 948 |
+
<suppressed ~1 debug messages>
|
| 949 |
+
|
| 950 |
+
10. Printing statistics.
|
| 951 |
+
|
| 952 |
+
=== person_classifier_popcount_folded ===
|
| 953 |
+
|
| 954 |
+
+----------Local Count, excluding submodules.
|
| 955 |
+
|
|
| 956 |
+
947 wires
|
| 957 |
+
1227 wire bits
|
| 958 |
+
41 public wires
|
| 959 |
+
321 public wire bits
|
| 960 |
+
41 ports
|
| 961 |
+
321 port bits
|
| 962 |
+
907 cells
|
| 963 |
+
378 $_AND_
|
| 964 |
+
452 $_NOT_
|
| 965 |
+
77 $_XOR_
|
| 966 |
+
|
| 967 |
+
11. Executing Verilog backend.
|
| 968 |
+
|
| 969 |
+
11.1. Executing BMUXMAP pass.
|
| 970 |
+
|
| 971 |
+
11.2. Executing DEMUXMAP pass.
|
| 972 |
+
Dumping module `\person_classifier_popcount_folded'.
|
| 973 |
+
|
| 974 |
+
End of script. Logfile hash: 4e1815ade6
|
| 975 |
+
Yosys 0.63+222 (git sha1 a4b6a8c58-dirty, x86_64-w64-mingw32-g++ 13.2.1 -O3)
|
| 976 |
+
Time spent: 1% 28x opt_expr (0 sec), 1% 23x opt_clean (0 sec), ...
|
stage_5b/synth_folded.ys
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
read_verilog person_classifier_popcount_folded.v
|
| 2 |
+
hierarchy -top person_classifier_popcount_folded
|
| 3 |
+
proc
|
| 4 |
+
opt
|
| 5 |
+
flatten
|
| 6 |
+
opt_clean
|
| 7 |
+
synth -top person_classifier_popcount_folded
|
| 8 |
+
abc -g AND,XOR
|
| 9 |
+
opt_clean
|
| 10 |
+
stat
|
| 11 |
+
write_verilog synthesized_folded.v
|
stage_5b/synth_sum_folded.log
ADDED
|
@@ -0,0 +1,910 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
|
| 2 |
+
/----------------------------------------------------------------------------\
|
| 3 |
+
| yosys -- Yosys Open SYnthesis Suite |
|
| 4 |
+
| Copyright (C) 2012 - 2026 Claire Xenia Wolf <claire@yosyshq.com> |
|
| 5 |
+
| Distributed under an ISC-like license, type "license" to see terms |
|
| 6 |
+
\----------------------------------------------------------------------------/
|
| 7 |
+
Yosys 0.63+222 (git sha1 a4b6a8c58-dirty, x86_64-w64-mingw32-g++ 13.2.1 -O3)
|
| 8 |
+
|
| 9 |
+
-- Executing script file `synth_sum_folded.ys' --
|
| 10 |
+
|
| 11 |
+
1. Executing Verilog-2005 frontend: person_classifier_sum_folded.v
|
| 12 |
+
Parsing Verilog input from `person_classifier_sum_folded.v' to AST representation.
|
| 13 |
+
Generating RTLIL representation for module `\person_classifier_sum_folded'.
|
| 14 |
+
Successfully finished Verilog frontend.
|
| 15 |
+
|
| 16 |
+
2. Executing HIERARCHY pass (managing design hierarchy).
|
| 17 |
+
|
| 18 |
+
2.1. Analyzing design hierarchy..
|
| 19 |
+
Top module: \person_classifier_sum_folded
|
| 20 |
+
|
| 21 |
+
2.2. Analyzing design hierarchy..
|
| 22 |
+
Top module: \person_classifier_sum_folded
|
| 23 |
+
Removed 0 unused modules.
|
| 24 |
+
|
| 25 |
+
3. Executing PROC pass (convert processes to netlists).
|
| 26 |
+
|
| 27 |
+
3.1. Executing PROC_CLEAN pass (remove empty switches from decision trees).
|
| 28 |
+
Cleaned up 0 empty switches.
|
| 29 |
+
|
| 30 |
+
3.2. Executing PROC_RMDEAD pass (remove dead branches from decision trees).
|
| 31 |
+
Removed a total of 0 dead cases.
|
| 32 |
+
|
| 33 |
+
3.3. Executing PROC_PRUNE pass (remove redundant assignments in processes).
|
| 34 |
+
Removed 0 redundant assignments.
|
| 35 |
+
Promoted 0 assignments to connections.
|
| 36 |
+
|
| 37 |
+
3.4. Executing PROC_INIT pass (extract init attributes).
|
| 38 |
+
|
| 39 |
+
3.5. Executing PROC_ARST pass (detect async resets in processes).
|
| 40 |
+
|
| 41 |
+
3.6. Executing PROC_ROM pass (convert switches to ROMs).
|
| 42 |
+
Converted 0 switches.
|
| 43 |
+
|
| 44 |
+
3.7. Executing PROC_MUX pass (convert decision trees to multiplexers).
|
| 45 |
+
|
| 46 |
+
3.8. Executing PROC_DLATCH pass (convert process syncs to latches).
|
| 47 |
+
|
| 48 |
+
3.9. Executing PROC_DFF pass (convert process syncs to FFs).
|
| 49 |
+
|
| 50 |
+
3.10. Executing PROC_MEMWR pass (convert process memory writes to cells).
|
| 51 |
+
|
| 52 |
+
3.11. Executing PROC_CLEAN pass (remove empty switches from decision trees).
|
| 53 |
+
Cleaned up 0 empty switches.
|
| 54 |
+
|
| 55 |
+
3.12. Executing OPT_EXPR pass (perform const folding).
|
| 56 |
+
Optimizing module person_classifier_sum_folded.
|
| 57 |
+
|
| 58 |
+
4. Executing OPT pass (performing simple optimizations).
|
| 59 |
+
|
| 60 |
+
4.1. Executing OPT_EXPR pass (perform const folding).
|
| 61 |
+
Optimizing module person_classifier_sum_folded.
|
| 62 |
+
|
| 63 |
+
4.2. Executing OPT_MERGE pass (detect identical cells).
|
| 64 |
+
Finding identical cells in module `\person_classifier_sum_folded'.
|
| 65 |
+
Computing hashes of 40 cells of `\person_classifier_sum_folded'.
|
| 66 |
+
Finding duplicate cells in `\person_classifier_sum_folded'.
|
| 67 |
+
Removed a total of 0 cells.
|
| 68 |
+
|
| 69 |
+
4.3. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
|
| 70 |
+
Running muxtree optimizer on module \person_classifier_sum_folded..
|
| 71 |
+
Creating internal representation of mux trees.
|
| 72 |
+
No muxes found in this module.
|
| 73 |
+
Removed 0 multiplexer ports.
|
| 74 |
+
|
| 75 |
+
4.4. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
|
| 76 |
+
Optimizing cells in module \person_classifier_sum_folded.
|
| 77 |
+
Performed a total of 0 changes.
|
| 78 |
+
|
| 79 |
+
4.5. Executing OPT_MERGE pass (detect identical cells).
|
| 80 |
+
Finding identical cells in module `\person_classifier_sum_folded'.
|
| 81 |
+
Computing hashes of 40 cells of `\person_classifier_sum_folded'.
|
| 82 |
+
Finding duplicate cells in `\person_classifier_sum_folded'.
|
| 83 |
+
Removed a total of 0 cells.
|
| 84 |
+
|
| 85 |
+
4.6. Executing OPT_DFF pass (perform DFF optimizations).
|
| 86 |
+
|
| 87 |
+
4.7. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 88 |
+
Finding unused cells or wires in module \person_classifier_sum_folded..
|
| 89 |
+
Removed 0 unused cells and 4 unused wires.
|
| 90 |
+
<suppressed ~1 debug messages>
|
| 91 |
+
|
| 92 |
+
4.8. Executing OPT_EXPR pass (perform const folding).
|
| 93 |
+
Optimizing module person_classifier_sum_folded.
|
| 94 |
+
|
| 95 |
+
4.9. Rerunning OPT passes. (Maybe there is more to do..)
|
| 96 |
+
|
| 97 |
+
4.10. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
|
| 98 |
+
Running muxtree optimizer on module \person_classifier_sum_folded..
|
| 99 |
+
Creating internal representation of mux trees.
|
| 100 |
+
No muxes found in this module.
|
| 101 |
+
Removed 0 multiplexer ports.
|
| 102 |
+
|
| 103 |
+
4.11. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
|
| 104 |
+
Optimizing cells in module \person_classifier_sum_folded.
|
| 105 |
+
Performed a total of 0 changes.
|
| 106 |
+
|
| 107 |
+
4.12. Executing OPT_MERGE pass (detect identical cells).
|
| 108 |
+
Finding identical cells in module `\person_classifier_sum_folded'.
|
| 109 |
+
Computing hashes of 40 cells of `\person_classifier_sum_folded'.
|
| 110 |
+
Finding duplicate cells in `\person_classifier_sum_folded'.
|
| 111 |
+
Removed a total of 0 cells.
|
| 112 |
+
|
| 113 |
+
4.13. Executing OPT_DFF pass (perform DFF optimizations).
|
| 114 |
+
|
| 115 |
+
4.14. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 116 |
+
Finding unused cells or wires in module \person_classifier_sum_folded..
|
| 117 |
+
|
| 118 |
+
4.15. Executing OPT_EXPR pass (perform const folding).
|
| 119 |
+
Optimizing module person_classifier_sum_folded.
|
| 120 |
+
|
| 121 |
+
4.16. Finished fast OPT passes. (There is nothing left to do.)
|
| 122 |
+
|
| 123 |
+
5. Executing FLATTEN pass (flatten design).
|
| 124 |
+
|
| 125 |
+
6. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 126 |
+
Finding unused cells or wires in module \person_classifier_sum_folded..
|
| 127 |
+
|
| 128 |
+
7. Executing SYNTH pass.
|
| 129 |
+
|
| 130 |
+
7.1. Executing HIERARCHY pass (managing design hierarchy).
|
| 131 |
+
|
| 132 |
+
7.1.1. Analyzing design hierarchy..
|
| 133 |
+
Top module: \person_classifier_sum_folded
|
| 134 |
+
|
| 135 |
+
7.1.2. Analyzing design hierarchy..
|
| 136 |
+
Top module: \person_classifier_sum_folded
|
| 137 |
+
Removed 0 unused modules.
|
| 138 |
+
|
| 139 |
+
7.2. Executing PROC pass (convert processes to netlists).
|
| 140 |
+
|
| 141 |
+
7.2.1. Executing PROC_CLEAN pass (remove empty switches from decision trees).
|
| 142 |
+
Cleaned up 0 empty switches.
|
| 143 |
+
|
| 144 |
+
7.2.2. Executing PROC_RMDEAD pass (remove dead branches from decision trees).
|
| 145 |
+
Removed a total of 0 dead cases.
|
| 146 |
+
|
| 147 |
+
7.2.3. Executing PROC_PRUNE pass (remove redundant assignments in processes).
|
| 148 |
+
Removed 0 redundant assignments.
|
| 149 |
+
Promoted 0 assignments to connections.
|
| 150 |
+
|
| 151 |
+
7.2.4. Executing PROC_INIT pass (extract init attributes).
|
| 152 |
+
|
| 153 |
+
7.2.5. Executing PROC_ARST pass (detect async resets in processes).
|
| 154 |
+
|
| 155 |
+
7.2.6. Executing PROC_ROM pass (convert switches to ROMs).
|
| 156 |
+
Converted 0 switches.
|
| 157 |
+
|
| 158 |
+
7.2.7. Executing PROC_MUX pass (convert decision trees to multiplexers).
|
| 159 |
+
|
| 160 |
+
7.2.8. Executing PROC_DLATCH pass (convert process syncs to latches).
|
| 161 |
+
|
| 162 |
+
7.2.9. Executing PROC_DFF pass (convert process syncs to FFs).
|
| 163 |
+
|
| 164 |
+
7.2.10. Executing PROC_MEMWR pass (convert process memory writes to cells).
|
| 165 |
+
|
| 166 |
+
7.2.11. Executing PROC_CLEAN pass (remove empty switches from decision trees).
|
| 167 |
+
Cleaned up 0 empty switches.
|
| 168 |
+
|
| 169 |
+
7.2.12. Executing OPT_EXPR pass (perform const folding).
|
| 170 |
+
Optimizing module person_classifier_sum_folded.
|
| 171 |
+
|
| 172 |
+
7.3. Executing OPT_EXPR pass (perform const folding).
|
| 173 |
+
Optimizing module person_classifier_sum_folded.
|
| 174 |
+
|
| 175 |
+
7.4. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 176 |
+
Finding unused cells or wires in module \person_classifier_sum_folded..
|
| 177 |
+
|
| 178 |
+
7.5. Executing CHECK pass (checking for obvious problems).
|
| 179 |
+
Checking module person_classifier_sum_folded...
|
| 180 |
+
Found and reported 0 problems.
|
| 181 |
+
|
| 182 |
+
7.6. Executing OPT pass (performing simple optimizations).
|
| 183 |
+
|
| 184 |
+
7.6.1. Executing OPT_EXPR pass (perform const folding).
|
| 185 |
+
Optimizing module person_classifier_sum_folded.
|
| 186 |
+
|
| 187 |
+
7.6.2. Executing OPT_MERGE pass (detect identical cells).
|
| 188 |
+
Finding identical cells in module `\person_classifier_sum_folded'.
|
| 189 |
+
Computing hashes of 40 cells of `\person_classifier_sum_folded'.
|
| 190 |
+
Finding duplicate cells in `\person_classifier_sum_folded'.
|
| 191 |
+
Removed a total of 0 cells.
|
| 192 |
+
|
| 193 |
+
7.6.3. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
|
| 194 |
+
Running muxtree optimizer on module \person_classifier_sum_folded..
|
| 195 |
+
Creating internal representation of mux trees.
|
| 196 |
+
No muxes found in this module.
|
| 197 |
+
Removed 0 multiplexer ports.
|
| 198 |
+
|
| 199 |
+
7.6.4. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
|
| 200 |
+
Optimizing cells in module \person_classifier_sum_folded.
|
| 201 |
+
Performed a total of 0 changes.
|
| 202 |
+
|
| 203 |
+
7.6.5. Executing OPT_MERGE pass (detect identical cells).
|
| 204 |
+
Finding identical cells in module `\person_classifier_sum_folded'.
|
| 205 |
+
Computing hashes of 40 cells of `\person_classifier_sum_folded'.
|
| 206 |
+
Finding duplicate cells in `\person_classifier_sum_folded'.
|
| 207 |
+
Removed a total of 0 cells.
|
| 208 |
+
|
| 209 |
+
7.6.6. Executing OPT_DFF pass (perform DFF optimizations).
|
| 210 |
+
|
| 211 |
+
7.6.7. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 212 |
+
Finding unused cells or wires in module \person_classifier_sum_folded..
|
| 213 |
+
|
| 214 |
+
7.6.8. Executing OPT_EXPR pass (perform const folding).
|
| 215 |
+
Optimizing module person_classifier_sum_folded.
|
| 216 |
+
|
| 217 |
+
7.6.9. Finished fast OPT passes. (There is nothing left to do.)
|
| 218 |
+
|
| 219 |
+
7.7. Executing FSM pass (extract and optimize FSM).
|
| 220 |
+
|
| 221 |
+
7.7.1. Executing FSM_DETECT pass (finding FSMs in design).
|
| 222 |
+
|
| 223 |
+
7.7.2. Executing FSM_EXTRACT pass (extracting FSM from design).
|
| 224 |
+
|
| 225 |
+
7.7.3. Executing FSM_OPT pass (simple optimizations of FSMs).
|
| 226 |
+
|
| 227 |
+
7.7.4. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 228 |
+
Finding unused cells or wires in module \person_classifier_sum_folded..
|
| 229 |
+
|
| 230 |
+
7.7.5. Executing FSM_OPT pass (simple optimizations of FSMs).
|
| 231 |
+
|
| 232 |
+
7.7.6. Executing FSM_RECODE pass (re-assigning FSM state encoding).
|
| 233 |
+
|
| 234 |
+
7.7.7. Executing FSM_INFO pass (dumping all available information on FSM cells).
|
| 235 |
+
|
| 236 |
+
7.7.8. Executing FSM_MAP pass (mapping FSMs to basic logic).
|
| 237 |
+
|
| 238 |
+
7.8. Executing OPT pass (performing simple optimizations).
|
| 239 |
+
|
| 240 |
+
7.8.1. Executing OPT_EXPR pass (perform const folding).
|
| 241 |
+
Optimizing module person_classifier_sum_folded.
|
| 242 |
+
|
| 243 |
+
7.8.2. Executing OPT_MERGE pass (detect identical cells).
|
| 244 |
+
Finding identical cells in module `\person_classifier_sum_folded'.
|
| 245 |
+
Computing hashes of 40 cells of `\person_classifier_sum_folded'.
|
| 246 |
+
Finding duplicate cells in `\person_classifier_sum_folded'.
|
| 247 |
+
Removed a total of 0 cells.
|
| 248 |
+
|
| 249 |
+
7.8.3. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
|
| 250 |
+
Running muxtree optimizer on module \person_classifier_sum_folded..
|
| 251 |
+
Creating internal representation of mux trees.
|
| 252 |
+
No muxes found in this module.
|
| 253 |
+
Removed 0 multiplexer ports.
|
| 254 |
+
|
| 255 |
+
7.8.4. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
|
| 256 |
+
Optimizing cells in module \person_classifier_sum_folded.
|
| 257 |
+
Performed a total of 0 changes.
|
| 258 |
+
|
| 259 |
+
7.8.5. Executing OPT_MERGE pass (detect identical cells).
|
| 260 |
+
Finding identical cells in module `\person_classifier_sum_folded'.
|
| 261 |
+
Computing hashes of 40 cells of `\person_classifier_sum_folded'.
|
| 262 |
+
Finding duplicate cells in `\person_classifier_sum_folded'.
|
| 263 |
+
Removed a total of 0 cells.
|
| 264 |
+
|
| 265 |
+
7.8.6. Executing OPT_DFF pass (perform DFF optimizations).
|
| 266 |
+
|
| 267 |
+
7.8.7. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 268 |
+
Finding unused cells or wires in module \person_classifier_sum_folded..
|
| 269 |
+
|
| 270 |
+
7.8.8. Executing OPT_EXPR pass (perform const folding).
|
| 271 |
+
Optimizing module person_classifier_sum_folded.
|
| 272 |
+
|
| 273 |
+
7.8.9. Finished fast OPT passes. (There is nothing left to do.)
|
| 274 |
+
|
| 275 |
+
7.9. Executing WREDUCE pass (reducing word size of cells).
|
| 276 |
+
Converting cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:17$1 ($add) from unsigned to signed.
|
| 277 |
+
Removed top 8 bits (of 16) from port A of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:17$1 ($add).
|
| 278 |
+
Removed top 8 bits (of 16) from port B of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:17$1 ($add).
|
| 279 |
+
Removed top 7 bits (of 16) from port Y of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:17$1 ($add).
|
| 280 |
+
Converting cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:17$2 ($add) from unsigned to signed.
|
| 281 |
+
Removed top 7 bits (of 16) from port A of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:17$2 ($add).
|
| 282 |
+
Removed top 8 bits (of 16) from port B of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:17$2 ($add).
|
| 283 |
+
Removed top 6 bits (of 16) from port Y of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:17$2 ($add).
|
| 284 |
+
Converting cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:17$3 ($add) from unsigned to signed.
|
| 285 |
+
Removed top 6 bits (of 16) from port A of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:17$3 ($add).
|
| 286 |
+
Removed top 8 bits (of 16) from port B of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:17$3 ($add).
|
| 287 |
+
Removed top 5 bits (of 16) from port Y of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:17$3 ($add).
|
| 288 |
+
Converting cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:17$4 ($add) from unsigned to signed.
|
| 289 |
+
Removed top 5 bits (of 16) from port A of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:17$4 ($add).
|
| 290 |
+
Removed top 8 bits (of 16) from port B of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:17$4 ($add).
|
| 291 |
+
Removed top 4 bits (of 16) from port Y of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:17$4 ($add).
|
| 292 |
+
Converting cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:17$5 ($add) from unsigned to signed.
|
| 293 |
+
Removed top 4 bits (of 16) from port A of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:17$5 ($add).
|
| 294 |
+
Removed top 8 bits (of 16) from port B of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:17$5 ($add).
|
| 295 |
+
Removed top 3 bits (of 16) from port Y of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:17$5 ($add).
|
| 296 |
+
Converting cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:17$6 ($add) from unsigned to signed.
|
| 297 |
+
Removed top 3 bits (of 16) from port A of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:17$6 ($add).
|
| 298 |
+
Removed top 8 bits (of 16) from port B of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:17$6 ($add).
|
| 299 |
+
Removed top 2 bits (of 16) from port Y of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:17$6 ($add).
|
| 300 |
+
Converting cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:17$7 ($add) from unsigned to signed.
|
| 301 |
+
Removed top 2 bits (of 16) from port A of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:17$7 ($add).
|
| 302 |
+
Removed top 8 bits (of 16) from port B of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:17$7 ($add).
|
| 303 |
+
Removed top 1 bits (of 16) from port Y of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:17$7 ($add).
|
| 304 |
+
Converting cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:17$8 ($add) from unsigned to signed.
|
| 305 |
+
Removed top 1 bits (of 16) from port A of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:17$8 ($add).
|
| 306 |
+
Removed top 8 bits (of 16) from port B of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:17$8 ($add).
|
| 307 |
+
Converting cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:24$20 ($add) from unsigned to signed.
|
| 308 |
+
Removed top 8 bits (of 16) from port A of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:24$20 ($add).
|
| 309 |
+
Removed top 8 bits (of 16) from port B of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:24$20 ($add).
|
| 310 |
+
Removed top 7 bits (of 16) from port Y of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:24$20 ($add).
|
| 311 |
+
Converting cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:24$21 ($add) from unsigned to signed.
|
| 312 |
+
Removed top 7 bits (of 16) from port A of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:24$21 ($add).
|
| 313 |
+
Removed top 8 bits (of 16) from port B of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:24$21 ($add).
|
| 314 |
+
Removed top 6 bits (of 16) from port Y of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:24$21 ($add).
|
| 315 |
+
Converting cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:24$22 ($add) from unsigned to signed.
|
| 316 |
+
Removed top 6 bits (of 16) from port A of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:24$22 ($add).
|
| 317 |
+
Removed top 8 bits (of 16) from port B of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:24$22 ($add).
|
| 318 |
+
Removed top 5 bits (of 16) from port Y of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:24$22 ($add).
|
| 319 |
+
Converting cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:24$23 ($add) from unsigned to signed.
|
| 320 |
+
Removed top 5 bits (of 16) from port A of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:24$23 ($add).
|
| 321 |
+
Removed top 8 bits (of 16) from port B of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:24$23 ($add).
|
| 322 |
+
Removed top 4 bits (of 16) from port Y of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:24$23 ($add).
|
| 323 |
+
Converting cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:24$24 ($add) from unsigned to signed.
|
| 324 |
+
Removed top 4 bits (of 16) from port A of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:24$24 ($add).
|
| 325 |
+
Removed top 8 bits (of 16) from port B of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:24$24 ($add).
|
| 326 |
+
Removed top 3 bits (of 16) from port Y of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:24$24 ($add).
|
| 327 |
+
Converting cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:24$25 ($add) from unsigned to signed.
|
| 328 |
+
Removed top 3 bits (of 16) from port A of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:24$25 ($add).
|
| 329 |
+
Removed top 8 bits (of 16) from port B of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:24$25 ($add).
|
| 330 |
+
Removed top 2 bits (of 16) from port Y of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:24$25 ($add).
|
| 331 |
+
Converting cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:24$26 ($add) from unsigned to signed.
|
| 332 |
+
Removed top 2 bits (of 16) from port A of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:24$26 ($add).
|
| 333 |
+
Removed top 8 bits (of 16) from port B of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:24$26 ($add).
|
| 334 |
+
Removed top 1 bits (of 16) from port Y of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:24$26 ($add).
|
| 335 |
+
Converting cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:24$27 ($add) from unsigned to signed.
|
| 336 |
+
Removed top 1 bits (of 16) from port A of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:24$27 ($add).
|
| 337 |
+
Removed top 8 bits (of 16) from port B of cell person_classifier_sum_folded.$add$person_classifier_sum_folded.v:24$27 ($add).
|
| 338 |
+
Removed top 7 bits (of 16) from port B of cell person_classifier_sum_folded.$gt$person_classifier_sum_folded.v:31$40 ($gt).
|
| 339 |
+
|
| 340 |
+
7.10. Executing PEEPOPT pass (run peephole optimizers).
|
| 341 |
+
|
| 342 |
+
7.11. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 343 |
+
Finding unused cells or wires in module \person_classifier_sum_folded..
|
| 344 |
+
|
| 345 |
+
7.12. Executing ALUMACC pass (create $alu and $macc cells).
|
| 346 |
+
Extracting $alu and $macc cells in module person_classifier_sum_folded:
|
| 347 |
+
creating $macc model for $sub$person_classifier_sum_folded.v:30$39 ($sub).
|
| 348 |
+
creating $macc model for $add$person_classifier_sum_folded.v:24$38 ($add).
|
| 349 |
+
creating $macc model for $add$person_classifier_sum_folded.v:24$37 ($add).
|
| 350 |
+
creating $macc model for $add$person_classifier_sum_folded.v:24$36 ($add).
|
| 351 |
+
creating $macc model for $add$person_classifier_sum_folded.v:24$35 ($add).
|
| 352 |
+
creating $macc model for $add$person_classifier_sum_folded.v:24$34 ($add).
|
| 353 |
+
creating $macc model for $add$person_classifier_sum_folded.v:24$33 ($add).
|
| 354 |
+
creating $macc model for $add$person_classifier_sum_folded.v:24$32 ($add).
|
| 355 |
+
creating $macc model for $add$person_classifier_sum_folded.v:24$31 ($add).
|
| 356 |
+
creating $macc model for $add$person_classifier_sum_folded.v:24$30 ($add).
|
| 357 |
+
creating $macc model for $add$person_classifier_sum_folded.v:24$29 ($add).
|
| 358 |
+
creating $macc model for $add$person_classifier_sum_folded.v:24$28 ($add).
|
| 359 |
+
creating $macc model for $add$person_classifier_sum_folded.v:24$27 ($add).
|
| 360 |
+
creating $macc model for $add$person_classifier_sum_folded.v:24$26 ($add).
|
| 361 |
+
creating $macc model for $add$person_classifier_sum_folded.v:24$25 ($add).
|
| 362 |
+
creating $macc model for $add$person_classifier_sum_folded.v:24$24 ($add).
|
| 363 |
+
creating $macc model for $add$person_classifier_sum_folded.v:24$23 ($add).
|
| 364 |
+
creating $macc model for $add$person_classifier_sum_folded.v:24$22 ($add).
|
| 365 |
+
creating $macc model for $add$person_classifier_sum_folded.v:24$21 ($add).
|
| 366 |
+
creating $macc model for $add$person_classifier_sum_folded.v:24$20 ($add).
|
| 367 |
+
creating $macc model for $add$person_classifier_sum_folded.v:17$19 ($add).
|
| 368 |
+
creating $macc model for $add$person_classifier_sum_folded.v:17$18 ($add).
|
| 369 |
+
creating $macc model for $add$person_classifier_sum_folded.v:17$17 ($add).
|
| 370 |
+
creating $macc model for $add$person_classifier_sum_folded.v:17$16 ($add).
|
| 371 |
+
creating $macc model for $add$person_classifier_sum_folded.v:17$15 ($add).
|
| 372 |
+
creating $macc model for $add$person_classifier_sum_folded.v:17$14 ($add).
|
| 373 |
+
creating $macc model for $add$person_classifier_sum_folded.v:17$13 ($add).
|
| 374 |
+
creating $macc model for $add$person_classifier_sum_folded.v:17$12 ($add).
|
| 375 |
+
creating $macc model for $add$person_classifier_sum_folded.v:17$11 ($add).
|
| 376 |
+
creating $macc model for $add$person_classifier_sum_folded.v:17$10 ($add).
|
| 377 |
+
creating $macc model for $add$person_classifier_sum_folded.v:17$9 ($add).
|
| 378 |
+
creating $macc model for $add$person_classifier_sum_folded.v:17$8 ($add).
|
| 379 |
+
creating $macc model for $add$person_classifier_sum_folded.v:17$7 ($add).
|
| 380 |
+
creating $macc model for $add$person_classifier_sum_folded.v:17$6 ($add).
|
| 381 |
+
creating $macc model for $add$person_classifier_sum_folded.v:17$5 ($add).
|
| 382 |
+
creating $macc model for $add$person_classifier_sum_folded.v:17$4 ($add).
|
| 383 |
+
creating $macc model for $add$person_classifier_sum_folded.v:17$3 ($add).
|
| 384 |
+
creating $macc model for $add$person_classifier_sum_folded.v:17$2 ($add).
|
| 385 |
+
creating $macc model for $add$person_classifier_sum_folded.v:17$1 ($add).
|
| 386 |
+
merging $macc model for $add$person_classifier_sum_folded.v:17$1 into $add$person_classifier_sum_folded.v:17$2.
|
| 387 |
+
merging $macc model for $add$person_classifier_sum_folded.v:17$2 into $add$person_classifier_sum_folded.v:17$3.
|
| 388 |
+
merging $macc model for $add$person_classifier_sum_folded.v:17$3 into $add$person_classifier_sum_folded.v:17$4.
|
| 389 |
+
merging $macc model for $add$person_classifier_sum_folded.v:17$4 into $add$person_classifier_sum_folded.v:17$5.
|
| 390 |
+
merging $macc model for $add$person_classifier_sum_folded.v:17$5 into $add$person_classifier_sum_folded.v:17$6.
|
| 391 |
+
merging $macc model for $add$person_classifier_sum_folded.v:17$6 into $add$person_classifier_sum_folded.v:17$7.
|
| 392 |
+
merging $macc model for $add$person_classifier_sum_folded.v:17$7 into $add$person_classifier_sum_folded.v:17$8.
|
| 393 |
+
merging $macc model for $add$person_classifier_sum_folded.v:17$8 into $add$person_classifier_sum_folded.v:17$9.
|
| 394 |
+
merging $macc model for $add$person_classifier_sum_folded.v:17$9 into $add$person_classifier_sum_folded.v:17$10.
|
| 395 |
+
merging $macc model for $add$person_classifier_sum_folded.v:17$10 into $add$person_classifier_sum_folded.v:17$11.
|
| 396 |
+
merging $macc model for $add$person_classifier_sum_folded.v:17$11 into $add$person_classifier_sum_folded.v:17$12.
|
| 397 |
+
merging $macc model for $add$person_classifier_sum_folded.v:17$12 into $add$person_classifier_sum_folded.v:17$13.
|
| 398 |
+
merging $macc model for $add$person_classifier_sum_folded.v:17$13 into $add$person_classifier_sum_folded.v:17$14.
|
| 399 |
+
merging $macc model for $add$person_classifier_sum_folded.v:17$14 into $add$person_classifier_sum_folded.v:17$15.
|
| 400 |
+
merging $macc model for $add$person_classifier_sum_folded.v:17$15 into $add$person_classifier_sum_folded.v:17$16.
|
| 401 |
+
merging $macc model for $add$person_classifier_sum_folded.v:17$16 into $add$person_classifier_sum_folded.v:17$17.
|
| 402 |
+
merging $macc model for $add$person_classifier_sum_folded.v:17$17 into $add$person_classifier_sum_folded.v:17$18.
|
| 403 |
+
merging $macc model for $add$person_classifier_sum_folded.v:17$18 into $add$person_classifier_sum_folded.v:17$19.
|
| 404 |
+
merging $macc model for $add$person_classifier_sum_folded.v:24$20 into $add$person_classifier_sum_folded.v:24$21.
|
| 405 |
+
merging $macc model for $add$person_classifier_sum_folded.v:24$21 into $add$person_classifier_sum_folded.v:24$22.
|
| 406 |
+
merging $macc model for $add$person_classifier_sum_folded.v:24$22 into $add$person_classifier_sum_folded.v:24$23.
|
| 407 |
+
merging $macc model for $add$person_classifier_sum_folded.v:24$23 into $add$person_classifier_sum_folded.v:24$24.
|
| 408 |
+
merging $macc model for $add$person_classifier_sum_folded.v:24$24 into $add$person_classifier_sum_folded.v:24$25.
|
| 409 |
+
merging $macc model for $add$person_classifier_sum_folded.v:24$25 into $add$person_classifier_sum_folded.v:24$26.
|
| 410 |
+
merging $macc model for $add$person_classifier_sum_folded.v:24$26 into $add$person_classifier_sum_folded.v:24$27.
|
| 411 |
+
merging $macc model for $add$person_classifier_sum_folded.v:24$27 into $add$person_classifier_sum_folded.v:24$28.
|
| 412 |
+
merging $macc model for $add$person_classifier_sum_folded.v:24$28 into $add$person_classifier_sum_folded.v:24$29.
|
| 413 |
+
merging $macc model for $add$person_classifier_sum_folded.v:24$29 into $add$person_classifier_sum_folded.v:24$30.
|
| 414 |
+
merging $macc model for $add$person_classifier_sum_folded.v:24$30 into $add$person_classifier_sum_folded.v:24$31.
|
| 415 |
+
merging $macc model for $add$person_classifier_sum_folded.v:24$31 into $add$person_classifier_sum_folded.v:24$32.
|
| 416 |
+
merging $macc model for $add$person_classifier_sum_folded.v:24$32 into $add$person_classifier_sum_folded.v:24$33.
|
| 417 |
+
merging $macc model for $add$person_classifier_sum_folded.v:24$33 into $add$person_classifier_sum_folded.v:24$34.
|
| 418 |
+
merging $macc model for $add$person_classifier_sum_folded.v:24$34 into $add$person_classifier_sum_folded.v:24$35.
|
| 419 |
+
merging $macc model for $add$person_classifier_sum_folded.v:24$35 into $add$person_classifier_sum_folded.v:24$36.
|
| 420 |
+
merging $macc model for $add$person_classifier_sum_folded.v:24$36 into $add$person_classifier_sum_folded.v:24$37.
|
| 421 |
+
merging $macc model for $add$person_classifier_sum_folded.v:24$37 into $add$person_classifier_sum_folded.v:24$38.
|
| 422 |
+
merging $macc model for $add$person_classifier_sum_folded.v:17$19 into $sub$person_classifier_sum_folded.v:30$39.
|
| 423 |
+
merging $macc model for $add$person_classifier_sum_folded.v:24$38 into $sub$person_classifier_sum_folded.v:30$39.
|
| 424 |
+
creating $macc cell for $sub$person_classifier_sum_folded.v:30$39: $auto$alumacc.cc:382:replace_macc$41
|
| 425 |
+
creating $alu model for $gt$person_classifier_sum_folded.v:31$40 ($gt): new $alu
|
| 426 |
+
creating $alu cell for $gt$person_classifier_sum_folded.v:31$40: $auto$alumacc.cc:512:replace_alu$43
|
| 427 |
+
created 1 $alu and 1 $macc cells.
|
| 428 |
+
|
| 429 |
+
7.13. Executing SHARE pass (SAT-based resource sharing).
|
| 430 |
+
|
| 431 |
+
7.14. Executing OPT pass (performing simple optimizations).
|
| 432 |
+
|
| 433 |
+
7.14.1. Executing OPT_EXPR pass (perform const folding).
|
| 434 |
+
Optimizing module person_classifier_sum_folded.
|
| 435 |
+
|
| 436 |
+
7.14.2. Executing OPT_MERGE pass (detect identical cells).
|
| 437 |
+
Finding identical cells in module `\person_classifier_sum_folded'.
|
| 438 |
+
Computing hashes of 45 cells of `\person_classifier_sum_folded'.
|
| 439 |
+
Finding duplicate cells in `\person_classifier_sum_folded'.
|
| 440 |
+
Removed a total of 0 cells.
|
| 441 |
+
|
| 442 |
+
7.14.3. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
|
| 443 |
+
Running muxtree optimizer on module \person_classifier_sum_folded..
|
| 444 |
+
Creating internal representation of mux trees.
|
| 445 |
+
No muxes found in this module.
|
| 446 |
+
Removed 0 multiplexer ports.
|
| 447 |
+
|
| 448 |
+
7.14.4. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
|
| 449 |
+
Optimizing cells in module \person_classifier_sum_folded.
|
| 450 |
+
Performed a total of 0 changes.
|
| 451 |
+
|
| 452 |
+
7.14.5. Executing OPT_MERGE pass (detect identical cells).
|
| 453 |
+
Finding identical cells in module `\person_classifier_sum_folded'.
|
| 454 |
+
Computing hashes of 45 cells of `\person_classifier_sum_folded'.
|
| 455 |
+
Finding duplicate cells in `\person_classifier_sum_folded'.
|
| 456 |
+
Removed a total of 0 cells.
|
| 457 |
+
|
| 458 |
+
7.14.6. Executing OPT_DFF pass (perform DFF optimizations).
|
| 459 |
+
|
| 460 |
+
7.14.7. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 461 |
+
Finding unused cells or wires in module \person_classifier_sum_folded..
|
| 462 |
+
Removed 38 unused cells and 39 unused wires.
|
| 463 |
+
<suppressed ~41 debug messages>
|
| 464 |
+
|
| 465 |
+
7.14.8. Executing OPT_EXPR pass (perform const folding).
|
| 466 |
+
Optimizing module person_classifier_sum_folded.
|
| 467 |
+
|
| 468 |
+
7.14.9. Rerunning OPT passes. (Maybe there is more to do..)
|
| 469 |
+
|
| 470 |
+
7.14.10. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
|
| 471 |
+
Running muxtree optimizer on module \person_classifier_sum_folded..
|
| 472 |
+
Creating internal representation of mux trees.
|
| 473 |
+
No muxes found in this module.
|
| 474 |
+
Removed 0 multiplexer ports.
|
| 475 |
+
|
| 476 |
+
7.14.11. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
|
| 477 |
+
Optimizing cells in module \person_classifier_sum_folded.
|
| 478 |
+
Performed a total of 0 changes.
|
| 479 |
+
|
| 480 |
+
7.14.12. Executing OPT_MERGE pass (detect identical cells).
|
| 481 |
+
Finding identical cells in module `\person_classifier_sum_folded'.
|
| 482 |
+
Computing hashes of 7 cells of `\person_classifier_sum_folded'.
|
| 483 |
+
Finding duplicate cells in `\person_classifier_sum_folded'.
|
| 484 |
+
Removed a total of 0 cells.
|
| 485 |
+
|
| 486 |
+
7.14.13. Executing OPT_DFF pass (perform DFF optimizations).
|
| 487 |
+
|
| 488 |
+
7.14.14. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 489 |
+
Finding unused cells or wires in module \person_classifier_sum_folded..
|
| 490 |
+
|
| 491 |
+
7.14.15. Executing OPT_EXPR pass (perform const folding).
|
| 492 |
+
Optimizing module person_classifier_sum_folded.
|
| 493 |
+
|
| 494 |
+
7.14.16. Finished fast OPT passes. (There is nothing left to do.)
|
| 495 |
+
|
| 496 |
+
7.15. Executing MEMORY pass.
|
| 497 |
+
|
| 498 |
+
7.15.1. Executing OPT_MEM pass (optimize memories).
|
| 499 |
+
Performed a total of 0 transformations.
|
| 500 |
+
|
| 501 |
+
7.15.2. Executing OPT_MEM_PRIORITY pass (removing unnecessary memory write priority relations).
|
| 502 |
+
Performed a total of 0 transformations.
|
| 503 |
+
|
| 504 |
+
7.15.3. Executing OPT_MEM_FEEDBACK pass (finding memory read-to-write feedback paths).
|
| 505 |
+
|
| 506 |
+
7.15.4. Executing MEMORY_BMUX2ROM pass (converting muxes to ROMs).
|
| 507 |
+
|
| 508 |
+
7.15.5. Executing MEMORY_DFF pass (merging $dff cells to $memrd).
|
| 509 |
+
|
| 510 |
+
7.15.6. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 511 |
+
Finding unused cells or wires in module \person_classifier_sum_folded..
|
| 512 |
+
|
| 513 |
+
7.15.7. Executing MEMORY_SHARE pass (consolidating $memrd/$memwr cells).
|
| 514 |
+
|
| 515 |
+
7.15.8. Executing OPT_MEM_WIDEN pass (optimize memories where all ports are wide).
|
| 516 |
+
Performed a total of 0 transformations.
|
| 517 |
+
|
| 518 |
+
7.15.9. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 519 |
+
Finding unused cells or wires in module \person_classifier_sum_folded..
|
| 520 |
+
|
| 521 |
+
7.15.10. Executing MEMORY_COLLECT pass (generating $mem cells).
|
| 522 |
+
|
| 523 |
+
7.16. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 524 |
+
Finding unused cells or wires in module \person_classifier_sum_folded..
|
| 525 |
+
|
| 526 |
+
7.17. Executing OPT pass (performing simple optimizations).
|
| 527 |
+
|
| 528 |
+
7.17.1. Executing OPT_EXPR pass (perform const folding).
|
| 529 |
+
Optimizing module person_classifier_sum_folded.
|
| 530 |
+
<suppressed ~1 debug messages>
|
| 531 |
+
|
| 532 |
+
7.17.2. Executing OPT_MERGE pass (detect identical cells).
|
| 533 |
+
Finding identical cells in module `\person_classifier_sum_folded'.
|
| 534 |
+
Computing hashes of 8 cells of `\person_classifier_sum_folded'.
|
| 535 |
+
Finding duplicate cells in `\person_classifier_sum_folded'.
|
| 536 |
+
Removed a total of 0 cells.
|
| 537 |
+
|
| 538 |
+
7.17.3. Executing OPT_DFF pass (perform DFF optimizations).
|
| 539 |
+
|
| 540 |
+
7.17.4. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 541 |
+
Finding unused cells or wires in module \person_classifier_sum_folded..
|
| 542 |
+
Removed 0 unused cells and 1 unused wires.
|
| 543 |
+
<suppressed ~1 debug messages>
|
| 544 |
+
|
| 545 |
+
7.17.5. Finished fast OPT passes.
|
| 546 |
+
|
| 547 |
+
7.18. Executing MEMORY_MAP pass (converting memories to logic and flip-flops).
|
| 548 |
+
|
| 549 |
+
7.19. Executing OPT pass (performing simple optimizations).
|
| 550 |
+
|
| 551 |
+
7.19.1. Executing OPT_EXPR pass (perform const folding).
|
| 552 |
+
Optimizing module person_classifier_sum_folded.
|
| 553 |
+
|
| 554 |
+
7.19.2. Executing OPT_MERGE pass (detect identical cells).
|
| 555 |
+
Finding identical cells in module `\person_classifier_sum_folded'.
|
| 556 |
+
Computing hashes of 8 cells of `\person_classifier_sum_folded'.
|
| 557 |
+
Finding duplicate cells in `\person_classifier_sum_folded'.
|
| 558 |
+
Removed a total of 0 cells.
|
| 559 |
+
|
| 560 |
+
7.19.3. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
|
| 561 |
+
Running muxtree optimizer on module \person_classifier_sum_folded..
|
| 562 |
+
Creating internal representation of mux trees.
|
| 563 |
+
No muxes found in this module.
|
| 564 |
+
Removed 0 multiplexer ports.
|
| 565 |
+
|
| 566 |
+
7.19.4. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
|
| 567 |
+
Optimizing cells in module \person_classifier_sum_folded.
|
| 568 |
+
Performed a total of 0 changes.
|
| 569 |
+
|
| 570 |
+
7.19.5. Executing OPT_MERGE pass (detect identical cells).
|
| 571 |
+
Finding identical cells in module `\person_classifier_sum_folded'.
|
| 572 |
+
Computing hashes of 8 cells of `\person_classifier_sum_folded'.
|
| 573 |
+
Finding duplicate cells in `\person_classifier_sum_folded'.
|
| 574 |
+
Removed a total of 0 cells.
|
| 575 |
+
|
| 576 |
+
7.19.6. Executing OPT_SHARE pass.
|
| 577 |
+
|
| 578 |
+
7.19.7. Executing OPT_DFF pass (perform DFF optimizations).
|
| 579 |
+
|
| 580 |
+
7.19.8. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 581 |
+
Finding unused cells or wires in module \person_classifier_sum_folded..
|
| 582 |
+
|
| 583 |
+
7.19.9. Executing OPT_EXPR pass (perform const folding).
|
| 584 |
+
Optimizing module person_classifier_sum_folded.
|
| 585 |
+
|
| 586 |
+
7.19.10. Finished fast OPT passes. (There is nothing left to do.)
|
| 587 |
+
|
| 588 |
+
7.20. Executing TECHMAP pass (map to technology primitives).
|
| 589 |
+
|
| 590 |
+
7.20.1. Executing Verilog-2005 frontend: D:\oss-cad-suite\bin\../share/yosys/techmap.v
|
| 591 |
+
Parsing Verilog input from `D:\oss-cad-suite\bin\../share/yosys/techmap.v' to AST representation.
|
| 592 |
+
Generating RTLIL representation for module `\_90_simplemap_bool_ops'.
|
| 593 |
+
Generating RTLIL representation for module `\_90_simplemap_reduce_ops'.
|
| 594 |
+
Generating RTLIL representation for module `\_90_simplemap_logic_ops'.
|
| 595 |
+
Generating RTLIL representation for module `\_90_simplemap_compare_ops'.
|
| 596 |
+
Generating RTLIL representation for module `\_90_simplemap_various'.
|
| 597 |
+
Generating RTLIL representation for module `\_90_simplemap_registers'.
|
| 598 |
+
Generating RTLIL representation for module `\_90_shift_ops_shr_shl_sshl_sshr'.
|
| 599 |
+
Generating RTLIL representation for module `\_90_shift_shiftx'.
|
| 600 |
+
Generating RTLIL representation for module `\_90_fa'.
|
| 601 |
+
Generating RTLIL representation for module `\_90_lcu_brent_kung'.
|
| 602 |
+
Generating RTLIL representation for module `\_90_alu'.
|
| 603 |
+
Generating RTLIL representation for module `\_90_macc'.
|
| 604 |
+
Generating RTLIL representation for module `\_90_alumacc'.
|
| 605 |
+
Generating RTLIL representation for module `$__div_mod_u'.
|
| 606 |
+
Generating RTLIL representation for module `$__div_mod_trunc'.
|
| 607 |
+
Generating RTLIL representation for module `\_90_div'.
|
| 608 |
+
Generating RTLIL representation for module `\_90_mod'.
|
| 609 |
+
Generating RTLIL representation for module `$__div_mod_floor'.
|
| 610 |
+
Generating RTLIL representation for module `\_90_divfloor'.
|
| 611 |
+
Generating RTLIL representation for module `\_90_modfloor'.
|
| 612 |
+
Generating RTLIL representation for module `\_90_pow'.
|
| 613 |
+
Generating RTLIL representation for module `\_90_pmux'.
|
| 614 |
+
Generating RTLIL representation for module `\_90_demux'.
|
| 615 |
+
Generating RTLIL representation for module `\_90_lut'.
|
| 616 |
+
Generating RTLIL representation for module `$connect'.
|
| 617 |
+
Generating RTLIL representation for module `$input_port'.
|
| 618 |
+
Successfully finished Verilog frontend.
|
| 619 |
+
|
| 620 |
+
7.20.2. Continuing TECHMAP pass.
|
| 621 |
+
Using extmapper simplemap for cells of type $not.
|
| 622 |
+
Using extmapper simplemap for cells of type $or.
|
| 623 |
+
Using extmapper simplemap for cells of type $reduce_and.
|
| 624 |
+
Using extmapper simplemap for cells of type $xor.
|
| 625 |
+
Using template $paramod$43e70758bb00098e9c7eaaa1c0dec4ba5bd8b1ee\_90_alu for cells of type $alu.
|
| 626 |
+
Using extmapper maccmap for cells of type $macc_v2.
|
| 627 |
+
add \f00 (8 bits, signed)
|
| 628 |
+
sub \f20 (8 bits, signed)
|
| 629 |
+
add { \f19 [7] \f19 [7] \f19 [7] \f19 [7] \f19 [7] \f19 [7] \f19 [7] \f19 [7] \f19 } (16 bits, unsigned)
|
| 630 |
+
add { \f18 [7] \f18 [7] \f18 [7] \f18 [7] \f18 [7] \f18 [7] \f18 [7] \f18 [7] \f18 } (16 bits, unsigned)
|
| 631 |
+
add { \f17 [7] \f17 [7] \f17 [7] \f17 [7] \f17 [7] \f17 [7] \f17 [7] \f17 [7] \f17 } (16 bits, unsigned)
|
| 632 |
+
add { \f16 [7] \f16 [7] \f16 [7] \f16 [7] \f16 [7] \f16 [7] \f16 [7] \f16 [7] \f16 } (16 bits, unsigned)
|
| 633 |
+
add { \f15 [7] \f15 [7] \f15 [7] \f15 [7] \f15 [7] \f15 [7] \f15 [7] \f15 [7] \f15 } (16 bits, unsigned)
|
| 634 |
+
add { \f14 [7] \f14 [7] \f14 [7] \f14 [7] \f14 [7] \f14 [7] \f14 [7] \f14 [7] \f14 } (16 bits, unsigned)
|
| 635 |
+
add { \f13 [7] \f13 [7] \f13 [7] \f13 [7] \f13 [7] \f13 [7] \f13 [7] \f13 [7] \f13 } (16 bits, unsigned)
|
| 636 |
+
add { \f12 [7] \f12 [7] \f12 [7] \f12 [7] \f12 [7] \f12 [7] \f12 [7] \f12 [7] \f12 } (16 bits, unsigned)
|
| 637 |
+
add { \f11 [7] \f11 [7] \f11 [7] \f11 [7] \f11 [7] \f11 [7] \f11 [7] \f11 [7] \f11 } (16 bits, unsigned)
|
| 638 |
+
add { \f10 [7] \f10 [7] \f10 [7] \f10 [7] \f10 [7] \f10 [7] \f10 [7] \f10 [7] \f10 } (16 bits, unsigned)
|
| 639 |
+
add { \f09 [7] \f09 [7] \f09 [7] \f09 [7] \f09 [7] \f09 [7] \f09 [7] \f09 [7] \f09 } (16 bits, unsigned)
|
| 640 |
+
add \f08 (8 bits, signed)
|
| 641 |
+
add \f07 (8 bits, signed)
|
| 642 |
+
add \f06 (8 bits, signed)
|
| 643 |
+
add \f05 (8 bits, signed)
|
| 644 |
+
add \f04 (8 bits, signed)
|
| 645 |
+
add \f03 (8 bits, signed)
|
| 646 |
+
add \f02 (8 bits, signed)
|
| 647 |
+
add \f01 (8 bits, signed)
|
| 648 |
+
sub { \f39 [7] \f39 [7] \f39 [7] \f39 [7] \f39 [7] \f39 [7] \f39 [7] \f39 [7] \f39 } (16 bits, unsigned)
|
| 649 |
+
sub { \f38 [7] \f38 [7] \f38 [7] \f38 [7] \f38 [7] \f38 [7] \f38 [7] \f38 [7] \f38 } (16 bits, unsigned)
|
| 650 |
+
sub { \f37 [7] \f37 [7] \f37 [7] \f37 [7] \f37 [7] \f37 [7] \f37 [7] \f37 [7] \f37 } (16 bits, unsigned)
|
| 651 |
+
sub { \f36 [7] \f36 [7] \f36 [7] \f36 [7] \f36 [7] \f36 [7] \f36 [7] \f36 [7] \f36 } (16 bits, unsigned)
|
| 652 |
+
sub { \f35 [7] \f35 [7] \f35 [7] \f35 [7] \f35 [7] \f35 [7] \f35 [7] \f35 [7] \f35 } (16 bits, unsigned)
|
| 653 |
+
sub { \f34 [7] \f34 [7] \f34 [7] \f34 [7] \f34 [7] \f34 [7] \f34 [7] \f34 [7] \f34 } (16 bits, unsigned)
|
| 654 |
+
sub { \f33 [7] \f33 [7] \f33 [7] \f33 [7] \f33 [7] \f33 [7] \f33 [7] \f33 [7] \f33 } (16 bits, unsigned)
|
| 655 |
+
sub { \f32 [7] \f32 [7] \f32 [7] \f32 [7] \f32 [7] \f32 [7] \f32 [7] \f32 [7] \f32 } (16 bits, unsigned)
|
| 656 |
+
sub { \f31 [7] \f31 [7] \f31 [7] \f31 [7] \f31 [7] \f31 [7] \f31 [7] \f31 [7] \f31 } (16 bits, unsigned)
|
| 657 |
+
sub { \f30 [7] \f30 [7] \f30 [7] \f30 [7] \f30 [7] \f30 [7] \f30 [7] \f30 [7] \f30 } (16 bits, unsigned)
|
| 658 |
+
sub { \f29 [7] \f29 [7] \f29 [7] \f29 [7] \f29 [7] \f29 [7] \f29 [7] \f29 [7] \f29 } (16 bits, unsigned)
|
| 659 |
+
sub \f28 (8 bits, signed)
|
| 660 |
+
sub \f27 (8 bits, signed)
|
| 661 |
+
sub \f26 (8 bits, signed)
|
| 662 |
+
sub \f25 (8 bits, signed)
|
| 663 |
+
sub \f24 (8 bits, signed)
|
| 664 |
+
sub \f23 (8 bits, signed)
|
| 665 |
+
sub \f22 (8 bits, signed)
|
| 666 |
+
sub \f21 (8 bits, signed)
|
| 667 |
+
packed 20 (2) bits / 1 words into adder tree
|
| 668 |
+
Using template $paramod\_90_fa\WIDTH=32'00000000000000000000000000010000 for cells of type $fa.
|
| 669 |
+
Using template $paramod$6df0329addda9228fcc2546de2aaf14ad26c98e1\_90_alu for cells of type $alu.
|
| 670 |
+
Using template $paramod\_90_fa\WIDTH=32'00000000000000000000000000001111 for cells of type $fa.
|
| 671 |
+
Using template $paramod\_90_lcu_brent_kung\WIDTH=32'00000000000000000000000000001111 for cells of type $lcu.
|
| 672 |
+
Using extmapper simplemap for cells of type $pos.
|
| 673 |
+
Using extmapper simplemap for cells of type $mux.
|
| 674 |
+
Using extmapper simplemap for cells of type $and.
|
| 675 |
+
Using template $paramod\_90_lcu_brent_kung\WIDTH=32'00000000000000000000000000010000 for cells of type $lcu.
|
| 676 |
+
No more expansions possible.
|
| 677 |
+
<suppressed ~782 debug messages>
|
| 678 |
+
|
| 679 |
+
7.21. Executing OPT pass (performing simple optimizations).
|
| 680 |
+
|
| 681 |
+
7.21.1. Executing OPT_EXPR pass (perform const folding).
|
| 682 |
+
Optimizing module person_classifier_sum_folded.
|
| 683 |
+
<suppressed ~266 debug messages>
|
| 684 |
+
|
| 685 |
+
7.21.2. Executing OPT_MERGE pass (detect identical cells).
|
| 686 |
+
Finding identical cells in module `\person_classifier_sum_folded'.
|
| 687 |
+
Computing hashes of 3497 cells of `\person_classifier_sum_folded'.
|
| 688 |
+
Finding duplicate cells in `\person_classifier_sum_folded'.
|
| 689 |
+
Computing hashes of 3241 cells of `\person_classifier_sum_folded'.
|
| 690 |
+
Finding duplicate cells in `\person_classifier_sum_folded'.
|
| 691 |
+
Computing hashes of 3033 cells of `\person_classifier_sum_folded'.
|
| 692 |
+
Finding duplicate cells in `\person_classifier_sum_folded'.
|
| 693 |
+
Computing hashes of 2873 cells of `\person_classifier_sum_folded'.
|
| 694 |
+
Finding duplicate cells in `\person_classifier_sum_folded'.
|
| 695 |
+
Computing hashes of 2761 cells of `\person_classifier_sum_folded'.
|
| 696 |
+
Finding duplicate cells in `\person_classifier_sum_folded'.
|
| 697 |
+
Computing hashes of 2635 cells of `\person_classifier_sum_folded'.
|
| 698 |
+
Finding duplicate cells in `\person_classifier_sum_folded'.
|
| 699 |
+
Computing hashes of 2537 cells of `\person_classifier_sum_folded'.
|
| 700 |
+
Finding duplicate cells in `\person_classifier_sum_folded'.
|
| 701 |
+
Computing hashes of 2478 cells of `\person_classifier_sum_folded'.
|
| 702 |
+
Finding duplicate cells in `\person_classifier_sum_folded'.
|
| 703 |
+
Computing hashes of 2406 cells of `\person_classifier_sum_folded'.
|
| 704 |
+
Finding duplicate cells in `\person_classifier_sum_folded'.
|
| 705 |
+
Computing hashes of 2346 cells of `\person_classifier_sum_folded'.
|
| 706 |
+
Finding duplicate cells in `\person_classifier_sum_folded'.
|
| 707 |
+
Computing hashes of 2312 cells of `\person_classifier_sum_folded'.
|
| 708 |
+
Finding duplicate cells in `\person_classifier_sum_folded'.
|
| 709 |
+
Computing hashes of 2272 cells of `\person_classifier_sum_folded'.
|
| 710 |
+
Finding duplicate cells in `\person_classifier_sum_folded'.
|
| 711 |
+
Computing hashes of 2237 cells of `\person_classifier_sum_folded'.
|
| 712 |
+
Finding duplicate cells in `\person_classifier_sum_folded'.
|
| 713 |
+
Computing hashes of 2222 cells of `\person_classifier_sum_folded'.
|
| 714 |
+
Finding duplicate cells in `\person_classifier_sum_folded'.
|
| 715 |
+
Computing hashes of 2206 cells of `\person_classifier_sum_folded'.
|
| 716 |
+
Finding duplicate cells in `\person_classifier_sum_folded'.
|
| 717 |
+
Computing hashes of 2190 cells of `\person_classifier_sum_folded'.
|
| 718 |
+
Finding duplicate cells in `\person_classifier_sum_folded'.
|
| 719 |
+
Computing hashes of 2182 cells of `\person_classifier_sum_folded'.
|
| 720 |
+
Finding duplicate cells in `\person_classifier_sum_folded'.
|
| 721 |
+
Computing hashes of 2170 cells of `\person_classifier_sum_folded'.
|
| 722 |
+
Finding duplicate cells in `\person_classifier_sum_folded'.
|
| 723 |
+
Computing hashes of 2158 cells of `\person_classifier_sum_folded'.
|
| 724 |
+
Finding duplicate cells in `\person_classifier_sum_folded'.
|
| 725 |
+
Computing hashes of 2152 cells of `\person_classifier_sum_folded'.
|
| 726 |
+
Finding duplicate cells in `\person_classifier_sum_folded'.
|
| 727 |
+
Computing hashes of 2148 cells of `\person_classifier_sum_folded'.
|
| 728 |
+
Finding duplicate cells in `\person_classifier_sum_folded'.
|
| 729 |
+
Computing hashes of 2144 cells of `\person_classifier_sum_folded'.
|
| 730 |
+
Finding duplicate cells in `\person_classifier_sum_folded'.
|
| 731 |
+
Computing hashes of 2142 cells of `\person_classifier_sum_folded'.
|
| 732 |
+
Finding duplicate cells in `\person_classifier_sum_folded'.
|
| 733 |
+
Computing hashes of 2140 cells of `\person_classifier_sum_folded'.
|
| 734 |
+
Finding duplicate cells in `\person_classifier_sum_folded'.
|
| 735 |
+
Computing hashes of 2138 cells of `\person_classifier_sum_folded'.
|
| 736 |
+
Finding duplicate cells in `\person_classifier_sum_folded'.
|
| 737 |
+
Computing hashes of 2137 cells of `\person_classifier_sum_folded'.
|
| 738 |
+
Finding duplicate cells in `\person_classifier_sum_folded'.
|
| 739 |
+
<suppressed ~4080 debug messages>
|
| 740 |
+
Removed a total of 1360 cells.
|
| 741 |
+
|
| 742 |
+
7.21.3. Executing OPT_DFF pass (perform DFF optimizations).
|
| 743 |
+
|
| 744 |
+
7.21.4. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 745 |
+
Finding unused cells or wires in module \person_classifier_sum_folded..
|
| 746 |
+
Removed 55 unused cells and 501 unused wires.
|
| 747 |
+
<suppressed ~56 debug messages>
|
| 748 |
+
|
| 749 |
+
7.21.5. Finished fast OPT passes.
|
| 750 |
+
|
| 751 |
+
7.22. Executing ABC pass (technology mapping using ABC).
|
| 752 |
+
|
| 753 |
+
7.22.1. Extracting gate netlist of module `\person_classifier_sum_folded' to `<abc-temp-dir>/input.blif'..
|
| 754 |
+
|
| 755 |
+
7.22.1.1. Executed ABC.
|
| 756 |
+
Extracted 2082 gates and 2402 wires to a netlist network with 320 inputs and 1 outputs.
|
| 757 |
+
Running ABC script: <abc-temp-dir>/abc.script
|
| 758 |
+
ABC: ======== ABC command line "source <abc-temp-dir>/abc.script"
|
| 759 |
+
ABC: + read_blif <abc-temp-dir>/input.blif
|
| 760 |
+
ABC: + read_library <abc-temp-dir>/stdcells.genlib
|
| 761 |
+
ABC: + strash
|
| 762 |
+
ABC: + &get -n
|
| 763 |
+
ABC: + &fraig -x
|
| 764 |
+
ABC: + &put
|
| 765 |
+
ABC: + scorr
|
| 766 |
+
ABC: Warning: The network is combinational (run "fraig" or "fraig_sweep").
|
| 767 |
+
ABC: + dc2
|
| 768 |
+
ABC: + dretime
|
| 769 |
+
ABC: + strash
|
| 770 |
+
ABC: + &get -n
|
| 771 |
+
ABC: + &dch -f
|
| 772 |
+
ABC: + &nf
|
| 773 |
+
ABC: + &put
|
| 774 |
+
ABC: + write_blif <abc-temp-dir>/output.blif
|
| 775 |
+
|
| 776 |
+
7.22.1.2. Re-integrating ABC results.
|
| 777 |
+
ABC RESULTS: AND cells: 106
|
| 778 |
+
ABC RESULTS: ANDNOT cells: 50
|
| 779 |
+
ABC RESULTS: MUX cells: 16
|
| 780 |
+
ABC RESULTS: NAND cells: 714
|
| 781 |
+
ABC RESULTS: NOR cells: 39
|
| 782 |
+
ABC RESULTS: NOT cells: 3
|
| 783 |
+
ABC RESULTS: OR cells: 187
|
| 784 |
+
ABC RESULTS: ORNOT cells: 12
|
| 785 |
+
ABC RESULTS: XNOR cells: 204
|
| 786 |
+
ABC RESULTS: XOR cells: 481
|
| 787 |
+
ABC RESULTS: internal signals: 2081
|
| 788 |
+
ABC RESULTS: input signals: 320
|
| 789 |
+
ABC RESULTS: output signals: 1
|
| 790 |
+
Removing temp directory.
|
| 791 |
+
Removing global temp directory.
|
| 792 |
+
|
| 793 |
+
7.23. Executing OPT pass (performing simple optimizations).
|
| 794 |
+
|
| 795 |
+
7.23.1. Executing OPT_EXPR pass (perform const folding).
|
| 796 |
+
Optimizing module person_classifier_sum_folded.
|
| 797 |
+
|
| 798 |
+
7.23.2. Executing OPT_MERGE pass (detect identical cells).
|
| 799 |
+
Finding identical cells in module `\person_classifier_sum_folded'.
|
| 800 |
+
Computing hashes of 1812 cells of `\person_classifier_sum_folded'.
|
| 801 |
+
Finding duplicate cells in `\person_classifier_sum_folded'.
|
| 802 |
+
Removed a total of 0 cells.
|
| 803 |
+
|
| 804 |
+
7.23.3. Executing OPT_DFF pass (perform DFF optimizations).
|
| 805 |
+
|
| 806 |
+
7.23.4. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 807 |
+
Finding unused cells or wires in module \person_classifier_sum_folded..
|
| 808 |
+
Removed 0 unused cells and 605 unused wires.
|
| 809 |
+
<suppressed ~2 debug messages>
|
| 810 |
+
|
| 811 |
+
7.23.5. Finished fast OPT passes.
|
| 812 |
+
|
| 813 |
+
7.24. Executing HIERARCHY pass (managing design hierarchy).
|
| 814 |
+
Attribute `top' found on module `person_classifier_sum_folded'. Setting top module to person_classifier_sum_folded.
|
| 815 |
+
|
| 816 |
+
7.24.1. Analyzing design hierarchy..
|
| 817 |
+
Top module: \person_classifier_sum_folded
|
| 818 |
+
|
| 819 |
+
7.24.2. Analyzing design hierarchy..
|
| 820 |
+
Top module: \person_classifier_sum_folded
|
| 821 |
+
Removed 0 unused modules.
|
| 822 |
+
|
| 823 |
+
7.25. Printing statistics.
|
| 824 |
+
|
| 825 |
+
=== person_classifier_sum_folded ===
|
| 826 |
+
|
| 827 |
+
+----------Local Count, excluding submodules.
|
| 828 |
+
|
|
| 829 |
+
1852 wires
|
| 830 |
+
2132 wire bits
|
| 831 |
+
41 public wires
|
| 832 |
+
321 public wire bits
|
| 833 |
+
41 ports
|
| 834 |
+
321 port bits
|
| 835 |
+
1812 cells
|
| 836 |
+
50 $_ANDNOT_
|
| 837 |
+
106 $_AND_
|
| 838 |
+
16 $_MUX_
|
| 839 |
+
714 $_NAND_
|
| 840 |
+
39 $_NOR_
|
| 841 |
+
3 $_NOT_
|
| 842 |
+
12 $_ORNOT_
|
| 843 |
+
187 $_OR_
|
| 844 |
+
204 $_XNOR_
|
| 845 |
+
481 $_XOR_
|
| 846 |
+
|
| 847 |
+
7.26. Executing CHECK pass (checking for obvious problems).
|
| 848 |
+
Checking module person_classifier_sum_folded...
|
| 849 |
+
Found and reported 0 problems.
|
| 850 |
+
|
| 851 |
+
8. Executing ABC pass (technology mapping using ABC).
|
| 852 |
+
|
| 853 |
+
8.1. Extracting gate netlist of module `\person_classifier_sum_folded' to `<abc-temp-dir>/input.blif'..
|
| 854 |
+
|
| 855 |
+
8.1.1. Executed ABC.
|
| 856 |
+
Extracted 1812 gates and 2132 wires to a netlist network with 320 inputs and 1 outputs.
|
| 857 |
+
Running ABC script: <abc-temp-dir>/abc.script
|
| 858 |
+
ABC: ======== ABC command line "source <abc-temp-dir>/abc.script"
|
| 859 |
+
ABC: + read_blif <abc-temp-dir>/input.blif
|
| 860 |
+
ABC: + read_library <abc-temp-dir>/stdcells.genlib
|
| 861 |
+
ABC: + strash
|
| 862 |
+
ABC: + &get -n
|
| 863 |
+
ABC: + &fraig -x
|
| 864 |
+
ABC: + &put
|
| 865 |
+
ABC: + scorr
|
| 866 |
+
ABC: Warning: The network is combinational (run "fraig" or "fraig_sweep").
|
| 867 |
+
ABC: + dc2
|
| 868 |
+
ABC: + dretime
|
| 869 |
+
ABC: + strash
|
| 870 |
+
ABC: + &get -n
|
| 871 |
+
ABC: + &dch -f
|
| 872 |
+
ABC: + &nf
|
| 873 |
+
ABC: + &put
|
| 874 |
+
ABC: + write_blif <abc-temp-dir>/output.blif
|
| 875 |
+
|
| 876 |
+
8.1.2. Re-integrating ABC results.
|
| 877 |
+
ABC RESULTS: AND cells: 1133
|
| 878 |
+
ABC RESULTS: NOT cells: 1281
|
| 879 |
+
ABC RESULTS: XOR cells: 715
|
| 880 |
+
ABC RESULTS: internal signals: 1811
|
| 881 |
+
ABC RESULTS: input signals: 320
|
| 882 |
+
ABC RESULTS: output signals: 1
|
| 883 |
+
Removing temp directory.
|
| 884 |
+
Removing global temp directory.
|
| 885 |
+
|
| 886 |
+
9. Executing OPT_CLEAN pass (remove unused cells and wires).
|
| 887 |
+
Finding unused cells or wires in module \person_classifier_sum_folded..
|
| 888 |
+
Removed 0 unused cells and 2132 unused wires.
|
| 889 |
+
<suppressed ~1 debug messages>
|
| 890 |
+
|
| 891 |
+
10. Printing statistics.
|
| 892 |
+
|
| 893 |
+
=== person_classifier_sum_folded ===
|
| 894 |
+
|
| 895 |
+
+----------Local Count, excluding submodules.
|
| 896 |
+
|
|
| 897 |
+
3169 wires
|
| 898 |
+
3449 wire bits
|
| 899 |
+
41 public wires
|
| 900 |
+
321 public wire bits
|
| 901 |
+
41 ports
|
| 902 |
+
321 port bits
|
| 903 |
+
3129 cells
|
| 904 |
+
1133 $_AND_
|
| 905 |
+
1281 $_NOT_
|
| 906 |
+
715 $_XOR_
|
| 907 |
+
|
| 908 |
+
End of script. Logfile hash: efb2141bd3
|
| 909 |
+
Yosys 0.63+222 (git sha1 a4b6a8c58-dirty, x86_64-w64-mingw32-g++ 13.2.1 -O3)
|
| 910 |
+
Time spent: 2% 22x opt_expr (0 sec), 2% 20x opt_clean (0 sec), ...
|
stage_5b/synth_sum_folded.ys
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
read_verilog person_classifier_sum_folded.v
|
| 2 |
+
hierarchy -top person_classifier_sum_folded
|
| 3 |
+
proc
|
| 4 |
+
opt
|
| 5 |
+
flatten
|
| 6 |
+
opt_clean
|
| 7 |
+
synth -top person_classifier_sum_folded
|
| 8 |
+
abc -g AND,XOR
|
| 9 |
+
opt_clean
|
| 10 |
+
stat
|
stage_5b/synthesized.v
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
stage_5b/synthesized_folded.v
ADDED
|
@@ -0,0 +1,1943 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/* Generated by Yosys 0.63+222 (git sha1 a4b6a8c58-dirty, x86_64-w64-mingw32-g++ 13.2.1 -O3) */
|
| 2 |
+
|
| 3 |
+
(* top = 1 *)
|
| 4 |
+
(* src = "person_classifier_popcount_folded.v:6.1-64.10" *)
|
| 5 |
+
module person_classifier_popcount_folded(f00, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20
|
| 6 |
+
, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, person_present);
|
| 7 |
+
(* src = "person_classifier_popcount_folded.v:7.25-7.28" *)
|
| 8 |
+
input [7:0] f00;
|
| 9 |
+
wire [7:0] f00;
|
| 10 |
+
(* src = "person_classifier_popcount_folded.v:7.30-7.33" *)
|
| 11 |
+
input [7:0] f01;
|
| 12 |
+
wire [7:0] f01;
|
| 13 |
+
(* src = "person_classifier_popcount_folded.v:7.35-7.38" *)
|
| 14 |
+
input [7:0] f02;
|
| 15 |
+
wire [7:0] f02;
|
| 16 |
+
(* src = "person_classifier_popcount_folded.v:7.40-7.43" *)
|
| 17 |
+
input [7:0] f03;
|
| 18 |
+
wire [7:0] f03;
|
| 19 |
+
(* src = "person_classifier_popcount_folded.v:7.45-7.48" *)
|
| 20 |
+
input [7:0] f04;
|
| 21 |
+
wire [7:0] f04;
|
| 22 |
+
(* src = "person_classifier_popcount_folded.v:7.50-7.53" *)
|
| 23 |
+
input [7:0] f05;
|
| 24 |
+
wire [7:0] f05;
|
| 25 |
+
(* src = "person_classifier_popcount_folded.v:7.55-7.58" *)
|
| 26 |
+
input [7:0] f06;
|
| 27 |
+
wire [7:0] f06;
|
| 28 |
+
(* src = "person_classifier_popcount_folded.v:7.60-7.63" *)
|
| 29 |
+
input [7:0] f07;
|
| 30 |
+
wire [7:0] f07;
|
| 31 |
+
(* src = "person_classifier_popcount_folded.v:7.65-7.68" *)
|
| 32 |
+
input [7:0] f08;
|
| 33 |
+
wire [7:0] f08;
|
| 34 |
+
(* src = "person_classifier_popcount_folded.v:7.70-7.73" *)
|
| 35 |
+
input [7:0] f09;
|
| 36 |
+
wire [7:0] f09;
|
| 37 |
+
(* src = "person_classifier_popcount_folded.v:8.25-8.28" *)
|
| 38 |
+
input [7:0] f10;
|
| 39 |
+
wire [7:0] f10;
|
| 40 |
+
(* src = "person_classifier_popcount_folded.v:8.30-8.33" *)
|
| 41 |
+
input [7:0] f11;
|
| 42 |
+
wire [7:0] f11;
|
| 43 |
+
(* src = "person_classifier_popcount_folded.v:8.35-8.38" *)
|
| 44 |
+
input [7:0] f12;
|
| 45 |
+
wire [7:0] f12;
|
| 46 |
+
(* src = "person_classifier_popcount_folded.v:8.40-8.43" *)
|
| 47 |
+
input [7:0] f13;
|
| 48 |
+
wire [7:0] f13;
|
| 49 |
+
(* src = "person_classifier_popcount_folded.v:8.45-8.48" *)
|
| 50 |
+
input [7:0] f14;
|
| 51 |
+
wire [7:0] f14;
|
| 52 |
+
(* src = "person_classifier_popcount_folded.v:8.50-8.53" *)
|
| 53 |
+
input [7:0] f15;
|
| 54 |
+
wire [7:0] f15;
|
| 55 |
+
(* src = "person_classifier_popcount_folded.v:8.55-8.58" *)
|
| 56 |
+
input [7:0] f16;
|
| 57 |
+
wire [7:0] f16;
|
| 58 |
+
(* src = "person_classifier_popcount_folded.v:8.60-8.63" *)
|
| 59 |
+
input [7:0] f17;
|
| 60 |
+
wire [7:0] f17;
|
| 61 |
+
(* src = "person_classifier_popcount_folded.v:8.65-8.68" *)
|
| 62 |
+
input [7:0] f18;
|
| 63 |
+
wire [7:0] f18;
|
| 64 |
+
(* src = "person_classifier_popcount_folded.v:8.70-8.73" *)
|
| 65 |
+
input [7:0] f19;
|
| 66 |
+
wire [7:0] f19;
|
| 67 |
+
(* src = "person_classifier_popcount_folded.v:9.25-9.28" *)
|
| 68 |
+
input [7:0] f20;
|
| 69 |
+
wire [7:0] f20;
|
| 70 |
+
(* src = "person_classifier_popcount_folded.v:9.30-9.33" *)
|
| 71 |
+
input [7:0] f21;
|
| 72 |
+
wire [7:0] f21;
|
| 73 |
+
(* src = "person_classifier_popcount_folded.v:9.35-9.38" *)
|
| 74 |
+
input [7:0] f22;
|
| 75 |
+
wire [7:0] f22;
|
| 76 |
+
(* src = "person_classifier_popcount_folded.v:9.40-9.43" *)
|
| 77 |
+
input [7:0] f23;
|
| 78 |
+
wire [7:0] f23;
|
| 79 |
+
(* src = "person_classifier_popcount_folded.v:9.45-9.48" *)
|
| 80 |
+
input [7:0] f24;
|
| 81 |
+
wire [7:0] f24;
|
| 82 |
+
(* src = "person_classifier_popcount_folded.v:9.50-9.53" *)
|
| 83 |
+
input [7:0] f25;
|
| 84 |
+
wire [7:0] f25;
|
| 85 |
+
(* src = "person_classifier_popcount_folded.v:9.55-9.58" *)
|
| 86 |
+
input [7:0] f26;
|
| 87 |
+
wire [7:0] f26;
|
| 88 |
+
(* src = "person_classifier_popcount_folded.v:9.60-9.63" *)
|
| 89 |
+
input [7:0] f27;
|
| 90 |
+
wire [7:0] f27;
|
| 91 |
+
(* src = "person_classifier_popcount_folded.v:9.65-9.68" *)
|
| 92 |
+
input [7:0] f28;
|
| 93 |
+
wire [7:0] f28;
|
| 94 |
+
(* src = "person_classifier_popcount_folded.v:9.70-9.73" *)
|
| 95 |
+
input [7:0] f29;
|
| 96 |
+
wire [7:0] f29;
|
| 97 |
+
(* src = "person_classifier_popcount_folded.v:10.25-10.28" *)
|
| 98 |
+
input [7:0] f30;
|
| 99 |
+
wire [7:0] f30;
|
| 100 |
+
(* src = "person_classifier_popcount_folded.v:10.30-10.33" *)
|
| 101 |
+
input [7:0] f31;
|
| 102 |
+
wire [7:0] f31;
|
| 103 |
+
(* src = "person_classifier_popcount_folded.v:10.35-10.38" *)
|
| 104 |
+
input [7:0] f32;
|
| 105 |
+
wire [7:0] f32;
|
| 106 |
+
(* src = "person_classifier_popcount_folded.v:10.40-10.43" *)
|
| 107 |
+
input [7:0] f33;
|
| 108 |
+
wire [7:0] f33;
|
| 109 |
+
(* src = "person_classifier_popcount_folded.v:10.45-10.48" *)
|
| 110 |
+
input [7:0] f34;
|
| 111 |
+
wire [7:0] f34;
|
| 112 |
+
(* src = "person_classifier_popcount_folded.v:10.50-10.53" *)
|
| 113 |
+
input [7:0] f35;
|
| 114 |
+
wire [7:0] f35;
|
| 115 |
+
(* src = "person_classifier_popcount_folded.v:10.55-10.58" *)
|
| 116 |
+
input [7:0] f36;
|
| 117 |
+
wire [7:0] f36;
|
| 118 |
+
(* src = "person_classifier_popcount_folded.v:10.60-10.63" *)
|
| 119 |
+
input [7:0] f37;
|
| 120 |
+
wire [7:0] f37;
|
| 121 |
+
(* src = "person_classifier_popcount_folded.v:10.65-10.68" *)
|
| 122 |
+
input [7:0] f38;
|
| 123 |
+
wire [7:0] f38;
|
| 124 |
+
(* src = "person_classifier_popcount_folded.v:10.70-10.73" *)
|
| 125 |
+
input [7:0] f39;
|
| 126 |
+
wire [7:0] f39;
|
| 127 |
+
(* src = "person_classifier_popcount_folded.v:11.12-11.26" *)
|
| 128 |
+
output person_present;
|
| 129 |
+
wire person_present;
|
| 130 |
+
wire _0000_;
|
| 131 |
+
wire _0001_;
|
| 132 |
+
wire _0002_;
|
| 133 |
+
wire _0003_;
|
| 134 |
+
wire _0004_;
|
| 135 |
+
wire _0005_;
|
| 136 |
+
wire _0006_;
|
| 137 |
+
wire _0007_;
|
| 138 |
+
wire _0008_;
|
| 139 |
+
wire _0009_;
|
| 140 |
+
wire _0010_;
|
| 141 |
+
wire _0011_;
|
| 142 |
+
wire _0012_;
|
| 143 |
+
wire _0013_;
|
| 144 |
+
wire _0014_;
|
| 145 |
+
wire _0015_;
|
| 146 |
+
wire _0016_;
|
| 147 |
+
wire _0017_;
|
| 148 |
+
wire _0018_;
|
| 149 |
+
wire _0019_;
|
| 150 |
+
wire _0020_;
|
| 151 |
+
wire _0021_;
|
| 152 |
+
wire _0022_;
|
| 153 |
+
wire _0023_;
|
| 154 |
+
wire _0024_;
|
| 155 |
+
wire _0025_;
|
| 156 |
+
wire _0026_;
|
| 157 |
+
wire _0027_;
|
| 158 |
+
wire _0028_;
|
| 159 |
+
wire _0029_;
|
| 160 |
+
wire _0030_;
|
| 161 |
+
wire _0031_;
|
| 162 |
+
wire _0032_;
|
| 163 |
+
wire _0033_;
|
| 164 |
+
wire _0034_;
|
| 165 |
+
wire _0035_;
|
| 166 |
+
wire _0036_;
|
| 167 |
+
wire _0037_;
|
| 168 |
+
wire _0038_;
|
| 169 |
+
wire _0039_;
|
| 170 |
+
wire _0040_;
|
| 171 |
+
wire _0041_;
|
| 172 |
+
wire _0042_;
|
| 173 |
+
wire _0043_;
|
| 174 |
+
wire _0044_;
|
| 175 |
+
wire _0045_;
|
| 176 |
+
wire _0046_;
|
| 177 |
+
wire _0047_;
|
| 178 |
+
wire _0048_;
|
| 179 |
+
wire _0049_;
|
| 180 |
+
wire _0050_;
|
| 181 |
+
wire _0051_;
|
| 182 |
+
wire _0052_;
|
| 183 |
+
wire _0053_;
|
| 184 |
+
wire _0054_;
|
| 185 |
+
wire _0055_;
|
| 186 |
+
wire _0056_;
|
| 187 |
+
wire _0057_;
|
| 188 |
+
wire _0058_;
|
| 189 |
+
wire _0059_;
|
| 190 |
+
wire _0060_;
|
| 191 |
+
wire _0061_;
|
| 192 |
+
wire _0062_;
|
| 193 |
+
wire _0063_;
|
| 194 |
+
wire _0064_;
|
| 195 |
+
wire _0065_;
|
| 196 |
+
wire _0066_;
|
| 197 |
+
wire _0067_;
|
| 198 |
+
wire _0068_;
|
| 199 |
+
wire _0069_;
|
| 200 |
+
wire _0070_;
|
| 201 |
+
wire _0071_;
|
| 202 |
+
wire _0072_;
|
| 203 |
+
wire _0073_;
|
| 204 |
+
wire _0074_;
|
| 205 |
+
wire _0075_;
|
| 206 |
+
wire _0076_;
|
| 207 |
+
wire _0077_;
|
| 208 |
+
wire _0078_;
|
| 209 |
+
wire _0079_;
|
| 210 |
+
wire _0080_;
|
| 211 |
+
wire _0081_;
|
| 212 |
+
wire _0082_;
|
| 213 |
+
wire _0083_;
|
| 214 |
+
wire _0084_;
|
| 215 |
+
wire _0085_;
|
| 216 |
+
wire _0086_;
|
| 217 |
+
wire _0087_;
|
| 218 |
+
wire _0088_;
|
| 219 |
+
wire _0089_;
|
| 220 |
+
wire _0090_;
|
| 221 |
+
wire _0091_;
|
| 222 |
+
wire _0092_;
|
| 223 |
+
wire _0093_;
|
| 224 |
+
wire _0094_;
|
| 225 |
+
wire _0095_;
|
| 226 |
+
wire _0096_;
|
| 227 |
+
wire _0097_;
|
| 228 |
+
wire _0098_;
|
| 229 |
+
wire _0099_;
|
| 230 |
+
wire _0100_;
|
| 231 |
+
wire _0101_;
|
| 232 |
+
wire _0102_;
|
| 233 |
+
wire _0103_;
|
| 234 |
+
wire _0104_;
|
| 235 |
+
wire _0105_;
|
| 236 |
+
wire _0106_;
|
| 237 |
+
wire _0107_;
|
| 238 |
+
wire _0108_;
|
| 239 |
+
wire _0109_;
|
| 240 |
+
wire _0110_;
|
| 241 |
+
wire _0111_;
|
| 242 |
+
wire _0112_;
|
| 243 |
+
wire _0113_;
|
| 244 |
+
wire _0114_;
|
| 245 |
+
wire _0115_;
|
| 246 |
+
wire _0116_;
|
| 247 |
+
wire _0117_;
|
| 248 |
+
wire _0118_;
|
| 249 |
+
wire _0119_;
|
| 250 |
+
wire _0120_;
|
| 251 |
+
wire _0121_;
|
| 252 |
+
wire _0122_;
|
| 253 |
+
wire _0123_;
|
| 254 |
+
wire _0124_;
|
| 255 |
+
wire _0125_;
|
| 256 |
+
wire _0126_;
|
| 257 |
+
wire _0127_;
|
| 258 |
+
wire _0128_;
|
| 259 |
+
wire _0129_;
|
| 260 |
+
wire _0130_;
|
| 261 |
+
wire _0131_;
|
| 262 |
+
wire _0132_;
|
| 263 |
+
wire _0133_;
|
| 264 |
+
wire _0134_;
|
| 265 |
+
wire _0135_;
|
| 266 |
+
wire _0136_;
|
| 267 |
+
wire _0137_;
|
| 268 |
+
wire _0138_;
|
| 269 |
+
wire _0139_;
|
| 270 |
+
wire _0140_;
|
| 271 |
+
wire _0141_;
|
| 272 |
+
wire _0142_;
|
| 273 |
+
wire _0143_;
|
| 274 |
+
wire _0144_;
|
| 275 |
+
wire _0145_;
|
| 276 |
+
wire _0146_;
|
| 277 |
+
wire _0147_;
|
| 278 |
+
wire _0148_;
|
| 279 |
+
wire _0149_;
|
| 280 |
+
wire _0150_;
|
| 281 |
+
wire _0151_;
|
| 282 |
+
wire _0152_;
|
| 283 |
+
wire _0153_;
|
| 284 |
+
wire _0154_;
|
| 285 |
+
wire _0155_;
|
| 286 |
+
wire _0156_;
|
| 287 |
+
wire _0157_;
|
| 288 |
+
wire _0158_;
|
| 289 |
+
wire _0159_;
|
| 290 |
+
wire _0160_;
|
| 291 |
+
wire _0161_;
|
| 292 |
+
wire _0162_;
|
| 293 |
+
wire _0163_;
|
| 294 |
+
wire _0164_;
|
| 295 |
+
wire _0165_;
|
| 296 |
+
wire _0166_;
|
| 297 |
+
wire _0167_;
|
| 298 |
+
wire _0168_;
|
| 299 |
+
wire _0169_;
|
| 300 |
+
wire _0170_;
|
| 301 |
+
wire _0171_;
|
| 302 |
+
wire _0172_;
|
| 303 |
+
wire _0173_;
|
| 304 |
+
wire _0174_;
|
| 305 |
+
wire _0175_;
|
| 306 |
+
wire _0176_;
|
| 307 |
+
wire _0177_;
|
| 308 |
+
wire _0178_;
|
| 309 |
+
wire _0179_;
|
| 310 |
+
wire _0180_;
|
| 311 |
+
wire _0181_;
|
| 312 |
+
wire _0182_;
|
| 313 |
+
wire _0183_;
|
| 314 |
+
wire _0184_;
|
| 315 |
+
wire _0185_;
|
| 316 |
+
wire _0186_;
|
| 317 |
+
wire _0187_;
|
| 318 |
+
wire _0188_;
|
| 319 |
+
wire _0189_;
|
| 320 |
+
wire _0190_;
|
| 321 |
+
wire _0191_;
|
| 322 |
+
wire _0192_;
|
| 323 |
+
wire _0193_;
|
| 324 |
+
wire _0194_;
|
| 325 |
+
wire _0195_;
|
| 326 |
+
wire _0196_;
|
| 327 |
+
wire _0197_;
|
| 328 |
+
wire _0198_;
|
| 329 |
+
wire _0199_;
|
| 330 |
+
wire _0200_;
|
| 331 |
+
wire _0201_;
|
| 332 |
+
wire _0202_;
|
| 333 |
+
wire _0203_;
|
| 334 |
+
wire _0204_;
|
| 335 |
+
wire _0205_;
|
| 336 |
+
wire _0206_;
|
| 337 |
+
wire _0207_;
|
| 338 |
+
wire _0208_;
|
| 339 |
+
wire _0209_;
|
| 340 |
+
wire _0210_;
|
| 341 |
+
wire _0211_;
|
| 342 |
+
wire _0212_;
|
| 343 |
+
wire _0213_;
|
| 344 |
+
wire _0214_;
|
| 345 |
+
wire _0215_;
|
| 346 |
+
wire _0216_;
|
| 347 |
+
wire _0217_;
|
| 348 |
+
wire _0218_;
|
| 349 |
+
wire _0219_;
|
| 350 |
+
wire _0220_;
|
| 351 |
+
wire _0221_;
|
| 352 |
+
wire _0222_;
|
| 353 |
+
wire _0223_;
|
| 354 |
+
wire _0224_;
|
| 355 |
+
wire _0225_;
|
| 356 |
+
wire _0226_;
|
| 357 |
+
wire _0227_;
|
| 358 |
+
wire _0228_;
|
| 359 |
+
wire _0229_;
|
| 360 |
+
wire _0230_;
|
| 361 |
+
wire _0231_;
|
| 362 |
+
wire _0232_;
|
| 363 |
+
wire _0233_;
|
| 364 |
+
wire _0234_;
|
| 365 |
+
wire _0235_;
|
| 366 |
+
wire _0236_;
|
| 367 |
+
wire _0237_;
|
| 368 |
+
wire _0238_;
|
| 369 |
+
wire _0239_;
|
| 370 |
+
wire _0240_;
|
| 371 |
+
wire _0241_;
|
| 372 |
+
wire _0242_;
|
| 373 |
+
wire _0243_;
|
| 374 |
+
wire _0244_;
|
| 375 |
+
wire _0245_;
|
| 376 |
+
wire _0246_;
|
| 377 |
+
wire _0247_;
|
| 378 |
+
wire _0248_;
|
| 379 |
+
wire _0249_;
|
| 380 |
+
wire _0250_;
|
| 381 |
+
wire _0251_;
|
| 382 |
+
wire _0252_;
|
| 383 |
+
wire _0253_;
|
| 384 |
+
wire _0254_;
|
| 385 |
+
wire _0255_;
|
| 386 |
+
wire _0256_;
|
| 387 |
+
wire _0257_;
|
| 388 |
+
wire _0258_;
|
| 389 |
+
wire _0259_;
|
| 390 |
+
wire _0260_;
|
| 391 |
+
wire _0261_;
|
| 392 |
+
wire _0262_;
|
| 393 |
+
wire _0263_;
|
| 394 |
+
wire _0264_;
|
| 395 |
+
wire _0265_;
|
| 396 |
+
wire _0266_;
|
| 397 |
+
wire _0267_;
|
| 398 |
+
wire _0268_;
|
| 399 |
+
wire _0269_;
|
| 400 |
+
wire _0270_;
|
| 401 |
+
wire _0271_;
|
| 402 |
+
wire _0272_;
|
| 403 |
+
wire _0273_;
|
| 404 |
+
wire _0274_;
|
| 405 |
+
wire _0275_;
|
| 406 |
+
wire _0276_;
|
| 407 |
+
wire _0277_;
|
| 408 |
+
wire _0278_;
|
| 409 |
+
wire _0279_;
|
| 410 |
+
wire _0280_;
|
| 411 |
+
wire _0281_;
|
| 412 |
+
wire _0282_;
|
| 413 |
+
wire _0283_;
|
| 414 |
+
wire _0284_;
|
| 415 |
+
wire _0285_;
|
| 416 |
+
wire _0286_;
|
| 417 |
+
wire _0287_;
|
| 418 |
+
wire _0288_;
|
| 419 |
+
wire _0289_;
|
| 420 |
+
wire _0290_;
|
| 421 |
+
wire _0291_;
|
| 422 |
+
wire _0292_;
|
| 423 |
+
wire _0293_;
|
| 424 |
+
wire _0294_;
|
| 425 |
+
wire _0295_;
|
| 426 |
+
wire _0296_;
|
| 427 |
+
wire _0297_;
|
| 428 |
+
wire _0298_;
|
| 429 |
+
wire _0299_;
|
| 430 |
+
wire _0300_;
|
| 431 |
+
wire _0301_;
|
| 432 |
+
wire _0302_;
|
| 433 |
+
wire _0303_;
|
| 434 |
+
wire _0304_;
|
| 435 |
+
wire _0305_;
|
| 436 |
+
wire _0306_;
|
| 437 |
+
wire _0307_;
|
| 438 |
+
wire _0308_;
|
| 439 |
+
wire _0309_;
|
| 440 |
+
wire _0310_;
|
| 441 |
+
wire _0311_;
|
| 442 |
+
wire _0312_;
|
| 443 |
+
wire _0313_;
|
| 444 |
+
wire _0314_;
|
| 445 |
+
wire _0315_;
|
| 446 |
+
wire _0316_;
|
| 447 |
+
wire _0317_;
|
| 448 |
+
wire _0318_;
|
| 449 |
+
wire _0319_;
|
| 450 |
+
wire _0320_;
|
| 451 |
+
wire _0321_;
|
| 452 |
+
wire _0322_;
|
| 453 |
+
wire _0323_;
|
| 454 |
+
wire _0324_;
|
| 455 |
+
wire _0325_;
|
| 456 |
+
wire _0326_;
|
| 457 |
+
wire _0327_;
|
| 458 |
+
wire _0328_;
|
| 459 |
+
wire _0329_;
|
| 460 |
+
wire _0330_;
|
| 461 |
+
wire _0331_;
|
| 462 |
+
wire _0332_;
|
| 463 |
+
wire _0333_;
|
| 464 |
+
wire _0334_;
|
| 465 |
+
wire _0335_;
|
| 466 |
+
wire _0336_;
|
| 467 |
+
wire _0337_;
|
| 468 |
+
wire _0338_;
|
| 469 |
+
wire _0339_;
|
| 470 |
+
wire _0340_;
|
| 471 |
+
wire _0341_;
|
| 472 |
+
wire _0342_;
|
| 473 |
+
wire _0343_;
|
| 474 |
+
wire _0344_;
|
| 475 |
+
wire _0345_;
|
| 476 |
+
wire _0346_;
|
| 477 |
+
wire _0347_;
|
| 478 |
+
wire _0348_;
|
| 479 |
+
wire _0349_;
|
| 480 |
+
wire _0350_;
|
| 481 |
+
wire _0351_;
|
| 482 |
+
wire _0352_;
|
| 483 |
+
wire _0353_;
|
| 484 |
+
wire _0354_;
|
| 485 |
+
wire _0355_;
|
| 486 |
+
wire _0356_;
|
| 487 |
+
wire _0357_;
|
| 488 |
+
wire _0358_;
|
| 489 |
+
wire _0359_;
|
| 490 |
+
wire _0360_;
|
| 491 |
+
wire _0361_;
|
| 492 |
+
wire _0362_;
|
| 493 |
+
wire _0363_;
|
| 494 |
+
wire _0364_;
|
| 495 |
+
wire _0365_;
|
| 496 |
+
wire _0366_;
|
| 497 |
+
wire _0367_;
|
| 498 |
+
wire _0368_;
|
| 499 |
+
wire _0369_;
|
| 500 |
+
wire _0370_;
|
| 501 |
+
wire _0371_;
|
| 502 |
+
wire _0372_;
|
| 503 |
+
wire _0373_;
|
| 504 |
+
wire _0374_;
|
| 505 |
+
wire _0375_;
|
| 506 |
+
wire _0376_;
|
| 507 |
+
wire _0377_;
|
| 508 |
+
wire _0378_;
|
| 509 |
+
wire _0379_;
|
| 510 |
+
wire _0380_;
|
| 511 |
+
wire _0381_;
|
| 512 |
+
wire _0382_;
|
| 513 |
+
wire _0383_;
|
| 514 |
+
wire _0384_;
|
| 515 |
+
wire _0385_;
|
| 516 |
+
wire _0386_;
|
| 517 |
+
wire _0387_;
|
| 518 |
+
wire _0388_;
|
| 519 |
+
wire _0389_;
|
| 520 |
+
wire _0390_;
|
| 521 |
+
wire _0391_;
|
| 522 |
+
wire _0392_;
|
| 523 |
+
wire _0393_;
|
| 524 |
+
wire _0394_;
|
| 525 |
+
wire _0395_;
|
| 526 |
+
wire _0396_;
|
| 527 |
+
wire _0397_;
|
| 528 |
+
wire _0398_;
|
| 529 |
+
wire _0399_;
|
| 530 |
+
wire _0400_;
|
| 531 |
+
wire _0401_;
|
| 532 |
+
wire _0402_;
|
| 533 |
+
wire _0403_;
|
| 534 |
+
wire _0404_;
|
| 535 |
+
wire _0405_;
|
| 536 |
+
wire _0406_;
|
| 537 |
+
wire _0407_;
|
| 538 |
+
wire _0408_;
|
| 539 |
+
wire _0409_;
|
| 540 |
+
wire _0410_;
|
| 541 |
+
wire _0411_;
|
| 542 |
+
wire _0412_;
|
| 543 |
+
wire _0413_;
|
| 544 |
+
wire _0414_;
|
| 545 |
+
wire _0415_;
|
| 546 |
+
wire _0416_;
|
| 547 |
+
wire _0417_;
|
| 548 |
+
wire _0418_;
|
| 549 |
+
wire _0419_;
|
| 550 |
+
wire _0420_;
|
| 551 |
+
wire _0421_;
|
| 552 |
+
wire _0422_;
|
| 553 |
+
wire _0423_;
|
| 554 |
+
wire _0424_;
|
| 555 |
+
wire _0425_;
|
| 556 |
+
wire _0426_;
|
| 557 |
+
wire _0427_;
|
| 558 |
+
wire _0428_;
|
| 559 |
+
wire _0429_;
|
| 560 |
+
wire _0430_;
|
| 561 |
+
wire _0431_;
|
| 562 |
+
wire _0432_;
|
| 563 |
+
wire _0433_;
|
| 564 |
+
wire _0434_;
|
| 565 |
+
wire _0435_;
|
| 566 |
+
wire _0436_;
|
| 567 |
+
wire _0437_;
|
| 568 |
+
wire _0438_;
|
| 569 |
+
wire _0439_;
|
| 570 |
+
wire _0440_;
|
| 571 |
+
wire _0441_;
|
| 572 |
+
wire _0442_;
|
| 573 |
+
wire _0443_;
|
| 574 |
+
wire _0444_;
|
| 575 |
+
wire _0445_;
|
| 576 |
+
wire _0446_;
|
| 577 |
+
wire _0447_;
|
| 578 |
+
wire _0448_;
|
| 579 |
+
wire _0449_;
|
| 580 |
+
wire _0450_;
|
| 581 |
+
wire _0451_;
|
| 582 |
+
wire _0452_;
|
| 583 |
+
wire _0453_;
|
| 584 |
+
wire _0454_;
|
| 585 |
+
wire _0455_;
|
| 586 |
+
wire _0456_;
|
| 587 |
+
wire _0457_;
|
| 588 |
+
wire _0458_;
|
| 589 |
+
wire _0459_;
|
| 590 |
+
wire _0460_;
|
| 591 |
+
wire _0461_;
|
| 592 |
+
wire _0462_;
|
| 593 |
+
wire _0463_;
|
| 594 |
+
wire _0464_;
|
| 595 |
+
wire _0465_;
|
| 596 |
+
wire _0466_;
|
| 597 |
+
wire _0467_;
|
| 598 |
+
wire _0468_;
|
| 599 |
+
wire _0469_;
|
| 600 |
+
wire _0470_;
|
| 601 |
+
wire _0471_;
|
| 602 |
+
wire _0472_;
|
| 603 |
+
wire _0473_;
|
| 604 |
+
wire _0474_;
|
| 605 |
+
wire _0475_;
|
| 606 |
+
wire _0476_;
|
| 607 |
+
wire _0477_;
|
| 608 |
+
wire _0478_;
|
| 609 |
+
wire _0479_;
|
| 610 |
+
wire _0480_;
|
| 611 |
+
wire _0481_;
|
| 612 |
+
wire _0482_;
|
| 613 |
+
wire _0483_;
|
| 614 |
+
wire _0484_;
|
| 615 |
+
wire _0485_;
|
| 616 |
+
wire _0486_;
|
| 617 |
+
wire _0487_;
|
| 618 |
+
wire _0488_;
|
| 619 |
+
wire _0489_;
|
| 620 |
+
wire _0490_;
|
| 621 |
+
wire _0491_;
|
| 622 |
+
wire _0492_;
|
| 623 |
+
wire _0493_;
|
| 624 |
+
wire _0494_;
|
| 625 |
+
wire _0495_;
|
| 626 |
+
wire _0496_;
|
| 627 |
+
wire _0497_;
|
| 628 |
+
wire _0498_;
|
| 629 |
+
wire _0499_;
|
| 630 |
+
wire _0500_;
|
| 631 |
+
wire _0501_;
|
| 632 |
+
wire _0502_;
|
| 633 |
+
wire _0503_;
|
| 634 |
+
wire _0504_;
|
| 635 |
+
wire _0505_;
|
| 636 |
+
wire _0506_;
|
| 637 |
+
wire _0507_;
|
| 638 |
+
wire _0508_;
|
| 639 |
+
wire _0509_;
|
| 640 |
+
wire _0510_;
|
| 641 |
+
wire _0511_;
|
| 642 |
+
wire _0512_;
|
| 643 |
+
wire _0513_;
|
| 644 |
+
wire _0514_;
|
| 645 |
+
wire _0515_;
|
| 646 |
+
wire _0516_;
|
| 647 |
+
wire _0517_;
|
| 648 |
+
wire _0518_;
|
| 649 |
+
wire _0519_;
|
| 650 |
+
wire _0520_;
|
| 651 |
+
wire _0521_;
|
| 652 |
+
wire _0522_;
|
| 653 |
+
wire _0523_;
|
| 654 |
+
wire _0524_;
|
| 655 |
+
wire _0525_;
|
| 656 |
+
wire _0526_;
|
| 657 |
+
wire _0527_;
|
| 658 |
+
wire _0528_;
|
| 659 |
+
wire _0529_;
|
| 660 |
+
wire _0530_;
|
| 661 |
+
wire _0531_;
|
| 662 |
+
wire _0532_;
|
| 663 |
+
wire _0533_;
|
| 664 |
+
wire _0534_;
|
| 665 |
+
wire _0535_;
|
| 666 |
+
wire _0536_;
|
| 667 |
+
wire _0537_;
|
| 668 |
+
wire _0538_;
|
| 669 |
+
wire _0539_;
|
| 670 |
+
wire _0540_;
|
| 671 |
+
wire _0541_;
|
| 672 |
+
wire _0542_;
|
| 673 |
+
wire _0543_;
|
| 674 |
+
wire _0544_;
|
| 675 |
+
wire _0545_;
|
| 676 |
+
wire _0546_;
|
| 677 |
+
wire _0547_;
|
| 678 |
+
wire _0548_;
|
| 679 |
+
wire _0549_;
|
| 680 |
+
wire _0550_;
|
| 681 |
+
wire _0551_;
|
| 682 |
+
wire _0552_;
|
| 683 |
+
wire _0553_;
|
| 684 |
+
wire _0554_;
|
| 685 |
+
wire _0555_;
|
| 686 |
+
wire _0556_;
|
| 687 |
+
wire _0557_;
|
| 688 |
+
wire _0558_;
|
| 689 |
+
wire _0559_;
|
| 690 |
+
wire _0560_;
|
| 691 |
+
wire _0561_;
|
| 692 |
+
wire _0562_;
|
| 693 |
+
wire _0563_;
|
| 694 |
+
wire _0564_;
|
| 695 |
+
wire _0565_;
|
| 696 |
+
wire _0566_;
|
| 697 |
+
wire _0567_;
|
| 698 |
+
wire _0568_;
|
| 699 |
+
wire _0569_;
|
| 700 |
+
wire _0570_;
|
| 701 |
+
wire _0571_;
|
| 702 |
+
wire _0572_;
|
| 703 |
+
wire _0573_;
|
| 704 |
+
wire _0574_;
|
| 705 |
+
wire _0575_;
|
| 706 |
+
wire _0576_;
|
| 707 |
+
wire _0577_;
|
| 708 |
+
wire _0578_;
|
| 709 |
+
wire _0579_;
|
| 710 |
+
wire _0580_;
|
| 711 |
+
wire _0581_;
|
| 712 |
+
wire _0582_;
|
| 713 |
+
wire _0583_;
|
| 714 |
+
wire _0584_;
|
| 715 |
+
wire _0585_;
|
| 716 |
+
wire _0586_;
|
| 717 |
+
wire _0587_;
|
| 718 |
+
wire _0588_;
|
| 719 |
+
wire _0589_;
|
| 720 |
+
wire _0590_;
|
| 721 |
+
wire _0591_;
|
| 722 |
+
wire _0592_;
|
| 723 |
+
wire _0593_;
|
| 724 |
+
wire _0594_;
|
| 725 |
+
wire _0595_;
|
| 726 |
+
wire _0596_;
|
| 727 |
+
wire _0597_;
|
| 728 |
+
wire _0598_;
|
| 729 |
+
wire _0599_;
|
| 730 |
+
wire _0600_;
|
| 731 |
+
wire _0601_;
|
| 732 |
+
wire _0602_;
|
| 733 |
+
wire _0603_;
|
| 734 |
+
wire _0604_;
|
| 735 |
+
wire _0605_;
|
| 736 |
+
wire _0606_;
|
| 737 |
+
wire _0607_;
|
| 738 |
+
wire _0608_;
|
| 739 |
+
wire _0609_;
|
| 740 |
+
wire _0610_;
|
| 741 |
+
wire _0611_;
|
| 742 |
+
wire _0612_;
|
| 743 |
+
wire _0613_;
|
| 744 |
+
wire _0614_;
|
| 745 |
+
wire _0615_;
|
| 746 |
+
wire _0616_;
|
| 747 |
+
wire _0617_;
|
| 748 |
+
wire _0618_;
|
| 749 |
+
wire _0619_;
|
| 750 |
+
wire _0620_;
|
| 751 |
+
wire _0621_;
|
| 752 |
+
wire _0622_;
|
| 753 |
+
wire _0623_;
|
| 754 |
+
wire _0624_;
|
| 755 |
+
wire _0625_;
|
| 756 |
+
wire _0626_;
|
| 757 |
+
wire _0627_;
|
| 758 |
+
wire _0628_;
|
| 759 |
+
wire _0629_;
|
| 760 |
+
wire _0630_;
|
| 761 |
+
wire _0631_;
|
| 762 |
+
wire _0632_;
|
| 763 |
+
wire _0633_;
|
| 764 |
+
wire _0634_;
|
| 765 |
+
wire _0635_;
|
| 766 |
+
wire _0636_;
|
| 767 |
+
wire _0637_;
|
| 768 |
+
wire _0638_;
|
| 769 |
+
wire _0639_;
|
| 770 |
+
wire _0640_;
|
| 771 |
+
wire _0641_;
|
| 772 |
+
wire _0642_;
|
| 773 |
+
wire _0643_;
|
| 774 |
+
wire _0644_;
|
| 775 |
+
wire _0645_;
|
| 776 |
+
wire _0646_;
|
| 777 |
+
wire _0647_;
|
| 778 |
+
wire _0648_;
|
| 779 |
+
wire _0649_;
|
| 780 |
+
wire _0650_;
|
| 781 |
+
wire _0651_;
|
| 782 |
+
wire _0652_;
|
| 783 |
+
wire _0653_;
|
| 784 |
+
wire _0654_;
|
| 785 |
+
wire _0655_;
|
| 786 |
+
wire _0656_;
|
| 787 |
+
wire _0657_;
|
| 788 |
+
wire _0658_;
|
| 789 |
+
wire _0659_;
|
| 790 |
+
wire _0660_;
|
| 791 |
+
wire _0661_;
|
| 792 |
+
wire _0662_;
|
| 793 |
+
wire _0663_;
|
| 794 |
+
wire _0664_;
|
| 795 |
+
wire _0665_;
|
| 796 |
+
wire _0666_;
|
| 797 |
+
wire _0667_;
|
| 798 |
+
wire _0668_;
|
| 799 |
+
wire _0669_;
|
| 800 |
+
wire _0670_;
|
| 801 |
+
wire _0671_;
|
| 802 |
+
wire _0672_;
|
| 803 |
+
wire _0673_;
|
| 804 |
+
wire _0674_;
|
| 805 |
+
wire _0675_;
|
| 806 |
+
wire _0676_;
|
| 807 |
+
wire _0677_;
|
| 808 |
+
wire _0678_;
|
| 809 |
+
wire _0679_;
|
| 810 |
+
wire _0680_;
|
| 811 |
+
wire _0681_;
|
| 812 |
+
wire _0682_;
|
| 813 |
+
wire _0683_;
|
| 814 |
+
wire _0684_;
|
| 815 |
+
wire _0685_;
|
| 816 |
+
wire _0686_;
|
| 817 |
+
wire _0687_;
|
| 818 |
+
wire _0688_;
|
| 819 |
+
wire _0689_;
|
| 820 |
+
wire _0690_;
|
| 821 |
+
wire _0691_;
|
| 822 |
+
wire _0692_;
|
| 823 |
+
wire _0693_;
|
| 824 |
+
wire _0694_;
|
| 825 |
+
wire _0695_;
|
| 826 |
+
wire _0696_;
|
| 827 |
+
wire _0697_;
|
| 828 |
+
wire _0698_;
|
| 829 |
+
wire _0699_;
|
| 830 |
+
wire _0700_;
|
| 831 |
+
wire _0701_;
|
| 832 |
+
wire _0702_;
|
| 833 |
+
wire _0703_;
|
| 834 |
+
wire _0704_;
|
| 835 |
+
wire _0705_;
|
| 836 |
+
wire _0706_;
|
| 837 |
+
wire _0707_;
|
| 838 |
+
wire _0708_;
|
| 839 |
+
wire _0709_;
|
| 840 |
+
wire _0710_;
|
| 841 |
+
wire _0711_;
|
| 842 |
+
wire _0712_;
|
| 843 |
+
wire _0713_;
|
| 844 |
+
wire _0714_;
|
| 845 |
+
wire _0715_;
|
| 846 |
+
wire _0716_;
|
| 847 |
+
wire _0717_;
|
| 848 |
+
wire _0718_;
|
| 849 |
+
wire _0719_;
|
| 850 |
+
wire _0720_;
|
| 851 |
+
wire _0721_;
|
| 852 |
+
wire _0722_;
|
| 853 |
+
wire _0723_;
|
| 854 |
+
wire _0724_;
|
| 855 |
+
wire _0725_;
|
| 856 |
+
wire _0726_;
|
| 857 |
+
wire _0727_;
|
| 858 |
+
wire _0728_;
|
| 859 |
+
wire _0729_;
|
| 860 |
+
wire _0730_;
|
| 861 |
+
wire _0731_;
|
| 862 |
+
wire _0732_;
|
| 863 |
+
wire _0733_;
|
| 864 |
+
wire _0734_;
|
| 865 |
+
wire _0735_;
|
| 866 |
+
wire _0736_;
|
| 867 |
+
wire _0737_;
|
| 868 |
+
wire _0738_;
|
| 869 |
+
wire _0739_;
|
| 870 |
+
wire _0740_;
|
| 871 |
+
wire _0741_;
|
| 872 |
+
wire _0742_;
|
| 873 |
+
wire _0743_;
|
| 874 |
+
wire _0744_;
|
| 875 |
+
wire _0745_;
|
| 876 |
+
wire _0746_;
|
| 877 |
+
wire _0747_;
|
| 878 |
+
wire _0748_;
|
| 879 |
+
wire _0749_;
|
| 880 |
+
wire _0750_;
|
| 881 |
+
wire _0751_;
|
| 882 |
+
wire _0752_;
|
| 883 |
+
wire _0753_;
|
| 884 |
+
wire _0754_;
|
| 885 |
+
wire _0755_;
|
| 886 |
+
wire _0756_;
|
| 887 |
+
wire _0757_;
|
| 888 |
+
wire _0758_;
|
| 889 |
+
wire _0759_;
|
| 890 |
+
wire _0760_;
|
| 891 |
+
wire _0761_;
|
| 892 |
+
wire _0762_;
|
| 893 |
+
wire _0763_;
|
| 894 |
+
wire _0764_;
|
| 895 |
+
wire _0765_;
|
| 896 |
+
wire _0766_;
|
| 897 |
+
wire _0767_;
|
| 898 |
+
wire _0768_;
|
| 899 |
+
wire _0769_;
|
| 900 |
+
wire _0770_;
|
| 901 |
+
wire _0771_;
|
| 902 |
+
wire _0772_;
|
| 903 |
+
wire _0773_;
|
| 904 |
+
wire _0774_;
|
| 905 |
+
wire _0775_;
|
| 906 |
+
wire _0776_;
|
| 907 |
+
wire _0777_;
|
| 908 |
+
wire _0778_;
|
| 909 |
+
wire _0779_;
|
| 910 |
+
wire _0780_;
|
| 911 |
+
wire _0781_;
|
| 912 |
+
wire _0782_;
|
| 913 |
+
wire _0783_;
|
| 914 |
+
wire _0784_;
|
| 915 |
+
wire _0785_;
|
| 916 |
+
wire _0786_;
|
| 917 |
+
wire _0787_;
|
| 918 |
+
wire _0788_;
|
| 919 |
+
wire _0789_;
|
| 920 |
+
wire _0790_;
|
| 921 |
+
wire _0791_;
|
| 922 |
+
wire _0792_;
|
| 923 |
+
wire _0793_;
|
| 924 |
+
wire _0794_;
|
| 925 |
+
wire _0795_;
|
| 926 |
+
wire _0796_;
|
| 927 |
+
wire _0797_;
|
| 928 |
+
wire _0798_;
|
| 929 |
+
wire _0799_;
|
| 930 |
+
wire _0800_;
|
| 931 |
+
wire _0801_;
|
| 932 |
+
wire _0802_;
|
| 933 |
+
wire _0803_;
|
| 934 |
+
wire _0804_;
|
| 935 |
+
wire _0805_;
|
| 936 |
+
wire _0806_;
|
| 937 |
+
wire _0807_;
|
| 938 |
+
wire _0808_;
|
| 939 |
+
wire _0809_;
|
| 940 |
+
wire _0810_;
|
| 941 |
+
wire _0811_;
|
| 942 |
+
wire _0812_;
|
| 943 |
+
wire _0813_;
|
| 944 |
+
wire _0814_;
|
| 945 |
+
wire _0815_;
|
| 946 |
+
wire _0816_;
|
| 947 |
+
wire _0817_;
|
| 948 |
+
wire _0818_;
|
| 949 |
+
wire _0819_;
|
| 950 |
+
wire _0820_;
|
| 951 |
+
wire _0821_;
|
| 952 |
+
wire _0822_;
|
| 953 |
+
wire _0823_;
|
| 954 |
+
wire _0824_;
|
| 955 |
+
wire _0825_;
|
| 956 |
+
wire _0826_;
|
| 957 |
+
wire _0827_;
|
| 958 |
+
wire _0828_;
|
| 959 |
+
wire _0829_;
|
| 960 |
+
wire _0830_;
|
| 961 |
+
wire _0831_;
|
| 962 |
+
wire _0832_;
|
| 963 |
+
wire _0833_;
|
| 964 |
+
wire _0834_;
|
| 965 |
+
wire _0835_;
|
| 966 |
+
wire _0836_;
|
| 967 |
+
wire _0837_;
|
| 968 |
+
wire _0838_;
|
| 969 |
+
wire _0839_;
|
| 970 |
+
wire _0840_;
|
| 971 |
+
wire _0841_;
|
| 972 |
+
wire _0842_;
|
| 973 |
+
wire _0843_;
|
| 974 |
+
wire _0844_;
|
| 975 |
+
wire _0845_;
|
| 976 |
+
wire _0846_;
|
| 977 |
+
wire _0847_;
|
| 978 |
+
wire _0848_;
|
| 979 |
+
wire _0849_;
|
| 980 |
+
wire _0850_;
|
| 981 |
+
wire _0851_;
|
| 982 |
+
wire _0852_;
|
| 983 |
+
wire _0853_;
|
| 984 |
+
wire _0854_;
|
| 985 |
+
wire _0855_;
|
| 986 |
+
wire _0856_;
|
| 987 |
+
wire _0857_;
|
| 988 |
+
wire _0858_;
|
| 989 |
+
wire _0859_;
|
| 990 |
+
wire _0860_;
|
| 991 |
+
wire _0861_;
|
| 992 |
+
wire _0862_;
|
| 993 |
+
wire _0863_;
|
| 994 |
+
wire _0864_;
|
| 995 |
+
wire _0865_;
|
| 996 |
+
wire _0866_;
|
| 997 |
+
wire _0867_;
|
| 998 |
+
wire _0868_;
|
| 999 |
+
wire _0869_;
|
| 1000 |
+
wire _0870_;
|
| 1001 |
+
wire _0871_;
|
| 1002 |
+
wire _0872_;
|
| 1003 |
+
wire _0873_;
|
| 1004 |
+
wire _0874_;
|
| 1005 |
+
wire _0875_;
|
| 1006 |
+
wire _0876_;
|
| 1007 |
+
wire _0877_;
|
| 1008 |
+
wire _0878_;
|
| 1009 |
+
wire _0879_;
|
| 1010 |
+
wire _0880_;
|
| 1011 |
+
wire _0881_;
|
| 1012 |
+
wire _0882_;
|
| 1013 |
+
wire _0883_;
|
| 1014 |
+
wire _0884_;
|
| 1015 |
+
wire _0885_;
|
| 1016 |
+
wire _0886_;
|
| 1017 |
+
wire _0887_;
|
| 1018 |
+
wire _0888_;
|
| 1019 |
+
wire _0889_;
|
| 1020 |
+
wire _0890_;
|
| 1021 |
+
wire _0891_;
|
| 1022 |
+
wire _0892_;
|
| 1023 |
+
wire _0893_;
|
| 1024 |
+
wire _0894_;
|
| 1025 |
+
wire _0895_;
|
| 1026 |
+
wire _0896_;
|
| 1027 |
+
wire _0897_;
|
| 1028 |
+
wire _0898_;
|
| 1029 |
+
wire _0899_;
|
| 1030 |
+
wire _0900_;
|
| 1031 |
+
wire _0901_;
|
| 1032 |
+
wire _0902_;
|
| 1033 |
+
wire _0903_;
|
| 1034 |
+
wire _0904_;
|
| 1035 |
+
wire _0905_;
|
| 1036 |
+
assign _0199_ = ~f37[3];
|
| 1037 |
+
assign _0200_ = ~f37[2];
|
| 1038 |
+
assign _0201_ = ~f37[1];
|
| 1039 |
+
assign _0202_ = ~f37[0];
|
| 1040 |
+
assign _0203_ = ~f37[5];
|
| 1041 |
+
assign _0204_ = ~f37[6];
|
| 1042 |
+
assign _0205_ = ~f37[7];
|
| 1043 |
+
assign _0206_ = ~f14[2];
|
| 1044 |
+
assign _0207_ = ~f14[1];
|
| 1045 |
+
assign _0208_ = ~f14[0];
|
| 1046 |
+
assign _0209_ = ~f14[5];
|
| 1047 |
+
assign _0210_ = ~f14[6];
|
| 1048 |
+
assign _0211_ = ~f14[4];
|
| 1049 |
+
assign _0212_ = ~f14[7];
|
| 1050 |
+
assign _0213_ = ~f16[6];
|
| 1051 |
+
assign _0214_ = ~f16[4];
|
| 1052 |
+
assign _0215_ = ~f16[5];
|
| 1053 |
+
assign _0216_ = ~f16[3];
|
| 1054 |
+
assign _0217_ = ~f16[7];
|
| 1055 |
+
assign _0218_ = ~f36[2];
|
| 1056 |
+
assign _0219_ = ~f36[3];
|
| 1057 |
+
assign _0220_ = ~f36[5];
|
| 1058 |
+
assign _0221_ = ~f36[6];
|
| 1059 |
+
assign _0222_ = ~f36[7];
|
| 1060 |
+
assign _0223_ = ~f32[5];
|
| 1061 |
+
assign _0224_ = ~f32[6];
|
| 1062 |
+
assign _0225_ = ~f32[4];
|
| 1063 |
+
assign _0226_ = ~f32[7];
|
| 1064 |
+
assign _0227_ = ~f34[2];
|
| 1065 |
+
assign _0228_ = ~f34[3];
|
| 1066 |
+
assign _0229_ = ~f34[6];
|
| 1067 |
+
assign _0230_ = ~f34[5];
|
| 1068 |
+
assign _0231_ = ~f34[7];
|
| 1069 |
+
assign _0232_ = ~f04[3];
|
| 1070 |
+
assign _0233_ = ~f04[1];
|
| 1071 |
+
assign _0234_ = ~f04[2];
|
| 1072 |
+
assign _0235_ = ~f04[6];
|
| 1073 |
+
assign _0236_ = ~f04[5];
|
| 1074 |
+
assign _0237_ = ~f04[7];
|
| 1075 |
+
assign _0238_ = ~f30[1];
|
| 1076 |
+
assign _0239_ = ~f30[3];
|
| 1077 |
+
assign _0240_ = ~f30[2];
|
| 1078 |
+
assign _0241_ = ~f30[6];
|
| 1079 |
+
assign _0242_ = ~f30[5];
|
| 1080 |
+
assign _0243_ = ~f30[7];
|
| 1081 |
+
assign _0244_ = ~f26[2];
|
| 1082 |
+
assign _0245_ = ~f26[3];
|
| 1083 |
+
assign _0246_ = ~f26[6];
|
| 1084 |
+
assign _0247_ = ~f26[5];
|
| 1085 |
+
assign _0248_ = ~f26[7];
|
| 1086 |
+
assign _0249_ = ~f28[3];
|
| 1087 |
+
assign _0250_ = ~f28[2];
|
| 1088 |
+
assign _0251_ = ~f28[1];
|
| 1089 |
+
assign _0252_ = ~f28[5];
|
| 1090 |
+
assign _0253_ = ~f28[6];
|
| 1091 |
+
assign _0254_ = ~f28[7];
|
| 1092 |
+
assign _0255_ = ~f18[6];
|
| 1093 |
+
assign _0256_ = ~f18[3];
|
| 1094 |
+
assign _0257_ = ~f18[5];
|
| 1095 |
+
assign _0258_ = ~f18[4];
|
| 1096 |
+
assign _0259_ = ~f18[7];
|
| 1097 |
+
assign _0260_ = ~f24[4];
|
| 1098 |
+
assign _0261_ = ~f24[6];
|
| 1099 |
+
assign _0262_ = ~f24[5];
|
| 1100 |
+
assign _0263_ = ~f24[7];
|
| 1101 |
+
assign _0264_ = ~f21[4];
|
| 1102 |
+
assign _0265_ = ~f21[6];
|
| 1103 |
+
assign _0266_ = ~f21[7];
|
| 1104 |
+
assign _0267_ = ~f22[2];
|
| 1105 |
+
assign _0268_ = ~f22[3];
|
| 1106 |
+
assign _0269_ = ~f22[6];
|
| 1107 |
+
assign _0270_ = ~f22[5];
|
| 1108 |
+
assign _0271_ = ~f22[7];
|
| 1109 |
+
assign _0272_ = ~f00[3];
|
| 1110 |
+
assign _0273_ = ~f00[6];
|
| 1111 |
+
assign _0274_ = ~f00[7];
|
| 1112 |
+
assign _0275_ = ~f02[2];
|
| 1113 |
+
assign _0276_ = ~f02[6];
|
| 1114 |
+
assign _0277_ = ~f02[5];
|
| 1115 |
+
assign _0278_ = ~f02[7];
|
| 1116 |
+
assign _0279_ = ~f07[6];
|
| 1117 |
+
assign _0280_ = ~f07[3];
|
| 1118 |
+
assign _0281_ = ~f07[4];
|
| 1119 |
+
assign _0282_ = ~f07[5];
|
| 1120 |
+
assign _0283_ = ~f07[2];
|
| 1121 |
+
assign _0284_ = ~f07[1];
|
| 1122 |
+
assign _0285_ = ~f07[7];
|
| 1123 |
+
assign _0286_ = ~f03[1];
|
| 1124 |
+
assign _0287_ = ~f03[0];
|
| 1125 |
+
assign _0288_ = ~f03[6];
|
| 1126 |
+
assign _0289_ = ~f03[7];
|
| 1127 |
+
assign _0290_ = ~f05[1];
|
| 1128 |
+
assign _0291_ = ~f05[0];
|
| 1129 |
+
assign _0292_ = ~f05[5];
|
| 1130 |
+
assign _0293_ = ~f05[6];
|
| 1131 |
+
assign _0294_ = ~f05[4];
|
| 1132 |
+
assign _0295_ = ~f05[7];
|
| 1133 |
+
assign _0296_ = ~f12[6];
|
| 1134 |
+
assign _0297_ = ~f12[3];
|
| 1135 |
+
assign _0298_ = ~f12[4];
|
| 1136 |
+
assign _0299_ = ~f12[5];
|
| 1137 |
+
assign _0300_ = ~f12[7];
|
| 1138 |
+
assign _0301_ = ~f01[2];
|
| 1139 |
+
assign _0302_ = ~f01[1];
|
| 1140 |
+
assign _0303_ = ~f01[0];
|
| 1141 |
+
assign _0304_ = ~f01[6];
|
| 1142 |
+
assign _0305_ = ~f01[7];
|
| 1143 |
+
assign _0306_ = ~f38[3];
|
| 1144 |
+
assign _0307_ = ~f38[6];
|
| 1145 |
+
assign _0308_ = ~f38[5];
|
| 1146 |
+
assign _0309_ = ~f38[7];
|
| 1147 |
+
assign _0310_ = ~f20[1];
|
| 1148 |
+
assign _0311_ = ~f20[0];
|
| 1149 |
+
assign _0312_ = ~f20[4];
|
| 1150 |
+
assign _0313_ = ~f20[3];
|
| 1151 |
+
assign _0314_ = ~f20[6];
|
| 1152 |
+
assign _0315_ = ~f20[7];
|
| 1153 |
+
assign _0316_ = ~f39[6];
|
| 1154 |
+
assign _0317_ = ~f39[5];
|
| 1155 |
+
assign _0318_ = ~f39[4];
|
| 1156 |
+
assign _0319_ = ~f39[7];
|
| 1157 |
+
assign _0320_ = ~f08[5];
|
| 1158 |
+
assign _0321_ = ~f08[4];
|
| 1159 |
+
assign _0322_ = ~f08[3];
|
| 1160 |
+
assign _0323_ = ~f08[6];
|
| 1161 |
+
assign _0324_ = ~f08[7];
|
| 1162 |
+
assign _0325_ = ~f10[1];
|
| 1163 |
+
assign _0326_ = ~f10[0];
|
| 1164 |
+
assign _0327_ = ~f10[4];
|
| 1165 |
+
assign _0328_ = ~f10[5];
|
| 1166 |
+
assign _0329_ = ~f10[6];
|
| 1167 |
+
assign _0330_ = ~f10[3];
|
| 1168 |
+
assign _0331_ = ~f10[7];
|
| 1169 |
+
assign _0332_ = ~f13[1];
|
| 1170 |
+
assign _0333_ = ~f13[2];
|
| 1171 |
+
assign _0334_ = ~f13[4];
|
| 1172 |
+
assign _0335_ = ~f13[6];
|
| 1173 |
+
assign _0336_ = ~f13[5];
|
| 1174 |
+
assign _0337_ = ~f13[7];
|
| 1175 |
+
assign _0338_ = ~f09[6];
|
| 1176 |
+
assign _0339_ = ~f09[5];
|
| 1177 |
+
assign _0340_ = ~f09[4];
|
| 1178 |
+
assign _0341_ = ~f09[7];
|
| 1179 |
+
assign _0342_ = ~f11[1];
|
| 1180 |
+
assign _0343_ = ~f11[0];
|
| 1181 |
+
assign _0344_ = ~f11[5];
|
| 1182 |
+
assign _0345_ = ~f11[4];
|
| 1183 |
+
assign _0346_ = ~f11[3];
|
| 1184 |
+
assign _0347_ = ~f11[6];
|
| 1185 |
+
assign _0348_ = ~f11[7];
|
| 1186 |
+
assign _0349_ = ~f19[2];
|
| 1187 |
+
assign _0350_ = ~f19[1];
|
| 1188 |
+
assign _0351_ = ~f19[0];
|
| 1189 |
+
assign _0352_ = ~f19[6];
|
| 1190 |
+
assign _0353_ = ~f19[5];
|
| 1191 |
+
assign _0354_ = ~f19[4];
|
| 1192 |
+
assign _0355_ = ~f19[7];
|
| 1193 |
+
assign _0356_ = ~f15[3];
|
| 1194 |
+
assign _0357_ = ~f15[2];
|
| 1195 |
+
assign _0358_ = ~f15[1];
|
| 1196 |
+
assign _0359_ = ~f15[0];
|
| 1197 |
+
assign _0360_ = ~f15[6];
|
| 1198 |
+
assign _0361_ = ~f15[5];
|
| 1199 |
+
assign _0362_ = ~f15[7];
|
| 1200 |
+
assign _0363_ = ~f17[4];
|
| 1201 |
+
assign _0364_ = ~f17[3];
|
| 1202 |
+
assign _0365_ = ~f17[6];
|
| 1203 |
+
assign _0366_ = ~f17[5];
|
| 1204 |
+
assign _0367_ = ~f17[7];
|
| 1205 |
+
assign _0368_ = ~f31[3];
|
| 1206 |
+
assign _0369_ = ~f31[6];
|
| 1207 |
+
assign _0370_ = ~f31[5];
|
| 1208 |
+
assign _0371_ = ~f31[7];
|
| 1209 |
+
assign _0372_ = ~f33[2];
|
| 1210 |
+
assign _0373_ = ~f33[3];
|
| 1211 |
+
assign _0374_ = ~f33[5];
|
| 1212 |
+
assign _0375_ = ~f33[6];
|
| 1213 |
+
assign _0376_ = ~f33[7];
|
| 1214 |
+
assign _0377_ = ~f35[5];
|
| 1215 |
+
assign _0378_ = ~f35[6];
|
| 1216 |
+
assign _0379_ = ~f35[4];
|
| 1217 |
+
assign _0380_ = ~f35[7];
|
| 1218 |
+
assign _0381_ = ~f27[1];
|
| 1219 |
+
assign _0382_ = ~f27[2];
|
| 1220 |
+
assign _0383_ = ~f27[3];
|
| 1221 |
+
assign _0384_ = ~f27[6];
|
| 1222 |
+
assign _0385_ = ~f27[7];
|
| 1223 |
+
assign _0386_ = ~f29[2];
|
| 1224 |
+
assign _0387_ = ~f29[1];
|
| 1225 |
+
assign _0388_ = ~f29[3];
|
| 1226 |
+
assign _0389_ = ~f29[5];
|
| 1227 |
+
assign _0390_ = ~f29[6];
|
| 1228 |
+
assign _0391_ = ~f29[7];
|
| 1229 |
+
assign _0392_ = ~f25[7];
|
| 1230 |
+
assign _0393_ = ~f06[3];
|
| 1231 |
+
assign _0394_ = ~f06[2];
|
| 1232 |
+
assign _0395_ = ~f06[1];
|
| 1233 |
+
assign _0396_ = ~f06[0];
|
| 1234 |
+
assign _0397_ = ~f06[5];
|
| 1235 |
+
assign _0398_ = ~f06[6];
|
| 1236 |
+
assign _0399_ = ~f06[7];
|
| 1237 |
+
assign _0400_ = ~f23[6];
|
| 1238 |
+
assign _0401_ = ~f23[4];
|
| 1239 |
+
assign _0402_ = ~f23[5];
|
| 1240 |
+
assign _0403_ = ~f23[7];
|
| 1241 |
+
assign _0404_ = _0201_ & _0202_;
|
| 1242 |
+
assign _0405_ = _0199_ & _0200_;
|
| 1243 |
+
assign _0406_ = _0404_ & _0405_;
|
| 1244 |
+
assign _0407_ = ~_0406_;
|
| 1245 |
+
assign _0408_ = f37[4] & _0407_;
|
| 1246 |
+
assign _0409_ = ~_0408_;
|
| 1247 |
+
assign _0410_ = _0203_ & _0204_;
|
| 1248 |
+
assign _0411_ = _0409_ & _0410_;
|
| 1249 |
+
assign _0412_ = ~_0411_;
|
| 1250 |
+
assign _0413_ = _0205_ & _0412_;
|
| 1251 |
+
assign _0414_ = ~_0413_;
|
| 1252 |
+
assign _0415_ = _0206_ & _0207_;
|
| 1253 |
+
assign _0416_ = _0208_ & _0415_;
|
| 1254 |
+
assign _0417_ = ~_0416_;
|
| 1255 |
+
assign _0418_ = f14[3] & _0417_;
|
| 1256 |
+
assign _0419_ = ~_0418_;
|
| 1257 |
+
assign _0420_ = _0209_ & _0210_;
|
| 1258 |
+
assign _0421_ = _0211_ & _0420_;
|
| 1259 |
+
assign _0422_ = _0419_ & _0421_;
|
| 1260 |
+
assign _0423_ = ~_0422_;
|
| 1261 |
+
assign _0424_ = _0212_ & _0423_;
|
| 1262 |
+
assign _0425_ = f16[2] & f16[1];
|
| 1263 |
+
assign _0426_ = f16[0] & _0425_;
|
| 1264 |
+
assign _0427_ = ~_0426_;
|
| 1265 |
+
assign _0428_ = _0213_ & _0214_;
|
| 1266 |
+
assign _0429_ = _0215_ & _0216_;
|
| 1267 |
+
assign _0430_ = _0428_ & _0429_;
|
| 1268 |
+
assign _0431_ = _0427_ & _0430_;
|
| 1269 |
+
assign _0432_ = ~_0431_;
|
| 1270 |
+
assign _0433_ = _0217_ & _0432_;
|
| 1271 |
+
assign _0434_ = f36[1] & f36[0];
|
| 1272 |
+
assign _0435_ = ~_0434_;
|
| 1273 |
+
assign _0436_ = _0218_ & _0219_;
|
| 1274 |
+
assign _0437_ = _0435_ & _0436_;
|
| 1275 |
+
assign _0438_ = ~_0437_;
|
| 1276 |
+
assign _0439_ = f36[4] & _0438_;
|
| 1277 |
+
assign _0440_ = ~_0439_;
|
| 1278 |
+
assign _0441_ = _0220_ & _0221_;
|
| 1279 |
+
assign _0442_ = _0440_ & _0441_;
|
| 1280 |
+
assign _0443_ = ~_0442_;
|
| 1281 |
+
assign _0444_ = _0222_ & _0443_;
|
| 1282 |
+
assign _0445_ = ~_0444_;
|
| 1283 |
+
assign _0446_ = f32[3] & f32[2];
|
| 1284 |
+
assign _0447_ = ~_0446_;
|
| 1285 |
+
assign _0448_ = _0224_ & _0225_;
|
| 1286 |
+
assign _0449_ = _0447_ & _0448_;
|
| 1287 |
+
assign _0450_ = _0223_ & _0449_;
|
| 1288 |
+
assign _0451_ = ~_0450_;
|
| 1289 |
+
assign _0452_ = _0226_ & _0451_;
|
| 1290 |
+
assign _0453_ = ~_0452_;
|
| 1291 |
+
assign _0454_ = _0227_ & _0228_;
|
| 1292 |
+
assign _0455_ = ~_0454_;
|
| 1293 |
+
assign _0456_ = f34[4] & _0455_;
|
| 1294 |
+
assign _0457_ = ~_0456_;
|
| 1295 |
+
assign _0458_ = _0229_ & _0230_;
|
| 1296 |
+
assign _0459_ = _0457_ & _0458_;
|
| 1297 |
+
assign _0460_ = ~_0459_;
|
| 1298 |
+
assign _0461_ = _0231_ & _0460_;
|
| 1299 |
+
assign _0462_ = ~_0461_;
|
| 1300 |
+
assign _0463_ = _0453_ & _0462_;
|
| 1301 |
+
assign _0464_ = ~_0463_;
|
| 1302 |
+
assign _0465_ = _0452_ ^ _0461_;
|
| 1303 |
+
assign _0466_ = _0445_ & _0465_;
|
| 1304 |
+
assign _0467_ = ~_0466_;
|
| 1305 |
+
assign _0468_ = _0445_ ^ _0465_;
|
| 1306 |
+
assign _0469_ = _0433_ & _0468_;
|
| 1307 |
+
assign _0470_ = ~_0469_;
|
| 1308 |
+
assign _0471_ = _0433_ ^ _0468_;
|
| 1309 |
+
assign _0472_ = _0424_ & _0471_;
|
| 1310 |
+
assign _0473_ = ~_0472_;
|
| 1311 |
+
assign _0474_ = _0424_ ^ _0471_;
|
| 1312 |
+
assign _0475_ = _0232_ & _0233_;
|
| 1313 |
+
assign _0476_ = _0234_ & _0475_;
|
| 1314 |
+
assign _0477_ = ~_0476_;
|
| 1315 |
+
assign _0478_ = f04[4] & _0477_;
|
| 1316 |
+
assign _0479_ = ~_0478_;
|
| 1317 |
+
assign _0480_ = _0235_ & _0236_;
|
| 1318 |
+
assign _0481_ = _0479_ & _0480_;
|
| 1319 |
+
assign _0482_ = ~_0481_;
|
| 1320 |
+
assign _0483_ = _0237_ & _0482_;
|
| 1321 |
+
assign _0484_ = _0238_ & _0239_;
|
| 1322 |
+
assign _0485_ = _0240_ & _0484_;
|
| 1323 |
+
assign _0486_ = ~_0485_;
|
| 1324 |
+
assign _0487_ = f30[4] & _0486_;
|
| 1325 |
+
assign _0488_ = ~_0487_;
|
| 1326 |
+
assign _0489_ = _0241_ & _0242_;
|
| 1327 |
+
assign _0490_ = _0488_ & _0489_;
|
| 1328 |
+
assign _0491_ = ~_0490_;
|
| 1329 |
+
assign _0492_ = _0243_ & _0491_;
|
| 1330 |
+
assign _0493_ = ~_0492_;
|
| 1331 |
+
assign _0494_ = f26[1] & f26[0];
|
| 1332 |
+
assign _0495_ = ~_0494_;
|
| 1333 |
+
assign _0496_ = _0244_ & _0245_;
|
| 1334 |
+
assign _0497_ = _0495_ & _0496_;
|
| 1335 |
+
assign _0498_ = ~_0497_;
|
| 1336 |
+
assign _0499_ = f26[4] & _0498_;
|
| 1337 |
+
assign _0500_ = ~_0499_;
|
| 1338 |
+
assign _0501_ = _0246_ & _0247_;
|
| 1339 |
+
assign _0502_ = _0500_ & _0501_;
|
| 1340 |
+
assign _0503_ = ~_0502_;
|
| 1341 |
+
assign _0504_ = _0248_ & _0503_;
|
| 1342 |
+
assign _0505_ = ~_0504_;
|
| 1343 |
+
assign _0506_ = _0249_ & _0250_;
|
| 1344 |
+
assign _0507_ = _0251_ & _0506_;
|
| 1345 |
+
assign _0508_ = ~_0507_;
|
| 1346 |
+
assign _0509_ = f28[4] & _0508_;
|
| 1347 |
+
assign _0510_ = ~_0509_;
|
| 1348 |
+
assign _0511_ = _0252_ & _0253_;
|
| 1349 |
+
assign _0512_ = _0510_ & _0511_;
|
| 1350 |
+
assign _0513_ = ~_0512_;
|
| 1351 |
+
assign _0514_ = _0254_ & _0513_;
|
| 1352 |
+
assign _0515_ = ~_0514_;
|
| 1353 |
+
assign _0516_ = _0505_ & _0515_;
|
| 1354 |
+
assign _0517_ = ~_0516_;
|
| 1355 |
+
assign _0518_ = _0504_ ^ _0514_;
|
| 1356 |
+
assign _0519_ = _0493_ & _0518_;
|
| 1357 |
+
assign _0520_ = ~_0519_;
|
| 1358 |
+
assign _0521_ = _0493_ ^ _0518_;
|
| 1359 |
+
assign _0522_ = _0257_ & _0258_;
|
| 1360 |
+
assign _0523_ = _0255_ & _0256_;
|
| 1361 |
+
assign _0524_ = _0522_ & _0523_;
|
| 1362 |
+
assign _0525_ = ~_0524_;
|
| 1363 |
+
assign _0526_ = _0259_ & _0525_;
|
| 1364 |
+
assign _0527_ = f24[3] & f24[2];
|
| 1365 |
+
assign _0528_ = f24[1] & f24[0];
|
| 1366 |
+
assign _0529_ = _0527_ & _0528_;
|
| 1367 |
+
assign _0530_ = ~_0529_;
|
| 1368 |
+
assign _0531_ = _0260_ & _0261_;
|
| 1369 |
+
assign _0532_ = _0262_ & _0531_;
|
| 1370 |
+
assign _0533_ = _0530_ & _0532_;
|
| 1371 |
+
assign _0534_ = ~_0533_;
|
| 1372 |
+
assign _0535_ = _0263_ & _0534_;
|
| 1373 |
+
assign _0536_ = ~_0535_;
|
| 1374 |
+
assign _0537_ = f21[3] & f21[2];
|
| 1375 |
+
assign _0538_ = f21[1] & _0537_;
|
| 1376 |
+
assign _0539_ = ~_0538_;
|
| 1377 |
+
assign _0540_ = _0264_ & _0539_;
|
| 1378 |
+
assign _0541_ = ~_0540_;
|
| 1379 |
+
assign _0542_ = f21[5] & _0541_;
|
| 1380 |
+
assign _0543_ = ~_0542_;
|
| 1381 |
+
assign _0544_ = _0265_ & _0543_;
|
| 1382 |
+
assign _0545_ = ~_0544_;
|
| 1383 |
+
assign _0546_ = _0266_ & _0545_;
|
| 1384 |
+
assign _0547_ = ~_0546_;
|
| 1385 |
+
assign _0548_ = _0267_ & _0268_;
|
| 1386 |
+
assign _0549_ = ~_0548_;
|
| 1387 |
+
assign _0550_ = f22[4] & _0549_;
|
| 1388 |
+
assign _0551_ = ~_0550_;
|
| 1389 |
+
assign _0552_ = _0269_ & _0270_;
|
| 1390 |
+
assign _0553_ = _0551_ & _0552_;
|
| 1391 |
+
assign _0554_ = ~_0553_;
|
| 1392 |
+
assign _0555_ = _0271_ & _0554_;
|
| 1393 |
+
assign _0556_ = ~_0555_;
|
| 1394 |
+
assign _0557_ = _0547_ & _0556_;
|
| 1395 |
+
assign _0558_ = ~_0557_;
|
| 1396 |
+
assign _0559_ = _0546_ ^ _0555_;
|
| 1397 |
+
assign _0560_ = _0536_ & _0559_;
|
| 1398 |
+
assign _0561_ = ~_0560_;
|
| 1399 |
+
assign _0562_ = _0536_ ^ _0559_;
|
| 1400 |
+
assign _0563_ = _0526_ & _0562_;
|
| 1401 |
+
assign _0564_ = ~_0563_;
|
| 1402 |
+
assign _0565_ = _0526_ ^ _0562_;
|
| 1403 |
+
assign _0566_ = _0521_ & _0565_;
|
| 1404 |
+
assign _0567_ = ~_0566_;
|
| 1405 |
+
assign _0568_ = _0521_ ^ _0565_;
|
| 1406 |
+
assign _0569_ = _0483_ & _0568_;
|
| 1407 |
+
assign _0570_ = ~_0569_;
|
| 1408 |
+
assign _0571_ = _0483_ ^ _0568_;
|
| 1409 |
+
assign _0572_ = _0474_ & _0571_;
|
| 1410 |
+
assign _0573_ = ~_0572_;
|
| 1411 |
+
assign _0574_ = _0474_ ^ _0571_;
|
| 1412 |
+
assign _0575_ = _0414_ & _0574_;
|
| 1413 |
+
assign _0576_ = ~_0575_;
|
| 1414 |
+
assign _0577_ = f00[1] & f00[2];
|
| 1415 |
+
assign _0578_ = ~_0577_;
|
| 1416 |
+
assign _0579_ = _0272_ & _0578_;
|
| 1417 |
+
assign _0580_ = ~_0579_;
|
| 1418 |
+
assign _0581_ = f00[5] & f00[4];
|
| 1419 |
+
assign _0582_ = _0580_ & _0581_;
|
| 1420 |
+
assign _0583_ = ~_0582_;
|
| 1421 |
+
assign _0584_ = _0273_ & _0583_;
|
| 1422 |
+
assign _0585_ = ~_0584_;
|
| 1423 |
+
assign _0586_ = _0274_ & _0585_;
|
| 1424 |
+
assign _0587_ = f02[1] & f02[0];
|
| 1425 |
+
assign _0588_ = ~_0587_;
|
| 1426 |
+
assign _0589_ = _0275_ & _0588_;
|
| 1427 |
+
assign _0590_ = ~_0589_;
|
| 1428 |
+
assign _0591_ = f02[4] & f02[3];
|
| 1429 |
+
assign _0592_ = _0590_ & _0591_;
|
| 1430 |
+
assign _0593_ = ~_0592_;
|
| 1431 |
+
assign _0594_ = _0276_ & _0277_;
|
| 1432 |
+
assign _0595_ = _0593_ & _0594_;
|
| 1433 |
+
assign _0596_ = ~_0595_;
|
| 1434 |
+
assign _0597_ = _0278_ & _0596_;
|
| 1435 |
+
assign _0598_ = _0279_ & _0280_;
|
| 1436 |
+
assign _0599_ = _0281_ & _0284_;
|
| 1437 |
+
assign _0600_ = _0282_ & _0283_;
|
| 1438 |
+
assign _0601_ = _0598_ & _0600_;
|
| 1439 |
+
assign _0602_ = _0599_ & _0601_;
|
| 1440 |
+
assign _0603_ = ~_0602_;
|
| 1441 |
+
assign _0604_ = _0285_ & _0603_;
|
| 1442 |
+
assign _0605_ = _0286_ & _0287_;
|
| 1443 |
+
assign _0606_ = ~_0605_;
|
| 1444 |
+
assign _0607_ = f03[5] & f03[4];
|
| 1445 |
+
assign _0608_ = f03[3] & f03[2];
|
| 1446 |
+
assign _0609_ = _0607_ & _0608_;
|
| 1447 |
+
assign _0610_ = _0606_ & _0609_;
|
| 1448 |
+
assign _0611_ = ~_0610_;
|
| 1449 |
+
assign _0612_ = _0288_ & _0611_;
|
| 1450 |
+
assign _0613_ = ~_0612_;
|
| 1451 |
+
assign _0614_ = _0289_ & _0613_;
|
| 1452 |
+
assign _0615_ = _0290_ & _0291_;
|
| 1453 |
+
assign _0616_ = ~_0615_;
|
| 1454 |
+
assign _0617_ = f05[3] & f05[2];
|
| 1455 |
+
assign _0618_ = _0616_ & _0617_;
|
| 1456 |
+
assign _0619_ = ~_0618_;
|
| 1457 |
+
assign _0620_ = _0292_ & _0293_;
|
| 1458 |
+
assign _0621_ = _0294_ & _0620_;
|
| 1459 |
+
assign _0622_ = _0619_ & _0621_;
|
| 1460 |
+
assign _0623_ = ~_0622_;
|
| 1461 |
+
assign _0624_ = _0295_ & _0623_;
|
| 1462 |
+
assign _0625_ = _0614_ & _0624_;
|
| 1463 |
+
assign _0626_ = ~_0625_;
|
| 1464 |
+
assign _0627_ = _0614_ ^ _0624_;
|
| 1465 |
+
assign _0628_ = _0604_ & _0627_;
|
| 1466 |
+
assign _0629_ = ~_0628_;
|
| 1467 |
+
assign _0630_ = _0604_ ^ _0627_;
|
| 1468 |
+
assign _0631_ = f12[2] & f12[1];
|
| 1469 |
+
assign _0632_ = f12[0] & _0631_;
|
| 1470 |
+
assign _0633_ = ~_0632_;
|
| 1471 |
+
assign _0634_ = _0296_ & _0297_;
|
| 1472 |
+
assign _0635_ = _0298_ & _0299_;
|
| 1473 |
+
assign _0636_ = _0634_ & _0635_;
|
| 1474 |
+
assign _0637_ = _0633_ & _0636_;
|
| 1475 |
+
assign _0638_ = ~_0637_;
|
| 1476 |
+
assign _0639_ = _0300_ & _0638_;
|
| 1477 |
+
assign _0640_ = _0301_ & _0302_;
|
| 1478 |
+
assign _0641_ = _0303_ & _0640_;
|
| 1479 |
+
assign _0642_ = ~_0641_;
|
| 1480 |
+
assign _0643_ = f01[4] & f01[3];
|
| 1481 |
+
assign _0644_ = f01[5] & _0643_;
|
| 1482 |
+
assign _0645_ = _0642_ & _0644_;
|
| 1483 |
+
assign _0646_ = ~_0645_;
|
| 1484 |
+
assign _0647_ = _0304_ & _0646_;
|
| 1485 |
+
assign _0648_ = ~_0647_;
|
| 1486 |
+
assign _0649_ = _0305_ & _0648_;
|
| 1487 |
+
assign _0650_ = f38[1] & f38[2];
|
| 1488 |
+
assign _0651_ = ~_0650_;
|
| 1489 |
+
assign _0652_ = _0306_ & _0651_;
|
| 1490 |
+
assign _0653_ = ~_0652_;
|
| 1491 |
+
assign _0654_ = f38[4] & _0653_;
|
| 1492 |
+
assign _0655_ = ~_0654_;
|
| 1493 |
+
assign _0656_ = _0307_ & _0308_;
|
| 1494 |
+
assign _0657_ = _0655_ & _0656_;
|
| 1495 |
+
assign _0658_ = ~_0657_;
|
| 1496 |
+
assign _0659_ = _0309_ & _0658_;
|
| 1497 |
+
assign _0660_ = ~_0659_;
|
| 1498 |
+
assign _0661_ = _0310_ & _0311_;
|
| 1499 |
+
assign _0662_ = ~_0661_;
|
| 1500 |
+
assign _0663_ = f20[2] & _0662_;
|
| 1501 |
+
assign _0664_ = ~_0663_;
|
| 1502 |
+
assign _0665_ = _0312_ & _0313_;
|
| 1503 |
+
assign _0666_ = _0664_ & _0665_;
|
| 1504 |
+
assign _0667_ = ~_0666_;
|
| 1505 |
+
assign _0668_ = f20[5] & _0667_;
|
| 1506 |
+
assign _0669_ = ~_0668_;
|
| 1507 |
+
assign _0670_ = _0314_ & _0669_;
|
| 1508 |
+
assign _0671_ = ~_0670_;
|
| 1509 |
+
assign _0672_ = _0315_ & _0671_;
|
| 1510 |
+
assign _0673_ = ~_0672_;
|
| 1511 |
+
assign _0674_ = _0660_ & _0673_;
|
| 1512 |
+
assign _0675_ = ~_0674_;
|
| 1513 |
+
assign _0676_ = _0659_ ^ _0672_;
|
| 1514 |
+
assign _0677_ = _0649_ & _0676_;
|
| 1515 |
+
assign _0678_ = ~_0677_;
|
| 1516 |
+
assign _0679_ = _0649_ ^ _0676_;
|
| 1517 |
+
assign _0680_ = _0639_ & _0679_;
|
| 1518 |
+
assign _0681_ = ~_0680_;
|
| 1519 |
+
assign _0682_ = _0639_ ^ _0679_;
|
| 1520 |
+
assign _0683_ = _0630_ & _0682_;
|
| 1521 |
+
assign _0684_ = ~_0683_;
|
| 1522 |
+
assign _0685_ = _0630_ ^ _0682_;
|
| 1523 |
+
assign _0686_ = _0597_ & _0685_;
|
| 1524 |
+
assign _0687_ = ~_0686_;
|
| 1525 |
+
assign _0688_ = _0597_ ^ _0685_;
|
| 1526 |
+
assign _0689_ = _0586_ & _0688_;
|
| 1527 |
+
assign _0690_ = ~_0689_;
|
| 1528 |
+
assign _0691_ = _0586_ ^ _0688_;
|
| 1529 |
+
assign _0692_ = _0414_ ^ _0574_;
|
| 1530 |
+
assign _0693_ = _0691_ & _0692_;
|
| 1531 |
+
assign _0694_ = ~_0693_;
|
| 1532 |
+
assign _0695_ = _0576_ & _0694_;
|
| 1533 |
+
assign _0696_ = ~_0695_;
|
| 1534 |
+
assign _0697_ = _0681_ & _0684_;
|
| 1535 |
+
assign _0698_ = ~_0697_;
|
| 1536 |
+
assign _0699_ = _0470_ & _0473_;
|
| 1537 |
+
assign _0700_ = ~_0699_;
|
| 1538 |
+
assign _0701_ = _0675_ & _0678_;
|
| 1539 |
+
assign _0702_ = ~_0701_;
|
| 1540 |
+
assign _0703_ = _0700_ & _0702_;
|
| 1541 |
+
assign _0704_ = ~_0703_;
|
| 1542 |
+
assign _0705_ = _0699_ ^ _0701_;
|
| 1543 |
+
assign _0706_ = _0698_ & _0705_;
|
| 1544 |
+
assign _0707_ = ~_0706_;
|
| 1545 |
+
assign _0708_ = _0698_ ^ _0705_;
|
| 1546 |
+
assign _0709_ = _0697_ ^ _0705_;
|
| 1547 |
+
assign _0710_ = _0570_ & _0573_;
|
| 1548 |
+
assign _0711_ = ~_0710_;
|
| 1549 |
+
assign _0712_ = _0517_ & _0520_;
|
| 1550 |
+
assign _0713_ = ~_0712_;
|
| 1551 |
+
assign _0714_ = _0464_ & _0467_;
|
| 1552 |
+
assign _0715_ = _0712_ & _0714_;
|
| 1553 |
+
assign _0716_ = ~_0715_;
|
| 1554 |
+
assign _0717_ = _0713_ ^ _0714_;
|
| 1555 |
+
assign _0718_ = _0558_ & _0561_;
|
| 1556 |
+
assign _0719_ = ~_0718_;
|
| 1557 |
+
assign _0720_ = _0564_ & _0567_;
|
| 1558 |
+
assign _0721_ = ~_0720_;
|
| 1559 |
+
assign _0722_ = _0718_ & _0720_;
|
| 1560 |
+
assign _0723_ = _0719_ & _0721_;
|
| 1561 |
+
assign _0724_ = ~_0723_;
|
| 1562 |
+
assign _0725_ = _0718_ ^ _0720_;
|
| 1563 |
+
assign _0726_ = _0717_ & _0725_;
|
| 1564 |
+
assign _0727_ = ~_0726_;
|
| 1565 |
+
assign _0728_ = _0717_ ^ _0725_;
|
| 1566 |
+
assign _0729_ = _0711_ & _0728_;
|
| 1567 |
+
assign _0730_ = ~_0729_;
|
| 1568 |
+
assign _0731_ = _0711_ ^ _0728_;
|
| 1569 |
+
assign _0732_ = _0708_ & _0731_;
|
| 1570 |
+
assign _0733_ = ~_0732_;
|
| 1571 |
+
assign _0734_ = _0708_ ^ _0731_;
|
| 1572 |
+
assign _0735_ = _0709_ ^ _0731_;
|
| 1573 |
+
assign _0736_ = _0696_ & _0734_;
|
| 1574 |
+
assign _0737_ = ~_0736_;
|
| 1575 |
+
assign _0738_ = f39[3] & f39[2];
|
| 1576 |
+
assign _0739_ = f39[1] & f39[0];
|
| 1577 |
+
assign _0740_ = _0738_ & _0739_;
|
| 1578 |
+
assign _0741_ = ~_0740_;
|
| 1579 |
+
assign _0742_ = _0316_ & _0317_;
|
| 1580 |
+
assign _0743_ = _0318_ & _0742_;
|
| 1581 |
+
assign _0744_ = _0741_ & _0743_;
|
| 1582 |
+
assign _0745_ = ~_0744_;
|
| 1583 |
+
assign _0746_ = _0319_ & _0745_;
|
| 1584 |
+
assign _0747_ = ~_0746_;
|
| 1585 |
+
assign _0748_ = f08[1] & f08[2];
|
| 1586 |
+
assign _0749_ = ~_0748_;
|
| 1587 |
+
assign _0750_ = _0322_ & _0323_;
|
| 1588 |
+
assign _0751_ = _0320_ & _0321_;
|
| 1589 |
+
assign _0752_ = _0750_ & _0751_;
|
| 1590 |
+
assign _0753_ = _0749_ & _0752_;
|
| 1591 |
+
assign _0754_ = ~_0753_;
|
| 1592 |
+
assign _0755_ = _0324_ & _0754_;
|
| 1593 |
+
assign _0756_ = _0325_ & _0326_;
|
| 1594 |
+
assign _0757_ = ~_0756_;
|
| 1595 |
+
assign _0758_ = f10[2] & _0757_;
|
| 1596 |
+
assign _0759_ = ~_0758_;
|
| 1597 |
+
assign _0760_ = _0327_ & _0328_;
|
| 1598 |
+
assign _0761_ = _0329_ & _0330_;
|
| 1599 |
+
assign _0762_ = _0760_ & _0761_;
|
| 1600 |
+
assign _0763_ = _0759_ & _0762_;
|
| 1601 |
+
assign _0764_ = ~_0763_;
|
| 1602 |
+
assign _0765_ = _0331_ & _0764_;
|
| 1603 |
+
assign _0766_ = _0332_ & _0333_;
|
| 1604 |
+
assign _0767_ = ~_0766_;
|
| 1605 |
+
assign _0768_ = f13[3] & _0767_;
|
| 1606 |
+
assign _0769_ = ~_0768_;
|
| 1607 |
+
assign _0770_ = _0334_ & _0335_;
|
| 1608 |
+
assign _0771_ = _0336_ & _0770_;
|
| 1609 |
+
assign _0772_ = _0769_ & _0771_;
|
| 1610 |
+
assign _0773_ = ~_0772_;
|
| 1611 |
+
assign _0774_ = _0337_ & _0773_;
|
| 1612 |
+
assign _0775_ = f09[2] & f09[3];
|
| 1613 |
+
assign _0776_ = ~_0775_;
|
| 1614 |
+
assign _0777_ = _0339_ & _0340_;
|
| 1615 |
+
assign _0778_ = _0776_ & _0777_;
|
| 1616 |
+
assign _0779_ = _0338_ & _0778_;
|
| 1617 |
+
assign _0780_ = ~_0779_;
|
| 1618 |
+
assign _0781_ = _0341_ & _0780_;
|
| 1619 |
+
assign _0782_ = _0342_ & _0343_;
|
| 1620 |
+
assign _0783_ = ~_0782_;
|
| 1621 |
+
assign _0784_ = f11[2] & _0783_;
|
| 1622 |
+
assign _0785_ = ~_0784_;
|
| 1623 |
+
assign _0786_ = _0344_ & _0345_;
|
| 1624 |
+
assign _0787_ = _0346_ & _0347_;
|
| 1625 |
+
assign _0788_ = _0786_ & _0787_;
|
| 1626 |
+
assign _0789_ = _0785_ & _0788_;
|
| 1627 |
+
assign _0790_ = ~_0789_;
|
| 1628 |
+
assign _0791_ = _0348_ & _0790_;
|
| 1629 |
+
assign _0792_ = _0781_ & _0791_;
|
| 1630 |
+
assign _0793_ = ~_0792_;
|
| 1631 |
+
assign _0794_ = _0781_ ^ _0791_;
|
| 1632 |
+
assign _0795_ = _0774_ & _0794_;
|
| 1633 |
+
assign _0796_ = ~_0795_;
|
| 1634 |
+
assign _0797_ = _0774_ ^ _0794_;
|
| 1635 |
+
assign _0798_ = _0765_ & _0797_;
|
| 1636 |
+
assign _0799_ = ~_0798_;
|
| 1637 |
+
assign _0800_ = _0765_ ^ _0797_;
|
| 1638 |
+
assign _0801_ = _0755_ & _0800_;
|
| 1639 |
+
assign _0802_ = ~_0801_;
|
| 1640 |
+
assign _0803_ = _0755_ ^ _0800_;
|
| 1641 |
+
assign _0804_ = _0747_ & _0803_;
|
| 1642 |
+
assign _0805_ = ~_0804_;
|
| 1643 |
+
assign _0806_ = _0349_ & _0350_;
|
| 1644 |
+
assign _0807_ = _0351_ & _0806_;
|
| 1645 |
+
assign _0808_ = ~_0807_;
|
| 1646 |
+
assign _0809_ = f19[3] & _0808_;
|
| 1647 |
+
assign _0810_ = ~_0809_;
|
| 1648 |
+
assign _0811_ = _0352_ & _0353_;
|
| 1649 |
+
assign _0812_ = _0354_ & _0811_;
|
| 1650 |
+
assign _0813_ = _0810_ & _0812_;
|
| 1651 |
+
assign _0814_ = ~_0813_;
|
| 1652 |
+
assign _0815_ = _0355_ & _0814_;
|
| 1653 |
+
assign _0816_ = _0358_ & _0359_;
|
| 1654 |
+
assign _0817_ = _0356_ & _0357_;
|
| 1655 |
+
assign _0818_ = _0816_ & _0817_;
|
| 1656 |
+
assign _0819_ = ~_0818_;
|
| 1657 |
+
assign _0820_ = f15[4] & _0819_;
|
| 1658 |
+
assign _0821_ = ~_0820_;
|
| 1659 |
+
assign _0822_ = _0360_ & _0361_;
|
| 1660 |
+
assign _0823_ = _0821_ & _0822_;
|
| 1661 |
+
assign _0824_ = ~_0823_;
|
| 1662 |
+
assign _0825_ = _0362_ & _0824_;
|
| 1663 |
+
assign _0826_ = f17[2] & f17[1];
|
| 1664 |
+
assign _0827_ = f17[0] & _0826_;
|
| 1665 |
+
assign _0828_ = ~_0827_;
|
| 1666 |
+
assign _0829_ = _0363_ & _0364_;
|
| 1667 |
+
assign _0830_ = _0365_ & _0366_;
|
| 1668 |
+
assign _0831_ = _0829_ & _0830_;
|
| 1669 |
+
assign _0832_ = _0828_ & _0831_;
|
| 1670 |
+
assign _0833_ = ~_0832_;
|
| 1671 |
+
assign _0834_ = _0367_ & _0833_;
|
| 1672 |
+
assign _0835_ = _0825_ & _0834_;
|
| 1673 |
+
assign _0836_ = ~_0835_;
|
| 1674 |
+
assign _0837_ = _0825_ ^ _0834_;
|
| 1675 |
+
assign _0838_ = _0815_ & _0837_;
|
| 1676 |
+
assign _0839_ = ~_0838_;
|
| 1677 |
+
assign _0840_ = _0815_ ^ _0837_;
|
| 1678 |
+
assign _0841_ = _0747_ ^ _0803_;
|
| 1679 |
+
assign _0842_ = _0840_ & _0841_;
|
| 1680 |
+
assign _0843_ = ~_0842_;
|
| 1681 |
+
assign _0844_ = _0805_ & _0843_;
|
| 1682 |
+
assign _0845_ = ~_0844_;
|
| 1683 |
+
assign _0846_ = _0687_ & _0690_;
|
| 1684 |
+
assign _0847_ = ~_0846_;
|
| 1685 |
+
assign _0848_ = _0626_ & _0629_;
|
| 1686 |
+
assign _0849_ = ~_0848_;
|
| 1687 |
+
assign _0850_ = _0793_ & _0796_;
|
| 1688 |
+
assign _0851_ = _0848_ & _0850_;
|
| 1689 |
+
assign _0852_ = ~_0851_;
|
| 1690 |
+
assign _0853_ = _0849_ ^ _0850_;
|
| 1691 |
+
assign _0854_ = _0799_ & _0802_;
|
| 1692 |
+
assign _0855_ = ~_0854_;
|
| 1693 |
+
assign _0856_ = _0853_ & _0855_;
|
| 1694 |
+
assign _0857_ = _0853_ ^ _0855_;
|
| 1695 |
+
assign _0858_ = ~_0857_;
|
| 1696 |
+
assign _0859_ = _0847_ & _0857_;
|
| 1697 |
+
assign _0860_ = ~_0859_;
|
| 1698 |
+
assign _0861_ = _0846_ ^ _0858_;
|
| 1699 |
+
assign _0862_ = _0845_ & _0861_;
|
| 1700 |
+
assign _0863_ = ~_0862_;
|
| 1701 |
+
assign _0864_ = _0845_ ^ _0861_;
|
| 1702 |
+
assign _0865_ = _0844_ ^ _0861_;
|
| 1703 |
+
assign _0866_ = _0695_ ^ _0735_;
|
| 1704 |
+
assign _0867_ = _0864_ & _0866_;
|
| 1705 |
+
assign _0868_ = ~_0867_;
|
| 1706 |
+
assign _0869_ = _0737_ & _0868_;
|
| 1707 |
+
assign _0870_ = ~_0869_;
|
| 1708 |
+
assign _0871_ = _0704_ & _0707_;
|
| 1709 |
+
assign _0872_ = ~_0871_;
|
| 1710 |
+
assign _0873_ = _0852_ & _0872_;
|
| 1711 |
+
assign _0874_ = ~_0873_;
|
| 1712 |
+
assign _0875_ = _0851_ ^ _0871_;
|
| 1713 |
+
assign _0876_ = _0856_ & _0875_;
|
| 1714 |
+
assign _0877_ = ~_0876_;
|
| 1715 |
+
assign _0878_ = _0856_ ^ _0875_;
|
| 1716 |
+
assign _0879_ = _0715_ & _0722_;
|
| 1717 |
+
assign _0880_ = ~_0879_;
|
| 1718 |
+
assign _0881_ = _0724_ & _0727_;
|
| 1719 |
+
assign _0882_ = ~_0881_;
|
| 1720 |
+
assign _0883_ = _0716_ & _0882_;
|
| 1721 |
+
assign _0884_ = ~_0883_;
|
| 1722 |
+
assign _0885_ = _0880_ & _0884_;
|
| 1723 |
+
assign _0886_ = ~_0885_;
|
| 1724 |
+
assign _0887_ = _0730_ & _0733_;
|
| 1725 |
+
assign _0888_ = ~_0887_;
|
| 1726 |
+
assign _0889_ = _0886_ & _0888_;
|
| 1727 |
+
assign _0890_ = ~_0889_;
|
| 1728 |
+
assign _0891_ = _0885_ ^ _0887_;
|
| 1729 |
+
assign _0892_ = _0878_ & _0891_;
|
| 1730 |
+
assign _0893_ = ~_0892_;
|
| 1731 |
+
assign _0894_ = _0878_ ^ _0891_;
|
| 1732 |
+
assign _0895_ = _0870_ & _0894_;
|
| 1733 |
+
assign _0896_ = ~_0895_;
|
| 1734 |
+
assign _0897_ = _0860_ & _0863_;
|
| 1735 |
+
assign _0898_ = ~_0897_;
|
| 1736 |
+
assign _0899_ = _0870_ ^ _0894_;
|
| 1737 |
+
assign _0900_ = _0898_ & _0899_;
|
| 1738 |
+
assign _0901_ = ~_0900_;
|
| 1739 |
+
assign _0902_ = _0896_ & _0901_;
|
| 1740 |
+
assign _0903_ = ~_0902_;
|
| 1741 |
+
assign _0904_ = _0874_ & _0877_;
|
| 1742 |
+
assign _0905_ = ~_0904_;
|
| 1743 |
+
assign _0000_ = _0890_ & _0893_;
|
| 1744 |
+
assign _0001_ = ~_0000_;
|
| 1745 |
+
assign _0002_ = _0879_ & _0000_;
|
| 1746 |
+
assign _0003_ = _0880_ & _0001_;
|
| 1747 |
+
assign _0004_ = _0879_ ^ _0000_;
|
| 1748 |
+
assign _0005_ = _0905_ ^ _0004_;
|
| 1749 |
+
assign _0006_ = _0902_ & _0005_;
|
| 1750 |
+
assign _0007_ = _0903_ ^ _0005_;
|
| 1751 |
+
assign _0008_ = f31[1] & f31[2];
|
| 1752 |
+
assign _0009_ = ~_0008_;
|
| 1753 |
+
assign _0010_ = _0368_ & _0009_;
|
| 1754 |
+
assign _0011_ = ~_0010_;
|
| 1755 |
+
assign _0012_ = f31[4] & _0011_;
|
| 1756 |
+
assign _0013_ = ~_0012_;
|
| 1757 |
+
assign _0014_ = _0369_ & _0370_;
|
| 1758 |
+
assign _0015_ = _0013_ & _0014_;
|
| 1759 |
+
assign _0016_ = ~_0015_;
|
| 1760 |
+
assign _0017_ = _0371_ & _0016_;
|
| 1761 |
+
assign _0018_ = ~_0017_;
|
| 1762 |
+
assign _0019_ = _0691_ ^ _0692_;
|
| 1763 |
+
assign _0020_ = _0018_ & _0019_;
|
| 1764 |
+
assign _0021_ = ~_0020_;
|
| 1765 |
+
assign _0022_ = f33[1] & f33[0];
|
| 1766 |
+
assign _0023_ = ~_0022_;
|
| 1767 |
+
assign _0024_ = _0372_ & _0373_;
|
| 1768 |
+
assign _0025_ = _0023_ & _0024_;
|
| 1769 |
+
assign _0026_ = ~_0025_;
|
| 1770 |
+
assign _0027_ = f33[4] & _0026_;
|
| 1771 |
+
assign _0028_ = ~_0027_;
|
| 1772 |
+
assign _0029_ = _0374_ & _0375_;
|
| 1773 |
+
assign _0030_ = _0028_ & _0029_;
|
| 1774 |
+
assign _0031_ = ~_0030_;
|
| 1775 |
+
assign _0032_ = _0376_ & _0031_;
|
| 1776 |
+
assign _0033_ = ~_0032_;
|
| 1777 |
+
assign _0034_ = f35[3] & f35[2];
|
| 1778 |
+
assign _0035_ = f35[1] & f35[0];
|
| 1779 |
+
assign _0036_ = _0034_ & _0035_;
|
| 1780 |
+
assign _0037_ = ~_0036_;
|
| 1781 |
+
assign _0038_ = _0377_ & _0378_;
|
| 1782 |
+
assign _0039_ = _0379_ & _0038_;
|
| 1783 |
+
assign _0040_ = _0037_ & _0039_;
|
| 1784 |
+
assign _0041_ = ~_0040_;
|
| 1785 |
+
assign _0042_ = _0380_ & _0041_;
|
| 1786 |
+
assign _0043_ = ~_0042_;
|
| 1787 |
+
assign _0044_ = _0840_ ^ _0841_;
|
| 1788 |
+
assign _0045_ = _0043_ & _0044_;
|
| 1789 |
+
assign _0046_ = ~_0045_;
|
| 1790 |
+
assign _0047_ = _0043_ ^ _0044_;
|
| 1791 |
+
assign _0048_ = _0033_ & _0047_;
|
| 1792 |
+
assign _0049_ = ~_0048_;
|
| 1793 |
+
assign _0050_ = _0033_ ^ _0047_;
|
| 1794 |
+
assign _0051_ = _0018_ ^ _0019_;
|
| 1795 |
+
assign _0052_ = _0050_ & _0051_;
|
| 1796 |
+
assign _0053_ = ~_0052_;
|
| 1797 |
+
assign _0054_ = _0021_ & _0053_;
|
| 1798 |
+
assign _0055_ = ~_0054_;
|
| 1799 |
+
assign _0056_ = _0864_ ^ _0866_;
|
| 1800 |
+
assign _0057_ = _0865_ ^ _0866_;
|
| 1801 |
+
assign _0058_ = _0055_ & _0056_;
|
| 1802 |
+
assign _0059_ = ~_0058_;
|
| 1803 |
+
assign _0060_ = _0046_ & _0049_;
|
| 1804 |
+
assign _0061_ = ~_0060_;
|
| 1805 |
+
assign _0062_ = _0054_ ^ _0057_;
|
| 1806 |
+
assign _0063_ = _0061_ & _0062_;
|
| 1807 |
+
assign _0064_ = ~_0063_;
|
| 1808 |
+
assign _0065_ = _0059_ & _0064_;
|
| 1809 |
+
assign _0066_ = ~_0065_;
|
| 1810 |
+
assign _0067_ = _0897_ ^ _0899_;
|
| 1811 |
+
assign _0068_ = _0065_ & _0067_;
|
| 1812 |
+
assign _0069_ = ~_0068_;
|
| 1813 |
+
assign _0070_ = _0007_ & _0069_;
|
| 1814 |
+
assign _0071_ = ~_0070_;
|
| 1815 |
+
assign _0072_ = _0381_ & _0382_;
|
| 1816 |
+
assign _0073_ = _0383_ & _0072_;
|
| 1817 |
+
assign _0074_ = ~_0073_;
|
| 1818 |
+
assign _0075_ = f27[5] & f27[4];
|
| 1819 |
+
assign _0076_ = _0074_ & _0075_;
|
| 1820 |
+
assign _0077_ = ~_0076_;
|
| 1821 |
+
assign _0078_ = _0384_ & _0077_;
|
| 1822 |
+
assign _0079_ = ~_0078_;
|
| 1823 |
+
assign _0080_ = _0385_ & _0079_;
|
| 1824 |
+
assign _0081_ = ~_0080_;
|
| 1825 |
+
assign _0082_ = _0050_ ^ _0051_;
|
| 1826 |
+
assign _0083_ = _0081_ & _0082_;
|
| 1827 |
+
assign _0084_ = ~_0083_;
|
| 1828 |
+
assign _0085_ = _0386_ & _0387_;
|
| 1829 |
+
assign _0086_ = _0388_ & _0085_;
|
| 1830 |
+
assign _0087_ = ~_0086_;
|
| 1831 |
+
assign _0088_ = f29[4] & _0087_;
|
| 1832 |
+
assign _0089_ = ~_0088_;
|
| 1833 |
+
assign _0090_ = _0389_ & _0390_;
|
| 1834 |
+
assign _0091_ = _0089_ & _0090_;
|
| 1835 |
+
assign _0092_ = ~_0091_;
|
| 1836 |
+
assign _0093_ = _0391_ & _0092_;
|
| 1837 |
+
assign _0094_ = ~_0093_;
|
| 1838 |
+
assign _0095_ = _0081_ ^ _0082_;
|
| 1839 |
+
assign _0096_ = _0094_ & _0095_;
|
| 1840 |
+
assign _0097_ = ~_0096_;
|
| 1841 |
+
assign _0098_ = _0084_ & _0097_;
|
| 1842 |
+
assign _0099_ = ~_0098_;
|
| 1843 |
+
assign _0100_ = _0061_ ^ _0062_;
|
| 1844 |
+
assign _0101_ = _0060_ ^ _0062_;
|
| 1845 |
+
assign _0102_ = _0099_ & _0100_;
|
| 1846 |
+
assign _0103_ = ~_0102_;
|
| 1847 |
+
assign _0104_ = _0836_ & _0839_;
|
| 1848 |
+
assign _0105_ = ~_0104_;
|
| 1849 |
+
assign _0106_ = _0098_ ^ _0101_;
|
| 1850 |
+
assign _0107_ = _0105_ & _0106_;
|
| 1851 |
+
assign _0108_ = ~_0107_;
|
| 1852 |
+
assign _0109_ = _0103_ & _0108_;
|
| 1853 |
+
assign _0110_ = ~_0109_;
|
| 1854 |
+
assign _0111_ = _0066_ ^ _0067_;
|
| 1855 |
+
assign _0112_ = _0110_ & _0111_;
|
| 1856 |
+
assign _0113_ = ~_0112_;
|
| 1857 |
+
assign _0114_ = _0392_ & f25[6];
|
| 1858 |
+
assign _0115_ = ~_0114_;
|
| 1859 |
+
assign _0116_ = _0094_ ^ _0095_;
|
| 1860 |
+
assign _0117_ = _0115_ & _0116_;
|
| 1861 |
+
assign _0118_ = ~_0117_;
|
| 1862 |
+
assign _0119_ = _0395_ & _0396_;
|
| 1863 |
+
assign _0120_ = _0393_ & _0394_;
|
| 1864 |
+
assign _0121_ = _0119_ & _0120_;
|
| 1865 |
+
assign _0122_ = ~_0121_;
|
| 1866 |
+
assign _0123_ = f06[4] & _0122_;
|
| 1867 |
+
assign _0124_ = ~_0123_;
|
| 1868 |
+
assign _0125_ = _0397_ & _0398_;
|
| 1869 |
+
assign _0126_ = _0124_ & _0125_;
|
| 1870 |
+
assign _0127_ = ~_0126_;
|
| 1871 |
+
assign _0128_ = _0399_ & _0127_;
|
| 1872 |
+
assign _0129_ = _0115_ ^ _0116_;
|
| 1873 |
+
assign _0130_ = _0128_ & _0129_;
|
| 1874 |
+
assign _0131_ = ~_0130_;
|
| 1875 |
+
assign _0132_ = _0118_ & _0131_;
|
| 1876 |
+
assign _0133_ = ~_0132_;
|
| 1877 |
+
assign _0134_ = _0105_ ^ _0106_;
|
| 1878 |
+
assign _0135_ = _0104_ ^ _0106_;
|
| 1879 |
+
assign _0136_ = _0133_ & _0134_;
|
| 1880 |
+
assign _0137_ = ~_0136_;
|
| 1881 |
+
assign _0138_ = f23[2] & f23[1];
|
| 1882 |
+
assign _0139_ = f23[3] & f23[0];
|
| 1883 |
+
assign _0140_ = _0138_ & _0139_;
|
| 1884 |
+
assign _0141_ = ~_0140_;
|
| 1885 |
+
assign _0142_ = _0400_ & _0401_;
|
| 1886 |
+
assign _0143_ = _0402_ & _0142_;
|
| 1887 |
+
assign _0144_ = _0141_ & _0143_;
|
| 1888 |
+
assign _0145_ = ~_0144_;
|
| 1889 |
+
assign _0146_ = _0403_ & _0145_;
|
| 1890 |
+
assign _0147_ = ~_0146_;
|
| 1891 |
+
assign _0148_ = _0128_ ^ _0129_;
|
| 1892 |
+
assign _0149_ = _0147_ & _0148_;
|
| 1893 |
+
assign _0150_ = ~_0149_;
|
| 1894 |
+
assign _0151_ = _0132_ ^ _0135_;
|
| 1895 |
+
assign _0152_ = _0132_ ^ _0134_;
|
| 1896 |
+
assign _0153_ = _0149_ & _0151_;
|
| 1897 |
+
assign _0154_ = ~_0153_;
|
| 1898 |
+
assign _0155_ = _0137_ & _0154_;
|
| 1899 |
+
assign _0156_ = ~_0155_;
|
| 1900 |
+
assign _0157_ = _0110_ ^ _0111_;
|
| 1901 |
+
assign _0158_ = _0109_ ^ _0111_;
|
| 1902 |
+
assign _0159_ = _0156_ & _0157_;
|
| 1903 |
+
assign _0160_ = ~_0159_;
|
| 1904 |
+
assign _0161_ = _0113_ & _0160_;
|
| 1905 |
+
assign _0162_ = ~_0161_;
|
| 1906 |
+
assign _0163_ = _0007_ ^ _0069_;
|
| 1907 |
+
assign _0164_ = _0007_ ^ _0068_;
|
| 1908 |
+
assign _0165_ = _0162_ & _0163_;
|
| 1909 |
+
assign _0166_ = ~_0165_;
|
| 1910 |
+
assign _0167_ = _0071_ & _0166_;
|
| 1911 |
+
assign _0168_ = ~_0167_;
|
| 1912 |
+
assign _0169_ = _0904_ & _0002_;
|
| 1913 |
+
assign _0170_ = ~_0169_;
|
| 1914 |
+
assign _0171_ = _0905_ & _0003_;
|
| 1915 |
+
assign _0172_ = ~_0171_;
|
| 1916 |
+
assign _0173_ = _0903_ & _0171_;
|
| 1917 |
+
assign _0174_ = ~_0173_;
|
| 1918 |
+
assign _0175_ = _0170_ & _0174_;
|
| 1919 |
+
assign _0176_ = ~_0175_;
|
| 1920 |
+
assign _0177_ = _0168_ & _0176_;
|
| 1921 |
+
assign _0178_ = ~_0177_;
|
| 1922 |
+
assign _0179_ = _0113_ & _0164_;
|
| 1923 |
+
assign _0180_ = ~_0179_;
|
| 1924 |
+
assign _0181_ = _0154_ & _0180_;
|
| 1925 |
+
assign _0182_ = _0137_ & _0158_;
|
| 1926 |
+
assign _0183_ = ~_0182_;
|
| 1927 |
+
assign _0184_ = _0150_ & _0152_;
|
| 1928 |
+
assign _0185_ = ~_0184_;
|
| 1929 |
+
assign _0186_ = _0183_ & _0185_;
|
| 1930 |
+
assign _0187_ = _0181_ & _0186_;
|
| 1931 |
+
assign _0188_ = _0160_ & _0187_;
|
| 1932 |
+
assign _0189_ = _0166_ & _0188_;
|
| 1933 |
+
assign _0190_ = ~_0189_;
|
| 1934 |
+
assign _0191_ = _0178_ & _0190_;
|
| 1935 |
+
assign _0192_ = ~_0191_;
|
| 1936 |
+
assign _0193_ = _0167_ & _0174_;
|
| 1937 |
+
assign _0194_ = ~_0193_;
|
| 1938 |
+
assign _0195_ = _0006_ & _0172_;
|
| 1939 |
+
assign _0196_ = ~_0195_;
|
| 1940 |
+
assign _0197_ = _0170_ & _0196_;
|
| 1941 |
+
assign _0198_ = _0194_ & _0197_;
|
| 1942 |
+
assign person_present = _0192_ & _0198_;
|
| 1943 |
+
endmodule
|