1

Save this PDF as:
 WORD  PNG  TXT  JPG

Size: px
Start display at page:

Download "1"

Transcription

1 WebPACK ISE5.1i Manual Insight Korea Xilinx FAE Team WebPACK ISE 5.1i( 이하 WebPACK ) 은 Xilinx FPGA 나 CPLD 를쉽게디자인할수있게 하는 Free Design Software 로서 Design Entry, Synthesis, 그리고 Verification, Simulation 을할수있는통합환경을제공합니다. 주의 ) ISE 5.1 은 Windows XP and Windows 2000 이상의 OS 에서만지원합니다. (Windows98에서는 ISE5.1i 을사용하실수없습니다. Xilinx Tools 이전버전을이용하셔야합니다.) 참고 ) 1.WebPACK ISE 5.1i에서는 CORE Generator를사용하실수없습니다. 2.WebPACK ISE에서5.1i는 XC4000 계열의디바이스를지원하지않습니다. ( XC4000, Spartan/ SpartanXL ) 자세한 S/W의지원사항에대한내용은아래의파일을참조하시기바랍니다.

2 목 차 1. Webpack ISE5.1i 설치하기 2. WebPACK ISE5.1i 실행하기 3. 프로젝트작성 4. Synthesize 하기 5. Implementation 하기 6. User Constraints ( Pin Assignment ) 7. Modelsim Simulation 8. Downloading 9. Revision Table

3 1.Webpack ISE5.1i 설치하기 Webpack 을아래의 Xilinx 홈페이지에서내려받을수있습니다. 처음방문하시는분은간단한 등록절차를요구합니다. 등록후 Log-in 을하시면 Download ISE WebPACK 을클릭하면아래와같은창이뜹니다. < 그림 1 > WebPack Home 이 Tutorial에서는 Complete ISE Webpack Software 를선택합니다. 주의 ) WebPACK_51_fcfull_i.exe 와 Service Pack3도함께설치합니다. Simulation Tools은기본적으로 Webpack에제공되지않습니다. 아래의창에서와같이 Modelsim MXE version MXE_5.6a_Full_installer.exe 을내려받아추가설치합니다.

4 < 그림 2 > MXE downloading window Tools 의설치순서는 WebPACK_51_fcfull_i.exe 와 Servicepack3 를설치한후, MXE_5.6a_Full_installer.exe 의순으로설치를합니다. 2. WebPACK ISE5.1i 실행하기 Webpack 을실행하기위하여아래와같이바탕화면에있는 Project Navigator 를클릭합니다.. < 그림 3 > 바탕화면의 Project Navigator 3. 프로젝트작성 WebPACK을실행하기위하여 Project Navigator를클릭하게되면아래와같은 Project Navigator라는 window가나타납니다.. 이통합환경은주로네가지창으로구성되어있다. 프로젝트관리및각종소스데이타를관리하는 Source in Project 와그때사용된소스의 Process의상태를나타내는 Process for Current Source 와각종명령시진행사항을나타내는 Console창과각종소스코드를 display해주는 Editor창으로이루어져있습니다.

5 < 그림 4 > Project Navigator window 3.1 Making New project 4-bit Johnson counter 예제를이용하여새로운프로젝트를만들어봅니다. I/O PINS: CLK : input free-running clock Q<3>-Q<0> : counter outputs 새로운프로젝트를만들려면 Project Navigator 에서 File > New Project 를클릭하면아래와 같은 < 그림 5> New Project 창이나타납니다.

6 < 그림 5 > Project Navigator 에서 New Project 생성 < 그림 6 > New Project 창

