1.4k likes | 1.58k Views
学习情境六:数码相框. 主要内容. 项目任务 项目目标 实施步骤 相关知识 评价与总结. A. 项目任务. 利用 FPGA 器件设计一个数码相框,实现对存储器中存放的 BMP 格式图片的顺序播放,播放显示设备为 TFT 液晶显示器. B . 项目目标. C . 实施步骤. 实施步骤. …. …. … 硬件设计 硬件设计的主要目的是根据数码相框的功能结构定制一个 NiosII 系统,并添加必要的外设. … 软件设计 软件设计是在 Nios IDE 下开发数码相框的应用程序. …. ….
E N D
学习情境六:数码相框 Electronic Design Automation
主要内容 • 项目任务 • 项目目标 • 实施步骤 • 相关知识 • 评价与总结 Electronic Design Automation
A. 项目任务 利用FPGA器件设计一个数码相框,实现对存储器中存放的BMP格式图片的顺序播放,播放显示设备为TFT液晶显示器
实施步骤 … … • … 硬件设计 • 硬件设计的主要目的是根据数码相框的功能结构定制一个NiosII系统,并添加必要的外设 • … 软件设计 • 软件设计是在Nios IDE下开发数码相框的应用程序 … … Electronic Design Automation
一:硬件设计硬件设计环节的主要目的是根据数码相框的功能结构定制一个Nios II 系统,并添加必要的外设。本项目的完成需要使用到QuartusII和NiosII 软件,项目示例以8.1版为例 Electronic Design Automation
1.新建SOPC设计项目在开始设计以前,用户必须运行使用QUARTUSII软件,并创建一个新的QUARTUSII工程。通过New Project Wizard,为工程指定一个工作目录、工程名称、顶层设计实体名称以及器件选型。 Electronic Design Automation
注意:由于一开始,文件夹中并没有设计文件,所以先建立一个空的工程。注意:由于一开始,文件夹中并没有设计文件,所以先建立一个空的工程。 • 首先建立一个文件夹,设定一个空文件夹为项目的工作目录,命名项目名称为:photo_frame。选择器件系列为Cyclone,器件为EPlCl2Q240C8。需要指出的是,在QuartusII中进行SOPC设计,必须在有项目被打开时,才能进行,否则SOPC的设计工具SOPC Builder是不能开启的,所以必须在此建立一个空的项目 • 建立工程后,进一步建立一个顶层模块,用于将整个工程的各个模块包含在里面。 Electronic Design Automation
当前顶层模块中尚未包含各设计模块,暂且保存待后续设计完成后再对顶层模块进行完善。当前顶层模块中尚未包含各设计模块,暂且保存待后续设计完成后再对顶层模块进行完善。 Electronic Design Automation
2.建立一个SOPC系统模块 • 选择QuartusII菜单“Tools”一“SOPC Builder…”,打开与QuartusII集成的SOPC开发工具:SOPC Builder。当在一个新的项目中首次打开SOPC Builder,会弹出“CreatNew System(建立新系统)”对话框,在对话框中输入需要建立的SOPC系统的名称,选择SOPC Builder生成的HDL代码的类型,Verilog、VHDL任选一种。在这里可以设定SOPC系统名称为:nios32,HDL语言类型为VHDL。按“OK”按钮后,进入SOPC Builder的设计界面。 从图上看,整个SOPC Builder界面可以分成三个部分:左边是一个组件(NiosII嵌入式系统元件)选择栏,用树型结构列出了SOPC Builder的组件;右边空白处可以列出已经加入的组件;下方是提示栏,提示一些SOPC Builder的提示信息和警告错误信息。在右上方,可以选择器件系列和系统工作频率。在这个示例中选择器件系列是Cyclone,系统工作频率是50MHz。 Electronic Design Automation
3.基本SOPC系统介绍 • 这个基本的SOPC系统大致可以分为三个部分:FPGA部分、存储器部分和外围显示元件部分。其中FPGA部分是建立在FPGA上的,核心是NiosII CPU Core,我们需要在SOPC Builder中设计的就是FPGA部分。 Electronic Design Automation
4.加入NiosII CPU Core • 首先是加入CPU核,双击SOPC Builder的组件选择栏中的 NiosII Processor,打开NioslI Processor设置对话框,Nios II CPU核有三种结构:NiosII/e、NiosII/s和NiosII/f,区别主要在于CPU内部是否有高速缓存、是否有硬件乘法器等等。这里选择的NioslI/s,同时在Hardware Multiply中选中Logic Elements,再将Hardware Divide前打上钩选中。 在"JTAG Debug Module”中选择“Level 2”,然后点击Next一次。最后点击Finish按钮完成NioslI CPU Core的添加过程,随后SOPC Builder的界面就会改变,在图中可以看到,“cpu_0”作为一个CPUCore组件已经加入SOPC系统。 这里的CPU核的名称为“cpu_0”,我们需要更改其名字,选中“cpu__0”,右键选择“Rename”,更改组件名称为“cpu” Electronic Design Automation
5.加入JTAG_UATR在组件选择栏选中interface Protocols-Serial-JTAG UATR并双击,添加JTAG UATR按照默认设置,组件名称更改为jtag_uatr Electronic Design Automation
6.加入EPCS Serial Flash controller继续在组件选择栏选中Memories and Memory Controllers-Flash- EPCS Serial Flash controller并双击,添加EPCS Serial Flash controller,保持默认设置,名称改为epcs_controller Electronic Design Automation
7.分别添加TFT_LCD的数据线和控制线按照特定TFT_LCD的控制要求,在Peripherals-Microcontroller Peripherals-PIO(Paraller I/O)中分别添加TFT_LCD的数据线和控制线 Electronic Design Automation
1)添加TFT_data根据实际使用的TFT_LCD情况设定数据线宽度(此例设定为8位),方向为Output Ports Only Electronic Design Automation
2)继续添加其他控制线 Electronic Design Automation
8.添加SDRAM控制器及信号线 • 添加SDRAM控制器 • 在Memories and Memory Controllers-SDRAM-SDRAM Controller中,添加SDRAM控制器,根据系统配置的实际情况设定SDRAM的参数选项 Electronic Design Automation
2)添加SDRAM的其他信号线 • 在Peripherals-Microcontroller Peripherals-PIO(Paraller I/O)中分别添加SDRAM的各信号线,注意其中T_BUSY信号方向选择both input and output ports,其余选择output ports only Electronic Design Automation
9.指定基地址和中断请求优先级系统组件添加完成后,为每个外设分配基地址和中断请求优先级,分别选择system--Auto- assign base addresses和system--Auto-assign IRQs 进行基地址和中断优先级的自动分配 Electronic Design Automation
10.设定CPU的复位和异常地址 • 双击组件编辑栏的CPU,打开CPU属性设置窗口,在reset vector栏选择epcs_controller,表示系统启动或复位后从配置芯片中开始执行程序;在expection vector栏选择SDRAM,表明异常向量表放置在SDRAM中 Electronic Design Automation
11.生成CPU系统点击generate,,耐心等待片刻,当出现system generation was successful时,恭喜你,CPU创建成功了! Electronic Design Automation