忍者ブログ

EDA Blog

Verilog、SystemVerilog、SystemCなど、ハードウェア記述言語についてのブログです。

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

動かして学ぶ量子コンピュータプログラミング

「動かして学ぶ量子コンピュータプログラミング ―シミュレータとサンプルコードで理解する基本アルゴリズム (日本語)」を購入した。
量子コンピューターについて手を動かしながら学んでいこうと思う。

拍手[0回]

PR

MATLAB入門終了

2時間程度で終了できた。


拍手[0回]

MATLAB入門

MATLABをダウンロードする際にMATLAB入門コースに気が付いたので開始した。
進捗38%。

拍手[0回]

リモートデスクトップのタスクバーが隠れる場合の解決方法

在宅ワークで会社にあるデスクトップPCにリモートデスクトップで接続して仕事をしているが、ローカルPCのタスクバーが隠れず、リモートPCのタスクバーが見えなくなることがあった。
このページの内容で解決できた。感謝。

拍手[2回]

matplotlibのバージョンアップ失敗とその回避方法

matplotlibのバージョンを上げようとpython -m pip install --upgrade matplotlibを実行したら以下のエラーが出た。
ERROR: Cannot uninstall 'certifi'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
stackoverflowのこの質問を参考に、--ignore-installed certifiをつけてpython -m pip install --upgrade matplotlib --ignore-installed certifiを実行したら成功した。

拍手[0回]

ソースコードのシンタックスハイライト

ソースコードをシンタックスハイライトする方法に関して、自分向けの備忘録。
ブログのソースコードに下記記述を入れる。

<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.2/styles/atom-one-dark.min.css" />
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.2/highlight.min.js" type="text/javascript"></script>
<script type="text/javascript">hljs.initHighlightingOnLoad();
ブログに入れたいソースコードを<pre><code>...</code></pre>で囲む。
Verilogの例:

<pre><code>
always @(posedge clk) begin
    dout <= din;
end
</code></pre>

結果、このように表示される。

always @(posedge clk) begin
    dout <= din;
end
 

拍手[0回]

Vivado HLSのSSR FFT IPライブラリ

Super sampling rate対応のFFTを使う必要ができた。
Vivado 2019.2のVivado Design Suiteユーザーガイド 高位合成を久しぶりに読んでみたらSSR FFT IPライブラリがあることに気が付いた。SSR=16までは対応していると書かれている。

早速ユーザーガイドを読みながらVivado HLSプロジェクトを作って試し始めたのだが、hls_ssr_lib.hのincludeの時点でファイルが見つからないとなっている。 Community Forumsのこの投稿によると、Vitisのgithubからcloneして、必要なファイルを持ってこないといけないようだ。

cloneまではしたものの、includeパスを追加するところでVivado HLS GUIの反応が無くなるので諦めてSystem GeneratorのSSR blocksetを使うことにした。

拍手[0回]

SSE Bicubic

void gen_fx_fy_sse(const float &dx, const float &dy, float *fx, float *fy) {
    __declspec(align(16)) float float_all1 = 1.0, float_2 = 2.0, float_4 = 4.0, float_5 = 5.0, float_8 = 8.0;
    __declspec(align(16)) float float_0101[4] = { 1.0, 0.0, 1.0, 0.0 };
    __declspec(align(16)) float float_1212[4] = { 2.0, 1.0, 2.0, 1.0 };

    const __m128 sse_all1 = _mm_load1_ps(&float_all1);
    const __m128 sse_all2 = _mm_load1_ps(&float_2);
    const __m128 sse_all4 = _mm_load1_ps(&float_4);
    const __m128 sse_all5 = _mm_load1_ps(&float_5);
    const __m128 sse_all8 = _mm_load1_ps(&float_8);
    const __m128 *sse_0101 = (__m128 *)float_0101;
    const __m128 *sse_1212 = (__m128 *)float_1212;

    __m128 first = _mm_load1_ps(&dx);
    __m128 second = _mm_load1_ps(&dy);
    __m128 org = _mm_shuffle_ps(first, second, _MM_SHUFFLE(3,2,1,0));

    // 0.0 - 1.0
    __m128 res0 = _mm_addsub_ps(*sse_0101, org);
    __m128 mul2 = _mm_mul_ps(res0, res0);
    __m128 mul3 = _mm_mul_ps(mul2, res0);
    __m128 mul2by2 = _mm_mul_ps(sse_all2, mul2);
    res0 = _mm_sub_ps(sse_all1, mul2by2);
    res0 = _mm_add_ps(res0, mul3);

    // 1.0 - 2.0
    __m128 res1 = _mm_addsub_ps(*sse_1212, org);
    mul2 = _mm_mul_ps(res1, res1);
    mul3 = _mm_mul_ps(res1, mul2);
    res1 = _mm_sub_ps(sse_all4, _mm_mul_ps(sse_all8, res1));
    res1 = _mm_add_ps(res1, _mm_mul_ps(sse_all5, mul2));
    res1 = _mm_sub_ps(res1, mul3);
    __m128 fx0 = _mm_movelh_ps(res0, res1);
    __m128 fy0 = _mm_movehl_ps(res0, res1);

    _mm_store_ps(fx, _mm_shuffle_ps(fx0, fx0, _MM_SHUFFLE(2, 0, 1, 3)));
    _mm_store_ps(fy, _mm_shuffle_ps(fy0, fy0, _MM_SHUFFLE(0, 2, 3, 1)));
}

