アダルト・ヴァイオリン May the force be with you..

2006年4月26日

VHDL:真理値から論理値への変換関数

Filed under: 組込みシステム — @ 7:59 AM

VHDLで当たり前のように欠けていた(200Xではextraパッケージに入ったので過去形だがFPGAベンダーツールでは未サポート)ものに、真理値から論理値への変換関数がある。

論理設計者は真理値と論理値を自由に交換して、当たり前のように使うのだが、VHDLでは厳密に型が一致しないと利用できないので、真理値と定義されたものを自由に論理の中で信号としては使えない。

実は、簡単な関数で変換できるのであるが、こんな当たり前のものが何でIEEEの標準ライブラリに最初からないのか、とっても不思議なものだ。

function to_std_logic(b: boolean) return std_logic is
begin
if b then return ‘1’; else return ‘0’; end if;
end to_std_logic;

上の関数は真理値を論理値に変換する。
パッケージとして自分のプロジェクトに追加するか、architecture定義の中に書くことで利用できる。extraパッケージがベンダーツールで利用可能になる将来を考えればパッケージ化しておいたほうが役に立つ。

to_std_logicという関数名は他の論理値への変換関数と同一の名前である。VHDLでは引数の型が違えば同一関数名を利用しても問題にならない。多様体を許しているからである。

この関数はFPGAベンダーツールで普通にコンパイルできるので、少し仕事が楽になった。std_logicとstd_logic_vectorの違いも標準関数を呼び出し、何とかできるので、どんどん記述が長くなり人の読むものではなくなるが、一応、VHDLでもVerilogHDL並みの記述は作成できる(読みたくもないものを書くなんてとんでもなく、私にとって、あくまでもVHDLはアセンブラもしくは中間言語以上のものではないが)ことになったので、VHDLターゲットの仕事もこれで請けられそうだ。

2006年4月25日

sfl2vhの最適化処理

Filed under: 組込みシステム — @ 1:52 AM

やはり、人任せにせず、まじめに最適化VHDLコードを出すことを考えた。
一応、基本設計は終了し、基礎実験において、きちんと正しく動作しそうなことは分かったが、最適化VHDLを出力して欲しいという要望はほとんどないので、気が向いたときに少しずつ作業を進めることにしようか・・・
(VerilogHDL側で修正が入ると、ファイル管理が面倒になるので、本当は一気にやっつけてしまったほうが簡単ではあるが)

面倒だったのは、VHDL-200Xでサポートされる機能がいつまでたってもFPGAベンダーのツールでサポートされないので、同じ関数を独自に定義しなくてはならない点である。

これは、定義すればいいだけなのだが、本来はパッケージとしてファイルの外部に出すべきところ、変換ツールという性格上、パッケージは作りにくい。
結果、関数をモジュール内部に定義して使うことにした。

2006年4月24日

verilogHDLからVHDLへの変換ツール

Filed under: 組込みシステム — @ 12:34 PM

sfl2vlではVHDL出力の最適化はVerilogHDL出力ほどやっていない。というのも、VHDLの構文でVerilogHDL並みの最適化をするには、色々と信号を増やしたり、回避すべき問題が多く出力行数が今の1.5倍にはなりそうな感じだからというのと、(自動合成にさせるにせよ)VHDLで最適化された回路を書くのはとても面倒なのが理由である。

そこで、最適化されたVerilogHDLの出力結果を変換プログラムに食わせて最適化されたVHDLが得られれば、この面倒な作業を外部ツールに任せられるかも?と、二つのツールを試してみた。

一つは、CQ社のDWMで森脇氏が発表したツールV2Vである。

もう一つは、John Sheahan氏のv2vhdである。

で、結論から言うと、どちらのツールも機能不足であり、sfl2vlが最適化したコードは扱えなかった。

両者ともソースは公開されているが、森脇氏のはライセンス条件が不明なので、修正するとしたら、GPLが明示されているJohn Sheahan作のv2vhdだろうなぁ。

でも、これって、pearlで書かれていて、とても読みたい代物ではない・・・

2006年4月23日

sfl2vhの修正

Filed under: 組込みシステム — @ 11:13 PM

O氏より、sfl2vhでVHDLに変換した結果に一部問題が発生し、うまく合成できないケースがあるとの情報をいただく。

問題点は2つである。

一つは外部端子の宣言をきちんと判定せず、内部的に保持している端子を誤って外部端子としてVHDLのentityに出力するケースがあり、不正な端子が余分に出力される場合があった。これは、外部端子の宣言であることをきちんと調査した上でentityの合成を行うように修正して対策。

もう一つはVHDLで算出演算を使うときの型変換のエラーである。私の使っているISE8.1iでは問題なく通る記述も、ISE8.1SP2では通らないらしい。
同じ環境がないと再現はできないのであるが、現象をじっと観察して、おそらく、型変換の演算オーバーライドがうまくいかないと判定。が、ISEのバージョンによって違うというのは困りものである。
結果、unsignedパッケージを新たにインポートすることで、オーバライドの状況をコンパイラに伝えることに成功。余分な型変換の呼び出しは抑止し、デフォルトの型で利用するように修正。

