Is asap7 really signing off setup at the *best-case* corner? (`CORNER ?= BC`)
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 48/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Lĩnh vực
- devops
Hướng nghiên cứu
Start with flow/platforms/asap7/config.mk at the CORNER default and library selection, then compare the timing setup with gf180 and check whether the flow has separate setup and hold corner handling. Reproduce on designs/asap7/gcd/config.mk with the default and CORNER=WC, and inspect the loaded libraries and setup slack. Done means establishing whether the default is intentional or incorrect and documenting or correcting it accordingly.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
I think I must be misreading the asap7 corner setup, because as far as I can tell the default flow evaluates setup timing at the fast / best-case corner — which would be backwards. I'd appreciate a sanity check before I conclude I've found a real problem.
What I see
flow/platforms/asap7/config.mk (upstream/master @ 7bf5a814e4) defaults the single timing corner to BC:
export CORNER ?= BC # line 197
export LIB_FILES += $($(CORNER)_$(LIB_MODEL)_LIB_FILES)
and BC is the fast corner (0.77 V, 25 C, *_FF_* libs):
BC_VOLTAGE = 0.77 ; BC_TEMPERATURE = 25C
BC_NLDM_LIB_FILES_T = .../asap7sc7p5t_*_FF_nldm_*.lib.gz # FF = fast / best case
WC_NLDM_LIB_FILES_T = .../asap7sc7p5t_*_SS_nldm_*.lib.gz # SS = slow / worst case
TC_NLDM_LIB_FILES_T = .../asap7sc7p5t_*_TT_nldm_*.lib.gz # TT = typical
Since the flow is single-corner (LIB_FILES comes from the one selected CORNER), all STA — setup included — appears to run at FF by default. Setup is normally closed against the slow corner, so this looks wrong. gf180 has the same CORNER ?= BC; nangate45/sky130hd are single-typical-corner and look unaffected.
Minimal reproduction — gcd (smallest design, no corner override)
designs/asap7/gcd/config.mk sets no CORNER, so it inherits the platform default. Running it stock vs. forcing worst-case:
make DESIGN_CONFIG=./designs/asap7/gcd/config.mk # default (BC)
make DESIGN_CONFIG=./designs/asap7/gcd/config.mk CORNER=WC # worst-case
| run | libraries actually loaded | worst setup slack |
|---|---|---|
default (BC) |
asap7sc7p5t_*_FF_nldm_* (fast) |
−35 ps |
CORNER=WC |
asap7sc7p5t_*_SS_nldm_* (slow) |
−347 ps |
(Slack values are worst slack reported at the same timing-driven global-placement stage,
identical clock and SDC; grep _FF_nldm/_SS_nldm in each run's log confirms which corner's
libraries were read.) The default run reads the fast libraries and reports ~−35 ps; the
same design at the worst-case corner is ~−347 ps — a ~10× difference, and the sign of the
engineering conclusion ("barely violating" vs "badly violating") flips with it.
So the stock gcd — and every asap7 design that doesn't override CORNER — is being timed at
the best-case corner, which under-reports setup violations by an order of magnitude here.
Questions
- Am I misreading this — is there a separate setup/hold corner mechanism I'm missing that makes setup actually use SS despite
CORNER ?= BC? - If not: is
BCan intentional asap7/gf180 choice (e.g. tied to how these predictive PDKs were characterized), or an oversight? If intentional, could it be documented, since "asap7 setup is reported at best-case" strongly affects how the numbers should be read?
Happy to send a PR (flip the default to WC/TC, or add docs) once I know which it is.
- Ngôn ngữ chính
- Verilog
- Star
- 777
- Fork
- 549
- Merge trung bình
- 2 ngày 10 giờ
- Pull request đã merge (30 ngày)
- 91
Chuẩn bị môi trường
- Có Dockerfile hoặc tệp Docker Compose
- Không có mẫu pull request
- Không có hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của The-OpenROAD-Project/OpenROAD-flow-scripts
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 71/100
The-OpenROAD-Project/OpenROAD-flow-scripts#4754 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
pr-head should not vote on PRsĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
The-OpenROAD-Project/OpenROAD-flow-scripts#4726 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
build_openroad.sh: kepler-formal is installed with an absolute RUNPATH, so a moved or re-pointed install loads another build's librariesCó thể đã có người làm @saikatchatrg đã nhận 5 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 90/100
The-OpenROAD-Project/OpenROAD-flow-scripts#4717 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Make SYNTH_HDL_FRONTEND=slang defaultCó thể làm lại được @jeffng-or đã nhận 37 ngày trước và không có pull request nào đang mở. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
The-OpenROAD-Project/OpenROAD-flow-scripts#4548 · 1 bình luận · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
The-OpenROAD-Project/OpenROAD-flow-scripts#4753 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của The-OpenROAD-Project/OpenROAD-flow-scripts
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
objectionary/hone-maven-plugin#1340 ·
Maintainer thường phản hồi trong vòng 9 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
coder/xum#7733 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
alunduil/alunduil-infrastructure#967 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 81/100
Maintainer thường phản hồi trong vòng 1 ngày
-
help wanted
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 77/100
Aethelgard-Systems/agent-postbox#32 ·
Maintainer thường phản hồi trong vòng 1 ngày