首页
会员中心
到顶部
到尾部
计算机

SOPC的视频图像压缩编码系统硬件设计

时间:2020/10/27 9:19:52  作者:  来源:  查看:0  评论:0
内容摘要:系统相关技术、设计原理和设计方案2.1  基于SOPC的现代电子系统设计传统的电子系统设计,是以各种不同的ASIC芯片为基础,按照功能要求在印制电路板上将不同的芯片拼连、组合,构成实现某种功能的电子系统。这样的设计方法不仅烦琐,而且设计过程中的错误和不足之处不能被及早地...

系统相关技术、设计原理和设计方案

2.1  基于SOPC的现代电子系统设计
传统的电子系统设计,是以各种不同的ASIC芯片为基础,按照功能要求在印制电路板上将不同的芯片拼连、组合,构成实现某种功能的电子系统。这样的设计方法不仅烦琐,而且设计过程中的错误和不足之处不能被及早地发现,进入调试阶段后,一旦发现错误或缺陷,也不能现场更正。这将使研发时间变长,研发成本加大,从而使很多设计思想难以得到及时的实现和验证。
近年来,微电子技术、EDA技术的飞速发展,不仅使电子系统的小型化、微型化进程加快,而且给电子系统的设计带来了前所未有的变革:
(1)大规模FPGA芯片的问世,为电子系统设计提供了硬件基础,几乎大多数电子系统都可以在一块芯片上实现。使用FPGA的好处不仅表现在设计的初级阶段,即使在电子系统设计完成之后,甚至在投入实际使用的过程中,基于它的可编程特性都还可以根据实际需要添加或改变功能。
(2)硬件描述语言(HDL)用于在高层次上描述系统和元件的行为,用软件方式表达逻辑元件连接图,是FPGA可编程思想的实现工具。
(3)IP核技术的出现对FPGA的发展起着变革性的作用,很多厂商将自己的数字器件、专用算法以IP核的形式嵌入到FPGA中,以单片FPGA完成整个嵌入式系统分设计。
(4)嵌入式处理器的出现改变了传统嵌入式系统的结构,为嵌入式系统提供了操作系统,提出了软硬件协同设计的概念。
(5)Avalon总线作为芯片内部连线,提供了片上系统中专门解决时序问题的方案,系统中所有的组件及IP核块都将被挂在Avalon总线上。
    所有的这一切被有机整合,众多厂商呼吁的SOPC技术诞生了。SOPC技术最早是由美国Altera公司于2000年提出的,本文所涉及的SOPC技术都是基于Altera公司的。SOPC技术一般采用大容量FPGA做为载体,在一片FPGA中实现软核微处理器,通过专用的开发工具,可以调用组件或IP核,生成一个可编程的嵌入式系统。通过这种技术,SOPC平台即可以拥有微处理器系统丰富的软件资源和出色人机交互能力,同时又具备FPGA系统的快速硬件逻辑特性,实现了软件系统和硬件系统的互补,提出了软硬件协同设计的概念,不仅提高了系统的性能,又加快了开发周期。所以说,SOPC将传统的EDA技术、计算机系统、嵌入式系统、数字信号处理技术等融为一体,在结构上凝为单芯片,是现代电子技术和电子系统设计的汇聚点和发展方向。
