ImageVerifierCode 换一换
格式:DOC , 页数:25 ,大小:318KB ,
资源ID:7032391      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/7032391.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(DSP讲义(C6K).doc)为本站上传会员【xrp****65】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

DSP讲义(C6K).doc

1、Chapter 1 Introduction Learning Objectives u Why process signals digitally? u Definition of a real-time application. u Why use Digital Signal Processing processors? u What are the typical DSP algorithms? u Parameters to consider when choosing a DSP processor. u Programmable vs. ASIC DSP. u T

2、exas Instruments’ TMS320 family. 1.1 Why go digital? u Digital signal processing techniques are now so powerful that sometimes it is extremely difficult, if not impossible, for analogue signal processing to achieve similar performance. u Examples: w FIR filter with linear phase. w Adaptive filt

3、ers. u Analogue signal processing is achieved by using analogue components such as: w Resistors. w Capacitors. w Inductors. u The inherent tolerances associated with these components, temperature, voltage changes and mechanical vibrations can dramatically affect the effectiveness of the analogu

4、e circuitry. u With DSP it is easy to: w Change applications. w Correct applications. w Update applications. u Additionally DSP reduces: w Noise susceptibility. w Chip count. w Development time. w Cost. w Power consumption. 1.2 Why NOT go digital? u High frequency signals cannot be proce

5、ssed digitally because of two reasons: w Analog to Digital Converters, ADC cannot work fast enough. w The application can be too complex to be performed in real-time. 1.3 Real-time processing u DSP processors have to perform tasks in real-time, so how do we define real-time? u The definition of

6、 real-time depends on the application. u Example: a 100-tap FIR filter is performed in real-time if the DSP can perform and complete the following operation between two samples: u We can say that we have a real-time application if: w Waiting Time ³ 0 1.3 Why do we need DSP processors? u Wh

7、y not use a General Purpose Processor (GPP) such as a Pentium instead of a DSP processor? w What is the power consumption of a Pentium and a DSP processor? w What is the cost of a Pentium and a DSP processor? u Use a DSP processor when the following are required: w Cost saving. w Smaller size.

8、 w Low power consumption. w Processing of many “high” frequency signals in real-time. u Use a GPP processor when the following are required: w Large memory. w Advanced operating systems. 1.4 What are the typical DSP algorithms? The Sum of Products (SOP) is the key element in most DSP algorithm

9、s: 1.4.1 Hardware vs. Microcode multiplication u DSP processors are optimized to perform multiplication and addition operations. u Multiplication and addition are done in hardware and in one cycle. u Example: 4-bit multiply (unsigned). 1.5 Parameters to consider when choosing a DSP processo

10、r u C6711 Datasheet: \Links\TMS320C6711.pdf u C6211 Datasheet: \Links\TMS320C6211.pdf 1.6 Floating vs. Fixed point processors u Applications which require: w High precision. w Wide dynamic range. w High signal-to-noise ratio. w Ease of use. Need a floating point processor. u Drawback of f

11、loating point processors: w Higher power consumption. w Can be more expensive. w Can be slower than fixed-point counterparts and larger in size. u It is the application that dictates which device and platform to use in order to achieve optimum performance at a low cost. u For educational purpos

12、es, use the floating-point device (C6711) as it can support both fixed and floating point operations. 1.7 General Purpose DSP vs. DSP in ASIC u Application Specific Integrated Circuits (ASICs) are semiconductors designed for dedicated functions. u The advantages and disadvantages of using ASICs a

13、re listed below: 1.8 Texas Instruments’ TMS320 family u Different families and sub-families exist to support different markets. TMS320C64x: The C64x fixed-point DSPs offer the industry's highest level of performance to address the demands of the digital age. At clock rates of up to 1 GHz, C

14、64x DSPs can process information at rates up to 8000 MIPS with costs as low as $19.95. In addition to a high clock rate, C64x DSPs can do more work each cycle with built-in extensions. These extensions include new instructions to accelerate performance in key application areas such as digital commun

15、ications infrastructure and video and image processing. TMS320C62x: These first-generation fixed-point DSPs represent breakthrough technology that enables new equipments and energizes existing implementations for multi-channel, multi-function applications, such as wireless base stations, remote a

16、ccess servers (RAS), digital subscriber loop (xDSL) systems, personalized home security systems, advanced imaging/biometrics, industrial scanners, precision instrumentation and multi-channel telephony systems. TMS320C67x:  For designers of high-precision applications, C67x floating-point DSPs off

17、er the speed, precision, power savings and dynamic range to meet a wide variety of design needs. These dynamic DSPs are the ideal solution for demanding applications like audio, medical imaging, instrumentation and automotive. 1.9 C6000 Roadmap Useful Links u Selection Guide: w \Links\DSP Selec

