电工电子实验中心.

Slides:



Advertisements
Similar presentations
现代电子技术实验 ——综合实验之单片机部分
Advertisements

什么是SOPC: SOPC是英文System On a Programmable Chip的缩写,称为片上可编程系统。SOPC将传统的EDA技术、计算机系统、嵌入式系统、数字信号处理等融为一体,综合了各自的优势,且在结构上形成一块芯片。 为什么用SOPC:SOPC是现代电子技术和电子系统设计的发展趋势,建立了电子系统设计的新模式。用户利用SOPC开发平台,自行设计高速、高性能的DSP处理器、特定功能的CPU及其外围接口电路,创建结构最为简洁的电子系统。
SOPC技术 数字逻辑电路 主讲:刘昌华 嵌入式技术研究所
第2章 SOPC硬件开发环境及流程.
EDA技术 第9章 FPGA硬件设计.
单片机应用技术 项目一 循环彩灯装置 第7讲 Keil软件的使用 《单片机应用技术》精品课程组 湖北职业技术学院机电工程系.
青岛市数字证书认证中心 2011年4月.
第2章 FPGA/CPLD结构与应用.
《 E D A 技 术》 课 程 教 学 讲授:伍宗富 湖南文理学院电气与信息工程学院 2017年3月19日星期日.
《 E D A 技 术》 课 程 教 学 讲授:伍宗富 湖南文理学院电气与信息工程学院 2017年3月22日星期三.
所有培训资料均可从网站 何宾 Tel: 版权所有,禁止未经授权的商业使用行为 何宾 Tel: 所有培训资料均可从网站
EPF10K10TI144-4晶片燒錄.
第1章 FPGA概述 1.1 FPGA的发展历程 1.2 FPGA的基本原理 1.3 FPGA的设计方法 1.4 FPGA的设计流程
任务1: 点亮你的LED----初识单片机.
项目2 2个LED发光二极管控制 知识与能力目标 熟悉单片机的I/O口功能与特性。
第一章 嵌入式系统开发基础 本章介绍了嵌入式系统开发的基础知识,从嵌入式计算机的历史由来、嵌入式系统的定义、嵌入式系统的基本特点、嵌入式系统的分类及应用、嵌入式系统软硬件各部分组成、嵌入式系统的开发流程、嵌入式技术的发展趋势等方面进行了介绍,涉及到嵌入式系统开发的基本内容,使读者系统地建立起的嵌入式系统整体概念。
所有培训资料均可从网站 何宾 Tel: 版权所有,禁止未经授权的商业使用行为 何宾 Tel: 所有培训资料均可从网站
VHDL數位電路實習與專題設計 文魁資訊-UE301
CH2 開發環境介紹 最簡單的互動設計 – Arduino一試就上手 孫駿榮、吳明展、盧聰勇.
陈 峦 副教授 研究院大楼316# 电子科技大学 能源科学与工程学院
第3章 DSP Builder设计入门 3.1 DSP Builder及其设计流程 3.2 DSP Builder设计向导
PIC16F1827介紹 以微控器為基礎之電路設計實務-微處理器實驗室.
Timer & KEYPAD 11/24.
VHDL數位電路實習與專題設計 文魁資訊-UE301
102年度新北市立三重商工旗艦計畫實施方案 先進車用電子控制技術培育計畫
8.9二进制振幅键控(ASK) 调制器与解调器设计
S3c2410电路设计(以北京博创s3c2410-s实验箱为例讲解)
智能电子钱包终端设计(一) ——CPU卡与COS文件结构
1-1 微電腦系統單元 1-2 微電腦系統架構 1-3 微控制器(單晶片微電腦) 1-4 類比與數位訊號介面
第六部分 ADSP-2189M EZ-KIT评估套件 a.
版权所有,禁止未经授权的商业使用行为 何宾 Tel: 北京中教仪装备技术有限公司.
EDA技术实用教程 第1章 概 述.
第4章 PIC软件开发设计基础.
第4章 常用EDA工具软件操作指南 4.1 Lattice ispEXPERT 操作指南
EDA原理及应用 何宾
使用VHDL設計—4位元減法器 通訊一甲 B 楊穎穆.
EDA原理及应用 何宾
電腦硬體裝修 授課數位教材.
    Arduino 1602 LCD 量測電壓顯示 LCD 示波器    林品成 月.
