MIGの中身と使いかた
の編集
https://www.am.ics.keio.ac.jp/proj/asap/wiki/?MIG%A4%CE%C3%E6%BF%C8%A4%C8%BB%C8%A4%A4%A4%AB%A4%BF
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
-- 雛形とするページ --
(no template pages)
MIGの中身は送信側と受信側で異なる。 送信側はODDRを4つ並べてCLK_P,CLK_N( 以下DQSと呼ぶ)、 WRITE_DATA_P, WRITE_DATA_N(DQと呼ぶ)を入れて送信。 回路設計者は入力クロックの位相をDQS,DQとの間で90度ずらすべし。 続いて受信側 書き途中、、、 -MIGの使いかた CoreGeneで生成したファイルの中にexample_designというものがある。 この中のsim ディレクトリにて… ../rtl/*.v ./*.v および /home/cad/xilinx/ISE-10.1/ISE/verilog/src/unisims +libext+.v を読み込む。 やっとシミュレーション完了… 波形を見るならば、 example_design/sim/sim_tb_top.v に initial begin $shm_open(); $shm_probe("AC"); end を記述。 しかしこれだと適当な時間にシミュレーションを中止しないと駄目っすね、、 このexample_designなるフォルダには、ddr2_tb_top.vというモジュールが入っている。 これが、実際のメモリコントローラにデータを送るためのモジュールなので、 この部分をユーザが書き換える(あるいは置き換える)ことによって、 メモリの操作が可能になる。 具体的には、 初期化が終了するのはおよそ70_000ns程度なので、その後になんらかの 動作をさせればよし。 注意しなければならないのは、FPGAの動作周波数。 DCMで全回路200MHz動作を目指すと大抵タイミングを満たさないことが多い。 そこで、 -メモリインターフェースのみ200MHz -その他回路は低動作周波数。 にしてみたい。 すると、うまく非同期FIFOをはさまなければならず、少しわくわくしてきた涙。
タイムスタンプを変更しない
MIGの中身は送信側と受信側で異なる。 送信側はODDRを4つ並べてCLK_P,CLK_N( 以下DQSと呼ぶ)、 WRITE_DATA_P, WRITE_DATA_N(DQと呼ぶ)を入れて送信。 回路設計者は入力クロックの位相をDQS,DQとの間で90度ずらすべし。 続いて受信側 書き途中、、、 -MIGの使いかた CoreGeneで生成したファイルの中にexample_designというものがある。 この中のsim ディレクトリにて… ../rtl/*.v ./*.v および /home/cad/xilinx/ISE-10.1/ISE/verilog/src/unisims +libext+.v を読み込む。 やっとシミュレーション完了… 波形を見るならば、 example_design/sim/sim_tb_top.v に initial begin $shm_open(); $shm_probe("AC"); end を記述。 しかしこれだと適当な時間にシミュレーションを中止しないと駄目っすね、、 このexample_designなるフォルダには、ddr2_tb_top.vというモジュールが入っている。 これが、実際のメモリコントローラにデータを送るためのモジュールなので、 この部分をユーザが書き換える(あるいは置き換える)ことによって、 メモリの操作が可能になる。 具体的には、 初期化が終了するのはおよそ70_000ns程度なので、その後になんらかの 動作をさせればよし。 注意しなければならないのは、FPGAの動作周波数。 DCMで全回路200MHz動作を目指すと大抵タイミングを満たさないことが多い。 そこで、 -メモリインターフェースのみ200MHz -その他回路は低動作周波数。 にしてみたい。 すると、うまく非同期FIFOをはさまなければならず、少しわくわくしてきた涙。
テキスト整形のルールを表示する