电工电子实验中心
实验一、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 电子系统设计