2) 在汇编范本 Task #1 部分中,添加如下汇编语句,编写完后,则要重新用汇编编译系统把编写的汇编源文件 program.psm 自动生成用于程序内存的 VHDL/Verilog格式文件。在汇编范本涉及到的端口值的常量,参考 PicoBlaze 的指南,而代码的编写参考 KCPSM3 的使用手册; INPUT s1, switch_in ;read value of switches OUTPUT s1, leds_out ;write value of s0 to LEDs 3) 在工程中选择 Project 下拉菜单中的 Add Sourc,选择 lab3 目录下的 testbench.vhd文件(testbench主要是为了对电路进行仿真验证,测试设计电路的功能,部分性能是否与与其的目标相符),此文件为测试激励文件,仿真结果波形如下。 13
图3-11 仿真结果 六.小结、建议及体会 FPGA设计一般使用同步时序电路。同步时序电路基于时钟触发沿设计,对时钟的周期、占空比、延时和抖动提出了很高的要求。为了满足同步时序设计的要求,一般在FPGA设计中采用全局时钟资源驱动设计的主时钟,以达到最低的时钟抖动和延迟。 FPGA全局时钟资源一般使用全铜层工艺实现,并设计了专用时钟缓冲与驱动结构,从而使全局时钟到达芯片内部的所有可配置单元(CLB)、I/O单元(IOB)和选择性块RAM(Block Select RAM)的时延和抖动都为最小。为了适应复杂设计的需要,Xilinx的FPGA中集成的专用时钟资源与数字延迟锁相环(DLL)的数目不断增加。 教师签字__________
14
实验课程名称:FPGA原理及应用实验
实验项目名称 实 验 者 同 组 者 综合技术实验 高增礼 专业班级 通信1104 实验成绩 组 别 实验日期 17 14年5月15 第一部分:实验预习报告(包括实验目的、意义,实验基本原理与方法,主要仪器设备及耗材,实验方案与技术路线等) 1. 实验目的 (1)学习使用保留层次和扇出综合这些选择来提高调试和综合结果; (2)学习读取 XST 软件的综合报告来确认综合结果质量。 2. 实验内容 (1)修改 XST 综合选项; (2)分析综合报告。 3. 实验背景知识 Synplify/Synpliy Pro 是 Synplicity 公司出品的综合工具,以综合速度快、优化效果好备受关注。本实验介绍的是 XST 的使用,XST(Xilinx Synthesis Technology)是 Xilinx ISE内嵌的综合工具,虽然XST 与Synplify/Synpliy Pro 等业界流行的这工具相比特点并不突出,功能也不全面,但是 Xilinx 对自己的 FPGA/CPLD 内部结构最为了解,所以 XST 对 Xilinx器件的支持也最为直接,更重要的是 XST 内嵌在 ISE 中,安装 ISE 后可以直接使用。 4. 实验准备 (1)将光盘下03. Examples of Program 实验程序目录下的01. ISE9.1 文件夹拷贝到E:盘根目录下; (2)将 USB 下载电缆与计算机及 XUPV2Pro 板的 J8 连接好; (3)将 RS232 串口线一端与计算机连接好,另一端与板卡的 J11 相连接; (4)启动计算机后,将 XUPV2Pro 板的电源开关 SW11 打开到 ON 上。观察 XUPV2Pro 板上的+2.5V,+3.3V,+1.5V 的电源指示灯是否均亮,若有不亮的,请断开电源,检查电源; (5)打开超级终端。 15
第二部分:实验过程记录(可加页)(包括实验原始数据记录,实验现象记录,实验过程发现的问题等) 5. 实验步骤 (1)浏览设计并生成软件 1) 选择 Start → Programs → Xilinx ISE 9.1i → Project Navigator,进入 ISE 的 Project Navigator 环境; 2) 选择 File → Open Project,并指向如下目录,选择 synth_lab.ise 打开工程; Verilog 使用者: E: \\01. ISE9.1\\xupv2pro \\labs\\ verilog\\lab4\\synth_lab VHDL 使用者: E: \\01. ISE9.1\\xupv2pro \\labs\\ vhdl\\lab 4\\ synth_lab 3) 用文件编辑器打开在 lab4 目录下的 Assembler 文件包中的 program.psm,在此汇编范本的 task #2 部分添加如下代码: cold_start: LOAD s0, all_clear ; zero out reg s0 ; LAB TASK #2 ; Write code to output a short (10 characters ; or less) message to the serial port. LOAD s0, ascii_X ; OUTPUT s0, uart_data_tx ; LOAD s0, ascii_i ; OUTPUT s0, uart_data_tx ; LOAD s0, ascii_l ; OUTPUT s0, uart_data_tx ; LOAD s0, ascii_i ; OUTPUT s0, uart_data_tx ; LOAD s0, ascii_n ; OUTPUT s0, uart_data_tx ; LOAD s0, ascii_x ; OUTPUT s0, uart_data_tx ; LOAD s0, ascii_SPACE ; OUTPUT s0, uart_data_tx ; 16