第14章其它DSP设计库000001.ppt

上传人:本田雅阁 文档编号:2596039 上传时间:2019-04-15 格式:PPT 页数:148 大小:2.24MB
返回 下载 相关 举报
第14章其它DSP设计库000001.ppt_第1页
第1页 / 共148页
第14章其它DSP设计库000001.ppt_第2页
第2页 / 共148页
第14章其它DSP设计库000001.ppt_第3页
第3页 / 共148页
亲,该文档总共148页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第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-

23、18 默认状态机表模块,(2) 当FIFO的数据弹出信号一出现,且地址计数值大于 0,地址计数器就递减1,于是一个字节的数据就被弹出(被读出RAM)。 (3) 当地址计数器的值等于0时,FIFO数据已空的标志信号出现。 (4) 当地址计数器的值等于250时,则FIFO数据已满的标志信号出现。 表14-25是FIFO控制器的状态转换表。图14-19是此FIFO控制器的顶层设计原理图。,表14-25 FIFO控制器的状态转换关系,图14-19 FIFO控制器的顶层设计原理图,14.4.2 状态机设计流程 下面以上节中的FIFO控制器状态机为例,说明利用状态机表格来设计状态机时涉及的具体步骤。 1.

24、 加入状态机表格模块 在Simulink设计中加入状态机表格模块,并为此模块取一个名字。图14-20中即为此模块,此例中,模块的名字是fifo-controller。,图14-20 状态机模块图,2. 设定状态机的特性 双击该表格模块,以便能设定状态机的特性。当出现“State Machine Builder”对话框后,选择“Inputs”页。“Inputs”页将显示出用于定义状态机的输入名称并展示出一个允许设计者向其中加入、改变和消去输入名称的界面。如图14-21所示是在定义了FIFO控制状态机后的“Inputs”页。,图14-21 “State Machine Builder”的“Inpu

25、ts”页,3. 设定状态名 单击“State”页,将显示用于定义状态机的状态名并给出允许设计者加入、修改和删除状态名的界面。在“State”页上也可选择状态机的复位状态。复位状态即为当复位输入信号到来时状态机即向此状态转换。,图14-22 “State”页界面,4. 设定状态机工作方式 在设定好输入信号与状态名后,点击“Conditional Statements”页,准备描述状态机的工作方式(如图14-23所示)。“Conditional Statements”页显示的是状态转换表,表中含有状态机的条件描述。其中条件描述由3部分组成: (1) 当前状态; (2) 导致转换方式的条件; (3)

26、 状态机转换的次态。,当前态和次态的状态值必须是在“State” 页中定义的状态名。表14-26给出了定义条件描述的条件操作符的优先级别。注意,在“Conditional Statements”页中至少应定义一个条件描述。此外,如果希望状态机能根据某个条件无条件地从一种状态向另一种状态转换,那么这个条件就可用1来表述。,表14-26 条件操作符的优先级别,图14-23所示即为“Conditional Statements”页。在此已定义了FIFO控制器的条件描述。,图14-23 定义了FIFO控制器条件描述的界面,表14-26中的条件描述一旦确定,状态机的工作方式就确定了。一般地,当一状态机处

27、于某一特定状态时,就会对次状态的条件进行计算判断,以便确定下次转换到什么状态上去。对于条件叙述表中所列的条件,状态机是顺序计算判断的。,表14-27 idle状态的各种状态转换条件,表14-27所示描述了当状态机处于“idle”状态时的各种态状转换条件。由于条件(pop =1) & (count_in = 0)在表中的位置高于条件(push =1) & (count_in=250),所以,前者就有更高的优先权。当它们同时满足时,将首先 依前者的条件进行转换。 条件(pop =1)&(count_in!=0)仅次于最高优先权的条件描述;而条件(push =1) & (count_in=250)所

28、处的位置具有最低的优先权。 例14-2就是表14-27编译转换而来的VHDL描述,其中的_sig是在VHDL文件中另加的。,【例14-2】表14-27对应的VHDL文件。 IF (pop_sig=1) AND (count_in_sig=0) THEN next_state = empty_st; ELSIF (push_sig=1) THEN next_state = push_not_full_st ; ELSIF (pop_sig=1) AND (count_in_sig / =0) THEN next_state = pop_not_empty_st ; ELSIF (push_sig

29、=1) AND (count_in_sig =250) THEN next_state = full_st ; ELSE next_state = idle_st ; END IF ;,也可以通过使用“Move Up”和“Move Down”按钮来改变条件描述语句的上下位置。例如,将表14-27改变后即如表14-28所示。,表14-28 对表14-27进行改变的结果,【例14-3】表14-28对应的VHDL程序。 IF (pop_sig=1) AND (count_in_sig=0) THEN next_state = empty_st ; ELSIF (pop_sig=1) AND (cou

30、nt_in_sig / =0) THEN next_state = pop_not_empty_st ; ELSIF (push_sig=1) AND (count_in_sig =250) THEN next_state = full_st ; ELSIF (push_sig=1) THEN next_state = push_not_full_st ; ELSE next_state = idle_st ; END IF ;,5. 错误检测 点击“Design Rule Check”页面,以便确定前面各步骤中所定义的状态机没有违反任何设计规则。然后点击“Analyze”,对状态机中所设的条

