武汉理工大学FPGA实验报告范本辉辉版 下载本文

(3)输入引脚位置约束 大部分的 FPGA在设计完成前就进行了引脚分配。在这个实验中,通过 UCF文件手动输入来分配输入/输出引脚的位置,也可以采用实验二中使用 PACE 进行引脚位置分配。区域约束的主要目的是关联耦合逻辑,减少后续布线压力;其次是加大资源利用率,距离近的信号延迟不一定就小,信号线上延迟主要是来自线与线之间的转接(如LUT,switch-box)。由于FPGA内部连接的结构是横纵两向的,斜向的连接延迟会大于横纵方向上最大跨度连接。所以,在做位置约束时尽量避免斜向;而区域约束要宽松,如果没有资源上的顾虑,约束面积建议为所需的3倍以上。需要注意的是,区域约束对时序的改善贡献很小,紧的约束甚至有恶化时序的可能。 通过PACE软件,可将设计中的所有逻辑资源,包括全局时钟缓冲器、硬核乘加器、块RAM、硬核处理器、高速收发器以及数字时钟管理模块等模块放入器件架构(Device Architecture)的任何位置。 1) 单击工程 Sources 窗口中的顶层文件 loopback.vhd,然后双击 Processes 窗口中的 User Constraints 目录下的 Edit Timing Constraints(Text),打开 loopback.ucf文件; 2) 打开 XUP Virtex-II Pro 使用手册,关于设置 IO 引脚位置如下表所示。 表3-1 IO 引脚位置图 引脚位置约束语法如下: 信号:NET \ = \ 总线:NET \ NET \ 按照表中的位置及语法格式进行引脚分配,在 loopback.ucf 文件的“#PACE: Start of PACE I/O Pin Assignments”注释下方输入以下引脚分配内容,输入完后保存loopback.ucf 文件。若找不到“#PACE: Start of PACE I/O Pin 9

Assignments”注释,直接添加需要添加的内容即可。 NET \ LOC = \ ; NET \ LOC = \ ; NET \ LOC = \ ; NET \ LOC = \ ; NET \ LOC = \ ; NET \ LOC = \ ; NET \ LOC = \ ; NET \ LOC = \ ; NET \ LOC = \ ; NET \ LOC = \ ; NET \ LOC = \ ; NET \ LOC = \ ; (4)实现设计并进行时序分析 执行此步骤是通过映像实现设计来生成映像后时序报告,在时序分析器(Timing Analyzer)中打开此报告。通过此报告可以验证时序约束是否实现,以此避免浪费布局布线的时间。 1) 单击工程的 Sources 窗口中的顶层文件 loopback.vhd 文件,展开 Processes 窗口中的 Implement Design,然后再展开 Map 目录下的 Generate Post-Map Static Timing,右键单击 Analyze Post-Map Static Timing (Timing Analyzer)并选择 Rerun All; 2) 单击“Analyze Against Timing Constraints”按钮,映像如下表。 表3-2 映像表 引脚位置约束语法如下: 信号:NET \ = \ 总线:NET “led<0>” LOC = P12; 10

NET “led<1>” LOC = P13; 按照表中的位置及语法格式进行引脚分配,在 loopback.ucf 文件的“#PACE: Start of PACE I/O Pin Assignments”注释下方输入以下引脚分配内容,输入完后保存loopback.ucf 文件。 NET \ LOC = \ ; NET \ LOC = \ ; NET \ LOC = \ ; NET \ LOC = \ ; NET \ LOC = \ ; NET \ LOC = \ ; NET \ LOC = \ ; NET \ LOC = \ ; NET \ LOC = \ ; 3) 在时序报告窗口中可以看到时序约束报告,分析每个时序路径约束注意线网延迟后; 4) “e”代表评估。实际的线网延迟是在布局布线后计算出来的; 5) 退出时序分析器后,在 Processes 窗口,展开 Place & Route 目录下的 Generate Post-Place & Route Static Timing,双击 Analyze Post-Place & Route Static 11

Timing (Timing Analyzer),并完成下表,与上表进行比较; 表3-3 对照表 6) 分析每个时序路径约束,注意真实的线网延迟已经被计算出来。 (5)生成软件并进行 HDL 仿真 1) 打开本实验的 Assembler 文件包内的 program.psm 文件,此汇编范本的汇编代码含有三部分: 12