收藏 分享(赏)

SOPC实验手册new.doc

上传人:hwpkd79526 文档编号:9059197 上传时间:2019-07-22 格式:DOC 页数:67 大小:5.42MB
下载 相关 举报
SOPC实验手册new.doc_第1页
第1页 / 共67页
SOPC实验手册new.doc_第2页
第2页 / 共67页
SOPC实验手册new.doc_第3页
第3页 / 共67页
SOPC实验手册new.doc_第4页
第4页 / 共67页
SOPC实验手册new.doc_第5页
第5页 / 共67页
点击查看更多>>
资源描述

1、 SOPC 实验指导书钮文良 韩玺 编著北京联合大学信息学院2007 年 12 月 6 日目 录第 1 章 SOPC 实验系统介绍 21.1 系统硬件平台设计 31.2 系统软件实验开发 71.3 SOPC 系统实验介绍 8第 2 章 SOPC 基本概念与基本原理 .102.1 SOPC 技术 .102.2 基于 FPGA 嵌入 IP 软核的 SOPC 系统 .112.3 SOPC 设计 .13第 3 章 SOPC 设计开发案例 .143.1 Nios 控制 LED 实验 143.2 构建比较复杂的 Nios II 系统实验 .333.3 SOPC 下 C/OS II 操作系统移植实验 .42

2、3.4 Nios II 控制下的 UART 串行接口通信实验 .463.5 底板 88 点阵 LED 图形实验 523.6 VGA&SVGA 接口显示器彩条信号发生器实验 .623.7 按键控制数码管计数器实验 713.8 信号发生器设计实验 783.9 底板键盘控制 SOPC 实验板数码管实验 883.10 4 位按键控制下的 LED、数码管 SOPC 计数实验 .943.11 基于 SOPC 的 128*64 LCD 显示实验 .1063.12 基于 SOPC 的 20*2 LCD 显示实验 .1183.13 基于 SOPC 的步进电机实验 1273.14 SOPC/MCU/ARM 联机设

3、计实验之 SOPC 部分 .135SOPC 实验指导书第 1 章 SOPC 实验系统介绍多功能数字实验系统采用模块化设计,分为 SOPC、ARM、MCU、DSP 四个部分,整个实验系统涵盖了绝大多数本科教学实验的内容,各个模块之间可以自由组合,通过使能信号分时使用底板资源,使得该实验系统具有很高的灵活性和通用性。本文主要介绍 SOPC(片上可编程系统)模块部分。SOPC 模块的核心芯片采用 Altera 公司 Cyclone 系列 EP1C6Q240C8,此型号 FPGA 包含 5980个逻辑单元,相当于 10 万门级,片内有 80K RAM,2 个增强型锁相环。本模块的外围电路资源丰富,并留

4、有 A、B、C 三条总线接口可以连接并使用项目底板上的资源,同时也可以作为用户扩展之用。同时,以此硬件平台为基础,可以进行现有的大多数数字电路的设计、仿真与验证,包括 IP软核的设计与验证,本模块也能进行基于 Nios II 处理器的 SOPC 系统的设计。对于本科阶段,甚至研究生阶段的学生,本模块都能很好的支持比较复杂的 SOPC 系统的学习、实践与自行设计。用户可以利用 Altera 公司提供的 Quartus II 软件,使用 VHDL 或 Verilog HDL 等硬件描述语言,原理图输入等多种方式,进行数字电路的设计,也可以结合 Nios II IDE 软件进行 SOPC 系统的软硬

5、件协同设计。本模块配套给出了跑马灯程序实验,uC/OS 操作系统移植实验,串口通信实验,底板点阵 LED 动态绘图实验, SVGA&VGA 接口显示器彩条信号发生器实验,按键控制数码管实验,信号发生器实验,底板键盘控制数码管显示实验等几个 SOPC 系统设计的实例,可以作为学生入门SOPC 系统设计的指导,学生也可以在此基础上设计更加复杂、更加综合的 SOPC 系统。本模块所设计的 SOPC 系统是基于 Nios II 32 位嵌入式处理器软核。Nios II 是一个用户可配置的通用 RISC 嵌入式处理器软核,使用 32 位的指令集结构( ISA) ,完全与二进制代码兼容,它是建立在第一代

6、16 位 Nios 处理器的基础上的,定位于广泛的嵌入式应用。Nios II 处理器系列包括了三种内核快速的(Nios II/f) 、经济的(Nios II/e)和标准的(Nios II/s) ,每种都是针对不同的性能范围和成本而设计。在主芯片上所使用的 Nios II 软核中,经济型占用约 600 个 LE,标准型占用约1200-1400 个 LE。用户可以从三种处理器以及超过 60 个的 IP 核中根据系统要求选择合适的组件,Nios II 系统为用户提供了最基本的多功能性,可以以此来创建一个最适合需求的嵌入式系统。使用Nios II 处理器是现代 IT 业的流行,它所具备的优点和特性可以

