2019-07-05 (金) 14:29:59

秋月電子から発売されたMACHXO2−1200ZE 評価ボードの使い方を解説してみようと思います。

開発ツールの入手

Lattice製FPGAの開発にはLattice Diamondを使用します。

入手方法はダウンロード、インストール方法はインストールを参照してください。

インストール後、動かすためのライセンスが必要なのでライセンス取得の手順で入手してください。

アカウントを取得する必要がありますので、アカウントの作成を行ってください。

同様の説明が秋月電子webサイトicon_pdf.gif開発環境導入の手引きにあります。

ワークスペースの作成

インストールしたLattice Diamondを実行します。

01.jpg

「File」−「New」−「Project...」をクリックします。

02.jpg

「Next >」をクリックします。

03.jpg

プロジェクト名、保存場所を入力し「Next >」をクリックします。

04.jpg

「Next >」をクリックします。

05.jpg

このボードで使っているデバイスは「LCMXO2-1200ZE-1TG144C」です。

「Family」にMachXO2、「Device」にLCMXO2-1200ZE、「Performance grade」に1、「Package type」にTQFP144、「Operating conditions」にCommercialを選択し「Next >」をクリックします。

06.jpg

「Finish」をクリックします。

07.jpg

ワークスペースが作成されます。

08.jpg

デザインを入力する

「File」−「New」−「File...」をクリックします。

09.jpg

「Verilog Files」を選択し、ファイル名を入力します。

「New」をクリックします。

10.jpg

空のファイルが作成されます。

11.jpg

サンプルとして、次のデザインを入力します。

`timescale 1us / 1us

module fpga_top(
  input mreset,
  output reg [7:0] led
);

reg [20:0] ncount;
reg        nclock;
wire       mclock;

always @(posedge mclock) begin
  if (mreset) begin
    ncount <= 21'b0_0000_0000_0000_0000_0000;
    nclock <= 1'b0;
  end else begin
    ncount <= ncount + 21'b0_0000_0000_0000_0000_0001;
    nclock <= (ncount == 21'b1_1111_1111_1111_1111_1111) ? (1'b1) : (1'b0);
  end
end

always @(posedge nclock) begin
  if (mreset) begin
    led <= 8'b1111_1110;
  end else begin
    led <= {led[6:0], led[7]};
  end
end

OSCH #(
  .NOM_FREQ("2.08")
) OSCH_u (
  .STDBY(1'b0),
  .OSC(mclock),
  .SEDSTDBY()
);

endmodule

ピンアサインする

「Process」タブの「Transfer Design」をクリックします。

12.jpg

ここでエラーが発生した場合は修正します。

完了後、「Tools」−「Spreadsheet View」をクリックします。

13.jpg

ピンを入力します。

次のとおり入力します。

mreset114
led_7107
led_6106
led_5105
led_4104
led_3100
led_299
led_198
led_097

14.jpg

MachXO2のデフォルト状態でピンはプルダウンされています。

リセットピンはアクティブLOWで動くようにデザインしているので、mresetの「PULLMODE」をUPに設定します。

15.jpg

「JEDEC File」にチェックを入れ、「Export Files」をダブルクリックします。

17.jpg

この記事は役に立ちましたか?

選択肢 投票
役に立った 32  
役に立たなかった 1  
コレジャナイ! 1  
  • FPGA初心者です。こちらを参考に勉強させていただいています。上記コードの ~mreset による設定値をビット反転しないと mreset も効かず、期待通りの動作となりませんでした。 -- n24bass? 2012-11-25 (日) 22:29:27
  • 最初の always ブロックの ncount と nclock です。 -- n24bass? 2012-11-25 (日) 22:32:45
  • メッセージありがとうございます!すいません確認します。 -- 商品開発部? 2012-12-02 (日) 12:10:07
  • 亀レスすみません。mreset がプルアップされているので、そのままではリセットがかかったままになりますから、114 を GND に落とせば動き出します。 -- n24bass? 2014-06-06 (金) 22:05:08
  • 質問です.このボードの書き込みには町田の小判を利用しているのでしょうか? -- 初心者? 2018-08-30 (木) 12:18:47

(画像の文字列を入力して下さい)

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-07-05 (金) 14:29:59 (78d)