ispLEVER培训教程

ispLEVER培训教程
ispLEVER培训教程

Page 1

目录

第一节 ispLEVER 简介

第二节 LEVER 开发工具的FPGA设计输入方法第三节 ModelSim 的使用方法

第四节 设计的实现

Page 2

第一节 ispLEVER简介

ispLEVER 是莱迪思公司最新推出的一套EDA软件。提供设计输入、HDL 综合、验证、器件适配、布局布线、编程和在系统设计调试。设计输入可采用原理图、硬件描述语言、混合输入三种方式。能对所设计的数字电子系统进行功能仿真和时序仿真。软件中含有不同的工具,适用于各个设计阶段。软件包含Synplicity公司的“Synplify”、Mentor Graphics公司的“Precision RTL Synthesis”综合工具、Mentor Graphics公司的“ModelSim”仿真工具和Lattice的ispVM器件编程工具。ispLEVER软件提供给开发者一个有力的工具,用于设计所有莱迪思可编程逻辑产品。软件不仅支持所有莱迪思公司的原有的FPGA、FPSC、ispXPGA TM、ispXPLD TM、ispLSI 、MACH、ispGDX、ispGAL、GAL器件,还支持莱迪思新的LatticeXP/ECP/EC和MachXO产品系列。这使得ispLEVER的用户能够设计所有莱迪思公司的业界领先的FPGA、FPSC、

CPLD/SPLD产品而不必学习新的设计工具。

软件主要特征:

1. 输入方式

* 原理图输入

* ABEL-HDL输入

* VHDL输入

* Verilog-HDL输入

* EDIF输入

* 原理图和硬件描述语言混合输入

2.逻辑模拟

* 功能模拟

* 时序模拟

3.编译器

* 结构综合、映射、自动布局和布线

4.支持的器件

* 含有支持ispLSI器件的宏库及MACH器件的宏库、TTL库

* 支持所有ispLSI、MACH、ispGDX、ispGAL、GAL、LatticeEC、LatticeECP、LatticeXP、MachXO、ORCA FPGA/FPSC、ispXPGA和

ispXPLD器件

5. 工具

* Preference Editor、IPexpress、TCL、Floorplanner、EPIC Device Editor和Constraints Editor

6. ispVM工具

* 对器件进行编程

Page 3

第二节 ispLEVER开发工具的FPGA设计输入方法

I.启动ispLEVER(按Start=>Programs=>Lattice Semiconductor=>ispLEVER

Project Navigator菜单)

II.创建一个新的设计项目

1. 选择菜单File。

2. 选择New Project,打开Project Wizard窗口。

3.在Project Wizard窗口的Project Name栏中,键入项目名demo。在

Location栏中,输入文件路径

D:\design\ispLEVER_tutorial_example\ 。在Design Entry Type栏

中选择Schematic/VHDL(ispLEVER软件支持Schematic/ABEL、

Schematic/VHDL、VHDL、Schematic/Verilog HDL、Verilog HDL、

EDIF、GDF输入)。在Synthesis Tools栏中选择Synplify。此时的窗

口如图2.1所示。

