集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
楼主: 小舍YZ

FPGA开发 实用内容

[复制链接]
 楼主| 小舍YZ 发表于 2017-4-19 11:16:58 | 显示全部楼层
4.2.2 代码输入

在工程管理区任意位置单击鼠标右键,在弹出的菜单中选择“New Source”命令,会弹出如图4-9所示的New Source对话框。

图4-9 新建源代码对话框

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| 小舍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模块端口定义对话框

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| 小舍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 [7:0] x_in;
        input flag;
        output [7:0] y1_out;
        output [7:0] 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语言模版用户界面

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| 小舍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 全局时钟缓冲器的语言模板




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| 小舍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类型的源文件,另一种是双击运行[开始] [程序] [Xilinx ISE 9.1i] [Accessories] [Core Generator]。限于篇幅,本节只以调用加法器IP Core为例来介绍第一种方法。

在工程管理区单击鼠标右键,在弹出的菜单中选择New Source,选中IP类型,在File Name文本框中输入adder(注意:该名字不能出现英文的大写字母),然后点击Next按键,进入IP Core目录分类页面,如图4-13所示。

图4-13 IP Core目录分类页面

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
逆战 发表于 2017-4-19 11:51:34 | 显示全部楼层
很不错,很好!
4798345 发表于 2017-4-19 16:34:35 | 显示全部楼层
感谢分享                                 
 楼主| 小舍YZ 发表于 2017-4-21 14:46:02 | 显示全部楼层

                                 
 楼主| 小舍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配置对话框

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-6-10 13:49 , Processed in 0.074770 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表