7、使用户根据需要来调整嵌入式系统的特性及成本,使得产品快速推向市场,扩展产品的生命周期,并且避免处理器的更新换代。1.1 系统硬件平台设计本模块的外围电路有电源管理电路、4 位按键、4 位 LED 显示、串行通信接口电路、USB 接口电路、VGA 接口电路、时钟电路、复位电路、SDRAM、网口等,此外还预留了部分 IO 接至A、B 、 C 三条总线接口上,可以使用底板资源,也可以作为进一步的系统扩展之用。本模块的基本布局图如图 1-1 所示。具体说明如下:主芯片:采用 Altera 公司 Cyclone 系列的 FPGA:EP1C6Q240C8 芯片,该芯片逻辑资源包含 5980 个逻辑单元(L

8、E) , 2 个增强型 PLL,80Kbit 片内 RAM。内部的锁相环电路具有时钟合成功能,内部实际运行的时钟可以不同于输入的时钟频率,EP1C6 还可以通过内建的专用接口与单数据速率和双数据速率 SDRAM 连接,支持多种串行总线和网络接口。下载调试电路:本模块支持两种下载模式JTAG 和 AS,其中 AS 模式要求使用配置芯片,本实验开发平台选用 Altera 公司的 EPCS1 配置芯片。串行配置器件 EPCS1 提供 1Mb 的存储容量。该配置器件在保证低成本的同时还具备在系统编程(ISP)能力和多次编程能力,且具有包括 ISP 和 FLASH 存储器访问接口等特性,8 引脚小外形封

9、装,价格低、面积小。图 1-1 SOPC 模块布局图在硬件开发平台中,FPGA(EP1C6)应用它的内部 SRAM 单元来存储配置数据,PC 通过下载线将配置数据传输给 FPGA。对于 FPGA 而言,有三种配置方式,AS(Active serial)模式、PS( Passive serial)模式和基于 JTAG 的配置模式。本开发平台提供 AS 和 JTAG 两种下载配置模式。下载流程图如图 1-2 所示。AS 模式是通过配置芯片 EPCS1 来向 FPGA 加载数据的,EPCS1 提供一个串行接口来接收配置数据。对 FPGA 进行配置时,FPGA 通过串行口读取配置数据,对内部 SRAM

10、 进行编程。在 AS 模式下,Quartus II 软件生成的.pof 文件可以通过 USB-Blaster 或 Byte-Blaster II 下载器下载到配置芯片中。用户也可以用 JTAG 电路来传输配置数据到 FPGA 上。在 JTAG 模式下,Quartus II 软件生成的.sof 文件可以通过 USB-Blaster 或 Byte-Blaster II 下载器下载到配置芯片中。Cyclone 系列的器件,在所有的器件操作模式中,JTAG 指令拥有最高的优先权。因此, JTAG 模式不需要等待其他配置的完成(例如 AS 模式下) ,便可以执行配置指令。如果用户在非 JTAG 模式下试

11、图使用 JTAG 来配置FPGA,非 JTAG 的将会被终止而开始 JTAG 配置。SRAM 部分:SRAM 是嵌入式系统常用的静态存储器,接入高速 SRAM,其作用类似于 PC 机系统的内存,用于存放正在执行的程序和数据。本模块选择了 ISSI 公司的 IS61C6416 芯片,是一款 64K words 的高速 SRAM,与 TTL 标准电平兼容,无需时钟或刷新,CMOS 低功耗运行。SDRAM 部分:FPGA 芯片内部虽然有 80Kbit 的存储空间,但对复杂的程序是远远不够的,而且用 SOPC Builder 工具生成的 Nios II 系统也要占用一部分 M4K 块,故此,需要外加存

12、储器。本模块选用了ISSI 公司的 IS42S16400B SDRAM 芯片,存储空间 8MB,工作时钟频率可达 143MHz,这个时钟频SOPC 实验指导书率可由 FPGA 的内部锁相环对外部时钟进行倍频得到,能够满足系统的需求。图 1-2 下载流程图FLASH 部分:FLASH 的加入类似于 PC 机系统接入了硬盘,用于存放程序和数据,并在掉电时仍然保持数据。本模块选用了 AMD 公司的 Am29LV160D,是一款 3V 供电的 16Mbit CMOS 低功耗FLASH,0.23 m 工艺制作,支持全芯片擦写,兼容标准 CFI 接口,同时兼容 JEDEC 标准。电源部分:本模块可通过 A

