1 个不稳定版本
0.0.1 | 2023年5月27日 |
---|
#78 in #configurable
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 许可证许可,不附加任何额外条款或条件。