我是SystemC编程的初学者,我注意到了一件事(请参阅SystemC官方文档):我以前在VHDL模拟中处理的所有类型都没有“移植”到SystemC。
我的意思是:
std_logic
,在SystemC中没有等效项,但是,在SystemC文档中,我看到了许多使用bool
的示例。 std_logic_vector
,我在SystemC中没有看到等效的代码。相反,在许多示例中,我可以看到sc_int
的用法。 因此,我认为SystemC不提供用于管理单个位或电信号的类型,而是像在每个常见的C / C++应用程序中一样提供更高的抽象度。
是这样还是我缺少什么?
最佳答案
这还不是全部正确。
在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);
}
}
希望能有所帮助。
关于c++ - 了解SystemC中的类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5551071/