13、、B、C 三条总线接口直接由项目底板供电,也可以外接电源单独工作。底板提供 5V 和 3.3V 电源,但本模块还需要 1.5V 电源,因此设计了 5V 到 1.5V 的电压转换电路,实现这一功能的芯片是 AS1117-1.5 电源转换芯片; 时钟电路部分:为了满足不同工作速度的需要,本模块设计了时钟电路。采用了 PERICOM 公司的 PI6C106 时钟芯片,该芯片使用 14.318MHz 无源晶振供给芯片的内部振荡器,能够输出14.318MHz、33.3MHz、48MHz、66.6MHz、100MHz 等频率的时钟信号以供给目标系统的使用,时钟的使用可以根据需要通过跳线来选择。复位电路部分

14、:系统在调试和运行阶段,经常要求对系统进行复位,恢复到系统的初始状态。本模块低电平复位有效,所以使用了 TI 公司的 7705ACD 复位芯片,通过复位按键控制,并通过底板总线可以对底板进行复位。底板总线部分:本模块可以单独工作,也可以通过自定义的 A、B、C 三个总线接口访问底板上更加丰富的资源。同时,本模块与底板连接时,可以通过总线使用底板供电,而不用再外接电源。此外,A、B 、 C 总线接口也可以作为扩展接口,外接用户自定制功能的电路。串行总线接口部分:Nios II 系统通过串口与外部其他 RS232 设备(如 PC 机)相连,除了需要有 UART 外设外,还需要遵循 RS232C 标

15、准中定义的电平规范,不能直接使用 FPGA I/O 端口的 LVTTL(3.3V)电平,这是因为 RS-232C 规定了自己的电气标准,而此标准并不能满足 TTL 电平传递要求,因此当 RS-232C 电平与 TTL 电平接口时,必须进行电平转换。本模块采用 MAX3243 接口芯片。MAX3243 芯片内含 3 个驱动器、5 个接收器和双电荷泵电路,并带有管脚15kV ESD 保护,工作电压为 3V 到5V,最大传输数据速率 250kbit/s,最大输出斜率 30V/ s。本模块采用标准的 DB9 接口,与外部CPU 进行通信。USB 接口部分:USB 设备由于“即插即用”的优点和灵活性,而

16、被广泛应用于各种电子产品。USB(通用串行总线)是一种电缆总线,用于在主机和各式各样的即插即用的外设之间进行数据传输。由主机预定的标准的协议使各种设备分享 USB 带宽,当其它设备和主机在运行时,总线允许添加、设置、使用以及拆除外设。本模块使用 USB1T11A 接口芯片,可以通过跳线选择工作模式和传输速度(低速1.5Mbit/s 和全速 12Mbit/s) 。 USB1T11A 是一片通用 USB 收发器芯片,遵循 USB1.1 协议,使用标准逻辑与 USB 的物理层接口。VGA 接口部分:VGA 接口是常见的显示器接口,用于静止图像和视频图像的显示,多采用标准 15 针 VGA 接口。控制

17、 VGA 显示器显示较为精细的图像是具有挑战性的,因为标准 VGA 的画面大小是640*480,每秒 60 帧左右,像素时钟高达 25.175MHz。通常情况下必须使用 VGA 控制器专用芯片才能解决 VGA 的显示问题,但却会带来设计复杂、成本高和体积大等问题。如果用 SOPC 技术就能很好地解决上述所有问题,而且可以把 Nios II CPU 和 VGA 控制器放在同一片 FPGA 中。网口部分:由于 Altera 公司只给出了 LAN91C111 和 CS8900 两种网络控制器的 IP 核,为出于简化设计和节约成本的考虑,本模块选用 CS8900A 10M 网络控制器进行网络部分的设计

18、。此芯片采用直连 ISA总线接口,符合 IEEE 802.3 协议,5V 供电,最大电流 55mA,核心工作电压 3V,发送和接收数据均可编程。CS8900 内部还包括片内 RAM,10BASE-T 发送和接收滤波器。I2C 总线部分:I2C 是由 Philips 公司发明的一种串行数据通信协议,仅使用两根信号线:Serial Clock(简称SCL)和 Serial Data(简称 SDA) 。I2C 是总线结构,一个主端(Master ) ,一个或多个从端(Slave) ,从设备中以 7 位地址区分,地址后面再跟一位读写位,表示读(1)或写(0) 。本模块的 I2C 信号接到 B 总线接口

