SOPC - EDA实验讲义 - GW48-PK2 - 图文(7)

2020-04-14 03:12

图4-50 仿真参数设置 图4-51 Step2参数设置 图4-52 系统仿真波形

图4-53 选择插入SignalTapII模块 图4-54 下载成功信息

如果要选择Node2作触发信号,点击图4-55左侧的Node2,再点击右侧“Trigger Condition”栏的触发方式,然后点击下方的触发方式选择栏的内容,如选择“rising edge”,再点击“Change”按纽确定之,即选择以Node2的上升沿触发SignalTapII进行采样。一切设置结束后,点击图4-55右下的“Start Analysis”按纽,启动SignalTapII。

图4-55 在SignalTapII分析窗选择触发信号和触发方式 图4-56点击“Start Analysis”按纽,启动SignalTapII

图4-57 SignalTapII的采样波形 图4-58 SignalTapII的展开波形

按照触发条件的设置,这时应该按动实验箱上的键2,使它产生一个上升沿,以触发Cyclone芯片中的SignalTapII进行采样。这时,如果一切正常,将弹出如图4-56所示的“SignalTapII analysis completed”,点击“确定”后将弹出两个波形文件图,图4-57,图4-58。图4-57的上排波形是测试模块Node1采的实时数据波形,应该和示波器中看到的波形一致。 4.4 DDS与数字相移信号发生器设计

图4-59是在DDS基本结构的基础上设计的数字相移信号发生器(2003年电子设计竞赛赛题之一),基本结构与图2-5系统,其中输入口PWORD和FWORD分别是数控8位相位字和频率字输入端;由图可见,最宽输入字分别为10位和32位,由较高的控制精度。输出口TRAGOUT和DDSOUT分别接10位高速D/A,前者输出参考波形,后者输出移相波形。

26

示例位置:.\\cyclone_1k30_demo\\sopc_1c6_adda\\phase_shiftor_adda\\ddsb.mdl(MATLAB文件),参见readme。 实验1,对图4-59的移相信号发生器电路用MATLAB进行编辑、仿真、变换为VHDL和综合,最后用QuartusII 全程编译、仿真、引脚锁定和下载,并用示波器进行硬件测试。

实验2,将图4-59的移相信号发生器电路改变为正交信号发生器,仿真和硬件测试。该电路在正交调制解调器的设计中十分重要。增加幅度数控部分,这时输入口是两个:8位频率控制和8位幅度控制 。

实验3,将图4-59的电路改变成FSK信号发生器,选择直接调制法,实现利用数字基带信号控制DDS的频率字输入,仿真和硬件测试。

图4-59 移相信号发生器

第五章 Nios嵌入式系统开发向导

在此将引导读者完成一个Nios处理器的硬件开发工作和软件调试,并介绍Altera的Nios软核硬件开发的具体流程。使用的开发工具(软件)是QuartusII和SOPC Builder,最后的硬件实现是在GW48-SOPC实验开发系统上。 5.1 Nios软硬件开发流程

设计流程的第一步,是设计规划。需要根据系统设计要求,划分好各个软硬件模块。完整的基于Nios的SOPC系统是一个软硬件复合的系统,在开发时可以分为硬件、软件两个部分。对于通常的嵌入式系统开发,往往CPU是不可更改的,因而外围设备的变动也受到CPU的限制,因而通常的嵌入式开发更多的是PCB设计及软件开发。但Nios是一个可灵活定制的CPU,它的外设是可选的IP核或自定制逻辑,可以根据系统设计要求,通过SOPC Builder向导式的界面定制裁剪得当的SOPC系统。Nios的开发流程分为两个大部分:硬件开发与软件开发。

Nios的硬件设计流程就是为了定制合适的CPU和外设,在SOPC Builder和QuartusII中完成。在这里可以灵活定制Nios CPU的各个特性甚至指令,可以使用Altera提供的大量的IP Core来加快开发者开发Nios外设的速度,提高外设的性能,也可以使用第三方的IP Core,或者使用VHDL、Verilog来自己定制外设。完成Nios的硬件开发后,SOPC Builder可以帮助开发者生成相应的SDK(软件开发包)。这是由于在硬件开发中的Nios CPU及其外设构成的系统是自定制的,存储器、外设地址的映射等都各不相同,需要的SDK也应是专有的,不过不用开发者操心,SOPC Builder自动生成SDK。

