FC2カウンター FPGAの部屋 XSTのBlock RAMへのロジックのマップを確かめる
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

XSTのBlock RAMへのロジックのマップを確かめる

XSTにはロジックをBlock RAMへ割り当てるディレクティブ bram_map がある。これは、スライスがなくなってしまった時に、Block RAMにロジックを割り当てる機能のようだ。ISE10.1iのXSTガイドの286ページ、”ブロックRAMへのロジックマップ”に載っている。
もしこれが、大きなステート数の多い、ステートマシンを作った時にマイクロプログラム制御方式のプロセッサのように、ROMイメージをステートマシンの遷移や出力信号に使ったほうが、動作周波数の心配が要らないのじゃないかと思ったわけだ。もしそうなってくれたら本当に良い。当然ながら、ステートマシンの1つのステートから遷移できるステートの数がROMのビット幅で変わってしまうが、そこは最適化する。
もしくはEDKなどで、シーケンサを組むという方法もあるとは思ったが、以前”ISEからEDKを内部制御用プロセッサとして使いたい”でやってみたところ動作周波数が合わなくてだめだった。EDKは本当にFPGA内部だけに使えるかどうかもわからない。
まずはSpartan3E Starter Kit のDDR SDRAMコントローラ・バーストテスト用インプリメントのうちのcontroller.v にbram_map ディレクティブをつけてみてやってみた。

(* bram_map="yes" *)
module controller(clk, clkx, clk1_16, reset, dcm_lock, address, read_writex, next_address, next_read_writex, addr_fifo_empty, addr_fifo_almost_empty, addr_fifo_rden, wrdata_fifo_empty, wrdata_fifo_almost_empty, wrdata_fifo_rden, ddr_rasb, ddr_casb, ddr_web, ddr_ba, ddr_address, ddr_cke, ddr_csb, dqs_enable, dqs_reset, write_timing, read_timing, burst_read, initialize_end);
`include "./ddr_cont_parameters.vh"

input clk, clkx, clk1_16, reset, dcm_lock;
input [USER_INPUT_ADDRESS_WIDTH-1:0] address;
input read_writex;


インプリメントしFPGA EditorでContorller分を抽出した結果を以下に示す。
bram_map_2_090107.png

スライスばかりを使用してBRAMを使用していない。
以前のはどうかというと
bram_map_1_090107.png

インスタンス名は多少変わっているが変化がない。複数のクロックがあるのでBRAMにアサインできないのだろうか?
後で、サンプルをダウンロードして確かめてみることにする。
  1. 2009年01月07日 05:56 |
  2. その他のXilinxのツールについて
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/1000-7ff61858
この記事にトラックバックする(FC2ブログユーザー)