基于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

相关推荐

  • 科研项目财务评价材料

    科研项目财务评价材料 科研项目财务评价是评价科研项目财务能力的重要指标,也是科研项目决策和资助的基础。科研项目财务评价材料通常包括科研项目的预算、财务报告、财务指标等。 预算是科研…

    科研百科 2025年3月6日
    0
  • 行业方案丨房地产业协同办公解决方案(房地产部门协同机制)

    一、行业背景 房地产企业的运作是以项目为中心的,一个项目从开始到结束经常需要几年的时间,涉及公司几乎所有的部门,部门间的协同与沟通,以及在此基础上的整合提升能力,是房地产企业实施信…

    科研百科 2024年3月20日
    79
  • 农业科研项目批地

    农业科研项目批地的重要性 随着现代社会的不断发展,农业科研项目也在不断地进行中。这些项目旨在提高农业生产效率和品质,促进农业可持续发展。然而,农业科研项目的批地也成为了一个关键问题…

    科研百科 2025年4月2日
    0
  • 右江区信访局党支部“一支部一特色”党建品牌创建工作成效(一党委一品牌一支部一特色创建项目)

    为领导分忧·给群众满意 品牌名称:为领导分忧·给群众满意·搭建党群连心桥 品牌理念:在遵循党建工作基本规律的基础上,积极引入品牌理念,开展党建品牌创建活动。着力打造“心灵驿站”,将…

    科研百科 2023年6月22日
    761
  • 如何做档案管理方案

    如何做档案管理方案 档案管理对于企业、政府、学校等机构来说非常重要。一个好的档案管理方案可以提高文件管理效率,保证文件的安全,并方便日后的查阅和使用。以下是一些档案管理方案的建议:…

    科研百科 2024年10月9日
    11
  • 上海医学院基础科研项目

    上海医学院基础科研项目 近年来,随着医学研究的深入,基础科学的研究也在不断发展。在上海医学院的科学家们看来,基础科研项目是推动医学进步的重要力量。 上海医学院基础科研项目涵盖了广泛…

    科研百科 1天前
    1
  • 强身健体科研项目简介

    强身健体科研项目简介 随着现代社会的不断发展,人们的生活方式也发生了变化,越来越多的人开始注重身体健康。然而,由于繁忙的工作、不良的生活习惯和缺乏运动等原因,很多人的身体健康状况并…

    科研百科 2025年4月6日
    2
  • 项目进度管理的常用工具(项目进度管理的常用工具有哪些)

    当今项目管理领域有许多工具可用于项目进度管理。以下是其中一些常用的工具: 1. 甘特图:甘特图是一种流行的项目进度管理工具,它以时间为基础,显示项目中每个任务的开始和结束日期。它可…

    科研百科 2024年4月26日
    152
  • 指导性科研项目

    指导性科研项目: 探索量子计算中的随机性 量子计算是当前量子物理学领域中备受关注的一个领域。与传统计算机不同,量子计算机使用量子比特而不是传统二进制比特来存储和处理信息。量子比特具…

    科研百科 2024年12月2日
    0
  • 项目经费预算

    项目经费预算 项目经费预算是项目开始前必不可少的一部分,它包含了项目中所需的所有开支,包括人员费用、物料费用、工程费用、运营费用等等。一份好的项目经费预算不仅可以帮助项目团队更好地…

    科研百科 2024年9月12日
    21