#generator #configurable #sram

app sram22

可配置的SRAM生成器

1 个不稳定版本

0.0.1 2023年5月27日

#78 in #configurable

BSD-3-Clause

6KB

SRAM 22

可配置的SRAM生成器

Sram22可以参数化生成SRAM块。目前,我们只支持SKY130工艺。Sram22仍在开发中。

安装

BWRC

如果您有BWRC访问权限,您可以安装Sram22的所有功能。请确保您可以通过将您的SSH密钥添加到GitLab账户来从BWRC机器访问bwrcrepo.eecs.berkeley.edu(请参阅添加SSH密钥到您的GitLab账户)。然后您需要将以下行添加到您的~/.cargo/config.toml文件中

[net]
git-fetch-with-cli = true

然后您可以使用以下命令安装Sram22

git clone --recurse-submodules https://github.com/rahulk29/sram22.git
cd sram22/deps/Vlsir/bindings/python && pip install -e . && cd -
cd sram22/deps/Vlsir/VlsirTools && pip install -e . && cd -
cd sram22/sramgen && cargo install --all-features --path .

注意:由于Sram22目前只支持Sky130工艺,您需要有一份已签署的Sky130 NDA才能使用某些功能。

外部

如果您没有BWRC访问权限,您仍然可以安装Sram22,但无法调用DRC、LVS、PEX和仿真等专有工具。

使用以下命令

git clone --recurse-submodules https://github.com/rahulk29/sram22.git
cd sram22/deps/Vlsir/bindings/python && pip install -e . && cd -
cd sram22/deps/Vlsir/VlsirTools && pip install -e . && cd -
cd sram22/sramgen && cargo install --path .

用法

sramgen 0.1.0
Rahul Kumar <rahulkumar@berkeley.edu>
A configurable SRAM generator

Usage: sramgen [OPTIONS]

Options:
  -c, --config <CONFIG>          Path to TOML configuration file [default: sramgen.toml]
  -o, --output-dir <OUTPUT_DIR>  Directory to which output files should be saved
      --lef                      Generate LEF (used in place and route)
      --lib                      Generate LIB (setup, hold, and delay timing information)
      --drc                      Run DRC using Calibre
      --lvs                      Run LVS using Calibre
      --pex                      Run PEX using Calibre
      --sim                      Run Spectre to verify SRAM functionality
  -a, --all                      Run all available steps
  -h, --help                     Print help information
  -V, --version                  Print version information

配置

Sram22根据TOML配置文件生成内存块。以下是一个示例配置,显示了所有可用选项

num_words = 32
data_width = 32
mux_ratio = 2
write_size = 32
control = "ReplicaV1"
# The `pex_level` flag is only available with a full installation.
pex_level = "rcc"

要使用此配置生成SRAM,请将上述文本放入名为sramgen_sram_32x32m2w8_replica_v1/sramgen.toml的文件中,然后运行

cd sramgen_sram_32x32m2w8_replica_v1
sramgen -o .

根据您想要生成的视图和要运行的验证添加额外的标志。如果您没有访问BWRC服务器,大多数标志将不可用。

如果您有访问专有工具(例如Calibre、Spectre等)的权限,并且希望访问这些工具的Sram22插件,请联系我们。联系信息在sramgen/Cargo.toml中。

可用的配置选项包括

  • num_words:必须是2的幂,且大于或等于16。
  • data_width:必须是2的幂,且大于或等于16。必须是write_size的整数倍。
  • mux_ratio:必须是2、4或8。2的复用比不推荐,因为这个选项很快将被弃用。
  • write_size:必须是2的幂,且小于或等于data_width
  • control:必须是"ReplicaV1"
  • pex_level:必须是"r""c""rc""rcc"。如果您没有启用商业插件,此选项将被忽略。

技术设置

查看 tech/sky130/ 目录,了解如何设置新流程以与 Sram22 一起工作。

依赖项

为了使用 Sram22,您的系统需要以下组件

  • Rust(Sram22 已与版本 1.65.0 进行了测试)
  • Cmake
  • Git v2.13+
  • Python 3.8+

贡献

除非您明确声明,否则您提交的任何旨在包含在本作品中的贡献,均应按照 BSD 3-Clause 许可证许可,不附加任何额外条款或条件。

无运行时依赖