7 구성을살펴보면 - Project Name : 작성할프로젝트이름 - Project Location : 작성할프로젝트의 Working Directory 를지정 - Device Family : 사용할 Device Family 선택 - Device : 사용될 Device Package 선택 - Design Flow : 사용될 Synthesis tool 선택 위와같이각항목에맞는내용을선택합니다. < 참조 > XST 는 Xilinx Synthesis Tool 입니다. New Project 를작성하고 OK 버튼을누르면새로운 Project 의구성이완성됩니다. 앞으로작성되는모든파일들은 Working Directory 인 jc2_vhd Folder 내에서생성됩니다. 탐색기를열어, C: WORK 내의파일들을살펴봅니다. < 그림 7 > 작업디렉토리내용 < 참조 > jc2_vhd.npl 파일에는아래와같이 New Project 생성하면서선택한내용들이들어있다. // Created by Project Navigator ver 1.0 PROJECT demo_ise DESIGN demo_ise Normal DEVFAM xc9500xl DEVFAMTIME 0 DEVICE xc9536xl DEVICETIME DEVPKG PC44 DEVPKGTIME DEVSPEED -10 DEVSPEEDTIME FLOW XST VHDL FLOWTIME STIMULUS jc_tb.tbw Normal

8 MODULE JCOUNTER.VHD MODSTYLE jcounter Normal [STRATEGY-LIST] Normal=True 3.2 Making Program file Project Navigator 의 Menu 에서 Project > New Source 를 Click 하거나 Source in Project 창 에서마우스오른쪽을클릭하여 New source 를클릭하면아래같은창이뜹니다. < 그림 8 > New Source 삽입창 위와같이 Johnson Counter 를 VHDL 코드로작성을하기위해 VHDL Module 을선택하고 File 란에 jcounter 라고기입합니다. < 참조 > Source 의종류를간단히살펴보면 - User Document : 사용자가프로젝트에대한전반적인설명이가능하게함. - VHDL Module : 작성할 Source 로직이 VHDL 코드일경우사용. - Schematic : 작성할 Source 로직을 schematic으로작성할경우사용. - VHDL Test Bench : ModelSim을이용하여시뮬레이션을하기위해 Test Bench를작성할경우사용. - Implementation Constraints File : UCF 파일을작성할경우사용.

9 [ 다음 ] 을클릭하여다음단계로넘어가면아래와같은 Define VHDL source 화면이뜹니다. Port Name 에들어갈이름과 Direction 을정하고마침을하면 Jcounter.vhd 란 VHDL 파일이 생성됩니다. Bus signal range 를정의 < 그림 9 > Define VHDL Source 만약이전에작성된 HDL Source 를이용할경우에는다음과같은메뉴를이용합니다. Project Navigator : Project -> Add copy of Source 를이용합니다. < 그림 10 > Add Copy of source

10 New Source 를이용한 Source 의작성을위한 럼 Project Navigator 가준비됩니다. 모든준비작업이끝나면아래의그림처 < 그림 11 > New Source 로 VHDL file 입력된후 Project Navigator 오른쪽부분의 HDL source 창에있는 jcounter.vhd 파일의코드를완성하여야합니다. 파일의 Architecture 부분에 User application 로직을설계합니다.. < jcounter.vhd 완성코드 > library IEEE; use IEEE.std_logic_1164.all; entity jcounter is port ( clk : in STD_LOGIC; Q : out STD_LOGIC_VECTOR (7 downto 0) );

11 end jcounter; architecture jcounter_arch of jcounter is signal Dout : std_logic_vector( 7 downto 0); begin process (CLK) begin if CLK'event and CLK='1' then Dout(7 downto 1) <= Dout(6 downto 0); Dout (0) <= not Dout(7); end if; end process; Q <= Dout ; end jcounter_arch; 3.3 Language Template 이용하기 Project Navigator 는 VHDL ( 혹은 Verilog HDL) 사용자를위한기본적인 Language Templates 를제공합니다.

