<?xml version="1.0" encoding="UTF-8" ?><rdf:RDF 
  xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:lang="ja">
  <channel rdf:about="http://w.atwiki.jp/systemc/">
    <title>systemc @ ウィキ</title>
    <link>http://w.atwiki.jp/systemc/</link>
    <atom:link href="https://w.atwiki.jp/systemc/rss10.xml" rel="self" type="application/rss+xml" />
    <atom:link rel="hub" href="https://pubsubhubbub.appspot.com" />
    <description>systemc @ ウィキ</description>

    <dc:language>ja</dc:language>
    <dc:date>2015-05-06T20:40:19+09:00</dc:date>
    <utime>1430912419</utime>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="https://w.atwiki.jp/systemc/pages/15.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/systemc/pages/12.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/systemc/pages/27.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/systemc/pages/13.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/systemc/pages/2.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/systemc/pages/20.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/systemc/pages/26.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/systemc/pages/25.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/systemc/pages/21.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/systemc/pages/24.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <item rdf:about="https://w.atwiki.jp/systemc/pages/15.html">
    <title>ams_install</title>
    <link>https://w.atwiki.jp/systemc/pages/15.html</link>
    <description>
      *systemc-amsのインストール
SystemC-amsには、1.0.1と2.0 Betaがある。[[Fraunhoferのホームページ&gt;http://www.eas.iis.fraunhofer.de/en/business_areas/microelectronic_systems/system_development/open_source.html]]でダウンロードできる。
g++-4.9でコンパイルするにあたって、特にソースコードを編集する必要はない。SystemC-2.3.1との組み合わせで問題なく動作する。

64ビットCPU上のcygwinで使用する場合は、SystemC-2.3.1のインストール時にアーキテクチャをcygwin64と認識するのに対し、amsのcygwinへのインストールでは32ビットと64ビットを区別しないので、下記の修正をconfigure.acに行うと良い。
    TARGET_ARCH=&quot;cygwin&quot;
    EXTRA_CXXFLAGS=&quot;-I$SYSC_INC_PREFIX&quot;
と書かれている行を
     case &quot;$target_cpu&quot; in
         x86_64 | amd64)
            TARGET_ARCH=&quot;cygwin64&quot;
            EXTRA_CXXFLAGS=&quot;-I$SYSC_INC_PREFIX -m64&quot;
            ;;
         i*86)
            TARGET_ARCH=&quot;cygwin&quot;
            EXTRA_CXXFLAGS=&quot;-I$SYSC_INC_PREFIX&quot;
            ;;
         *)
            AC_MSG_ERROR(&quot;sorry... compiler not supported.&quot;)
            ;;
    esac
に置き換える。 


