工具与软件:
我想确切地了解一个时序关键型应用的 CLA 流水线和相关时序。
通过文档和其他论坛主题帖、我了解了以下内容:
-> MSGRAM 的工作方式与 LSRAM 相同,每个 LSRAM 和 MSGRAM 块都有自己的仲裁器
-> MSGRAM 不是双端口、但也是 CPU/CLA 之间的循环
-> LS/MSGRAM 块没有独立的读/写端口、而是共享 R/W 接口、因此写访问会停止读访问
->仲裁器在读取前对每个 CPU/CLA 执行优先写入操作(否则可能导致死锁)、然后在 CPU/CPA 之间循环
->访问始终没有等待状态(如果空闲)、1个周期
->外设读取访问始终会导致2次等待状态;3个周期/指令
是这样吗?
开放性问题:
->外设写入访问的情况如何?
它是否也会引起等待状态或它是单周期?
-> W 与 R1/2相位读取/写入冲突怎么样?
因此、CPU/CLA 之间的关联是明确的、但不确切地说是读取和写入之间的关联:
CLA 具有 F1-F2-D1-D2-R1-R2-E-W 的8级流水线
我的问题:W 是否会干扰 R1或 R2?
示例:
MMOV32 @μ F LSRAM0 _x、MR0;写入 LSRAM0
MNOP
MMOV32 MR2、@Ω LSRAM0 _y;此指令处于 R2阶段、而写入处于 W 阶段->插入了等待状态?
MMOV32 MR0、@Ω LSRAM0 _z;此指令处于 R1阶段、而写入处于 W 阶段->插入了等待状态?
MMOV32 @μ F MSGRAM _x、MR0;写入消息 RAM CLA->CPU
MNOP
MMOV32 MR2、@Ω LSRAM0 _y;此指令处于 R2阶段、而写入处于 W 阶段->不同的仲裁器、没有问题? (CPU 并行访问/轮询除外...)
MMOV32 MR0、@Ω LSRAM0 _z;此指令处于 R1阶段、而写入处于 W 阶段->不同的仲裁器、没有问题? (CPU 并行访问/轮询除外...)
MI16TOF32 MR0、@AdcaResultRegs ;->总是3个周期/2个等待状态?
MMOV32 @EPwm2Regs+108、MR0 ;-> 1个或3个周期?
如果有人能够确认我的假设并澄清开放式问题、那会更好。
谢谢!
Carl