12 기본적인 HLD Standard 문법을 Language Templates 를이용하여쉽게설계를할수있습니 다. 4. Synthesize 하기 Webpack ISE 에서사용되는 Synthesis Tool 은 XST(Xilinx Synthesis Technology) 입니다. XST 는 HDL design 을 synthesize 하고.NGC 확장자를가진 Netlist 파일을생성합니다. 아래의그림과같이 Synthesize를하기위하여 Processes for Current Source 창의 Synthesize를더블클릭합니다. Synthesize Default Option을변경하기위한방법은다음과같습니다. Synthesize에마우스의오른쪽버튼을클릭하고 Properties.. 를선택하면.

13 < 그림 12 > Processes for Current Source 창에서 Properties 선택 Process Properties 가뜹니다. < 그림 13 > Synthesis Option Properties Synthesis Options의내용은 - Optimization Goal 은두가지 value ( Speed, Area) 가있는데로직레벨을축소하면서 speed위주로최적화하는방법으로서예를들어 CPLD의경우 3개의 macrocell사용하는것을 2개만사용하여서 signal이거치는단계를줄이는방법이있고또다른방법으로 Area위주로최적화하는경우도있습니다.. < 참조 > 로직레벨를축소한다는의미는아래의그림을참조하시면됩니다.

14 - Optimization Effort 는 synthesis optimization 의수준을나타내며 default 로 Normal 이지만 high 로놓게되면 multiple optimization 알고리즘을이용하여최적하지만많은 Compile 시간이걸립니다. 그밖의 Properties 들은 Process Properties 의도움말을참조하여대개의경우는 Default 값으로사용하는것이바람직합니다.

15 4.1 View RTL Schematic HDL로작성된디자인을쉽게이해하기위해 View RTL Schematic 을이용합니다. 전체 Top 디자인의 Block-diagram과내부의세부적인 Sub-diagram을더블클릭함으로서자세히볼수있습니다. < 그림 14 > View RTL Schematic

16 5. Implementation 하기 CPLD 과 FPGA은약간다른 Implementation을수행합니다. 이장에서는 CPLD의경우만설명합니다. CPLD의 Implementation은 Translate와 Fit, Generate Timing으로나눌수있습니다. Translate 는 XST로 synthesis 해서생성된 Netlist 인.NGC파일과 User가작성한 UCF파일을가지고.NGD 파일을생성 < 그림 15 > Implement Design 선택 이과정을수행하면서발생한 Error 및 Warning 등의 Report를해주는파일이 NGDbuild Log파일인.bld파일안에들어있고이.ngd파일은 Translation Report를더블클릭하면아래와같이볼수있습니다. < 그림 16> Translation Report 선택

17 위와같이 Translate 를한후에선택한 CPLD device 구조에맞게 Fitting 작업합니다. 이러한작업을하는것이 Fitter 인데그결과도 Fitter Report 를더블클릭함으로써내용을확 인할수있습니다. < 그림 16> Fitter Report 선택 Fitter Report에는사용된 Device 정보를포함해서사용된 Macro cell의수, 사용된 i/o, 실제로 Signal이 mapping되어서 fitting등에관련된내용들이들어있습니다. 이 Report는설계자의의도대로설계가제대로되었는지확인할수있는중요한 Report입니다. < 그림 17> Fitter Report 의내용

18 5.1 ChipViewer 실제로 Fitting 된 signal 들의연결정보를 graphic 하게보는것이 Chipviewer 인데 ChipViewer 를더블클릭하면아래와같은 ChipViewer 가뜹니다. < 그림 18 > ChipViewer 선택 원하는신호의 fitting Path 를보고싶으면원하는 PAD 나 MC 를클릭하면된니다.

19 5.2 Generate Timing 지금까지설계한디자인의 Timing 결과를확인하는단계입니다. 이것은아래와같이 Timing report를이용합니다. 선택된 CPLD device에맞게 Fitting된 Signal들의 Timing정보를보는것입니다. < 그림 19> Timing Analyzer Timing Analyzer 를통해좀더면밀한 Timing 정보로디자인을분석할수있습니다. < 그림 20 > Timing Analyzer 창 Analyze against Timing Constraints 아이콘을클릭함으로아래와같이 Timing Constraint 에 대해실제로 fitting 신호들의시간정보를볼수있습니다.

