SystemC

Macで Xilinx/systemctlm-cosim-demo動かす(終わり)

Xilinx/systemctlm-cosim-demo を 個人PC(Mac)で動かそうとしてます。 環境 macOS Monterey 12.5 Clang 14.0.6 前提 以下がインストールされている状態です。 Homebrew Xcode Command Line Tools Verilator SystemC 動機 暇 (夏休み) 面白そう XilinxのQEM…

Macで Xilinx/systemctlm-cosim-demo動かす(その4)

Xilinx/systemctlm-cosim-demo を 個人PC(Mac)で動かそうとしてます。 環境 macOS Monterey 12.5 Clang 14.0.6 前提 以下がインストールされている状態です。 Homebrew Xcode Command Line Tools Verilator SystemC 動機 暇 (夏休み) 面白そう XilinxのQEM…

Macで Xilinx/systemctlm-cosim-demo動かす(その3)

Xilinx/systemctlm-cosim-demo を 個人PC(Mac)で動かそうとしてます。 環境 macOS Monterey 12.5 Clang 14.0.6 前提 以下がインストールされている状態です。 Homebrew Xcode Command Line Tools Verilator SystemC 動機 暇 (夏休み) 面白そう XilinxのQEM…

Macで Xilinx/systemctlm-cosim-demo動かす(その2)

Xilinx/systemctlm-cosim-demo を 個人PC(Mac)で動かそうとしてます。 環境 macOS Monterey 12.5 Clang 14.0.6 前提 以下がインストールされている状態です。 Homebrew Xcode Command Line Tools Verilator SystemC 動機 暇 (夏休み) 面白そう XilinxのQEM…

Macで Xilinx/systemctlm-cosim-demo動かす(その1)

Xilinx/systemctlm-cosim-demo を 個人PC(Mac)で動かそうとしてます。 環境 macOS Monterey 12.5 Clang 14.0.6 前提 以下がインストールされている状態です。 Homebrew Xcode Command Line Tools Verilator SystemC 動機 暇 (夏休み) 面白そう XilinxのQEM…

即席 APBアクセスのテスト作ってみた

