基于TL6678F-EasyEVM评估板——DSP算法案例开发手册

核心板简介

创龙科技SOM-TL6678F是一款基于TI KeyStone架构C6000系列TMS320C6678八核C66x定点/浮点DSP以及Xilinx Kintex-7 FPGA处理器设计的高端异构多核工业级核心板。核心板内部DSP与FPGA通过SRIO、EMIF16、I2C通信总线连接,并通过工业级高速B2B连接器引出千兆网口、PCIeHyperLink、EMIF16、GTX等高速通信接口。核心板经过专业的PCB Layout和高低温测试验证,稳定可靠,可满足各种工业应用环境。

用户使用核心板进行二次开发时,仅需专注上层运用,降低了开发难度和时间成本,可快速进行产品方案评估与技术预研。

基于TL6678F-EasyEVM评估板——DSP算法案例开发手册

图 1 核心板正面图

目 录

前 言 3

1 dsplib_fft案例 4

2 dsplib_fir案例 9

3 dsplib_iir案例 14

4 dsplib_matrix案例 19

5 imglib_sobel案例 21

6 imglib_threshold案例 25

前 言

(裸机)算法案例基于多核软件开发包BIOS-MCSDK中的算法库dsplib_c66x_3_1_0_0、imglib_c66x_3_1_1_0以及mathlib_c66x_3_0_1_1进行开发。

算法案例位于产品资料“4-软件资料DemoDSP_DemoAlgorithm-demos”路径下。案例目录说明如下表,其中bin目录存放程序可执行文件,project目录存放案例工程源文件。

本文档案例程序默认使用DSP端主频为1GHz、DSP端DDR3容量为1GByte的核心板,通过TL-XDS200仿真器加载运行进行操作效果演示。请通过Micro USB线将调试串口与PC机进行连接,打开串口调试终端SecureCRT并正确进行串口连接设置。

表 1

目录

文件/目录

说明

bin

xxx.out

程序可执行文件

project

xxx.c

程序源码文件

C66x.cmd

内存配置链接文件

driver

驱动文件存放目录

system

平台文件存放目录

.CCSproject/.cproject/.project

CCS工程文件

DSPLIB函数开发参考资料:BIOS-MCSDK多核软件开发包安装目录“dsplib_c66x_3_1_0_0packagestidsplibdocsdoxygenDSPLIB.chm”。

IMGLIB函数开发参考资料:BIOS-MCSDK多核软件开发包安装目录“imglib_c66x_3_1_1_0docsIMGLIB_Users_Manual.chm”。

MATHLIB函数开发参考资料:BIOS-MCSDK多核软件开发包安装目录“mathlib_c66x_3_0_1_1docs”。

dsplib_fft案例

案例说明

案例功能:调用MATHLIB中的sinsp函数产生单精度测试信号,以及调用sinsp和cossp函数生成快速傅里叶变换(FFT)所需旋转因子。调用DSPLIB中的DSPF_sp_FFTSPxSP函数对测试信号进行快速傅里叶变换(FFT),调用DSPF_sp_ifftSPxSP函数进行快速傅里叶逆变换(IFFT),采样点从8递增到4096,并统计运算时间。

案例测试

请运行程序,CCS的Console窗口将会打印FFT和IFFT运算时间。

以N = 4096为例,不使能Cache时FFT运算时间为254.646us,使能Cache时FFT运算时间为53.292us,效率提升约4.8倍。不使能Cache时IFFT运算时间为249.655us,使能Cache时IFFT运算时间为57.027us,效率提升约4.4倍。

基于TL6678F-EasyEVM评估板——DSP算法案例开发手册

图 1

表 2

参数

解析

Cache Disabled/Cache Enable

不使能/使能L1P与L1D Cache

DSPF_sp_fftSPxSP/DSPF_sp_ifftSPxSP

单精度FFT/IFFT

N

样本长度

radix

运算基数

(当N为4的幂时,radix为4,否则radix为2)

cycles

运算周期

time

运算时间

关键代码