20 < 그림 21 > Timing Analyzer 창에서 Timing Constraints Analysis Report 이렇게 Implement 를마치고정상적이면녹색의체크표시가되고설계자가원하는 Timing Option 에만족하지못하여 Error 가발생하면빨간색으로표시됩니다. 6. User Constraints ( Pin Assignment ) 이장에서는지금까지 Auto Assignment 된 project의여러 In/Out pin들을설계자가의도하는 Device의 Pin에직접설정하는방법을설명합니다. 그방법을여러가지가있습니다. 먼저 HDL source내에 Attribute 명령문을이용하는방법과, UCF 파일내에설정하는방법이있습니다. 아래에서는 UCF 파일을이용하는방법을설명합니다.

21 6.1 UCF 파일만들기 먼저 Project Navigator -> Project -> New Source 를선택하고아래와같이작성한하면, < 그림 22 > Implementation Constraints File 선택 아래와같이 jcounter.ucf 파일이 TOP 파일밑에생성됩니다. 이 UCF 파일안에는아무런정보가없는빈파일입니다. 이파일에 Pin Assignment 정보를포함한각종 Timing Option을작성합니다. 이번장에서는 Pin Assignment를하는방법만설명하겠습니다. < 그림 23 > User Constraints 생성된 UCF 파일에 Pin위의그림과같이 Pin Assignment를하는방법은여러가지가있다. Edit Constraints(Text), Assign Package Pins, Create Constraints Editor를이용하는방법이있습니다.

22 6.2 Lock Pins 이용하기 이방법은 Implementation 시자동으로만들어지는 Fitter Report 의 Pin Assign 정보를이용하 는것입니다. 아래의그림과같이 Lock Pins 을실행시키면, < 그림 24> Lock Pins 선택 Working Directory 에다음과같은내용을포함한 Jcounter_lock.ucf 라는파일이생깁니다. 그파일을열어보면, #PINLOCK_BEGIN #Mon Mar 03 14:52: NET "clk" LOC = "S:PIN43"; NET "q<0>" LOC = "S:PIN38"; NET "q<1>" LOC = "S:PIN31"; NET "q<2>" LOC = "S:PIN27"; NET "q<3>" LOC = "S:PIN41"; NET "q<4>" LOC = "S:PIN3"; NET "q<5>" LOC = "S:PIN8"; NET "q<6>" LOC = "S:PIN16"; NET "q<7>" LOC = "S:PIN20"; #PINLOCK_END 이 Pin Assign 정보를변경하고자하는핀번호만수정한후저장합니다.

23 6.3 Edit Constraints ( Text ) Edit Constraints 를실행하면 jcounter.ucf 파일의 Text editor 가뜨는데그곳에규정에맞는 내용을직접작성합니다. 6.4 Assign Package Pins ChipViewer 를이용하는방법으로서아래의그림과같이 In/Out Pin 들선택하고원하는위치 의 Pad 에 Drag and Drop 하면 Pin Assign 을마치게됩니다. < 그림 25 > ChipViewer for Pin Assign 모든 In/Out pin 의설정이끝난후, 저장을하여 Pin Assign 정보를 Ucf 파일에저장한다.

24 6.5 Create Timing Constraints Constraints Editor 이용하여 Pin Assignment 를하는방법입니다. 아래와같이 Create Timing Constraints 를실행합니다. 해당핀의란을선택 & 핀정보입력 < 그림 26 > Constraints Editor 위의그림과같이직접핀정보를해당란에직접입력하고저장하면, UCF 파일에자동으로 저장됩니다.