せっかくなので、自分で一から勉強がてら作ってみました。 ※ただし即席なので使用する場合は自己責任で。 題材としては、APBアクセスモジュールのテスト。 コード一式はこちらにあげてます。 try_verilator/sysc/01_sc_apb/ 説明 Requester:SystemCで記述(t…

VerilatorインストールとSystemC実行(Mac)

SystemCインストールしたので、Verilatorと一緒に動かしてみる。 環境 macOS Monterey 12.5 前提 以下がインストールされている状態です。 Homebrew Xcode Command Line Tools インストール versionにこだわりなかったので、brewでインストールした。 $ brew…

SystemCインストール(Mac) from GitHub

前回の記事 では、Accelleraの Downloadページから取得したけど、今回は GitHubから。 今回は、ビルドとチェックまでしか実行してません。 最後に make installすればいけると思います。 ビルド&チェック $ git clone https://github.com/accellera-officia…

SystemC-2.3.3インストール(Mac)

何年振りかのインストール。 環境 macOS Monterey 12.5 前提 以下がインストールされている状態です。 Homebrew Xcode Command Line Tools インストール こんな感じでインストールしました。 $ wget https://www.accellera.org/images/downloads/standards/s…

Vivado/Vitisにて SystemCデザインが非対応に

昨日ふと見てたら、こんなものが、 AR# 73613 Vivado/Vitis HLS - 2020.2 で高位合成 (HLS) に対する SystemC デザイン エントリが廃止される 2020.2 リリース以降、新しいザイリンクス HLS ツール (Vitis HLS) では SystemC がサポートされなくなります。 …

SystemC 2.3.2リリース

Accellera Systems Initiative Advances the SystemC Ecosystem with a New Core Language Library ってことで、SystemC 2.3.2 が正式リリースしたようです。

VCDファイルを階層ごとに修正する

SystemCで信号波形をダンプする際には、VCD形式で出力することが多いと思います。 SystemCのダンプ形式だと、「階層.信号」といった感じでフラットに出力されてしまうのでどうしても波形ビューワーで見ると、見づらいかと思います。 そこで、こんなものがあ…

固定小数点型において、動的に整数幅を変える

SystemC Forumにて、 How to change the word length of "sc_fix" dynamically? Any examples? 高位合成(RTLへの実装)とかを考えると、どうしてもデータ幅(bit幅)を意識します。 予め bit幅が決まりきっている場合だと問題ないかもしれませんが、 bit幅を見…

SystemC-2.3インストール(clang3.3)

clang 3.3で SystemC-2.3をインストールしようとした際のメモ。 $> ../configure CC=clang CXX=clang++ : : configure: error: "sorry...compiler not supported" ってな感じでエラーが出ます。 どうやら、INSTALLには記載があるのに、clangは使えないようで…

SystemC:未使用 or 固定値端子を隠蔽出来る闇記述

前に SystemC:未使用 or 固定値端子の処理 を書いた際に思ったことがあります。 先ずはこちらのコードをみてください。 #include <systemc.h> //---------------------------------------------// static struct { template < typename T > operator sc_core::sc_signa</systemc.h>…

SystemC:未使用 or 固定値端子の処理

How to terminate unused ports of modules in the port binding? SystemCモデルの接続において、Verilog HDLのように 未使用端子を簡単に処理出来ません。 VHDLのように何かしらを接続する必要があります。 つまり、以下のようなコードになります。 #includ…

Info:(I804) ... is deprecatedを非表示にする

例えば、SystemCモデルコンパイラ時に「-DDEBUG_SYSTEMC」をつけると Info: (I804) /IEEE_Std_1666/deprecated: sc_signal::addtrace() is deprecated のようなメッセージが表示されます。 このメッセージは毎回表示されるので、出力画面がいっぱいになりま…

SystemCインストール (Visual Studio 2012)

Accellera Systems Initiative Forumsにて、スレッドがあったので紹介。 SystemC in Visual Studio 2012 Visual Studio 2012を使う人は見てみてください。 引用 1. Installed Visual C++ 2012 Express Edition 2. Download Systemc-2.3.0.tgz 3. uncompress …

SystemC 2.3 : sc_starvation_policy

SystemC 2.3から追加になっている機能になります。 sc_start()時に、sc_starvation_policyを指定できます。 4.2.1 Function declarations より引用 enum sc_starvation_policy { SC_RUN_TO_TIME, SC_EXIT_ON_STARVATION }; default値は「SC_RUN_TO_TIME」で…

SystemC 2.3:throw_it

SystemC 2.3にて追加された「throw_it」についてです。 サンプルコード # include <stdio.h> # include <systemc.h> SC_MODULE( hoge ){ std::exception ex; sc_event ev; sc_process_handle t; int q; SC_CTOR( hoge ) { SC_THREAD( calling ); SC_THREAD( target ); t = sc_get</systemc.h></stdio.h>…

SystemC 2.3 : reset/kill event

SystemC 2.3では、reset/kill 発生時のイベントを利用して プロセスを動作させることも出来ます。 サンプルコード # include <stdio.h> # include <systemc.h> SC_MODULE( hoge ){ sc_event ev; sc_process_handle t; int q; SC_CTOR( hoge ) { SC_THREAD( calling ); SC_THREAD(</systemc.h></stdio.h>…

SystemC 2.3:unwind (reset and kill)

前回の「reset/kill」を観測することができます。 サンプルコード #include <stdio.h> #include <systemc.h> SC_MODULE( hoge ){ sc_event ev; sc_process_handle t; int q; SC_CTOR( hoge ) { SC_THREAD( calling ); SC_THREAD( target ); t = sc_get_current_process_handle();</systemc.h></stdio.h>…

SystemC 2.3:reset and kill

SystemC 2.3で追加された「reset と kill」についてです。 サンプルコード #include <stdio.h> #include <systemc.h> SC_MODULE( hoge ){ sc_event ev; sc_process_handle t; int q; SC_CTOR( hoge ) { SC_THREAD( calling ); SC_THREAD( target ); t = sc_get_current_process_h</systemc.h></stdio.h>…

SystemC 2.3 : sync_reset_on/off

SystemC 2.3の「sync_reset_on/off」についてです。 サンプルコード #include <stdio.h> #include <systemc.h> SC_MODULE( hoge ){ sc_event ev; sc_process_handle t; int q; SC_CTOR( hoge ) { SC_THREAD( calling ); SC_THREAD( target ); t = sc_get_current_process_handle(</systemc.h></stdio.h>…

SystemC 2.3 : disable and enable

SystemC 2.3では、Process Control 編です。 今回は、「disable & enable」についてです。 サンプルコード #include <stdio.h> #include <systemc.h> SC_MODULE( hoge ){ sc_in<bool> clock; sc_process_handle t; SC_CTOR( hoge ) { SC_THREAD( calling ); SC_THREAD( target ); sensi</bool></systemc.h></stdio.h>…

SystemC 2.3:suspend and resume

SystemC 2.3では、Process Controlはかなり拡張されています。 今回は、「suspend & resume」についてです。 サンプルコード #include <stdio.h> #include <systemc.h> SC_MODULE( hoge ){ sc_event ev; sc_process_handle t; SC_CTOR( hoge ) { SC_THREAD( calling ); SC_THREAD</systemc.h></stdio.h>…

SystemC 2.3:Process Handles

SystemC 2.3で色々拡張?変更されたので、 勉強がてら書いていきたいと思います。 先ずは、正常動作というか何も変更を加えてない状態です。 ここでは、t に対しての属性を表示させています。 サンプルコード #include <stdio.h> #include <systemc.h> SC_MODULE( hoge ){ sc_proc</systemc.h></stdio.h>…

SCVインストール(SystemC 2.3版)

基本的な操作は Ubuntu12.04に SCV をインストール と変わりません。 違う点は config時の指定だけです。 SystemCのインストール先は個別に違うと思うので、置き換えてください。 SystemC 2.2 $> ../configure [--prefix=インストール先] --with-systemc=/us…

SCV:SystemCデータ型のランダマイズ

今まで試したソースは C/C++のデータ・タイプだったので、 SystemCのデータ・タイプで試してみました。 サンプルコード #include <scv.h> int sc_main( int argc, char* argv[] ) { printf( "-----------------------\n"); printf( "--- Type:sc_int<8> ---\n"); pr</scv.h>…

SCV_SOFT_SONSTRAINTを書いてみた。

SystemVerilog 2012より追加された soft constraintが どんなものか分からなかったので SCVで書いてみました。 SystemVerilog 2012 : soft constraint サンプルコード #include <scv.h> //Valid values for a are 10 or 30 class slower : public scv_constraint_ba</scv.h>…