版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ARM7TDMI外部接口存储器接口中断调试接口协处理器接口第1页/共55页第一页,共56页。ARM7TDMI接口信号
MCLKnWAITA[31:0]D[31:0]nMREQ,SEQnRWLOCKABEDBEnTRANSABORTClocksandClockControlMemoryManagementMemoryInterfaceDataandAddressBusControlMemoryAccessControlnM[4:0]MAS[1:0]BL[3:0]APE,ALETBE
ECLKTBITBUSENnENINBIGENDARM7TDMInENOUT第2页/共55页第二页,共56页。时钟与时钟控制MCLK–
输入处理器工作的时钟。静态设计的ARM通过延长时钟周期来访问慢速的设备。nWAIT–
输入在ARM内部与MCLK相与。必须在MCLK为低的相位阶段改变。容许该信号从一个周期扩展到另一个周期,延长总线访问周期。ECLK–
输出核心逻辑的时钟的输出。在正常和调试状态下反映内部时钟。ph1&ph2–
内部信号双相位非覆盖的内部时钟。处理器内部工作周期。第3页/共55页第三页,共56页。MCLKnWAIT时钟控制-nWAIT控制Phase1Phase2Phase2Phase1ph2InternalClockECLKph1InternalClock第4页/共55页第四页,共56页。时钟控制–扩展MCLKMCLKnWAITPhase1Phase2Phase2Phase1ph2InternalClockECLKph1InternalClock第5页/共55页第五页,共56页。数据总线32位
双或单向数据总线
BUSEN=0配置双向数据总线。BUSEN=1配置单向数据总线。
字节、半字及字访问.读取数据必须有效且稳定到相位2结束。写入数据在相位1改变,保持稳定贯穿相位2。nENOUT–输出(和nENIN–
输入):数据总线控制如果采用片外双向数据总线的话,可以用来控制数据总线的方向。第6页/共55页第六页,共56页。数据总线配置(1)DIN[31:0]DOUT[31:0]32D[31:0]32ARM7TDMMacrocellEmbeddedICEmacrocellGDoutlatEnbMDen第7页/共55页第七页,共56页。数据总线配置(2)MCLKDIN[31:0]DOUT[31:0]D[31:0]READWRITEREADDIN1DIN1DOUTDIN2DIN2DOUT第8页/共55页第八页,共56页。地址总线32位(4G字节)寻址能力。默认时序在前一周期的相位2阶段变为有效,保持稳定贯穿当前周期的相位1阶段。流水线地址。地址时序可以通过APE(或ALE)移位。为获得较好的系统性能,建议使用默认时序。地址可以锁存到存储器系统中。第9页/共55页第九页,共56页。地址总线控制APE和ALE–输入ARM建议两个信号都为高,以便有最长的时间进行地址译码。任何一个信号都可以连接到在数据访问期间需要稳定地址的设备。APE:地址流水线使能APE=1–地址是流水线的(在后续的相位2提供).APE=0–重新定时地址改变的时序,从MCLK的下降沿开始。控制对A[31:0]的透明锁存。ALE:地址锁存使能控制对A[31:0]的透明锁存。仅用于已有的系统设计,因为它比APE更复杂。第10页/共55页第十页,共56页。流水线地址时序
(推荐设置)ALE和APE均为高MCLKA[31:0]ALEAPEPhase2Phase1AddressD[31:0](in)Dx第11页/共55页第十一页,共56页。APE对地址时序的作用MCLKA[31:0]ALEAPEPhase2Phase1AddressD[31:0](in)Dx第12页/共55页第十二页,共56页。总线三态控制(1)ABE–输入:地址总线使能当ABE为低时,下面的信号处于高阻状态:A[31:0],nRW,LOCK,MAS[1:0],nOPC,andnTRANSDBE–输入:数据总线使能当DBE为低时,D[31:0]处于高阻状态。TBE–输入:测试总线使能当TBE为低时,下面的信号处于高阻状态:D[31:0],A[31:0],nRW,LOCK,MAS[1:0],nOPC,andnTRANS在ABE和DBE都为低时,情况一样。第13页/共55页第十三页,共56页。总线三态控制(2)ABEDBED[31:0](out)A[31:0]TBE第14页/共55页第十四页,共56页。存储器访问控制nMREQ–输出:存储器请求.低有效,指示在接下来的周期中进行存储器访问。SEQ–输出:连续地址访问高有效,指示在接下来的周期中地址不变或大一个操作数(字或半字)nRW–输出:非读/写区分存储器读写访问LOCK–输出:锁定操作指示一条交换指令正在执行,接下来的两个处理器总线周期是不可见的。MAS[1:0]–输出:存储器访问大小指示字、半字或字节访问。BL[3:0]–输入:数据总线上的字节区段锁存使能容许数据由小数构成。第15页/共55页第十五页,共56页。存储器控制nRWMAS[1:0]MAS[1:0]指示数据传送大小(8,16或32位)AddressDataA[31:0]D[31:0]nMREQSEQCycleTypeLOCKnTRANSnOPCMCLK第16页/共55页第十六页,共56页。字节区段锁存使能ARM7TDMID[7:0]D[15:8]31GD[31:0]88GBL[0]MCLKnWAITECLKBL[1]第17页/共55页第十七页,共56页。32位存储器接口nOEBWE[3:0]32nWAITMAS[1:0]MCLKID[31:0]A[31:0]A[31:2]32BL[3:0]ARM7TDMIMacrocellMemoryControlMemory32-bitBoardASICnRWnMREQ,SEQ第18页/共55页第十八页,共56页。16位存储器接口16位存储器接口x2BoardASICnOEBWE[1:0]nWAITMAS[1:0]MCLKID[15:0]A[31:0]A[31:2]32BL[3:0]ARM7TDMIMacrocellMemoryControlMemory16-bitnRWnMREQ,SEQ3216MUXC,TSTATETSTATEA’[1]第19页/共55页第十九页,共56页。使用字节区段锁存APEA[31:0],MAS[1:0]nWAITD[31:0]BL[3:0]MCLKD[15:0]latchedD[31:16]latchedECLK0x30xC第20页/共55页第二十页,共56页。改变操作状态T位指示ARM核的状态。高-Thumb状态,低-ARM状态MCLKnMREQ,SEQA[31:0]nWAITTBITD[31:0]MAS[1:0]ARMInstr.TInstr.01-HalfWord10-WordN-CycleBXInstr.DestinationAddress第21页/共55页第二十一页,共56页。取指在ARM状态,指令是字(32位)
在THUMB状态,指令是半字(16位)指令可以从32位数据总线的高或低半段取得。取决于Endian配置和A[1]的状态。EndianConfigurationLittleBIGEND=0BigBIGEND=1A[1]=0A[1]=1D[15:0]D[31:16]D[15:0]D[31:16]ThumbInstructionFetches第22页/共55页第二十二页,共56页。取数据字数据取操作类似于ARM状态的指令取操作。半字数据的取操作类似于THUMB状态的指令取操作。字节数据的取操作取决于Endian配置和A[1:0]的状态。EndianConfigurationLittleBIGEND=0BigBIGEND=1A[1:0]=00D[7:0]D[31:24]D[23:16]D[15:8]A[1:0]=10D[23:16]D[15:8]D[7:0]D[31:24]A[1:0]=11A[1:0]=01ByteDataFetches第23页/共55页第二十三页,共56页。周期类型非连续(N)在接下来的周期中的地址与前一个地址无关。连续(S)在接下来的周期中的地址与前一个地址一样或大一个操作数(字或半字)。内部(I)处理器正在执行一个内部操作,同时,没有有用的预取执行。协处理器寄存器传送(C).处理器和协处理器之间通讯,不涉及存储器访问,但D[31:0]用于传送数据。合并的内部连续(IS)I和S周期的特殊组合,容许优化存储器访问。第24页/共55页第二十四页,共56页。周期类型
nMREQ SEQ CycleType 0 0 Non-sequential 0 1 Sequential 1 0 Internal 1 1 Coprocessorregistertransfer第25页/共55页第二十五页,共56页。非连续周期在接下来的周期中(nMREQ=0)且(SEQ=0)下一个周期将是非连续访问。指令译码nMREQandSEQ条件提前一个周期建立。A[31:0]在接下来的周期的相位2阶段有效。对于读操作,D[31:0]必须在相位2结束时有效。典型地对于基于DRAM的系统的初始的行访问,N周期要占用更长的时间。处理器停下来(通过停止时钟)一个或更多的完整的时钟周期(等待状态),以便容许较长的访问时间。第26页/共55页第二十六页,共56页。典型的N周期MCLKnMREQSEQA[31:0]D[31:0]nRASnCASN-Cycle(DRAMRowAddressStrobe)(DRAMColumnAddressStrobe)MCLK可以扩展,通过停止MCLK或者声明nWAIT。第27页/共55页第二十七页,共56页。典型的NS周期Destinationaddress(A)A+4MCLKnMREQSEQA[31:0]D[31:0]nRASnCASN-Cycle
S-Cycle
ARMstate.第28页/共55页第二十八页,共56页。内部周期(I)处理器在下一个周期中执行内部操作。例子有乘、寄存器特定的移位操作、在从存储器加载数据之后的回写操作。nMREQ和SEQ先于内部(I)周期一个周期的时间有效。nMREQ=1指示处理器没有存储器访问操作执行。A[31:0]在跟着内部(I)周期的下一个周期的相位2阶段有效。数据总线不驱动。地址总线驱动。第29页/共55页第二十九页,共56页。内部(I)周期nMREQA[31:0]AMCLKSEQI-Cycle第30页/共55页第三十页,共56页。合并的IS周期(1)处理器执行内部操作。下一条指令的取指地址出现在地址总线上,容许提前译码。nMREQ和SEQ先于存储器访问周期一个周期的时间有效。存储器系统可以设计成识别IS情况。
可以在内部周期期间启动对在内部周期期间的地址位置的访问。例如,对于非连续的DRAM的访问,建立和声明nRAS。在连续(S)周期期间,访问可以结束。例如,nCAS完成访问。D[31:0]可以变为有效,直到连续(S)周期的结束(MCLK的下降沿),而不增加等待状态。第31页/共55页第三十一页,共56页。合并的IS周期(2)MCLKnMREQSEQA[31:0]D[31:0]nRASnCASI-CycleS-CycleAddress第32页/共55页第三十二页,共56页。代码序列BLlabel ;带连接跳转到“label”;将PC-4存入R14;x ;ARM7TDMI是三级流水,该条指令执行时,PC指向“XX”XX.....label LDR R2,[R0]; 从存储在R0中的地址取数,加载到R2SUB R2,R2,R3; R2的内容减R3,结果存入R2ORR R2,R2,R4; R2与R4逻辑或操作,结果存入R2MOV PC,R14; 返回到分支之后的指令.....第33页/共55页第三十三页,共56页。流水线及总线动作Ab+4FEDFDFFBLXXXLDRSUBORR1234BAbAb+8XXXLDRSSNECLKSEQA[31:0]D[31:0]EDataDF567Ai+4Ai+8AdSUBORRDataSNWriteBackEE89D10Ai+12Ai+16MOV....IISSDSnMREQFDMOVAiF第34页/共55页第三十四页,共56页。流水线及总线动作周期1-3分支指令及后续指令取自地址Ab,Ab+4,Ab+8。BL指令译码和执行在周期2和3中完成。周期4-6LDR从非连续地址Ai取得,SUB和ORR从连续地址Ai+4,Ai+8取得。LDR指令在周期5和6译码执行。周期7-8在周期7中,非连续地从存储器位置Ad加载,在周期8中,将这个数据写入R2中,由此可见,在内部(I)周期中,下一条指令的地址Ai+12放在了A[31:0]上。周期9-10周期9是一个合并的IS周期,在周期10的连续访问中,下一条指令MOV从地址Ai+12取得。第35页/共55页第三十五页,共56页。存储器管理信号nOPC–输出低有效,指示处理器正在从存储器取指。nTRANS–输出低有效,指示处理器处于‘usermode’.nM[4:0]–输出当前操作模式,即User,FIQ,IRQ,Supervisor,Abort,SystemorUndefined.ABORT–输入指示请求的访问不容许。既用于指令预取,又用于Dataabort。第36页/共55页第三十六页,共56页。存储器管理MCLKA[31:0]nM[4:0]nOPCnTRANSABORTPhase1Phase2第37页/共55页第三十七页,共56页。ARM7TDMI外部接口存储器接口中断调试接口协处理器接口第38页/共55页第三十八页,共56页。ARM7TDMI接口信号nIRQnFIQISYNCInterruptsARM7TDMI第39页/共55页第三十九页,共56页。中断2个中断源:nIRQandnFIQ–输入nFIQ比nIRQ优先级高。FIQ代码可以在进入中断后直接访问执行。可以选择(ISYNC–输入)同步或异步时序。异步时序(ISYNC=0)损失一个周期的同步。同步时序(ISYNC=1)nIRQ和nFIQ必须在MCLK的下降沿的时候已经建立且保持。nFIQ和nIRQ中断可以通过设置CPSR寄存器中的F和I位屏蔽。第40页/共55页第四十页,共56页。异步时序ISYNC=0EarliestStartofInterruptSequenceInstructionfromInterruptvectorInterruptVectorAddressMCLKnFIQ/nIRQA[31:0]D[31:0]第41页/共55页第四十一页,共56页。同步时序ISYNC=1EarliestStartofInterruptSequencevectorMCLKnFIQ/nIRQA[31:0]D[31:0]InterruptVectorAddressInstructionfromInterrupt第42页/共55页第四十二页,共56页。ARM7TDMI外部接口存储器接口中断调试接口协处理器接口第43页/共55页第四十三页,共56页。ARM7TDMI接口信号DBGRQBREAKPTDBGACKDebugInterface
ECLKEXTERN[1:0]DBGENARM7TDMIJTAGInterface第44页/共55页第四十四页,共56页。JTAG信号TDI -Input -TestDataInTDO -Output -TestDataOutTMS -Input -TestModeSelectTCK -Input -TestClocknTRST -Input -TestReset(activelow)第45页/共55页第四十五页,共56页。调试Interface(1)DBGEN–输入(DEBUGENABLE)必须保持高电平,以允许ARM7TDMI的软件调试。EXTERN[1:0]–输入输入到EmbeddedICE宏单元,允许基于外部条件的断点。第46页/共55页第四十六页,共56页。调试接口(2)下面的信号仅用于扩展外部调试。Multi-ICE不使用这些信号。BREAKPT–输入(BREAKPOINT)在指令上标志断点。在数据上标志观察点。如果不用,保持低电平。DBGRQ–输入(DEBUGREQUEST)强制ARM7TDMI核进入调试状态,高有效。如果不用,保持低电平。DBGACK–输出(DEBUGACKNOWLEDGE)ARM7TDMI进入调试状态的响应信号。高电平指示ARM7TDMI核已进入调试状态。第47页/共55页第四十七页,共56页。ARM7TDMI增加的扫描链TAP信号容许增加额外的链SCREG[3:0] -
输出 当前选择的扫描链IR[3:0] -
输出 当前已加载的指令TAPSM[3:0] -
输出 TAP状态机状态SDINBS -
输出
扫描链串行数据输入SDOUTBS -
输入 扫描链串行数据输出所需其它的移位、捕获时钟及多路复用器或选择线。第48页/共55页第四十八页,共56页。BREAKPT-DBGACK时序MCLKBREAKPTDBGACKA[31:0]D[31:0]Breakpoint/Watchpoint第49页/共55页第四十九页,共56页。DBGRQ-DBGACK时序MCLKEarliestStartofDebugSequenceDBGRQDBGACK第50页/共55页第五十页,共56页。ARM7TDMI接口信号nCPI,nOPCCPB,CPACoprocessorInterfaceARM7TDMI第51页/共55页第五十一页,共
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论