main函数中申请数据缓冲区,fft_input数组用于存放FFT的信号输入数据,fft_output数组用于存放经FFT处理的信号数据,ifft_output数组用于存放经IFFT处理的信号数据,fft_twiddle数组用于存放FFT旋转因子,ifft_twiddle数组用于存放IFFT旋转因子,signal_data数组用于存放自定义信号数据。

基于TL6678F-EasyEVM评估板——DSP算法案例开发手册

图 2

生成测试信号,并存放于复数数组中。其中实部数据为两个正弦波的叠加信号,一个正弦波的振幅为5、频率为50Hz,另一个正弦波的振幅为15、频率为150Hz,虚部数据均为0。

基于TL6678F-EasyEVM评估板——DSP算法案例开发手册

图 3

不使能L1 Cache,对复数数据进行FFT以及IFFT,并统计运算时间。

基于TL6678F-EasyEVM评估板——DSP算法案例开发手册

图 4

基于TL6678F-EasyEVM评估板——DSP算法案例开发手册

图 5

使能L1 Cache,对复数数据进行FFT以及IFFT,并统计运算时间。

基于TL6678F-EasyEVM评估板——DSP算法案例开发手册

图 6

为测试不同状态下的功耗,测试完成后循环进行FFT以及IFFT,使DSP核心处于高负载状态。循环过程中,不检测数据的正确性。

基于TL6678F-EasyEVM评估板——DSP算法案例开发手册

图 7

dsplib_fir案例

案例说明

案例功能:调用C标准库中的sin函数产生测试信号,调用DSPLIB中的DSPF_sp_fir_r2函数对测试信号进行有限长单位冲激响应滤波(FIR),输出采样点为1024,并统计运算时间。

案例测试

请运行程序,CCS的Console窗口将会打印FIR运算时间。

基于TL6678F-EasyEVM评估板——DSP算法案例开发手册

图 8

点击CCS的“Tools -> Graph -> Single Time”,在弹出的界面中按照下图内容进行配置。其中Start Address选项填写fir_input数组,此数组用于存放FIR的信号输入数据。点击OK,即可查看测试信号的原始波形。

基于TL6678F-EasyEVM评估板——DSP算法案例开发手册

图 9

基于TL6678F-EasyEVM评估板——DSP算法案例开发手册

图 10

表 3

参数

解析

Acquisition Buffer Size

数据读取长度

Dsp Data Type

数据读取类型

Start Address

数据读取起始地址

Display Data Size

数据显示长度

基于TL6678F-EasyEVM评估板——DSP算法案例开发手册

图 11

点击CCS的“Tools -> Graph -> Single Time”,在弹出的界面中按照下图内容进行配置。其中Start Address选项填写fir_output数组,此数组用于存放经FIR处理的信号数据。点击OK,即可查看经FIR处理的信号波形。

基于TL6678F-EasyEVM评估板——DSP算法案例开发手册

图 12

基于TL6678F-EasyEVM评估板——DSP算法案例开发手册

图 13

基于TL6678F-EasyEVM评估板——DSP算法案例开发手册

图 14

关键代码

基于TL6678F-EasyEVM评估板——DSP算法案例开发手册

图 15

dsplib_iir案例

案例说明

案例功能:调用C标准库中的sin函数产生测试信号,调用DSPLIB中的DSPF_sp_iir函数对测试信号进行无限长单位冲激响应滤波(IIR),输出采样点为1024,并统计运算时间。

案例测试

请运行程序,CCS的Console窗口将会打印IIR运算时间。

基于TL6678F-EasyEVM评估板——DSP算法案例开发手册

图 16

点击CCS的“Tools -> Graph -> Single Time”,在弹出的界面中按照下图内容进行配置。其中Start Address选项填写iir_input数组,此数组用于存放IIR的信号输入数据。点击OK,即可查看测试信号的原始波形。

基于TL6678F-EasyEVM评估板——DSP算法案例开发手册

图 17

基于TL6678F-EasyEVM评估板——DSP算法案例开发手册

图 18

基于TL6678F-EasyEVM评估板——DSP算法案例开发手册

图 19

点击CCS的“Tools -> Graph -> Single Time”,在弹出的界面中按照下图内容进行配置。其中Start Address选项填写iir_output数组,此数组用于存放经IIR处理的信号数据。点击OK,即可查看经IIR处理的信号波形。

基于TL6678F-EasyEVM评估板——DSP算法案例开发手册

图 20

基于TL6678F-EasyEVM评估板——DSP算法案例开发手册

图 21

基于TL6678F-EasyEVM评估板——DSP算法案例开发手册

图 22

关键代码

基于TL6678F-EasyEVM评估板——DSP算法案例开发手册

图 23

dsplib_matrix案例

案例说明

案例功能:调用DSPLIB中的DSPF_sp_mat_mul函数,将矩阵A与矩阵B相乘,并将结果储存在矩阵C中。

案例说明

请运行程序,CCS的Console窗口将会打印运算结果。

基于TL6678F-EasyEVM评估板——DSP算法案例开发手册

图 24

基于TL6678F-EasyEVM评估板——DSP算法案例开发手册

图 25

关键代码

通过SIZE指定矩阵大小。

基于TL6678F-EasyEVM评估板——DSP算法案例开发手册

图 26

初始化矩阵A和矩阵B。

基于TL6678F-EasyEVM评估板——DSP算法案例开发手册

图 27

调用DSPF_sp_mat_mul函数进行矩阵相乘运算。

基于TL6678F-EasyEVM评估板——DSP算法案例开发手册

图 28

imglib_sobel案例

案例说明

案例功能:通过fread函数读取BMP灰度图像,并调用IMGLIB中的IMG_sobel_3x3_8函数对图像进行Sobel(边缘检测)算法处理,再通过fwrite函数将经处理得到的BMP图像进行保存。

案例测试

将案例image目录下的bmp灰度图像文件gray.bmp拷贝至程序可执行文件相同目录下。

请运行程序,CCS的Console窗口将会在1~2min内打印如下信息,同时在程序可执行文件相同目录下生成经Sobel(边缘检测)算法处理得到的图像文件sobel.bmp。

本案例测试耗时1~2min,主要因为系统编程如fread,fwrite函数运行占用时间较长。

基于TL6678F-EasyEVM评估板——DSP算法案例开发手册

图 29

基于TL6678F-EasyEVM评估板——DSP算法案例开发手册

图 30

关键代码

通过fopenfseek和fread等函数获取图像大小,并读取图像文件。

基于TL6678F-EasyEVM评估板——DSP算法案例开发手册

图 31

根据图像文件头信息申请内存空间。

基于TL6678F-EasyEVM评估板——DSP算法案例开发手册

图 32

读取图像位图信息,并调用IMGLIB中的IMG_sobel_3x3_8函数对图像进行Sobel(边缘检测)算法处理,再通过fwrite函数将经处理得到的BMP图像进行保存。

基于TL6678F-EasyEVM评估板——DSP算法案例开发手册

图 33

imglib_threshold案例

案例说明

案例功能:通过bmp_read_header函数读取BMP灰度图像,并调用IMGLIB中的IMG_thr_le2max_8和IMG_thr_le2min_8函数对图像进行二值化算法处理,再通过fwrite函数将经处理得到的BMP图像进行保存。

案例测试

将案例image目录下的BMP灰度图像文件gray.bmp拷贝至程序可执行文件相同目录下。

请运行程序,CCS的Console窗口将会在1~2min内打印如下信息,同时在程序可执行文件相同目录下生成经二值化算法处理得到的图像文件threshold.bmp。

本案例测试耗时1~2min,主要因为系统编程如fread,fwrite函数运行占用时间较长。

基于TL6678F-EasyEVM评估板——DSP算法案例开发手册

图 34

基于TL6678F-EasyEVM评估板——DSP算法案例开发手册

图 35

关键代码

通过fopen、fseek和fread等函数获取图像大小,并读取图像文件。

基于TL6678F-EasyEVM评估板——DSP算法案例开发手册

图 36

根据图像文件头信息申请内存空间。

基于TL6678F-EasyEVM评估板——DSP算法案例开发手册

图 37

读取图像位图信息,并调用IMGLIB中的IMG_thr_le2max_8和IMG_thr_le2min_8函数对图像进行二值化算法处理,再通过fwrite函数将经处理得到的BMP图像进行保存。

基于TL6678F-EasyEVM评估板——DSP算法案例开发手册

图 38

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023年4月25日 上午10:34
下一篇 2023年4月25日 上午10:50

相关推荐

  • 开水壶-蓝领城邦:加强劳动合同管理,助力建筑行业发展

    建筑业是一个“高危”行业,随时随地存在着隐藏的危险。劳动合同风险更要严格把控,把一切不好的苗头扼杀在摇篮中。加强劳动合同管理,包括进行法制教育,健全各项管理制度,开展监督检查等活动…

    科研百科 2022年8月5日
    173
  • 科研项目结题具体金额审核严格么科研项目结题具体金额审核严格么

    科研项目结题具体金额的审核是一项重要的工作,旨在确保科研项目的顺利完成,并为研究人员提供合理的经济支持。然而,对于科研项目结题具体金额的审核是否严格,存在着不同的看法。 有人认为,…

    科研百科 2024年9月4日
    25
  • 科幻小说中的高科技

    科幻小说高科技: 一个未来世界的指南 随着科技的不断进步,未来的世界变得越来越不可思议。在这个世界里,人类创造了一种名为“超级智能体”的高科技生物,它们具有超越人类的能力,可以自主…

    科研百科 2024年10月11日
    10
  • 国防科研项目

    国防科研项目:探索宇宙深处的奥秘 随着现代战争的不断加剧,国防科研项目的重要性也越来越凸显。为了保障国家的安全和防御能力,国防科研项目不断地进行着,探索宇宙深处的奥秘也是其中的一个…

    科研百科 2024年10月18日
    0
  • 工程合同管理要点有哪些(工程合同管理要点)

    工程合同管理要点 随着工程领域的不断发展,工程合同管理已经成为了工程行业中不可或缺的一部分。一个好的合同管理团队可以帮助企业更好地管理合同,确保项目的成功完成,同时也能够降低风险,…

    科研百科 2024年6月5日
    42
  • 天津写字楼办公网

    天津写字楼办公网: 寻找最佳办公地点? 随着经济的发展和城市化的加速,越来越多的企业选择在天津建立办公室或分支机构。天津作为我国的首都之一,有着独特的地理位置和丰富的人力资源,因此…

    科研百科 2024年9月21日
    19
  • 宁津大曹镇:积分管理激发党建活力

    宁津讯(张立智 赵艺丹)“现在镇上推行的党建积分银行制度,使党建工作‘看得见摸得着’,大家的劲头可足哩。”3月4日,大曹镇西梁村党支部书记梁洪奎对笔者说。 梁洪奎口中的积分银行,是…

    科研百科 2022年12月31日
    80
  • 自动生成施工进度计划的软件

    自动生成施工进度计划的软件 随着城市建设的不断发展,施工项目越来越多,但是传统的手动施工进度计划方法已经不能满足现代施工的需要。因此,自动生成施工进度计划的软件应运而生。 自动生成…

    科研百科 2024年10月12日
    5
  • OA系统如何打造全面流程化的项目管理、项目核算(oa项目实施流程)

    自从二进制软件OA系统基于Colloa BPM打通了ERP/CRM/PM/APP等多系统无缝集成,员工只需在一个系统里工作。还发展搭建了一套端到端的项目管理平台,消除了业务断点,打…

    科研百科 2022年12月20日
    141
  • web excel 开源

    Web Excel开源:让Excel更容易使用和共享 随着互联网的发展,Excel已经成为了人们工作中不可或缺的工具之一。但是,随着Excel的普及,也带来了一些问题,比如使用Ex…

    科研百科 2024年10月31日
    7