19、,可以与底板进行 I2C 协议的通信,也可以作为其它扩展 I2C 设备的接口。本模块使用了 Atmel 公司的 AT24C16 芯片,该芯片是一片 16K 比特的 EEPROM,本模块的 I2C 总线工作模式为快速的 EEPROM 模式(400Kbps) 。4 位 LED、八段数码管及 4 位按键:本模块的 LED、八段数码管及按键作为基本的输出和输入设备直接连接在 FPGA 的 IO 口,作为 SOPC 系统的 IO 终端,也可以作为验证一般数字电路设计的设备。SOPC 实验指导书1.2 系统软件实验开发本实验系统的软件开发环境为 Altera 公司的 Quartus II 软件和 Nios

20、 II IDE(集成开发环境) ,此外也需要 Modelsim 软件。Quartus II 设计软件提供了完整的多平台设计环境,能够直接满足特定设计需要,为 SOPC 设计提供了最全面的设计环境,是 SOPC 设计的基础。用户可以通过使用 Quartus II 软件方便的进行系统级设计和可编程逻辑器件的设计。在 FPGA 设计阶段 Quartus II 包括了所需要的设计输入、逻辑综合、布局布线、时序分析、仿真和编程下载的全部解决方案。完成 Quartus II下 SOPC 的硬件设计后,可以在 Nios II IDE 下进行软件系统的设计,也可以在设计硬件之初就开始软件的设计,完成软硬件设计

21、后,再协同仿真、调试、运行。基于 Nios II 的 SOPC 开发流程如图 1-3 所示:图 1-3 基于 Nios II 的 SOPC 开发流程图此外,Quartus II 软件为设计流程的每个阶段提供 Quartus II 图形用户界面、EDA 工具界面以及命令行界面。可以在整个流程中只使用这些界面中的一个,也可以在设计流程的不同阶段使用不同界面。Nios II IDE 是 Nios II 系列嵌入式处理器的基本软件开发工具。所有的开发任务都可以在 Nios II IDE 下完成,包括编辑、编译和调试程序。Nios II IDE 提供了一个统一的开发平台,用于所有的Nios II 处理器

22、系统。在此开发实验系统中通过一台 PC 机,SOPC 主板以及一根 JTAG 下载电缆就能够往 Nios II 处理系统写入程序以及和 Nios II 处理器系统进行通讯。本实验系统当开发比较大的项目实验时,需要第三方的仿真软件 Modelsim 来解决仿真问题,实现协同仿真。1.3 SOPC 系统实验介绍为使得学生能够由浅入深的学习 SOPC 系统的设计,本系统设计了十四个 SOPC 实验,从简单到复杂安排,以期让学生通过实验学习逐步得到创新开发设计的能力。实验一 NiosII 控制四位 LED 实验,从软硬件两方面使学生迅速熟悉开发环境 Quartus II,为后续实验做好准备。学习使用

23、SOPC Builder 工具搭建 Nios II 系统,将生成的 Nios II 系统在 Quartus II中使用。掌握运用 Nios II IDE 开发环境,学生通过此实验可以学习如何进行 SOPC 软硬件两部分的设计。通过一个简单的跑马灯例子来迅速了解 SOPC 的基本开发流程。实验二构建比较复杂的 Nios II 系统,通过在系统中添加 SDRAM 及 PLL 宏功能模块来强化 IP核构建系统的设计思想,了解 SDRAM 及 PLL 在系统中的作用,增强学生对 SOPC 系统的理解,进一步掌握 SOPC 软硬件协同设计的方法。实验三是 SOPC 所使用的操作系统的调试与应用实验(uC

24、/OS II 操作系统移植实验) 。熟悉和了解 SOPC 下的 uC/OS-II 嵌入式实时操作系统的原理,在 Nios II IDE 中移植 uC/OS-II 嵌入式实时操作系统的流程和方法。本实验主要使用了 uC/OS II 操作系统多任务调度这一特性,除能在 Console栏里看到的 5 个任务外,还有初始化和打印状态信息两个任务。实验四是 NiosII 控制下的 UART 串行接口通信实验,学习基于 NiosII 的串口 IP 核使用及编程。了解异步串行通信的原理,熟悉 Nios II 中 UART 模块的使用,并最后学习在超级终端里查看实验运行结果。实验五 88 点阵 LED 动态图

25、形绘制实验。了解 LED 点阵显示的基本原理,学习应用本模块控制底板的方法。本实验给出的是底板上实现第一块点阵 LED 上循环的绘制心形图案及第二块点阵LED 上绘制笑脸图案的程序。本实验还要求学生在此基础上进行扩展开发实验。实验六 VGA&SVGA 接口彩条信号发生器实验。要求学生掌握应用 Verilog HDL 语言进行数字电路设计的 FPGA 应用,熟悉 VGA 和 SVGA 显示时序的工作原理;通过 VGA 显示时序,熟悉较复杂时序逻辑的硬件设计。实验七按键控制数码管计数器实验。了解数码管显示原理,熟练掌握利用 quartus II 软件进行FPGA 设计的流程。要求学生运用现有的宏功

26、能模块进行设计,并熟练掌握自行设计功能模块的方法。实验八信号发生器设计实验。以正弦波信号发生器为例,要求学生熟悉利用 quartus II 软件开发数字电路的基本流程,掌握 quartusII 软件的相关操作,达到能够运用 VHDL 语言进行的基本 FPGA设计实验,并掌握实验原理图的设计方法,了解如何定制 IP 模块。实验九是底板键盘控制 SOPC 实验板数码管显示实验。要求学生掌握键盘的工作原理,熟悉数码管显示的基本原理和实现方法。学习基于 Nios II 的 SOPC 系统,如何通过寄存器访问外围设备的方法,并通过实验加深对 SOPC 的了解和认识。 实验十是四位按键控制下的 LED、数

27、码管 SOPC 计数实验。该实验主要要求学生掌握按键的读取方法,在 SOPC 系统中,如何设置按键中断,并在软件编程中如何读取和控制,该实验功能通过按下不同的键实现不同的工作方式,在等待状态,将判断有无按键按下,是哪一个键按下,将结果显示在 Console 栏里,在计数状态,通过按不同的键,可以只令 LED 计数、只令数码管计数、令LED 和数码管同时计数、令 LED 和数码管均熄灭停止计数。实验十一是基于 SOPC 技术的 128*64LCD 显示实验。该实验要求学生在 SOPC 系统下,掌握128*64LCD 的显示方法,可以显示文字、图形等。实验十二是基于 SOPC 技术的 20*2LC

28、D 显示实验。该实验要求学生在 SOPC 系统下,掌握SOPC 实验指导书20*2LCD 的显示方法,可以显示字符等。实验十三是基于 SOPC 的步进电机实验。该实验要求学生掌握 Nios II 处理器控制步进电机细分的方法,掌握通过底板总线方式控制步进电机的方法。实验十四是 SOPC/ARM/MCU 联机设计实验之 SOPC 部分。此部分是通过 A、B、C 总线将多功能数字实验系统的四个模块中的 SOPC/ARM/MCU 模块连接并通过串口进行通信,在此实验中,学生要熟悉 SOPC、MCU 及 ARM 的基础知识,了解数字信号处理的工作原理,运用 C 语言程序对信号进行处理编程,熟悉异步串行

29、通信的原理,进一步熟悉 NiosII 中的 UART 模块的使用,及串口通信的具体应用。以上实验均给出了验证无误的源代码,以供参考,并配套有详细的实验手册,初学者可以通过实验手册尽快掌握 SOPC 系统设计的基本方法,高级用户也可以将实验手册作为参考,基于本实验板进行 SOPC 系统的开发。第 2 章第 2 章 SOPC 基本概念与基本原理本章对 SOPC 技术应用所需要的基本概念进行讨论,提供了完成实验的基本理论基础。SOPC(System On Programmable Chip)即可编程的片上系统,或者说是基于大规模 FPGA 的单片系统。SOPC 的设计技术是现代计算机辅助设计技术、

30、EDA 技术和大规模集成电路技术高度发展的产物。SOPC 技术的目标就是试图将尽可能大而完整的电子系统,包括嵌入式处理器系统、接口系统、硬件协处理器或加速器系统、DSP 系统、数字通信系统、存储电路以及普通数字系统等,在单一的 FPGA 中实现,使得所设计的电路系统在其规模、可靠性、体积、功耗、功能、性能指标、上市周期、开发成本、产品维护及其硬件升级等多方面实现最优化。SOPC 技术是一门全新的综合性电子设计技术,涉及面广,本实验指导书只是将其最基础、最接近实际应用中的一小部分呈现给读者。2.1 SOPC 技术微电子技术近期发展的成果,为 SOC 的实现提供了多种途径。对于经过了验证而又具有批

31、量需求的系统芯片,可以做成专用集成电路 ASIC 而大量生产。而对于一些仅为小批量应用或处于开发阶段 SOC,若马上投入流片生产,需要较多的资金,承担较大的试制风险。那么,最近发展起来的SOPC 技术则提供了另一种有效的解决方案,即用大规模可编程器件的 FPGA 来实现 SOC 的功能。可编程逻辑器件产生于 20 世纪 70 年代。其出现的最初目的是为了用较少的 PLD 品种替代种类繁多的各式中小规模逻辑电路。在 30 多年的发展过程中,PLD 的结构、工艺、功耗、逻辑规模和工作速度等都得到了重大的进步。尤其是在 20 世纪 90 年代,出现了大规模集成度的 FPGA,单片的集成度由原来的数千

32、门,发展到数十万甚至数百万。芯片的 I/O 口也由数十个发展至上千个端口。有的制造商还推出了含有硬核嵌入式系统的 IP。因此,完全可能将一个电子系统集成到一片 FPGA中,即 SOPC,为 SOC 的实现提供了一种简单易行又成本低廉的开发手段,极大促进了 SOC 的发展。SOPC 是 Altera 公司提出的一种灵活、高效的片上系统设计方案。其实质是利用 FPGA 或 CPLD器件的可编程性来进行 SOC 设计。SOPC 其实也是一种特殊的嵌入式系统:首先它是片上系统,即由单个芯片完成整个系统的主要逻辑功能;其次,它是可编程系统,具有灵活的设计方式,可裁减、可扩充、可升级,具备软硬件在系统可编

33、程的能力。SOPC 技术是基于 FPGA 解决方案的 SOC,与 ASIC 的 SOC 解决方案相比,SOPC 系统及其开发技术具有更多的特色:至少包含一个嵌入式处理器内核。具有小容量片内高速 RAM 资源。丰富的 IP 核资源可供选择。足够的片上可编程逻辑资源。处理器调试接口和 FPGA 编程接口。可能包含部分可编程模拟电路。单芯片、低功耗、微封装。SOPC 设计技术涵盖了嵌入式系统设计技术的全部内容,除了以处理器和实时多任务操作系统(RTOS)为中心的软件设计技术、以 PCB 和信号完整性分析为基础的高速电路设计技术以外, SOPC还涉及目前引起普遍关注的软硬件协同设计技术。SOPC 实验

34、指导书以往的 SOC 设计依赖于固定的 ASIC。其设计方法通常采用全定制或半定制电路设计方法,设计完成后如果不能满足要求,需要重新设计再进行验证,其结果是导致设计开发周期变长,产品上市时间难以保证,开发费用大大增加。而当需要对原始设计进行修改时,固定的 ASIC 意味着昂贵的重复设计。与 ASIC 比较起来,可编程逻辑器件设计起来十分灵活、便捷,可以缩短上市时间,再加上可编程逻辑器件是按标准器件生产出来的,规模效应使得成本十分低廉,故在半导体领域中可编程逻辑器件呈现出增长态势,越来越多地成为系统级芯片设计的首选。SOPC 取代 ASIC 成为 SOC 设计的新趋势,除了上面讲的方便、低成本之

35、外,还得益于以下几点重要原因:1近年来可编程逻辑器件密度的提高,芯片规模的扩大和性能的提升为 SOPC 提供了物质基础。先进的 EDA 开发工具,如 AItera 公司的 QuartusII 以及 SOPC Builder 等,极大地提高了开发人员的工作效率。2知识产权得到重视,越来越多的设计人员以“设计重用”的方式对现有的 IP 核加以充分利用,从而提高他们的设计效率并缩短上市时间。3由于连接延迟时间的缩短,SOPC 可以提供强大的性能,而且由于封装体积的减小,产品尺寸也减小了。2.2 基于 FPGA 嵌入 IP 软核的 SOPC 系统随着半导体工艺的迅速发展,单个芯片上的逻辑门数显著增加,

36、同时 EDA 技术的推广和 VLSI设计的普及化,采用 SOC 技术可以把整个系统集成到一个芯片上。然而,在上市时间的压力下,必须要求缩短 SOC 产品的设计与生产时间。构成 SOPC 的方案也有多种途径,包括基于 FPGA 嵌入式 IP 硬核的 SOPC 系统、基于 FPGA 嵌入 IP 软核的 SOPC 系统和基于 Hard Copy 技术的 SOPC 系统等。本教学实验系统采用的是基于FPGA 嵌入 IP 软核的 SOPC 系统的解决方案。之所以选择 IP 软核是由于将 IP 硬核直接插入 FPGA 的解决方案存在以下几种不够完美之处:一、由于此类硬核多来自第三方公司,FPGA 厂商通常

37、无法直接控制其知识产权费用,从而导致 FPGA 器件价格相对偏高。二、由于硬核是预先植入的,设计者无法根据实际需要改变处理器的结构,如总线规模、接口方式,乃至指令形式,更不可能将 FPGA 逻辑资源构成的硬件模块以指令的形式形成内置嵌入式系统的硬件加速模块(如 DSP 模块) ,以适应更多的电路功能要求。三、无法根据实际设计需求在同一 FPGA 中使用多个处理器核。四、无法裁减处理器硬件资源以降低 FPGA 成本。五、只能在特定的 FPGA 中使用硬核嵌入式系统,如只能使用 Excalibur 系列 FPGA 中的 ARM核,Virtex-II Pro 系列中的 PowerPC 核。如果利用软

38、核嵌入式系统处理器就能有效地克服上述不利因素。目前最具有代表性的软核嵌入式系统处理器分别是 Altera 的 Nios 和 Nios II 核,及 Xilinx 的MicroBlaze 核。特别是前者,使上述五方面的问题都得到了很好的解决。Altera 公司的 Nios 核是用户可随意配置和构建的 32 位/16 位总线(用户可选)指令集和数据通道的嵌入式系统微处理器 IP 核,采用 Avalon 总线结构通信接口,带有增强的内存、调试和软件功第 2 章能(具有 C 或汇编程序优化开发功能) ;含有 First Silicon Solutions(FS2 )开发的基于 JTAG 的片内设备(O

39、CI)内核(这为开发者提供了强大的软硬件调试实时代码,OCI 调试功能可根据 FPGA的 JTAG 端口上接收的命令,直接监视和控制片内处理器的工作情况) 。此外,基于 Quartus II 平台的用户可编辑的 Nios 核含有许多可配置的接口模块核,包括:可配置高速缓存模块(包括由片内ESB、外部 SRAM 或 SDRAM、100MB 以上单周期访问速度) ,可配置 RS232 通信接口、SDRAM控制器、标准以太网协议接口、DMA、定时器、协处理器等。在植入(配置前)FPGA 前,用户可根据设计要求,利用 Quartus II 和 SOPC Builder,对 Nios 及其外围系统进行构

40、建,使该嵌入式系统在硬件结构、功能特点、资源占用等方面满足用户系统设计的要求。Nios 核在同一 FPGA 中被植入的数量没有限制,只要 FPGA 的资源允许。此外,Nios 可植入的 Altera FPGA 的系列几乎没有限制,在这方面,Nios 显然优于 Xilinx 的 MicroBlaze。另外,在开发工具的完备性方面、对常用的嵌入式操作系统支持方面,Nios 都优于MicroBlaze。就成本而言,由于 Nios 是由 Altera 直接推出而非第三方产品,故用户通常无需支付知识产权费用,Nios 的使用费仅仅是其占用的 FPGA 逻辑资源费。因此,选用的 FPGA 越便宜,则Nio

41、s 的使用费越便宜。为了形成对 ASIC 市场的直接竞争,Altera 推出了 Hard Copy 技术和 Hard Copy II 技术。Hard Copy 就是利用原有的 FPGA 开发工具,将成功实现 FPGA 器件上 SOPC 系统通过特定的技术直接向 ASIC 转化的功能,从而克服传统了 ASIC 设计中普遍存在的问题。如果利用 Hard Copy 技术设计 ASIC,开发软件费用低廉, SOC 级规模的设计周期不超过 20 周,转化的 ASIC 与用户设计习惯的掩模层只有两层,且一次性投片的成功率近乎 100%,即所谓的FPGA 向 ASIC 的无缝转化。而且用 ASIC 实现后的

42、系统性能将比原来在 Hard Copy FPGA 上的验证模型提高近 50%,而功耗则降低 40%。一次性成功率的大幅度提高即意味着设计成本的大幅降低和产品上市速度的大幅度提高。本教学实验系统采用的是 Nios II 嵌入式处理器 IP 软核,Nios II 是一个用户可配置的通用 RISC嵌入式处理器,下面引用了 Altera 公司关于 Nios II 的官方介绍:Altera 推出 Nios II 系列的嵌入式处理器扩展了目前世界上最流行的软核嵌入式处理器的性能,把 Nios II 嵌入到 Altera 的所有 FPGA 中,例如 Stratix II、Stratix、Cyclone II

43、, Cyclone、APEX, ACEX 和 Hard Copy 系列器件中,用户可以获得超过 200 DMIPS 的性能,用户可以从三种处理器以及超过 60 个的 IP 核中选择所需要的组件,Nios II 系统为用户提供了最基本的多功能性,设计师可以以此来创建一个最适合他们需求的嵌入式系统。Nios II 处理器的优点和特性 :使用 Nios II 处理器的用户可以根据他们的需要来调整嵌入式系统的特性、性能以及成本,快速将产品推向市场,延长产品的生命周期,并且避免处理器的更新换代。 一、提高系统性能 1. 一系列的处理器核可供选择,其中包括了超过 200 DMIPS 性能的核; 2. 实现