拍手[0回]

OpenCV 2.4.5をソースからビルドする

このページを参考に、OpenCV 2.4.5をソースからビルド中です。
まだ終わってませんが、終わったところまで記述しています。

Visual Studioのインストール
Visual Studio Express 2012はインストール済みなのでスキップ。

CMakeのインストール
このページからcmake-2.8.11-win32-x86.exeをダウンロードしてインストール。
全部デフォルトオプションのままでOK。

msysgitのインストール
このページからGit-1.8.3-preview20130601.exeをダウンロードしてインストール。

TortoiseGitのインストール
このページから64bit版のTortoiseGit_1.8.3.0-64-bit.msiをダウンロードしてインストール。

OpenCVのソースコード取得
1. C:\OpenCVを作成
2. C:\OpenCVに移動
3. 空のC:\OpenCV上で右クリック。右クリックメニューからGit Cloneをクリック
4. URLにhttps://github.com/Itseez/opencv.gitを、DirectoryはC:\OpenCVを指定。
OKをクリックすると、ソースコードのダウンロード始まります。
4000ファイル強あり、20分弱かかりました。

サードパーティーのライブラリのインストール
ここからPython 2.7.5をダウンロードしてインストール。
特に理由はないですが32bit版のpython-2.7.5.msiにしました。

次にこのページからsetuptoolsをダウンロードしてインストール。
32bit版だと、ダウンロードしたexeファイルを実行するだけです。
64bit版の場合、ちょっと違う手順が必要になるようです。

次はsphinxのインストール。
コマンドプロンプトを起動。
cd <Pythonをインストールしたディレクトリ>\Scripts。
easy_install.exe sphinxを実行。

この次はnumpyのインストール。
ここから1.7.1のディレクトリに入り、numpy-1.7.1-win32-superpack-python2.7.exeをダウンロードしてインストール。
Pythonのバージョンごとにファイルが分かれているので注意。

MikTeXのインストール。
このページからWindows用のインストーラをダウンロードしてインストール。
Settingsの部分で、Install missing packagesという項目があるので、これをAsk me laterからYesに変更します。
それ以外はデフォルトオプションのままで構いません。

Intel TBBのインストール。
このページにアクセスし、Stable ReleaseのSourcesをダウンロード。
ダウンロードしたファイルは解凍し、できたフォルダをC:\OpenCV\depの下にコピー。

Eigenのインストール。
ここからlatest stable releaseのファイルをダウンロード。
これもダウンロードしたファイルを解凍後、できたフォルダをC:\OpenCV\depの下にコピー。

OpenEXRのインストール。
このページからOpenEXRのソースファイルをダウンロード。
これもダウンロードしたファイルを解凍後、できたフォルダをC:\OpenCV\depの下にコピー。

参考にしたページにはOpenNI Frameworkもインストールすると書いてあるが、これは省略。

次はCUDAのインストール。
これは別途インストール済みなので省略。

この次はQt。
このページからインストーラではなくソースコード一式をダウンロードする。
ダウンロードしたファイルを解凍し、できたディレクトリをC:\OpenCV\dep\qtの下にコピー。
Visual Studioの開発者コマンドプロンプトを開き、先ほどコピーしたディレクトリに移動。
下記コマンドを実行する。
configureはPerlスクリプトのため、Perlがインストールされていることが必要。
    configure -release -no-ltcg

上記コマンドが終わったら、続けてnmakeを実行。

Qtのビルドが終わったら環境変数を追加。
以下は私がダウンロードしたQt 5.0.2の場合。
 QTDIR=C:\OpenCV\dep\qt\qt-everywhere-opensource-src-5.0.2
 Path=C:\OpenCV\dep\qt\qt-everywhere-opensource-src-5.0.2\bin

今日はここまで。

拍手[0回]

Visual Studio Express 2012

仕事でVisual Studioを使う機会が増えそうなので、チュートリアルで学習してみた。
仕事で使う内容とは全然関係ないけれども。
http://msdn.microsoft.com/ja-jp/library/vstudio/jj153219.aspx

拍手[0回]

カレンダー

12 2025/01 02
S M T W T F S
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 31

フリーエリア

最新CM

[04/11 なつたん]

最新TB

プロフィール

HN:
aston_martin
性別:
非公開

ブログ内検索

カウンター

アクセス解析