チラシの裏は意外と白くない

最近忘れっぽくなったので調べたことをチラシの裏に書きます

SystemC

SystemC基本構文③

シミュレーション構文 4bitカウンタを作成した際に見てきた内容が多いが改めて。 時間単位の設定 sc_set_default_time_unit(値)でシミュレーションの時間単位を指定する sc_set_default_time_unit(1, SC_PS); で1ps単位になる デフォルトは1ns sc_get_defaul…

SystemC基本構文②

データ型から続きを。 データ型 基本的にsc_***。C++のデータ型であるbool, int, char, doubleも使用可能。代表的なデータ型は、 データ型 内容 sc_int<N> N bit符号付き32bit整数 sc_uint<N> N bit符号なし32bit整数 sc_bit '0','1'の2値 sc_logic '0','1','x',z'</n></n>…

sc_in同士の演算

もう少し理解が進んだところで、全体における位置づけが明確になると期待して、気づいたことを書いておく。 以下の通り、入力信号in0, in1を加算して出力信号outにアサインするという単純なモデルを作ってみた。dont_initialize()がついていたりSC_METHODに…

SystemC基本構文①

第3章 SystemC基本構文の1回目。プロセスまでを勉強。 ファイル構造 特別な規則はないが慣習的に、 SC_MODULE宣言部を***.h アルゴリズム記述を***.cpp SC_MODULE SC_MODULEはVerilogでいうところのmoduleで、構成部品は モジュール名 入出力ポート宣言 入力…

RGB2YUV回路(BCA)

前回TLMで作成したRGB2YUV回路をBCAに変更する。 変更概要 いくつかの記述はSystemC2.3.3では使用不可になっている。これはCQ出版の正誤表に記載有 tbとdutで画像データをやり取りするチャネルについて、TLMではsc_fifoを使用していたがBCAではsc_signalでデ…

RGB2YUV回路(TLM)

「SystemCを使ったハードウェア設計」という本を入手できたので、第2章に従ってTLM→BCAの流れを確認する。 TLM(Transaction Level Modeling) データの流れのみを定義したレベル。バス構造やインタフェース機能はモデリングしない。特に重要な点がFIFOの表現…

SystemCで4bitカウンタを作ってみた②

前回作った4bitカウンタを少し変えつつ、もう少し理解を深める。 SC_THREADのsensitivityについて SC_THREADでsensitivityがない件について、SC_THREADはクロック同期しておらず、プロセス側でクロックを待っているのでは?という予想を立てた。とすると、プ…

SystemCで4bitカウンタを作ってみた①

SystemCに同梱されているexampleを勉強するつもりだったけど、結構複雑で言語のお作法がわからないときつい感じだったので、簡単なカウンタ回路をフルスクラッチで作ってみた。これで基本的な構成を理解したい。環境構築にあたって、以下のサイトを大いに参…

SystemCのexample

手始めに/usr/local/systemc/2.3.3/examples/の中身を見てみることにする。 まずはmake とりあえずbuild-unix/というディレクトリ以下でmakeできるようなので、makeしてみた。 $ make make[1]: ディレクトリ `/home/XXXX/sandbox/systemc/tutorial/examples/…

SystemCの環境構築

SystemC。名前と何となくは知っていたけど、日本語の文献があまりにも少ないor高いことから躊躇していたけど、どうもある程度理解しないといけない雰囲気になってきている。今更感がすごいけど。 今回は環境の勉強も兼ねてWSLにSystemCをいれて、Hello Wolrd…