`

图2.1 Project Wizard窗口

4.完成上述步骤后,按Next按钮,产生Project Wizard – Select

Device窗口。在此窗口的Family栏中,选择MachXO;Device栏中选择

LCMXO1200E;Speed grade栏中选择 –3;Package type栏中选择

Page 4

TQFP100;Operating conditions栏中选择Commercial; Part Name栏中选择器件型号LCMXO1200E-3T100CES。此时的窗口如图2.2所示。

图2.2 Project Wizard – Select Device窗口

5.完成上述步骤后,按Next按钮,产生Project Wizard – Add Source

窗口。

6.直接在Project Wizard – Add Source窗口中按Next按钮,产生

Project Wizard – Project Information窗口。

7.在Project Wizard – Project Information窗口中按Finish按钮。此

时的ispLEVER Project Navigator主窗口如图2.3所示。

Page 5

图2.3 ispLEVER Project Navigator主窗口

III. VHDL设计输入的操作步骤

本例中,选择VHDL类型。若是Verilog设计输入,则选择Verilog HDL 类型。

将该工程文件存盘为demo.syn。

在ispLEVER Project Navigator主窗口中,选择Source=>New菜单。在弹出的New Source对话框(如图2.4)中,选择VHDL Module类型,按OK按

钮。

此时,软件会产生一个New VHDL Source对话框。

Page 6

Page 7

图2.5 New VHDL Source 对话框

在对话框的各栏中,分别填入如图2.5所示的信息。按OK 钮后,进入文本编辑器-Text Editor 编辑VHDL 文件。

在Text Editor 中输入如下的VHDL 设计,并存盘,该文件(demo.vhd )即为顶层文件。

顶层文件 library ieee;

use ieee.std_logic_1164.all;

entity demo is

port( CLK: in std_logic ; RST: in std_logic ; SEL: in std_logic ; DAT: in std_logic_vector ( 3 downto 0 ); COMPDAT: in std_logic_vector ( 3 downto 0 ); GT_O: out std_logic ; LT_O: out std_logic ; EQ_O: out std_logic ); end;

architecture demo_architecture of demo is

component

COMP_LT

port (O1 : out std_logic;

IN0 : in std_logic_vector (3 downto 0);

IN1 : in std_logic_vector (3 downto 0));

component;

end

COMP_GT

component

port (O1 : out std_logic;

IN0 : in std_logic_vector (3 downto 0);

IN1 : in std_logic_vector (3 downto 0));

component;

end

component

COMP_EQ

port (O1 : out std_logic;

IN0 : in std_logic_vector (3 downto 0);

IN1 : in std_logic_vector (3 downto 0));

component;

end

signal CR : std_logic_vector (3 downto 0);

signal W_CR : std_logic_vector (3 downto 0);

begin

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

-- Instantiate lower level modules

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

GT_1: COMP_GT port map(

=>

GT_O,

O1

W_CR,

=>

IN0

COMPDAT);

IN1

=>

LT_1: COMP_LT port map (

LT_O,

O1

=>

=>

W_CR,

IN0

COMPDAT);

IN1

=>

EQ_1: COMP_EQ port map (

EQ_O,

=>

O1

W_CR,

=>

IN0

=>

COMPDAT);

IN1

W_CR <= CR;

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

-- Define logic for loading compare register

--

-- The compare register (cr) is only loaded

-- when sel input is asserted on rising edge

of

clk.

--

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

LOAD_COMP_REG : process (CLK, RST)

begin -- process LOAD_COMP_REG

Page 8

Page 9

-- activities triggered by asynchronous reset (active low) if RST = '0' then CR <= "0000"; -- activities triggered by rising edge of clock elsif CLK'event and CLK = '1' then if SEL = '0' then CR <= DAT; else

CR <= CR; end if; end if; end process LOAD_COMP_REG; end demo_architecture;

该设计为实现比较器。采用模块化的分层结构,有一个顶层文件,三个底层文件,参照上述操作,完成三个底层文件(eq.vhd, gt.vhd, lt.vhd )的输入。

底层文件1(eq.vhd ) library ieee;

use ieee.std_logic_1164.all;

entity COMP_EQ is port (O1 : out std_logic; IN0 : in std_logic_vector (3 downto 0); IN1 : in std_logic_vector (3 downto 0));

end COMP_EQ;

architecture IMP_COMP_EQ of COMP_EQ is

begin -- IMP_COMP_EQ FUNCTION_EQ : process (IN0, IN1) begin -- process FUNCTION_GT if IN0 = IN1 then O1 <= '1'; else

O1 <= '0'; end if; end process FUNCTION_EQ;

end IMP_COMP_EQ;

底层文件2(gt.vhd ) library ieee;

use ieee.std_logic_1164.all; entity COMP_GT is port (O1 : out std_logic; IN0 : in std_logic_vector (3 downto 0);

IN1 : in std_logic_vector (3 downto 0));

end COMP_GT;

architecture IMP_COMP_GT of COMP_GT is

begin -- IMP_COMP_GT

FUNCTION_GT : process (IN0,IN1)

begin -- process FUNCTION_GT

if IN0 > IN1 then

'1';

O1

<=

else

O1

'0';

<=

if;

end

end process FUNCTION_GT;

end IMP_COMP_GT;

底层文件3(lt.vhd)

library ieee;

use ieee.std_logic_1164.all;

entity COMP_LT is

port (O1 : out std_logic;

IN0 : in std_logic_vector (3 downto 0);

IN1 : in std_logic_vector (3 downto 0));

end COMP_LT;

architecture IMP_COMP_LT of COMP_LT is

begin -- IMP_COMP_LT

FUNCTION_LT : process (IN0,IN1)

begin -- process FUNCTION_LT

if IN0 < IN1 then

<=

'1';

O1

else

'0';

O1

<=

if;

end

end process FUNCTION_LT;

end IMP_COMP_LT;

接下来采用Synplify工具对VHDL设计进行综合。此时的ispLEVER Project Navigator主窗口如图2.6所示:

Page 10

Page 11

图2.6 ispLEVER Project Navigator 主窗口

双击Processes 窗口的Synplify Synthesize VHDL File 进行编译、综合。或者选择菜单Tools=> Synplify Synthesis 产生如图2.7所示的窗口。选Add 依次调入demo.vhd, eq.vhd, gt.vhd 和lt.vhd ,然后对demo.vhd 文件进行编译、综合。

图2.7 Synplify窗口

若整个编译、综合过程无错误,该窗口在综合过程结束时会自动关闭。若在此过程中出错,双击上述Synplify窗口中Source Files栏中的demo.vhd文件进行修改并存盘,然后按RUN钮重新编译。

在通过VHDL综合过程后,可对设计进行功能和时序仿真。

IV. IPexpress的使用方法

ispLEVER软件中的IPexpress工具用于帮助设计者利用Lattice 的参数化模块和IP核设计来完成更大的设计。

在ispLEVER Project Navigator主窗口中,按Tools=>IPexpress菜单,

即会出现如图2.8所示的窗口。

图2.8 IPexpress窗口

在左侧Module文件夹中选择所要的模块,例如FIFO_DC。在File Name 栏中填入文件名。

Page 12

Page 13

图2.9 选择 FIFO

然后按Customize 钮。界面如图2.10所示。

图2.10 设置参数- General Options

然后在对话框中选Configuration,再设置各种参数,最后按Generate钮,即产生相应的模块。这时软件会产生一个VHDL(或者Verilog HDL)的网表文件,并将它存放在指定的目录下。用户可以在其设计中调用此文件。

复选框Import LPC to ispLever project能让用户选择是否将生成的*.lpc文件装载到ispLever project中。*.lpc文件和模块一起产生,存有用户指定的参数。如果用户选择将其装载到ispLever project中的话,就可以在ispLever project窗口中双击该文件直接打开图2.10所示的窗口。在此窗口中能看到先前生成的模块并且可以对其进行修改。

一旦模块生成后,用户可以在自己设计的上层模块中调用该模块的*.lpc或者VHDL/Verilog-HDL文件。

Page 14

第三节 ModelSim 的使用方法

ModelSim 是一个仿真工具,可以用来模拟设计的结果,进行功能仿真和时序仿真。以下用前一节的例子来说明ModelSim的使用方法。

1.建立测试向量文件

2.在ispLEVER Project Navigator主窗口中选择Souce=>New即弹出如图

3.1所

示的窗口。点击VHDL Test Bench,输入以下测试向量内容,并将其存盘为tb_demo.vhd文件。

图3.1 New Source窗口

library ieee;

use ieee.std_logic_1164.all;

entity TB_DEMO is

end TB_DEMO;

-- purpose: STIMULUS for testing comparator

architecture TB of TB_DEMO is

DEMO

component

port (CLK : in std_logic;

RST : in std_logic;

SEL : in std_logic;

DAT : in std_logic_vector (3 downto 0);

COMPDAT : in std_logic_vector (3 downto 0);

GT_O : out std_logic;

LT_O : out std_logic;

EQ_O : out std_logic);

end

component;

signal CLK : std_logic := '0'; -- Primary Clock

signal RST : std_logic := '0'; -- RESET

signal SEL : std_logic := '1'; -- Select to load compare register

signal DAT : std_logic_vector (3 downto 0) := "0000";

Page 15

signal COMPDAT : std_logic_vector (3 downto 0 ) := "0000";

>

when

COMPDAT

Asserted

signal GT_O : std_logic; --

signal LT_O : std_logic; -- Asserted when COMPDAT <

COMPDAT

=

Asserted

when

signal EQ_O : std_logic; --

constant CLK_PERIOD : time := 20 ns;

begin -- TB

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

-- Clock generator

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

CLK <= not CLK after (CLK_PERIOD/2);

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

-- Instantiate Unit Under Test

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

UUT : DEMO port map (

CLK => CLK,

RST,

RST

=>

SEL => SEL,

DAT,

DAT

=>

=>

COMPDAT,

COMPDAT

GT_O,

=>

GT_O

LT_O,

LT_O

=>

=>

EQ_O);

EQ_O

STIMULUS : process

begin -- process STIMULUS

wait for (5 * CLK_PERIOD);

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

-- Remove Reset condition

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

'1';

RST

<=

wait for (5 * CLK_PERIOD);

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

-- Expect tGT = 0; tLT = 0; tEQ = 1;

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

(CLK_PERIOD);

wait

for

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

-- Load compare register with new data

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

(CLK_PERIOD);

wait

for

SEL <= '0';

"1010";

DAT

<=

for

(CLK_PERIOD);

wait

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

-- Expect tGT = 1; tLT = 0; tEQ = 0;

Page 16

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

SEL <= '1';

"1010";

COMPDAT

<=

for

(CLK_PERIOD);

wait

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

-- Expect tGT = 0; tLT = 0; tEQ = 1;

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

"1011";

<=

COMPDAT

(CLK_PERIOD);

wait

for

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

-- Expect tGT = 0; tLT = 1; tEQ = 1;

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

wait for (5 * CLK_PERIOD);

end process STIMULUS;

end TB;

图3.2 准备进行功能仿真

在图3.2所示的源文件窗口中选中tb_demo.vhd,在操作流程窗口中双击

VHDL Function Simulation,会弹出如图3.3所示的窗口。图中左侧列出了设计

中所有输入、输出信号。右侧显示了仿真波形。

Page 17

Page 18

图3.3 仿真波形

信号名前若有[+]表示含有下层的信号,可以点击该符号,将显示出下层的信号。图3.4中显示了信号展开后的波形。

图3.4 输入信号展开后的波形

时序仿真的操作步骤与功能仿真类似。

Page 19

第四节设计实现

针对FPGA的设计输入完成编译和功能仿真后,下一步就是进行设计实现(Design Implementation)。整个设计实现过程包括两个重要的执行环节——映射(Map)和布局布线(Place & Route)。映射是将设计由一个与器件无关的元件(例如:门电路和触发器)网络的表述转换为一个与器件相关的元件(例如:可配置的逻辑块)网络的表述。布局布线是根据映射后生成的结构设计(Physical Design)文件(*.ncd)在器件中对设计进行适配。在映射和布局布线的过程中,ispLEVER还提供给设计者交互式编辑功能(Interactive Editing)。

交互式编辑(Interactive Editing)

ispLEVER中的交互式编辑功能包含三个工具:Preference Editor,FPGA Floorplanner以及EPIC Device Editor。

Preference Editor

Preference Editor让您指定或修改由用户或映射器生成的、对布局布线或时序约束的优选条件。Preference Editor读入优选文件(*.prf)并显示这些优选设置。对这个优选文件的更改是通过功能对话框进行的。

在上一节中,对Compare这个设计完成了功能仿真,接下来就可以用Preference Editor进行优选设置了。在映射操作前,首先进行Pre-Map Preference Editor操作:

1.在ispLEVER Project Navigator窗口中,选中左侧源文件窗口中的器

件LCMXO1200E-3T100CES。

2.右侧的操作流程窗口中会有一栏Pre-Map Preference Editor,双击该栏

会弹出Main Control of preference Editor -- Pre-Map窗口,如图4.1所

示。

Page 20

相关主题
相关文档
最新文档