embedded - 如何为网表综合定义自定义单元?
问题描述
我目前正在研究一种 CPU 设计,我想在其中比较不同的微架构的功率、速度和面积。这些微架构的区别仅在于不同组件的实例化,例如不同实现的 ALU 或寄存器文件。其中一些组件相当复杂,我无法以 HDL 代码的形式使用。所以想法是将它们实例化为 HDL 代码中的黑盒,并让综合工具(Synopsys 设计编译器)将它们映射到自定义单元以获取网表。
现在,问题是:我如何自定义细胞以用于合成?当然,我有一个可用的标准单元库,所以我只需要将那几个额外的单元“添加”到链接库中。我找不到在 DC shell 中定义它们的方法。所以我想我必须编写一个额外的自由文件来加载和链接。
有没有办法定义一个自由文件,我不必担心头文件,例如过程参数,只需要定义所需的单元格并将它们“添加”到现有库中,以便它自动假定所有标准单元库中指定的过程参数?
我认为在没有计划流片的情况下,出于模拟目的而这样做并不少见。我只是在网上或用户指南中找不到任何有用的信息。如果有人能指出我正确的方向,我会很高兴。
解决方案
我找到了解决方案。可以简单地编写一个只包含自定义单元描述的自由文件,然后在通过update_lib
命令编译之前将其读入。这正是我想要的。
推荐阅读
- google-analytics - 使用 Measurement Protocol (GA4) 设置 debug_mode
- html - 单个网页上的 14 个 Bootstrap 4.5 轮播
- c# - 如何检查是否使用 MailKit 发送了电子邮件
- user-interface - 如何仅使用键盘在 Colab 中显示/隐藏自动完成弹出窗口?
- java - 如何将跟踪级别和一个具有调试级别的包写入单个文件
- scala - 如何在scala中将csv文件读入地图
- python - 从 python 创建 Excel 宏
- python-3.x - 具有 Postgres 模式和 SQLAlchemy ORM 的多租户 - 连接、会话和选项健全
- python - Python IndexError 在使用带有 range() 和 len() 的 for 循环
- vivado - $display 在测试台中无法正常工作