Block diagram BB —逻辑 —音频 —电源管理 HW interface. Block diagram BB —逻辑 —音频 —电源管理 HW interface.
使用VHDL設計—向上&向下計數器 通訊一甲 B 楊穎穆.
Arduino.
EDA 原理及应用 何宾
NO.3.1 SOPC技术 第5章 Nios II 系统的外围设备.
使用VHDL設計-XOR_GATE 通訊一甲 B 楊穎穆.
第2章 Quartus II设计向导 2.1 频率计的VHDL设计 2.2 使用宏功能块设计频率计 2.3 嵌入式系统块ESB的应用
QUARTUSⅡ使用简介 高级电子系统设计课程 电路与系统 信息学院
使用VHDL設計--Moore Machine
EDA 技术实用教程 第 5 章 QuartusII 应用向导.
第9章 DSP集成开发环境CCS 内容提要 CCS是TI公司推出的用于开发DSP芯片的集成开发环境,它采用Windows风格界面,集编辑、编译、链接、软件仿真、硬件调试以及实时跟踪等功能于一体,极大地方便了DSP芯片的开发与设计,是目前使用最为广泛的DSP开发软件之一。 本章对CCS开发软件的使用作了详细地介绍。首先,对CCS开发软件作了简要地说明,并介绍了该软件的安装及配置;其次,介绍了CCS的基本操作,包括:CCS的窗口和工具条、文件的编辑、反汇编窗口、存储器窗口、寄存器窗口、观察窗口
Instructor:Po-Yu Kuo 教師:郭柏佑
第五章 VHDL主要描述语句.
使用VHDL設計—4位元ALU電路 通訊一甲 B 楊穎穆.
    使用Arduino量測交流(AC)電壓    林品成 月.
8051單晶片 蘇恆生 老師.
第1章 概述 1.1 DSP实现方案及设计流程 1.2 现代DSP设计流程概述 1.3 两类DSP解决方案的比较.
第一章 认识PROTEL DXP   本章介绍了Protel DXP的在EDA设计中的作用机安装、卸载过程,对于已经熟练掌握Protel电路设计和计算机软件相关知识的用户,可以直接跳过本章,进入下一章的学习。
计算机学院 数字逻辑实验的要求.
數位邏輯設計 VHDL.
第四章 QuartusII软件的应用 本章重点: 本章难点: EDA技术 QuartusII的设计输入 QuartusII软件的综合与编译
使用VHDL設計-XOR_GATE 通訊一甲 B 楊穎穆.
使用VHDL設計-8x1多工器 通訊一甲 B 楊穎穆.
第二章ADS1.2开发环境创建与简介.
第7章 VHDL设计应用实例 7.1 8位加法器的设计 7.2 分频电路 7.3 数字秒表的设计.
使用VHDL設計-七段顯示 通訊一甲 B 楊穎穆.
陳慶瀚 機器智慧與自動化技術(MIAT)實驗室 國立中央大學資工系 2009年10月22日
按键处理部分 王安然.
Programmable Logic System Design
Usage Eclipse 敏捷方法工具介紹 實驗室網站:
Programmable Logic System Design
Presentation transcript:

电工电子实验中心

实验一、Quartus II开发环境 下载区 数码管指示 灯输出单元 模拟信号 输入单元 液晶屏 电机输出单元 下载目标板 频率 输出单元 点阵输出单元 频率 选择单元 数字量输入单元 单片机下载单元 A/D和D/A处理单元 电子系统设计

实验一、Quartus II开发环境 下载区 数码管 指示灯 输出单元 液晶屏 模拟信号 输入单元 电机 下载目标板 数字点阵 频率 数字量 单片机 下载单元 A/D和D/A 处理单元 选择单元 电子系统设计

实验一、Quartus II开发环境 SW1~SW16是拨码开关,向上为1;向下为0。 本实验箱指定了SW1~SW8的端口(见附录);而SW9~SW16未指定端口,不能使用。 注意:SW7和SW8 的端口号。 对应的管脚,参考实验报告书后面 电子系统设计

实验一、Quartus II开发环境 组合逻辑 对应的管脚,参考实验报告书后面 AN1~AN8是按键开关,按下为1;不按为0。(端口号见附录) 电子系统设计

