FC2ブログ

NEEKピンアサイン

前記事の通り、SOPC Builderで作った回路のコンパイルエラーはピンアサインしてない事が
原因っぽいし、いずれ必要なのでやってみる。資料は以下から入手。

http://www.altera.co.jp/products/devkits/altera/kit-cyc3-embedded.html#Update_Instructions
 → リファレンス・マニュアルをクリックしてzip入手。解凍後の以下pdfを見る。
      「cycloneIII_3c25_start_board_reference_manual.pdf」

まずDDR SDRAMのピンアサインを実施。尚、DDRモジュールは以下。

   4M x16 x 4 DDR SDRAM
   PowerChip Semiconductor
   A2S56D40CTP-G5PP

DDR型番に合わせて、SOPC Builderで追加したDDRCのターゲットデバイスを上記にする。
マイナーと思われるPowerChip SemiconのDDRモジュールの型番がSOPCBのDDRCで選択
出来る事に驚く。きっとアルテラ正規評価キットで使っているモジュールは全て登録されている様子。
ターゲットDDRモジュールの選択に合わせて、DQS(1bit)→DQS(2bit)に自動でコントローラが改変
されるのも手軽でイイ。
しかし、上のpdf資料で調べたDQS[1]のFPGAピンは「T8」のはずなんだが、ピンアサインでエラーに
なる。SSTL2-ClassIとII両方共にエラー。なぜ資料通りにやってエラーになるんだ??

Signal Name FPGA Pin Direction    Type   U4 (DDR) Pin
ddr_dqs0    U3    Bidirectional   SSTL-2    16
ddr_dqs1    T8    Bidirectional  SSTL-2   51

Error: Cannot place pin mem_dqs_to_and_from_the_altmemddr_0[1] to location T8
Error: Can't place VREF pin T6 (VREFGROUP_B3_N0) for pin
        mem_dqs_to_and_from_the_altmemddr_0[1] of type bi-directional with
        SSTL-2 Class II I/O standard at location T8

(2009/11/21追記)
エラー内容でぐぐってみたら、以下ページ発見。
http://alteraforums.com/forum/showthread.php?t=5434

なんのこっちゃ分からないが、とにかく「OUTPUT_ENABLE_GROUP」というキーワードが関係ありそう。
またぐぐると、今度はとんずらさんのページ発見。
http://www.ujiya-denshi.com/adiary/adiary.cgi/HDL/ALTERADOC/QSF/OUTPUT_ENABLE_GROUP

書いてある以下コマンド使うとエラー回避出来るかも?やってみよう。
set_instance_assignment -name OUTPUT_ENABLE_GROUP -to -entity

(2009/11/21追記)
何も考えずに以下を同GRとして宣言したらエラー消えた。「1111」に意味無し。
コマンドをぐぐってみたらどっかの外人さんが書いてるのを真似してテキトーな数字を入れただけ。