18、tion Guide.pdf w \Links\DSP Selection Guide.pdf (3Q 2004) w \Links\DSP Selection Guide.pdf (4Q 2004) Chapter 2 TMS320C6000 Architectural Overview Learning Objectives u Describe C6000 CPU architecture. u Introduce some basic instructions. u Describe the C6000 memory map. u Provide an overvi

19、ew of the peripherals. 2.1 General DSP System Block Diagram 2.2 Implementation of Sum of Products (SOP) It has been shown in Chapter 1 that SOP is the key element for most DSP algorithms. So let’s write the code for this algorithm and at the same time discover the C6000 architecture. Let’s im

20、plement the SOP algorithm! (The implementation in this module will be done in assembly.) Two basic operations are required for this algorithm. (1) Multiplication (2) Addition Therefore two basic instructions are required. 2.2.1 Multiply (MPY) The multiplication of a1 by x1 is done in assembl

21、y by the following instruction: MPY a1, x1, Y This instruction is performed by a multiplier unit that is called “.M”. Multiply (.M unit): The . M unit performs multiplications in hardware MPY .M a1, x1, Y Note: 16-bit by 16-bit multiplier provides a 32-bit result. 32-bit by 32-bit mult

22、iplier provides a 64-bit result. 2.2.2 Addition (.?) MPY .M a1, x1, prod ADD .? Y, prod, Y Add (.L unit) MPY .M a1, x1, prod ADD .L Y, prod, Y RISC processors such as the C6000 use registers to hold the operands, so let’s change this code. 2.2.3 Register File - A Let us correct this by repl

23、acing a, x, prod and Y by the registers as shown above. Specifying Register Names MPY .M A0, A1, A3 ADD .L A4, A3, A4 The registers A0, A1, A3 and A4 contain the values to be used by the instructions. Register File A contains 16 registers (A0 -A15) which are 32-bits wide. 2.2.4 D

24、ata loading Q: How do we load the operands into the registers? A: The operands are loaded into the registers by loading them from the memory using the .D unit. Load Unit “.D” It is worth noting at this stage that the only way to access memory is through the .D unit. 2.2.5 Load Instruction Q: W

25、hich instruction(s) can be used for loading operands from the memory to the registers? A: The load instructions. Load Instructions (LDB, LDH,LDW,LDDW) 2.2.6 Using the Load Instructions Before using the load unit you have to be aware that this processor is byte addressable, which means that each

26、byte is represented by a unique address. Also the addresses are 32-bit wide. The syntax for the load instruction is: LD *Rn, Rm Where: Rn is a register that contains the address of the operand to be loaded and Rm is the destination register. The question now is how many bytes are going to

27、be loaded into the destination register? The answer is that it depends on the instruction you choose: • LDB: loads one byte (8-bit) • LDH: loads half word (16-bit) • LDW: loads a word (32-bit) • LDDW: loads a double word (64-bit) Note: LD on its own does not exist. Example: If we ass

28、ume that A5 = 0x4 then: (1) LDB *A5, A7; gives A7 = 0x00000001 (2) LDH *A5, A7; gives A7 = 0x00000201 (3) LDW *A5, A7; gives A7 = 0x04030201 (4) LDDW *A5, A7:A6; gives A7:A6 =0x0807060504030201 Question: If data can only be accessed by the load instruction and the .D unit, how can we load

29、 the register pointer Rn in the first place? 2.2.7 Loading the Pointer Rn u The instruction MVKL will allow a move of a 16-bit constant into a register as shown below: MVKL .? a, A5 (‘a’ is a constant or label) u How many bits represent a full address? 32 bits u So why does the instruction no

30、t allow a 32-bit move? All instructions are 32-bit wide (see instruction opcode). u To solve this problem another instruction is available: MVKH eg. MVKH .? a, A5 (‘a’ is a constant or label) ah ah x al a A5 u Finally, to move the 32-bit address to a register we can use: MV

31、KL a, A5 MVKH a,A5 Always use MVKL then MVKH, look at the following examples: Example 1 A5 = 0x87654321 MVKL 0x1234FABC, A5 A5 = 0xFFFFFABC (sign extension) MVKH 0x1234FABC, A5 A5 = 0x1234FABC ; OK Example 2 MVKH 0x1234FABC, A5 A5 = 0x12344321 MVKL 0x1234FABC, A5 A5 = 0

32、xFFFFFABC ; Wrong 2.28 LDH, MVKL and MVKH MVKL pt1, A5 MVKH pt1, A5 MVKL pt2, A6 MVKH pt2, A6 LDH .D *A5, A0 LDH .D *A6, A1 MPY .M A0, A1, A3 ADD .L A4, A3, A4 pt1 and pt2 point to some locatio

33、ns in the data memory. [So far we have only implemented the SOP for one tap only, i.e. Y= a1 * x1 So let’s create a loop so that we can implement the SOP for N Taps.] 2.2.9 Creating a loop With the C6000 processors there are no dedicated instructions such as block repeat. The loop is created us