（2012年の記述）
[[Fraunhoferのホームページ&gt;http://systemc-ams.eas.iis.fraunhofer.de/]]からダウンロードしてきたsystemc-ams-1.0BETA2.tgzを展開する。
&amp;space(2)&amp;tt(){tar xvfz systemc-ams-1.0BETA2.tgz}

展開されたsystemc-ams-1.0BETA1ディレクトリへ移動する。
&amp;space(2)&amp;tt(){cd systemc-ams-1.0BETA2}

自分の環境に合わせて環境変数を設定する。
&amp;space(2)&amp;tt(){export SYSTEMC_HOME=/usr/local/systemc-2.2}

g++-4.3を使用する場合は、configure.acファイルの中の
  EXTRA_CXXFLAGS=&quot;-I$SYSC_INC_PREFIX&quot;
と書かれたすべての行あるいは自分の使用するターゲットの行を
  EXTRA_CXXFLAGS=&quot;-isystem $SYSC_INC_PREFIX&quot;
に置き換える。

コンパイル環境を構築する。
&amp;space(2)&amp;tt(){./configure}

コンパイルを行う。
&amp;space(2)&amp;tt(){make}

ライブラリを作成する。
&amp;space(2)&amp;tt(){make install}



&amp;update()
&amp;counter()    </description>
    <dc:date>2015-05-06T20:40:19+09:00</dc:date>
    <utime>1430912419</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/systemc/pages/12.html">
    <title>systemc_install</title>
    <link>https://w.atwiki.jp/systemc/pages/12.html</link>
    <description>
      *SystemC-2.3.1のインストール
[[Accelleraのホームページ&gt;http://accellera.org/downloads/standards/systemc]]からダウンロードする。特に修正しなくてもg++-4.9でコンパイル可能。修正以外の手順は2.2.0と同じ。
cygwin用は、configureするときに --enable-pthreadsのオプションが必要。

*g++-4でのSystemC-2.2.0のインストール
g++-4.9でコンパイルしようとするとエラーになる。エラー箇所（src/sysc/datatypes/bit/sc_bit_proxies.h）のmutableを消すとコンパイル可能ではあるが、他のバグもあるようなので、SystemC-2.3.1を使用するのがお勧め。

（ここから、2012年の記述）
[[OSCIのホームページ&gt;http://www.systemc.org]]からダウンロードしてきたsystemc-2.2.0.tgzを展開する。
&amp;space(2)&amp;tt(){tar xvfz systemc-2.2.0.tgz}

展開されたsystemc-2.2.0ディレクトリへ移動する。
&amp;space(2)&amp;tt(){cd systemc-2.2.0}

src/sysc/utils/sc_utils_ids.cppの62行目に次の2行を加える。
  #include&lt;cstdlib&gt;
  #include&lt;cstring&gt;

src/sysc/kernel/sc_constants.hの中のSC_DEFAULT_STACK_SIZEは大きくした方が良い。0x50000くらいがお勧め。
作業用のobjdirディレクトリを作成する。
&amp;space(2)&amp;tt(){mkdir objdir}

objdirディレクトリへ移動する。
&amp;space(2)&amp;tt(){cd objdir}

CXX環境変数を設定した方が良いかもしれない。
&amp;space(2)&amp;tt(){export CXX=g++}

コンパイル環境を構築する。
&amp;space(2)&amp;tt(){../configure}

もし、環境を指定したい場合は、
&amp;space(2)&amp;tt(){../configure --help}

で確認する。次のようにインストール場所を指定する場合が多い。
&amp;space(2)&amp;tt(){../configure --prefix=/usr/local/systemc-2.2}
インストール場所は、あらかじめ作成しておくこと。

コンパイルを行う。
&amp;space(2)&amp;tt(){make}

ライブラリなどをインストールする。
&amp;space(2)&amp;tt(){make install}


&amp;update()
&amp;counter()    </description>
    <dc:date>2015-05-06T20:39:52+09:00</dc:date>
    <utime>1430912392</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/systemc/pages/27.html">
    <title>SystemCと高位合成</title>
    <link>https://w.atwiki.jp/systemc/pages/27.html</link>
    <description>
      **高位合成
　高位合成の定義は、学会でも業界でもきちんと定まっていないように思える。ここでは、高位合成（High Level Synthesis）は、RTL（Register Transfer Level）からの論理合成よりも抽象度の高い記述から自動的に論理回路を生成することと定義する。
　入力がC言語などのプログラム言語であっても、HDL（Hardware Discription Language）で表現できるような内容のものしか受け付けないものが高位合成として市販されている場合もあるので、ユーザとしてはツールの機能をしっかり確認する必要がある。

**動作合成
　また、高位合成と同様な場面で使われる動作合成（Behavioral Synthesis）を、データパスに対するスケジューリングとリソースシェアリング（複雑な演算を時分割して演算器とレジスタを共用する）を自動生成する機能と定義する。

**SystemCの高位合成ツールに望まれる機能
　SystemCを用いた高位合成には、下記の機能が望まれる。
・動作合成
・インタフェース合成
・関数型かオブジェクト指向による表現の抽象化
・並列処理、処理タイミング、モジュール化、外部端子を表現する手段

**高位の記述とは
　データパスの記述であれば、スケジューリングとリソースシェアリングを行う前の動作合成される記述が高位合成用の記述と考えられる。高位合成の価値はそれだけではないので、データパスのない制御系の記述で考えてみる。
***汎用性の高い記述
動作の目的を明確にする。具体的な実装については、別の場所で定義する。
 信号で進めと合図する。
 signal.show(sign_go);

***具体的な記述
動作を表現する。しかし、これでもまだ具体的な実装については、別の場所で定義する。
 信号を青にする。
 signal.set(color_blue);

***詳細な記述
実装をそのまま記述する。ここまで記述するのであれば、高位合成は必要ない。
 信号の青色灯を点灯する。黄色灯と赤色灯を消す。
 signal.blue = true; signal.yellow = false; signal.red = false;

**参考
動作合成 http://techon.nikkeibp.co.jp/article/WORD/20090107/163727/
SystemC推奨設計メソドロジ　合成編 http://jeita-edatc.com/users_lib/SystemC_DM_for_synthesis_080428.pdf
SystemC Synthesizable Subset 1.3 draft : Synthesis Working Group of Open SystemC Initiative

&amp;update()
&amp;counter()    </description>
    <dc:date>2014-02-11T13:14:07+09:00</dc:date>
    <utime>1392092047</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/systemc/pages/13.html">
    <title>暫定メニュー</title>
    <link>https://w.atwiki.jp/systemc/pages/13.html</link>
    <description>
      -[[トップページ]]
-[[メニュー]]
-[[systemc_install]]
-[[systemc_begin]]
-[[TLM_install]]
-[[ams_install]]
-[[SystemC-AMS紹介]]
-[[SystemCと高位合成]]
-[[c++研究]]
-[[暫定メニュー]]

----

**リンク
-[[@wiki&gt;&gt;http://atwiki.jp]]
-[[@wikiご利用ガイド&gt;&gt;http://atwiki.jp/guide/]]



// リンクを張るには &quot;[&quot; 2つで文字列を括ります。
// &quot;&gt;&quot; の左側に文字、右側にURLを記述するとリンクになります


//**更新履歴
//#recent(20)

&amp;link_editmenu(text=ここを編集)    </description>
    <dc:date>2014-02-11T12:24:59+09:00</dc:date>
    <utime>1392089099</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/systemc/pages/2.html">
    <title>メニュー</title>
    <link>https://w.atwiki.jp/systemc/pages/2.html</link>
    <description>
      -[[トップページ]]
-[[メニュー]]
-[[systemc_install]]
-[[systemc_begin]]
-[[TLM_install]]
-[[ams_install]]
-[[SystemC-AMS紹介]]
-[[SystemCと高位合成]]
-[[c++研究]]
-[[暫定メニュー]]

----

**リンク
-[[@wiki&gt;&gt;http://atwiki.jp]]
-[[@wikiご利用ガイド&gt;&gt;http://atwiki.jp/guide/]]

// リンクを張るには &quot;[&quot; 2つで文字列を括ります。
// &quot;&gt;&quot; の左側に文字、右側にURLを記述するとリンクになります


//**更新履歴
//#recent(20)

&amp;link_editmenu(text=ここを編集)    </description>
    <dc:date>2014-02-11T12:23:29+09:00</dc:date>
    <utime>1392089009</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/systemc/pages/20.html">
    <title>SystemC-AMS紹介</title>
    <link>https://w.atwiki.jp/systemc/pages/20.html</link>
    <description>
      *SystemC-AMSの紹介

SystemC-AMSは、Embedded Analog/Mixed-Signal(E-AMS) systemを取り扱う。デジタルの領域を扱うSystemCにアナログの領域を扱う手段を追加している。次のような目的で使われることを想定している。
-実行可能仕様書 (Executable specification)
-仮想試作 (Virtual prototyping)
-アーキテクチャ探索 (Architecture exploration)
-実装検証 (Integration validation)

SystemC-AMSのアナログシステムのモデル化の方法には次の3通りが用意されている。
-Timed Data Flow (TDF) &amp;space(2){}離散時間の非線形な表現が可能。時間軸と周波数軸の処理を別々に定義する。
-Linear Signal Flow (LSF) &amp;space(2){}連続時間の線形な数式を扱う。
-Electrical Linear Network (ELN) &amp;space(2){}線形なふるまいをする部品（抵抗、コンデンサ、コイルなど）で回路を表現する。

[[TDFのモジュール]]はユーザが定義するが、LSFとELNでは用意されたモジュールを利用する前提になっている。これらのモジュールを含む上位階層はsc_moduleである。時間軸解析と[[小信号(周波数)解析]]を行うことができる。SPICEのような非線形解析はできない。

[[SystemC-AMS名前空間]]
[[TDFのモジュール]]
[[LSFのモジュール]]
[[ELNのモジュール]]
[[小信号(周波数)解析]]
[[時間軸解析]]

&amp;update()
&amp;counter()    </description>
    <dc:date>2012-02-15T18:47:06+09:00</dc:date>
    <utime>1329299226</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/systemc/pages/26.html">
    <title>時間軸解析</title>
    <link>https://w.atwiki.jp/systemc/pages/26.html</link>
    <description>
      sc_mainに以下の関数を記述する。

-時間解像度の設定
 sc_core::sc_set_time_resolution(単位となる時間、時間の単位);
時間の単位はsc_core::SC_FS, sc_core::SC_PS, sc_core::SC_NS, sc_core::SC_USなど

-トレースファイルの設定
VCD形式
 sca_util::sca_trace_file* tf=sca_util::sca_create_vcd_trace_file(&quot;ファイル名&quot;);
表形式
 sca_util::sca_trace_file* tf=sca_util::sca_create_tabular_trace_file(&quot;ファイル名&quot;);

-トレースする信号の設定
 sca_util::sca_trace(tf, 信号名, &quot;信号名&quot;);

-時間軸シミュレーションの開始
 sc_core::sc_start(時間, 時間の単位);

&amp;update()    </description>
    <dc:date>2012-01-31T20:54:53+09:00</dc:date>
    <utime>1328010893</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/systemc/pages/25.html">
    <title>小信号(周波数)解析</title>
    <link>https://w.atwiki.jp/systemc/pages/25.html</link>
    <description>
      sc_mainに以下の関数を記述する。

-トレースファイルの設定
 sca_util::sca_trace_file* tf = sca_util::sca_create_tabular_trace_file(&quot;ファイル名&quot;);

-トレースするノードや信号の設定
 sca_util::sca_trace(tf, ノード, &quot;ノード名&quot;);
 sca_util::sca_trace(tf, 信号名, &quot;信号名&quot;);

-周波数軸シミュレーションの開始
 sca_ac_analysis::sca_ac_start(開始周波数、終了周波数、ポイント数、スケール表現はリニアかログか);
スケール表現は、sca_ac_analysis::SCA_LIN または sca_sc_analysis::SCA_LOG

&amp;update()    </description>
    <dc:date>2012-01-30T22:54:50+09:00</dc:date>
    <utime>1327931690</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/systemc/pages/21.html">
    <title>SystemC-AMS名前空間</title>
    <link>https://w.atwiki.jp/systemc/pages/21.html</link>
    <description>
      SystemC-AMSライブラリのキーワードは&amp;bold(){sca_}で始まる。マクロは&amp;bold(){SCA_}で始まる。

AMSの基本的なクラスは名前空間&amp;bold(){sca_core}にある。

トレースやデータ型のようなユーティリティクラスは名前空間&amp;bold(){sca_util}にある。

モデル化の手法ごとに名前空間(namespace)が用意されている。
|モデル化の手法|名前空間|
|TDF|&amp;bold(){sca_tdf}|
|LSF|&amp;bold(){sca_lsf}|
|ELN|&amp;bold(){sca_eln}|
モデル化手法にかかわらず同等なクラスがある場合は、名前空間で区別される。
たとえば、TDF用のモジュールのクラスは&amp;bold(){sca_tdf::sca_module}である。

&amp;update()    </description>
    <dc:date>2012-01-30T21:04:15+09:00</dc:date>
    <utime>1327925055</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/systemc/pages/24.html">
    <title>ELNのモジュール</title>
    <link>https://w.atwiki.jp/systemc/pages/24.html</link>
    <description>
      ELNのモジュールは、下記の表に用意されたものを使用する。信号源と受動部品が用意されている。

|ELNモジュール名|機能|
|sca_eln::sca_r|抵抗|
|sca_eln::sca_c|容量(コンデンサ)|
|sca_eln::sca_l|インダクタ|
|sca_eln::sca_vcvs|電圧制御電圧源|
|sca_eln::sca_vccs|電圧制御電流源|
|sca_eln::sca_ccvs|電流制御電圧源|
|sca_eln::sca_cccs|電流制御電流源|
|sca_eln::sca_nullor|ナラー、理想オペアンプ|
|sca_eln::sca_gyrator|ジャイレータ|
|sca_eln::sca_ideal_transformer|理想変圧器|
|sca_eln::sca_transmission_line|伝送線路|
|sca_eln::sca_vsource|電圧源|
|sca_eln::sca_isource|電流源|
|sca_eln::sca_tdf_r|TDF信号で制御する可変抵抗|
|sca_eln::sca_tdf_c|TDF信号で制御する可変容量|
|sca_eln::sca_tdf_l|TDF信号で制御する可変インダクタ|
|sca_eln::sca_tdf_rswitch|TDF信号で制御するスイッチ|
|sca_eln::sca_tdf_vsource|TDF信号で制御する可変電圧源|
|sca_eln::sca_tdf_isource|TDF信号で制御する可変電流源|
|sca_eln::sca_tdf_vsink|電圧をTDF出力へ変換|
|sca_eln::sca_tdf_isink|電流をTDF出力へ変換|
|sca_eln::sca_de_r|離散信号で制御する可変抵抗|
|sca_eln::sca_de_c|離散信号で制御する可変容量|
|sca_eln::sca_de_l|離散信号で制御する可変インダクタ|
|sca_eln::sca_de_rswitch|離散信号で制御するスイッチ|
|sca_eln::sca_de_vsource|離散信号で制御する可変電圧源|
|sca_eln::sca_de_isource|離散信号で制御する可変電流源|
|sca_eln::sca_de_vsink|電圧を離散信号へ変換|
|sca_eln::sca_de_isink|電流を離散信号へ変換|

&amp;update()    </description>
    <dc:date>2012-01-30T20:57:02+09:00</dc:date>
    <utime>1327924622</utime>
  </item>
  </rdf:RDF>
