SigmaStudio是一款图形化的DSP工程开发工具,其控件库中包含了丰富的DSP控件资源,然而,用户也可以自行使用汇编语言设计开发属于自己的控件,在必要时导入使用。
(一)安装设计控件
1、到官网下载DesignerNew.dll
2、将下载的dll复制到SigmaStudio的安装路径下面
3、打开SigmaStudio,选择Tools -> Add-Ins Browser ->Add DLL,将刚才的DesignerNew.dll添加进去
4、新建工程,在TreeToolBox窗口展开 Designer Controls -> Algorithm Design -> New Designer Control,可以看到新添加的用户控件
5、编辑控件,将New Designer Control拖出来,右键点击,Show Design window,输入以下代码并保存,这时一个基本的控件便设计完成。
START_CELL
$region Generated Code
// This is generated code.
// Do not edit code in this area it may be deleted.
// You may move code out of this region safely
$inpin data(DM1,1) InPin1;
$outpin data(DM1,1) OutPin1;
$inpin data(DM1,1) InPin2;
$endregion
module @inst
{
data gain_left = 0.5;
data gain_right = 0.5;
//load 2 inputs
X0 = DM1(P14 + InPin1);
X1 = DM1(P14 + InPin2);
//load gains
Y0 = DM[gain_left];
Y1 = DM[gain_right];
//multiply and sum:A0 = X0*Y0 + X1*Y1
A0 = [X0 X1].[Y0 Y1];
nop;
//write output
DM1(P14 + OutPin1) = A0;
}
6、点击window-> open parameter window设置Runtime Parameters,例如Gain、Frequency等
(二)汇编语言在SigmaStudio中的使用
1、所有寄存器关键字只有大写有效,例如X0;而变量类型关键字则只有小写有效;指令则大小写皆可,例如nop/NOP
2、常用指令集命名
Data Registers
X0.......X7 X寄存器从0到7
Y0.......Y7 Y寄存器从0到7(ADAU14X系列DSP包含8个X寄存器和8个Y寄存器)
XY0......XY7 X寄存器和Y寄存器共同储存复杂的数据
[X0X1]......[X6X7] 存储双精度数据或者并行指令
Accumulator Registers
A0.G ...... A7.G A寄存器的保护部分(16位)
A0.H ....... A7.H A寄存器的高位部分(32位)
A0.L ....... A7.L A寄存器的低位部分(32位)
Memory Pointer Registers(DAGs)
P0 ...... P15 地址寄存器0到15(等同于P#.I)(16位)
P0.B ...... P15.B 基本寄存器0到15
P0.L ...... P15.L 长度寄存器0到15
P0.L ...... P15.M Modify 寄存器0到15
Memory
DM0 Data memory 0
DM1 Data memory 1
PM Program memory
cli / CLI 失能内核中的所有中断
sti / STI 使能内核中的所有中断