34、ing the B instruction. 2.2.10 What are the steps for creating a loop 1. Create a label to branch to. 2. Add a branch instruction, B. 3. Create a loop counter. 4. Add an instruction to decrement the loop counter. 5. Make the branch conditional based on the value in the loop counter. 1. Creat

35、e a label to branch to 2. Add a branch instruction, B. Which unit is used by the B instruction? 3. Create a loop counter. 4. Decrement the loop counter 5. Make the branch conditional based on the value in the loop counter u What is the syntax for making instruction conditional? [condition]

36、 Instruction Label e.g. [B1] B loop (1) The condition can be one of the following registers: A1, A2, B0, B1, B2. (2) Any instruction can be conditional. u The condition can be inverted by adding the exclamation symbol “!” as follows: [!condition] Instruction Label e.g. [!B0] B

37、loop ;branch if B0 = 0 [B0] B loop ;branch if B0 != 0 2.2.11 More on the Branch Instruction (1) u With this processor all the instructions are encoded in a 32-bit. u Therefore the label must have a dynamic range of less than 32-bit as the instruction B has to be coded. u Case 1: B .S

38、1 label u Relative branch. u Label limited to +/- 220 offset. u By specifying a register as an operand instead of a label, it is possible to have an absolute branch. u This will allow a dynamic range of 232. u Case 2: B .S2 register u Absolute branch. u Operates on .S2 ONLY! 2.2.12 T

39、esting the code This code performs the following operations: a0*x0 + a0*x0 + a0*x0 + … + a0*x0 However, we would like to perform: a0*x0 + a1*x1 + a2*x2 + … + aN*xN Modifying the pointers The solution is to modify the pointers A5 and A6. 2.2.13 Indexing Pointers Syntax Description Pointer M

40、odified *R Pointer No In this case the pointers are used but not modified. R can be any register Syntax Description Pointer Modified *R Pointer No *+R[disp] + Pre-offset No *-R[disp] - Pre-offset No In this case the pointers are modified BEFORE being used and RESTORED to their prev

41、ious values. w [ disp] specifies the number of elements size in DW (64-bit), W (32-bit), H (16-bit), or B (8-bit). w disp = R or 5-bit constant. w R can be any register. Syntax Description Pointer Modified *R Pointer No *+R[disp] + Pre-offset No *-R[disp] - Pre-offset No *++R[disp]

42、 Pre-increment Yes *--R[disp] Pre-decrement Yes In this case the pointers are modified BEFORE being used and NOT RESTORED to their Previous Values. Syntax Description Pointer Modified *R Pointer No *+R[disp] + Pre-offset No *-R[disp] - Pre-offset No *++R[disp] Pre-increment Yes

43、R[disp] Pre-decrement Yes *R++ [disp] Post-increment Yes *R-- [disp] Post-decrement Yes In this case the pointers are modified AFTER being used and NOT RESTORED to their Previous Values. w [disp] specifies # elements - size in DW, W, H, or B. w disp = R or 5-bit constant. w R can be

44、any register. 2.2.14 Modify and testing the code This code now performs the following operations: a0*x0 + a1*x1 + a2*x2 + ... + aN*xN Store the final result, but the Pointer A7 has not been initialized. What is the initial value of A4? A4 is used as an accumulator, so it needs to be reset to

45、 zero. 2.2.15 Increasing the processing power! How can we add more processing power to this processor? (1) Increase the clock frequency. (2) Increase the number of Processing units. To increase the Processing Power, this processor has two sides (A and B or 1 and 2) Can the two sides exchange o

46、perands in order to increase performance? The answer is YES but there are limitations. u To exchange operands between the two sides, some cross paths or links are required. What is a cross path? u A cross path links one side of the CPU to the other. u There are two types of cross paths: u Data

47、 cross paths. u Address cross paths. 2.2.16 Data Cross Paths u Data cross paths can also be referred to as register file cross paths. u These cross paths allow operands from one side to be used by the other side. u There are only two cross paths: u one path which conveys data from side B to si

48、de A, 1X. u one path which conveys data from side A to side B, 2X. TMS320C67x Data-Path Data Cross Paths u Data cross paths only apply to the .L, .S and .M units. u The data cross paths are very useful, however there are some limitations in their use. 2.2.17 Data Cross Path Limitations (

49、1) The destination register must be on same side as unit. (2) Source registers - up to one cross path per execute packet per side. Execute packet: group of instructions that execute simultaneously. eg: ADD .L1x A0,A1,B2 MPY .M1x A0,B6,A9 SUB .S1x A8,B2,A8 || ADD .L1x

50、A0,B0,A2 || Means that the SUB and ADD belong to the same fetch packet, therefore execute simultaneously. eg: ADD .L1x A0,A1,B2 MPY .M1x A0,B6,A9 SUB .S1x A8,B2,A8 || ADD .L1x A0,B0,A2 NOT VALID! Data Cross Paths for both sides 2.2.17 Address cross paths (1) Th

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服