收藏 分销(赏)

实验四、电子钟_de2.doc

上传人:xrp****65 文档编号:7220917 上传时间:2024-12-28 格式:DOC 页数:54 大小:2.45MB 下载积分:10 金币
下载 相关 举报
实验四、电子钟_de2.doc_第1页
第1页 / 共54页
实验四、电子钟_de2.doc_第2页
第2页 / 共54页


点击查看更多>>
资源描述
《基于软核技术的嵌入式系统设计》 实验四、NiosII系统设计——电子钟 --DE2 北京交通大学 计算机学院 教师:丁晓明 本实验指导书演示了NiosII系统的硬件设计,软件设计,能实现一个电子钟功能。 本实验在前面实验的基础上,同学已经能熟练的使用QuartusII软件和模块化输入方法。 本实验主要包括SOPC Builder,NiosII IDE,QuartusII的使用,主要目的在于指导同学学习如何定制一个NiosII硬件系统和如何在此基础上编写软件程序。 实验条件: Cyclone II EP2C35F672C6教学套件 QuartusII9.0 SOPC Builder9.0 NiosII9.0 NiosII IDE 在本实验中,我们将以Cyclone II EP2C35F672C6学习板为平台,介绍开发一个电子钟的软、硬件方案设计,涉及到的代码,只需要按照实验指导书将代码拷贝到工程文件夹中即可。 (注意:使用cyclone开发板的同学在设置时需要做相应的改动) 系统软、硬件需求分析: 1. 该系统要实现的功能: (1). 在液晶屏上显示时间,日期 (2). 对时间、日期能够进行设置 2. 硬件系统组成规划 根据系统要实现的功能和开发板配置,本项目中需要用到的Cyclone II开发板上的外围器件有: LCD:电子钟显示屏幕 按钮:电子钟设置功能键 Flash存储器:存储软、硬件程序 SRAM存储器:程序运行时将其导入SRAM 根据所用到的外设和器件特性,在SOPC Builder中建立系统要添加的模块包括:NiosII CPU定时器,按键PIO,LCD, 外部RAM总线(Avalon三态桥),外部RAM接口,外部Flash接口。 3.软件系统规划 要实现系统所需的功能,大量的工作应该集中在软件设计和优化上。电子钟的软件功能主要分为显示、设置和时间算法三大部分。 1. 显示部分 显示部分的功能包括: (1). 显示时间(小时:分钟:秒) (2). 显示日期(年-月-日) 2. 设置部分 设置部分的功能包括:设置小时,设置分钟,设置年份,设置月份,设置日期和退出设置。 设置部分的程序主要用在对按键的响应。在编写程序前要对Stratix开发板上的四个按键功能进行如下分配: (1). 主菜单 (a). SW0:设置选择键,可依次选择设置小时,分钟,年份,月份和日期 (b). SW1:显示日期键 (c). SW2:显示时间键 (2). 子菜单(即进入对某个选项设置后的键盘功能): (a). SW1:选项数字增加 (b). SW2:选项数字减少 (c). SW3:退出对选项的设置,返回主菜单 3. 时间算法部分 时间算法部分的功能包括: (1). 时间累加 (2). 确定每个月的最大天数,使年、月、日能正确累加 通过对软件要完成的功能进行分析可以看出,这里只有按键响应和显示部分需要涉及硬件,其它子程序可在进行硬件设计的同时开始编写。 4. 软件流程图 开始计时 初始化液晶 初始化变量 开始主循环 开始 检测按键及 按键响应 结束 是否计时? 是 否 实验内容: 1. 系统硬件 (1) 首先根据前面的实验步骤,创建一个新工程lab4prj。 (2)点击 Tools->SOPC Builder,进入SOPC Builder,运行SOPC Builder, (3)给要设计的系统模块命名,此处我们命名为niosII;Target HDL项,选择VHDL,指定设计中各模块生成的HDL类型,命名完毕,点击OK。 (4)设置Clock为50MHz,Target Device Family为Cyclone II。 (5)双击Avalon Components à NiosII Processor,添加一个 NiosII/s 处理器 Instruction Cathe:4KB JTAG调试模块等级:Level 2 然后点击Finish。 用鼠标右键点击cpu_0,选择rename选项,将NiosII处理器cpu_0更名为cpu (6)添加 JTAG UART,在Simulation选项卡下选择Create ModelSim alias to open a window showing output as ASCII text,其他设置保持默认状态,如下图。并命名为jtag_uart (7) 添加一个计时器(Interval Timer),Initial Period设置为10msec,其他为默认设置。并命名为sys_clk_timer。 (8)再添加一个计时器,使用如下,并命名为high_res_timer 。 (9)添加Avalon Tri-state Bridge,将Incoming Signals设置为Registered模式,并命名为ext_ram_bus (10)添加Flash存储器,设置如下,并命名为ext_flash。 (11)添加SDRAM Controller,使用如下设置,并命名为ext_ram。 (12)添加Character LCD,并命名为lcd_16207_0。 (13)添加一组PIO(Parallel I/O)宽度设置为4位,方向设置为输入,并命名为pio_button。设置如下: (14)添加PLL模块 点击 Launch Altera’s ALTPLL Mega wizard进入PLL设计 器件选择Any,时钟为50Mhz,其他保持默认。 点击左上角output clocks 对c0的设置如下图所示: 然后点击clk c1; 点击Finish完成PLL设计。 点击Finish 然后按照下图做一些改动: (15)到此完成系统的搭建,根据下图的连接关系把各模块与总线连接好。 然后选择SystemàAuto-Assign Base Addresses,为各模块自动分配地址;再选择Auto-Assign IRQs,自动分配中断顺序。 分别在ext_flash和ext_ram的base上点击右键,选择lock base address。 最后系统整体配置如下图所示: (19)在NiosII more “cpu” settings选项卡中,设置reset address ext_ram为,exception address为ext_flash,配置如下图所示: 点击Generate生成系统… (20)SOPC Builder完成,提示成功生成系统,点击Exit。 (21)将我们提供的test.bdf原理图文件拷贝到你所做的工程目录下,并将其添加到工程中,设置为顶层文件,打开该文件如图所示: 将SOPC Builder生成的模块插入原理图设计,在原理图空白处单击鼠标右键,选择插入或者双击左键插入 选择Projects/niosII (22)设置QuartusII编译工具,点击进入如下界面 (23)管脚分配 选择project下的generate Tcl file for project,在如下界面点击ok, 产生的test.tcl文件 在QuartusII软件中打开example下的standard工程(D:\altera\kits\nios2_60\examples\vhdl\niosII_stratix_1s10),产生standard.tcl文件(同样需要按照上面的步骤产生),把文件中带有set_location_assignment指令,并且-to的后面参数与现有工程中使用管脚名字相关的语句拷贝到test.tcl文件的下面位置,然后保存。(这个过程需要万分的小心和仔细,请大家注意) 选择tools下的tcl scripts,按照下图选择tcl文件。 点击run,就可以把standard工程的管脚定义运用到现有的工程中,这就是管脚命名时提醒注意的地方,如果管脚名字与standard工程的对应管脚名字不同,那么tcl文件的添加就没有效果了。这种方法可以节省定义管脚的时间,尤其是在有参照工程管脚定义的情况下,更为方便。 分配完管脚保存。 (24) 点击编译工程。 2. 系统软件 (1). 首先打开NiosII IDE,选择开始菜单下所有程序中的AlteraàNiosII EDS 6.0àNiosII IDE。 路径设到各自实验工程的software文件夹,若不存在,新建此文件夹。 (2). 选择FileàNewàProject创建新的软件工程,选择C/C++ Application,点击next。 并命名为clock,在目标硬件 (Target Hardware)选项中指定为刚才完成的设计文件(nios2.ptf),并选用Blank Project作为模板 (3). 点击Next,为刚创建的软件工程建立新的系统库(system library) (4). 鼠标右键点击上一步创建的clock软件工程,选择Import 选择Filesystem, 在From Directory中选择E:\altera\qdesigns60\lab5\software(路径不唯一,根据自己的修改),Into Directory中选中刚才所创建的软件工程nios2,添加包含源代码的文件clock.c和clock.h (5). 双击打开clock.c文件,浏览阅读代码 (6). 设置编译器,鼠标右键单击软件工程clock_syslib,选择Properties,选择System Library,配置如下图所示。 (7). 编译程序,鼠标右键单击软件工程clock,选择Build Project,由于第一次编译程序,NiosII IDE会根据硬件配置和编译器配置生成很多库文件,所以时间比较长。 (8). 将FPGA配置文件下载到Cyclone芯片上,点击Tools->QuartusII Programmer 选择QuartusII生成的硬件工程配置文件.sof文件,并选中Program/Configure选项,点击Start。 (9). 编译通过后的程序可以下载到芯片上运行,点击Run->Run..(有的可能不会出现如下设置,可以直接忽略) 在Target Connection界面如下设置,其他保持默认设置。如果对应列表中没有相应器件,请点击refresh。 设置完毕,点击apply。 (10). 然后点击run,观察程序运行情况。在LCD上有相应显示。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服