实验 5.1 LCD实验.doc
上传人:sy****28 上传时间:2024-09-12 格式:DOC 页数:10 大小:9.4MB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

实验 5.1 LCD实验.doc

实验5.1LCD实验.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

实验5.1LCD实验5.1.1实验说明1.首先建立NiosII,在LCD上显示自己的学号。通过该实验,大致了解SOPC的建立过程,掌握如何在DE2-115上显示的C程序。2.在NiosII上通过C程序设计一个十字路口交通灯控制器。其中,LED红灯亮,表示禁止通行;LED绿灯亮,表示允许通行;没有灯亮(代替黄灯),表示等待;LCD上同时有数字显示作为时间提示。要求:绿、黄、红灯点亮时间分别为20秒、4秒、24秒。·LCD显示实验步骤5.1.2建立Quartus工程新建Quartus工程HelloWorld,目录名和顶层实体名都为:HelloWorld。5.1.3建立SOPC系统点击QuartusII软件右上方图标打开SOPCBuilder,创建一个SOPC系统。填写系统名称为HelloWorld_System,并指定VHDL为描述系统的语言(注意:在添加系统名称时不可以与工程名相同)如图5-1。图5-1添加系统名称并指定语言在系统上添加On-ChipMemory。在程序左侧列表中选择MemoryandMemoryControllers->On-Chip->On-ChipMemory(RAMorROM),双击添加至系统中。如图5-2所示。图5-2添加On-ChipMemory注意:左侧的组件均可以根据需要添加,8.0以上的SOPCBuilder具有过滤器,可以通过输入组件的名称进行快速定位。参看左边的SOPC配置过滤器位置图。在弹出的对话框中指定片上RAM的属性。主要是片上存储器的大小问题,太小的情况下甚至无法编译HelloWorld。对于QuartusII8.0自带的HelloWorld模板编译结果官方给出的大小是~69K。如果用编译器参数-Os优化,最终可以优化到22K,这里把On-ChipMemory指定到30K,如图5-3,配置好后点击Finish.。注意:如果Nios实验过程中实在执着于空间限制,请在C语言编程时使用alt库。图5-3.aSOPC配置过滤器位置图图5-3.b指定On-ChipMemory属性添加NiosIIProcessor。双击AlteraSOPCBuilder->NiosIIProcessor,在弹出的对话框中间选择第一个NiosII/e,表示economy,最小的NIOSII核心。下面的ResetVector和ExceptionVector都选择onchip_men,即刚才添加的片上RAM的名称。其它的都保留默认设置即可。点击Finish添加CPU核。如图5-4。图5-4添加CPU并设置参数添加JTAGUART,默认即可。如图5-5。图5-5添加JTAGUART并设置参数添加LCD,保持默认。如图5-6。图5-6添加LCD配置系统ID如图所示,双击组件库中的SystemIDPeripheral,添加系统ID组件。图5-7设置sysid无需做任何设置,直接点击系统ID配置窗口的Finish按纽即可。不过请注意其中的警告信息。是的,在配置完成后,务必更改系统ID名称为sysid。完成SOPC工程设计如图5-9。图5-9完成的SOPC工程注意:系统的每个组件都需要一个地址才能正常工作。某些组件,如定时器(IntervalTimer)还需要分配一个IRQ号。如果发现各组件的地址或者IRQ号出现冲突,可以选择菜单栏上System->Auto-AssignBaseAddresses以及System->Auto-AssignIRQs自动设定地址和IRQ。系统IRQ可以是从0到31的整数,数值越小优先级越高。生成SOPC软核处理器系统。通过点击下方Generate完成,如图5-10。图5-10生成系统注意:如果实验过程中因为某种原因修改了内存大小,例如:onchipmemory,则需要执行自动指定存储器基地址操作。自动指定存储器基地址操作选项如下图(图5-11)所示。图5-11自动指定存储器基地址用VHDL语言完成顶层实体大多数情况下,都选择使用语言完成顶层实体。这是因为引脚太多,使用符号框图容易出错。退出SOPCBuilder。回到QuartusII刚才建立的HelloWorld工程界面,可以用原理图或VHDL代码设计顶层实体保存至HelloWorld.*。分析与综合,这一步除了检查顶层实体是否出错外,尚有另一个目的,就是为了将已有配置信息写入qsf文件。以免分配引脚时造成qsf文件的修改时间比内存更新,丢失以往配置信息(如编译输出路径)。引脚分配,编辑.qsf文件,添加引脚定义。DirectionLocationI/OStandardiCLK_50InputPIN_Y23.3