# hcell测试 **Repository Path**: wei-hn/hcell-testing ## Basic Information - **Project Name**: hcell测试 - **Description**: test for hcell - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: hz_test - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-21 - **Last Updated**: 2026-03-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Hcell 仿真脚本说明 本仓库提供两个面向大规模 Verilog 网表的快速仿真脚本: - [sim/sim_run_fast.py](sim/sim_run_fast.py#L1):单文件高性能仿真,依赖 C++ 扩展。 - [sim/sim_run_chunked.py](sim/sim_run_chunked.py#L1):超大网表分块低内存仿真,依赖同一 C++ 扩展。 ## 先决条件 - Python 3.10+/3.11+ 环境。 - `cd sim && python build_fast_core.py` ## 快速开始:sim_run_fast.py 适合中大规模网表的单机快速仿真。 示例命令: ```bash cd sim python sim_run_fast.py your_netlist.v TopModule --steps 20000 --seed 42 --ratio 60 ``` 常用参数: - `verilog_file`:待仿真的 Verilog 网表文件路径。 - `top_module`:顶层模块名,可省略(脚本会尝试自动检测)。 - `--steps`:随机仿真步数,默认 10000。 - `--seed`:随机种子,默认 None(内部使用 0)。 - `--ratio`:输入翻转比例,0-100,默认 50,表示 50% 使用上一拍取反,50% 随机。 - `--no-sim`:只解析/分析,不运行仿真。 输出包含解析统计、PI/PO 列表以及仿真计算/翻转统计,适合验证接口和性能。 ## 超大网表:sim_run_chunked.py 为百 GB 级网表设计的分块低内存仿真,分阶段扫描、切块、仿真并汇总。 示例命令: ```bash cd sim python sim_run_chunked.py huge_netlist.v TopModule \ --chunk-size 30000000 \ --steps 10000 \ --seed 0 \ --ratio 50 ``` 关键参数: - `verilog_file`:超大 Verilog 网表路径。 - `top_module`:顶层模块名,可留空自动匹配第一个 module。 - `--chunk-size`:每个块包含的 cell 数,默认 30,000,000,可按内存调整。 - `--steps`/`--seed`/`--ratio`:同上,控制随机仿真。 - `--fast-chunk`:假设实例行连续,按行号直接切块,更快但要求输入规范。 - `--keep-temp`:保留分块生成的临时 Verilog 文件以便调试。 运行流程: 1) 低内存预扫描:仅记录行号索引与信号声明。 2) 计算分块:基于 `--chunk-size` 切分 cell 范围。 3) 分块仿真:逐块生成临时 Verilog、解析、仿真、释放内存。 4) 汇总报告:输出总体/分块性能与翻转统计。 ## 常见问题 - 找不到 `fast_netlist_core`:先在 `sim` 下执行编译步骤,或确认 `.so` 与脚本同目录。 - 内存仍不足:减小 `--chunk-size`;或为 `sim_run_fast.py` 改用 `sim_run_chunked.py`。