スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[C++][SystemC] 区切り文字の話

C++14では、このような話が出ているみたいです。

ちょっと、Verilog HDLとかVHDLとかがメインな私にとっては「_」が使えないのはショックですが、難しそうな問題ですね。


ところで、SystemCはどうなのか気になったんで書いて試してみました。
っというのも SystemC(SystemCのデータ型)の場合、文字列で記述するからです。

 1|#include <systemc.h>
 2|
 3|int sc_main (int argc, char* argv[]) {
 4|  sc_int<8>  sig_int8;
 5|  sc_uint<8> sig_uint8;
 6|  sc_bv<8>   sig_bv8;
 7|  sc_lv<8>   sig_lv8;
 8|
 9|  sig_int8  = "0b10000000";
10|  sig_uint8 = "0b10000000";
11|  sig_bv8   = "0b10000000";
12|  sig_lv8   = "0b10000000";
13|
14|  cout << "sv_int8   = " << sig_int8.to_string(SC_DEC)  << endl;
15|  cout << "sig_uint8 = " << sig_uint8.to_string(SC_DEC) << endl;
16|  cout << "sig_bv8   = " << sig_bv8.to_string(SC_DEC)   << endl;
17|  cout << "sig_lv8   = " << sig_lv8.to_string(SC_DEC)   << endl;
18|
19|  sc_start(10,SC_NS);
20|
21|  return 0;
22|}

実行結果はこちらです。

sv_int8   = -128
sig_uint8 = 128
sig_bv8   = 0d128
sig_lv8   = 0d128

次に、「_」で区切ってみました。

 1|#include <systemc.h>
 2|
 3|int sc_main (int argc, char* argv[]) {
 4|  sc_int<8>  sig_int8;
 5|  sc_uint<8> sig_uint8;
 6|  sc_bv<8>   sig_bv8;
 7|  sc_lv<8>   sig_lv8;
 8|
 9|  sig_int8  = "0b1000_0000";
10|  sig_uint8 = "0b1000_0000";
11|  sig_bv8   = "0b1000_0000";
12|  sig_lv8   = "0b1000_0000";
13|
14|  cout << "sv_int8   = " << sig_int8.to_string(SC_DEC)  << endl;
15|  cout << "sig_uint8 = " << sig_uint8.to_string(SC_DEC) << endl;
16|  cout << "sig_bv8   = " << sig_bv8.to_string(SC_DEC)   << endl;
17|  cout << "sig_lv8   = " << sig_lv8.to_string(SC_DEC)   << endl;
18|
19|  sc_start(10,SC_NS);
20|
21|  return 0;
22|}

で、結果はどうなるかというと。

Error: (E403) conversion failed: character string '0b1000_0000' is not valid

となりました。やっぱりダメか・・・。
でも、データ型に対しての代入時の関数でなんとかならないかな・・・

関連記事

コメントの投稿

非公開コメント

プロフィール

Kocha

Author:Kocha
なんでもチャレンジ!(^o^)/
E-mail
github:Kocha
イベントカレンダー

カレンダー
08 | 2017/09 | 10
- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
カテゴリ
OVP (4)
最新記事
最新コメント
アーカイブ
リンク
Twitter
アクセス人数
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。