31、件进行计算判别,以确定是否存在一般错误或逻辑错误。如果有错,将在“Analyze Results”栏中以红色给出错误信息。 图14-24所示即为点击“Analyze”后的“Design Rule Check”页面。如果发现在信息栏的分析结果中有错误报出,应该找出错误所在,重新启动检测分析的操作,直至排除所有错误。 最后就是功能仿真,通过后,就可以将其转换成VHDL代码描述了。,图14-24 State Machine Builder Design Rule Check页面,6. 将结果存盘 点击“OK”,将所有更改后的内容存盘。这时就关闭了“State Machine Builder”窗口,并

32、将回到Simulink设计文件。 这时的设计文件将自动更新在前面各步骤中定义的输入/输出名称。图14-25是FIFO设计实例更新后的State Machine Table模块。,图14-25 设定了状态机后的表格模块,例14-4是State Machine Builder产生的状态机的完整VHDL程序的结构体部分。 【例14-4】状态机的结构程序。 PROCESS (clk, reset) BEGIN IF ( reset = 1 ) THEN current _state = empty_st ; ELSIF rising_edge (clk) THEN current _state = n

33、ext_state ; END IF; END PROCESS ;,PROCESS (current _state, count_in_sig, pop_sig, push_sig) BEGIN CASE current _state IS WHEN empty_st = IF ( ( push_sig = 1) AND ( count_in_sig / =250 ) ) THEN next_state = push_not_full_st; ELSIF ( ( push_sig = 0) AND ( pop_sig = 0 ) ) THEN next_state = idle_st; ELS

34、E next_state = empty_st; AND IF;,WHEN full_st = IF ( ( push_sig = 0) AND ( pop_sig = 0 ) ) THEN next_state IF ( ( pop_sig = 1) AND ( count_in_sig = 0 ) ) THEN,next_state = empty_st; ELSIF ( ( push_sig = 1) ) THEN next_state = pust_not_full_st; ELSIF ( ( pop_sig = 1) AND ( count_in_sig / = 0 ) ) THEN

35、 next_state = pop_not_empty_st; ELSIF ( ( push_sig = 1) AND ( count_in_sig = 250 ) ) THEN next_state = full_st; ELSE next_state = idle_st; AND IF;,WHEN pop_not_empty_st = IF ( ( push_sig = 0) AND ( pop_sig = 0 ) ) THEN next_state = idle_st; ELSIF ( ( pop_sig = 1) AND ( count_in_sig = 0 ) ) THEN next

36、_state = empty_st; ELSIF ( ( push_sig = 1) AND ( count_in_sig / = 250 ) ) THEN next_state = pust_not_full_st;,ELSIF ( ( pop_sig = 1) AND ( count_in_sig / = 0 ) ) THEN next_state = pop_not_empty_st; ELSIF ( ( push_sig = 1) AND ( count_in_sig = 250 ) ) THEN next_state = full_st; END IF; END CASE; END

37、PROCESS ; 最后,将此State Machine Table模块连接到总体设计文件的相应部分。,14.5 Storage 库,14.5.1 延迟模块 延迟模块(Delay Block)根据延时深度(Depth)表中设定的值确定通过信号的延时量。表14-29是此模块的参数表。,表14-29 延迟模块的参数说明,图14-26是Delay模块的一个使用示例。,图14-26 Delay模块应用示例,14.5.2 Down Sampling和Up Sampling模块 1. Down Sampling模块 采样率降低模块(Down Sampling Block)可根据输入端给出的采样率来降低输出

38、采样率。输出数据的速率等于每mth周期采样一次的采样速率,其中m等于下降的采样率。在Simulink中,输入采样率是归一化的。 表14-30是此模块的参数表。图14-27是Down Sampling模块的应用示例。,表14-30 采样率降低模块参数说明,图14-27 Down Sampling模块的应用示例,2. Up Sampling模块 增加采样率模块(Up Sampling Block)将根据输入的采样率增加输出的采样率。输出数据将以每周期采样一次的速率来进行,表14-30中的参数120等于增加的采样率。(表14-31是此模块的参数表)。 图14-28是Up Sampling模块应用的示

