ぱたへね

はてなダイアリーはrustの色分けができないのでこっちに来た

FPGA

コマンドラインからAlteraのjicファイルを作る方法

最近のAltera系のFPGAボードは、jic(JTAG Indirect Configuration )形式のファイルを使う物が増えています。1回、2回ならGUIで作成しても良いのですが、毎回設定をするのが面倒だったり設定忘れがあり困っていました。コマンドラインからjicファイルを作成…

加算器を作ろう 最後の高速化

最初に決めた条件をはずせるなら、さらに高速になる可能性があります。 FPGAを変える まずオプションよりも何よりも一番効くのが「最速のデバイスにする」事です。アルゴリズムによる最適化を図る前に、最速のPCを買ってくるやり方です。現在入手可能な最速…

加算器を作ろう 手でチューニングしてみた。

「lpm_add_subを使っていれば問題無い」が結論なのですが、悔しいのでさらにチューニングしてみました。Fmaxを上げる事だけを考えているので実用的ではありません。手間暇かければ速くなるという例です。 回路の方針 32bitずつで加算を行い、各クロックでキ…

加算器を作ろう carry select adderによる加算

http://d.hatena.ne.jp/natsutan/20081121の続きです。前回はlpm_add_subを使用しましたが、手動で高速化を図ってみましょう。今回はcarry select adderと呼ばれる手法を用いました。carry select adderとは上位の加算をキャリー有り、キャリー無しの両方で…

加算器を作ろう lpm_add_subによる加算

次に最も実践的であるMegacore wizardを使う方法を紹介します。通常はこの方法だけ知っていれば十分です。 lpm_add_subの設定 Quatus2のTools→Maga Wizard Plug-In Managerを起動します。Arithmeticからlpm_add_subを選択しましょう。bit幅の設定と、Create …

加算器を作ろう マルチサイクルによる加算

CLKの周波数を維持したままタイミング制約を満たさない加算を実行するには、マルチサイクル制約を使うという手法があります。要するに加算自体を数クロックかけて行うので、タイミング制約は緩くしてねという事です。クロックによる同期設計を半ば放棄してい…

加算器を作ろう 最初の一歩

加算器のFPGA実装について調べた所、奥が深くとても面白い事がわかりました。特にFPGA実装に限ると、キャリー専用配線や、LUT構造により通常の加算器とは少し違った性能になることがあります。加算器をいかに速くできるかについて、いろいろと挑戦してみまし…

グレイコード

符号付き2進数のバリエーションのコメントで面白い話が聞けましたので検証してみました。元ネタは、第二の魚の骨発見です。どうしてこういう事が起きるのか、またグレイコードならどう違うのかをシミュレーションしてみました。Verilogによる実装も後ろで説…

FPGA初心者向けのテキスト

mixiでたっくさんに教わりました。セミナー自体はチェックしていたのですが、まさかテキストまで公開されているとは思いませんでした。 http://www-online.kek.jp/Seminar/fpgaseminar.htmlこちらの資料に目を通すだけで、FPGA開発に関して一通りの事は分か…

FPGAで動くCPU特集

[fpga-cpu]でFPGAで動く小さいCPUの議論が盛り上がっています。 http://tech.groups.yahoo.com/group/fpga-cpu/messages/3060?xm=1&m=e&l=1その中で評判が良い物を紹介してみます。 個人的にはb16がシンプルなので一度FPGAで動かしてみたいところです。 Zyli…

FPGAで忘れてはいけない、たった一つのオプション

FPGAの回路を実機で動かすときに、一つだけ忘れてはいけないオプションがあります。それは「未使用ピンを入力/Hi-Zに設定する」です。数あるオプションの中で最も重要であるにも関わらず、ISEやクオータスのバージョンによってデフォルト値がまちまちになっ…

FPGAボードを買うときに気をつけること 2008年版

いろんな人にFPGAで遊んで欲しいのですが、初心者にはFPGAボードを買うところに大きな障壁があります。 私なりに初心者が忘れがちなところをまとめてみました。FPGA業界は、Altera社とXilinx社が大きなシェアを持っており、最初の一歩はこの2社から選ぶこと…