790 likes | 1.08k Views
电工电子实验中心. 实验一、 Quartus II 开发环境. 下载区. 数码管指示 灯输出单元. 模拟信号 输入单元. 液晶屏. 电机输出单元. 下载目标板. 频率 输出单元. 点阵输出单元. 频率 选择单元. 单片机下载单元. 数字量输入单元. A/D 和 D/A 处理单元. 实验一、 Quartus II 开发环境. 实验一、 Quartus II 开发环境. SW1 ~ SW16 是拨码开关,向上为 1 ;向下为 0 。 本实验箱指定了 SW1 ~ SW8 的端口(见附录);而 SW9 ~ SW16 未指定端口,不能使用。.
E N D
实验一、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,端口号见附录。 使用时,将短路块插在所需频 率的跳针上即可。 对应的管脚,参考实验报告书后面
实验一、Quartus II开发环境 8个数码管 LED1~LED8,端口号见 附录。 数码管采用扫描方式显 示,8个数码管的对应笔段 共用同一端口,利用 74LS138输出片选,任一 时刻只选通一个数码管, 当扫描频率足够快时,可 看作同时显示。 对应的管脚,参考实验报告书后面
实验一、Quartus II开发环境 如: 当指定S3S2S1=011时, 则选通左边第四个数码管
实验一、Quartus II开发环境 12个发光二极管 D112~D101,端口号见 附录。 高电平点亮,低电平熄灭
实验一、Quartus II开发环境 主 芯片
一、实验目的 1:练习使用QUARTUS II 7.1软件,掌握利用该软件进行简单EDA设计的基本流程。 2:完成一个通过拨码开关控制发光二极管亮灭的应用,实验结束后可独立完成思考题。 实验一、Quartus II开发环境
实验一、Quartus II开发环境 二、实验内容及步骤 步骤一:项目的创建 (1).建立工程,设计输入。选择菜单“File”→“New Preject Wizard”
(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所示。
7.参照步骤(5)重新编译系统,系统将生成FPGA配置文件,在编译过程中若显示警告可不理会;7.参照步骤(5)重新编译系统,系统将生成FPGA配置文件,在编译过程中若显示警告可不理会; 8.准备下载,注意打开实验箱电源,并连接下载电缆; 9.点击Tools->Programmer将配置文件下载到FPGA,系统显示如图1-13所示,注意选择下载模式为JTAG,若下载线硬件显示“No Hardware”(如图1-13所示),则点击Hardware Setup按钮,系统显示如图1-14,双击USB-Baster,设定其为当前选定硬件,再点Close返回。 实验一、Quartus II开发环境
实验一、Quartus II开发环境 图1-13 下载界面
实验一、Quartus II开发环境 图1-14 下载线配置
实验一、Quartus II开发环境 图1-15 配置好下载电缆的下载界面
观察实验效果,尝试开关拨码开关K1,发光二极管D1-1将随之亮灭。观察实验效果,尝试开关拨码开关K1,发光二极管D1-1将随之亮灭。 实验一、Quartus II开发环境
通过本实验学生应掌握QUARTUS 7.1软件的基本使用方法和利用该软件进行EDA设计的基本流程。本实验的内容虽然简单,但却是进行复杂设计的基础。 实验一、Quartus II开发环境 三、实验总结
实验一、Quartus II开发环境 四、思考题 • 本实验是利用1个拨码开关控制1个LED,现要求利用8个拨码开关控制8个LED,在现有的实验环境下完成。实验箱上8个拨码开关控制8个LED对应的FPGA引脚为:
一、实验目的及要求: 1、学习使用QUARTUS II 7.1、SOPC Builder、NIOS II IDE软件,掌握利用这些软件进行简单SOPC设计和调试的基本流程; 2、完成一个简单的NIOS II CPU设计,通过JTAG-UART接口向计算机发送一段字符串。 实验二 SOPC基础实验——Hello实验
二、实验环境及器材: 1、微机(已安装授权的QUARTUS II 7.1、SOPC Builder、NIOS II IDE) 2、EDA/SOPC实验开发系统 3、USB Blaster下载线一根
三、背景知识及操作流程: 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实验
(6)最好为添加的CPU更改个名字,用鼠标右键点击CPU,选Rename为其更名,不妨更名为MYNIOS,系统显示如图2-6所示,请注意这时信息窗有三行提示,可暂时不去管它。(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所示;(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生成完毕
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的时钟和复位引脚;(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实验
(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实验
实验二 SOPC基础实验——Hello实验 图2-18 NIOS II IDE创建完成的hello工程
(3)用户可对该源文件进行修改,实现用户要求的功能,例如在alt_putstr语句下添加一条新语句:(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实验
实验二 SOPC基础实验——Hello实验 图2-21 运行结果
实验二 SOPC基础实验——Hello实验 (7)在屏幕下方的控制台窗口中显示的就是该应用的运行结果,由显示结果看,程序运行正确,可点击红色的终止按钮或Ctrl-C结束运行;
至此,一个完整的NIOS II应用设计、运行完成。NIOS II CPU支持调试,即单步执行、察看变量值等操作,下面简单介绍一下调试过程: 为说明问题,将上面程序作简单修改如图2-22所示,编译通过后,点击Run->Debug,系统显示类似图2-20,再点击Debug开始调试,系统显示如图2-23,这时可按F6单步执行,注意观察屏幕右上方窗口显示的变量值的变化,可点击红色的终止按钮结束程序调试。 实验二 SOPC基础实验——Hello实验