Atlysのプロジェクトファイル,ソースファイルの作成と合成(Hello world! for VHDL

 

ISEのインストールが完了したらプロジェクトファイルとソースファイルを作成します.

 

プロジェクトファイルの作成

ISEを立ち上げる.

Menu File New Project...

New Project Wizardが表示されたら

Nameを入力(hello_vhdl)

[Next]クリック.

Project SettingsAtlysの場合は次をセット.

Family Spartan6

Device XC6SLX45

Package CSG324

[Next]クリック.

 

Projext Summry

[Finish]クリック.

 

VHDLソースファイルの作成

Menu Project New Source

New Source Wizardが表示されるので

Select Soure Type

File Name入力( hello_vhdl)

Select source type...

VHDL Moduleを選ぶ

[Next]クリック

 

Define Module

Port Nameを定義

              RVS       : in         std_logic;

              CLK       : in         std_logic;

              LED       : inout    std_logic_vector(7 downto 0);

              LEDBusをチェックMSB7  LEB0

(後でISEエディタから変更もできる.)

[Next]クリック

Summary [Finish]クリック

以上で*.vhdファイルのひな形ができます.

*.ucfファイルの作成

*.ucfファイルはデバイス間の接続などを定義します.

Menu Project New Source

New Source Wizardが表示されるので

Select Soure Type File Name入力( hello_vhdl)

Select source type...

Implementation Constraints Fileを選ぶ

[Next]クリック

Summary

[Finish]クリック

以上で*.ucfの空ファイルができます.

 

ここにISEエディタから次を入力し, [Ctrl]+[S]で保存します.

#FOR ATLYS

NET "RVS"       LOC = "F6";     #BTNR

NET "CLK"       LOC = "L15";    #GCLK

NET "LED<0>"  LOC = "U18";      #LD0

NET "LED<1>"  LOC = "M14";      #LD1

NET "LED<2>"  LOC = "N14";      #LD2

NET "LED<3>"  LOC = "L14";      #LD3

NET "LED<4>"  LOC = "M13";      #LD4

NET "LED<5>"  LOC = "D4";       #LD5

NET "LED<6>"  LOC = "P16";      #LD6

NET "LED<7>"  LOC = "N12";      #LD7

 

 

*.vhdファイルの編集

*.vhdファイルを開き,次のように編集し,[Ctrl]+[S]で保存します.

------------------------------------------------------------------

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

 

entity hello_vhdl is

        Port (

                RVS     : in    STD_LOGIC;

                CLK     : in    STD_LOGIC;

                LED     : out STD_LOGIC_VECTOR (7 downto 0)

        );

end hello_vhdl;

 

architecture Behavioral of hello_vhdl is

        signal CNT      : std_logic_vector(33 downto 0);

 

begin

        process(CLK) begin

                if CLK'event and CLK='1' then

                        if RVS='0' then

                                CNT<=CNT+1;

                        else

                                CNT<=CNT-1;

                        end if;

                        LED<=CNT(33 downto 26);

                end if;

        end process;

end Behavioral;

-------------------------------------------------------------------

ISEの左下ペイン上の[Generate Programming File]を右クリック Rerun ALL

以上で合成(Synthesize)が開始されます.

 合成に成功すると作業フォルダ上に*.bitファイルが出来上がります.

 

C:\Users\user01\vhdl\hello_vhdl>dir   *.bit  [Enter]

 ドライブ C のボリューム ラベルがありません。

 ボリューム シリアル番号は C853-0953 です

 C:\Users\user01\vhdl\hello_vhdl のディレクトリ

2012/08/01  14:45         1,484,500 hello_vhdl.bit

               1 個のファイル           1,484,500 バイト

 

Atlys上での実行

(前提:Digilent Adeptのインストールが完了していること.)

Atlysの電源スイッチがOFFになっていること(ON表示の逆側)を確認してACアダプタを接続する.

AtlysUSBでパソコンと接続する.

Atlysの電源スイッチをONにする.

Digilent Adeptを立て上げる.

[Browse...]ボタンをクリックしてISEで合成された*.bitファイルを選ぶ.

[Program]ボタンをクリックして,プログラムをAtlysにアップロードする.

アップロードが完了すると自動的にプログラムが開始される.

プログラムは,LED8ビットカウンタに見立てて点灯消灯を繰り返す.