第14章其它DSP设计库000001.ppt
《第14章其它DSP设计库000001.ppt》由会员分享,可在线阅读,更多相关《第14章其它DSP设计库000001.ppt(148页珍藏版)》请在三一文库上搜索。
1、第14章 其它DSP设计库,14.1 总线控制库 14.2 复数信号库 14.3 Gates库 14.4 状态机函数库 14.5 Storage库,14.1 总线控制库,14.1.1 AltBus模块 AltBus模块可以将浮点Simulink总线变成定点类型的总线。可以将AltBus插进一个数据或I/O口通道,从而产生输入和输出端口。,当把一个信号变为定点类型时,必须设定其位宽。确定特定的位宽,可以通过多种方式来实现,如对结果进行截位、补位或含低位的方法实现。如果选择含低位或补位的方法,就必须在电路中插入合适的逻辑电路,这都是AltBus 模块的工作。表14-1是AltBus 模块的参数设定
2、表。,表14-1 AltBus模块的参数说明,在Simulink设计中,以下模式可使用AltBus 模块: (1) AltBus Input Port & Output Port Modes; (2) AltBus Internal Node Mode; (3) AltBus Black Box Input Output Mode; (4) AltBus Constant Mode。 下面将对这些模式分别给予说明。,1. AltBus输入/输出端口模式 输入端口和输出端口模式(AltBus Input Port & Output Port Modes)主要用于定义硬件实现的接口,以及将浮点Si
3、mulink信号(来自基本Simulink模块)转化成有符号二进制小数类型(用于为DSP Builder模块提供数据)。 表14-2和图14-1显示了浮点数(4/3 = 1.333)是如何转变成有3个不同小数点位置的SBF格式的数据的。,表14-2 浮点数与SBF格式数据的转换,2. AltBus内部节点模式 AltBus内部节点模式(AltBus Internal Node Mode)用来将一种SBF格式的Simulink信号转变成另一种格式的信号,或用来定义内部节点的总线宽度。这种内部节点可以在硬件中实现。图14-2给出了内部节点模式以及输入端口模式的AltBus的用法。在此例中,具有(
4、10 . 10 )SBF格式的20位总线被转变成了具有( 2 . 2 )SBF格式的4位总线。,在VHDL中,这种算法操作导致从20位总线(AltBus(19 DOWN TO 0)截为4位总线(AltBus(3 DOWN TO 0),即 AltBus(3 DOWN TO 0)= AltBus(11 DOWN TO 8),图14-1 Alt Bus模块应用示例,图14-2 内部节点模式实例,3. AltBus黑盒子输入/输出模式 AltBus黑盒子输入/输出模式(AltBus Black Box Input Output Mode)是用来进行层次化设计的。如果不希望SignalCompiler将
5、子层次的设计转化为VHDL语言,而只是在VHDL中以顶层文件出现,就可以使用此模式。因此,当Simulink设计中具有不同的VHDL模块是十分有用的,这时应注意,VHDL模块的端口引脚名必须与Simulink模块中的引脚名相一致。 图14-3对Black Box Input Output模式作了说明。,4. AltBus常数模式 当一个总线或一个位线设置成一个常数值时就可以使用这种模式(AltBus Constant Mode)。 SignalCompiler将这种常数值转化成VHDL中的STD_LOGIC或STD_LOGIC_ VECTOR。 在综合中,综合器会大大降低有常数信号输入的逻辑电
6、路的资源耗用。,图14-3 Black Box Input Output模式说明,14.1.2 输入/输出常数模块 输入/输出常数模块是由AltBus模块产生的。这些模块只具有AltBus输入、输出和常数功能的部分功能。表14-3是该模块的输入参数表,表14-4是该模块的输出参数表。,表14-3 输入模块参数说明,表14-4 输出模块参数说明,14.1.3 小数点确定模块 当二进制数小数点模块移动到输入总线小数点位置后,输出位宽仍保持与输入位宽一致。 图14-4显示了使用Binary Point Casting模块的设计实例。表14-5是Binary Point Casting参数表。,图14
7、-4 Binary Point Casting设计示例,表14-5 Binary Point Casting模块参数说明,14.1.4 BusBuild模块 BusBuild 模块用于构建由单个二进制数位输入的总线。输出总线是以有符号二进制小数的表达方式定义的。使用此模块可根据需要确定总线的数据类型及小数点两边的位数。 BusBuild模块和ExtractBit模块最常见的是用于布尔(Boolean)数据类型的算术操作。BusBuild对应于VHDL的RTL电路只是一条信号线。 图14-5是使用BusBuild模块的一个实例。,图14-5 BusBuild 模块使用实例,表14-6是此模块的参
8、数表。,表14-6 Bus Build模块参数说明,14.1.5 Bus Concatenation模块 总线合并模块(Bus Concatenation Block)的功能是将两条总线A和B合并起来,其结果的位宽是A+B的位宽,其中总线A放在输出总线高位(MSB),B是在输出总线的低位。 表14-7是此模块的参数表。,表14-7 Bus Concatenation模块参数说明,14.1.6 Bus Conversion模块 总线类型转换(Bus Conversion)模块的功能是将一种节点数据类型的总线向另一种类型转换。 表14-8是此种模块的参数表。,表14-8 Bus Conversio
9、n模块参数设置说明,图14-6是Bus Conversion模块的使用示例。,图14-6 Bus Conversion模块的使用示例,14.1.7 Extract Bit模块 位提取模块(Extract Bit Block)的功能是读取有符号二进制小数数据类型的Simulink总线,输出以Extracted Bit参数设定的总线位。表14-9给出了此模块的参数说明。图14-7是使用Extract Bit模块的示例。,图14-7 Extract Bit模块使用示例,表14-9 Extract Bit模块参数说明,14.2 复数信号库,与Simulink相同,DSP Builder也支持复数信号类
10、型。使用复数可以简化许多诸如实用系统的设计、FFT、I-Q调整、复数滤波器等运算操作。若将DSP Builder模块与复数信号库(Complex Signals Library)中的模块相连(例如将AltBus与复数AddSub相连),就必须在两个连接模块间使用Real-Imag to Complex模块或Complex to Real-Imag模块。,14.2.1 Butterfly 算子模块 Butterfly Operator模块主要是对复数有符号整数作如下算术操作: A = a + b w B = a - b w 其中a,b,w,A和B是有符号整数类型的复数,即 a = x + j X
11、 b = y + j Y w = v + j V,A = ( x + y v ) Y V + j (X + Y v + y V ) B = ( x + y v ) + Y V + j (X Y v y V ) 此函数是以最大位宽精度来进行运算并操作的。A和B的最大位宽精度是 2 输入位宽 + 2,用于输出端口的A和B的位宽是用输出位宽与输出LSM位参数来规定的,例如,若输入位宽是16,输出位宽也是16,而输出LSB位宽是4,则最大位宽精度就是34位,而输出端口就可表示为 A 16:4 和 B 16:4 表14-10是Butterfly算子模块参数表。 图14-8是Butterfly算子模块应用
12、示例。,表14-10 Butterfly算子模块参数说明,图14-8 Butterfly算子模块应用示例,14.2.2 复数加减模块 复数加减模块(Complex Add Sub Block )的功能是将两个标量复数输入相加或相减后输出,图14-9是此模块的应用示例。 表14-11是Complex Add Sub模块的参数表。,图14-9 Complex Add Sub 和Complex Product模块应用示例,表14-11 复数加减模块参数说明,14.2.3 复数乘积模块 复数乘积模块(Complex Product Block)的功能是将两个标量复数输入相乘后输出。表14-12是此模块
13、的参数表。图14-9中有此模块的应用示例。,表14-12 复数乘积模块参数说明,14.2.4 复数共轭模块 复数共轭模块(Complex Conjugate Block)的功能是对输入的标量复数取共轭或取反后输出。表14-13是此模块的参数表。 图14-10是此模块的应用示例。,表14-13 复数共轭模块参数说明,图14-10 Complex Conjugate Block应用示例,14.2.5 复数与Real-Imag间的连接模块 这种模块有两类,即Complex to Real-Imag模块和Real-Imag to Complex模块。 1. Complex to Real-Imag模块
14、 Complex to Real-Imag模块的功能是将一复数输入构建成一个定点实部和定点虚部函数并输出。表14-14是此模块的参数表。 图14-11是Complex to Real-Imag模块的应用示例。,表14-14 Complex to Real-Imag模块参数说明,图14-11 Complex to Real-Imag模块应用示例,2. Real-Imag to Complex 模块 Real-Imag to Complex 模块的功能是将实部和虚部输入构建成定点复数输出。表14-15是此模块的参数表。,表14-15 Real-Imag to Complex 模块参数说明,14.2
15、.6 复数多路选择器模块 复数多路选择器模块(Complex Multiplexer Block)是一个2选1的多路选择器,其选控线是一个非复数线。 14.2.7 复数延迟模块 复数延迟模块 (Complex Delay Block)可以按照Depth参数设定的延迟量对通过的数据进行延迟。注意,其输入必须是复数值。表14-16是此模块的参数表。,表14-16 复数延迟模块参数说明,14.2.8 复数常数模块 复数常数模块只输出定点复数常数值。表14-17是此模块的参数表。,表14-17 复数常数模块的参数说明,14.3 Gates 库,14.3.1 Case语句模块 Case语句模块的功能是把
16、输入信号(这信号的类型必须是有符号或无符号整数)与一组事件数值作比较,而对每一事件数值产生一个一位的二进制输出。比较事件的数量没有限制。在每个事件表述后加逗号。此外,还可以对每一事件设定多组条件,多种条件间可以用竖线来分隔。,例如,对于有4个事件的情况,其中第1个事件有两个条件1和2,则在“Case Values”栏中可以这样填号:1 | 2,3,4,5。表14-18是Case语句模块的参数表。,表14-18 Case语句模块参数说明,图14-12是Case 语句模块的应用示例。例14-1是SignalCompiler从图14-12所示电路生成的VHDL的Case 语句程序段。,图14-12
17、Case 语句模块的应用示例,【例14-1】Case语句程序段。 PO: Process ( AIW ) Begin Case A1W IS When “000001“ “000010“000011“ = A0W = 1 ; A2W = 0 ; A6W = 0 ; A5W = 0 ; A4W = 0 ; A3W = 0 ;,When “000100“= A0W A0W A0W = 0 ; A2W = 0 ; A6W = 0 ; A5W = 0 ; A4W = 0 ; A3W = 1 ;,end case ; end process ; 注意:在Simulink中,每一条线都是以AW来命名的。其
18、中是自动产生的。,14.3.2 IF语句模块 IF语句根据IF条件方式返还一布尔类型结果true或false。其中比较条件方程的输入量a, b, c, d, e, f, g, h, I或j都必须是有符号或无符号整数。条件方程中可以使用任何数量的括号。表14-19是IF语句支持的操作符,表14-20是IF语句的参数表。 图14-13是IF语句模块应用示例。,表14-19 IF语句支持的操作符,表14-20 IF语句的参数说明,图14-13 IF语句模块应用示例,14.3.3 逻辑位操作符模块 逻辑位操作符模块(Logical Bit Operator Block)的功能是对1个位的输入进行逻辑操
19、作,这里可以规定任何数目的输入。如果此整数是正的,就被看成是布尔量1;否则,被看成是0。 表14-21是此模块的参数表。 图14-14是此Logical Bit Operator模块的应用示例。,表14-21 逻辑位操作符模块参数说明,图14-14 Logical Bit Operator模块的应用示例,14.3.4 逻辑总线操作符模块 逻辑总线操作符模块(Logical Bus Operator Block)的功能是对总线进行诸如AND,OR,XOR或NOT的逻辑操作,可以通过输入十进制数或移位的方式来禁止这些操作。 表14-22是此模块的参数表。 图14-15是应用此模块的示例。,表14-
20、22 逻辑总线操作符模块参数说明,图14-15 Logical Bus Operator模块的应用示例,14.3.5 LUT模块 查表(LUT)模块在存储表中储存的数据是以双(地址线宽)字方式来放置的。所放每一字的大小是由MATLAB数据矢量规定的。在将VHDL进行综合中,综合器需根据表格的大小来确定使用何种硬件实现。可选的硬件资源是EABs(嵌入式阵列块)、ESBs(嵌入式系统块)或矩阵RAM。对此项设计应该选择手动综合与适配流程来完成。 表14-23是此模块的参数表。,表14-23 LUT模块参数说明,14.3.6 n-to-1多路选择器模块 n-to-1多路选择器模块是一个n选1的全二进
21、制总线多路选择器,即此多路选择器的输出数据宽度等于输入信号线宽中最大的宽度。此外,任何数据类型都适合于此模块。 图14-16是此多路选择器应用实例。其中上图是Full binary选择方式,下图是One hot选择方式。 表14-24是此模块的参数表。,图14-16 n-to-1多路选择器模块应用示例,表14-24 多路选择器模块参数说明,14.4 状态机函数库,14.4.1 FIFO控制状态机设计示例 状态转换表如图14-17所示。默认的状态机表格符号如图14-18所示。默认的状态机有5个输入端和5个状态。每一状态以一个输出代表。当状态机运行时,如果相应的状态等于当前状态,则此输出为电平1,
22、所有其它输出为0。在Simulink中,输入和输出是用有符号整数表示的,而在VHDL中,输入和输出是由标准逻辑位矢量表示的。,下面介绍在DSP Builder中状态机的设计流程。在此以FIFO控制状态机设计fifo_control_logic.mdl为例。此项设计中包含一个用于FIFO进行逻辑控制的简单的状态机。此状态机向一双口RAM的输入端以及地址计数器的输入端馈入控制信号。这个状态机的操作步骤和流程如下: (1) 当FIFO的数据压入信号一出现,且此时地址计数器的计数值小于250,地址计数器就递增1,于是一个字节的数据就被压进(写入)到RAM中去了。,图14-17 状态机转换表图,图14-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 14 其它 DSP 设计 000001
链接地址:https://www.31doc.com/p-2596039.html