了解 SystemC 中的类型

发布于 2024-10-30 06:39:32 字数 384 浏览 0 评论 0原文

我是 SystemC 编程的初学者,我注意到一件事(查看 SystemC 官方文档):我用来在 VHDL 模拟中处理的所有类型都没有“移植”到 SystemC。

我的意思是:

  1. 考虑 VHDL 标准库中的 std_logic,SystemC 中没有等效项,但是,在 SystemC 文档中,我看到许多使用 bool 的示例。
  2. 考虑一下 std_logic_vector,我在 SystemC 中没有看到类似的东西。相反,我可以在许多示例中看​​到 sc_int 的用法。

所以我认为 SystemC 不提供类型来管理单个位或电信号,但它提供了更高的抽象,就像每个常见的 C/C++ 应用程序一样。

是这样还是我错过了什么?

I am a beginner in SystemC programming and there is one thing I noticed (looking in the SystemC official documentation): all types that I used to deal with in VHDL simulations have not been "ported" to SystemC.

I mean:

  1. Consider std_logic in the VHDL standard library, there is not an equivalent in SystemC, however, in the SystemC documentation, I see many examples using bool.
  2. Consider std_logic_vector, I see no equivalent in SystemC. Instead I can see, in many examples, usage of sc_int.

So I'm thinking that SystemC does not provide types in order to manage single bits or electric signals, but it provides a higher abstraction like in every common C/C++ applications.

Is it so or am I missing something?

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

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

发布评论

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

评论(2

痞味浪人 2024-11-06 06:39:32
  1. 考虑一下 vhdl 标准库中的 std_logic,SystemC 中没有等效项,但是,在 sysc 文档中,我看到许多使用 bool 的示例。
  2. 考虑一下 std_logic_vector,我在 sysc 中没有看到等效项。相反,我可以在许多示例中看​​到 sc_int 的用法。

这并不完全正确。

在 SystemC 中,您可以使用 sc_logicsc_lvT > 分别为 std_logicstd_logic_vector

您可以将 SC_LOGIC_0SC_LOGIC_1 文字分配给 sc_logic

虽然您可以使用整数、十六进制甚至“特定于位”的文字来分配 sc_lv< T> 一个值。

例如:

class some_device : sc_module
{
    sc_out< sc_lv<32> > address;
    sc_out< sc_logic > write_enable;

    SC_CTOR (some_device)
    {
        write_enable.initialize(SC_LOGIC_0);

        /* The following three lines do the same thing. 
         * Obviously you won't use all three at the same time... */
        address.initialize(0b00001111000011110000111100001111);
        address.initialize(0x0F0F0F0F);
        address.iniziatize(252645135);
    }
}

希望有帮助。

  1. Consider std_logic in the vhdl standard library, there is not an equivalent in SystemC, however, in the sysc documentation, I see many examples using bool.
  2. Consider std_logic_vector, I see no equivalent in sysc. Instead I can see, in many examples, usage of sc_int.

It's not all that correct.

In SystemC you can use sc_logic and sc_lv< T > as std_logic and std_logic_vector respectively.

You can assign to SC_LOGIC_0 or SC_LOGIC_1 literals to sc_logic.

While you can use integer, hex or even 'bit-specific' literal to assign sc_lv< T > a value.

For example:

class some_device : sc_module
{
    sc_out< sc_lv<32> > address;
    sc_out< sc_logic > write_enable;

    SC_CTOR (some_device)
    {
        write_enable.initialize(SC_LOGIC_0);

        /* The following three lines do the same thing. 
         * Obviously you won't use all three at the same time... */
        address.initialize(0b00001111000011110000111100001111);
        address.initialize(0x0F0F0F0F);
        address.iniziatize(252645135);
    }
}

Hope that helps.

对你的占有欲 2024-11-06 06:39:32

它确实有一些类型:sc_intsc_bv(位向量)等。

It does have some types: sc_int, sc_bv (bitvector) etc.

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