第3章TMS320LF240x的CPU功能模块和时钟模块本章介绍TMS320LF240x的CPU模块和时钟模块
1CPU功能模块TMS320LF240x的CPU模块包括:输入定标移位器、中央算术逻辑单元(CALU)和乘法器等
CPU模块的功能结构如图3
1输入定标移位器LF240xDSP的CPU输入定标移位器将来自程序/数据存储器的16位数据调整为32位数据送到中央算术逻辑单元(CALU)
因此,输入定标移位器的16位输入与数据总线相连,32位输出与CALU单元相连
该输入定标移位器在算术定标以及逻辑操作设置时非常有用
输入定标移位器对输入数据进行0-15位左移
左移时,输出的最低有效位(LSB)为0,最高有效位(MSB)根据状态寄存器ST1(将在3
6小节介绍)的SXM位(符号扩展方式)的值来决定是否需要进行符号扩展
当SXM=1时,则高位进行符号扩展;当SXM=0时,则高位填0
移位的次数由包含在指令中的常量或临时寄存器(TREG)中的值来指定
2乘法器LF240x采用一个1616☓位的硬件乘法器,可以在单个机器周期内产生一个32位的有符号或无符号乘积
除了执行无符号乘法指令(MPYU)外,所有的乘法指令均执行有符号的乘法操作,即相乘的两个数都作为二进制的补码数,而运算结果为一个32位的二进制的补码数
乘法器接收的两个乘数,一个来自16位的临时寄存器(TREG),另一个通过数据读总线(DRDB)取自数据存储器,或通过程序读总线(PRDB)取自程序存储器
两个输入值相乘后,32位的乘积结果保存在32位的乘积寄存器(PREG)中
PREG的输出连接到乘积定标移位器,通过乘积定标移位器,乘积结果可以从PREG传到CALU或数据存储器乘积定标移位器对乘积的结果采用4种乘积移位方式,如表3
移位方式由状态寄存器ST1的乘积移位方式位(PM)