1 / 54

Design of Xilinx FPGA and Nexys3 TM Board

Design of Xilinx FPGA and Nexys3 TM Board. 魏继增 天津大学计算机学院 计算机工程系. § 目录. Xilinx FPGA 内部结构和 Nexys3 TM 开发板结构 Xilinx FPGA 开发流程 ISE 开发环境的使用 Xilinx IP Core 技术 时序约束的设置 UCF (用户约束文件)的使用 ISE 报告的阅读 ChipScope 的配置与使用 Nexys3 TM 开发板主要模块的设计 基于 Xilinx FPGA 可编程嵌入式开发技术. § 现场可编程逻辑门阵列( FPGA ).

draco
Download Presentation

Design of Xilinx FPGA and Nexys3 TM Board

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Design of Xilinx FPGAand Nexys3TM Board 魏继增 天津大学计算机学院 计算机工程系 逻辑设计基础

  2. §目录 • Xilinx FPGA内部结构和Nexys3TM开发板结构 • Xilinx FPGA开发流程 • ISE开发环境的使用 • Xilinx IP Core技术 • 时序约束的设置 • UCF(用户约束文件)的使用 • ISE报告的阅读 • ChipScope的配置与使用 • Nexys3TM开发板主要模块的设计 • 基于Xilinx FPGA可编程嵌入式开发技术 VLSI系统设计

  3. §现场可编程逻辑门阵列(FPGA) • 一种基于RAM的查找表(Look Up Table,LUT)而不是与或门来实 • 现组合逻辑,称为现场可编程逻辑门阵列(Field Programmable • Gate Array,FPGA) a 16×1 RAM (LUT) b 输出 c d 4输入的与门如何用LUT实现? VLSI系统设计

  4. 如何选购FPGA §现场可编程逻辑门阵列(FPGA) VLSI系统设计

  5. §FPGA厂商 • Xilinx和Altera占全球可编程逻辑器件市场份额的75%以上,(中国不具备制造FPGA的能力) • 欧美公司多使用Xilinx的FPGA,亚太公司多使用Altera的FPGA • 两家公司总部位于美国圣何塞,产品大体类似,无论是器件还 • 是软件都大体相同 • 初学者不必太在意选用哪家公司的FPGA,重点掌握一家公司 • 的FPGA结构和开发工具,掌握FPGA的基本设计理念,换个 • FPGA就和换个玩具一样简单 VLSI系统设计

  6. §FPGA基本结构 Logic Block PLL/RAM/Multiplier. . . • 逻辑块(Logic Block) • Altera: LAB,由LE构成 • Xilinx: CLB,由SLICE构成 • I/O Bank:FPGA连接外部器件的各种电气物理接口,普通I/O、电源、时钟、PCI等 • PLL、RAM、硬乘法器等专用模块 I/O Bank VLSI系统设计

  7. §FPGA应用领域 • 逻辑粘合 • 实时控制 • 数字信号处理和协议实现(ASIC、DSP和FPGA) • 片上系统 VLSI系统设计

  8. §Spartan-6 FPGA CLB Memory Controller I/O CMT MGT BUFG BUFIO Block RAM DSP48 VLSI系统设计

  9. §Spartan-6FPGA CLB • CLB contains two slices • Connected to switch matrix for routing to otherFPGA resources • Carry chain runs vertically through Slice0 only COUT Slice1 SwitchMatrix Slice0 CIN VLSI系统设计

  10. §Three Types of Slices in Spartan-6 FPGAs • SLICEM: Full slice25% • LUT can be used for logic and memory/SRL • Has wide multiplexers and carry chain • SLICEL: Logic and arithmetic only 25% • LUT can only be used for logic (not memory) • Has wide multiplexers and carry chain • SLICEX: Logic only 50% • LUT can only be used for logic (not memory) • No wide multiplexers or carry chain or SLICEX SLICEX SLICEL SLICEM VLSI系统设计

  11. LUT/RAM/SRL LUT/RAM/SRL LUT/RAM/SRL LUT/RAM/SRL §Spartan-6 FPGA SLICE • Four LUTs (6-input) • Eight storage elements • Four flip-flop/latches • Four flip-flops • F7MUX and F8MUX • Connects LUT outputs to create wide functions • Output can drive the flip-flop/latches • Carry chain (Slice0 only) • Connected to the LUTs and the four flip-flop/latches VLSI系统设计 0 1

  12. A5 A4 A3 A2 A1 5-LUT D A5 A4 A3 A2 A1 5-LUT D §6-Input LUT with Dual Output • 6-input LUT can be two 5-input LUTs with common inputs • Minimal speed impact toa 6-input LUT • One or two outputs • Any function of six variables or two independent functions of five variables 6-LUT A6 A5 A4 A3 A2 A1 O6 O5 VLSI系统设计

  13. §SLICEM Used as Distributed RAM • Uses the same storage that is used for the look-up table function • Synchronous write, asynchronous read • Can be converted to synchronous read using the flip-flops available in the slice • Various configurations • Single port • One LUT6 = 64x1 or 32x2 RAM • Cascadable up to 256x1 RAM • Dual port (D) • 1 read / write port + 1 read-only port • Simple dual port (SDP) • 1 write-only port + 1 read-only port • Quad-port (Q) • 1 read / write port + 3 read-only ports Each port has independent address inputs VLSI系统设计

  14. Dual-Port BRAM §Spartan-6 FPGA Block RAM 18k Memory • 18 kb size • Can be split into two independent 9-kb memories • Performance up to 300 MHz • Multiple configuration options • True dual-port, simple dual-port, single-port • Two independent ports access common data • Individual address, clock, write enable, clock enable • Independent widths for each port • Byte-write enable VLSI系统设计

  15. M P A1 C A0 §Spartan-6 FPGA DSP48A1 Slice BCOUT PCOUT CCOUT MFOUT 36 D:A:B 18 48 A 18 18 CFOUT 18 0 X 18 X 18 36 Dual B, DRegister With Pre-adder 12 D 18 +/- 48 18 P B 18 0 Z C 48 18 • 18x18 signed multiplier • 48-bit add/subtract/accumulate • Pipeline registers for high speed • Cascade paths for wide functions • Pre-adder OPMODE[7] OPMODE[5] OPMODE[3:0] OPMODE[6,4] 48 BCIN PCIN CIN VLSI系统设计

  16. §Spartan-6 FPGA Clock Management Tile (CMT) Clocks from BUFG Feedback clocks from BUFIO2FB GCLK Inputs CLKIN 6 pll_clkout<5:0> CLKOUT<5:0> PLL CLKFB CLKIN 10 dcm1_clkout<9:0> CLKOUT<9:0> DCM CLKFB CLKIN 10 dcm2_clkout<9:0> CLKOUT<9:0> DCM CLKFB VLSI系统设计

  17. §Spartan-6 LX / LXT FPGAs VLSI系统设计

  18. §Nexys3TM开发板 16M字节伪SRAM • Xilinx Spartan-6 LX16 : • 2,278 slices • - four 6-input LUTs • - eight flip-flops • 576Kbits block RAM • two clock tiles • - four DCMs • - two PLLs • 32 DSP slices • 500MHz+ clock speeds 电源和程序烧写 16M字节并行FLASH 16M字节串行FLASH VLSI系统设计

  19. §Nexys3TM开发板 VLSI系统设计

  20. §Nexys3TM开发板— —配套工具Adept System • 通过高速USB2与开发板连接,自动识别Nexys3TM开发板: • 烧写FPGA和FLASH • 进行板级测试 • 和FPGA进行数据传输 VLSI系统设计

  21. §目录 • Xilinx FPGA内部结构和Nexys3TM开发板结构 • Xilinx FPGA开发流程 • ISE开发环境的使用 • Xilinx IP Core技术 • 时序约束的设置 • UCF(用户约束文件)的使用 • ISE报告的阅读 • ChipScope的配置与使用 • Nexys3TM开发板主要模块的设计 • 基于Xilinx FPGA可编程嵌入式开发技术 VLSI系统设计

  22. §FPGA总体开发流程 • 需求分析和模块划分 • 明确需求和功能定义,进行可行性分析。 • FPGA选型(哪个厂家、哪个系列、多少逻辑资源、多少I/O接口、多少PLL、多少内嵌存储器、多少内嵌模块等)。 • 设计输入到综合优化 • 原理图输入、代码输入、搭建SOPC或者IP核的配置和使用 • 代码输入完成后,进行功能仿真(不涉及任何时序、延迟参数,单纯功能验证)。工具可选用Modelsim,也可选用FPGA厂商EDA环境中(ISE/Quartus II)自带的仿真工具。采用Testbench进行测试。 • 综合将高层次描述转换为底层逻辑单元(但并不是实际FPGA芯片的底层模块)。可以选用第三方综合工具Synplify,推荐使用ISE或Quartus II自带的综合工具。— —自家的东西自己最了解 VLSI系统设计

  23. §FPGA总体开发流程 • 实现、时序分析和资源报告 • 使用ISE或者Quartus II提供的时序编辑器对不同路径进行时序约束,包括全局约束、I/O接口约束以及时序例外约束。 • 实现包括翻译、映射、布局布线三个步骤。每一个步骤都会生成时序报告,但布局布线后的时序报告及包含逻辑器件的延迟,也包括了布线延迟,其时序报告最准确。 • 查看资源使用报告,分析资源使用情况,对电路结构进行优化。 • 仿真测试到板级调试 • FPGA能不能像软件一样连一个仿真器到板子上,然后进行单步调试,或者设置断点呢?— — 给待测设计添加激励,通过回放波形观察测试结果。 • 设计输入阶段 — —功能仿真(甚至是不可综合的代码);综合优化后 — — 门级网表仿真(不包含布局布线延时信息);实现后—— 时序仿真(包含各类延时信息)。这三类仿真不需要全都做。 VLSI系统设计

  24. §FPGA总体开发流程 • 仿真测试到板级调试 • 板级调试最大的困难就是很难观测到FPGA内部节点的状态。在FPGA剩余资源足够多的情况下,可以使用ISE或Quartus II提供的在线逻辑分析仪进行调试,如Chipscope或者Signal TaP II。 VLSI系统设计

  25. §Xilinx FPGA开发流程 主流程(必须做) 验证流程(不是必须) • 综合: • 将设计编译为由基本逻辑单元构成的逻 • 辑连接网表(并非真实门级电路)。 • 实现与布局布线: • 实现是将逻辑网表配置到具体FPGA上, • 布局布线是其中重要环节。布局是将逻 • 辑网表中的单元配置到芯片内部的硬件 • 结构上;布线是根据布局的拓扑,利用 • 芯片内的连线资源,连接各个元件。 • 器件编程: • 产生数据流文件(.bit),下载到FPGA • 芯片中。 • 功能仿真(前仿真): • 只对电路逻辑功能验证,没有延迟信息。 • 综合后仿真: • 检查综合结果是否和原设计一致,主要 • 评估门延时带来的影响。 • 时序仿真和验证(后仿真): • 将布局布线的延时信息反标注到设计网 • 表中,检测有无时序违规,此时延时最 • 全,最精确。 • 板级仿真与验证: • 主要应用于高速电路设计中,对信号完 • 整性和电子干扰等特性进行分析,使用 • 第三方工具完成。 VLSI系统设计

  26. §Xilinx FPGA开发流程(示例) • 内容:2输入逻辑门的设计与实现 • 目标: • 学会ISE的使用(Verilog代码编写、功能仿真、综合、实现、程序烧写) • Adept System的使用(bit文件的烧写) • Nexys3TM开发板上LED灯和Slide Switch的使用 VLSI系统设计

  27. § Xilinx FPGA开发流程(示例) 基于ISE的FPGA开发环境 标题栏 菜单栏 工具栏 工程 管理区 程序 编辑区 过程 管理区 信息 显示区 VLSI系统设计

  28. § Xilinx FPGA开发流程(示例) 新建工程(一) • 输入工程名称 • 指定工程路径 • 指定文件输入类型 • - HDL文件 • - 原理图文件 • 点击Next按钮 VLSI系统设计

  29. § Xilinx FPGA开发流程(示例) 新建工程(二) • 选择所使用的芯片 • - 产品系列 • - 产品型号 • - 封装方式 • 综合工具(XST) • 仿真工具(ISim) • 使用的编程语言 • - Verilog • - VHDL • 点击Next按钮 VLSI系统设计

  30. § Xilinx FPGA开发流程(示例) 新建工程(三) VLSI系统设计

  31. § Xilinx FPGA开发流程(示例) 设计输入(一) • 在工程管理区任意位置 • 单击鼠标右键 • 在弹出的菜单中选择 • New Source命令 • 弹出左图所示窗口 • 输入方式选择Verilog • 给定输入文件的名称和 • 路径 • 单击Next按钮进入端口 • 定义对话框 VLSI系统设计

  32. § Xilinx FPGA开发流程(示例) 设计输入(二) • 端口名称 • 端口方向 • MSB表示信号最高位 • LSB表示信号最低位 • 端口定义这一步可以略 • 过,在源程序中添加 VLSI系统设计

  33. § Xilinx FPGA开发流程(示例) 设计输入(三) 在程序编辑区编写程序 VLSI系统设计

  34. § Xilinx FPGA开发流程(示例) 功能仿真(一) • 工程管理区将view设置为Simulation • 工程管理区任意位置单击鼠标右键 • 在弹出的菜单中选择New Source • 在类型中选择Verilog Test Fixture • 输入测试文件名,单击Next按钮 • 选择要进行测试的模块,如gates2, • 点击Next,再单击Finish按钮 • ISE自动生成了基本的信号并对被测模 • 块做了例化。我们只需在initial…end • 块中的“//Add stimulus here”后面添 • 加测试向量 VLSI系统设计

  35. § Xilinx FPGA开发流程(示例) 功能仿真(二) • 过程管理区会显示与仿真有关的进程,如上图所示 • 右键单击其中的Simulate Behavioral Model项 • 选择弹出菜单中的Process Properties项 VLSI系统设计

  36. § Xilinx FPGA开发流程(示例) 功能仿真(三) • Simulation Run Time就是仿真时间的设置,可将其修改为任意时长。 VLSI系统设计

  37. § Xilinx FPGA开发流程(示例) 功能仿真(四) • 在工程管理区选中测试代码 • 在过程管理区双击Simulate Behavioral Model • ISE将启动ISE Simulator,可以得到仿真结果 VLSI系统设计

  38. § Xilinx FPGA开发流程(示例) 综合与实现(一) • 所谓综合,就是将HDL设计输入翻译成由逻辑门、RAM、触发器等基 • 本逻辑单元的连接(网表),并根据目标和要求(约束条件)优化所生成 • 的逻辑连接 • 在工程管理区的view中选择Implementation • 在过程管理区双击Synthesize-XST,就开始综合过程 VLSI系统设计

  39. § Xilinx FPGA开发流程(示例) 综合与实现(二) • 综合前,模块中的输入输 • 出信号添加管脚约束,需 • 要在工程中添加UCF文件 • 在工程管理区单击鼠标右 • 键,点击New Source, • 选择Implementation • Constraints File,出现一 • 个空白的约束文件,添 • 加各种约束(管脚、时钟、 • 面积等) VLSI系统设计

  40. § Xilinx FPGA开发流程(示例) 综合与实现(三) • 管脚约束:NET “signal”LOC = “pin” • 参考Nexys3TM的Reference Manual、原理图或开发板 • /Board/ Nexys3_rm.pdf或/Board/Nexys3_sch.pdf • 管脚分配文件:/Board/Nexys3_Master.ucf VLSI系统设计

  41. § Xilinx FPGA开发流程(示例) • pushbutton和slide switch只 • 能被设置为input,若设置为 • output可能会出现“短路” • pushbutton按下时为高电平, • 松开时为低电平 • slide switch产生的高低电平 • 与其位置相关 • LED在输入高电平时被点亮 VLSI系统设计

  42. § Xilinx FPGA开发流程(示例) 综合与实现(四) • 如果综合后完全正确,则在Synthesize-XST前面有一个打勾的绿色小圆圈 • 如果有警告,则出现一个带感叹号的黄色小圆圈 • 如果有错误,则出现一个带叉的红色小圆圈 • 如果综合正确,XST将给出初步的资源消耗情况,点击Design Summary, • 即可查看 VLSI系统设计

  43. § Xilinx FPGA开发流程(示例) 综合与实现(四) VLSI系统设计

  44. § Xilinx FPGA开发流程(示例) 综合与实现(五) • 综合完成后,下一个步骤就是实现(Implementation) • 所谓实现,指将综合输出的逻辑网表翻译成所选器件的底层模块,将设计 • 映射到具体器件上,进行布局布线,达到在选定FPGA上实现设计的目的 • 实现分3个步骤:翻译(Translate)逻辑网表、映射(Map)到器件单元与布局 • 布线(Place & Route) • 在过程管理区双击Implementation Design,就自动完成实现的3个步骤, • 得到精确的资源占用情况 VLSI系统设计

  45. § Xilinx FPGA开发流程(示例) 综合与实现(五) VLSI系统设计

  46. § Xilinx FPGA开发流程(示例) 布局布线后仿真 ——后仿(一) • 双击图过程管理区的Implement Design -> Place & Route -> Generate • Post-Place & Route Static Timing,反标时序信息,生成布局布线后仿 • 真模型 VLSI系统设计

  47. § Xilinx FPGA开发流程(示例) 布局布线后仿真 ——后仿(二) • 在工程管理区将view设置为Simulation • 在下拉菜单中选择Post-Route,导入反标时序信息后的仿真模型 • 在工程管理区选中测试代码 • 在过程管理区双击Simulate Behavioral Model • ISE将启动ISE Simulator,可以得到后仿结果 • 注:后仿和前访使用相同的测试程序(Testbench) VLSI系统设计

  48. § Xilinx FPGA开发流程(示例) 布局布线后仿真 ——后仿(三) • 在布局布线后,输入到输出产生延迟(门延迟 + 线延迟) VLSI系统设计

  49. § Xilinx FPGA开发流程(示例) 布局布线后仿真 ——后仿(四) 变化值:010001 变化值:010011 变化值:010010 稳定值:011010 VLSI系统设计

  50. § Xilinx FPGA开发流程(示例) 察看/修改布局布线(一) • 在工程管理区将view设置为Implementation • 双击图过程管理区的Implement Design -> Place & Route -> View/Edit • Routed Design (FPGAEditor) • 启动 FPGAEditor VLSI系统设计

More Related