Понимание типов в SystemC - PullRequest
       36

Понимание типов в SystemC

2 голосов
/ 05 апреля 2011

Я новичок в программировании на SystemC, и я заметил одну вещь (глядя в официальной документации SystemC): все типы, с которыми я имел дело в симуляциях VHDL, не были "перенесены" в SystemC.

Я имею в виду:

  1. Рассмотрим std_logic в стандартной библиотеке VHDL, в SystemC нет эквивалента, однако в документации SystemC я вижу много примеров использования bool.
  2. Рассмотрим std_logic_vector, я не вижу эквивалента в SystemC.Вместо этого я вижу во многих примерах использование sc_int.

Так что я думаю, что SystemC не предоставляет типы для управления отдельными битами или электрическими сигналами, но обеспечивает более высокийабстракция, как во всех распространенных приложениях C / C ++.

Это так или я что-то упустил?

Ответы [ 2 ]

2 голосов
/ 25 июня 2011
  1. Рассмотрим std_logic в стандартной библиотеке vhdl, в SystemC нет эквивалента, однако в документации по sysc я вижу много примеров использования bool.
  2. Рассмотрим std_logic_vector, я не вижу эквивалента в sysc. Вместо этого я вижу во многих примерах использование sc_int.

Не все так правильно.

В SystemC вы можете использовать sc_logic и sc_lv< T > как std_logic и std_logic_vector соответственно.

Вы можете присвоить SC_LOGIC_0 или SC_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);
    }
}

Надеюсь, это поможет.

2 голосов
/ 05 апреля 2011

Имеется несколько типов: sc_int, sc_bv (битвектор) и т. Д.

...