PSL(VHDL) 中的可重用代码

发布于 2025-01-07 05:17:00 字数 589 浏览 1 评论 0原文

目前我正在使用 PSL 编写断言(RTL 在 VHDL 中)。总共有 30 多个 IP 我想为所有模块重用同一个 psl 文件

vunit IP1_assert ip1_top() {

signal reg_1 :std_uloic_vector(15 downto 0);

reg_1 : <= signal ip_1.inst_1.inst_2.clk_reg : std_ulogic_vector(15 downto 0)>>;

}

vunit IP2_assert ip2_top() {

signal reg_1 :std_uloic_vector(15 downto 0);

reg_1 : <= signal ip_2.inst_1.inst_2.clk_reg : std_ulogic_vector(15 downto 0)>>;

}

如何将上面的文件更改为可重用的文件(即 2 个 Vunit 变为 1 个)。

换句话说,任何想法:

  1. 要将路径名 ip_1 和 ip_2 替换为通用路径名,
  2. 我们可以将实体名称作为参数传递给 PSL Vunit 吗?

Currently I'm writing assertions using PSL (RTL is in VHDL). Totally 30 + IPs are there I want to reuse the same psl file for all the modules

vunit IP1_assert ip1_top() {

signal reg_1 :std_uloic_vector(15 downto 0);

reg_1 : <= signal ip_1.inst_1.inst_2.clk_reg : std_ulogic_vector(15 downto 0)>>;

}

vunit IP2_assert ip2_top() {

signal reg_1 :std_uloic_vector(15 downto 0);

reg_1 : <= signal ip_2.inst_1.inst_2.clk_reg : std_ulogic_vector(15 downto 0)>>;

}

How to change the above one as reusable one (i.e 2 Vunits into one).

In other words any ideas:

  1. to replace the pathnames ip_1 and ip_2 as generic one,
  2. can we pass entity name as a parmeter to PSL Vunit?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

廻憶裏菂餘溫 2025-01-14 05:17:00

vunit 扩展了架构。例如,您的 vunit IP1_assert 扩展了实体 ip1_top() 的(未命名)架构。您可以使用 ip1_top() 更加具体并仅扩展特定的架构。因此您不能对所有模块使用相同的 PSL 文件。但是您可以创建一个包含 PSL 代码的新模块(带有实体和架构),并在所有 PSL 文件中实例化和连接该模块。因此,您的每个模块都会有单独的 PSL 文件,但您只有 1 个包含 PSL 代码的模块。您还可以尝试将 PSL 放入您在包中定义的函数中,然后从每个 PSL 文件中“使用”该包,但我从未尝试过这样做。

A vunit extends an architecture. For example your vunit IP1_assert extends the (not named) architecture of your entity ip1_top(). You can be even more specific and extend only a specific arcitecture by using ip1_top(). So you cannot use the same PSL file for all your modules. But you could create a new module (with entity and architecure) which contains your PSL code and instantiate and connect this module in all your PSL files. So you would have individual PSL-files for each of your modules, but you would have only 1 module which contains the PSL code. You also could try to put your PSL into a function which you define in a package and then "use" this package from each of your PSL files, but I never tried this.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文