如何将手工布局​​的自定义电路添加为新的 std 单元并在 verilog 中引用它?

Posted

技术标签:

【中文标题】如何将手工布局​​的自定义电路添加为新的 std 单元并在 verilog 中引用它?【英文标题】:How to add a hand-layout custom circuit as a new std cell and refer to it in verilog? 【发布时间】:2017-05-04 06:36:08 【问题描述】:

我们在实施的核心有一个关键电路,它是整个设计的限速器。它只有几十个门。我们已经为这个功能手工实现了一个定制的晶体管级电路,完成了手工布局,并生成了 GDSII。我们想把它连接到我们的 Verilog 代码中。

问题是:具体来说,如何将此自定义电路与 Verilog 代码集成?

请原谅这个问题的幼稚。我知道要求的详细程度很多。我们团队拥有电路和布局专业知识,但之前没有人将自定义布局与 Verilog 模拟器或布局布线工具集成。我们真的不知道从哪里开始寻找文档来完成这项工作。

我们有布局的 GDSII,并提取了参数并模拟了行为。

现在,我们如何定义自定义 Verilog 实体,以便在 Verilog 代码中调用该实体时,布局和布线将替代 GDSII,而模拟器将替代行为?

更具体地说,我们如何将我们的 GDSII 连接到自定义 Verilog 实体,这样布局和布线将知道 GDSII 文件,并以正确的方式连接 GDSII?我们如何在 GDSII 中指定信号并将这些信号映射到我们自定义的 Verilog 实体中的信号,以便布局和布线将 Verilog 线的 GDSII 连接到我们手动布局的适当 GDSII 端口?

我们如何指定行为,然后让模拟器知道它?是否有包含该行为的特殊文件?行为规范采用什么形式,是真值表吗?

我意识到这是一个高级问题,可能需要一些工作才能将其全部说明。我们非常感谢任何关于在哪里寻找或做什么的提示。

你们中的许多人可能认为我们很鲁莽,并希望避免我们犯下自定义布局的错误。谢谢你。我们已经进行了风险评估,并认为这种情况下的回报是值得的。在完成集成的具体细节方面,我们需要您的帮助。

谢谢,

肖恩

【问题讨论】:

我不是与外部模型交互的专家,但我非常怀疑任何 verilog 模拟器都将原生支持与此类文件的交互。我最好的建议是在 Verilog(或 CPP,如果你想使用 DPI)中创建一个功能模型,独立于你的设计文件并用它来模拟(通常的策略)。如果您在模拟中需要更高的精度并且有一个可以模拟您的布局的工具,您可以通过管道或套接字或其他东西将 Verilog 模拟与其他模拟联系起来;但这可能必须是您必须创建的自定义代码。 我看到您的问题的第一个想法是,您想要将手工设计视为图书馆单元。为了做你想做的事,我会看看库提供者描述他们的标准单元(verilog原语)的方式。然后,您可以直接在您的设计中将您的模块实现为标准单元,然后在流程中将其替换为您的 GDSII。您还可以定义一个 .lib 文件,其中描述了您的模块,并且与之前相同。但是,您需要一组特殊的许可证才能将 lib 文件编译为具有功能的 db 文件。 【参考方案1】:

您所指的问题在 VLSI 行业中得到了很好的定义和解决。解决这个问题的正确方法是使用行为模型(Verilog 或 System Verilog)来模拟硬宏(作为自定义实现布局的电路称为硬宏)和时序模型(在 .lib 视图中捕获) & 用于合成和 PnR 目的的物理视图(在 .lef 视图中捕获)。

仿真工具将允许您使用模型进行仿真,以验证设计的正确性。但是模型的准确性只能通过定制电路的建模方式来确认。如果定制电路很简单,那么建模就很容易了。如果是模拟电路(如滤波器),那么建模可能会很困难。验证此电路的最佳方法是进行混合信号仿真(Verilog RTL + Analog Spice),该仿真由行业标准工具支持。

综合和 PnR 工具使用 dot lib 模型来了解定制电路的时序要求。点左视图具有自定义电路的几何信息。一旦标准数字电路的 PnR 完成,这些工具允许导入自定义 GDS 以替换您目前使用的 .lib 和 .lef 视图。这将合并两者的 GDS。

希望这会有所帮助。

-Sanket。

【讨论】:

以上是关于如何将手工布局​​的自定义电路添加为新的 std 单元并在 verilog 中引用它?的主要内容,如果未能解决你的问题,请参考以下文章

在visual studio 2010中为新的QOBJECT文件生成MOC

将带有自动布局的自定义 UIView 添加到 iCarousel

(flex mobile)如何在我的自定义布局中添加元素

如何将 pod(第三方框架)添加到我的自定义可可触摸框架中?

如何通过 API 将自定义字段添加到 SalesForce 中的布局部分

全代码实现WordPress分类目录和标签添加新的自定义字段