NIOS嵌入式系统是自己定制的、裁剪过的,可能受到硬件的局限会小一些。开发者可以使用汇编或C语言,甚至C++,来进行嵌入式程序设计。当软硬件开发都完成了,接下就需要在Nios开发板上实现一个要求设计的系统的原型。在这个软硬件原型上,运行整个系统,测试是否达到要求。

5.2 Nios软硬件开发流程

在这一节,将以一个简单的基于Nios的SOPC系统的开发过程来详细讲述Nios硬件开发的具体流程。 5.2.1新建SOPC设计项目

首先,需要在QuartusII中建立一个设计项目(Project)。请参考第3章,使用“New Project Wizard新建一个工程。

27

注意,由于一开始,文件价中并没有设计文件,所以先建立一个空的工程。首先建立一个文件夹,例如:d:\\myprj 。设定一个空文件夹为项目的工作目录,如命名项目名称为:nios_dvp。选择器件系列为Cyclone,器件为EP1C6Q240C8。需要指出的是,在QuartusII中进行SOPC设计,必须在有项目被打开时,才能进行,否则SOPC的设计工具SOPC Builder是不能开启的。

设计规划硬件开发自定义外设、指令(SOPC Builder&QuartusII etc.)定义Nios系统模块(SOPC Builder)软件开发开发自定制硬件模块的驱动或子程序(SOPC Builder)OS移植(SOPC Builder)编写应用程序(SOPC Builder)定制SDK(SOPC Builder)生成Nios系统模块(SOPC Builder)锁定引脚、硬件编译(QuartusII)编译、连接、调试(SOPC Builder)硬件原型设计(Nios开发板)软件原型设计(Nios开发板)基于Nios的SOPC系统实现

图5-1 Nios软硬件开发流程 图5-2 建立一个SOPC系统模块

选择QuartusII菜单“Tools”→“SOPC Builder…”,打开与QuartusII集成的SOPC开发工具:SOPC Builder(图5-2)就是SOPC Builder的启动画面。当在一个新的项目中首次打开SOPC Builder,会弹出“Creat New System(建立新系统)”对话框(见图5-2),在对话框中输入需要建立的SOPC系统的名称,选择SOPC Builder生成的HDL代码的类型。在此设定SOPC系统名称为:nios32;语言类型为VHDL。按“OK”按钮后,进入SOPC Builder的设计界面(图5-3)。

从图上看,整个SOPC Builder界面可以分成三个部分:左边是一个组件(Nios嵌入式系统元件)选择栏,用树型结构列出了SOPC Builder的组件;右边空白处可以列出加入的组件;下方是提示栏,提示一些SOPC Builder的提示信息和警告错误信息。在右上方,可以选择器件系列和系统工作频率。在这个示例中选择器件系列是Cyclone,和系统工作频率是50MHz。

FPGARS232ButtonLEDs7 Segment DisplayPIOUARTTimerBoot ROMNios CoreFlashAvolon Bus ControllorSRAM

图5-3 SOPC Builder设计界面 图5-4 一个基本的SOPC系统结构

5.2.2基本SOPC系统介绍

这个基本的SOPC系统大致可以分为三个部分:FPGA部分、存储器部分和外围元件部分(图5-4)。 FPGA部分是建立在FPGA上的,核心是Nios CPU Core,我们需要在SOPC Builder中需要设计的就是FPGA部分。在进行具体的设计之前,从图5-4了解需要建立的基本SOPC系统。即以下要建的Nios系统包含的元件模块有,FPGA内部:一个Nios CPU 核;连接于Nios核的是,一个存放启动和调试程序的内部存储器,Boot ROM、一个UART串行通信电路模块(RS232核)、一个内部定时器、一个Avolon总线控制器和一些PIO外围接口模块。为使Nios系统正常工作,在FPGA外围必须接有一个RS232通信口、一些控制键、几个发光管和数码管以及SRAM和Flash ROM。

5.2.3加入Nios CPU Core