实验一、Quartus II开发环境 有5个时钟源 CLK1~CLK5,端口号见附录。 使用时,将短路块插在所需频 率的跳针上即可。 时序逻辑 有5个时钟源 CLK1~CLK5,端口号见附录。 使用时,将短路块插在所需频 率的跳针上即可。 对应的管脚,参考实验报告 书后面 电子系统设计

实验一、Quartus II开发环境 8个数码管 LED1~LED8,端口号见 附录。 数码管采用扫描方式显 示,8个数码管的对应笔段 共用同一端口,利用 74LS138输出片选,任一 时刻只选通一个数码管, 当扫描频率足够快时,可 看作同时显示。 对应的管脚,参考实验报告书后面 电子系统设计

实验一、Quartus II开发环境 如: 当指定S3S2S1=011时, 则选通左边第四个数码管 电子系统设计

实验一、Quartus II开发环境 12个发光二极管 D112~D101,端口号见 附录。 高电平点亮,低电平熄灭 电子系统设计

实验一、Quartus II开发环境 电子系统设计

实验一、Quartus II开发环境 主 芯片 电子系统设计

1:练习使用QUARTUS II 7.1软件,掌握利用该软件进行简单EDA设计的基本流程。 一、实验目的 1:练习使用QUARTUS II 7.1软件,掌握利用该软件进行简单EDA设计的基本流程。 2:完成一个通过拨码开关控制发光二极管亮灭的应用,实验结束后可独立完成思考题。 电子系统设计

实验一、Quartus II开发环境 二、实验内容及步骤 步骤一:项目的创建 (1).建立工程,设计输入。选择菜单“File”→“New Preject Wizard” 电子系统设计

Finish,工程创建向导将生成一个工程,这时软件界面如图1-8,在窗口左侧显示出设备型号和该工程的基本信息等。 (2)点击Next,为工程选择存储目录、工程名称、顶层实体名等,如图1-3 所示; (3)点击Next,若目录不存在,系统可能提示创建新目录,如图1-4所示, 点击“是”按钮创建新目录,系统显示如图1-5所示; (4)系统提示是否需要加入文件,在此不添加任何文件; (5) 点击Next,进入设备选择对话框,如图1-6,这里选中实验箱的核心 芯片CYCLONE系列FPGA产品EP1C6Q240C8; (6)点击Next,系统显示如图1-7,提示是否需要其他EDA工具,这里不选 任何其他工具; (7)点击Next后,系统提示创建工程的各属性总结,若没有错误,点击 Finish,工程创建向导将生成一个工程,这时软件界面如图1-8,在窗口左侧显示出设备型号和该工程的基本信息等。 实验一、Quartus II开发环境 电子系统设计

实验一、Quartus II开发环境 Cyclone系列的EP1C6Q240C8 图1-6 电子系统设计

实验一、Quartus II开发环境 图1-7 电子系统设计

实验一、Quartus II开发环境 步骤二:VHDL文本编辑输入 1.选择File/New或点击主菜单中的空白图标,进入新建程序文件状态,选择VHDL file 。VHDL程序文件的扩展名是:* .vhd 为实现用一个拨码开关控制一个LED亮灭的功能,可用VHDL编写一个程序实现 电子系统设计

实验一、Quartus II开发环境 2.点击OK按钮进入VHDL文本编辑环境界面 电子系统设计

实验一、Quartus II开发环境 3、在编辑窗口中编辑以下程序: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity test is Port ( led:out std_logic; key:in std_logic ); end test; architecture Behavioral of test is begin led <= key; end Behavioral; 电子系统设计

实验一、Quartus II开发环境 4、输入程序后,存盘,如图1-10所示: 图1-10 电子系统设计

实验一、Quartus II开发环境 5.点击Processing->Start Compilation编译该文件,系统将开始编译,结束后,给出提示信息和编译结果,如图1-11所示: 电子系统设计 图1-11

实验一、Quartus II开发环境 6.点击Assignment->Pins进行引脚分配,实验箱上拨码开关和LED对应的引脚分别为58和98,分配结果如图1-12所示。 电子系统设计

实验一、Quartus II开发环境 7.参照步骤(5)重新编译系统,系统将生成FPGA配置文件,在编译过程中若显示警告可不理会; 8.准备下载,注意打开实验箱电源,并连接下载电缆; 9.点击Tools->Programmer将配置文件下载到FPGA,系统显示如图1-13所示,注意选择下载模式为JTAG,若下载线硬件显示“No Hardware”(如图1-13所示),则点击Hardware Setup按钮,系统显示如图1-14,双击USB-Baster,设定其为当前选定硬件,再点Close返回。 电子系统设计