25 Pin Assign 정보나 Timing Option 을수정한후, Project Navigator 는아래와같이 Implementation 상태는물음표로표시됩니다. 이것은 UCF 정보가변경되어 Reimplementation 을해야한다는내용입니다. < 그림 27> Re-Implementation < 참고 > Pin Assign 은직접 top-level의코드에직접아래와같이삽입해도된다. 이방법은 jcounter.vhd 코드안에서아래와같은 Attribute 명령문을이용하여 pin_assign을할수있다. attribute pin_assign : string; attribute pin_assign of clk : signal is "13"; attribute pin_assign of q : signal is "14,16,18,19,20,21,22";

26 7. Modelsim Simulation Xilinx에서무료로제공하는 Modelsim MXE starter version을사용하기위해서는 MXE_5.6a_Full_installer.exe를설치합니다. Modelsim 사용에필요한 License는프로그램설치후자동으로 Xilinx Home page에서등록하여 License 파일을받거나, Windows 시작메뉴 -> 프로그램 -> Modelsim XE v5.6a -> Submit License Request를선택하여받을수있습니다. License 파일은메일을통하여즉시받을수있습니다. 7.1 Modelsim MXE license Project Navigator에서 Modelsim을연결하기위해서는메뉴의 Edit -> Preference를선택하고 Partner Tools에서아래와같이 Modelsim Xilinx Edition version 의실행파일의디렉토리경로가정확히설정되어있는지를확인. -> 아래의그림은 Modelsim MX_Starter version 을사용할경우를설명함.

27 7.2 Making Test Bench for Modelsim Project Navigator 에서 Project -> New source 를선택한후, 아래와같이 VHDL Test Bench 를선택합니다. 보통 tb_top file name 로설정합니다. 다음과같은 Window 가나타나면, 마침 button 을 Click 합니다. 만약여러개의 entity 가존재할경우 TOP_entity 를선택합니다. Test Bench 파일의초기작성이끝났으면, 아래와같이 tb_jcounter.vhd 파일을완성합니다.

28 Project Navigator 창에서 tb_jcounter.vhd 에커서를위치시키면 Processes for Current Source 창에 Modelsim simulator 가나타납니다.

29 function 시뮬레이션을하려면 Simulation Behavioral VHDL Model 을클릭합니다. Timing 시뮬레이션을하려면 Simulate Post-Fit VHDL Model 를클릭하면아래와같 은 Modelsim 창이뜹니다. 시뮬레이션파형들은 wave 창에서볼수있다.

30 - 확대 (Zoom in 2X ) 하려면이곳을클릭 - 축소 (Zoom out 2X) 하려면이곳을클릭 - 다시 Resimulation 하려면이곳을클릭 - Delay 를확인하기위해또하나의지시자가필요합니다. Add Cursor Icon 을 Click 합니다. - - cursor 를통해서 delay 를확인한다.

31 8. Downloading 이장에서는설계한디자인의모든검증이끝난후, Downloading file 을만들어 Device 에직접 downloading 하는과정을설명합니다. Project Navigator 에서아래와같이 Configure Device ( impact ) 를실행합니다.

32 Prepare Configuration Files 은 FPGA 로개발시 PROM 파일을만들경우사용합니다. 이 장에서는 CPDL 를사용함으로이기능은설명하지않습니다. 참고 : Boundary-Scan Mode : Cable을이용하여모든 CPLD를 Download할경우와 FPGA의 JTAG port를이용하여 Download를할경우에사용. Slave Serial Mode : Cable을이용하여 FPGA의 CCLK mode를이용하여 Configuration 할경우 SelectMap Mode : FPGA의 Parallel data port를이용한 configuration 방법

33 Downloading 할준비가모두끝났으면, 위의그림과같이 Device 아이콘에마우스오른쪽버튼으로선택하여 Pop-up 메뉴를띄우고, Program. 을선택하여 Device로의 downloading 을실행합니다. Cable을통하여.JED 파일이디바이스로 Downloading 됩니다. 9. Revision Table WebPACK ISE 5.1i ver1.0 Release