与传统专用集成电路设计技术相比,SOPC技术具有多方面的特点:
(1)由单个芯片完成整个系统的主要逻辑功能。
(2)设计全程,包括电路系统描述、硬件设计、仿真测试、综合、调试、系统软件设计,自至整个系统的完成,都由软件进行,不再需要专门的硬件仿真器和编程器,大大减少了开发设备的成本。
(3)设计采用大容量FPGA作为载体,具有足够的片上可编程逻辑资源。
(4)只要FPGA的资源允许,一快FPGA芯片上可容纳一个或多个微处理器和数个功能模块,为复杂系统的实现提供了可能。
(5)丰富的IP Core资源可供选择,大大减少设计者的重复工作,缩短产品上市时间。
(6)设计技术直接面向用户。
(7)从整个系统的功能和性能出发,采用软硬件协同设计,综合考虑软硬件资源的使用成本,设计出满足性能要求的高效率、低成本的软硬件体系结构。
(8)硬件抽象层系统库HAL(Hardware Abstraction Layer)为相对独立的硬件设计与软件设计之间的信息控制与数据交换提供设备驱动接口,HAL系统库将硬件开发与软件开发相分离,可实现软硬件开发的相对独立。
(9)它具有可编程性,具有灵活的设计方式、可剪裁、可扩充、可升级,并具备软硬件在系统可编程的功能。
(10)所设计的电路在规模、可靠性、体积、功能、性能指标、上市周期、开发成本、产品维护及其硬件升级等多方面都能实现最优化。
2.1.1  现场可编程门阵列FPGA
FPGA器件提供高度灵活的用户现场编程,具有现场定义高容量数字单片系统的能力,能够重复定义、反复改写,为复杂数字系统设计、研制以及产品开发提供了有效的技术手段。
1、 FPGA的内部原理结构
FPGA 是由多个逻辑门构成的阵列结构,能够被编程来完成各种不同的任务。逻辑门之间以布线资源分割成多个可编程逻辑单元,外部围绕着可编程 I/O 单元。逻辑单元由布线资源中的可编程连线通过可编程开关连接起来实现一定的逻辑功能。其基本结构如图2-1所示:
图2-1 FPGA基本结构
(1)可编程逻辑单元
可编程逻辑单元是可编程逻辑器件的主体,可以根据设计灵活地改变其内部连接与配置,完成不同的逻辑功能。FPGA一般是基于SRAM工艺的,其基本可编程逻辑单元几乎都是由查找表(LUT, Look Up Table)和寄存器(Register )组成的。FPGA内部查找表一般为4输入,查找表一般完成纯组合逻辑功能。FPGA内部寄存器结构相当灵活,可以配置为带同步/异步复位或置位、时钟使能的触发器(FF,Flip Flop),也可以配置成为锁存器(Latch)。FPGA一般依赖寄存器完成同步时序逻辑设计。一般来说,比较经典的基本可编程单元的配置是一个寄存器加一个查找表,但是不同厂商的寄存器和查找表的内部结构有一定的差异,而且寄存器和查找表的组合模式也不同。例如Altera编程逻辑单元通常被称为LEC Logic Element,逻辑单元),由一个Register加一个 LUT构成。Altera大多数FPGA将10个LE有机地组合起来,构成更大功能单元一逻辑阵列模块(LAB, Logic Array Block),LAB中除了LE还包含LE间的进位链、LAB控制信号、局部互联线资源、LUT级联链、寄存器级联链等连线与控制资源。
(2)可编程I/O单元
输入/输出(Input/Output )单元简称I/O单元,它们是芯片与外界电路的接口部分,完成不同电气特性下对输入/输出信号的驱动与匹配需求。为了使FPGA有更灵活的应用,目前大多数FPGA的I/O单元被设计为可编程模式,即通过软件的灵活配置,可以适配不同的电气标准与I/0物理特性;可以调整匹配阻抗特性,上下拉电阻;可以调整输出驱动电流的大小等。可编程I/O单元支持的电气标准因工艺而异,不同器件商不同器件族的FPGA支持的I/O标准也不同。一般说来,常见的电气标准有LVTTL, LVCMOS, SSTL, HSTL, LVDS, LVPECL和PCI等。值得一提的是,随着ASIC工艺的飞速发展,目前可编程I/O支持的最高频率越来越高,一些高端FPGA通过DDR寄存器技术,甚至可以支持高达2Gbit/s的数据速率。
(3)可编程连线
    布线资源连通FPGA内部所有单元,连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。FPGA内部有着非常丰富的布线资源,这些布线资源根据工艺、长度、宽度和分布位置的不同而被划分为不同的等级,有一些是全局性的专用布线资源,用以完成器件内部的全局时钟和全局复位/置位的布线;一些叫做长线资源,用以完成器件Bank(分区)间的一些高速信号和一些第二全局时钟信号(有时也被称为Low Skew信号)的布线;还有一些叫做短线资源,用以完成基本逻辑单元之间的逻辑互联与布线;另外,在基本逻辑单元内部还有着各式各样的布线资源和专用时钟、复位等控制信号线。实现过程中,设计者一般不需要直接选择布线资源,而是由布局布线器自动根据输入的逻辑网表的拓扑结构和约束条件选择可用的布线资源连通所用的底层单元模块,所以设计者常常忽略布线资源,其实布线资源的优化与使用和设计的实现结果(包含速度和面积两个方面)有直接关系。
2、 Altera Cyclone系列芯片
Altera公司总部位于硅谷圣侯塞,是全球最大的可编程逻辑器件供应商之一。作为可编程芯片逻辑解决方案倡导者,Altera一直站在可编程逻辑创新发展的前沿。
Altera Cyclone现场可编程门阵列系列基于1.5V、0.13μm及全层铜SRAM 工艺,密度增加至20060个逻辑元件(LE),具有多达294912位嵌入RAM。Cyclone FPGA支持各种单端I/O标准如LVTTL、LVCMOS、PCI和SSTL-2/3,通过 LVDS和RSDS标准提供多达129个通道的差分I/O支持,每个LVDS通道高达 640Mbps。它具有双数据速率(DDR)SDRAM和FCRAM接口的专用电路。除此之外,Cyclone系列的FPGA还集成了许多复杂的功能。提供了全功能的锁相环(PLL),提供六个输出和层次时钟结构,以及复杂设计的时钟管理电路;用于板级的时钟网络管理和专用I/O接口,这些接口用于连接业界标准的外部存储器器件;它支持Nios嵌入式微处理器,以及多种IP核。
低成本结构和Cyclone FPGA丰富的器件资源相结合,使之能够实现完整的片上可编程系统(SOPC)。Cyclone系列产品的家族成员及特性如表2-1所示:
表2-1 Cyclone系列产品的家族成员及特性表
型号(1.5V) 逻辑单元 锁相环 M4K RAM块 总共RAM bit 最大可用I/O管脚
EP1C3 2910 1 13 59904 104
EP1C4 4000 2 17 78336 301
EP1C6 5980 2 20 92160 185
EP1C12 12060 2 52 239616 249
EP1C20 20060 2 64 294912 301
2.1.2  硬件描述语言简介
硬件描述语言VHDL(VHSIC Hardware Description Language)是美国国防部在20世纪80年代初为实现其高速集成电路硬件VHSIC(Very High speed integrated circuit)计划提出的描述语言。1983年3月IEEE开始致力于VHDL的标准化工作,经过广泛征求意见,融合了其他HDL的优点,IEEE于1987年12月公布了VHDL的基本版本(IEEE.std_1076),1993年作了修改,形成了标准版本(IEEE.std_1164)。与其他的硬件描述语言相比,VHDL具有很多优点,诸如:(1)覆盖面广,系统硬件描述能力强,是一个多层次的硬件描述语言;(2)VHDL语言具有良好的可读性,既可以被计算机接受,也容易被人们所理解;(3)VHDL语言可以与工艺无关编程;(4)VHDL语言标准、规范,易于共享和复用。已成为数字电路和系统设计、综合、仿真的标准,从而决定了VHDL是系统设计领域最佳的硬件描述语言。
VHDL是一种全方位的硬件描述语言,包括系统行为级、寄存器传输级和逻辑门级多个设计层次,支持结构、数据流和行为三种描述形式的混合描述。对VHDL的设计,可以利用EDA工具进行逻辑综合和优化,并自动把 VHDL 描述设计转变成门级网表(根据不同的实现芯片)。这种方式突破了门级设计的瓶颈,极大地减少了电路设计的时间和可能发生的错误,降低了开发成本。利用 EDA 工具的逻辑优化功能,可以自动地把一个综合后的设计变成一个更小、更高速的电路系统。反过来,设计者还可以容易地从综合和优化的电路获得设计信息,返回去更新修改 VHDL 设计描述,使之更完善。
VHDL语言在硬件设计领域的作用将与C和C++在软件设计领域的作用一样,在大规模数字系统的设计中,将成为主要的硬件描述工具,成为数字系统设计领域中所有技术人员必须掌握的一种语言。VHDL和可编程逻辑器件的结合成为一种强有力的设计方式,将为设计者的产品上市带来创记录的速度。
2.1.3  可复用IP核
IP(Intellectual Property)原意是指知识产权、著作权等;在IC设计领域则可以理解为实现某种功能的设计。为了加快SOPC芯片设计的速度,人们将一些在数字电路中常用但比较复杂的功能块,如FIR滤波器、SDRAM控制器、接口等设计成可修改参数的模块,这就是IP核,其他用户可以在SOPC芯片设计中调用它,从而简化芯片的设计,缩短设计时间,避免重复劳动,提高设计效率。
IP核通常具有以下基本特征:一是通用性好,二是正确性有100%的保证,三是可移植性好。一般可以将IP核分为:软核(soft-Core)、固核(firm-Core)和硬核(hard-core)三种类型。
(1)软核:软核用硬件描述语言写成,可以是对设计的算法级描述,或功能级描述,也可以是仅仅用于功能仿真的行为模拟。软IP核主要是基于IP模块功能的描述。它在抽象的较高层次上对IP的功能进行描述,并且己经过行为级设计优化和功能验证。它通常以HDL文档的形式提交给用户,文档中一般包括逻辑描述、网表,以及一些可以用于测试,但不能物理实现的文件。使用软IP,用户可以综合出正确的门电路级网表,进行后续结构设计,并借助EDA综合工具与其他外部逻辑电路结合成一体,设计出需要的器件。软IP的灵活性大,可移植性好,但同硬IP相比,因为它不含有任何具体的物理信息,所以如果后续设计不当,很可能导致设计失败。另外,其后续的布局布线工作也将花费大量的时间。
(2)固核:固核在软核基础上开发,是一种可综合的、并带时序信息及布局布线规划的设计,用硬件描述语言写成。固IP核主要是基于IP模块结构的描述,可以理解为介于硬IP和软IP之间的IP核。固核一般以门电路级网表和对应具体工艺网表的混合形式提交用户使用。用户根据需要进行修改,使它适合某种可实现的工艺流程。
(3)硬核:指和特定工艺相联系的物理版图,设计的正确性己经投片验证,可在新设计中作为特定的功能模块直接调用。硬IP核主要是基于IP模块物理结构的描述。它提供给用户的形式是电路物理结构掩模版图和全套工艺文件,是直接用的全套技术文件。硬IP核完成了全部的前端和后端设计,有固定的电路布局和具体工艺,也正是由于其固定的电路布局和工艺,使其难以移植到不同的加工工艺。
在上市时间的压力下,必须要求缩短产品的SOPC设计与生产时间。为了快速设计生产出SOPC产品,设计人员必须利用预先定义并验证好的IP核。由此可知,IP核是设计SOPC的关键技术之一。
2.1.4  NiosⅡ嵌入式处理器
    传统的嵌入式系统大多采用了含有ARM的32位知识产权处理器核的器件。尽管由这些器件构成的嵌入式系统有很强的功能,但为了使系统更为完备、功能更为强大、对更多任务的完成具有更好的操作性,通常必须为此处理器配置许多接口器件,方能构成一个完整的应用系统,如除配置常规的SRAM、DRAM、Flash外,还必须配置网络通信接口、串行通信接口、USB接口、VGA接口、PS/2接口等等。这样势必会增加整个系统的体积、功耗,降低了系统的可靠性。但是如果将ARM或其它知识产权核以硬核方式植入FPGA中,利用FPGA中的可编程逻辑资源和IP软核来构成该嵌入式系统处理器的接口功能模块,就能很好地解决这些问题。
NiosⅡ是Altera公司推出的嵌入式处理器软核,NiosⅡ CPU和Avalon总线一起构成了SOPC系统的主要内容。只需再配以丰富的IP Core,就如同传统的嵌入式系统一样可以构成功能强大的智能系统。
NiosⅡ CPU是32位结构可配置并包含五级流水线的通用RISC微处理器,采用改进的哈佛存储器结构,带有分离的数据和程序存储器总线控制,并具备高速缓存,中断处理功能。与其他传统的CPU相比,NiosⅡ指令系统可通过自定义指令和标准CPU选项,利用硬件来明显提高系统性能。NiosⅡ开发者可以在速度和面积间选择,增加了SOPC设计的灵活性。
2.1.5  Avalon总线
采用SOPC技术就不得不考虑Avalon总线,Avalon交换结构总线是Altera开发的用于NiosⅡ嵌入式处理器的参数化接口总线,由一组预定义的信号组成,用户用这些信号可以连接一个或多个IP模块。使用SOPC Builder工具选定Avalon总线的主设备(比如NiosⅡ CPU)和从设备(比如内存和周边设备),然后SOPC Builder会自动地产生Avalon交换结构总线逻辑, 连接各个部件,生成整个系统。
Avalon总线由FPGA内部的逻辑和布线资源组成,专门为SOPC环境所设计,应用于芯片内部总线。它具有如下特点:
(1)主设备和从设备的交互方式,采用“从端仲裁”技术。遵循以下两点:仲裁的细节被封装到Avalon总线内,主设备和从设备的接口与总线上设备数目无关;多个主设备能够同时执行总线传输,只要它们不在同一时钟周期访问同一个从设备,在多个主设备试图访问同一个从设备时,Avalon总线用于决定哪个主设备获得访问权。
(2)到周边设备的接口同步于Avalon总线时钟,不需要复杂的异步握手/确认信号,Avalon总线和整个系统的性能能够利用标准的同步时序分析技术来评测。
(3)所有的信号都是高电平或低电平有效,有利于总线的切换(turn-around)。多路复用器(而不是三态缓冲器)决定哪一个信号驱动哪一个外设。即使外设没有被选中,此设备也不需要将其输出信号设置为高阻状态。
(4)地址、数据和控制信号使用分开的专用端口,简化了外设的设计。外设不需要进行地址和数据周期解码,不需要判断当前总线周期的状态,即使没有被选中,也不需要关掉输出端口。
可以看到Avalon总线为用户提供了非常友好的接口,使得系统搭建中的一些细节问题得到屏蔽,大大减轻了系统搭建的工作量。
2.1.6  SOPC开发工具及其设计流程
Altera公司的SOPC解决方案包括在可编程逻辑器件上创建硬软件开发的基础平台(以32位NiosⅡ软核处理器为核心的嵌入式系统的硬件配置、硬件设计、硬件仿真、软件设计、软件调试等),它提供了SOPC专用开发工具:QuartusⅡ,SOPC Builder,NIOSⅡ IDE。
(1)QuartusⅡ—集成开发工具
Altera的QuartusⅡ提供了完整的多平台设计环境,囊括了从设计输入、综合、布局布线、仿真、时序分析、下载验证等所有设计流程,是一个完整的开发平台,能满足多种设计的需要,是SOPC设计的综合环境和SOPC开发的基本设计工具。
QuartusⅡ软件的编译器是系统的核心部位,编译器包括的功能模块有分析综合器、适配器、装配器、时序分析器、设计辅助模块、EDA网表文件生成器、编辑数据接口等。可以通过选择Start Compilation来运行所有的编译器模块,或通过选择Start单独运行各个模块。
此外,QuartusⅡ还包含许多十分有用的LPM(Library of Parameterized Modules)模块,他们是复杂或高级系统构建的重要组成部分,在SOPC设计中被大量应用,也可与QuartusⅡ普通文件一起使用。Altera提供的可参数化宏功能模块和LPM函数均基于Altera器件的结构作了优化设计。在许多使用情况中,必须使用宏功能模块才可以使用某些特定器件硬件功能,如dsp模块,片上存储器,PLL等。这可以通过QuartusⅡ中的MegaWizard Plug-in Manager来建立ALtera宏功能模块、LPM函数和IP函数,用于QuartusⅡ综合工具中的设计。
QuartusⅡ的优势还包括:设计者可以添加特定的约束条件来提高芯片的利用率;自动的错误定位和完备的错误和警告信息文档使得设计修改变得相当简单;为第三方工具提供了无缝接口,使系统设计更加灵活多变。
(2)SOPC Builder—Nios CPU开发工具
SOPC Builder是Altera公司推出的一种可加快在FPGA内实现嵌入式处理器相关设计的工具。它是一个革命性的系统级开发工具,其功能与PC应用程序中的“引导模板”类似,旨在提高设计者的效率。通过SOPC Builder的图形用户界面,用户可以从Altera提供的IP库中选取一些组件,如处理器、SDRAM, Flash、各种I/O等,并可通过选择来配置相应的参数。然后由SOPC Builder自动将这些组件与Avalon总线连接,自动生成所有必要的总线逻辑,并建立将组件捆绑在一起的HDL源代码。
SOPC Buider有个尤为重要的功能:在进行硬件系统设计时,如果用户有特殊功能要求,但IP库中没有,则用户可以加入自定义的组件逻辑来实现。
SOPC Builder 可以快速地开发定制新方案,重建已经存在的方案,并为其添加新的功能,提高系统的性能。通过自动集成系统组件,SOPC Builder允许用户将工作的重点集中到系统级的需求上,而不是从事把一系列的组件装配在一起这种普通的、手工的工作。所有版本的Altera QuartusⅡ的设计软件都已经包含了SOPC Builder。设计者采用 SOPC Builder,能够在一个工具内定义一个从硬件到软件的完整系统,而花费的时间仅仅是传统 SOC 设计的几分之一。
(3)NiosⅡ IDE—软件开发调试工具
NiosⅡ集成开发环境(integrated development environment,IDE)是NiosⅡ系列嵌入式处理器的基本软件开发工具。仅仅通过一台PC机、一片Altera的FPGA以及一根JTAG下载电缆,软件开发人员就能够通过NiosⅡ IDE往FPGA上的NiosⅡ处理器系统写入程序并与NiosⅡ处理器系统进行通信。
   NiosⅡ IDE为软件开发提供了四个主要功能:工程管理器、编辑器和编译器、调试器以及闪存编辑器。所有软件开发任务都可以在NiosⅡ IDE下完成,包括编辑、编译和调试程序。
 

Tags:视频



相关评论
广告联系QQ:45157718 点击这里给我发消息 电话:13516821613 杭州余杭东港路118号雷恩国际科技创新园  网站技术支持:黄菊华互联网工作室 浙ICP备06056032号