550 likes | 799 Views
嵌入式系统设计实验 Aquila. LAB001-- 流水灯控制显示实验. 郭益旻. OUTLINE. Aquila 板卡 的硬件结构及接口 硬件描述语言及软件工具 实验内容 Aquila 板卡 下载线连接及上电 实验任务. Aquila 板卡 的硬件结构及接口. Aquila 板卡平面图. Aquila 板卡 硬件结构及接口. FPGA : Xilinx Spartan-3A DSP XC3SD1800A datasheet 详见 d:gymaquila_labef spartan3adsp .pdf
E N D
嵌入式系统设计实验Aquila LAB001--流水灯控制显示实验 郭益旻
OUTLINE • Aquila板卡的硬件结构及接口 • 硬件描述语言及软件工具 • 实验内容 • Aquila板卡下载线连接及上电 • 实验任务
Aquila板卡的硬件结构及接口 • Aquila板卡平面图
Aquila板卡硬件结构及接口 • FPGA:Xilinx Spartan-3A DSP XC3SD1800A datasheet详见d:\gym\aquila_lab\ref\spartan3adsp.pdf • 视频采集单元 :两路视频输入,支持CVBS信号或者 S-video信号输入,输出Ycbcr 4:2:2 ITU-R BT656格式 datasheet详见d:\gym\aquila_lab\ref\tvp5150a.pdf • 视频输出单元:VGA接口输出 datasheet详见d:\gym\aquila_lab\ref\FMS3818.pdf • SDRAM存储单元 datasheet详见d:\gym\aquila_lab\ref\mt48lc4m32b2.pdf
Aquila板卡硬件结构及接口 • 标准I2C读写单元 • 配置视频采集芯片内部寄存器 • 扩展GPIO • 网络接口:标准RJ45网络接口 datasheet详见d:\gym\aquila_lab\ref\lxt972a.pdf • RS232通讯串口
Aquila板卡硬件结构及接口 • 逻辑电平输入和输出 • 按键输入 • 输出控制led发光二极管 • JTAG下载接口及flash下载接口 • 电源模块 Aquila板卡硬件结构及接口可以参考 d:\gym\aquila_lab\ref\Aquila板卡使用说明.doc
硬件描述语言及软件工具 • Verilog HDL 硬件描述语言 • UltraEdit 或其它文本编辑工具 • ISE9.1i 综合工具 • ModelSimSE 6.2b仿真工具 • JTAG-USB下载工具
实验内容 • 实验目的 • 初步掌握编写Verilog HDL硬件描述语言 • 掌握ucf文件的定义 • 初步掌握 ISE9.1i综合工具的使用 • 初步掌握 ModelSimSE 6.2b仿真工具的使用 • 掌握JTAG-USB下载工具的使用
实验内容 • 实验范围 • 使用ISE9.1i新建项目工程 参考代码位置(d:\gym_aquila\code\Aquila_led_top.v)顶层文件 参考代码位置(d:\gym_aquila\code\Aquila_test.v)测试文件 参考代码位置(d:\gym_aquila\code\ucf\Aquila.ucf)ucf文件 • 使用ISE9.1i综合项目工程 • 使用ISE9.1i产生bit下载文件
实验内容 • 使用ModelSimSE 6.2b工具进行仿真测试 仿真波形参考下图
实验内容 • 使用JTAG-USB下载bit文件至Aquila板卡 参考代码位置(d:\gym_aquila\aquila_led\top_aquila_led.bit) • 依次点亮Aquila板卡上8只led发光二极管D1,D2…D8。点亮周期500ms,逻辑控制低电平点亮,高电平熄灭。 • 板卡上按键S1的低电平状态作为系统复位信号。 • 按键S2的低电平状态作为8只led发光二极管开始工作,循环点亮的触发信号。 • S1,S2按键抬起时为高电平,按下时为低电平。
实验内容 • 顶层模块接口说明
实验内容 • ISE9.1i综合工具的使用 • 打开 ISE9.1i
实验内容 • 新建项目
实验内容 • 建立项目名称
实验内容 • 选择FPGA芯片型号,请按照红色标记框内类型选择
实验内容 • 点击“next”
实验内容 • 点击“next”
实验内容 • 点击“finish”
实验内容 • 添加参考代码
实验内容 • 参考代码位置(d:\gym_aquila\code\Aquila_led_top.v)顶层文件 • 参考代码位置(d:\gym_aquila\code\ucf\Aquila.ucf)ucf文件
实验内容 • 点击“ok”
实验内容 • 双击“Synthesize - XST” 进行综合
实验内容 • 综合成功
实验内容 • 双击“Implement Design”进行布局布线
实验内容 • 布局布线完成 注意:每一个“warning”都要检查一下
实验内容 • 双击“Programming File Generation Report” 生成bit下载文件:D:\gym_Aquila\aquila_led\top_aquila_led.bit
实验内容 • ModelSimSE 6.2b工具的使用 • 添加测试文件 参考代码位置(d:\gym_aquila\code\Aquila_test.v)测试文件
实验内容 • 选中测试文件,“打开”
实验内容 • 点击“ok”,完成添加测试文件
实验内容 • 双击“Simulate Behavioral Model”
实验内容 • 进入ModelSimSE 6.2b仿真环境
实验内容 • 输入需要观察的信号名称 • 要求输入: • sys_clk, • sys_rst, • start, • ms500_clock, • led_cnt, • led
实验内容 • 在编辑框中输入运行仿真的时间 • 点击红色标记框中的快捷按钮,开始运行仿真
实验内容 • 参考波形
bit文件下载 • 下载bit文件至Aquila板卡 • JTAG-USB下载线与Aquila板卡JTAG接口连接 • 板卡上电 • 下载bit文件
bit文件下载 • JTAG-USB下载线与Aquila板卡JTAG接口如下图 Aquila板卡JTAG接口靠近VGA接口。 注意:必须在断电状态下,插拔JTAG-USB下载线 Aquila JTAG JTAG-USB CABLE 3.3V GND TCK TDO TDI SMT VDD GND TCK TDO TDI SMT
bit文件下载 • 板卡上电 • 接入DC+5V电源之前,电源开关处于“OFF”位置 • 将电源开关拨至“ON”位置,板卡上电
bit文件下载 • 下载bit文件 • 打开 ExPort
bit文件下载 • 点击“Initialize Chain”
bit文件下载 • 点击“Browse”
bit文件下载 • 添加bit文件 D:\gym_Aquila\aquila_led\top_aquila_led.bit
bit文件下载 • 点击“Program Chain”
bit文件下载 • 点击“确定”,下载bit文件完成
bit文件下载 • 实验结果 • 按S1(系统复位)键观察led发光二极管的状态 • 按S2(系统工作)键观察led发光二极管的状态
实验任务 • 控制16只led发光二极管D1,D2…D16。 • 依次点亮D1,D2…D16,重复3次,然后依次点亮D16,D15…D1,重复3次,两种工作方式交替。 • 单只led发光二极管点亮周期为500ms。 • 按键S2产生的下降沿作为系统工作的触发信号。
实验任务 • 要求用ModelSimSE 6.2b产生正确仿真波形。 • 要求下载生成的bit文件至Aquila板卡验证正确。
参考代码讲解 顶层模块接口定义 (Aquila_led_top.v) module top_aquila_led ( //input sys_rst, //system reset sys_clk, //system clock 25Mhz start, //start work signal //output led //8 bit led interface ); endmodule
参考代码讲解 • 接口输入输出定义 input sys_rst; input sys_clk; input start; output led;
参考代码讲解 • 类型定义 wire sys_rst; wire sys_clk; wire start; wire ms500_clock; wire [ 7:0] led; reg start_delay; reg ms500_clk; reg [23:0] ms500_cnt; reg [ 7:0] led_buf; reg [ 3:0] led_cnt;