实验一、Quartus II开发环境 图1-13 下载界面 电子系统设计

实验一、Quartus II开发环境 图1-14 下载线配置 电子系统设计

实验一、Quartus II开发环境 图1-15 配置好下载电缆的下载界面 电子系统设计

观察实验效果,尝试开关拨码开关K1,发光二极管D1-1将随之亮灭。 实验一、Quartus II开发环境 观察实验效果,尝试开关拨码开关K1,发光二极管D1-1将随之亮灭。 电子系统设计

实验一、Quartus II开发环境 三、实验总结 通过本实验学生应掌握QUARTUS 7.1软件的基本使用方法和利用该软件进行EDA设计的基本流程。本实验的内容虽然简单,但却是进行复杂设计的基础。 电子系统设计

实验一、Quartus II开发环境 四、思考题 本实验是利用1个拨码开关控制1个LED,现要求利用8个拨码开关控制8个LED,在现有的实验环境下完成。实验箱上8个拨码开关控制8个LED对应的FPGA引脚为: 名称 引脚 K1 58 D1-1 98 K2 57 D1-2 99 K3 56 D1-3 100 K4 55 D1-4 101 K5 54 D1-5 102 K6 53 D1-6 103 K7 50 D1-7 104 K8 49 D1-8 105 电子系统设计

实验二 SOPC基础实验——Hello实验 一、实验目的及要求: 1、学习使用QUARTUS II 7.1、SOPC Builder、NIOS II IDE软件,掌握利用这些软件进行简单SOPC设计和调试的基本流程; 2、完成一个简单的NIOS II CPU设计,通过JTAG-UART接口向计算机发送一段字符串。 电子系统设计

二、实验环境及器材: 1、微机(已安装授权的QUARTUS II 7.1、SOPC Builder、NIOS II IDE) 2、EDA/SOPC实验开发系统 3、USB Blaster下载线一根 电子系统设计

实验二 SOPC基础实验——Hello实验 三、背景知识及操作流程: NIOS II 软核CPU是ALTERA公司2005年推出的新一代软核CPU产品,较其前一代产品NIOS,在用户界面、可调试性等方面都有了很大的改进,目前最新版本为7.1。NIOS II设计工具为SOPC BUILDER,已嵌入到QUARTUS II软件中,调试工具为NIOS II IDE。 本实验设计一个含NIOS II CPU的简单应用,可在控制台显示一段字符串,具体实验步骤如下: (1)启动QUARTUS软件并建立一个工程,其过程请参照实验1,在此不作赘述,工程名不妨命名为hello; (2)点击Tools->SOPC Builder,启动SOPC Builder,如图5-1所示; 电子系统设计

实验二 SOPC基础实验——Hello实验 (3)启动SOPC Builder后,系统提示输入系统名以及目标语言,这里可随意为系统命名,不妨命名为MYCPU,请注意该名称将在后面的设计中用到,因此最好命名为有意义的名字,目标语言不妨选VHDL; 电子系统设计

实验二 SOPC基础实验——Hello实验 (4)点击OK,系统显示SOPC Builder界面,窗口左侧为IP核列表,右侧为设计界面,下方为信息窗口。由于实验箱上FPGA的工作时钟为24MHz,因此须更改时钟设置,只要鼠标双击频率数并进行修改即可; 电子系统设计

实验二 SOPC基础实验——Hello实验 (5)下面就可以为设计添加组件了,首先双击左侧的Nios II Processor,为系统添加Nios II CPU,系统显示如图2-4,Nios II的类型分为经济型、标准型和完全型三种,这里选标准型,即Nios II/s,其他选项取默认值即可,点击Finish,系统显示如图2-5所示; 电子系统设计

实验二 SOPC基础实验——Hello实验 电子系统设计

实验二 SOPC基础实验——Hello实验 (6)最好为添加的CPU更改个名字,用鼠标右键点击CPU,选Rename为其更名,不妨更名为MYNIOS,系统显示如图2-6所示,请注意这时信息窗有三行提示,可暂时不去管它。 (7)继续为设计添加组件,在左侧列表中选择On Chip Memory(ROM or RAM),双击后,系统显示如图2-7;首先为系统添加片上ROM,在内存类型上选ROM,数据宽度选32位,容量选1Kbytes,其他内容可不作修改; 电子系统设计

