您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页一种嵌入式DSP核的设计及FPGA验证

一种嵌入式DSP核的设计及FPGA验证

来源:意榕旅游网
第38卷第2期

2008年4月

微电子学

Microelectronics

Vol138,No.2Apr12008

一种嵌入式DSP核的设计及FPGA验证

李 辉,李 平

(电子科技大学电子薄膜与集成器件国家重点实验室,成都 6100)

 

摘 要: 设计了一个4级流水线的16位定点DSP核。该DSP核支持151条指令,除了执行返回指令需要两个机器周期外,其他指令都在一个机器周期内完成。该DSP核用Altera公司的Cy2cloneEP1C12Q240C8FPGA器件实现,可工作在18.6MHz。基于Altera公司的FPGA集成开发环境QUARYUSII和FPGA开发板,对该DSP核进行了FPGA验证。结果表明,该DSP核能正确地执行各条指令,并能完成IMAADPCM的编解码功能。关键词: DSP核;FPGA;RAW相关;IMAADPCM

中图分类号: TP332       文献标识码: A   

文章编号:100423365(2008)0220302204

 

DesignandFPGAVerificationofanEmbeddedDSPCore

LIHui,LIPing

(StateKeyLaboratoryofElectronicThinFilmsandIntegratedDevices,Univ.ofElec.Sci.&

Technol.ofChina,Chengdu6100,P.R.China)

 

A162bitfixed2pointDSPcorewith4pipelinestagesisproposed.TheinstructionsetoftheDSPcon2Abstract: 

tains138instructions,andallinstructionstakeonlyonemachinecycleexceptRETinstruction,where2cyclesarenecessary.TheDSPcoreprototypewasrealizedusingAltera’sEP1C12Q240C8FPGAwithoperationfrequencyof18.6MHz.BasedonQUARTUSIIsoftwareandFPGAboard,theprototypewasverified,whichindicatedthatallinstructionsexecutedcorrectlyandthecodecfunctionofIMAADPCMwasalsorealizedasexpected.

Keywords: DSPcore;FPGA;RAWdependence;IMAADPCMEEACC: 1265F

 

计、指令集、FPGA验证及结论。

1 引 言

2 系统设计

DSP已经广泛地应用到数字信号处理领域,它

或者以的器件形式在系统中出现,或者以IP核的形式嵌入到SOC。常见的16位通用DSP有AD公司的ADSP21系列、TI公司的TMS320C系列,它们主要应用于语音处理和实时控制等领域。然而,通用的DSP核会占用较大的芯片面积,增加芯片成本。因此,需要设计专用的DSP核[326]来提高性能、降低成本。

本文设计了一个16位嵌入式DSP核,用FP2GA实现并进行了验证。结果表明,该DSP核能正确实现其指令集。详细描述了该DSP核的系统设

收稿日期:2007207228; 定稿日期:2007209220

存储器在基于DSP核的系统中总是必需的,为

了清楚描述DSP核的指令流、数据流,图1所示的结构框图包括了DSP核和存储器。整个DSP核的设计基于数据通道和控制器的结构[1],译码段(ID)的控制器(Controller)是DSP核的控制器,DSP核的其他部分是数据通道。下面分别介绍DSP核的各部分设计思想。2.1 取指段

取指段(IF)完成取指令的功能,并计算出下次程序计数器(PC)的值。下次的PC值有3个来源:

 第2期李 辉等:一种嵌入式DSP核的设计及FPGA验证303 

执行跳转或者调用指令时,PC值是来自程序存储器的立即数;执行返回指令时,PC值来自数据存储器中的堆栈;执行其他指令时,PC值自动加1。2.2 译码段

译码段(ID)的控制器(Controller)根据指令寄存器(IR)的内容和DSP核的状态信息,译码产生DSP核各部分所需的控制信号。

2.3 执行段

执行段(EX)的任务是传送数据和进行运算。

与文献[2]中描述的load2store结构不同,这里设计的数据传送方式灵活,数据处理单元的源操作数来源丰富,非常适合需要大量数据操作的数字信号处理任务。

该设计把大部分的数据传送和运算集中在执行段完成,可以避免出现复杂的数据相关情况。这将有效地减小编译器的设计难度或者汇编程序员的编程难度。2.4 写回段下面以一个单端口随机存储器为例,分析数据存储单元之间的数据传送。

图2为一个单端口随机存储器的功能框图。该存储器的读写时序和设计中的存储器读写时序相同。读存储器中某个单元的内容时,读控制信号(wr=0)、地址信号(address)在时钟上升沿载入寄存器,经过一段时间,相应存储单元的内容稳定地输出到数据端口(data);向存储器中某个单元写内容时,写控制信号(wr=1)、地址信号(address)、待写数据(data)在时钟上升沿载入寄存器,经过一段时间,待写数据写入相应的存储单元。

数据传送的类型包括:寄存器(Registers)之间的数据传送、数据存储单元(DataMem)之间的数据传送、寄存器与数据存储器之间的数据传送;程序存储器(ProgramMem)向寄存器、数据存储器的数据传送。运算是由数据处理单元(DPU)完成的,运算类型参考指令集部分。数据处理单元包括算术逻辑运算单元、乘法器和移位器。

图2 单端口随机存储器的功能框图

Fig.2 BlockdiagramofasingleportRAM

按照该存储器的读写时序,不可能在流水线的一级中完成数据存储单元之间的数据传送。因此,设计中是在流水线的相邻两级分别完成数据存储器

的读和写。图1中的数据存储器(DataMem)是一个双端口存储器,1口是只读端口,2口是读写端口。1口的读控制信号(D_R1)不经过控制信号寄存器(CON2SR),直接连到数据存储器的1口控制信号

图1 DSP核与存储器的结构框图

Fig.1 BlockdiagramofDSPcoreandmemory

输入端;2口的写控制信号(D_W2)经过控制信号寄

存器(CON2SR)后连接到数据存储器的2口控制信号输入端,因此数据存储器的写操作滞后读操作一个时钟周期。

 304李 辉等:一种嵌入式DSP核的设计及FPGA验证2008年 

考虑到图1中的数据存储器与图2类似,也有一组输入寄存器,那么数据存储器的读操作实际位于流水线的执行段(EX),写操作位于执行段的下一级。也就是说,图1中,的流水线实际为四级,隐含了写存储器这一级。图1中,数据存储器、程序存储器、寄存器堆、数据总线(BUS1、BUS2)是16位的,乘法器是16位的,算术逻辑运算单元、移位器、累加器是40位的。因此,图1中的DSP核是由四级流水线构成的16位DSP核。

者程序存储器;因此仅加法指令就对应12条指令。本文设计的DSP核共实现151条指令。

所有指令中,只有RET指令需要两个机器周期,其他指令都在1个机器周期内完成。由于写存储器操作在流水线的第4级完成,而读存储器的操作在流水线的第3级进行,因此有可能出现存储器的写后读(RAW)相关。汇编程序员和编译器均可以通过插入空指令或者适当调整指令执行顺序的办法解决这个问题。3 指令集

本文设计的DSP核所支持的指令集包括4大类的指令,如表1所示。

表1 指令集

Table1 InstructionSetOverview

4 FPGA验证本文设计的DSP核用可综合的VerilogHDL

描述,通过Altera公司的FPGA集成开发环境QUARTUSII进行综合、适配并下载到型号为Cy2cloneEP1C12Q240C8的FPGA器件进行了验证。

验证过程中,主要使用QUARTUSII中的SignalTapLogicAnalyzer和In2SystemMemoryContentEditor两个工具。

助记符

算术逻辑运算

ANDORNOTXORADDSUBCOMPASNEGRNDABS

功能描述逻辑与逻辑或逻辑非逻辑异或加法计算减法计算比较大小算术移位取相反数四舍五入取绝对值

乘法运算

有符号数乘以有符号数有符号数乘以无符号数无符号数乘以有符号数无符号数乘以无符号数

数据传送

传送数据

控制指令

无条件跳转条件跳转调用子程序返回

该DSP核在综合、适配后,使用2750个逻辑单元,最高时钟频率可以达到18.6MHz。对DSP核的验证分为三步。4.1 单条指令的验证

这个过程验证由程序存储器向寄存器传送数据指令,为验证其他指令打下了基础。该指令可以为其他指令提供必要的源操作数。4.2 几条指令的组合验证指令集中的多数指令是采用这种方式进行验证的。例如:验证两个寄存器相加的指令,就需要先用程序存储器向寄存器传送数据的指令为寄存器赋初值。

图3是从SignalTapLogicAnalyzer中截取的图形。它显示了一条加法指令的运算结果,reg_8_16_REG[0]、reg_8_16_REG[1]分别对应两个寄存器,它们相加的结果送到累加器Q[31:16]。

MPYMPYSUMPYUSMPYUUMOVEBRBRCCALLRET

其中,算术逻辑运算类、乘法运算类指令的源操作数有多个可选项;数据传送类指令的源操作数和目的操作数均有多个可选项。例如,加法指令的第一个源操作数来自累加器、寄存器或者数据存储器;第二个源操作数来自累加器、寄存器、数据存储器或

图3 一条加法指令的运算结果

Fig.3 VerificationofanADDinstruction

 第2期李 辉等:一种嵌入式DSP核的设计及FPGA验证305 

4.3 软件实现IMAADPCM的编解码ΔD/A转3)直接将原始的PCM语音数据送到Σ2换器的输入端。

实验1结果表明,编码后的数据变为4位,实现了IMAADPCM编码的4∶1压缩;对比2、3两个实验,结果显示,二者具有相同的收听效果。以上实验结果说明,本文设计的DSP核能正确实现IMAADPCM的编解码。

为了进一步验证指令的正确性和DSP核的实用性,提出了一个基于DSP核的指令集软件实现IMAADPCM的编解码实验方案。图4为实验系统的方框图,图5为实物图。

5 结 论设计了一款16位定点DSP核,并用Altera公司的CycloneEP1C12Q240C8FPGA器件实现。该DSP总共消耗了2750个逻辑单元,最高工作时钟

频率可达18.6MHz。FPGA验证表明,该DSP核可以正确实现151条指令,并能完成IMAADPCM的编解码。本文设计的DSP核可以广泛应用于语音处理和实时控制领域。参考文献:

[1][2][3]

CILETTIMD.VerilogHDL高级数字设计[M].张

雅绮,李锵,译.北京:电子工业出版社,2005.朱子玉,李亚民.CPU芯片逻辑设计技术[M].北京:清华大学出版社,2005.

YOONSH,SUNWOOMH,MOON,etal.Designofahigh2qualityaudio2specificDSPcore[C]//IEEEWorkshoponSignalProcessingSystemsDesignandImplementation.2005:5092513.[4]

RYUCW,LEEDH,CHIHJ,etal.Designofdigit2alaudioDSPcore[C]//The1stIntForumStrategicTechnology.2006:59262.[5]

LAIDS,LINQ,CHENSZ,etal.AlowpowerDSPcoreforanembeddedMP3decoder[C]//The27thAnnConfIEEEIndustrialElectronicsSociety.2001:12217.[6]

BANGKH,JEONGNH,KIMJS,etal.DesignandVLSIimplementationofadigitalaudio2specificDSPcoreformp3/AAC[J].IEEETransConsumerElectronics,2002,48(3):7902795.

  图4的FPGA包括两部分电路,左边部分包含DSP核和存储器,也就是图1表示的电路,右边是

ΔD/A转换器的IP核。Σ2ΔD/A转换器的一个Σ2

输出连接到耳机。

实验方案如下:1)先把4k个采样率为16kHz的16位PCM语音数据存放在数据存储器中,然后,基于DSP核的指令集软件,实现IMAADPCM编码,并把编码后的数据写回数据存储器;2)基于DSP核的指令集,对编码后的数据进行软件解码,

ΔD/A转换器的输入端;并把解码后的数据送到Σ2

 

作者简介:李 辉(1974-),男(汉族),河南新乡人,博士研究生,主要研究方向为专用集成电路与系统。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务