1、第0篇 Xilinx FPGA开发环境的配置 一、配置Modelsim ISE的Xilinx的仿真库 1、编译仿真库: A、先将Modelsim安装目录C=Modeltech_6.2b下面的modelsim.ini改成存档格式(取消只读模式); B、在DOS环境中,进入Xilinx的根目录,然后依次进入bin,nt目录; C、运行compxlib -s mti_se -f all -l all -o C:Modeltech_6.2bxilinx_libs。 注意:需要根据你安装的modelsim目录更改C:Modeltech_6.2b 然后就Ok了,就可
2、以的ISE中启动Modelsim进行所有的仿真了。 2、如何在Xilinx ISE中使用Modelsim ISE,Synplify进行综合和仿真: A、打开Xilinx ISE,新建一个Project; ①、在菜单File中选择“New Project”,弹出如下的对话框: ②、输入Project名称,并选择好Project保存的路径,然后下一步: 字串3 按照上边的参数进行设置(针对于Spatan 3E的开发板),然后单击下一步,进入到后面的界面: ③、单击“New Source”按钮,并按照下面的设置来操作: ④、参照下面的参数,进行设
3、置,然后一直选择默认选项,一直到完成。 最后生成的项目界面如下图所示: B、输入代码,然后用Synplify综合: ①、参考代码: entity Count iS Port(CLK :in STD_LOGIC; RESET :in STD_LOGIC; LOAD :in STD_LOGIC; DATA IN:in STD_LOGIC_VECTOR(3 downto 0); 字串9 Qout :out STD_LOGIC_VECTOR(3 downto 0)); end Count;
4、 architecture Behavioral of Count is signal tmpCount:STD_LOGIC_VECTOR(3 downto 0); begin process(CLK,RESET,LOAD) begin if RESET='1' then tmpCount<="0000"; else if LOAD='1' then tmpCount<=DATA_IN; elsif CLK'event and CLK='1' then tmpCount<=tmpCount+1; e
5、nd if; end if; end process; 字串6 Qout<=tmpCount: end Behavioral; ②、双击Processes窗口里面的“Synthesize-Synplify”进行综合 ③、在“Transcript”窗口中的可以看到综合的信息。 C、时序仿真: ①、从菜单“Project”中选择“New source”。按照下图所示输入,然后选择下一步 ②、在“Associate source”选择需要进行时序仿真的HDL代码,然后选择下一步 ③、在弹出的窗口“Initial Timing a
6、nd Clock Wizard-Initialize Timing”中选择默认的配置 ④、当出现如下的界面后,你就可以进行时序仿真了^_^ 字串7 ⑤、在Sources选择Behavioral Simulation,在Processes的ModelSim Simulator中双击下面的任何一个都可以进行仿真。区别就是一个在Xilinx ISE中进行,一个则在ModelSim界面中。 ⑥、下图是双击“Generate Expected Simulation Results”的效果 ⑦、下图是双击“Simulate Behavioral Model”的效果
7、 ⑧、接下来大家就可以写代码,然后仿真验证了,^_^ 第一篇 Xilinx ISE 使用入门1 3 VHDL设计操作指南 首先进入ISE工程管理器(Project Navigator)界面,如图4.30所示。 Project Navigator是ISE所用集成工具的连接纽带,通过使用Project Navigator,设计者可以创建、组织和管理自己的设计。 图4.30 ISE工程管理器界面 ISE提供了许多示例工程,这些工程都存放在ISE文件当中,可以通过File->Open Example来打开。 ISE为我们提供了一个很有特色的工具
8、那就是语言辅助模板(Language Templates)。点击Edit->Language Templates,可以调用语言辅助模板,其界面如图4.31所示。 图4.31 ISE语言辅助模板示意图 在语言模板中存放了很多HDL语言的通用语法结构和使用范例,特别是许多根据Xilinx器件IP核与硬件原语编写的实例化程序。使用语言模板,可以方便地把这些语法结构和范例插入到设计者自己的代码文件中,大大方便了程序的编写,提高了工作效率。语言模板按照ABEL、COREGEN、UCF、 Verilog和VHDL的顺序存放在模板视窗中。其中COREGEN的UCF是ISE 5.x新增辅助
9、模板。COREGEN模板由两个目录组成,分别存放当前工程中生成的IP核的Verilog和VHDL实例化文件,基内容与IP核生成器生成IP核时自动生成的实例化文件(.veo,.vho)相同。UCF模板也分成两个目录,依次存放CPLD和FPGA的用户约束文件(.ucf)的约束范例。这个模板使手工编辑UCF文件更加容易。 字串6 ABEL、Verilog和VHDL三大语言模板大致可以分为下列4个项目: (1)器件例化(Component Instantiation):该模板仅存在于Verilog和VHDL中,给出了块RAM(Block RAM)、数字时钟延迟锁相环(Clock DLL)
10、数字时钟管理单元(DCM)、分布式RAM/ROM(Distributed RAM/ROM)、全局时钟缓冲(Global Clock Buffer)、查找表(LUT)、基于查找表的移位寄存组(SRLUT)、I/O器件、乘法器和选择器(MUX)等器件模块的实例化范例。 (2)语法模板(Language Templates):该模板给出了基本语法规则和应用范例。 (3)综合模板(Synthesis Templates):该模板给出了可综合实现的一些基本单元模块的范例,如乘法器、计数器和触发器等。 (4)用户模板(User Templates):该模板存放用户自己创建的特定结构,是语言模板的功
11、能扩展。 字串2 4 ISE综合使用实例 在NBA篮球比赛中有一个24秒进攻规则,即从获取球权到投篮击中篮板、篮框、命中或投篮被侵犯,其有效时间合计不能超过24秒,否则被判违例,将失去球权。在此过程中,设置24秒、启动倒计时、暂停倒计时或者中途终止24秒(即球权归对方)均由裁判控制。本实例就是设计一个用于篮球比赛的24秒倒计时器,并且为了模拟现场比赛情况,系统中设置了24秒预设键K1、倒计时启动键K2和倒计时暂停键K3,并将计时精度设置为0.1秒。各按键具体功能如下:K1键按下,LED灯显示24秒;K2键按下,倒计时;K3键按下,计时停止。 1)新建一个工程(Project)
12、 选择File / New Project命令,在图4.32所示对话框中输入工程名和工程目录,并设置器件参数。本设计使用的器件为Spartan2,xc2s100,tq144,-5。使用VHDL硬件描述语言编程。点击OK按钮确认。 图4.32 新建工程对话框 2)建立和编辑VHDL源文件 选中工程,点右键选New Source选项(如图4.33所示),添加文件count_t.vhd,led_2.vhd,sec_1.vhd(如图4.34所示)。并在文件中输入相应的VHDL程序。 字串7 图4.33 添加文件对话框 图4.34 新建VHDL文件对话框 本
13、设计中将要用到的VHDL源程序如下: 第二篇 Xilinx ISE 使用入门3 5)建立和编辑顶层原理图文件 对于顶层文件,即可使用VHDL文本输入方式,也可使用原理图输入方式。这里我们将使用原理图的输入方式来建立顶层文件。 (1)原理图形符号的生成(Symbol) 为了在原理图的设计中利用前面已使用VHDL进行有关设计的成果,我们先要将经过编译后的VHDL程序生成可供原理图设计中直接调用的原理图形符号。 选择 count_t.vhd,执行Create Schematic Symbol操作(如图4.47所示),即可生成可供原理图设计中直接调用
14、的原理图形符号count_t。同理,对其他两个文件执行相同的操作。 图4.47 原理图形符号的创建操作 (2)顶层原理图文件的创建 选中工程,鼠标右点,在弹出的窗口中选择New Source(如图4.48所示) ,再在弹出的窗口中选择文件的类型为Schematic,并输入文件名pic_top后,执行”下一步”,即完成了原理图文件的创建,进入原理图的编辑状态。 字串5 图4.48 原理图的创建操作 (3)原理图的编辑 ① 放置元件(Symbols):在Symbols 的e:/xilinx/bin/24sec中选中所需元件的原理图符号,并在右边的图中期望的位置点左键进行放
15、置,如图4.49所示。若位置不合适,可进行移动调整。 图4.49 在原理图中放置元件的操作 ② 元件间的连线:点 ,进行连线操作。 ③ 放置I/O端口并编辑端口名:点 ,放置I/O端口。选中端口,点右键,在弹出的对话框中选择“Rename Port”后,再在弹出的对话框中输入系统设定的端口名。或者双击端口,在弹出的对话框中输入系统设定的端口名。 ④ 原理图的保存:原理图编辑好后(如图4.50所示),应执行存盘操作,将原理图进行保存。 图4.50 编辑好的顶层原理图 ⑤ 原理图错误的检查:为了检查原理图是否有错,可执行原理图的检错操作。若有错,则改正,直到完全正确为止。
16、字串9 ⑥ 原理图的逻辑综合:若原理图经过检查没有错误,可进行逻辑综合。 6)设计ucf文件 首先选中pic_top ,按右键在弹出的窗口中选择New Source,再在弹出的新建文件窗口中选择Implementation Constraints File,并输入文件名top.ucf(如图4.51所示)。接着执行“下一步”,即进入ucf文件的编辑操作,这时我们可根据系统的输入输出要求并参照下载板的用户手册,对系统的端口进行管脚锁定(如图4.52所示)。管脚全部锁定并检查无误后应进行存盘操作。 图4.51 ucf文件的建立操作示意图 图4.52 本设计的ucf
17、文件 7)设计实现 运行设计实现(Implement Design):选中pic_top,运行Implement Design,如图4.53所示。 字串5 图4.53 运行设计实现操作图 在FloorPlanner中查看设计布局:展开Place & Route,运行View/Edit Placed Design (FloorPlanner),即可查看设计布局,如图4.54所示。 图4.54 在FloorPlanner中查看设计布局操作图 8)系统的时序仿真 在完成任务上述步骤后,我们可以按照前面已经介绍的方法,对系统(顶层文件)
18、进行时序仿真。 第三篇 Xilinx ISE 使用入门4 9)系统的配置和硬件验证 首先选中pic_top,执行Generate Programme File ,生成配置文件,如图4.55所示。 图4.55 配置文件生成示意图 接着双击Configure Device(iMPACT),启动iMPACT进行配置。设置配置方式选为Slave Serial Mode(如图4.56所示),对应的下载板上拨码开关也设置成Slave Serial Mode模式,即M0,M1,M2,PROG,JTAG,SV_SrI对应的状态为OFF,OFF,X,ON,OFF,ON。
19、单击完成,运行后弹出Add Device 对话框,选中pic_top.bit (如图4.57所示),点击打开按钮,这时窗口中会出现芯片图样(如图4.58所示),点右键,选Program,即执行编程下载功能。执行完毕后出现 Programming Succeeded(如图4.59所示),则表示下载成功。下载成功后,即可根据系统的设计要求在EDA实验开发系统上进行硬件验证。 图4.56 配置方式选择示意图 字串3 图4.57 下载文件选择示意图 图4.58 下载操作示意图 图4.59 下载成功示意图 1、ISE的安装 现以ISE 5.2i为例介绍
20、Xilinx ISE Series的安装过程。 1)系统配置要求 ISE 5.2i推荐的系统配置与设计时选用的芯片有关。因为在综合与实现过程中运算量非常大,所以对系统配置要求很高。为了提高综合、仿真、实现过程的速度,对于计算机的CPU的主频、主板和硬盘的工作速度,尤其是内存大小配置都有非常高的要求。在ISE 5.2i支持的所有Xilinx的FPGA/CPLD中,要求最低的Spartan II和XC9500/XL/XV等系列需要的内存和虚拟内存推荐值均达到128MB,而对于Virtex-II XC2V8000来说,需要的内存和虚拟内存推荐值均高达3GB。 2)ISE 5.2i的
21、安装 以中文版Windows XP操作系统为例加以说明。 (1)启动Windows XP,插入ISE5.2i安装光盘,自动或选择执行Install.exe,安装界面如图4.25所示。 图4.25 ISE5.2i安装界面 (2)单击此时安装界面上的操作选择“下一步”直到出现图示对话框,输入有效的Registration ID。之后单击“下一步”选择安装路径;再之后点击“下一步”,会弹出图4.26的对话框,可以选择器件模型。 字串4 图4.26 器件模型选择对话框 (3)点击“下一步”,如图4.27所示,可以选择器件种类。 图4.27 器件种类选择对
22、话框 通过以上步骤后,可根据具体情况来选择,继续“下一步”即可完成安装。 安装完成后,环境变量应作如下描述: 若操作系统是Windows NT/2000/XP,选择开始->控制面板->系统->选项->系统->高级->环境变量,在环境变量中加入: 变量名:Xilinx 变量值:C:Xilinx(即安装路径) 具体设置如图4.28所示。 图4.28 环境变量设置操作图 3)安装第三方软件 在PC上安装完ISE之后,还需要安装第三方仿真软件,如ModelSim等。 字串2 2 ISE工程设计流程 下面主要概述ISE的基本开发流程以及在开发
23、过程中的各个阶段需要用到的工具软件。 图4.29 说明了利用Xilinx公司的ISE开发设计软件的工程设计流程,具体分为五个步骤:即输入(Design Entry)、综合(Synthesis)、实现(Implementation)、验证(Verification)、下载(Download)。 图4.29 ISE的工程设计流程 1)图形或文本输入(Design Entry) 图形或文本输入包括原理图、状态机、波形图、硬件描述语言(HDL),是工程设计的第一步,ISE集成的设计工具主要包括HDL编辑器(HDL Editor)、状态机编辑器(StateCAD)、原理图编
24、辑器(ECS)、IP核生成器(CoreGenerator)和测试激励生成器(HDL Bencher)等。 常用的设计输入方法是硬件描述语言(HDL)和原理图设计输入方法。原理图输入是一种常用的基本的输入方法,其是利用元件库的图形符号和连接线在ISE软件的图形编辑器中作出设计原理图,ISE中设置了具有各种电路元件的元件库,包括各种门电路、触发器、锁存器、计数器、各种中规模电路、各种功能较强的宏功能块等用户只要点击这些器件就能调入图形编辑器中。这种方法的优点是直观、便于理解、元件库资源丰富。但是在大型设计中,这种方法的可维护性差,不利于模块建设与重用。更主要的缺点是:当所选用芯片升级换代
25、后,所有的原理图都要作相应的改动。故在ISE软件中一般不利用此种方法。 字串8 为了克服原理图输入方法的缺点,目前在大型工程设计中,在ISE软件中常用的设计方法是HDL设计输入法,其中影响最为广泛的HDL语言是VHDL和 Verilog HDL。它们的共同优点是利于由顶向下设计,利于模块的划分与复用,可移植性好,通用性强,设计不因芯片的工艺和结构的变化而变化,更利于向ASIC的移植,故在ISE软件中推荐使用HDL设计输入法。 波形输入及状态机输入方法是两种最常用的辅助设计输入方法,使用波形输入法时,只要绘制出激励波形的输出波形,ISE软件就能自动地根据响应关系进行设
26、计;而使用状态机输入时,只需设计者画出状态转移图,ISE软件就能生成相应的HDL代码或者原理图,使用十分方便。其中ISE工具包中的 StateCAD就能完成状态机输入的功能。但是需要指出的是,后两种设计方法只能在某些特殊情况下缓解设计者的工作量,并不适合所有的设计。 2)综合(Synthesis) 综合是将行为和功能层次表达的电子系统转化为低层次模块的组合。一般来说,综合是针对VHDL来说的,即将VHDL描述的模型、算法、行为和功能描述转换为FPGA/CPLD基本结构相对应的网表文件,即构成对应的映射关系。 字串6 在Xilinx ISE中,综合工具主要有Synpl
27、icity公司的Synplify/Synplify Pro,Synopsys公司的FPGA Compiler II/ Express, Exemplar Logic公司的 LeonardoSpectrum和Xilinx ISE 中的XST等,它们是指将HDL语言、原理图等设计输入翻译成由与、或、非门,RAM,寄存器等基本逻辑单元组成的逻辑连接(网表),并根据目标与要求优化所形成的逻辑连接,输出edf和edn等文件,供CPLD/FPGA厂家的布局布线器进行实现。 3)实现(Implementation) 实现是根据所选的芯片的型号将综合输出的逻辑网表适配到具体器件上。Xilinx
28、 ISE的实现过程分为:翻译(Translate)、映射(Map)、布局布线(Place & Route)等3个步骤。 ISE集成的实现工具主要有约束编辑器(Constraints Editor)、引脚与区域约束编辑器(PACE)、时序分析器(Timing Analyzer)、FPGA底层编辑器(FGPA Editor)、芯片观察窗(Chip Viewer)和布局规划器(Floorplanner)等。 4)验证(Verification) 验证(Verification)包含综合后仿真和功能仿真(Simulation)等。功能仿真就是对设计电路的逻辑功能进行模拟测试,
29、看其是否满足设计要求,通常是通过波形图直观地显示输入信号与输出信号之间的关系。 字串7 综合后仿真在针对目标器件进行适配之后进行,综合后仿真接近真实器件的特性进行,能精确给出输入与输出之间的信号延时数据。 ISE可结合第三方软件进行仿真,常用的工具如Model Tech公司的仿真工具ModelSim和测试激励生成器HDL Bencher ,Synopsys公司的VCS等。通过仿真能及时发现设计中的错误,加快设计中的错误,加快设计进度,提高设计的可靠性。 每个仿真步骤如果出现问题,就需要根据错误的定位返回到相应的步骤更改或者重新设计。 5)下载(Download)
30、 下载(Download)即编程(Program)设计开发的最后步骤就是将已经仿真实现的程序下载到开发板上,进行在线调试或者说将生成的配置文件写入芯片中进行测试。在ISE中对应的工具是iMPACT。 第四篇 XILINX ROM 使用教程 FPGA内部有BLOCK RAM和分布式RAM,这些资源都可以作为ROM(ROM只是有初始值的RAM,而且该初始值不能改变)。有些低端的FPGA可能没有BLOCK RAM。本文主要介绍ROM的使用方法,RAM的使用方法类同。 打开XILINX的ISE,NEW SOURCE中选择IP,写好NAME,点击下一步。
31、 在下图中选择你要的IP核。 第一个是使用分布式ROM-如果你的ROM不是很大的话,而且内部BLOCK RAM资源有限的情况下,使用分布式ROM可以为你节约不少BLOCK RAM,但是它会占用一些逻辑资源。 第二个是双口BLOCK RAM. 第三个是单口BLOCK RAM. 选择你想要使用的IP核,(以常用的单口BLOCK RAM为例)点击NEXT: 点击完成。 进入如下图界面。 字串1 在component name内填写模块名(要小写) 第二项选择READ ONLY(选READ AND WRITE 就是RAM),表示要生成只读的ROM。 M
32、emory size 里填好ROM的宽度和深度,上图是一个256×16BIT的ROM。 点击NEXT进入下图。 这里默认就可以了。 再NEXT: 这里可以选择是CLK上升沿读数据还是下降沿读。 继续NEXT: 这里比较关键,要导入ROM的值。 在LOAD INIT FILE 项上打勾,点击LOAD FILE……出现下图,要你选择一个文件。 这个文件就是你要放在ROM中的数据,文件的后缀名是.COE。你可以自己建一个空的文本文件,然后把后缀名该为.COE即可。 文件内容的格式如下: MEMORY_INITIALIZATION_RADIX=10; 字
33、串8 MEMORY_INITIALIZATION_VECTOR= 32767, 32766, 32766, 32765, 32764, 32763, 32761, 32759, 32757, …… 32754; 注意: 第一行定义文件中的数据采用什么进制。可以使用10进制,2进制,16进制,数据大小不能超过你定义的数据宽度。 第二行照抄。 第三行开始就是数据了,每个数据用逗号","隔开,可以不分行,建议分行写,便于统计个数。 最后一个数据后用分号";"结束。 数据的个数必须和你定义的数据深度相同,否则会出错。 写好这个文件后,保存。 然后在点击LOA
34、D FILE……,选择这个文件,点打开。 如果没有错误,可以点击旁边的show coefficients查看数据。如果数据很多(>512),建议不要使用此功能,可能会因数据太大而无法响应。 现在,可以点击GENERATE,产生代码了。 产生的代码中有个.MIF文件,就是ROM的数据的二进制文件。 其中的.V文件或.VHD就是生成的可综合的代码。 如上图的ROM_COS.XCO,选择它,双击VIEW HDL FUNCTIONAL MODEL 字串2 就可查看Verilog代码。 接下来,要删除ROM_COS.XCO,然后把ROM_COS.V添加进来。 接下来就可以综合了。
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818