これで、VHDLの多くの合成系に対応できる・・・はずである。

2006年4月20日

.NETで Lego Mindstorms

Filed under: Weblog — @ 4:06 PM

PCWEBの記事によるとMSFTのVS無償化が無期限になったそうだ。

これはこれで、いいのであるが、気になったのが、LEGO MINDSTORMSの.NETインタフェースがあるという話。

JavaによるLEGO MINDSTORMSの制御は遅くて使い物にならないことは分かっているが、.NETはどうなんだろう?

誰か使った人はいるのかな?

2006年4月18日

ドキュメントスキャナ

Filed under: モバイル — @ 8:40 AM

紙の書類が常々散乱してしまう私としては、ドキュメントスキャナを使って身の回りから紙を一掃したいという要求に時々襲われる。

このところ気になっている賞品が、キャノンのドキュメントスキャナDR2050Cである。

DR-2050C【送料無料】Canon キヤノン ドキュメントスキャナDR-2050C[DR2050C]

が、紙は始末に困る代わりに保存性が良く、めったなことでは情報は壊れない。
一方、HDDに格納した情報は瞬時に壊れてしまうので、スキャナの情報だけに全てを頼るというのは一抹の不安がある。

RAIDなどの冗長ハードウェアを使えばよいと思う人も多いだろうが、あれらはハード故障に関してはある程度OKであっても、ソフトのミスで情報を壊した場合には結局戻らないのである。(もちろん、定期的なバックアップで物理的に異なるメディアに保存するという手段はあるが、そんなきちんとしたことが出来る私ではない ^^;)

2006年4月17日

デジタル一眼レフカメラ

Filed under: モバイル — @ 4:27 PM

元々、デジカメは一眼構造であり、一眼レフのミラーは蛇足なのだが、未だにEVFが実用レベルに達してこない以上、一台くらい一眼レフを持っていてもいいのかも?

コニカミノルタのα-7は、その素晴らしい色再現性から人気が続いていたが、同社がデジカメ事業から撤退するというので、消えてなくなる運命である。

《新品》KonicaMinolta α-7 Digital【即納】

同じく市場撤退で消えたCONTAXのTVSデジタルを持っているのだが、α-7も欲しいカメラの一つ・・・つくづく欲しいものが人と異なるらしい 笑

2006年4月12日

また一つ、名車が消える

Filed under: Weblog — @ 9:51 PM

一世を風靡、トヨタ・セリカが生産打ち切りへ (読売新聞) – goo ニュース

仕方ないことだとしても、名車の系列を受け継ぐものがまた一つ消えていく。

スポーツカーの保険料が高く若者が車を買えなくなったアメリカはともかく、日本の若者が実用車にしか乗らないというのは、車が夢でも憧れでもなくなった世の中を象徴しているのだろう。

コンピュータも憧れの地位を追われ、車も追われ、若者の憧れはどこに向かうのだろう・・

「音楽と詩、人間はこれ以外に後世に残すべきものを作ることができなかった」

そんな日が来るのも近いかも・・

2006年4月10日

MIX PowerC コンパイラ

Filed under: 組込みシステム — @ 5:06 PM

MSDOS全盛の頃、MIXコンピュータのPowerCコンパイラが発売された。これは、$19.95という格安であるにもかかわらず、100ページ以上にも渡るANSI Cのチュートリアルと420個のライブラリ関数の全例題付きの数百ページの解説書として、その分かりやすい構成と文章に優れたものであった。

Windowsの時代になっても、Cの初心者向けには、このチュートリアルとライブラリの説明は充分役に立つし、(当然ながら、GUI部分はないが)今でも入手できるのかなと、検索してみたら、

まだ会社は健在のようでショッピングサイトから購入可能である。

が、$19.95のショッピングにUPS経由で送料が$26かかり、何とも・・・

今日から、新しい人たちに職場にある本を使って、チュートリアルの読みあわせをしてもらっているが、いくつかのメリットがある。

・英語であるので、読み飛ばしをせずにきっちりとチュートリアルを読んでもらえる。
  日本語の教科書を渡しても斜め読みして全部をまともに読んでもらえないものだが、英語だと斜め読みが出来ない人たちが多いので、ちゃんと読む訓練に良い

・英語の訓練になる
  構文はかなり単純で癖もなく読みやすい本なので、英語が苦手な彼らにはちょうど良い英文読解訓練だ

・C言語の基本構文の解説がしっかり書かれている。
  C言語の勉強用に読みあわせをさせているが、本来の(笑)目的にも優れた本である。

というように、この本(いや、本当はプログラムのマニュアルなのだが)にはかなり優れたところが多々あり、出来れば各自が自分で買って手元において欲しいくらいなのだが・・・送料さえかからなければとてもお買い得なんだけれどな・・

2006年4月6日

楽器の本 2冊

Filed under: 音楽 — @ 3:50 PM

一冊は軽く持ち歩ける電車内読書用

もう一冊は、バイオリン関係の辞書的な本の組

Older Posts »

Powered by WordPress