アットウィキロゴ
javascript plugin Error : このプラグインで利用できない命令または文字列が入っています。

CPLD

Xilinx

FPGA、CPLDの製造大手企業

WebPack

xilinxのIEDです。個人的にはこのソフトの使い勝手はquatusにおとると
思っています。

WebPackの使い方

  • 使った基板
    起動
    
    こんな画面。
    File->New Projectを選ぶ。
    画面がないところは全部nextでOK
    
    この画面に出会ったらこんな感じに入力。
    
    上のほうは、使っているCPLDを選ぶ。
    下は同じでOK。VHDLを選びます。
    finish
    
    右クリックでNew Sourceを選ぶ。
    
    ファイル名を入れて VHDL Moduleを選ぶ。
    finish
    
    選択部分にしたのプログラムをコピーしてください。
    
  1. テストプログラムを書いてみる。
    entity hello is
    port(
    clk:in std_logic;
    led_out:out std_logic);
    attribute pin_assign:string;
    attribute pin_assign of clk:signal is "5";
    attribute pin_assign of led_out:signal is "3";
    end hello;
    
    architecture Behavioral of hello is
    
    signal counter:std_logic_vector(20 downto 0);
    
    begin
    process(clk)
    begin
    if clk'event and clk='1' then
    counter<=counter+1;
    end if;
    end process;
    led_out<=counter(20);
    
    end Behavioral;
    
このプログラムは、ledを点滅させるプログラムになっている。使用している
発信子が8MHzでLEDは約250msで点滅する。
  • プログラムの説明
    entity hello is entity ソースファイル名 is で
    port(
    clk:in std_logic; クロックの入力
    led_out:out std_logic);  ledをちかちかさせるピン
    attribute pin_assign:string;
    attribute pin_assign of clk:signal is "5"; 使用ピンの指定
    attribute pin_assign of led_out:signal is "3";
    end hello;
    
    entity ソースファイル名 is と end ソースファイル名で囲んだなかに
    使用するピンとその型を指定する。
    またそれには
    port();内に
    変数名:in or out 型;とい書き方をする。
    たとえば
    clk:in std_logic;の場合
    clkという変数は外部からの入力がstd_logicという型で入る。
    led_ou:out std_logic;の場合
    led_outという変数は内部で指定したものをstd_logicという型で出力する。
    
    attribute pin assign:string;に続いて
    attribute pin_assign of 変数名:signal is "使用ピン";
    で変数が使う使用ピンを指定することができる。
    ソフトの中にGUIでpin指定できるGUIが入っていると思われるが
    私が見つけたGUIは非常に使いにくかったので(たぶんもっと使いやすいのが
    どこかにあるはずだが)プログラムで指定してしまうことにした。
    
    architecture Behavioral of ソースファイル名 is と
    end Behavioral;で囲まれた部分に動かしたい動作を書く。
    signal counter:std_logic_vector(20 downto 0);は、外部との接触を
    持たない変数でportの中身と基本的に同じである。
    std_logic_vectorはstd_logicの配列と同じ働きをする。
    変数を作り終わったらbeginを書くその下に実際の動きが入ってくる。
    process(clk)は時間別に処理したいときに書く。これを書かない場合は、
    同じ時間に処理される。(並列処理)process()括弧の中身は、portで指定した
    もので内部で使うものを書く。
    if文はクロックが動いてhighになったら処理をすると言うもの。
    
個人的にここはQuartusに勝っていると思う。
プログラムのコンパイルが終わるとこの画面になる。
マクロ、レジスタ、ピンなどの使用率が表示される。
また右のpic listをクリックするとどのピン配置が表示され
プログラム中でのPIN配置とハード側のピン配置の確認ができる。

右下のImportant Designを開き、図と同じところを選ぶ。

右クリックしてRUNする。
これでプログラムに文法的なエラーがないか確認する。全体をコンパイルすると
時間がかかるため、この操作を入れておくと作業時間が短縮できる。

OKだったら次はFITで同じ作業でRUNする。このそふとでは、コンパイルではなく
フィットというらしい。これに成功すると、こんな画面が出る。

いろいろ見れるので見てみる。PIN配置とか使用率とかみれるから確認する。

再び右下から図のところでRUNする。なにか確認ダイアログが出るのでYESを選ぶ
とこんなのが出る。ので、ハードをつないでから、下と同じところを選んでください。
つないでいるCPLDの名前が画面に出たら接続成功です。
さっき選んだところのすぐ下にある、Programを選ぶと書き込み完了です。

戻る

最終更新:2010年01月28日 10:10