小舍YZ
发表于 2017-4-19 11:16:58
4.2.2 代码输入
在工程管理区任意位置单击鼠标右键,在弹出的菜单中选择“New Source”命令,会弹出如图4-9所示的New Source对话框。
图4-9 新建源代码对话框
小舍YZ
发表于 2017-4-19 11:17:49
左侧的列表用于选择代码的类型,各项的意义如下所示:
• BMM File:
• ChipScope Definition and Connection File:在线逻辑分析仪ChipScope文件类型,具有独特的优势和强大的功能,将在M张进行讨论。
• IP(Coregen & Architecture Wizard):由ISE的IP Core生成工具快速生成可靠的源代码,这是目前最流行、最快速的一种设计方法,将在4.5节详细讨论。
• MEM File:
• Implementation Constraints File:约束文件类型。
• State Disgram:状态图类型。
• Test Bench Wavaform:测试波形类型。
• User Document:用户文档类型。
• Verilog Module:Verilog模块类型。
• Verilog Test Fixture:Verilog测试模块类型。
• VHDL Module:VHDL模块类型。
• VHDL Library:VHDL库类型。
• VHDL Packet:VHDL包类型。
• VHDL Test Bench:VHDL测试模块类型。
在代码类型中选择Verilog Module选项,在File Name文本框中输入one2two,单击Next进入端口定义对话框,如图4-10所示。
图4-10 Verilog模块端口定义对话框
小舍YZ
发表于 2017-4-19 11:18:04
其中Module Name就是输入的“one2two”,下面的列表框用于对端口的定义。“Port Name”表示端口名称,“Direction”表示端口方向(可以选择为input、output或inout),MSB表示信号的最高位,LSB表示信号的最低位,对于单位信号的MSB和LSB不用填写。
定义了模块端口后,单击“Next”进入下一步,点击“Finish”按键完成创建。这样,ISE会自动创建一个Verilog模块的例子,并且在源代码编辑区内打开。简单的注释、模块和端口定义已经自动生成,所剩余的工作就是在模块中实现代码。填入的代码如下:
module one2two(x_in, flag, y1_out, y2_out);
input x_in;
input flag;
output y1_out;
output y2_out;
// 以下为手工添加的代码
assign y1_out = flag ? x_in : 8'b0000_0000;
assign y2_out = flag ? 8'b0000_0000 : x_in;
endmodule
小舍YZ
发表于 2017-4-19 11:18:43
4.2.3 代码模板的使用
ISE中内嵌的语言模块包括了大量的开发实例和所有FPGA语法的介绍和举例,包括Verilog HDL/HDL的常用模块、FPGA原语使用实例、约束文件的语法规则以及各类指令和符号的说明。语言模板不仅可在设计中直接使用,还是FPGA开发最好的工具手册。在ISE工具栏中点击图标,或选择菜单“Edit | Language Templates”,都可以打开语言模板,其界面如图4-11所示。
图4-11 ISE语言模版用户界面
小舍YZ
发表于 2017-4-19 11:19:46
界面左边有4项:ABEL、UCF 、Verilog以及VHDL,分别对应着各自的参考资料。其中ABEL语言主要用于GAL和ISP等器件的编程,不用于FPGA开发。
以Verilog为例,点击其前面的“+”号,会出现Common Constructs、Device Primitive Instantiation、Simulation Constructs、Synthesis Constructs以及User Templates 5个子项。其中第1项主要介绍Verilog开发中所用的各种符号的说明,包括注释符以及运算符等。第2项主要介绍Xilinx 原语的使用,可以最大限度地利用FPGA的硬件资源。第3项给出了程序仿真的所有指令和语句的说明和示例。第4项给出了实际开发中可综合的Verilog语句,并给出了大量可靠、实用的应用实例, FPGA开发人员应熟练掌握该部分内容。User Templates项是设计人员自己添加的,常用于在实际开发中统一代码风格。
下面以调用全局时钟缓冲器模版为例,给出语言模板的使用方法。在语言模板中,选择“Device Primitive Instantiation FPGA Clock Components Clock Buffers Global Clock Buffer(BUFG)”,即可看到调用全局时钟缓冲的示例代码,如图4-12所示。
图4-12 全局时钟缓冲器的语言模板
小舍YZ
发表于 2017-4-19 11:20:15
本帖最后由 小舍YZ 于 2017-6-6 10:10 编辑
4.2.3 Xilinx IP Core的使用
1. Xilinx IP core基本操作
IP Core就是预先设计好、经过严格测试和优化过的电路功能模块,如乘法器、FIR滤波器、PCI接口等,并且一般采用参数可配置的结构,方便用户根据实际情况来调用这些模块。随着FPGA规模的增加,使用IP core完成设计成为发展趋势。
IP Core生成器(Core Generator)是Xilinx FPGA设计中的一个重要设计工具,提供了大量成熟的、高效的IP Core为用户所用,涵盖了汽车工业、基本单元、通信和网络、数字信号处理、FPGA特点和设计、数学函数、记忆和存储单元、标准总线接口等8大类,从简单的基本设计模块到复杂的处理器一应俱全。配合Xilinx网站的IP中心使用,能够大幅度减轻设计人员的工作量,提高设计可靠性。
Core Generator最重要的配置文件的后缀是.xco,既可以是输出文件又可以是输入文件,包含了当前工程的属性和IP Core的参数信息。
启动Core Generato有两种方法,一种是在ISE中新建IP类型的源文件,另一种是双击运行[开始] [程序] 。限于篇幅,本节只以调用加法器IP Core为例来介绍第一种方法。
在工程管理区单击鼠标右键,在弹出的菜单中选择New Source,选中IP类型,在File Name文本框中输入adder(注意:该名字不能出现英文的大写字母),然后点击Next按键,进入IP Core目录分类页面,如图4-13所示。
图4-13 IP Core目录分类页面
逆战
发表于 2017-4-19 11:51:34
很不错,很好!
4798345
发表于 2017-4-19 16:34:35
感谢分享
小舍YZ
发表于 2017-4-21 14:46:02
4798345 发表于 2017-4-19 16:34
感谢分享
:) :) :) :) :)
小舍YZ
发表于 2017-6-6 10:11:23
下面以加法器模块为例介绍详细操作。首先选中“Math Funcation Adder & Subtracter Adder Subtracter v7.0”,点击“Next”进入下一页,选择“Finish”完成配置。这时在信息显示区会出现“Customizing IP...”的提示信息,并弹出一个“Adder Subtracter”配置对话框,如图4-14所示。
图4-14 加法器IP Core配置对话框
页:
1
2
3
4
5
6
7
8
9
10
[11]
12