实验二 SOPC基础实验——Hello实验 (8)类似(6),为设计添加1K字节片上RAM组件,其选项界面如图2-9所示,添加完成后将其更名为RAM。添加完ROM和RAM后,请将它们的基地址分别更改为0x00001000和0x00002000,如图2-10所示; (9)设计添加UART JTAG组件,从左侧列表中选择UART JTAG并双击,系统显示,不用更改设置,直接点击Finish,完成所有组件的添加,系统显示如图2-12; (10)MYCPU为其设置复位向量和异常向量,如图2-13所示,复位向量的内存选ROM,异常向量的内存选RAM,地址不用改变; (11)至此,CPU的所有组件添加完毕,点击Generate开始生成CPU。 (12)生成过程结束后,系统给出相应提示“System generation was successful”,如图2-14所示,至此CPU设计完成。 电子系统设计

实验二 SOPC基础实验——Hello实验 电子系统设计

实验二 SOPC基础实验——Hello实验 图2-12 添加完成所有组件 电子系统设计

实验二 SOPC基础实验——Hello实验 图2-14 CPU生成完毕 电子系统设计

实验二 SOPC基础实验——Hello实验 CPU设计完成后,返回到Quartus窗口,利用顶层图的设计方法进行该CPU的应用设计,具体步骤如下: (1)新建一个BDF文件,系统显示BDF设计窗口,点击Symbol Tools后,展开左侧的Library,在Project下出现一个组件,名称为MYCPU,如图2-15所示,这就是刚才生成的CPU,双击该CPU将其加入设计窗口; 电子系统设计

实验二 SOPC基础实验——Hello实验 (2)类似实验1的操作,添加两个INPUT类型的PIN,分别连接到MYCPU的clk和reset_n,并更名为CLOCK和RESET,如图2-16所示,这两个引脚分别是所设计CPU的时钟和复位引脚; (3)存盘,命名为hello.bdf; (4)编译系统,注意本设计目前还未进行引脚锁定,因此编译过程可在进行完Analysis & Synthesis后人为中断; (5)类似实验1操作,对CLOCK和RESET两个引脚进行锁定,它们对应的FPGA引脚分别为28和240; (6)再次编译系统,直到最后结束,在编译过程中可能会出现若干警告可不去理会;编译结束后将生成相应的配置文件hello.sof; (7)类似实验1操作,将hello.sof下载到FPGA; 至此,实验箱上的FPGA已经成为一个具有调试接口的CPU,可对其进行编程令其完成某些操作,本实验令其通过JTAG UART向计算机发送一段字符串并显示到计算机控制台,具体操作如下: (1)启动NIOS II IDE后,点击File->New->NIOS II C/C++ Application,如图2-17所示; 电子系统设计

实验二 SOPC基础实验——Hello实验 电子系统设计

实验二 SOPC基础实验——Hello实验 (2)在name栏中为工程名命名,不妨为hello;在location栏中指定存储位置;在SOPC Builder System PTF File栏内指定该工程所用到的CPU,本例为刚才创建的MYNIOS; 在工程模板列表中选Hello World Small,由于本例设计的CPU只有少量的RAM,不能选Hello World模板。完成以上设置后,点击Next,此页面的设置不做任何修改,点击Finish,系统将按Hello World Small工程模板为本应用创建工程,创建结束后,在NIOS II IDE 左侧的工程列表中将多出两个,一个是hello,另外一个是hello_syslib,同时创建了若干C源文件,其中包括main函数的文件如图2-18所示: 电子系统设计

实验二 SOPC基础实验——Hello实验 图2-18 NIOS II IDE创建完成的hello工程 电子系统设计

