第38卷第2期2008年4月微电子学Microelect ronicsVol 138, No. 2Apr 12008一种嵌入式DSP 核的设计及FPGA 验证李辉, 李平(电子科技大学电子薄膜与集成器件国家重点实验室, 成都610054摘要:设计了一个4级流水线的16位定点DSP 核。
该DSP 核支持151条指令指令需要两个机器周期外, Cy 2clo ne EP1C12Q240C8FP GA 器件实现, 可工作在集成开发环境QUAR YU S II 和FP GA , 结果表明, 该DSP 核能。
关键词:; FP ; IMA ADPCM中图分类号:文献标识码: A文章编号:100423365(2008 022*******Design and FPGA V erif ication of an Embedded DSP CoreL I Hui , L I Ping(S tate Key L aboratory of Elect ronic T hin Fil ms and I ntegrated Devices , Univ. of Elec. Sci. &Technol. of China , Cheng du 610054, P. R. ChinaA 162bit fixed 2point DSP core with 4pipeline stages is proposed. The instruction set of the DSP con 2Abstract :tains 138instructions , and all instructions take only one machine cycle except RET instruction , where 2cycles are necessary. The DSP core prototype was realized using Altera ’s EP1C12Q240C8FP GA with operation f requency of 18. 6M Hz. Based on QUAR TUS II software and FP GA board , the prototype was verified , which indicated that all instructions executed correctly and the codec f unction of IMA ADPCM was also realized as expected.K ey w ords :DSP core ; FP GA ; RAW dependence ; IMA ADPCM EEACC : 1265F计、指令集、FP GA 验证及结论。
1引言2系统设计DSP 已经广泛地应用到数字信号处理领域, 它或者以独立的器件形式在系统中出现, 或者以IP 核的形式嵌入到SOC 。
常见的16位通用DSP 有AD 公司的ADSP21系列、TI 公司的TMS320C54系列, 它们主要应用于语音处理和实时控制等领域。
然而, 通用的DSP 核会占用较大的芯片面积, 增加芯片成本。
因此, 需要设计专用的DSP 核[326]来提高性能、降低成本。
本文设计了一个16位嵌入式DSP 核, 用FP 2GA 实现并进行了验证。
结果表明, 该DSP 核能正确实现其指令集。
详细描述了该DSP 核的系统设收稿日期:2007207228; 定稿日期:2007209220存储器在基于DSP 核的系统中总是必需的, 为了清楚描述DSP 核的指令流、数据流, 图1所示的结构框图包括了DSP 核和存储器。
整个DSP 核的设计基于数据通道和控制器的结构[1], 译码段(ID 的控制器(Co nt roller 是DSP 核的控制器,DSP 核的其他部分是数据通道。
下面分别介绍DSP 核的各部分设计思想。
2. 1取指段取指段(IF 完成取指令的功能, 并计算出下次程序计数器(PC 的值。
下次的PC 值有3个来源:执行跳转或者调用指令时,PC 值是来自程序存储器的立即数; 执行返回指令时, PC 值来自数据存储器中的堆栈; 执行其他指令时,PC 值自动加1。
2. 2译码段译码段(ID 的控制器(Controller 根据指令寄存器(IR 的内容和DSP 核的状态信息, 译码产生DSP 核各部分所需的控制信号。
2. 3执行段执行段(EX 的任务是传送数据和进行运算。
与文献[2]中描述的load 2store 结构不同, 这里设计的数据传送方式灵活, 数据处理单元的源操作数来源丰富, 非常适合需要大量数据操作的数字信号处理任务。
该设计把大部分的数据传送和运算集中在执行段完成, 可以避免出现复杂的数据相关情况。
这将有效地减小编译器的设计难度或者汇编程序员的编程难度。
2. 4, 分析数据。
图2为一个单端口随机存储器的功能框图。
该存储器的读写时序和设计中的存储器读写时序相同。
读存储器中某个单元的内容时, 读控制信号(wr =0 、地址信号(address 在时钟上升沿载入寄存器, 经过一段时间, 相应存储单元的内容稳定地输出到数据端口(data ; 向存储器中某个单元写内容时, 写控制信号(wr =1 、地址信号(address 、待写数据(data 在时钟上升沿载入寄存器, 经过一段时间, 待写数据写入相应的存储单元。
数据传送的类型包括:寄存器(Registers 之间的数据传送、数据存储单元(Data Mem 送、器(Program 送。
(DPU 完成的, 运算类型参考指令集部分。
数据处理单元包括算术逻辑运算单元、乘法器和移位器。
图2单端口随机存储器的功能框图Fig. 2Block diagram of a single port RAM按照该存储器的读写时序, 不可能在流水线的一级中完成数据存储单元之间的数据传送。
因此, 设计中是在流水线的相邻两级分别完成数据存储器的读和写。
图1中的数据存储器(Data Mem 是一个双端口存储器,1口是只读端口,2口是读写端口。
1口的读控制信号(D_R1 不经过控制信号寄存器(CON 2SR , 直接连到数据存储器的1口控制信号图1DSP 核与存储器的结构框图Fig. 1Block diagram of DSP core and memory输入端;2口的写控制信号(D_W2 经过控制信号寄存器(CON 2SR 后连接到数据存储器的2口控制信号输入端, 因此数据存储器的写操作滞后读操作一个时钟周期。
考虑到图1中的数据存储器与图2类似, 也有一组输入寄存器, 那么数据存储器的读操作实际位于流水线的执行段(EX , 写操作位于执行段的下一级。
也就是说, 图1中, 的流水线实际为四级, 隐含了写存储器这一级。
图1中, 数据存储器、程序存储器、寄存器堆、数据总线(BU S1、BU S2 是16位的, 乘法器是16位的, 算术逻辑运算单元、移位器、累加器是40位的。
因此, 图1中的DSP 核是由四级流水线构成的16位DSP 核。
者程序存储器; 因此仅加法指令就对应12条指令。
本文设计的DSP 核共实现151条指令。
所有指令中, 只有RET 指令需要两个机器周期, 其他指令都在1个机器周期内完成。
由于写存储器操作在流水线的第4级完成, 而读存储器的操作在流水线的第3级进行, 因此有可能出现存储器的写后读(RA W 相关。
汇编程序员和编译器均可3指令集4大类的指令, 如表。
表1指令集T able 1I nstruction Set Overview本文设计的DSP 核用可综合的Verilog HDL描述, 通过Altera 公司的FP GA 集成开发环境QUAR TU S II 进行综合、适配并下载到型号为Cy 2clone EP1C12Q240C8的FP GA 器件进行了验证。
验证过程中, 主要使用QUA R TU S II 中的Signal Tap Logic Analyzer 和In2System Memory Content Editor 两个工具。
助记符算术逻辑运算AND OR NO T XOR ADD SUB COMP AS N EG RND ABS功能描述逻辑与逻辑或逻辑非逻辑异或加法计算减法计算比较大小算术移位取相反数四舍五入取绝对值乘法运算有符号数乘以有符号数有符号数乘以无符号数无符号数乘以有符号数无符号数乘以无符号数数据传送传送数据控制指令无条件跳转条件跳转调用子程序返回该DSP 核在综合、适配后, 使用2750个逻辑单元, 最高时钟频率可以达到18. 6M Hz 。
对DSP 核的验证分为三步。
4. 1单条指令的验证这个过程验证由程序存储器向寄存器传送数据指令, 为验证其他指令打下了基础。
该指令可以为其他指令提供必要的源操作数。
4. 2几条指令的组合验证指令集中的多数指令是采用这种方式进行验证的。
例如:验证两个寄存器相加的指令, 就需要先用程序存储器向寄存器传送数据的指令为寄存器赋初值。
图3是从Signal Tap Logic Analyzer 中截取的图形。
它显示了一条加法指令的运算结果,reg_8_16_REG[0]、reg_8_16_REG[1]分别对应两个寄存器, 它们相加的结果送到累加器Q[31:16]。
MP Y MP YSU MP YUS MP YUU MOV E BR BRC CALL RET其中, 算术逻辑运算类、乘法运算类指令的源操作数有多个可选项; 数据传送类指令的源操作数和目的操作数均有多个可选项。
例如, 加法指令的第一个源操作数来自累加器、寄存器或者数据存储器; 第二个源操作数来自累加器、寄存器、数据存储器或图3一条加法指令的运算结果Fig. 3Verification of an ADD instruction4. 3软件实现IMA ADPCM 的编解码ΔD/A 转3 直接将原始的PCM 语音数据送到Σ2换器的输入端。
实验1结果表明, 编码后的数据变为4位, 实现了IMA ADPCM 编码的4∶1压缩; 对比2、3两个实验, 结果显示, 二者具有相同的收听效果。
以上实验结果说明, 本文设计的DSP 核能正确实现IMA ADPCM 的编解码。
为了进一步验证指令的正确性和DSP 核的实用性, 提出了一个基于DSP 核的指令集软件实现IMA ADPCM 的编解码实验方案。
图4为实验系统的方框图, 图5为实物图。
5DSP 核, 并用Altera 公EP1C12Q240C8FP GA 器件实现。
该DSP 总共消耗了2750个逻辑单元, 最高工作时钟频率可达18. 6M Hz 。