set_instance_assignment -name OUTPUT_ENABLE_GROUP 1111 -to mem_dqs_to_and_from_the_altmemddr_0[0]
set_instance_assignment -name OUTPUT_ENABLE_GROUP 1111 -to mem_dqs_to_and_from_the_altmemddr_0[1]
set_instance_assignment -name OUTPUT_ENABLE_GROUP 1111 -to mem_dm_from_the_altmemddr_0[0]
set_instance_assignment -name OUTPUT_ENABLE_GROUP 1111 -to mem_dm_from_the_altmemddr_0[1]
set_instance_assignment -name OUTPUT_ENABLE_GROUP 1111 -to mem_dq_to_and_from_the_altmemddr_0[0]
set_instance_assignment -name OUTPUT_ENABLE_GROUP 1111 -to mem_dq_to_and_from_the_altmemddr_0[1]
set_instance_assignment -name OUTPUT_ENABLE_GROUP 1111 -to mem_dq_to_and_from_the_altmemddr_0[2]
set_instance_assignment -name OUTPUT_ENABLE_GROUP 1111 -to mem_dq_to_and_from_the_altmemddr_0[3]
set_instance_assignment -name OUTPUT_ENABLE_GROUP 1111 -to mem_dq_to_and_from_the_altmemddr_0[4]
set_instance_assignment -name OUTPUT_ENABLE_GROUP 1111 -to mem_dq_to_and_from_the_altmemddr_0[5]
set_instance_assignment -name OUTPUT_ENABLE_GROUP 1111 -to mem_dq_to_and_from_the_altmemddr_0[6]
set_instance_assignment -name OUTPUT_ENABLE_GROUP 1111 -to mem_dq_to_and_from_the_altmemddr_0[7]
set_instance_assignment -name OUTPUT_ENABLE_GROUP 1111 -to mem_dq_to_and_from_the_altmemddr_0[8]
set_instance_assignment -name OUTPUT_ENABLE_GROUP 1111 -to mem_dq_to_and_from_the_altmemddr_0[9]
set_instance_assignment -name OUTPUT_ENABLE_GROUP 1111 -to mem_dq_to_and_from_the_altmemddr_0[10]
set_instance_assignment -name OUTPUT_ENABLE_GROUP 1111 -to mem_dq_to_and_from_the_altmemddr_0[11]
set_instance_assignment -name OUTPUT_ENABLE_GROUP 1111 -to mem_dq_to_and_from_the_altmemddr_0[12]
set_instance_assignment -name OUTPUT_ENABLE_GROUP 1111 -to mem_dq_to_and_from_the_altmemddr_0[13]
set_instance_assignment -name OUTPUT_ENABLE_GROUP 1111 -to mem_dq_to_and_from_the_altmemddr_0[14]
set_instance_assignment -name OUTPUT_ENABLE_GROUP 1111 -to mem_dq_to_and_from_the_altmemddr_0[15]

(2009/11/21追記)
Niosを動かす実験としてLEDをチカチカさせたいのでSOPC BuilderでPIOを追加。
下位4bitをLEDポートへアサインするため、以下の通りqsfへ追記。

set_location_assignment PIN_P13 -to out_port_from_the_pio_0[0]
set_location_assignment PIN_P12 -to out_port_from_the_pio_0[1]
set_location_assignment PIN_N12 -to out_port_from_the_pio_0[2]
set_location_assignment PIN_N9 -to out_port_from_the_pio_0[3]

すると以下のエラーが多発。
Error: Output or bidirectional pin out_port_from_the_pio_0[1] in pin location P12 (pad_105) is too close to VREF pin in pin location T11 (pad_106)

確かにピンアサイン画面で、Tool > Enable Live I/O CheckをONにして即チェックすると以下画面
のように×が付く。

LED_PIN_ERR

T11のVREFが近過ぎるとか言われてるが、どんな回避をして欲しいのか?
ピン配置関連はXilinxといい苦手。ぐぐってもあまり情報無いし、インプリに成功してるデモ回路の
qsfでも見るしかないかな。

(2009/11/23追記)
以下のqsfを参考にしても、「set_instance_assignment -name OUTPUT_ENABLE_GROUP」
を使っているのは同じで、数字が違うだけ。全く同じコマンドにしてもエラーが消えなかったので
結局、LED4個のうち、エラーが出た所はアサインしない事でエラーを回避。
結論、よくわからんし、そこだけLED使わなければ良いだけなので、次へ行くことに。

c/Altera/80/kits/cycloneIII_3c25_niosII/demos/picture_viewer/cycloneIII_embedded_evaluation_kit_picture_viewer.qsf
スポンサーサイト



カレンダー
10 | 2009/11 | 12
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 - - - - -
累積訪問者
現在の訪問者
現在の閲覧者数:
最新記事
最新トラックバック
最新コメント
月別アーカイブ
カテゴリ
プロフィール

bobgosso

Author:bobgosso
FPGAのブログへようこそ!

検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード