可编程片上系统设计 何宾 2012.02.

Slides:



Advertisements
Similar presentations
一、企业基本情况介绍 (一)企业简介 无锡市雷华科技有限公司成立于 2002 年 12 月,为中国航空工业集团公司雷华电子技术研 究所( 607 所)所属全资企业。公司位于美丽 的太湖之滨 -- 江苏无锡,公司北依江南名校 — 江南大学、长广溪湿地公园,南临商业文化中 心万达城。交通便利,距地铁口步行.
Advertisements

什么是SOPC: SOPC是英文System On a Programmable Chip的缩写,称为片上可编程系统。SOPC将传统的EDA技术、计算机系统、嵌入式系统、数字信号处理等融为一体,综合了各自的优势,且在结构上形成一块芯片。 为什么用SOPC:SOPC是现代电子技术和电子系统设计的发展趋势,建立了电子系统设计的新模式。用户利用SOPC开发平台,自行设计高速、高性能的DSP处理器、特定功能的CPU及其外围接口电路,创建结构最为简洁的电子系统。
SOPC技术 数字逻辑电路 主讲:刘昌华 嵌入式技术研究所
FPGA设计与应用 大连理工大学软件学院 王洁 2011年春季.
第一章 微型计算机系统概述 1.1 计算机的发展与应用 微型计算机的发展与分类 微型计算机的应用
第 2 章 中央處理單元.
第二部分 嵌入式硬件系统 第2章 嵌入式处理器 第3章 ARM内核与ARM处理器 第4章 嵌入式系统的外围设备.
基于s3c44B0X嵌入式uCLinux系统原理及应用
1.3.5嵌入PowerPC405微处理 器的FPGA设计流程
第二章 微型计算机系统 第一节 基本术语和基本概念 第二节 计算机系统的基本构成 第三节 微机系统的硬件组成 第四节 微机系统的软件组成.
微型计算机技术及应用 王 健 主讲 授课学时:40学时 大连理工大学计算机系.
大连理工大学软件学院 嵌入式系统工程系 赖晓晨
軍用電腦科技趨勢與產業應用 全科科技 陳以昌.
第一章 嵌入式系统概况 大连理工大学 马洪连.
門神 在傳統觀念中,門是居住環境中與外界相通的出入口,具有重要的屏障作用。門神顧名思義就是護宅守門的神仙,每逢過年,上至天子百官下至普通百姓,家家戶戶必在門上張貼門神,以保一家平安。 門神種類主要有宅第大門上將軍武門神、內室門戶上祈福文門神,還有童子門神、仙子門神等,形象豐富多樣,皇家貴戚還往往在畫上瀝粉貼金,十分吉祥喜慶。
組裝電腦DIY 前言:提供基礎的電腦零件組裝教學,對於個人電 腦零件有基本的認識、並有組裝零件使電腦能運 行的能力、能親手 升級自己想要的零件、及基 本的簡易判斷無法開機的原因;最後並提供實做,親手DIY將電腦組裝起來並安裝作業系統。 對象:對電腦組裝沒概念或一知半解者;想要能自己解決電腦無法開機,或是能自己升級想要的專屬電腦配備;可以當家庭的電腦醫生不想電腦一碰到問題就叫修花錢者;自己是電腦軟體方面的工作者,想要增加自己的競爭實力.
第2章 SOPC硬件开发环境及流程.
EDA技术 第9章 FPGA硬件设计.
第二章 微型计算机系统 2.1基本术语和基本概念 硬件与软件
第2章 FPGA/CPLD结构与应用.
第二章 计算机硬件基础 --微型计算机硬件的组成.
复习回顾 2.2 计算机硬件系统 2.1 计算机发展概述 1、芯片组的作用是什么? 1、计算机分为几代?主要元器件是什么?
嵌入式系统应用 概述 随着现代物流业仓储、超市等行业的快速发展,物品流动的速度越来越快,仓储库存周期也越来越短。这样物流仓储盘点行业的压力也越来越大,传统的人工盘点方式已经不能适应现代物流的发展。为了解决这一问题,国际上一些物流先进国家已经采用专业的盘点设备——盘点机,用于物流盘点。 我们选取了一个十分典型的国产盘点机进行介绍。其微处理器选型是采用韩国三星公司生产的S3C2410微处理器,操作系统采用了Windows.
第六章 科学观察与科学实验.
所有培训资料均可从网站 何宾 Tel: 版权所有,禁止未经授权的商业使用行为 何宾 Tel: 所有培训资料均可从网站
电 子 信 息 工 程 系 热 烈 欢 迎 来自全国各地的新同学!.
2.4 微型计算机硬件系统 主机系统 1. 微型计算机的诞生
FPGA可配置应用平台给工业产品带来的设计便利
單晶片原理與應用 魏兆煌 整理 南台科技大學 電機系 Sep
第1章 FPGA概述 1.1 FPGA的发展历程 1.2 FPGA的基本原理 1.3 FPGA的设计方法 1.4 FPGA的设计流程
第四章 BootLoader开发 附-s3c2410/s3c2440处理器介绍
所有培训资料均可从网站 何宾 Tel: 版权所有,禁止未经授权的商业使用行为 何宾 Tel: 所有培训资料均可从网站
水煮FPGA 传统FPGA设计流程简介.
第一章 嵌入式系统开发基础 本章介绍了嵌入式系统开发的基础知识,从嵌入式计算机的历史由来、嵌入式系统的定义、嵌入式系统的基本特点、嵌入式系统的分类及应用、嵌入式系统软硬件各部分组成、嵌入式系统的开发流程、嵌入式技术的发展趋势等方面进行了介绍,涉及到嵌入式系统开发的基本内容,使读者系统地建立起的嵌入式系统整体概念。
電腦硬體基本介紹 國立高雄大學資訊工程學系 林士倫 2010/10/21.
所有培训资料均可从网站 何宾 Tel: 版权所有,禁止未经授权的商业使用行为 何宾 Tel: 所有培训资料均可从网站
第8章 现代微型计算机 x86系列微处理器 8.2 微型计算机体系结构 8.3 存储管理技术 8.4 多任务管理与I/O管理
Chapter 06 Design Implementation Part I
第5章 中央處理單元與主記憶體 5-1 中央處理單元-CPU 5-2 主記憶體.
基本硬體介紹 1.主機板 2.CPU(運算中心) 3.記憶體(RAM-短暫記憶資料處) 4. 硬碟(HDD儲存資料處) 5.顯示卡(接螢幕)
二、计算机基本硬件介绍及选购 By:查宇
NI myRIO 学生嵌入式系统设计平台简介.
NPI-NPP:CCG1:带有PD的USB Type-C型端口控制器 新产品简介
FIFO 与 UPP 本节我们结合UPP接口给大家介绍一下FIFO在实际工程中的使用。 广州创龙电子科技有限公司 01 51ele.net
软硬兼施 少年老成 ——2014全国大学生电子设计竞赛信息安全专题邀请赛TI组典型作品简析
浅谈基于FPGA的电路设计 报告人:吴爱平 2005/11/13
版权所有,禁止未经授权的商业使用行为 何宾 Tel: 北京中教仪装备技术有限公司.
“互联网+FPGA” 未来计算实验室 --让FPGA使用更简单、更便利、更便宜 FPGA 在线实验.
EDA技术实用教程 第1章 概 述.
可编程逻辑器件及ASIC简介.
C H A P T E R 8 体系结构对系统开发的支持.
嵌入式系统设计与开发 第1章 概述 第2章 ARM及其编程模型 第3章 ARM指令集 第4章 嵌入式程序设计
嵌入式系统教案 武汉创维特信息技术有限公司 2018/11/27.
Block diagram BB —逻辑 —音频 —电源管理 HW interface. Block diagram BB —逻辑 —音频 —电源管理 HW interface.
《手把手教你学STM32》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司 淘宝店铺:
可编程器件与电子设计自动化 上海交通大学电工及电子技术实验中心 一九九九年三月.
EDA 原理及应用 何宾
第2章 電腦硬體的架構及功能.
基于NIM机箱的地下暗物质实验电子学系统研制
APEX 20K 用于系统集成的嵌入式 PLD 系列 © 1998 Altera Corporation 1
本章小结: 可编程逻辑器件(Programmable Logic Device,简称为 PLD)是目前数字系统设计的主要硬件基础。现场可编程门阵列 FPGA(Field Programmable Gate Array)现场可编程门阵列FPGA在结构上由逻辑功能块排列为阵列,功能由逻辑结构的配置数据决定,配置数据可以存放在片外的EPROM或其他存储体上,人们可以控制加载过程,在现场修改器件的逻辑功能。
第4章 输入输出设备介绍及选购 4.1 显卡 4.2 显示器 4.3 键盘 4.4 鼠标.
EDA 第二章 可编程逻辑器件.
第2章 计算机基本硬件介绍及选购 2.1 主板 2.2 中央处理器CPU 2.3 内存.
第1章 概述 1.1 DSP实现方案及设计流程 1.2 现代DSP设计流程概述 1.3 两类DSP解决方案的比较.
嵌入式系统教案 武汉创维特信息技术有限公司 2019/4/18.
第一章 概 述.
電腦相關新技術規格
入门实验 LED实验.
ARM裸机第一部分-ARM那些你得知道的事
Presentation transcript:

可编程片上系统设计 何宾 2012.02

内容概述 本章主要对片上可编程系统设计技术进行了简要的 介绍: 在片上可编程系统概述部分介绍了软核和硬核处理 器,以及片上可编程系统的发展背景和片上可编程系 统技术的特点; 在片上可编程系统设计方法部分介绍了片上可编程 系统设计流程、通用片上可编程系统优化技术和专用 片上可编程系统优化技术; 在片上可编程系统芯片部分介绍了Xilinx公司支持 片上可编程系统设计的主要芯片的种类和性能。

可编程片上系统设计 基于现场可编程门阵列(Field Programmable Gate Array, FPGA)的SOPC(System-on-a-chip),包含嵌入 式的软核或硬核处理器、存储器和硬件加速器。SOPC的 出现为设计者提供了设计高性能嵌入式系统和优化系统 的条件。

可编程片上系统设计 -软核及硬核处理器 Xilinx提供了将物理的处理其核集成到FPGA硅片上的硬核 处理器产品。   SOPC嵌入式处理器分为软核和硬核处理器两类。 Xilinx提供了将物理的处理其核集成到FPGA硅片上的硬核 处理器产品。 一个处理器使用专门的硅片实现称为硬核处理器, 比如: 1)Xilinx将PowerPC硬核集成到Virtex-II Pro到Virtex- 5系列的FPGA芯片中。 2)ARM Cortex-A9硬核集成到Zynq系列的FPGA芯片 中。 软核处理器是通过使用FPGA的通用逻辑实现的。软核 处理器通过HDL语言或网表进行描述的。软核处理器必须 进行综合才能使用。

在基于软核和硬核处理器的SOPC系统中,本地存储 可编程片上系统设计 -软核及硬核处理器 在基于软核和硬核处理器的SOPC系统中,本地存储 器、处理器总线、内部外设、外设控制器和存储器控制器 必须使用FPGA的通用逻辑实现。 下面给出Xilinx公司的软核和硬核处理器的性能。

可编程片上系统设计 -可编程片上系统技术的发展 由于持续的要求嵌入式系统具有更多的功能、更好的 性能和灵活性,因此传统上的设计方法已经不适应这种要 求。当设计人员试图通过高性能的嵌入式处理器得到更高 的性能时,遇到了吞吐量和性能方面的限制,而这种限制 源于系统和结构的瓶颈,以及存储器带宽的限制。 现在解决问题的方法是“专用”,即对某个嵌入式系统 的应用使用专门的解决方法。比如,数字信号处理器DSP 用于解决某一类专门的数字信号处理。对于一些高容量的 应用,设计人员可能还需要专门开发ASIC芯片。

可编程片上系统设计 -可编程片上系统技术的发展 现在FPGA广泛地应用在各个领域中。因此,很多 FPGA厂商将专用的嵌入式处理器Power、ARM等嵌入到 了FPGA芯片中。这种集成了嵌入式处理器的FPGA芯片被 定义成FPGA的平台。这种基于FPGA的嵌入式平台提供了 一个灵活的解决方案。 在这个解决方案中,一个单FPGA芯片上提供了大量 不同的IP软核和硬核资源。这些固件和硬件可以在任何时 间进行升级。这种可编程的结构特点,大大缩短了系统的 开发时间,而同一平台能应用在很多领域,提高了平台的 资源复用率。

可编程片上系统设计 -可编程片上系统技术的发展 这种结构同时还使设计人员可以优化系统吞吐量和开 发周期,提供前所未有的软件和硬件协同设计的灵活性, 这种灵活性主要体现在设计人员能够权衡软件和硬件设计 的实现方法。 这种协同性不同于传统的嵌入式系统的协同设计,虽 然以前也使用软件和硬件的协同设计,但是在实现级别上 基本上还是使用大量的分离的设计流程。比如,硬件设计 人员制定硬件设计规范,软件设计人员制定软件设计规 范。 这样就导致对问题截然不同的理解,而且对设计团队提 出了很高的要求。

可编程片上系统设计 -可编程片上系统技术的发展 更进一步的说,FPGA平台,即SOPC集成了传统的软 核和硬核处理器、片上总线、大量不同的I/O设备和借口 标准、定制的硬件加速处理器,以及混合的定制的总线或 点对点的拓扑结构,以提高系统的性能。

可编程片上系统设计 -可编程片上系统技术的发展 在SOPC的层次上,FPGA的应用领域已经大大扩宽 了,它不再是传统意义上用于连接不同接口设备的“连接 逻辑”。由于FPGA的容量和性能不断提高,因此它就逐步 地变成嵌入式系统的中心。 FPGA容量不断提高,已经将嵌入式处理器和大量I/O 集成在FPGA芯片内。当FPGA发展到SOPC的阶段后,设 计的复杂度也不断的提高,硬件和软件设计在FPGA平台 上都显得十分重要。而且由于FPGA集成了片上总线和存 储器,因此也需要系统设计和系统结构方面的经验。

可编程片上系统设计 -可编程片上系统技术的发展 在SOPC阶段,设计已经从以硬件描述语言HDL为中心 的硬件设计,转换到了以C语言进行功能描述为中心。所 以就形成了以C语言描述SOPC的功能,而用HDL语言描 述硬件的具体实现方法。这也是和传统的FPGA设计和嵌 入式系统设计最大的区别,即软件和硬件的真正的协同设 计。

可编程片上系统设计 -可编程片上系统技术特点 作为新的嵌入式系统的设计平台,使用SOPC进行嵌 入式系统设计具有以下几个方面的优点: 1、定制 基于FPGA的嵌入式系统的设计人员可以很灵活地选 择所要连接的外设和控制器。因此,设计人员可以设计出 一个独一无二的外设,这个外设可以直接和总线连接。对 于一些非标准的外设,设计人员很容易的使用FPGA嵌入 式平台实现。比如,设计人员很容易的在FPGA平台上设 计出具有10个UART接口的嵌入式系统。因此,在FPGA 系统中,向这样类似的配置是很容易实现的。

可编程片上系统设计 -可编程片上系统技术特点 2、延缓过时 一些公司,特别是为军方提供产品的那些公司,它们 产品的供货周期常常比标准电子产品的周期要长。电子元 器件的过时(停产)是一个非常严重的问题,会导致这些 公司无法继续提供其产品。由于软核处理器的HDL源代码 可以通过购买得到,因此基于FPGA的软核处理器是一个 非常好的解决方案,它可以充分的满足产品长期供货的要 求。

可编程片上系统设计 -可编程片上系统技术特点 3、降低元件成本 由于基于FPGA平台的嵌入式系统的功能多样性,以前 需要用很多元件才能实现的系统,现在可以使用一个 FPGA芯片实现。比如,辅助I/O芯片或协处理器与现有的 处理器之间的连接。减少在设计中所使用的元件的数量, 不但可以降低元件的成本,而且可以大大缩小电路板的尺 寸。

可编程片上系统设计 -可编程片上系统技术特点 4、硬件加速 选择基于FPGA的SOPC的一个重要的原因就是,SOPC 能在硬件和软件之间进行权衡,使嵌入式系统达到最大的 效率和性能。比如,当算法是嵌入式系统软件性能的瓶颈 时,一个使用FPGA定制的协处理器引擎能用来实现算 法,这个协处理器通过专用的,低延迟的通道与嵌入式处 理器连接。使用现代的硬件设计工具,很容易的将软件瓶 颈转向硬件处理。

可编程片上系统设计 -可编程片上系统技术特点 SOPC的出现给嵌入式系统设计带来了非常多的优点, 但是由于采用基于FPGA的嵌入式平台,这个平台集成了 软件和硬件的平台设计工具,因此设计比较复杂。 FPGA的嵌入式的软件设计工具比标准的传统的嵌入式 系统的软件设计要新,软件设计工具相对来说还不成熟。 但是随着SOPC技术的进一步发展,这个问题将会解决。 芯片的成本也是一个问题,采用专用的嵌入式平台比 采用基于FPGA的嵌入式平台成本要低,但是随着制造工 艺的不断更新和SOPC芯片的成本的降低,相信在不久的 将来,SOPC成本甚至还会低于采用专用的嵌入式平台。

可编程片上系统设计 -可编程片上系统设计与优化技术 SOPC设计技术不同于传统的嵌入式系统设计流程和设 计方法,其设计是软件和硬件的协同设计,同时又是基于 软件为中心的设计技术。下面首先介绍Xilinx的SOPC设计 流程,然后介绍以软件为中心的SOPC设计技术。

可编程片上系统设计与优化技术 -可编程片上系统设计技术 正如前面所说,基于SOPC的嵌入式系统的设计需要 软件和硬件的协同设计。下面给出Xilinx公司使用嵌入式 开发套件(Embedded Design Kit, EDK)进行嵌入式系统设 计的流程。 Xilinx公司的EDK工具包用于开发基于FPGA平台的嵌 入式系统,从图可以看出该工具支持传统的硬件和嵌入式 软件的设计流程。

-可编程片上系统设计技术 --可编程片上系统设计流程

-可编程片上系统设计技术 --可编程片上系统设计流程 EDK支持硬核PowerPC和软核Microblaze处理器(未 来增加对ARM处理器的支持)。并将设计的导入、创建 和IP核定制进行了流水化的处理。由于EDK知道平台 FPGA的硅片属性和选项,能自动的为其外设生成软件驱 动、测试代码和创建板级支持包BSP(Board Support Package)。这些BSP是常用的实时操作系统RTOS(Real- Time Operating System),比如VxWorks和嵌入式Linux提 供的设备驱动。

-可编程片上系统设计技术 --可编程片上系统设计流程 EDK的设计流程就是一个软件和硬件协同处理和设计 的过程。软件流程完成C语言代码的编写、编译和链接的 过程。硬件流程完成HDL设计输入、综合、仿真和实现的 过程。XPS提供了一个Data2MEM工具,该工具能将C语 言生成的ELF(Executable and Linkable Format)文件代码 插入到生成后的FPGA的比特流文件中,将其生成能够下 载到FPGA中,并能启动的映像文件。通过这个过程设计 人员能够使软件开发和调试进行实时处理,而不需要额外 的时间开销。

-可编程片上系统设计技术 --可编程片上系统设计流程 Xilinx的JTAG连接技术,完成FPGA的下载、FPGA的 调试、C代码的下载和软件的调试。 XPS集成了软件和硬件调试工具,使它们之间可以相 互触发,这使得嵌入式系统内部变成“可见”,使嵌入式 设计者能很快地找到和发现问题,而无需知道这个问题 是软件还是硬件产生的。

-可编程片上系统设计技术 --基于软件的设计方法 SOPC设计中,一个好的开发工具提供对目标平台合 理的抽象,而这个抽象对设计人员来说是比较容易理解 的。 硬件抽象使得软件开发人员不需要从应用程序的开发 转向真实的硬件实现,事实上对于软件人员来说这也是不 可能的事情。但是软件开发人员在设计程序的时候开始将 并发性和基于消息驱动的硬件概念融入到程序设计中。

-可编程片上系统设计技术 --基于软件的设计方法 这个抽象允许软件设计人员创建、测试和调试应用 程序,同时促进开发人员使用程序设计方法使得目标系 统达到最大的性能。同时,好的开发工具还提供了将原 始的高级描述转换成优化过的低级的目标系统可加载和 执行的代码。

-可编程片上系统设计技术 --基于软件的设计方法 为了达到这两个要求,为自动的基于FPGA平台的硬件 生成工具主要目的是自动编译和优化问题,提出编程的 抽象模型、编程的方法。这些工具目的就是建立面向软 件的设计经验。

-可编程片上系统设计技术 --基于软件的设计方法 面向软件的编程、仿真和调试工具提供了对FPGA平台 的合理的抽象,允许系统设计人员在原型设计阶段,开始 应用的开发、实验,而不需要专门的硬件知识,这一点对 于原型设计阶段是非常重要的。如图1.2所示,通过使用 软件到硬件的设计方法和工具,传统的软件和硬件设计流 程能极大的得到改善。但是并不是说不需要硬件的技巧。 事实上,一个完整的和优化过的系统中只使用软件知识是 不可能实现的。通过软件和硬件设计技巧和使用现代设计 工具就能很快地建立工作原型。

-可编程片上系统设计技术 --基于软件的设计方法

-可编程片上系统设计技术 --基于软件的设计方法 面向软件的设计流程一个非常重要的特点就是在最合 理的平台资源中使用软件来描述设计规范。如果最合适的 平台资源是微处理器,那么事情就比较简单,只需要针对 这个处理器进行交叉编译(交叉编译就是在一个平台上生 成另一个平台上的可执行代码),但是如果是FPGA的 话,传统的设计流程要求用HDL语言重新书写RTL级的描 述,那是一件既耗时,又容易出现设计错误的事情。但是 使用面向软件的设计流程,只需要对最初的设计语言进行 简单的一些修改,而不需要关心目标系统的资源。

-可编程片上系统设计与优化技术 --通用的可编程片上系统优化技术 基于SOPC的嵌入式系统设计中,一个非常重要的问 题是优化问题。 虽然表1.1给出的SOPC的性能指标很高,但是设计者 往往发现很难达到表中的指标。这是由于设计人员没有很 好的使用基于FPGA嵌入式处理器的性能扩展技术。 FPGA的生产厂商会采用一切方法和手段使芯片的性能 达到预期的性能和指标,而对于熟悉标准微处理器性能优 化技术的设计人员来说必须熟悉针对FPGA嵌入式处理器 的优化技术,这样才能使他们设计出来的FPGA嵌入式系 统的性能指标达到FPGA厂商的设计指标。

-可编程片上系统设计与优化技术 --通用的可编程片上系统优化技术 FPGA嵌入式处理器设计比较复杂,复杂程度甚至使那 些有经验的设计人员在某些情况下都无能为力,因此为了 获得FPGA平台的优势必须进行权衡。下面给出一些在设 计FPGA的SOPC嵌入式系统时,会使用到的一些优化技 术。 这些优化技术并不是SOPC设计中特有的技术,而这些 技术在传统的嵌入式系统的设计中已经使用了这些技术。

-可编程片上系统设计与优化技术 --通用的可编程片上系统优化技术 1. 代码控制 一些可以使用的优化技术影响应用程序代码。一些技 术影响代码如何编写,而一些技术影响编译器如何处理代 码。

-可编程片上系统设计与优化技术 --通用的可编程片上系统优化技术 1、优化级别 在Xilinx的XPS中的GCC编译器中可以选择编译的优化 级别。编译器的优化级别有0、1、2、3和代码长度优化 共五级优化。下面给出这四种优化级别的说明。 0级优化:不进行任何优化操作。 1级优化:执行跳转(JUMP)和出栈(POP)优化。 2级优化:这一级优化执行几乎所有的优化操作,但是 不包括速度和空间的权衡,所以可执行代码的长度不会增 加。编译器不执行循环的解开操作,函数嵌入和严格的别 名优化操作。这是对程序配置的标准优化操作。

-可编程片上系统设计与优化技术 --通用的可编程片上系统优化技术 3级优化:最高级优化。这级优化增加了更多的可选 项,其中包括增加代码尺寸。在一些情况下,3级优化后 的代码效率比第2级优化后的代码效率要低,所以要谨慎 使用第3级优化。 长度:长度优化。优化目标是产生较小的代码长度。

-可编程片上系统设计与优化技术 --通用的可编程片上系统优化技术 2、使用FPGA厂商的优化指令 Xilinx提供了一些为Xilinx的嵌入式处理器定制的指 令。比如:xil_printf。这个函数功能和printf基本是一样 的,但是存在下面的一些不同之处:不支持实数类型,不 支持64位。由于这些改动使xil_printf函数只有2953个字 节,比printf的函数的代码长度(51788字节)要小得多。

-可编程片上系统设计与优化技术 --通用的可编程片上系统优化技术 3、汇编 在GCC编译器中支持嵌入的汇编。对于任何处理器来 说,在一些对时间要求比较苛刻的应用场合,汇编语言是 非常有用的。在一些编译器中,如果在文件中使用了汇编 语言,编译器是不会优化剩余的C代码的。

-可编程片上系统设计与优化技术 --通用的可编程片上系统优化技术 4、混杂 当优化FPGA嵌入式处理器时,一些与代码相关的优 化也被考虑在其中,主要包括:参考位置、代码分析、 变量的定义、小数据区的使用策略、明智的使用函数调 用减少入栈和出栈帧、循环长度等。

-可编程片上系统设计与优化技术 --通用的可编程片上系统优化技术 2. 存储器的使用 处理器提供访问快速的本地存储器的能力,以及与 慢速的二级存储器的接口。FPGA的嵌入式处理器也提 供了这样的功能。 使用存储器的方法对系统性能会产生重要的影响。其 它处理器那样,在FPGA内的嵌入式处理器对存储器的 使用可以通过一个链接脚本进行操作。

-可编程片上系统设计与优化技术 --通用的可编程片上系统优化技术 1、只用本地存储器 最快的存储器的选择是将所有的代码放在本地存储器 中。Xilinx的本地存储器由大容量的块RAM(BRAM)组 成。嵌入式处理器以单总线周期访问BRAM。由于在 MicroBlaze构成的嵌入式系统中,处理器和存储器运行在 相同的时钟频率,存放在BRAM中的指令能够以处理器的 频率执行。 在MicroBlaze系统中,BRAM本质上的性能和L1高速缓 存的性能一样。在PowerPC的嵌入时系统中,处理器运行 频率比总线要高,并且存在L1高速缓存,因此BRAM的性 能与L2高速缓存的性能一致。在Xilinx的FPGA中,BRAM 的性能是不一样的。

-可编程片上系统设计与优化技术 --通用的可编程片上系统优化技术 2、只用外部存储器 如果将所有程序放在外部存储器中,将使系统的性能降 到最低。Xilinx提供了与外部不同存储器的接口。这些存 储器接口与处理器的外设总线连接。Xilinx的存储器控制 器支持三种易失性存储器SRAM、SDRAM和DDR SDRAM。在FPGA内的SRAM控制器结构是最简单和最小 的,但SRAM是三种存储器中最贵的。FPGA内的DDR控 制器结构是最复杂和最大的,但是所需要的FPGA引脚是 非常少的,每兆字节的DDR存储器成本是最低的。

-可编程片上系统设计与优化技术 --通用的可编程片上系统优化技术 此外,对外部存储器的访问存在时间延迟。在 MicroBlaze中,存储器控制器与OPB(On-chip Peripheral) 总线相连。比如,OPB总线的SDRAM控制器需要4-6个时 钟的写操作延迟,8-10个时钟周期的读操作延迟。

-可编程片上系统设计与优化技术 --通用的可编程片上系统优化技术 3、高速缓存 在建有PowerPC处理器的FPGA硅片上建立了的指令和 数据高速缓存。使其对处理器总保持性能优势。而在 MicroBlaze处理器没有专门在硅片上建立指令和数据高速 缓存。对于MicroBlaze处理器来说,高速缓存是可配置的 选项。当需要高速缓存时,使用BRAM建立高速缓存。与 本地存储器相比,由于高速缓存需要在BRAM中保存地址 映射机构,因此高速缓存会使用更多的BRAM资源。

-可编程片上系统设计与优化技术 --通用的可编程片上系统优化技术 此外,使能高速缓存还会消耗通用逻辑资源用来建立高 速缓存控制器。比如在Spartan-3中建立8KB的数据高速缓 存和32M的外部存储器被缓存,将需要12位的地址标记, 使用124个逻辑单元和6个BRAM资源。而建立8KB的本地 存储器只需要4个BRAM资源。多出的2个BRAM用于保存 地址标记。

-可编程片上系统设计与优化技术 --通用的可编程片上系统优化技术 此外,当使能高速缓存后,系统地最高频率也会降低。 比如,一个没有高速缓存的系统工作频率可以达到 75MHz,如果使用高速缓存,工作频率只有60MHz。使能 高速缓存控制其将增加逻辑和设计复杂度,在布局和布线 时,将降低系统频率。所以在软核处理器中使用高速缓存 会降低整个系统的性能。

-可编程片上系统设计与优化技术 --通用的可编程片上系统优化技术 经过谨慎的考虑,在低系统工作频率下使能指令高速 缓存将其高系统性能。比如,60MHz的系统使用指令高速 缓存比75MHz不使用高速缓存的系统,带来150%的性能 提高。当数据和指令高速缓存全部使用时,将带来308% 的性能提高。

-可编程片上系统设计与优化技术 --通用的可编程片上系统优化技术 4、分配代码到内部存储器、外部存储器和高速缓存中 正如前面所提到的只有把所有代码放到本地存储器中, 才能提供最好的性能。由于程序经常会超出本地存储器可 使用的容量,所以实际上是不可能将所有代码存放在本地 存储器中的。而另一方面,从外部存储器运行程序会有很 大的时间延迟。在PowerPC系统中,使用高速缓存是一个 非常好的选择。在MicroBlaze对外部存储器使用高速缓存 会改善结果,但是采用其它方法可以提供更优化的结果。

-可编程片上系统设计与优化技术 --通用的可编程片上系统优化技术 在MicroBlaze系统中,最好的方法是合理的分配程序 代码,使系统的频率和本地存储器容量达到最大。关键 指令、数据和堆栈放在本地存储器中。不要使用数据高 速缓存。如果本地存储器不能保存所有的指令,那么就 要考虑使用指令高速缓存用于在外部存储器中保存指 令。

专用的可编程片上系统优化技术 --提高FPGA工作频率 1、逻辑优化 如果设计中没有在外部存储器中保存和运行指令,那么 就不要连接指令一侧的外设总线。将处理器的指令和数据 一侧连接到一个总线上会产生一个多主系统,在这样的系 统中要求仲裁器。在总线上只存在一个主设备将优化系统 性能。

专用的可编程片上系统优化技术 --提高FPGA工作频率 已经全部调试后,要从系统中去除这些调试逻辑,这样可 以提高系统的性能。比如,去除FSL加速通道上的MDM (MicroBlaze Debug Module)模块将节省950个逻辑单元。 在MicroBlaze中使能高速缓存,调试逻辑作为关键路径将 降低系统地工作频率。

专用的可编程片上系统优化技术 --提高FPGA工作频率 用于连接外部SRAM和Flash存储器的OPB外部存储器控 制器,产生32位地址线(即使这些地址不会完全使用)。 Xilinx提供了总线裁减外设的功能,用于删除不需要的地 址位。这样就会减少布线和引脚。 Xilinx提供了一些GPIO外设。GPIO提供了双通道、双 向功能和中断能力。这些功能需要更多的资源,会影响时 序。如果设计中只使用简单的GPIO,那么就使用GPIO最 基本的版本,或者关闭那些没有使用的功能。

--专用的可编程片上系统优化技术 ---面积和时序约束 当设计者给出布局和布线导向时,Xilinx的布局和布线 工具将能更好的工作。在Xilinx工具中,设计人员指定期 望的工作频率、引脚位置和逻辑元素的位置。通过提供这 些详细的信息,设计工具将能自动的、更好的在硬件设计 实现上进行权衡。 一些外设可能需要其它约束,用来保证其操作的正确 性。比如,DDR SDRAM控制器和10/100以太网控制器。 设计人员在使用时,必须认真地阅读相关外设的数据手 册,并遵循推荐的设计规则。

--专用的可编程片上系统优化技术 -硬件加速 1、使用硬件除法器和桶型移位寄存器 MicroBlaze能定制使用硬件除法器和桶型移位寄存器, 而不需要使用软件实现这些功能。使能这些处理器的功能 会消耗额外的逻辑资源,但是能提高系统性能。比如,使 能硬件除法器和桶型移位寄存器会额外使用414个逻辑单 元,但是会使性能提高18.1%。

--专用的可编程片上系统优化技术 -硬件加速 2、软件瓶颈转换为硬件处理 定制的硬件逻辑可以减轻FPGA嵌入式处理器的负担。 当遇到软件瓶颈时,设计人员可以使用定制的硬件实现这 些算法。定制的软件指令可以操作硬件协处理器。 MicroBlaze和PowerPC存在访问处理器的低延迟访问 点,因此可以很好的将定制的处理器硬件和嵌入式处理器 连接。Virtex-4中为PowerPC增加了APU(Auxiliary Processing Unit)单元,使得协处理器可以和嵌入式处理 器直接连接。在MicroBlaze中提供了低延迟的FSL(Fast Simplex Link)总线。FSL总线包含大量的专用的、单向的 32位通道。由于这些通道时专用的,因此不需要进行总线 仲裁机构。

--专用的可编程片上系统优化技术 -硬件加速 将软件瓶颈转换为硬件处理看上去是一件比较困难的事 情。传统上,当软件设计人员发现瓶颈后,让硬件设计人 员编写HDL代码建立协处理器。但是,这个过程可以简 化,因为可以使用工具将C语言转化为FPGA硬件。这样 一个工具就是CoDeveloper。这个工具使熟悉C语言的设计 人员,通过使用CoDeveloper的C语言库生成一个定制的 FPGA协处理单元。可以使用硬件协处理的算法有:DCT 变换、FFT变换、MP3解码器、DES和AES、矩阵等。通 过使用硬件协处理,可以使性能提高数十倍或数百倍。

Xilinx可编程片上系统芯片 适合进行SOPC设计的FPGA芯片低端产品有Spartan系 列,高端产品有Virtex系列。 Spartan系列FPGA可以使用MicroBlaze软核处理器设计 SOPC,Virtex系列FPGA可以使用PowerPC硬核处理器设 计SOPC。 MicroBlaze软核处理器均可在Xilinx的高端和低端 FPGA芯片上使用。Spartan系列的FPGA平台用于SOPC设 计主要使用Spantan-3系列。Virtex系列的FPGA平台用于 SOPC设计主要使用Virtex-II pro,Virtex-V,Virtex-VI系 列。下面给出了主要的SOPC设计平台。设计人员可以根 据这些FPGA平台的不同性能,在设计SOPC进行选择,以 达到所需要的设计要求。

Xilinx可编程片上系统芯片 - Spartan-3系列FPGA Spartan-3基于Virtex-II FPGA架构,采用90 nm技术,8 层金属工艺,系统门数超过5百万,内嵌了硬核乘法器和 数字时钟管理模块。从结构上看,Spartan-3将逻辑、存储 器、数学运算、数字处理器处理器、I/O以及系统管理资 源完美地结合在一起,使之有更高层次、更广泛的应用。 Spartan-3系列FPGA主要特性如下:

Xilinx可编程片上系统芯片 - Spartan-3系列FPGA 1)采用90nm 工艺,密度高达74880逻辑单元; 2)最高系统时钟为340MHz; 3)具有专用乘法器; 4)核电压为1.2V,端口电压为3.3V、2.5V、 1.2V,支持24种\I/O标准; 5)高达520k分布式RAM和1872k的块RAM; 6)具有片上时钟管理模块(DCM); 7)具有嵌入式Xtrema DSP功能,每秒可执行3300 亿次乘加。

Xilinx可编程片上系统芯片 - Spartan-6系列FPGA Spartan-6系列的FPGA是Xilinx公司于2009年推 出的最新一代的FPGA芯片,该系列的芯片功耗低, 容量大。逻辑单元的容量为3,400-148,000,但功耗 只有以前Spartan芯片的一半,并且有更快的,更复 杂的连接性能。该系列芯片基于45nm的铜处理技术 工艺。该系列的芯片提供了6输入的查找表逻辑。 spartan-6芯片的特点主要包括:

Xilinx可编程片上系统芯片 - Spartan-6系列FPGA (1) 18KB的RBAM; (2) 第二代的DSP48A1 Slice; (3) SDRAM控制器; (4) 扩展的混合模式的时钟管理模块; (5) SelectIO技术,功耗优化的高速串行接收发送器 模块; (6) PCI-E端点模块; (7) 高级的系统级功耗管理模式; (8) 自动检测配置选项; (9) 使用ASE和DNA保护的扩展的IP安全性。

Xilinx可编程片上系统芯片 - Virtex-4 系列FPGA Xilinx 的 Virtex-4 系列将高级硅片组合模块 (ASMBL™) 架构与种类繁多的灵活功能相结合,大大 提高了可编程逻辑设计能力,从而成为替代 ASIC 技术的 强有力产品。 Virtex-4系列FPGA主要有三个系列 - LX/SX/FX的产品。 Virtex-4 LX用于高性能逻辑应用解决方案。Virtex-4 SX用 于高性能数字信号处理 (DSP) 应用解决方案。Virtex-4 FX 用于高性能全功能嵌入式平台应用解决方案。Virtex-4系 列FPGA采用了下面的技术: 1)Xesium™ 时钟技术,包括:数字时钟管理器 (DCM) 块;附加的相位匹配时钟分频器 (PMCD);差分全 局时钟

Xilinx可编程片上系统芯片 - Virtex-4 系列FPGA 2)XtremeDSP™ Slice技术,包括:18 x 18 位带补数 功能的有符号乘法器;可选流水线级数;内置累加器(48 位)和加法器/ 减法器; 3)Smart RAM 存储器层级技术,包括:分布式 RAM;双端口 18 Kb RAM 块;可选流水线级数;可选的 可编程 FIFO 逻辑将 RAM 信号自动再映射为FIFO 信号; 高速存储器接口支持 DDR SDRAM、DDR-2 SDRAM、 QDR-II 和 RLDRAM-II; 4)SelectIO™ 技术,包括:1.5V 到 3.3V I/O 工作电 压;内置 ChipSync™ 源同步技术;数控阻抗 (DCI) 有效 终端;细粒度 I/O 组布局(在一个组中配置);

Xilinx可编程片上系统芯片 - Virtex-4 系列FPGA 5)灵活的逻辑资源; 6)安全芯片 AES 比特流加密; 7)90 nm 铜 CMOS 工艺; 8)1.2V 核电压; 9)倒装片封装,包括无铅封装选择; 10)RocketIO™ 622 Mb/s 到 6.5 Gb/s 千兆位级收发器 (MGT) [ 仅 FX]。 11)IBM PowerPC RISC 处理器核(仅 FX系列),包 括:PowerPC 405 (PPC405) 核;辅助处理器单元接口(用 户协处理器);多个三态以太网MAC (仅 FX系列)。

Xilinx可编程片上系统芯片 - Virtex-5系列FPGA Virtex-5 系列采用第二代ASMBL™(高级硅片组合模块) 列式架构,包含五种截然不同的平台(子系列),比此前 任何 FPGA 系列提供的选择范围都大。每种平台都包含不 同的功能配比,以满足诸多高级逻辑设计的需求。

Xilinx可编程片上系统芯片 - Virtex-5系列FPGA Virtex-5系列包含LX、LXT、SXT、TXT 和 FXT 五个 平台。 Virtex-5 LX主要用于高性能通用逻辑应用。 Virtex-5 LXT主要用于具有高级串行连接功能的高性 能逻辑。 Virtex-5 SXT主要用于具有高级串行连接功能的高性 能信号处理应用。 Virtex-5 TXT主要用于具有双密度高级串行连接功能 的高性能系统。 Virtex-5 FXT主要用于具有高级串行连接功能的高性 能嵌入式系统。

Xilinx可编程片上系统芯片 - Virtex-5系列FPGA 1)跨平台兼容性,LXT、SXT 和 FXT 器件使用可调 稳压器,同样封装中引脚兼容; 2)最先进的最佳利用率高性能 FPGA 架构,其中包 括: 真 6 输入查找表 (LUT) 技术; 双 5-LUT 选项; 改进的布线减少了中间连线; 64 位分布式 RAM 选项; SRL32/ 双 SRL16 选项;

Xilinx可编程片上系统芯片 - Virtex-5系列FPGA 3)强大的时钟管理模块 (CMT) 时钟控制技术,其中包 括: 具有零延迟缓冲、频率综合和时钟相移功能的数字时 钟管理器模块; 具有输入抖动滤波、零延迟缓冲、频率综合和相位匹 配时钟分频功能的 PLL 模块; 4)36 Kb Block RAM/FIFO,其中包括:真双端口 RAM 模块;;增强的可选可编程 FIFO 逻辑;可编程高 达 36 倍的真双端口宽度;高达 72 倍的简单双端口宽度; 内置可选纠错电路;可选择将每个模块作为两个独立的 18 Kb 模块进行编程;

Xilinx可编程片上系统芯片 - Virtex-5系列FPGA 5)高性能并行 SelectIO 技术,其中包括:1.2 到 3.3V I/O 运行;使用 ChipSync™ 技术的源同步接口连接;数控 阻抗 (DCI) 有效终端;灵活的细粒度 I/O 分组;支持高速 存储器接口; 6)高级 DSP48E Slice技术,其中包括:25 x 18 补码乘 法运算;可选加法器、减法器和累加器;可选流水线功 能;可选按位逻辑功能;专用的级联连接; 7)灵活的配置选项技术,其中包括:SPI 和并行 FLASH 接口;专用的回读重新配置逻辑,可支持多比特 流;自动总线宽度检测功能; 8)所有器件都有系统监视功能,其中包括:片上/ 片 外热特性监视;片上/ 片外电源监视;通过 JTAG 端口访 问所有监视量;

Xilinx可编程片上系统芯片 - Virtex-5系列FPGA 9)PCI Express 集成端点模块,支持LXT、SXT、TXT 和 FXT 平台;符合 PCI Express 基本规范 1.1;每模块支 持 1 倍、4 倍或 8 倍通道宽度;与 RocketIO™ 收发器配合 使用; 10)三态 10/100/1000 Mb/s 以太网 MAC,支持LXT、 SXT、TXT 和 FXT 平台;可以将 RocketIO 收发器用作 PHY,也可以用多种软 MII(媒体独立接口)方案将其连 接到外部 PHY; 11)100 Mb/s 到 3.75 Gb/s 的 RocketIO™ GTP 收发 器,支持LXT 和 SXT 平台;

Xilinx可编程片上系统芯片 - Virtex-5系列FPGA 12)150 Mb/s 到 6.5 Gb/s 的 RocketIO GTX 收发器,支 持TXT 和 FXT 平台; 13)PowerPC 440 微处理器,仅支持 FXT 平台,特性包 括:RISC 架构;七级流水线;包括 32 KB 的指令和数据 缓存;优化的处理器接口结构(纵横机); 14)65 nm 铜 CMOS 工艺技术; 15)1.0V 内核电压; 16)可选择标准或无铅的具有高度信号完整性的倒装芯 片封装;

Xilinx可编程片上系统芯片 - Virtex-6系列FPGA 性。使用第三代高级硅片模组(Advanced Silicon Modular Block,ASMBL)结构。该系列包含LXT和SXT两个子系 列。除了高性能的逻辑互联外,还包含了很多内建的系统 级模块,其中包括:

Xilinx可编程片上系统芯片 - Virtex-6系列FPGA (1) 36kb的块RAM/FIFO; (2) 第三代的DSP48E1; (3) 内建数字控制阻抗的SelectIO技术; (4) ChipSync源同步接口模块; (5) 系统监控功能; (6) 扩展的混合模式的时钟管理模块; (7) 高级配置选项; (8) 功耗优化的高速串行收发器模块; (9) PCI-E兼容的集成化的模块和三模式以太网MAC接口。

Xilinx可编程片上系统芯片 - Zynq-7000 系列FPGA Zynq-7000 系列是 Xilinx 推出的首款可扩展式处理平 台 (EPP)。这种新型产品将业界标准的 ARM双核 Cortex- A9 MP处理系统与 Xilinx 一体化28nm 架构完美整合在一 起。 这种以处理器为核心的架构不但能够实现 FPGA 的 高度灵活性和可扩展性,同时还能带来类似于 ASIC 的 高性能和低功耗,以及 ASSP 的易用性。

Xilinx可编程片上系统芯片 - Zynq-7000 系列FPGA Zynq-7000 EPP 系列的四款器件使设计人员能够用 统一平台满足低成本和高性能应用需求,充分发挥业 界标准工作的作用。 处理系统与可编程逻辑的紧密集成使设计人员能够 构建加速器和外设,以将关键功能的速度提升高达10 倍。 ARM 架构和生态系统能够帮助软硬件开发人员最 大限度地提高工作效率,进而简化开发工作。 如图1.3所示,Zynq-7000 系列的主要特点有:

Xilinx可编程片上系统芯片 - Zynq-7000 系列FPGA

Xilinx可编程片上系统芯片 - Zynq-7000 系列FPGA (1) 双核ARM Cortex-A9 高达 800MHz; 可通过 NEON Extension 及单和双精度浮点单元进行增强; (2) 32kB 指令及 32kB 数据 L1 高速缓存和 512kB L2 高速 缓存; (3) 256kB 片上存储器; (4) DDR2、DDR3 以及 LPDDR2 动态存储控制器; (5) QSPI、NAND Flash 以及 NOR 闪存控制器; (6) 2 个 USB2.0 (OTG)、2 个 GbE、2 个 CAN2,0B、2 个 SD/SDIO、2 个 UART、2 个 SPI、2 个 I2C、32b GPIO;

Xilinx可编程片上系统芯片 - Zynq-7000 系列FPGA (7) 用于实现安全启动和安全配置的 AES 和 SHA 256b 加 密引擎; (8) 双通道 12 位 1Msps 数模转换器; (9) 高级可编程逻辑: - 30,000 至 235,000 个逻辑单元(约 560,000 至 4,700,000 个同等的 ASIC 门电路); - 240kB 至 1.86MB 的可扩展式 Block RAM; - 80 至 760 个 18x25 DSP Slice (58 至 912 GMACS 的 DSP 峰值性能); (10) PCI Express Gen2x8(最大型器件中); (11)134 至 404 个用户 IO(多路复用和 SelectIO); (12) 4 至 12 个 10.3Gbps 收发器(最大型器件中);