Chapter 3 -- SystemC From Gound 读书心得
2010-11-26 17:46
274 查看
supported data type = Native C++ data type + STL data type + SystemC datatype( logic, integers and fixed-point)
systemc 还提供了systemc data type 和 C++ data type 之间的转化函数。 所有的systemc data type都属于sc_dt namespace。
1. logic : sc_bv<W>, sc_lv<W>, bool, sc_logic<W>,
注意sc_bit 被 C++里面的 bool取代了。
2. integer: sc_int<W>, sc_uint<W> (其中W<=64) , sc_bigint<BITWIDTH>, sc_biguint<BITWIDTH> (其中BITWIDTH>64)
systemC的integer比传统的C++的integer类型提供了bit操作和concatination以及可配置位宽。
3. fixed point: sc_fixed<WL,IWL[,QUANT[,OVFLW[,NBITS]>
以前DSP算法都是用C++的浮点直接表示,但是为了更精确以及综合的方便,systemC引入了fixed-point类型。它定义了整个的bit宽度以及整数部分的bit宽度(WL,IWL)。加_fast后缀的指定精度限制再53bit之内。ed这个过去式表明在compile的时候就固定了,无法改变。
4. 由于systemc扩展了自己的datatype,这些datatype就是一个类。它们的赋值以及初始化,有时会使用字符串。譬如
sc_lv<6> mask = "10ZX11"
这些datatype变量值的打印,实际上是先把它们转化成字符串,然后打印出来。譬如
cout<<mask.to_string(SC_BIN, true)<<endl;
当然,也可以直接给mask赋值(因为systemc重载了=以及stream operator << , >>):
sc_lv<6> mask = 15;
cout<< mask
5. SystemC data type重载并扩展了所有C++的操作符。类似于C++,不同类型的data type进行运算必须显示的转化其中之一。
6. 常用的STL
vector<T>, map<T>,set<T>, List<T>,deque<T>
systemc 还提供了systemc data type 和 C++ data type 之间的转化函数。 所有的systemc data type都属于sc_dt namespace。
1. logic : sc_bv<W>, sc_lv<W>, bool, sc_logic<W>,
注意sc_bit 被 C++里面的 bool取代了。
2. integer: sc_int<W>, sc_uint<W> (其中W<=64) , sc_bigint<BITWIDTH>, sc_biguint<BITWIDTH> (其中BITWIDTH>64)
systemC的integer比传统的C++的integer类型提供了bit操作和concatination以及可配置位宽。
3. fixed point: sc_fixed<WL,IWL[,QUANT[,OVFLW[,NBITS]>
以前DSP算法都是用C++的浮点直接表示,但是为了更精确以及综合的方便,systemC引入了fixed-point类型。它定义了整个的bit宽度以及整数部分的bit宽度(WL,IWL)。加_fast后缀的指定精度限制再53bit之内。ed这个过去式表明在compile的时候就固定了,无法改变。
4. 由于systemc扩展了自己的datatype,这些datatype就是一个类。它们的赋值以及初始化,有时会使用字符串。譬如
sc_lv<6> mask = "10ZX11"
这些datatype变量值的打印,实际上是先把它们转化成字符串,然后打印出来。譬如
cout<<mask.to_string(SC_BIN, true)<<endl;
string to_string(sc_numrep rep, bool wprefix);
当然,也可以直接给mask赋值(因为systemc重载了=以及stream operator << , >>):
sc_lv<6> mask = 15;
cout<< mask
5. SystemC data type重载并扩展了所有C++的操作符。类似于C++,不同类型的data type进行运算必须显示的转化其中之一。
sc_int<64> g("0x7000000000000000"); sc_int<64> h("0x7000000000000000"); sc_int<64> i("0x7000000000000000"); sc_bigint<70> bigsum = g + h + i; // Doesn’t work bigsum = sc_bigint<70>(g) + h + i;// Works
6. 常用的STL
vector<T>, map<T>,set<T>, List<T>,deque<T>
相关文章推荐
- Chapter 6 -- SystemC From Gound 读书心得
- Chapter 2 -- SystemC From Gound 读书心得
- Chapter 5 -- SystemC From Gound 读书心得
- Chapter 12 -- SystemC From Gound 读书心得
- Chapter 9 -- SystemC From Gound 读书心得
- Chapter 8 -- SystemC From Gound 读书心得
- Chapter 7 -- SystemC From Gound 读书心得
- Chapter 13 -- SystemC From Gound 读书心得
- Chapter 4 -- SystemC From Gound 读书心得
- Chapter 10 -- SystemC From Gound 读书心得
- Chapter 11 -- SystemC From Gound 读书心得
- 【图灵教育读书】分享读书心得,奖励精品图书!
- ZwQuerySystemInformation 安全使用心得 Delphi 版
- How to Copy Archivelog Files From ASM to Filesystem and vice versa
- https使用HttpWebRequest出现错误:System.IO.IOException: Received an unexpected EOF or 0 bytes from the transport stream.的解决方法
- java.lang.UnsatisfiedLinkError: Couldn't load vi_voslib from loader dalvik.system.PathClassLoader
- Exce报表生成时出现“Workbook Add(System.Object) Message:Old format or invalid type library. (Exception from HRESULT: 0x80028018 (TYPE_E_
- 曾国藩的读书心得
- A Structure from Motion System
- Q111090: BUG: ARPSYSTEMCOMPONENT Will Not Hide Project from Control Panel's Add/Remove Programs Applet