《2022年Xilinxfpga设计培训中文教程-_ .pdf》由会员分享,可在线阅读,更多相关《2022年Xilinxfpga设计培训中文教程-_ .pdf(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Xilinx 工具流程实验名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 16 页 - - - - - - - - - Xilinx工具流程实验 介绍 本实验介绍 ISE 软件结构向导管脚及区域约束编辑器和Xilinx的工具流程目标 完成此实验后你将会? ? ? 在 ISE 的项目导航器中建立一个新的项目 利用结构向导建立一个DCM 例化 将例化置于设计之中 ? 利用软件的缺省选项实现一个设计 ? 利用 PACE 工具指定管脚位置和区域位置 过程 注意当用 Toolwir
2、e来执行实验时所有的软件程序文件和项目都在卷标 U: 下而不是在 C: 下 建立一个新的项目 第一步登录到 ISE 项目导航器在 C:trainingfundlabsflow子目录下建立一个名称为 FlowLab 的新项目目标器件为 xc2v40-4fg256设计流程可以是XST Verilog或 XST VHDL 你可以根据你的喜好选择相应的语言打开 Xilinx ISE 5.1 软件从开始 菜单里选择程序Programs Xilinx ISE 5.1 项目导航器Project NavigatorXilinx 工具流程实验 第五章 b-3 1-877-XLX-CLAS 名师资料总结 - -
3、-精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 16 页 - - - - - - - - - 在项目导航器中选择文件File 新项目New Project这时 新项目 窗口就会打开图 5b-1图 5b-1. 新项目窗口对于项目名键入 FlowLab对于项目位置使用按钮浏览到 C:trainingfundlabsflow单击 OK选择器件家族Virtex 2选择器件为 xc2v40封装为 fg256速度等级为 4选择设计流程XST Verilog 或 XST VHDL 单击 OK添加源文件 第二
4、步将子目录 C:trainingfundlabsflowverilog或C:trainingfundlabsflowvhdl 中所有源文件添加到FlowLab 项目中在项目导航器窗口中选择项目Project 添加源文件Add Source在添加已有源文件 对话框 图 5b-2中用下拉菜单浏览到C:trainingfundlabsflow子目录然后进入 VHDL 或 Verilog子目录这取决于你在建立项目时所选择的流程Xilinx 工具流程实验 第五章 b-4 1-877-XLX-CLAS 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - -
5、 - - 名师精心整理 - - - - - - - 第 3 页,共 16 页 - - - - - - - - - 选中所有文件单击第一个文件ch_fifo然后在按住 Shift键的同时在添加已有源文件 对话框中单击文件 pn_correlator图 5b-2. 添加已有源文件对话框 点击打开Open对于 VHDL 用户每个文件将出现 选择源文件类型 对话框对于除了ch_fifo_pack.vhd之外的的其它所有文件选择VHDL 模块VHDL Module 并点击OK对于 ch_fifo_pack.vhd 选择 VHDL 封装VHDL Package 并点击 OK图 5b-3. 选择源文件类型
6、ISE 将处理所有的文件并确定设计层次在项目导航器的右下角的进程条显示分析的进程添加的文件被分析后设计文件和层次将反映在项目 窗口的 源文件 中用结构向导建立DCM 例化 第三步用结构向导中的DCM 向导创建一个名为MyDCM 的新的源文件使用 CLK0 CLK2X和LOCKED 引脚 设定输入时钟频率为100MHz 而其它选项为缺省设置在项目导航器中选择项目Project 新源文件New Source在新源文件窗口中选择结构向导 (Architecture Wizard)并输入MyDCM 作为文件名 点击下一步 Next然后在下一个窗口中点击完成FinishXilinx 工具流程实验 第五章
7、 b-5 1-877-XLX-CLAS 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 16 页 - - - - - - - - - 在结构向导选择 对话框中确定 DCM 向导已被选择并点击OK ( 图 5b-4). 图 5b-4. 结构向导选择对话框 注意Rocket I/O向导在此不可选这是因为我们的目标器件为Virtex-II而 Rocket I/O 能力仅在 Virtex-II PRO 器件中才有在 Xilinx DCM 向导 通用设置窗口操作如下输入 DCM 例
8、化名MyDCM_inst选中 CLK 2X输出框 去除 RST引脚的选择 输入输入时钟频率 为 100 MHz然后点击 下一步图 5b-5. Xilinx DCM 向导 通用设置窗口 Xilinx 工具流程实验 第五章 b-6 1-877-XLX-CLAS 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 16 页 - - - - - - - - - 注意在 DCM 向导中指定频率的目的是让向导知道DCM 是工作在高频模式还是低频模式基于输入的频率还可以计算输出的频率以确保
9、是否在规定的频率范围之内另外如果选择CLKFX 输出的话输入频率还可以被用来计算在CLKFX 上的输出频率以及计算估计的抖动在 Xilinx DCM向导中 时钟缓冲器 窗口保持选项为缺省设置并点击完成注意一个新的文件(MyDCM.xaw)被添加到 项目源文件 窗口选择 MyDCM.xaw 文件进入当前源文件进程 窗口双击 查看 HDL源文件 并检查结构向导所产生的源代码将 DCM 例化置于设计 (VHDL)中 第四步注意对于 Verilog进入第五步 将例化模板 中的部件声明部分拷贝到ch_fifo.vhd中的合适位置然后将部件例化从例化模板中拷贝到ch_fifo.vhd 中的合适位置最后分配
10、信号和修改代码以完成例化见本节的子步骤 6 和 7将 DCM 例化置于设计中)保存修改好的文件在项目源文件 窗口双击 ch_fifo.vhd 打开源代码 选择文件 MyDCM.xawMyDCM.xaw 选中后进入当前源文件进程 窗口双击查看 HDL例化模板在 HDL 例化模板中复制部件声明这一部分 ( 从 COMPONENT MyDCM开始到 END COMPONENT为止) 并粘贴到 ch_fifo.vhd 的第四十行 ( 在部件 fifo_2048x8之后在 信号 pn_lock, wr, wr_addr_srst : std_logic之前) 在 HDL 例化模板中复制部件例化这一部分
11、( 从 Inst_MyDCM: MyDCM 直到文件结束为止) 并粘贴到 ch_fifo.vhd 的第五十四行在 begin之后在 pn_correlator_inst: pn_correlator之前按照如下方式完成例化MyDCM_inst: MyDCM PORT MAP( clkin_in = wr_clk_in, locked_out = lock , clk2x_out = rd_clk, clk0_out = wr_clk); 目前设计中有两个时钟信号没有用到DCM 既然我们现在已使用了DCM 我们需要修改和添加一些信号名以便例化能工作有三个地方需要修改a) 在 ch_fifo 实体
12、声明中将 wr_clk 改为 wr_clk_in. b) 在 ch_fifo实体中将 rd_clk 信号删除既然该信号将要由DCM 生成 Xilinx 工具流程实验 第五章 b-7 1-877-XLX-CLAS 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 16 页 - - - - - - - - - c) 在五十三行附近其它信号声明之后begin 行之前添加以下信号声明signal lock, rd_clk, wr_clk : std_logic; 选择 文件File
13、 保存Save以保存文件 Xilinx 工具流程实验 第五章 b-8 1-877-XLX-CLAS 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 16 页 - - - - - - - - - 将 DCM 置于设计 (Verilog)中 第五步将部件例化从例化模板中拷贝到ch_fifo.v 中的合适位置最后分配信号和修改代码以完成例化见本节的子步骤 4 和 5将 DCM 例化置于设计中)保存修改好的文件在项目源文件 窗口双击 ch_fifo.vhd 打开源代码 现在选择文
14、件MyDCM.xawMyDCM.xaw 选中后进入当前源文件进程 窗口双击查看 HDL例化模板在 HDL例化模板中复制部件声明这一部分 ( 从 MyDCM 开始一直到最后的 );结束 ) 并粘贴到 ch_fifo.v 的第十行 ( 在 wire 7:0 wr_data之后在 pn_correlator pn_correlator_inst之前) 按照如下方式修改例化MyDCM MyDCM_inst ( .CLKIN_IN(wr_clk_in), .LOCKED_OUT(lock), .CLK2X_OUT(rd_clk), .CLK0_OUT(wr_clk) ); 目前设计中有两个时钟信号没有用
15、到DCM 既然我们现在已使用了DCM 我们需要修改和添加一些信号名以便例化能工作有四个地方需要修改a) 在 ch_fifo模块的端口列表中将 wr_clk 改为 wr_clk_in b) 同样在 ch_fifo 模块的端口列表中 , 删除 rd_clk端口 c) 在 ch_fifo 的端口声明中从输入信号列表中删去 rd_clk信号因为此信号将由 DCM 产生 d) 添加下列 wire 声明到第七行lock, rd_clk, wr_clk 这样整个一行将变成wire pn_lock, wr, wr_addr_srst, lock, wr_clk, rd_clk; 选择 文件File 保存Sav
16、e以保存文件Xilinx 工具流程实验 第五章 b-9 1-877-XLX-CLAS 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 16 页 - - - - - - - - - 实现设计 第六步选择顶层设计文件ch_fifo.v/vhd, 实现设计.确认在项目源文件窗口中选择的是顶层的设计文件 ( 如图 5b-6). 顶层设计文件名为 ch_fifo.v/vhd 图 5b-6. 项目源文件窗口 在当前源文件进程窗口如图 5b-7中双击实现设计Implement Desi
17、gn注意工具将会执行实现设计所必需的所有进程在本实现中在进入 实现 之前工具将先执行 综合图 5b-7. 当前源文件进程窗口 Xilinx 工具流程实验 第五章 b-10 1-877-XLX-CLAS 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 16 页 - - - - - - - - - 实现期间的观测 第七步 注意进程条每一个进程旁边的状态符号和控制信息注意项目导航器窗口的右下角显示的是进程和设计实现的完成百分比如图 5b-8图 5b-8. 进程条 在当前源文件进
18、程 窗口点击 实现设计 旁边的+展开实现步骤并查看进程我们称此为展开一个进程每一步完成之后在每一步旁边将出现一个符号? ? ? 绿色的对号表示成功 黄色的惊叹号表示有警告 红色的 X表示有错误 对于这个特定的设计在每一步将会有一个黄色的惊叹号警告但这些警告无碍可以忽略当实现完成时项目导航器窗口底部的控制/ 信息窗口将会显示以下信息Done: completed successfully.打开 PACE 第八步在项目导航器中以建立一个新源文件的方式建立一个名为myucf 的 UCF文件然后从当前源文件进程窗口中打开PACE 工具用户约束User Constraints 指定封装引脚Assign
19、Package Pins在我们能够打开PACE 之前我们必须建立一个UCF文件按照警告信息要建立一个 UCF文件只要选择 项目Project 新源文件New Source选择实现约束文件输入 myucf 作为文件名点击 下一步Next在下一个窗口中确定选择的是 ch_fifo点击 下一步然后在最后一个窗口中点击完成如图 5b-11) Xilinx 工具流程实验 第五章 b-11 1-877-XLX-CLAS 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 16 页 -
20、- - - - - - - - 图 5b-11. 关联一个约束文件 在当前源文件进程 窗口展开 用户约束然后双击 指定封装管脚 以打开 PACE 如果你不能看到这些进程确认在 项目源文件 窗口中选择的是ch_fifo Xilinx 工具流程实验 第五章 b-12 1-877-XLX-CLAS 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 16 页 - - - - - - - - - 测试 PACE 第九步检查 PACE 中的四个窗口检测这些窗口怎样相互作用在 PACE
21、 窗口中移动 器件结构 窗口和 封装引脚 窗口以使它们相邻图 5b-12. 器件结构窗口和封装引脚窗口 在封装引脚窗口中点击用户 I/O 符号这些符号是中间为圆圈的框它们可能是不同颜色的方框圆圈后的不同颜色代表不同的I/O 组注意在器件结构窗口中相应的引脚是如何被高亮的在设计层次 窗口点击 I/O 引脚旁的的+号展开 I/O 引脚子目录你也可以展开 全局逻辑 和逻辑子目录来检查其中的内容这些名称来自于设计图 5b-13. 设计层次窗口 注意设计对象列表 窗口是如何跟着 设计层次 窗口中所选的子目录而变化的Xilinx 工具流程实验 第五章 b-13 1-877-XLX-CLAS 名师资料总结
22、- - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 16 页 - - - - - - - - - 建立引脚和区域指配 第十步将所有 rd_data信号指定到BANK2 上将 DCM 元件放置在位置 DCM_X1Y1上将 BRAM 元件放置在块 RAM 位置 X1Y1上在设计层次 窗口选择 I/O 管脚子目录注意可以为每一个信号指配一个实际的引脚位置或为一个信号指定在特定组中的引脚范围在设计对象列表 -I/O 引脚窗口中将所有 rd_data 信号指定到 BANK2 上可以这样操作选择一个
23、信号在位置这一列点击框的右侧使用选择组的下拉菜单然后选择BANK 2图 5b-14. 设计部件列表 I/O 引脚窗口 注意你可以在下拉菜单向下滚动时看到其它的位置选择 T, L, R, TL, TR, BL, BR, RT, RB, 等等这些词语是指组它们表示上部 组 硅片顶部的两组 左部 组左上部 组等等 这在你不了解组号但你又想将引脚指定到器件的那个区域是非常有帮助的在设计层次 窗口点击全局逻辑 文件夹在接下来的几步中我们将要将它们拖放到器件结构窗口中以便为这些部件指定特定的位置Xilinx 工具流程实验 第五章 b-14 1-877-XLX-CLAS 名师资料总结 - - -精品资料欢迎
24、下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 16 页 - - - - - - - - - 在设计对象列表 窗口中选择 DCM 元件并将其拖到器件结构窗口中将 DCM 放置在右上方的 DCM_X1Y1 位置上如图所示图 5b-15. 指定一个位置 在设计对象列表 窗口中选择块 RAM fifo_2048x8_inst_fifo_bram并将其拖到硅片的右上方的块RAM 位置 X1Y1上图 5b-16. 指定一个位置 选择文件 保存 以保存引脚范围指配和DCM 及块 RAM 布局选择 文件 退出以关闭 P
25、ACE 工具Xilinx 工具流程实验 第五章 b-15 1-877-XLX-CLAS 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 16 页 - - - - - - - - - 在项目导航器的 当前源文件进程 窗口中在用户约束 的下方双击 编辑约束文本来查看通过 PACE 工具在文件 myucf.ucf 中所生成的约束查看文本版本的UCF文件检查约束是否被写入文件图 5b-17. 当前源文件进程窗口实现设计 第十一步实现设计确保没有错误或与我们所建约束的冲突确认在
26、项目源文件 窗口中选择的是顶层的设计文件 ( 如图 5b-18) 顶层设计文件名为 ch_fifo.v/vhd图 5b-18. 项目源文件窗口 Xilinx 工具流程实验 第五章 b-16 1-877-XLX-CLAS 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 16 页 - - - - - - - - - Xilinx 工具流程实验 第五章 b-17 1-877-XLX-CLAS 在当前源文件进程 窗口如图 5b-19中双击 实现设计 Implement Design注意工具将会执行实现设计所必需的所有进程在本实现中在进入实现之前工具将先执行综合图 5b-19. 当前源文件进程窗口 结论 本实验的目的是熟悉实现进程结构向导和 PACE 的使用在本实验中我们在 ISE 中将一个设计的主要阶段走了一遍建立项目添加源文件使用结构向导来改进和 / 或完成我们的代码指定管脚和区域位置实现整个设计名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 16 页 - - - - - - - - -