본문 바로가기

[FPGA]/Lattice

Lattice ispLever(ispDesign Expert) 개발환경 설정

Lattice사의 Design 소프트웨어인 ispLever(ispDesign Expert)를 이용하여 VHDL작성 및 시뮬레이션 방법에 대해 알아 본다.
이번 Tutorial 예제에서는 Ez-CPLD Board를 테스트 하기 위해 Ez-CPLD Board의 딥스위치의 입력 값을 LED에 표시하는 예제를 작성해 보자.




먼저 ispLever프로그램을 실행 시킨다.



구버전(ispDesignExper)의 프로젝트는 Lagacy Constraints Translator프로그램을 이용하여 일부 파일 타입을 변경해 주면된다.


아래 그림은 ispLEVER Ver2.0을 실행하여 나오는 첫화면으로 위의 메뉴바와 아래의 3개의 창으로 구성되어 있다. 이전 버전인 ispDesignExpert Ver8.4와는 약간의 인터페이스 차이를 보인다.

 

사용자 삽입 이미지






















새로운 프로젝트를 실행하기 위하여 메뉴의 '
File->Create New Project'하여 새로운 파일을 작성한다. 여기서는 VHDL로 테스트 할 것이므로 ‘Schematic/VHDL'타입을 선택한다.

 


이렇게 새로운 프로젝트를 생성하면 ispLSI5256VE라는 디바이스가 자동으로 올라오게 되는데, 이부분을 더블클릭하게 되면 아래의 그림처럼 Device Selector가 나오게 된다.

EzCPLD Board는 Mach 5시리즈의 M5-128/104-15YC이므로 이 디바이스를 선택해 주면된다.

 




새로운 디바이스를 선택하면 아래 그림과 같이 새로운 프로젝트가 생성되는데 이제 우리가 보드를 테스트할 VHDL소스를 작성하면된다.

사용자 삽입 이미지
 



참고로 아래와 같이 예전버전의 디바이스는 추천하지 않는다는 경고 메시지가 나타나는데 ispLever는 최신의 Lattice 디바이스(FPGA등..)를 지원하기 위해 제작 되었기 때문에 이런 메시지나 나타나는데 ‘아니오‘를 클릭하면 M5-128/104를 문제없이 사용할 수 있다.

 





VHDL소스를 작성하려면 새로운 소스코드를 작성하는 방법과 기존에 제작된 소스를 Import하는 방법이 있는데 여기서는 새로운 소스코드를 작성해 보자.

메뉴의 Source->New를 선택하면 아래 그림과 같이 생성할 소스코드의 종류를 묻는데VHDL소스 이므로 VHDL Module을 선택하면 된다.

 



VHDL모듈을 선택하였다면 아래그림과 같이 새로운 소스파일을 생성할 수 있다.

파일 이름과 Entity, Achitecture을 기입하면 자동으로 VHDL의 기본틀을 소스코드로 생성해 준다. 만약 File Name만 넣고 나머지는 공란으로 두게 되면 Entity name 은 file name으로 architecture name 은 Behavioral로 임의대로 만들어 진다.



이제 기본적이 틀은 완성되으므로 Ez-CPLD Board를 제어하는 간단한 소스를 작성해 보자.

아래 소스는 Ez-CPLD Board의 딥스위치 입력값을 LED로 출력하는 예제이다.

 





Ez-CPLD의 딥스위치의 입력을 받아 LED로 출력하는 VHDL 예제소스.

library ieee;

use ieee.std_logic_1164.all;


entity Basic_Test is

port

(

    Clk:                  in     std_logic;

    Reset:              in     std_logic;

    DipSwitch:          in     std_logic_vector(7 downto 0);



    Led:               out    std_logic_vector(7 downto 0)

);


-- Pin Attribute ----------------------

attribute loc : string;

     --Define Clk Pin

     attribute loc of Clk:          signal is "P20";

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

end;


architecture Led of Basic_Test is

begin

        process(Clk, Reset, DipSwitch)

        begin   


                if rising_edge(Clk) then

                        if Reset ='0'   then

                                Led <= x"ff";

                        else

                                Led <= DipSwitch;

                        end if;


                end if;

        end process;

end Led;




코딩이 완성된 후, 저장하고 빠져 나오면 소스코드가 디바이스 아래에 올라온 것을 볼 수 있다. VHDL소스 코드를 합성하려면 'Basic_Test(Basic_Led.vhd)'항목의 Compile EDIF File 더블클릭하여 메뉴를 실행시킨다.

만약 코드작성에서 에러가 나면 에러 메시지창이 나타나는데 에러난 부분을 더블클릭 하게 되면 Vhdl의 에러난 부분으로 커서가 이동하게 된다. 메시지를 보고 수정하여 다시 Compile EDIF File을 더블클릭하면 체크가 된다.



 




참고로 소스에서 Pin Attribute에서 핀을 Locking시킬 필요가 있는데 ispLever버전으로 넘어 오면서 클럭핀이 자동 할당이 되지않을때 강제적으로 핀을 Locking 시킬때 사용된다.

아래 소스는 20번 핀을 Clk로 할당하겠다는 의미 이다.


-- Pin Attribute ----------------------

attribute loc : string;

     --Define Clk Pin

     attribute loc of Clk:          signal is "P20";

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

반응형