VHDLの書き方

for generateで生成した分散RAMの初期化方法
XSTでのVHDLインプリメントの注意点
(math_realライブラリを使って、log2(値)を使って、ビット幅を算出しようとし たら丸めのために失敗した)
私流のVHDLの書き方1
(constant文で値を意味のある文字列で置き換える方法やfunctionの使い方の 例)
私流のVHDLの書き方2
(package文とpackage body文の書き方の例)
VHDLにおけるifdefの代わり
(Verilogのifdefの代わりにVHDLではif generate文を使う)
PCI-Xバスへの出力信号のHDL記述
(PCI-Xの出力信号のVHDLでの記述方法の一例、人間の見易さを第一に考えている)
FFをIOBに入れるためのVHDLの書き方 (Synplify Pro編)
(PCI-Xバスへの出力信号のHDL記述よりも確実な書き方)
あらかじめ定義された属性(Predefined Attributes)
多次元配列
(多元配列の書き方)
ブロック文
VHDLのブロック文と使い方)
ありがとう、30万アクセスとVHDLの共有変数
(たーぼ のハードウェア設計記録さんのVHDL TIPS 「shared variableの使用法」の紹介)
PS/2キーボードインターフェース用テストベンチ (procedure使用)
(procedure 文を利用して、”日曜デジタル”の”PS/2に挑戦”のPS/2キーボード・インターフェースのテストベンチを書いてみた。procedure文はサブプ ログラムを書くときに使われる。wait文も書くことができるので、テストベンチでプロセッサのバスプロトコルやシリアルインターフェースの通信手順を書 くのも使用することができる。)
LOG2の値の求め方
XSTでのVHDLインプリメントの注意点で失敗 したLOG2の求め方をOPENCORESのソースで解決した)
VHDL で32ビット以上のカウンタの生成
(巷でVHDLで32ビット以上のカウンタの動作がどうなるか?と話題になっている。私もライ ブラリを読んでみたところどうなるのか非常に興味があったので、ISE9.2.03i と ModelSim SE 6.1eでやってみた。)
VHDL でのブロックRAMや分散RAMの初期化(外部データファイル)
(外部データファイルのデータでのブロックRAMや分散RAMの初期化方法)
VHDL でのpackageの使用方法
(私のVHDLのpackageの使用方法)
VHDL の慣性遅延と伝搬遅延
(VHDLの慣性遅延と伝搬遅延の書き方について)
VHDL でのブロックRAMや分散RAMの初期化(16進数で書かれた外部データファイル)
(” VHDLでのブロックRAMや分散RAMの初期化(外部データファイル)”では、外部データファイルを16進で書くことができなかったが、どうも2進数で 書くとわかりづらいので16進数で書く方法を模索することにした。やってみたら書くことができたので、ブログに書いておくことにする)
 procedure を使うときの注意点
procedureを使うときに、'eventを使える信号(clk)は、signal宣言を する必要がある。
 VHDL による乗算について(ISE12.3のXSTを使用) 
VHDL で乗算記号*を使ったときに、どのようになるのかが、よくわからなかったので試してみた。その覚書です。特にunsigned とsignedを掛けたときにどうなるのか?std_logic_vector同士をそのまま掛けたらsignedとして扱ってくれるのか?よくわからな かった。
 Type Qualification とType Conversion
VHDLのType Qualification とType Conversionについての覚書。STATE1'(idle)、STATE2'(idle) 、signed(temp1), unsigned(temp2)
 VHDL による乗算記述方法によるインプリメントの差異(Ver.12.3のXST) 
ISE12.3のXSTを使って、VHDLによる乗算記述方法によるインプリメントの差異につ いて調べてみた。DSP48にアサインされる時も、LUTにアサインされる時もあった。XSTの-use_dsp48オプションによって変化する。
 VHDL のgenericの値を下位モジュールのVerilogのparameterとして渡す 
VHDLのgeneric文で書いた値を、Verilogで書かれた下位モジュールのパラメー タとして渡す方法。
 LOG2の値の 求め方2
LOG2の求め方。こういうやり方もあるのね?
 VHDLのとっ ても有用なExamples