实验二 SOPC基础实验——Hello实验 (3)用户可对该源文件进行修改,实现用户要求的功能,例如在alt_putstr语句下添加一条新语句: alt_printf(“Hello from SOPC Lab!\n”); (4)存盘后,鼠标右键点击左侧的hello工程名,选Build Project,开始对该工程进行编译。与一般的编译工具类似,若程序中存在错误,NIOS II IDE也会给出错误信息,供用户更改程序。 (5)若编译成功,则可运行,选择Run->Run,系统显示如图2-19,为了使程序在实验箱上运行,可用鼠标右键点击Nios II Hardware,并选择New,系统将创建一个新的运行配置文件,如图2-20所示。请注意,若NIOS II IDE同时包含多个工程,在进行此步操作之前,一定要在窗口左侧的工程列表中将要运行的工程名选中。 (6)点击Run,则系统开始运行,请注意,该应用是在实验箱FPGA上的CPU运行的,运行结果如图2-21所示; 电子系统设计

实验二 SOPC基础实验——Hello实验 图2-21 运行结果 电子系统设计

实验二 SOPC基础实验——Hello实验 (7)在屏幕下方的控制台窗口中显示的就是该应用的运行结果,由显示结果看,程序运行正确,可点击红色的终止按钮或Ctrl-C结束运行; 电子系统设计

实验二 SOPC基础实验——Hello实验 至此,一个完整的NIOS II应用设计、运行完成。NIOS II CPU支持调试,即单步执行、察看变量值等操作,下面简单介绍一下调试过程: 为说明问题,将上面程序作简单修改如图2-22所示,编译通过后,点击Run->Debug,系统显示类似图2-20,再点击Debug开始调试,系统显示如图2-23,这时可按F6单步执行,注意观察屏幕右上方窗口显示的变量值的变化,可点击红色的终止按钮结束程序调试。 电子系统设计

实验二 SOPC基础实验——Hello实验 图2-23 NIOS II调试界面 电子系统设计

实验二 SOPC基础实验——Hello实验 四、实验总结 QUARTUS II、SOPC BUILDER、NIOS II IDE三个软件为用户提供了完整的SOPC设计和调试工具,通过本实验学生应掌握SOPC设计和调试的基本流程,学生应在操作过程中反复练习,熟练使用这三个软件。本实验是进行复杂SOPC设计的基础。 电子系统设计

实验二 SOPC基础实验——Hello实验 五、思考题 利用本实验设计的NIOS II CPU,设计程序,完成1+3+…+99,并将结果通过JTAG-UART传送到计算机并显示在计算机的控制台窗口,利用调试工具对该程序进行调试。 电子系统设计

一、实验目的及要求: 实验三 SOPC实验——PIO实验 1、学习设计和使用NIOS II PIO进行IO操作的基本流程; 2、完成一个具备PIO的简单的NIOS II CPU设计,实现利用一个拨码开关控制一个LED的亮灭。 电子系统设计

二、实验环境及器材: 实验三 SOPC实验——PIO实验 1、微机(已安装授权的QUARTUS II 7.1、SOPC BUILDER、NIOS II IDE) 2、EDA/SOPC实验开发系统 3、USB Blaster下载线一根 电子系统设计

三、背景知识及操作流程: 实验三 SOPC实验——PIO实验 IO是一般CPU的必配资源,NIOS II的IO是通过用户自行设计PIO(Parallel I/O)实现的,本实验完成与实验1相同的结果,但要通过NIOS II 编程实现,具体的操作过程如下: (1)启动QUARTUS软件,并建立一个工程,不妨命名为KEYLED (2)启动SOPC BUILDER设计CPU,为本设计加入NIOS II Processor、1K字节的片上ROM、1K字节的片上RAM、JTAG-UART,注意将ROM和RAM的基地址更改为0x00002000和0x00004000,结果如图3-1所示; 电子系统设计

图3-1 为CPU添加NIOS II Processor、片上ROM、片上RAM和JTAG-UART 实验三 SOPC实验——PIO实验 图3-1 为CPU添加NIOS II Processor、片上ROM、片上RAM和JTAG-UART 电子系统设计

实验三 SOPC实验——PIO实验 图3-2 拨码开关的PIO选项 图3-3 LED的PIO选项 (3)为CPU添加连接拨码开关的输入PIO组件,双击左侧IP列表中的PIO(Parallel I/O)组件,配置页如图3-2,选择PIO的宽度为1,方向为input ports only,由于本实验不涉及中断编程,所以其他的选项不作修改,点击Finish,窗口中显示已添加了一个名为pio的组件,将其更名为KEY; 图3-2 拨码开关的PIO选项 图3-3 LED的PIO选项 电子系统设计