39、例图。,表14-31 Up Sampling模块参数说明,图14-28 Up Sampling模块的应用示例,14.5.3 双口RAM模块 在设计中,如果需要使用双口RAM模块(Dual-Port RAM Block),SignalCompiler就会将数据映射到Altera器件的嵌入式RAM中(如EAB或ESB),即使用EAB或ESB来重构此双口RAM。这时的RAM中的内容将被初始化为0。 Dual-Port RAM模块能接受任何数据类型的输入。此模块所有的输入端口都是可以锁定的,所有的输出端口都无锁存功能。图14-29是此双口RAM的应用示例。表14-32是此模块的参数表。,图14-29

40、双口RAM的应用示例,表14-32 双口RAM模块参数说明,双口RAM模块有如下端口: d输入数据口 q输出数据口 rdad读地址总线 wrad写地址总线 wren写使能,14.5.4 并行到串行转换模块与串行到并行转换模块 1. 并串转换模块 并行到串行转换模块(Parallel to Serial Block)的功能是将并行输入端口(Input)转换成串行总线输出(Output)。表14-33是此模块的参数表。,表14-33 并行到串行转换模块参数说明,图14-30是此并串转换模块的应用示例。,图14-30 并串转换模块的应用示例,2. 串并转换模块 串行到并行转换模块(Serial to

41、 Parallel Block)的功能是将一串行输入数据(Input sd)转换成并行总线输出(Output d)。表14-34是此模块的参数表。图14-31是此串并转换模块的应用示例。,图14-31 Serial to Parallel Block模块的应用示例,表14-34 串并转换模块的参数说明,14.5.5 数据排列方式模块 数据排列方式模块(Pattern Block)可以重复产生一组按一定数位顺序排列的周期性数位序列。例如,以01100为一周期的数据序列,则此模块将重复连续发生该序列为: 01100011000110001100 设计者可以通过使用Pattern模块的输出来作为时钟

42、使能的输入控制,从而改变锁存模块的输出数据速率。表14-35是此模块的参数表。图14-32是此模块的应用示例。,图14-32 Pattern 模块的应用示例,表14-35 Pattern模块参数说明,14.5.6 ROM EAB模块 ROM EAB模块可以作为一般的数据ROM来使用。ROM的数据必须用十六进制数文件设定。为了使用Altera器件中的EAB来形成ROM,需要使用ROM EAB模块初始化中读取包含ROM数据的十六进制格式的文件。这可以使用Quartus II来产生十六进制数据文件(参阅第2章)。表14-36是此模块的参数表。 注意:如果已用Quartus II产生了Hex文件,则必

43、须存放在DSP Builder设计工程的工作目录中。,表14-36 ROM EAB模块说明,图14-33是ROM EAB模块的应用示例。,图14-33 ROM EAB模块的应用示例,14.5.7 Shift Taps模块 Shift Taps模块可以形成移位寄存器,可用于滤波器和卷积算法的设计。在Altera器件中,Shift Taps模块可以实现内置RAM结构的移位寄存器,这种移位寄存器的实现方法是构成大移位寄存器的有效方法。这种模块的输出是根据沿移位寄存器有规则的间隔点来完成的,这就是所谓的“Taps”。在Stratix器件中,这种模块需要很小的内部RAM。图14-34是Shift Tap

44、s模块的应用示例。,图14-34 Shift Taps模块的应用示例,表14-37是这种模块的参数表。,表14-37 Shift Taps模块参数说明,14.5.8 PLL模块 DSP Builder使用PLL模块可以综合出一个基于某一参考时钟的时钟信号。在现代超高速数字系统设计中,数字锁相环已经成为这些系统中非常重要的组成部分。PLL的使用能改善零延迟线的时序以及全系统的时钟合成。Stratix器件提供了非常先进的内置PLL。而在传统的系统中,PLL必须由十分复杂的专用器件来担任。在Stratix器件中的每一个PLL都能有多个时钟输出,这些时钟产生于40个系统时钟中的任何一个。,因此,对于用

45、户的时钟控制需要,PLL能提供完整的覆盖。内部PLL具有全频率合成的能力(既能倍频合成也能分频合成),以及优化I/O口时序的相移功能。此外,内部PLL还有许多高级性能,如可编程带宽、宽频谱、时钟切换等。 PLL模块能产生以系统时钟频率为基准的倍频的内部时钟,Stratix和Cyclone器件都能针对参考时钟进行倍频和分频。,如果要使用这种内置式PLL,应该遵守以下限制: 在顶层设计中只能包含一个PLL; PLL的每一输出时钟都是零度相移和50%的占空比; 所有DSP Builder模块的Simulink采样时间必须等于PLL输出时钟周期之一。 表14-38是PLL的参数表。,表14-38 PLL模块参数说明,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1