1、 FPGA-CPLD 原理及应用课程设计报告原理及应用课程设计报告 题目:题目: 万年历设计万年历设计 学院学院: : 信息与电子工程学院信息与电子工程学院 专业专业: : 电子信息工程电子信息工程 学号学号: XXXXXXXX: XXXXXXXX 姓名姓名: XXXXXX : XXXXXX 指导老师指导老师: XXXXXX: XXXXXX 时间:时间: 2015.12.202015.12.20- -2015.12.232015.12.23 1 一、摘要 设计从系统硬件出发,由 CPU、总线、RAM、外接设备等构成 SOPC Builder 的硬件系统,通过 Nios II DE2 开发的嵌入
2、式软件编写并嵌入 SOPC Builder 的 硬件中实现万年历的整体开发。通过应用 SoPC Builder 开发工具,设计者可以 摆脱传统的、易于出错的软硬件设计细节,从而达到加快项目开发、缩短开发周 期、节约开发成本的目的并具有高集成度、设计灵活和可移植性较好。 关键词:万年历 SOPC SOPC Builder Nios II DE2 二、设计要求 用 Nios II DE2 开发板的 LCD 显示电子钟的日期和时间。LCD 分两行显示, 第 1 行显示年、月、日;第 2 行显示时、分、秒。用输入 BUTTON0来控制 LCD 行的修改, 同时让 Nios II DE2 开发板上的绿色
3、发光二极管亮灭来表示这个选择。 当BUTTON0按一下后, LEDG3亮, 可以修改年、 月和日的数字; 再按一下BUTTON0 后,LEDG3 灭,可以修改时、分和秒的数字。 另外用输入按钮 BUTTON3来控制日期和时间的修改,当处于日期修改方式 时,每次按动一次 BUTTON3,依次更换“年” 、 “月”和“日”的修改。当处于 时间修改方式时,每次按动一次 BUTTON3,依次更换“时” 、 “分”和“秒”的 修改。修改对象被选中后,按动 BUTTON2输入按钮可以增加显示的数字;按动 BUTTON1输入按钮可以减少显示的数字。 三、设计内容 1、按键信息、按键信息 BUTTON3: “
4、年” 、 “月” 、 “日”或“时” 、 “分” 、 “秒”切换键 BUTTON2:+键 BUTTON1:-键 BUTTON0: “年” 、 “月” 、 “日”与“时” 、 “分” 、 “秒”切换键 显示信息 LCD_Line1:显示“年” 、 “月” 、 “日” LCD_Line1:显示“时” 、 “分” 、 “秒” 2、SOPC Builder 硬件建立硬件建立 SOPC Builder 是在 Quartus II 里的 SOPC Builder 进行的,先建立工 程,在 SOPC Builder 里添加硬件,包括 CPU ,jtag_uart ,RAM,LCD,PIO, 按键,LED,以
5、及 LCD_ON。 3、Quartus II 硬件处理硬件处理 硬件会自动建立一个顶层模块, 通过建一个原理图来对对应的硬件进行输入 输出的添加,再锁定引脚,编译工程,硬件下载。 4、Nios II DE2 嵌入软件编写嵌入软件编写 在 Nios II 里建立工程,选择相应的模块,编写需要嵌入的软件,添加缺少 的头文件对应的宏定义,编译工程,进行软件下载,在观察结果。 2 四、设计步骤 1、打开 Quartus II 新建工程 2、打开 SOPC Builder 生成相应的硬件如图所示 图 1.SoPC 配置 建立好后点击 Generate 运行,看是否出错,然后点击 exit 退出。 3、在
6、 Quartus II 中建立图形文件,调用刚才生成的硬件系统,然后进行引脚 配置。 引脚配置图如下: 图 2.引脚配置 然后进行编译,生成文件如下图: 图 3.顶层电路 3 4、Nios II 运行 打开 Nios II IDE2,建立工程,选择 count_binary 模块,添加一个 LCD.h 的顶层文件。 LCD.h 的顶层文件为: #ifndef _LCD_H_ #define _LCD_H_ /LCD Module 16*2 #define lcd_write_cmd(base,data) IOWR(base, 0, data) #define lcd_read_cmd(base) IORD(base, 1) #define lcd_write_data(base,data) IOWR(base, 2, data) #define