实验三 SOPC实验——PIO实验 (4)为CPU添加连接LED的输出PIO组件,双击左侧IP列表中的PIO(Parallel I/O)组件,配置页如图3-3,选择PIO的宽度为1,方向为output ports only,其他的选项不作修改,点击Finish,窗口中显示已添加了一个名为pio的组件,将其更名为LED; (5)至此,CPU设计完成,点击Generate生成CPU; (6)返回QUARTUS软件,创建一个新的BDF文件,加入刚刚设计的CPU,该CPU有4个IO接口,一个是时钟,一个是复位,一个是输入IO,一个是输出IO,为该CPU配置4个PIN,请注意添加PIN的方向,添加完成后将PIN分别更名为CLOCK、RESET、KEY、LED,结果如图3-4所示; 电子系统设计

实验三 SOPC实验——PIO实验 图3-4 本设计的顶层图 电子系统设计

实验三 SOPC实验——PIO实验 (7)保存该BDF文件,文件名为KEYLED,然后进行编译; (8)进行引脚锁定,它们对应的引脚号如下表: (9)再次编译系统,若出现警告可不理会,系统将生成keyled.sof文件; (10)将SOF文件下载到FPGA,这时,实验箱上的FPGA已经成为一块NIOS II CPU; (11)启动NIOS II IDE,创建一个NIOS II C/C++ Application工程,不妨命名为KEYLED,指定存储路径,选刚刚设计好的CPU为目标营建,选Hello World Small为工程模板,这些设置如图3-5所示; 名称 引脚 K1 58 D1-1 98 CLOCK 28 RESET 240 电子系统设计

实验三 SOPC实验——PIO实验 图3-5 新建的NIOS II 工程设置 电子系统设计

实验三 SOPC实验——PIO实验 (12)将程序更改为如下代码: #include "system.h" #include "altera_avalon_pio_regs.h" #include "alt_types.h" #include "sys/alt_stdio.h" int main() { alt_u32 i; alt_putstr("Hello from SOPC Lab!\n"); while(1) { i=IORD_ALTERA_AVALON_PIO_DATA(KEY_BASE); IOWR_ALTERA_AVALON_PIO_DATA(LED_BASE, i); } return 0; 电子系统设计

实验三 SOPC实验——PIO实验 (13)编译、运行程序,观察运行结果,改变拨码开关K1的状态,观察发光二极管D1-1是否跟随开关的状态变化; (14)对程序进行单步执行等调试练习,观察程序执行过程与实验箱硬件状态变化间的关系。 电子系统设计

实验三 SOPC实验——PIO实验 四、实验总结 通过本实验学生应掌握利用NIOS II PIO设计的基本流程,掌握PIO软件编程的基本知识和技巧。PIO是一般CPU应用最广的资源,与硬核CPU具有固定的资源量相比,软核CPU在资源配置上具有更大的灵活性。 电子系统设计

实验三 SOPC实验——PIO实验 五、思考题 1、比较本实验和实验1的结果和实现机理上的差别。 2、本实验是利用1个拨码开关控制1个LED,现要求利用8个拨码开关控制8个LED,在现有的实验环境下利用NIOS II 编程实现。实验箱上8个拨码开关控制8个LED对应的FPGA引脚为: 名称 引脚 K1 58 D1-1 98 K2 57 D1-2 99 K3 56 D1-3 100 K4 55 D1-4 101 K5 54 D1-5 102 K6 53 D1-6 103 K7 50 D1-7 104 K8 49 D1-8 105 电子系统设计

一、实验目的及要求: 实验四 SOPC实验——定时器实验 1、学习设计和使用NIOS II PIO进行定时器操作的基本流程; 2、完成一个具备定时器的简单的NIOS II CPU设计,实现利用定时器控制一个LED的定时亮灭(如1秒钟亮灭一次)。 电子系统设计

二、实验环境及器材: 实验四 SOPC实验——定时器实验 1、微机(已安装授权的QUARTUS II 7.1、SOPC BUILDER、NIOS II IDE) 2、EDA/SOPC实验开发系统 3、USB Blaster下载线一根 电子系统设计