VHDLのとっても有用な Examples があったのでリンクを張って置く。
 ポートを配列で 宣言して下位階層に配線を接続する
VHDLでポートを配列で宣言して下位階層に配線を接続する方法を備忘録として書いておく。こ の場合は、packege を宣言してパッケージに配列の宣言を書いておく。なお、使用ツールはISE13.4だ。
std_logic_arith から numeric_std へ(VHDL)
std_logic_arithパッケージを使用していたが、numeric_stdパッケー ジを使ってVHDLを書くことにした。
std_logic_arith から numeric_std へ2(実践編)
numeric_stdパッケージで宣言した時のVHDL記述の仕方。
VHDLの math_realパッケージを使用した sin() と cos() の計算
sin() と cos() の演算を VHDL の math_real パッケージを使用してやってみたので、忘れないようにブログに書いておく。
ある constant の値で、他の constant の値を切り替える1(VHDL編)
Verilog HDLは、前回やり方が分かったが、VHDLのやり方が分からなかった。ツィッターでつぶやいたら、VHDLの達人の hiyuh さんが教えてくれた。いつもありがとうございます~。その内のエレガント方のやり方から紹介させて頂こうと思います。
ある constant の値で、他の constant の値を切り替える2(VHDL編)
引き続き、VHDLの達人 hiyuh さんに教えていただいた ある constant値で、他の constant の値を切り替えるの第2段。こちらのほうがエレガントではないそうだ。私もそう思うが、ある理由でこっちを使いたいと思っている。ある constant値が string の場合だ。
ある constant の値で、他の constant の値を切り替える3(VHDL編2、XPSプロジェクト)
VHDLの達人 hiyuh さんのVHDLコードのおかげで、"SVGA"と入力したら、800x600 に設定することができた。今度は、XPSプロジェクトに置いてAdd IPのダイアログの中で、VGA, SVGAなどの解像度を設定したら、640x480, 800x600 に設定することを目指す。
ある constant の値で、他の constant の値を切り替える4(VHDL編3)
前回のやり方で、XPSプロジェクトにカスタムIPを入れるときのAdd IPのダイアログで、解像度を選ぶことが出来るのだが、pure function をビデオのパラメータ分、書くのが面倒で、長い。本文より長くなってしまうこともあるかもしれないので、package にすることを考えた。
ある constant の値で、他の constant の値を切り替える5(VHDL編4、XPSプロジェクト、完成)
今回は、前回の結果を使って、XPSプロジェクトのAdd IPダイアログで解像度を選択して、その解像度のビデオのパラメータをconstant値に設定することを目指す。pure function でそれを行ったのが、”ある constant の値で、他の constant の値を切り替える3(VHDL編2、XPSプロジェクト)”である。今回は、package を使った前回のVHDLコードを使用する。


他のカテゴリでのVHDLの記事
VHDLの共有変数を使用したシミュレーション
(VHDLの共有変数を使ってテストベンチで下の階層の信号を見る)
PCIバスなどのシミュレーション(VHDL)
(PCIバスのサスティンド・トライステート信号をシミュレーションする際の問題点と一解決方 法)
DDR SDRAMコントローラをVHDLからVerilog2001へ書き換える2
(VHDLでLUTを使用したDual Port RAMのRAM16X1Dプリミティブをアドレス幅だけインスタンス)
DDR SDRAMコントローラをVHDLからVerilog2001へ書き換える1
(VHDLでのPackageの書き方の一例)
PS/2キーボードインター フェース用テストベンチ(procedure使用)のアサーションのようなもの
PS/2キーボードイ ンターフェース用テストベンチ(procedure使用)のVHDLで書いたテストベンチにアサーションのようなものを追加して、エラーが出たら シミュレーションがブレークして、エラーメッセージが出るようにした)
キャラクタ・ディスプレイ・コントローラのシミュレーション (VHDL)
(キャラクタ・ディスプレイ・コントローラの表示文字をシミュレーションによって確認する方 法、VHDL版。こちらはPS/2キーボード・インターフェース回路とつながっている)

その他、いろいろなところに散らばっているのであきらめました。 inserted by FC2 system