2014-07-30

ICCにて相対配置 (relative placement) を使用する例

Synopsys IC Compiler にて, 複数のセルを並べて配置する場合, relative placement を使用する. 予め, RP-group を作成しておき, それにセルを追加していく.
set rp1 [create_rp_group {rp1} -columns 2]
add_to_rp_group $rp1 -leaf core/cell1 -column 0
add_to_rp_group $rp1 -leaf core/cell2 -column 1

2014-07-29

FFmpeg にて HPF を使用する

ある音源を聞いていたら電源のノイズが音にのっているように感じたので, HPF (ハイパスフィルタ) を使用してみた.
ffmpeg -i input.mp3 -filter_complex highpass=f=500 output.mp3
FFmpeg のフィルタには, LPF (ローパスフィルタ) や BPF (バンドパスフィルタ) もあるようだ.

ICC エラー: could not open script file

Synopsys の IC Compiler は, ディジタル回路の物理レイアウト設計のデファクトスタンダードのツールである. このシェルで, source を実行すると, 以下のようにエラーが出ることがある.
icc_shell> source tcl/procs.tcl
Error: could not open script file "tcl/procs.tcl" (CMD-015)
ソースするときの検索パスは, search_path という変数に書かれているため, これを変更すると, 見つけることができなくなってしまうことがある. lappend search_path "." で検索パスに.を追加するか, 以下のように書けば良い.
icc_shell> source ./tcl/procs.tcl

2014-07-18

EL6をインストールした後, 削除しておきたいパッケージ

EL6 (RHEL6, CentOS6, Scientific Linux 6など) をインストールしたとき, 削除を考慮するべきパッケージを挙げておく. 最小構成などではインストールされないものもあるが, フル構成でインストールされる. 用途やポリシーによってはインストールしておいても良いが, たまにトラブルの原因になることもある.
  • mlocate - 名前でファイルを検索するツール
    毎日ファイルシステムを検索してデータベースを更新するので, 負荷がかかることがある.
  • prelink - ELFを事前にリンクするツール
    ELFバイナリをリンク済みのものに置き換えてしまう.

2014-07-17

ICC ZRoute にてシールド付配線を行う

ICC ZRoute では, シールド付の信号配線がサポートされている. もちろん, Classical Router でもサポートされていた.

グローバル配線・ディテイル配線の前に, シールドを付けたい配線だけ先に配線を行なう. 具体的な手順を以下に示す.

  1. 特定の信号だけ先に配線を行う.
    route_zrt_group -nets [get_nets important_net*]
  2. シールドを作成する.
    create_zrt_shield -nets [get_nets important_net*] -with_ground VSS -coaxial_above true -coaxial_below true

シールドの作成だけなら, route_zrt_auto後でも良いのだが, 他の配線が近くにできてしまうと, シールドを作ることができなくなる.

GCCにてプログラムセグメントのアドレスを取得

GCCでは, プログラムセグメントの番地を取得するシンボルが用意されている. etext, edata, end というグローバル変数を extern 属性を付けて宣言すれば良いらしい. 以下に, マニュアルからとってきた例を示す.
       #include 
       #include 

       extern char etext, edata, end; /* The symbols must have some type,
                                          or "gcc -Wall" complains */

       int
       main(int argc, char *argv[])
       {
           printf("First address past:\n");
           printf("    program text (etext)      %10p\n", &etext);
           printf("    initialized data (edata)  %10p\n", &edata);
           printf("    uninitialized data (end)  %10p\n", &end);

           exit(EXIT_SUCCESS);
       }

具体的な使い道が思い浮かばない...

2014-07-16

USB接続RS232Cポート

パソコンと実験用のFPGAボードを接続するのに, USB接続のRS232Cポートを使用していたのだけれど, 具合が悪かった. はじめ, FPGAの実装が悪いのかと思っていたのだけれど, RS232Cポートを別のものに変えたら, 好調になった.
以前使用していた 変換名人のUSB-RS232は, 色々と悪い評判が出ていたことがわかった.
今回使用したエムサーブのHL-340は問題ない. 価格も700円と安い.

Windows 7 にてログオン時にVPNへ自動接続する方法

ログオンすると自動的にVPNにつながると, 便利なことがある. その設定方法を説明する.

  1. ネットワーク接続を開く. (ネットワークと共有センターを開き, アダプター設定の変更をクリックする.)
  2. 自動接続したいVPNを右クリックし, ショートカットの作成をクリックする.
  3. デスクトップにショートカットを作成した後, スタートアップに移動する.
  4. VPNのプロパティを開き, 名前、パスワード、証明書などの入力を求めるのチェックを外す.
    (これにより, パスワード入力のダイアログをスキップして, 接続される.)

以下に参考にしたページへのリンクを, 感謝を込めて, 挙げておく.

  • 教えてgoo; スタートアップに登録すれば簡単という説明. この方法だけでは, パスワード入力のダイアログで止まって自動接続できなかった.
  • Windows7で自動ダイヤルアップする(VPN); ダイアログを表示させない方法.
  • 2014-07-10

    ICCのサンプルスクリプト

    ICCのスクリプトのリポジトリをみつけた. 何かの役にたつかもしれない. icc-par

    2014-07-02

    FATのパーティションタイプを設定

    あるオシロスコープにて, あるUSBフラッシュメモリを使用できないなと思っていたら, パーティションタイプがLinuxになっていた.
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdf1               1        1015       63924   83  Linux
    

    このページによると, 修了シリンダが1023以下の場合は 0x0B (FAT32), 修了シリンダが1023を越える場合は 0x0C (FAT32 (LBA)) に設定するべきらしい 以下のように設定した.

    Command (m for help): t
    Selected partition 1
    Hex code (type L to list codes): b
    Changed system type of partition 1 to b (W95 FAT32)
    
    設定後のパーティション一覧は以下の通り:
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdf1               1        1015       63924    b  W95 FAT32
    

    Linux では, パーティションタイプが何になっていてもマウントできるので, オシロスコープでなぜそのメモリだけ使用できないのかわからず, なかなか原因がわからなかった. きっと Linux では, パーティション内のデータから判断しているのだろう.