APP下载

通信接口免费IP核的应用

2012-12-17中州大学李可胜

电子世界 2012年7期
关键词:源代码文件夹开源

中州大学 时 伟 李可胜

安徽移动蚌埠分公司 李永亮

1.引言

随着集成电路行业制造工艺的飞速发展,芯片的集成度急剧增加,且具有较高的功能和复杂度。从设计开发和市场的角度来看,这些特征都对电路设计人员提出了新的挑战。目前,设计复用技术已成为了解决问题的有效方法;根据业界经验,任何模块如果不作任何修改就可以在十个或更多项目中复用,都应以IP核的形式进行开发设计。

IP(Intellectual Property)核是指具有独立知识产权的电路核,用于实现特定的电路功能和结构,一般包括软核、硬核与固核[1]。软核是以PLD器件为目标载体用硬件描述语言设计可复用电路,硬核是针对集成电路制造而设计的电路结构掩膜,固核是完成综合后以网表形式存在的文件。在基于可编程逻辑器件(FPGA/CPLD)的工程设计中,由于开发工具的通用性、设计语言的标准化,使得电路的设计过程基本与器件硬件结构无关;以IP核形式设计的各种功能模块具有良好的兼容性和移植性,恰当地复用这些IP核可使设计效率大大提高,降低设计成本和开发周期。

目前各PLD厂家(Altera,Xilinx,Lattice等)均提供商用的IP核设计,这些IP核多针对目标器件的结构进行优化设计,使得嵌入该类IP核的系统电路在不同厂家芯片上实现时需花额外的时间做修改,降低了系统可移植性;且该类IP核多集成于相应的开发工具中或单独向用户提供销售,用户无法得到源代码,这为资金短缺的设计团体或个人增加了一定负担,也为系统集成带来了一定困难。

作为一种推广尝试,国际上一些非盈利组织(如OpenCores[2]等)和个人致力于自由(或称免费)IP核的发展,为电路设计人员提供遵循GNU GPL[3]或LGPL协议的免费开源IP核。本文以通信接口(Communication Interface)免费IP核为例,介绍了免费IP核的使用,包括资源的获取方式和工具,文档的应用,测试方法等问题,希望以此引起设计人员对免费资源的关注。文中使用的免费资源取自OpenCores开源社区。

2.资源的获取与工具

免费IP Core资源通常由非盈利性组织或个人提供,有些PLD厂家也提供部分类似资源,但因大多是针对某个特定的芯片,所以可移植性较差。本文主要关注以发展免费开源IP核为宗旨的OpenCores组织提供的资源。

开源社区OpenCores是国际上比较有影响力的组织,致力于LGPL(GNU Lesser Public License)协议下IP核的设计和发布,保证设计资源能被自由免费使用。该组织还制定和发展开放式IP核的设计标准及平台,为用户提供免费的EDA设计工具,及相关设计资源与工具的文档支持。

该社区使用SVN工具[4]管理所有设计资源,使用者可以通过SVN工具或以WEB方式下载资源的最新版本。作为项目资源的开发和维护人员,可使用SVN工具来管理更新项目。所提供的资源分类有算术运算器、通信接口、DSP、存储器、ECC模块、微处理器、SoC、系统控制器、视频控制器及其他程序库设计等。该组织维护管理的WISHBONE总线标准因其具有开放性,且有丰富免费IP核资源支持,实际已成为免费IP核设计的互连标准;该组织提供的OR1000(OpenRisc1000)处理器软核已被数家公司的开发系统采用并在ASIC上实现,同时在近年来推出了其更新版本OR1200和OR2000。

SVN(Subversion)是一套成熟的自由开源版本控制系统,完成在代码开发过程中涉及到的各种资源的自动化版本管理功能。SVN支持Linux和Windows平台的安装,下载并安装后,即可访问OpenCores社区提供的资源,该网站提供相关资源所在服务器的配置信息和资源管理信息,使用者以所提供的信息,可以直接访问所需的指定资源,执行浏览和下载等操作。

完善的IP核一般包含源代码文件、说明文件、测试向量文件、仿真结果及综合结果。以下以通信接口IP核为例进行说明。

SPI(Serial Peripheral Interface)接口为板级设备间通信提供了经济性的解决方案,广泛应用于微处理器、DAC、ADC及其他设备间的信息交换,已成为实际应用中的工业标准。首先用从OpenCores下载所需要的资源(此例的项目名为SPI),下载到本地后的文件解压后包含若干文件夹,如图1所示。其中trunk文件夹中存放了设计资源,其他文件夹为SVN系统自动生产用于版本控制。在trunk目录下包含的资源信息如下:bench文件夹内为测试向量文件,用于对IP核进行功能仿真;doc文件夹内为说明文件;rtl文件夹内为源代码文件,一般使用Verilog或VHDL语言编写;sim文件夹下存放了RTL级的仿真结果。

图1 资源目录

3.资源的使用

3.1 了解IP核的功能特性

要将IP核嵌入到自己的系统中使用,首先要对其功能和特性做全面的了解。OpenCores社区要求开发人员为其IP核项目提供相应的说明文件(Specification),该SPEC文件一般包含变动记录(Revision History)、功能特性简介(Introduction),IO及参数说明(IO Ports & Parameters)、寄存器说明(Registers)、工作原理(Operation)、组成结构(Architecture)及IP核配置说明(Configuration)等内容。

本文所使用的IP核说明文件表明,该设计是WISHBONE总线兼容的SPI主控电路,具有以下特性:双向同步串行数据传输,最高支持128位的可变长度传输,起始位可选MSB或LSB,Rx和Tx可选上升沿或下降沿工作,8个从电路选择,与工艺无关的Verilog语言编程及可综合特性。在SPEC中另有详细的IO和寄存器描述。

3.2 用EDA工具进行分析验证

在..spi tlverilog目录下有该IP核的源代码设计文件,使用者可以根据需要选用,并对所选的源代码进行分析,了解其实现特定逻辑功能的编程方法,这也有助于对该电路核进行修改。

该电路核能否正常工作只能通过仿真和测试来确定。主流仿真软件有Modelsim、ActiveHDL、Cadence NC-Verilog/NC-VHDL等;另外,OpenCcores也提供免费开源的设计工具如,Icarus Verilog Simulator,Verilator,GHDL VHDL simulator等。

本文使用Active-HDL 8.1和ISE9.1在Xilinx的Spartan XC2S100-5TQ144C芯片上进行了验证。

表1 通信接口IP核的源代码文件

本例中bench目录下存有用于仿真的测试文件,tb_spi_top.v为该IP核的顶层测试文件,可以用来对电路所实现的逻辑功能做仿真测试。由于资源是免费的,该文件里给出的测试向量可能是不完全的或只对部分电路功能做测试。如果要做更全面的测试,使用者要在分析源代码的基础上继续添加测试项来完善该测试文件。SPI的IP核源代码文件如表1所示。

4.结束语

免费IP核的商业应用将减少开发成本,缩短产品投放市场的时间,爱好者可以利用该资源来设计实现和验证自己的设想,在教育和科研领域对免费IP核的使用将进一步完善其设计和功能。但免费资源并不是十分成熟或完善的资源,要妥善处理后才可以得以发挥作用。

[1]付燕,王玮,王福源.免费IP核的应用[J].河南科技,2004.

[2]OpenCores.http://www.opencores.org.

[3]张平.GPL规范的自由[J].软件世界,2007,15.

[4]刘佳,徐博,雍少为.基于SVN的部队文档管理方法研究[J].舰船电子工程,2010,4.

猜你喜欢

源代码文件夹开源
基于TXL的源代码插桩技术研究
五毛钱能买多少头牛
2019开源杰出贡献奖
软件源代码非公知性司法鉴定方法探析
基于语法和语义结合的源代码精确搜索方法
摸清超标源头 大文件夹这样处理
调动右键 解决文件夹管理三大难题
大家说:开源、人工智能及创新
开源中国开源世界高峰论坛圆桌会议纵论开源与互联网+创新2.0
挂在墙上的文件夹