三、背景知识及操作流程: 实验四 SOPC实验——定时器实验 定时器是一般CPU的必配资源,NIOS II是通过用户自行设计定时器组建实现该功能的,本实验设计一个具有定时器的CPU,通过对该定时器的编程控制一个LED每1秒钟亮灭一次,具体的操作过程如下: (1)启动QUARTUS软件,并建立一个工程,不妨命名为TIMER; (2)启动SOPC BUILDER设计CPU,为本设计加入NIOS II Processor、1K字节的片上ROM、1K字节的片上RAM、JTAG-UART和1位的输出PIO,注意将ROM和RAM的基地址更改为0x00002000和0x00004000,结果如图4-1所示; 电子系统设计

图4-1 为CPU添加NIOS II Processor、片上ROM、片上RAM、TAG-UART和PIO 实验四 SOPC实验——定时器实验 图4-1 为CPU添加NIOS II Processor、片上ROM、片上RAM、TAG-UART和PIO 电子系统设计

实验四 SOPC实验——定时器实验 (3)为CPU添加TIMER组件,双击左侧IP列表中的Interval Timer组件,配置页如图4-2,选择定时时间为1秒,其他的选项不作修改,点击Finish,窗口中显示已添加了一个名为timer的组件,将其更名为TIMER1S。请注意这时SOPC可能会报错,原因是TIMER和JTAG-UART使用了相同的中断号,可将TIMER的中断号改为1解决该问题。 电子系统设计

实验四 SOPC实验——定时器实验 图4-3 设计完成的CPU 图4-2 TIMER选项 电子系统设计

图4-4 本设计的顶层图 实验四 SOPC实验——定时器实验 (5)至此,CPU设计完成,如图4-3所示,点击Generate生成CPU; (6)返回QUARTUS软件,创建一个新的BDF文件,加入刚刚设计的CPU,该CPU有3个I/O接口,一个是时钟,一个是复位,一个是输出IO,为该CPU配置3个PIN,请注意添加PIN的方向,添加完成后将PIN分别更名为CLOCK、RESET、LED,结果如图4-4所示; 图4-4 本设计的顶层图 电子系统设计

实验四 SOPC实验——定时器实验 (7)保存该BDF文件,文件名为TIMER,然后进行编译; (8)进行引脚锁定,它们对应的引脚号如下表: 名称 引脚 CLOCK 28 D1-1 98 RESET 240 电子系统设计

实验四 SOPC实验——定时器实验 (9)再次编译系统,若出现警告可不理会,系统将生成timer.sof文件; (10)将SOF文件下载到FPGA,这时,实验箱上的FPGA已经成为一块NIOS II CPU; (11)启动NIOS II IDE,创建一个NIOS II C/C++ Application工程,不妨命名为TIEMER,指定存储路径,选刚刚设计好的CPU为目标营建,选Hello World Small为工程模板,这些设置如图4-5所示; 电子系统设计

实验四 SOPC实验——定时器实验 图4-5 新建的NIOS II 工程设置 电子系统设计

实验四 SOPC实验——定时器实验 (12)将程序更改为如下代码: 电子系统设计 #include "system.h" #include "altera_avalon_pio_regs.h" #include "altera_avalon_timer_regs.h" #include "alt_types.h" #include "sys/alt_stdio.h" #include "stdio.h" volatile alt_u8 state; static void TIMER1S_INT(void *context,alt_u32 interrupt) { IOWR_ALTERA_AVALON_TIMER_STATUS(TIMER1S_BASE, 0); IOWR_ALTERA_AVALON_PIO_DATA(LED_BASE,state); state=1-state; } int main() alt_irq_register( TIMER1S_IRQ, NULL, TIMER1S_INT); IOWR_ALTERA_AVALON_TIMER_CONTROL(TIMER1S_BASE, 7); state=1; while(1) {} return 0; 电子系统设计

实验四 SOPC实验——定时器实验 四、实验总结 通过本实验学生应掌握利用NIOS II 定时器设计的基本流程,掌握定时器中断软件编程的基本知识和技巧。定时器编程是一般中断编程的范例,因此本实验程序是进行更一般的中断程序设计的基础。 电子系统设计

五、思考题 实验四 SOPC实验——定时器实验 设计一个8个LED的流水灯,使8个LED循环依次亮灭,要求利用NIOS II 定时器完成,8个LED对应的FPGA引脚如下: 名称 引脚 D1-1 98 D1-2 99 D1-3 100 D1-4 101 D1-5 102 D1-6 103 D1-7 104 D1-8 105 电子系统设计