Xilinx fpga 设计培训中文教程-5_1
- 格式:pdf
- 大小:376.11 KB
- 文档页数:16
Xilinx_FPGA中文教程Spartan-3E Starter Kit Board User GuideChapter 1: Introduction and Overview Chapter 2: Switches, Buttons, and Knob Chapter 3: Clock SourcesChapter 4: FPGA Configuration Options Chapter 5: Character LCD ScreenChapter 6: VGA Display PortChapter 7: RS-232 Serial PortsChapter 8: PS/2 Mouse/Keyboard Port Chapter 9: Digital to Analog Converter (DAC) Chapter 10: Analog Capture CircuitChapter 11: Intel StrataFlash Parallel NOR Flash PROM Chapter 12: SPI Serial FlashChapter 13: DDR SDRAMChapter 14: 10/100 Ethernet Physical Layer Interface Chapter 15: Expansion ConnectorsChapter 16: XC2C64A CoolRunner-II CPLDChapter 17: DS2432 1-Wire SHA-1 EEPROMChapter 1:Introduction and OverviewSpartan-3E 入门实验板使设计人员能够即时利用Spartan-3E 系列的完整平台性能。
设备支持设备支持::Spartan-3E 、CoolRunner-II关键特性关键特性::Xilinx 器件: Spartan-3E (50万门,XC3S500E-4FG320C), CoolRunner?-II (XC2C64A-5VQ44C)与Platform Flash(XCF04S-VO20C)时钟时钟::50 MHz 晶体时钟振荡器存储器: 128 Mbit 并行Flash, 16 Mbit SPI Flash, 64 MByte DDR SDRAM连接器与接口: 以太网10/100 Phy, JTAG USB 下载,两个9管脚RS-232串行端口, PS/2类型鼠标/键盘端口, 带按钮的旋转编码器, 四个滑动开关,八个单独的LED 输出, 四个瞬时接触按钮, 100管脚hirose 扩展连接端口与三个6管脚扩展连接器显示器: VGA 显示端口,16 字符- 2 线式 LCD电源电源::Linear Technologies 电源供电,TPS75003三路电源管理IC 市场: 消费类, 电信/数据通信, 服务器, 存储器应用: 可支持32位的RISC 处理器,可以采用Xilinx 的MicroBlaze 以及PicoBlaze 嵌入式开发系统;支持DDR 接口的应用;支持基于Ethernet 网络的应用;支持大容量I/O 扩展的应用。
fpga xilinx课程设计一、教学目标本课程的目标是让学生了解和掌握FPGA和Xilinx的基本概念、原理和应用。
通过本课程的学习,学生应能理解FPGA的工作原理,掌握Xilinx软件的基本操作,并能够利用Xilinx工具进行简单的FPGA设计。
1.理解FPGA的基本概念和原理。
2.掌握Xilinx软件的基本操作。
3.了解FPGA在数字电路设计中的应用。
4.能够使用Xilinx工具进行简单的FPGA设计。
5.能够进行FPGA的编程和配置。
6.能够对FPGA设计进行仿真和测试。
情感态度价值观目标:1.培养学生的创新意识和实践能力。
2.增强学生对电子技术的兴趣和热情。
3.培养学生团队合作和解决问题的能力。
二、教学内容本课程的教学内容主要包括FPGA的基本概念和原理、Xilinx软件的基本操作以及FPGA在数字电路设计中的应用。
1.FPGA的基本概念和原理:介绍FPGA的定义、工作原理和特点,以及FPGA在数字电路设计中的应用。
2.Xilinx软件的基本操作:介绍Xilinx软件的安装和启动,以及基本的FPGA设计流程,包括设计输入、综合、布局布线和编程配置等步骤。
3.FPGA在数字电路设计中的应用:介绍FPGA在数字电路设计中的典型应用案例,如数字信号处理、数字逻辑控制等,并通过实例讲解FPGA设计的具体过程和方法。
三、教学方法本课程采用多种教学方法,包括讲授法、案例分析法和实验法等,以激发学生的学习兴趣和主动性。
1.讲授法:通过教师的讲解,让学生了解和掌握FPGA和Xilinx的基本概念和原理。
2.案例分析法:通过分析典型的FPGA应用案例,让学生了解FPGA在数字电路设计中的应用和实现方法。
3.实验法:通过实验操作,让学生亲手实践FPGA的设计和编程,培养学生的实际操作能力和实践能力。
四、教学资源本课程所需的教学资源包括教材、参考书、多媒体资料和实验设备等。
1.教材:选用合适的教材,用于引导学生学习和理解FPGA和Xilinx的基本概念和原理。
Xilinx 工具流程实验Xilinx 工具流程实验介绍本实验介绍ISE 软件结构向导管脚及区域约束编辑器和Xilinx 的工具流程目标完成此实验后你将会• • • 在ISE 的项目导航器中建立一个新的项目 利用结构向导建立一个DCM 例化 将例化置于设计之中• 利用软件的缺省选项实现一个设计• 利用PACE 工具指定管脚位置和区域位置过程注意当用Toolwire来执行实验时所有的软件程序文件和项目都在卷标 U:\ 下而不是在 C:\ 下建立一个新的项目第一步登录到ISE 项目导航器在C:\training\fund\labs\flow 子目录下建立一个名称为FlowLab 的新项目目标器件为xc2v40-4fg256设计流程可以是XST Verilog 或XST VHDL 你可以根据你的喜好选择相应的语言打开Xilinx ISE 5.1 软件从开始菜单里选择程序Programs→ Xilinx ISE5.1 →项目导航器Project Navigator在项目导航器中选择文件File →新项目New Project这时新项目窗口就会打开图 5b-1图5b-1. 新项目窗口对于项目名键入FlowLab对于项目位置使用按钮浏览到C:\training\fund\labs\flow单击 OK选择器件家族 Virtex 2选择器件为xc2v40封装为fg256速度等级为–4选择设计流程XST Verilog 或 XST VHDL单击 OK添加源文件第二步将子目录C:\training\fund\labs\flow\verilog 或C:\training\fund\labs\flow\vhdl 中所有源文件添加到FlowLab 项目中在项目导航器窗口中选择项目Project →添加源文件Add Source在添加已有源文件对话框图 5b-2中用下拉菜单浏览到C:\training\fund\labs\flow子目录然后进入 VHDL 或 Verilog子目录这取决于你在建立项目时所选择的流程选中所有文件单击第一个文件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. 选择源文件类型ISE将处理所有的文件并确定设计层次在项目导航器的右下角的进程条显示分析的进程添加的文件被分析后设计文件和层次将反映在项目窗口的源文件中用结构向导建立DCM例化 第三步用结构向导中的DCM向导创建一个名为MyDCM的新的源文件使用CLK0 CLK2X和LOCKED引脚 设定输入时钟频率为100MHz而其它选项为缺省设置在项目导航器中选择项目Project→新源文件New Source在新源文件窗口中选择结构向导(Architecture Wizard)并输入MyDCM作为文件名点击下一步 Next然后在下一个窗口中点击完成Finish在结构向导选择对话框中确定DCM向导已被选择并点击OK (图 5b-4).图 5b-4. 结构向导选择对话框注意Rocket I/O向导在此不可选这是因为我们的目标器件为Virtex-II而 Rocket I/O 能力仅在 Virtex-II PRO 器件中才有在Xilinx DCM 向导 – 通用设置窗口操作如下输入DCM例化名MyDCM_inst选中 CLK 2X输出框去除RST引脚的选择输入输入时钟频率为100 MHz然后点击下一步图 5b-5. Xilinx DCM 向导 – 通用设置窗口注意在DCM向导中指定频率的目的是让向导知道DCM是工作在高频模式还是低频模式基于输入的频率还可以计算输出的频率以确保是否在规定的频率范围之内另外如果选择CLKFX 输出的话输入频率还可以被用来计算在CLKFX上的输出频率以及计算估计的抖动在 Xilinx DCM向导中 – 时钟缓冲器窗口保持选项为缺省设置并点击完成注意一个新的文件(MyDCM.xaw)被添加到项目源文件窗口选择MyDCM.xaw文件进入当前源文件进程窗口双击查看HDL源文件并检查结构向导所产生的源代码将DCM例化置于设计(VHDL)中 第四步注意对于Verilog进入第五步将例化模板中的部件声明部分拷贝到ch_fifo.vhd中的合适位置然后将部件例化从例化模板中拷贝到ch_fifo.vhd 中的合适位置最后分配信号和修改代码以完成例化见本节的子步骤6和7将DCM例化置于设计中)保存修改好的文件在项目源文件窗口双击 ch_fifo.vhd 打开源代码选择文件MyDCM.xawMyDCM.xaw 选中后进入当前源文件进程窗口双击查看HDL例化模板在HDL 例化模板中复制部件声明这一部分 (从 COMPONENT MyDCM开始到 ENDCOMPONENT为止)并粘贴到 ch_fifo.vhd 的第四十行 (在部件fifo_2048x8之后在信号pn_lock, wr, wr_addr_srst : std_logic之前)在HDL 例化模板中复制部件例化这一部分 (从 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 实体声明中将wr_clk改为wr_clk_in.b) 在 ch_fifo实体中将 rd_clk 信号删除既然该信号将要由DCM生成c) 在五十三行附近其它信号声明之后begin 行之前添加以下信号声明signal lock, rd_clk, wr_clk : std_logic;选择 文件File→ 保存Save 以保存文件将DCM置于设计(Verilog)中 第五步将部件例化从例化模板中拷贝到ch_fifo.v 中的合适位置最后分配信号和修改代码以完成例化见本节的子步骤4和5将DCM例化置于设计中)保存修改好的文件在项目源文件窗口双击 ch_fifo.vhd 打开源代码现在选择文件MyDCM.xawMyDCM.xaw 选中后进入当前源文件进程窗口双击查看HDL例化模板在HDL例化模板中复制部件声明这一部分 (从 MyDCM 开始一直到最后的 );结束 ) 并粘贴到ch_fifo.v 的第十行(在 wire [7:0] wr_data之后在pn_correlatorpn_correlator_inst之前)按照如下方式修改例化MyDCM MyDCM_inst (.CLKIN_IN(wr_clk_in),.LOCKED_OUT(lock),.CLK2X_OUT(rd_clk),.CLK0_OUT(wr_clk));目前设计中有两个时钟信号没有用到DCM既然我们现在已使用了DCM我们需要修改和添加一些信号名以便例化能工作有四个地方需要修改a) 在ch_fifo模块的端口列表中将 wr_clk 改为 wr_clk_inb) 同样在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→保存Save以保存文件实现设计 第六步选择顶层设计文件ch_fifo.v/vhd, 实现设计.确认在项目源文件窗口中选择的是顶层的设计文件 (如图 5b-6). 顶层设计文件名为 ch_fifo.v/vhd图5b-6. 项目源文件窗口在当前源文件进程窗口如图5b-7中双击实现设计Implement Design注意工具将会执行实现设计所必需的所有进程在本实现中在进入实现之前工具将先执行综合图 5b-7. 当前源文件进程窗口实现期间的观测第七步注意进程条每一个进程旁边的状态符号和控制信息注意项目导航器窗口的右下角显示的是进程和设计实现的完成百分比如图5b-8图5b-8. 进程条在当前源文件进程窗口点击实现设计旁边的+展开实现步骤并查看进程我们称此为展开一个进程每一步完成之后在每一步旁边将出现一个符号 • • • 绿色的对号表示成功黄色的惊叹号表示有警告 红色的X 表示有错误对于这个特定的设计在每一步将会有一个黄色的惊叹号警告但这些警告无碍可以忽略当实现完成时项目导航器窗口底部的控制/信息窗口将会显示以下信息Done: completed successfully.打开PACE第八步在项目导航器中以建立一个新源文件的方式建立一个名为myucf 的UCF 文件然后从当前源文件进程窗口中打开PACE 工具用户约束User Constraints → 指定封装引脚Assign Package Pins在我们能够打开PACE 之前我们必须建立一个UCF 文件按照警告信息要建立一个UCF文件只要选择项目Project →新源文件New Source选择实现约束文件输入 myucf作为文件名点击下一步Next在下一个窗口中确定选择的是 ch_fifo点击下一步然后在最后一个窗口中点击完成如图5b-11)图 5b-11. 关联一个约束文件在当前源文件进程窗口展开用户约束然后双击指定封装管脚以打开PACE如果你不能看到这些进程确认在项目源文件窗口中选择的是ch_fifo测试PACE 第九步检查PACE中的四个窗口检测这些窗口怎样相互作用在PACE窗口中移动器件结构窗口和封装引脚窗口以使它们相邻图 5b-12. 器件结构窗口和封装引脚窗口在封装引脚窗口中点击用户I/O符号这些符号是中间为圆圈的框它们可能是不同颜色的方框圆圈后的不同颜色代表不同的I/O组注意在器件结构窗口中相应的引脚是如何被高亮的在设计层次窗口点击I/O引脚旁的的+号展开I/O引脚子目录你也可以展开全局逻辑和逻辑子目录来检查其中的内容这些名称来自于设计图 5b-13. 设计层次窗口注意设计对象列表窗口是如何跟着设计层次窗口中所选的子目录而变化的建立引脚和区域指配 第十步将所有rd_data<?>信号指定到BANK2上将DCM 元件放置在位置 DCM_X1Y1上将BRAM元件放置在块RAM 位置X1Y1上在设计层次窗口选择 I/O管脚子目录注意可以为每一个信号指配一个实际的引脚位置或为一个信号指定在特定组中的引脚范围在设计对象列表-I/O引脚窗口中将所有rd_data<?>信号指定到BANK2上可以这样操作选择一个信号在位置这一列点击框的右侧使用选择组的下拉菜单然后选择BANK 2图 5b-14. 设计部件列表 – I/O引脚窗口注意你可以在下拉菜单向下滚动时看到其它的位置选择 T, L, R, TL, TR, BL, BR,RT, RB, 等等这些词语是指组它们表示上部 组 硅片顶部的两组左部 组 硅片左部的两组左上部 组 硅片左上部的组等等这在你不了解组号但你又想将引脚指定到器件的那个区域是非常有帮助的在设计层次窗口点击全局逻辑文件夹在接下来的几步中我们将要将它们拖放到器件结构窗口中以便为这些部件指定特定的位置在设计对象列表窗口中选择DCM 元件并将其拖到器件结构窗口中将DCM 放置在右上方的DCM_X1Y1位置上如图所示图 5b-15. 指定一个位置在设计对象列表窗口中选择块RAM fifo_2048x8_inst_fifo_bram并将其拖到硅片的右上方的块RAM 位置X1Y1上图 5b-16. 指定一个位置选择文件 → 保存以保存引脚范围指配和DCM 及块RAM 布局选择 文件 → 退出以关闭PACE 工具在项目导航器的当前源文件进程窗口中在用户约束的下方双击编辑约束文本来查看通过PACE 工具在文件myucf.ucf 中所生成的约束查看文本版本的UCF 文件检查约束是否被写入文件图5b-17. 当前源文件进程窗口实现设计第十一步实现设计确保没有错误或与我们所建约束的冲突确认在项目源文件窗口中选择的是顶层的设计文件 (如图 5b-18)顶层设计文件名为 ch_fifo.v/vhd图 5b-18. 项目源文件窗口在当前源文件进程窗口如图5b-19中双击实现设计 Implement Design注意工具将会执行实现设计所必需的所有进程在本实现中在进入实现之前工具将先执行综合图5b-19. 当前源文件进程窗口结论本实验的目的是熟悉实现进程结构向导和PACE 的使用在本实验中我们在ISE 中将一个设计的主要阶段走了一遍建立项目添加源文件使用结构向导来改进和/或完成我们的代码指定管脚和区域位置实现整个设计。