首先是加入CPU核,选择SOPC Builder的组件选择栏中的“Avalon Modules”→“Nios Processoror”,点击鼠标右键,选择“Add New Nios Processor…”,打开添加Nios对话框(图5-5)。Nios CPU核有两种结构:Nios-16 (16位CPU)和 Nios-32 (32位CPU),区别主要在于CPU内部数据带宽。这里选择默认的Nios-32。在“Configuration Option”中选择“Standard Debug/Average LE usage”,在“Configuration Options”框中选中“Enable Advanced Configuration Controls”。以便此CPU同时还能用来调试程序。然后点击“Next”几次,进入“Debug”选页,选中“Enable Nios OCI Debug module”。

最后点击“Finish”按钮完成Nios CPU Core的添加过程,随后SOPC Builder的界面就会改变(图5-6)。在图5-6中可以看到,“nios_0”作为一个CPU Core组件已经加入SOPC系统。而在下方提示栏中显示了加入Nios后的相关信息,和下一步的操作提示。提示中指出,已经有Avalon总线的Master(主控制器)存在。这里的CPU核的名称为“nios_0”,

28

需要更改其名字,选中“nios_0”,右键选择“Rename”,更改组件名称为“cpu”。

图5-5 加入32位Nios核 图5-6 更改组件名称

图5-7 加入Boot ROM 图5-8 Boot ROM内容设置

图5-9 加入Timer 图5-10 加入Button PIO 图5-11 Button PIO的输入设置

5.2.4加入boot_monitor_rom 一个CPU系统往往需要一个Boot ROM用于系统引导,在SOPC系统中一般也需要这种Boot ROM,在Boot ROM中可以放入GERMS Monitor调试程序,以便从外界控制Nios CPU。在组件选择栏中选择“Memory”→“On-Chip Memory”,打开加入界面,如图5-7所示。

选择“Memory Type”为“ROM(read-only)”,数据位宽(Data Width)为32位(32 bits),容量(Size)为2KB。按“Next”按钮,进入Boot ROM的内容设置(图5-8)。选择“GERMS Monitor”。GERMS Monitor是一个监控程序,用

29

于Nios的仿真调试。然后更改组件名称为“boot_rom”。

5.2.4加入UART UART是“通用异步收发器”的英文缩写,就是常用的串口,基本的SOPC系统可以通过串口与上位机通信,也用于Nios系统的仿真调试。在组件选择栏中选择“Communication”→“UART(RS232 series port)”加入。选择波特率为115200,其余按照默认配置,点击“Finish”按钮完成加入。更改组件名称为“uart1”。

5.2.5加入Timer 在组件选择栏中选择“Others”→“Interval Timer”加入SOPC系统的内部定时器。一切都按照默认配置,点击Finish完成加入。更改组件名称为“Timer1”(图5-9)。

5.2.6加入Button PIO 在这,一般需要加入用于按键的PIO,PIO就是通用I/O口。在组件选择栏中选择“Others”→“PIO”加入。选择为4位,以对应4个按键,并改成“Input”输入模式。点击“Next”进行输入选项设置(图5-10)。 选择产生中断请求(IRQ),为双边沿触发,边沿模式(图5-11),点击“Finish”完成加入。更改组件名称为“button_pio”。

图5-12 加入两个数码管seven_seg_pio 图5-13 加入Avalone tri bus三态总线控制器

图5-16 Nios系统基本元件安装设置完成

5.2 .7 加入Led PIO。加入发光二极管LED PIO,在组件选择栏中选择“Others”→“PIO”加入,选择为8位,以对应8个LED,并改成“Output”输出模式。点击“Finish”完成加入。更改组件名称为“led_pio”。

5.2.8 加入数码管 PIO。加入两个7段码数码管PIO在组件选择栏中选择“Others”→“PIO”加入。选择为16位(图5-12),以对应2个7段码,并改成“Output”输出模式。点击“Finish”完成加入。更改组件名称为“seven_seg_pio”。

5.2.9加入Avalon三态总线桥。Nios CPU与SRAM、Flash相接需要Avalon三态总线桥。在组件选择栏中选择“Bridge”→“Avalon Tri-State Bridge”,加入(图5-13)。点击“Finish”完成加入。更改组件名称为“tri_state”。

5.2.10加入SRAM。有了总线控制器就能在FPGA外围接其他总线元件了,首先接SRAM。在组件选择栏中选择

30


SOPC - EDA实验讲义 - GW48-PK2 - 图文(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:英美文化与国家概况教案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: