This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F28377D: CLA模块疑问点

Part Number: TMS320F28377D

TI的工程师,您好,

在学习使用CLA(type1型)过程中,我遇到以下的问题没有弄明白,希望得到您的指导。

1)看到的资料中提到,CLA采用八级流水线方式,不建议在CLA中进行大量的逻辑判断。这个是不是由于进行逻辑判断时会需要清空流水线造成时间的浪费,还是说会导致计算错误?

2)Enhancing the Computational Performance of the C2000Tm这个文档中提到Additionally, the multiplier on the CLA does not require any delay slots, thus providing true single-cycle performance.这是指CLA没有延迟槽的设计吗?那CLA在做分支跳转时的流水线是怎么工作的?另外,single-cycle performance这个概念是指什么意思

3)关于MSTOP,手册中提到task任务的终止是靠MSTOP实现的。我现在想实现的是用epwm过零中断循环触发CLA的task1,是否需要加MSTOP指令?在论坛这个帖子里看到MSTOP指令在.asm文件中,这是汇编如何用C实现?

4)CLA不支持64bit数据,我做了测试变量数据类型为unsigned long long,在debug界面下看到每个变量的仍然占了4个16bit内存,见下面描述(公司电脑无法上传图片,请见谅)这是为何?

expression       type                            Address

test_data0       unsigned  long long     0x00008000

test_data1       unsigned  long long     0x00008004

5)CLA可用的编程和数据RAM,在datasheet中标注出是LS0RAM~LS5RAM,为何文档《C2000_CLA_Software_Development_Guide》却提到低64k都可以使用(CLA program memory is now user selectable and can
reside anywhere in the lower 64k address space (excludingthe M0 and M1 space).)

6)例程cla_adc_fir32中会先启动一次task8,后续也没有再用这个task,这是何意?是否在使用CLA模块时都需要这么操作?另外,该文档CLA任务使用汇编写的,可否提供c文件?

问题比较多,麻烦您了。谢谢!