SOPC课程设计——模拟十字路口交通灯
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SOPC设计与应用实验
课程设计报告
学院:机械与电子工程学院
专业:电子科学与技术
班级:10206301
学号:**********
*名:***
指导老师:***
2013年6月22日
一、实验简介
实验其他成员:华浩荣、蒋顺风、周利强、张瑜
组长:华浩荣
我做的模块是12个交通灯的循环点亮,红灯、绿灯亮10秒,黄灯亮5秒。
实验报告重点介绍这部分内容,其它的简写。
本实验是基于ZY11203G EDA/SOPC创新实验开发系统做出来的。
1.实验平台介绍
➢ 电源模块
➢ 下载接口模块
➢ 数码显示模块
➢ LED 显示模块
➢ 液晶显示模块
➢ 拨码开关模块
➢ 按键模块
➢ 扬声器模块
➢ 配置芯片
➢ VGA、PS2接口模块
➢ 核心功能模块
➢ 串口模块
2.主要用到的模块介绍
2.1 下载接口模块
该模块为Altera 的CPLD/FPGA 器件的下载模块,该下载电路为JTAG 形式,因此还能对AS方式的配置芯片EPCSx 进行下载。
2.2 数码显示模块
数码显示模块由八个七段数码管和八个74HC595D 芯片,构成串并转换显示结构,以实现串行数据到并行数据的转换,并将该并行数据送入相应的数码管段。
八个数码管为共阴数码管(段码为高电平时,点亮数码管),数码管结构如下图所示:
2.3 LED段显示模块
12位发光二极管用于输出显示,输出高电平时发光二极管点亮。
2.4、核心功能模块介绍
主板模块的核心芯片采用Altera 公司cyclone 系列的EP1C12Q240C8;flash 存储器采用AM29LV065DU(8M×8bit);SRAM 存储器采用CY7C1041CV33(256K×16bit);AS 配置芯片为EPCS4(4M);同时给出两个钟振作为时钟源;数据地址总线采用高精度连接器与外部连接,以保证用户对Nios 二次开发的需要。
实验平台右侧的双排直插针用于连接开发板,用户也可自行设计开发扩展模块。
二、实验要求及原理
1.实验要求
设计并制作一个交通灯控制电路,要求如下:
1、东西南北方向分别设置红黄绿3个指示灯,东西方向和南北方向用1个数码管显示通行时间;
2、要求东西方向和南北方向的数码管显示通行时间并倒计时;每当倒计时时间到,完成红黄绿指示灯的状态切换,其中红灯、绿灯各亮10秒,黄灯5秒(开始本来是红灯、绿灯60秒、黄灯5秒的,由于只是模拟的和时间关系作出了调整)。
模拟实现十字路口的交通灯管理控制。
2.实验的整个流程图
3.交通灯的点亮
3.1 思路:参考流水灯实验,将流水灯实验中4个流水灯点亮改为让
12个交通灯点亮,先绿灯亮10秒,再黄灯亮5秒,再红灯亮
10秒,最后黄灯再亮5秒。
3.2 实验原理
由于对交通灯的控制受选通端控制,所以要开放选通,
让cs138和D2接高电平,D3、D1接底电平。
模块的整个流程如下所示:
⑴在QUARTUS II 中建立工程
⑵用SOPC BUILDER建立NIOS系统模块
⑶在QUARTUS II 中的图形编辑界面中进行管脚连接、锁定工作
⑷编译工程后下载到FPGA中
⑸在NIOS II IDE中根据硬件建立软件工程
⑹编译后,经过简单设置下载到FPGA中进行调试、验证。
三、实验步骤
硬件部分设计
1. 在自己的文件目录下(如E:\led\)建立一个led_12文件夹,然后在QUARTUS II 中新建工程,把工程放在已创的目录下。
2. 点击New Project Wizard…菜单中的Next,选择芯片为Cyclone 系列的EP1C12Q240C8。
3.点击Quartus II 界面第一行工具栏中的SOPC Builder工具,新建系统为nios_led_12.
3.在左边元件池中选择元件:这个设计工程需要使用Nios 32Bit CPU、调试串口jtag_uart 、位宽为12位的led_pio、RAM
4.生成系统模块:
*选择System Generation栏,如图2-12所示。
*在System Generation中选中HDL选项,如果安装了Modelsim软件并需要仿真设计,可以选择Simulation选项。
图2-12 生成CPU
*点击窗口下方Generate按钮,SOPC Builder根据用户设定不同,在系统生成过程中所执行的操作不同。
系统生成后点击“Exit”退出SOPC Builder
5.创建顶层文件:将刚才生成的模块以图标形式添加到BDF文件中:在SOPC Builder生成的过程中,会生成系统模块的图标(Symbol),可以将该图标像其它Quartus II图标一样添加到当前项目的BDF文件中。
步骤如下:
单击New 按钮,弹出如下图2-13所示的对话框。
图2-13 加入原理图输入文件
*选择Block Diagram/Schematic File,如图2-13所示,点击OK;
连好的原理图如下所示:
6. 锁定管脚:新建引脚锁定命令文件,File->New -> Other Files -> Tcl Script File,
引脚锁定文件
#Setup.tcl
#Setup pin setting
set_global_assignment -name RESERVE_ALL_UNUSED_PINS
"AS INPUT TRI-STATED"
set_global_assignment -name ENABLE_INIT_DONE_OUTPUT OFF
set_location_assignment PIN_153 -to clk
set_location_assignment PIN_200 -to rst
set_location_assignment PIN_42 -to LT11
set_location_assignment PIN_23 -to LT10
set_location_assignment PIN_20 -to LT9
set_location_assignment PIN_18 -to LT2
set_location_assignment PIN_16 -to LT1
set_location_assignment PIN_14 -to LT0
set_location_assignment PIN_12 -to LT3
set_location_assignment PIN_8 -to LT4
set_location_assignment PIN_6 -to LT5
set_location_assignment PIN_4 -to LT6
set_location_assignment PIN_2 -to LT7
set_location_assignment PIN_240 -to LT8
set_location_assignment PIN_44 -to CS138
set_location_assignment PIN_46 -to D3
set_location_assignment PIN_48 -to D2
set_location_assignment PIN_50 -to D1
然后选择Tools -> Tcl Scripts,会弹出如图2-19所示的对话框,
选择Tcl_script1.tcl,然后点击RUN,管脚约束与锁定就会自动加入了。
7.配置FPGA:接上实验板电源、连上USB下载线,将编译生成的SOF 文件下载到目标板上,选择Tools-> Programmer目标文件夹下载,选择USB-Blaster模式,通过JTAG口对FPGA进行配置.
软件部分设计
1.选择好工作环境路径。
2.选择菜单File -> New -> Project,会弹出如下图2-22所示对话框:
图2-22 添加新工程
3. 选择C/C++ Application,如上图所示,点击Next,会弹出图2-23所示对话框:
图2-23 选择现有工程实例
4. 在Select Project Template中选择LED_12;在SOPC Builder System中选择我们刚才建立好的工程,CPU栏会自动选择,如上图所示,点击Finish,系统会自动生成一个循环点亮LED的软件工程。
软件工程的编译
#include"system.h"
#include"altera_avalon_pio_regs.h"
#include "alt_types.h"
int main(void)__attribute__((weak,alias("alt_main")));
int alt_main(void)
{
alt_u8 led=0x0;
while(1)
{
IOWR_ALTERA_A V ALON_PIO_DATA(PIO_LT_BASE,0x030c);
Usleep(10000000);
IOWR_ALTERA_A V ALON_PIO_DATA(PIO_LT_BASE,0x0492);
Usleep(5000000);
IOWR_ALTERA_A V ALON_PIO_DATA(PIO_LT_BASE,0x0861);
Usleep(10000000);
IOWR_ALTERA_A V ALON_PIO_DATA(PIO_LT_BASE,0x0492);
Usleep(5000000);
i=0;
While(i<200000)
{
i++;
}
return 0;
}
5.右键单击工程,选择Builde Project.
6.选择RUN -> run as->Nios Instruction Set Simulator.可以看到12个交通灯中,先绿灯亮10秒,再黄灯亮5秒,再红灯亮10秒,最后再黄灯亮5秒。
四、实验总结
通过本次设计,培养自己综合运用所学知识、独立分析和解决实际问题的能力,培养创新意识和创新能力,并获得科学研究的基础训练,加深对软件的了解;熟悉各个引脚的功能,工作方式,计数/定时,I/O口,等相关原理,巩固学习SOPC的相关内容知识。
在这次设计过程中,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。
这次交通灯设计,本人在多方面都有所提高。
课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也让我学会了如何去提出问题,思考问题,最后解决问题,。
在设计过程中,与同学分工设计,和同学们相互探讨,相互学习。
让我学会了合作,学会了宽容,学会了理解.这是一次成功的课程设计,虽然自己做的内容不多,但自己去思考了,去认真对待了,最后成功得出结果.通过实验,让我体会到了团队合作带来的效益,也收获了很多东西.。