44、任何数量的处理器或将不同的处理器核组合在一起;3. 增加了已有的处理器,在 FPGA 中添加一个或更多的 Nios II 软核处理器。 二、更低的系统成本 1. 通过将处理器、外设、存储器和 I/O 接口集成到一个单一的 FPGA 中,从而降低了系统成本、复杂性和功耗; 2. 通过将 Nios II 处理器嵌入到低成本的 FPGA 中只需花费 35 美分或者更低。三、应对产品的生命周期 1. 提供易用的设计工具从而快速将产品推向市场;2. 提供永久的,免费的许可从而使基于 Nios II 处理器的产品避免了处理器的更新换代所带来的损失。 四、功能强大、易用的开发工具 1. 通过使用 Nios

45、II 集成开发环境( IDE) ,从而加速了软件的开发 SOPC 实验指导书2. 利用 Altera 的强大的 SOPC Builder 系统开发工具和 Quartus II 设计软件可以在短时间内设计一个系统 五、使用完全功能的开发包 1. 使用易用的 Nios II 开发包开始一个设计 2. 可以选择具有低成本特性的 Cyclone FPGA 开发套件,或高性能的 Stratix FPGA 开发套件简单说来,Nios 是一个处理器的 IP 核,系统设计者可以将它放入 FPGA 中,它只占芯片内部很少的一部分逻辑单元,成本很低。Nios 软核处理器是一个基于流水线的精简指令集通用微处理器。方

46、便设计者设计研发。2.3 SOPC 设计SOPC 是 Altera 公司提出的一种灵活、高效的片上系统设计方案。它的实质是 SOC 设计技术,它利用 FPGA 或 CPLD 器件的可编程性来进行 SOC 设计。SOPC Builder 是把所有和处理器子系统相关的底层详细资料集中到此。它考虑了两个方面:第一,具有直观的图形用户接口 GUI(Graphic User Interface) ,便于设计者准确地添加和配置系统所需的外设包括存储器、定制外设和 IP 模块。第二,自动完成系统集成工作,不必拘泥于定义存储器映射,中断控制和总线控制这样的“制造商工作” 。通过 GUI,用户可以从 Alter

47、a 提供的 IP 库中选取一些组件,如处理器、SDRAM,Flash.、各种I/O 口等,并可通过选择配置相应的参数。如果用户有特殊功能要求,但 IP 库中没有,则用户可以加入自定义的逻辑来实现。在选择并配置好系统所需的各种 IP 后,点击 GUI 中的“Generate”按钮就可以自动生成系统了。当用户点击“Generate”按钮时,SOPC Builder 会生成每个硬件部件以及连接的片内总线结构、仲裁和中断逻辑。SOPC Builder 也会产生系统可仿真的 RTL 描述,以及为特定硬件配置设计的测试平台,能够(可选)把硬件系统综合到单个网表中。拥有了这些合适的部件,硬件设计人员对自动硬

48、件生成过程基本满意,但是还需要满足软件设计者的要求。利用设计过程中采集的信息,SOPC Builder 能够生成 C 和汇编头文件,这些头文件定义了存储器映射、中断优先级和每个外设寄存器空间的数据结构。这样的自动生成过程帮助软件设计者处理硬件潜在的变化性。如果硬件改变了,SOPC Builder 会自动更新这些头文件。SOPC Builder 也会为系统中现有的每个外设生成定制的 C 和汇编函数库。例如,如果系统包括一个UART,然后 SOPC Builder 就会为访问 UART 的寄存器定义一个 C 结构,生成通过 UART 发送和接受数据的 C 和汇编例程。在 SOPC Builder

49、的 GUI 中,通过 Component Wizards 来选择系统所需的组件,然后生成组件,再由组件组成系统。其中,组件的信息来自 Class PTF 文件,Class PTF 包含 SOPC Builder 配置和生成部件所需的详细信息。在整个设计过程中,每一步都会于 System PTF 文件进行交互来交换组件及系统的信息,该文件是系统的配方,它定义了 SOPC Builder 生成完整系统必需的详细信息。在组件生成及系统生成过程中,会产生输出文件及相关的库,其中包括 HDL 文件、软件文件、模拟文件及用户自定义文件。在进行 SOPC 设计时,用户需要先通过 SOPC Builder 选择 IP 组件,然后用 SOPC Builder 产生所选择的系统组件的 VHDL 或者 Verilog 源文件。之后,用 Quartus II 编译整个系统。编译成功后,把编译文件下载到开发板上进行验证。第 3 章第 3 章 SOPC 设计开发实例3.1 Nios II 控制 LED 实验Nios II 开发分硬件开发和软件开发两个流程,硬件开发过程主要由用户定制系统硬件,然后由SOPC Builder 等工具完成系统硬件和对应的开发软件生成。Nios II IDE

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报