background image

MicroBlaze Processor Reference Guide

www.xilinx.com

257

UG081 (v14.7)

Instructions

 

if F = 1 and cacheline.Dirty then

for i 

0 .. C_DCACHE_LINE_LEN - 1 loop

if cacheline.Valid[i] then

Mem(cachelin i * 4) 

← 

cacheline.Data[i]

if T = 0 then

cacheline.Tag 

 0

else if cacheline.Address = cacheline_addr then

cacheline.Tag 

 0

if E = 1 then

 

if F = 1 then

request external cache flush with address

else

request external cache invalidate with address

Registers Altered

ESR[EC], in case a privileged instruction exception is generated

Latency

2 cycles for wdc.clear

2 cycles for wdc with 

C_AREA_OPTIMIZED=1

3 cycles for wdc with 

C_AREA_OPTIMIZED=0

2 + N cycles for wdc.flush, where N is the number of clock cycles required to flush the cache 
line to memory when necessary

Note

The 

wdc

wdc.flush

 and 

wdc.clear

 instructions are independent of data cache enable (MSR[DCE]), 

and can be used either with the data cache enabled or disabled.

The 

wdc.clear

 instruction is intended to invalidate a specific area in memory, for example a buffer 

to be written by a Direct Memory Access device. Using this instruction ensures that other cache 
lines are not inadvertently invalidated, erroneously discarding data that has not yet been written to 
memory.

The address of the affected cache line is always the physical address, independent of the parameter 

C_USE_MMU

 and whether the MMU is in virtual mode or real mode.

When using 

wdc.flush

 in a loop to flush the entire cache, the loop can be optimized by using Ra as 

the cache base address and Rb as the loop counter:

addik

r5,r0,C_DCACHE_BASEADDR

addik

r6,r0,C_DCACHE_BYTE_SIZE-C_DCACHE_LINE_LEN*4

loop:

wdc.flush r5,r6

bgtid

r6,loop

addik

r6,r6,-C_DCACHE_LINE_LEN*4

When using 

wdc.clear

 in a loop to invalidate a memory area in the cache, the loop can be optimized 

by using Ra as the memory area base address and Rb as the loop counter:

addik

r5,r0,memory_area_base_address

addik

r6,r0,memory_area_byte_size-C_DCACHE_LINE_LEN*4

loop:

wdc.clear r5,r6

bgtid

r6,loop

addik

r6,r6,-C_DCACHE_LINE_LEN*4

Send Feedback

Содержание MicroBlaze

Страница 1: ...MicroBlaze Processor Reference Guide Embedded Development Kit EDK 14 7 UG081 v14 7...

Страница 2: ...d to be fail safe or for use in any application requiring fail safe performance you assume sole risk and liability for use of Xilinx products in Critical Applications http www xilinx com warranty htm...

Страница 3: ...corrections for EDK 10 1 SP3 release 02 04 09 10 0 Xilinx EDK 11 1 release 04 15 09 10 1 Xilinx EDK 11 2 release 05 28 09 10 2 Xilinx EDK 11 3 release 10 26 09 10 3 Xilinx EDK 11 4 release 04 19 10 11...

Страница 4: ...MicroBlaze Processor Reference Guide www xilinx com UG081 v14 7...

Страница 5: ...PU 80 Stream Link Interfaces 84 Debug and Trace 85 Fault Tolerance 86 Lockstep Operation 92 Chapter 3 MicroBlaze Signal Interface Description Overview 95 MicroBlaze I O Overview 96 AXI4 and ACE Interf...

Страница 6: ...ter Usage Conventions 152 Stack Convention 153 Memory Model 155 Interrupt and Exception Handling 156 Chapter 5 MicroBlaze Instruction Set Architecture Notation 159 Formats 161 Instructions 161 Appendi...

Страница 7: ...Big Endian and Little Endian bit reversed format 32 bit general purpose registers cache software support and Fast Simplex Link interfaces Chapter 3 MicroBlaze Signal Interface Description describes t...

Страница 8: ...8 www xilinx com MicroBlaze Processor Reference Guide UG081 v14 7 Chapter 1 Introduction Send Feedback...

Страница 9: ...mized for implementation in Xilinx Field Programmable Gate Arrays FPGAs Figure 2 1 shows a functional block diagram of the MicroBlaze core Figure 2 1 MicroBlaze Core Block Diagram DXCL_M DXCL_S Data s...

Страница 10: ...MicroBlaze Versions v7 30 v8 10 v8 20 v8 30 v8 40 v8 50 Version Status obsolete deprecated deprecated deprecated deprecated preferred Processor pipeline depth 3 5 3 5 3 5 3 5 3 5 3 5 On chip Periphera...

Страница 11: ...y Accesses option option option option option option Use Xilinx Cache Link for All D Cache Memory Accesses option option option option option option Use Write back Caching Policy for D Cache option op...

Страница 12: ...ion option option option Lockstep support option option option option Configurable use of FPGA primitives option option option option Low latency interrupt mode option option option Swap instructions...

Страница 13: ...Endian Byte Significance MSByte LSByte Big Endian Byte Order n n 1 n 2 n 3 Big Endian Byte Reversed Order n 3 n 2 n 1 n Little Endian Byte Address n 3 n 2 n 1 n Little Endian Byte Significance MSByte...

Страница 14: ...semantics of each instruction Table 2 5 Instruction Set Nomenclature Symbol Description Ra R0 R31 General Purpose Register source operand a Rb R0 R31 General Purpose Register source operand b Rd R0 R...

Страница 15: ...data type All arithmetic operations are performed on signed word operands unless otherwise specified unsigned Operation performed on unsigned integer data type float Operation performed on floating po...

Страница 16: ...b 00000000000 Rd Ra Rb MULH Rd Ra Rb 010000 Rd Ra Rb 00000000001 Rd Ra Rb 32 signed MULHU Rd Ra Rb 010000 Rd Ra Rb 00000000011 Rd Ra Rb 32 unsigned MULHSU Rd Ra Rb 010000 Rd Ra Rb 00000000010 Rd Ra si...

Страница 17: ...01000100000 Rd 1 if Rb Ra float1 else Rd 0 FCMP LE Rd Ra Rb 010110 Rd Ra Rb 01000110000 Rd 1 if Rb Ra float1 else Rd 0 FCMP GT Rd Ra Rb 010110 Rd Ra Rb 01001000000 Rd 1 if Rb Ra float1 else Rd 0 FCMP...

Страница 18: ...se Rd 0 SRA Rd Ra 100100 Rd Ra 0000000000000001 Rd s Ra 1 C Ra 31 SRC Rd Ra 100100 Rd Ra 0000000000100001 Rd C Ra 1 C Ra 31 SRL Rd Ra 100100 Rd Ra 0000000001000001 Rd 0 Ra 1 C Ra 31 SEXT8 Rd Ra 100100...

Страница 19: ...x1001 is ZPR SPR 0x1002 is TLBX SPR 0x1003 is TLBLO SPR 0x1004 is TLBHI SPR 0x1005 is TLBSX MFS Rd Sa 100101 Rd 00000 10 Sa Rd SPR Sa where SPR 0x0000 is PC SPR 0x0001 is MSR SPR 0x0003 is EAR SPR 0x0...

Страница 20: ...11 10000 Ra Rb 00000000000 PC PC Rb if Ra 0 BNED Ra Rb 100111 10001 Ra Rb 00000000000 PC PC Rb if Ra 0 BLTD Ra Rb 100111 10010 Ra Rb 00000000000 PC PC Rb if Ra 0 BLED Ra Rb 100111 10011 Ra Rb 00000000...

Страница 21: ...Imm 101111 00101 Ra Imm PC PC s Imm if Ra 0 BEQID Ra Imm 101111 10000 Ra Imm PC PC s Imm if Ra 0 BNEID Ra Imm 101111 10001 Ra Imm PC PC s Imm if Ra 0 BLTID Ra Imm 101111 10010 Ra Imm PC PC s Imm if R...

Страница 22: ...tore is successful the sequence of instructions from the semaphore load to the semaphore store appear to be executed atomically no other device modified the semaphore location between SB Rd Ra Rb SBR...

Страница 23: ...the processor A conditional sequence begins with an LWX instruction It can be followed by memory accesses and or computations on the loaded value The sequence ends with an SWX instruction In most case...

Страница 24: ...fer if write back cache and victim buffers are used Software must ensure that the modified instructions have been written to memory before being fetched by the processor The annotated code below shows...

Страница 25: ...software conventions on general purpose register usage 0 31 R0 R31 Figure 2 2 R0 R31 Table 2 7 General Purpose Registers R0 R31 Bits Name Description Reset Value 0 31 R0 Always has a value of zero An...

Страница 26: ...can be written using either an MTS instruction or the dedicated MSRSET and MSRCLR instructions When writing to the MSR using MSRSET or MSRCLR the Carry bit takes effect immediately and the remaining...

Страница 27: ...Virtual Access protection enabled with C_USE_MMU 2 Protection Only available when configured with an MMU if C_USE_MMU 1 and C_AREA_OPTIMIZED 0 Read Write 0 19 UMS User Mode Save Only available when co...

Страница 28: ...se hardware divider C_USE_DIV 1 Read Write 0 26 ICE Instruction Cache Enable 0 Instruction Cache disabled 1 Instruction Cache enabled Only available if configured to use instruction cache C_USE_ICACHE...

Страница 29: ...ction Storage Exception Data TLB Miss Exception Instruction TLB Miss Exception cannot be disabled and are not affected by this bit 2 This bit is only used for integer divide by zero or divide overflow...

Страница 30: ...s accessed An instruction storage exception that specifies the virtual effective address read A data TLB miss exception that specifies the virtual effective address accessed An instruction TLB miss ex...

Страница 31: ...on Reset Value 0 18 Reserved 19 DS Delay Slot Exception 0 not caused by delay slot instruction 1 caused by delay slot instruction Read only 0 20 26 ESS Exception Specific Status For details refer to T...

Страница 32: ...tion 20 26 Reserved 0 Instruction bus error 20 ECC Exception caused by ILMB correctable or uncorrectable error 0 21 26 Reserved 0 Data bus error 20 ECC Exception caused by DLMB correctable or uncorrec...

Страница 33: ...n the BTR is specified by setting Sa 0x000B The BTR register is illustrated in Figure 2 7 and Table 2 13 provides bit descriptions and reset values Instruction storage 20 DIZ Instruction storage Zone...

Страница 34: ...a Register stores data read on a stream link FSL or AXI that caused a stream exception The contents of this register is undefined for all other exceptions When read with the MFS instruction the EDR is...

Страница 35: ...High Register SHR The Stack High Register stores the stack high limit use to detect stack underflow When the address of a load or store instruction using the stack pointer register R1 as rA is greater...

Страница 36: ...a 0x1000 The register is accessible according to the memory management special registers parameter C_MMU_TLB_ACCESS PID is also used when accessing a TLB entry When writing Translation Look Aside Buff...

Страница 37: ...rs parameter C_MMU_TLB_ACCESS Figure 2 13 illustrates the ZPR register and Table 2 19 provides bit descriptions and reset values 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 ZP0 ZP1 ZP2 ZP3 ZP4 ZP5 ZP6...

Страница 38: ...te The UTLB is not reset by the external reset inputs Reset MB_Reset and Debug_Rst Figure 2 14 illustrates the TLBLO register and Table 2 20 provides bit descriptions and reset values 0 22 23 24 28 29...

Страница 39: ...the parameter C_DCACHE_USE_WRITEBACK is set to 1 this bit controls caching policy A write through policy is selected when set to 1 and a write back policy is selected otherwise This bit is fixed to 1...

Страница 40: ...TLBHI and MSR UM is not set the value in the TID field is stored in PID The UTLB is reset on bit stream download reset value is 0x00000000 for all TLBHI entries Note The UTLB is not reset by the exter...

Страница 41: ...an or as a little endian page otherwise The E bit only affects data read or data write accesses Instruction accesses are not affected The E bit is only implemented when the parameter C_USE_REORDER_INS...

Страница 42: ...e 2 16 TLBX Table 2 22 Translation Look Aside Buffer Index Register TLBX Bits Name Description Reset Value 0 MISS TLB Miss This bit is cleared to 0 when the TLBSX register is written with a virtual ad...

Страница 43: ...and Table 2 23 provides bit descriptions and reset values 0 22 31 VPN Reserved Figure 2 17 TLBSX Table 2 23 Translation Look Aside Buffer Index Search Register TLBSX Bits Name Description Reset Value...

Страница 44: ...MUL Use hardware multiplier C_USE_HW_MUL 0 None 4 FPU Use FPU C_USE_FPU 0 None 5 EXC Use any type of exceptions Based on C_ _EXCEPTION Also set if C_USE_MMU 0 None 6 ICU Use instruction cache C_USE_IC...

Страница 45: ...e C_I_PLB 8 INTERCON Use PLB interconnect C_INTERCONNECT 1 PLBv46 9 STREAM Use AXI4 Stream interconnect C_STREAM_INTERCONNECT 1 AXI4 Stream 10 ACE Use ACE interconnect C_INTERCONNECT 3 ACE 11 AXI4DP D...

Страница 46: ...any illegal opcode C_ILL_OPCODE_EXCEPTION 28 AXIIEXC Generate exception for M_AXI_I error C_M_AXI_I_BUS_EXCEPTION 29 AXIDEXC Generate exception for M_AXI_D error C_M_AXI_D_BUS_EXCEPTION 30 DIVEXC Gen...

Страница 47: ...struction cache is used for all memory accesses within the cacheable range C_ICACHE_ALWAYS_USED 17 Reserved 0 18 ICI Instruction cache XCL protocol C_ICACHE_INTERFACE 19 21 ICV Instruction cache victi...

Страница 48: ...idth C_DCACHE_DATA_WIDTH 0 26 AXI4DC Data Cache AXI interface uses AXI4 protocol with support for exclusive access C_M_AXI_DC_EXCLUSIVE_ACCESS 27 31 Reserved 0 Table 2 30 Processor Version Register 6...

Страница 49: ...e Grade Virtex 6 Q Virtex 7 Defence Grade Virtex 7 Q Kintex 7 Defence Grade Kintex 7 Q Artix 7 Automotive Artix 7 Defence Grade Artix 7 Q Zynq 7000 Automotive Zynq 7000 Defence Grade Zynq 7000 Q 8 31...

Страница 50: ...laze Processor Reference Guide UG081 v14 7 Chapter 2 MicroBlaze Architecture Table 2 36 Processor Version Register 12 PVR12 Bits Name Description Value 0 31 VECTORS Location of MicroBlaze vectors C_BA...

Страница 51: ...buffer should be emptied before executing the modified instructions to ensure that it does not contain the old unmodified instructions The recommended way to do this is using an MBAR instruction alth...

Страница 52: ...en simply changed to the saved target address in case the branch should be taken Unconditional branches and return instructions are always taken whereas conditional branches use branch prediction to a...

Страница 53: ...cesses to I O and memory it uses memory mapped I O The processor has up to three interfaces for memory accesses Local Memory Bus LMB Advanced eXtensible Interface AXI4 or Processor Local Bus PLB Advan...

Страница 54: ...user mode and virtual mode status is saved in the MSR UMS and VMS bits Application user mode programs transfer control to system service routines privileged mode programs using the BRALID or BRKI inst...

Страница 55: ...memory management unit MMU available when C_USE_MMU is set to 3 Virtual and C_AREA_OPTIMIZED is set to 0 The MMU controls effective address to physical address mapping and supports memory protection...

Страница 56: ...2 37 System software maintains a page translation table that contains entries used to translate each virtual page into a physical page The page size defined by a page translation entry determines the...

Страница 57: ...page size selection enables system software to more efficiently use memory by reducing fragmentation unused memory For example a large data structure can be allocated to a 16 MB page and a small I O...

Страница 58: ...ins data page translation entries and is fully associative The page translation entries stored in the DTLB represent the most recently accessed data page translations from the UTLB The DTLB is used to...

Страница 59: ...icy for the data cache write back or write through whether a page is cacheable and how bytes are ordered endianness Table 2 37 shows the relationship between the TLB entry SIZE field and the translate...

Страница 60: ...to load the TLB with multiple entries that match an EA EPN and PID combination However this is considered a programming error and results in undefined behavior When a hit occurs the MMU reads the RPN...

Страница 61: ...B entry specifies a zone field that prevents access to the page ZPR Zn 00 This applies to load and store instructions The TLB entry specifies a read only page TLBLO WR 0 that is not otherwise overridd...

Страница 62: ...led MSR VM 1 an instruction TLB miss exception occurs if a valid matching TLB entry was not found in the TLB shadow and UTLB Any instruction fetch can cause an instruction TLB miss exception Access Pr...

Страница 63: ...tain any number of pages specifying any combination of page sizes There is no requirement for a zone to contain adjacent pages The zone protection register ZPR is a 32 bit register used to specify the...

Страница 64: ...Instead system software can use the TLB miss exceptions and the data storage exception to collect this information As the information is collected it can be stored in a data structure associated with...

Страница 65: ...ith future releases of EDK support software All of these events will clear the reservation bit used together with the LWX and SWX instructions to implement mutual exclusion such as semaphores and spin...

Страница 66: ...manner For the MMU exceptions Data Storage Exception Instruction Storage Exception Data TLB Miss Exception Instruction TLB Miss Exception the register R17 is loaded with the appropriate program count...

Страница 67: ..._USE_CE_EXCEPTION is set to 1 and a correctable error occurs in the LMB memory as indicated by the ICE signal The CacheLink IXCL interfaces cannot cause instruction bus exceptions Illegal Opcode Excep...

Страница 68: ...operand or by illegal infinite or zero operand combinations Privileged Instruction Exception The Privileged Instruction exception is caused by an attempt to execute a privileged instruction in User Mo...

Страница 69: ..._NM_BRK input ports On a break the instruction in the execution stage completes while the instruction in the decode stage is replaced by a branch to the break vector address C_BASE_VECTORS 0x18 The br...

Страница 70: ...uction in the decode stage at the time of the interrupt is automatically loaded into general purpose register R14 In addition the processor also disables future interrupts by clearing the IE bit in th...

Страница 71: ...t Service Routine ISR from the time an interrupt occurs depends on the configuration of the processor and the latency of the memory controller storing the interrupt vectors If MicroBlaze is configured...

Страница 72: ...le segment size must be 2N where N is a positive integer The range specified by C_ICACHE_BASEADDR and C_ICACHE_HIGHADDR must comprise a complete power of two range such that range 2N and the N least s...

Страница 73: ...in a tag or instruction Block RAM The instruction cache always issues burst accesses for the CacheLink interface whereas it only issues burst accesses for the AXI4 interface when 32 bit data width is...

Страница 74: ...sing the hardware debug logic of MicroBlaze WIC Instruction The optional WIC instruction C_ALLOW_ICACHE_WR 1 is used to invalidate cache lines in the instruction cache from an application For a detail...

Страница 75: ...of cacheable memory When selecting cache sizes below 2 kB distributed RAM is used to implement the Tag RAM and Data RAM except that block RAM is always used for the Data RAM when C_AREA_OPTIMIZED is...

Страница 76: ...ith the write through protocol a store to an address within the cacheable range generates an equivalent byte halfword or word write over the data AXI4 interface or the data CacheLink to external memor...

Страница 77: ...nsure that all the prior writes within the cacheable range have been completed in external memory before reading back over M_AXI_DP or PLB This can be done by writing to a semaphore immediately before...

Страница 78: ...n The optional WDC instruction C_ALLOW_DCACHE_WR 1 is used to invalidate or flush cache lines in the data cache from an application For a detailed description please refer to Chapter 5 MicroBlaze Inst...

Страница 79: ...SR This method is commonly referred to as Flush to Zero FTZ An operation on a quiet NaN returns the fixed NaN 0xFFC00000 rather than one of the NaN operands Overflow as a result of a floating point op...

Страница 80: ...perations addition fadd subtraction fsub multiplication fmul division fdiv square root fsqrt available if C_USE_FPU 2 EXTENDED Comparison The FPU implements the following floating point comparisons co...

Страница 81: ...one operation can be ongoing at any time C Language Programming To gain maximum benefit from the FPU without low level assembly language programming it is important to consider how the C compiler wil...

Страница 82: ...ot functions sqrt result in inefficient emulation routines being used instead of FPU instructions include math h float x 1 0F x sqrt x uses double precision Here the math h header is included to avoid...

Страница 83: ...pposite direction Both instructions come in 4 flavors blocking data non blocking data blocking control and non blocking control For a detailed description of the get and put instructions please refer...

Страница 84: ...which can only be read Support for multiple processors Whenever Microblaze is halted the MB_Halted output signal is set to 1 for example after a breakpoint or watchpoint is hit after a stop XMD comma...

Страница 85: ...eaving the LMB BRAM unprotected by disabling C_ECC in the configuration dialogs of all connected LMB BRAM Interface Controllers In this case the internal MicroBlaze block RAM protection is still enabl...

Страница 86: ...s used When a parity error is detected during an address translation a TLB miss exception occurs forcing software to reload the entry When a new TLB entry is written using the TLBHI and TLBLO register...

Страница 87: ...st The Timer Counter instance void MicroBlazeScrubHandler void CallBackRef u8 TmrCtrNumber Perform other timer interrupt processing here microblaze_scrub int main void int Status Initialize the timer...

Страница 88: ...n it would expire once only XTmrCtr_SetOptions TimerCounterInst TIMER_CNTR_0 XTC_INT_MODE_OPTION XTC_AUTO_RELOAD_OPTION Set a reset value for the timer counter such that it will expire earlier than le...

Страница 89: ...First Failing Address Register in each of the LMB BRAM Interface Controllers To be able to generate an interrupt C_ECC_STATUS_REGISTERS must be set to 1 in the connected LMB BRAM Interface Controller...

Страница 90: ...ch the address for the access into the Correctable Error First Failing Address Register and set the CE_STATUS bit in the ECC Status Register An interrupt will be generated triggering MicroBlaze to rea...

Страница 91: ...rk Use Cases Two common use cases are described here In addition lockstep operation provides the basis for implementing triple modular redundancy on MicroBlaze core level Tamper Protection This applic...

Страница 92: ...ster MicroBlaze core drive the peripherals in the system The slave MicroBlaze core only has inputs connected all outputs are left open The system contains the basic building block for designing a comp...

Страница 93: ...ection Application BRAM Controller BRAM Controller ILMB DLMB BRAM MicroBlaze Debug Module MicroBlaze Slave Debug C_LOCKSTEP_SLAVE 1 MicroBlaze Master Debug C_LOCKSTEP_SLAVE 0 Error Reset Comparator Lo...

Страница 94: ...94 www xilinx com MicroBlaze Processor Reference Guide UG081 v14 7 Chapter 2 MicroBlaze Architecture Send Feedback...

Страница 95: ...eLink interface is intended for use with specialized external memory controllers MicroBlaze also supports up to 16 Fast Simplex Link FSL or AXI4 Stream interface ports each with one master and one sla...

Страница 96: ...ave interfaces DRFSL0 15 FSL slave direct connection interfaces DXCL Data side Xilinx CacheLink interface FSL master slave pair M_AXI_DC Data side cache AXI4 interface M_ACE_DC Data side cache ACE int...

Страница 97: ...r Write data M_AXI_DP_WSTRB M_AXI_DP O Master Write strobes M_AXI_DP_WLAST M_AXI_DP O Master Write last M_AXI_DP_WVALID M_AXI_DP O Master Write valid M_AXI_DP_WREADY M_AXI_DP I Slave Write ready M_AXI...

Страница 98: ...M_AXI_IP_AWQOS M_AXI_IP O Master Quality of Service M_AXI_IP_AWVALID M_AXI_IP O Master Write address valid M_AXI_IP_AWREADY M_AXI_IP I Slave Write address ready M_AXI_IP_WDATA M_AXI_IP O Master Write...

Страница 99: ...O Master Burst type M_AXI_DC_AWLOCK M_AXI_DC O Master Lock type M_AXI_DC_AWCACHE M_AXI_DC O Master Cache type M_AXI_DC_AWPROT M_AXI_DC O Master Protection type M_AXI_DC_AWQOS M_AXI_DC O Master Quality...

Страница 100: ..._DC_ARVALID M_AXI_DC O Master Read address valid M_AXI_DC_ARREADY M_AXI_DC I Slave Read address ready M_AXI_DC_ARUSER M_AXI_DC O Master Read address user signals M_AXI_DC_ARDOMAIN M_ACE_DC O Master Re...

Страница 101: ...HE M_AXI_IC O Master Cache type M_AXI_IC_AWPROT M_AXI_IC O Master Protection type M_AXI_IC_AWQOS M_AXI_IC O Master Quality of Service M_AXI_IC_AWVALID M_AXI_IC O Master Write address valid M_AXI_IC_AW...

Страница 102: ...dy M_AXI_IC_ARUSER M_AXI_IC O Master Read address user signals M_AXI_IC_ARDOMAIN M_ACE_IC O Master Read address domain M_AXI_IC_ARSNOOP M_ACE_IC O Master Read address snoop M_AXI_IC_ARBAR M_ACE_IC O M...

Страница 103: ...DPLB O Data Interface PLB bus request priority DPLB_M_rdBurst DPLB O Data Interface PLB burst read transfer indicator DPLB_M_request DPLB O Data Interface PLB bus request DPLB_M_RNW DPLB O Data Inter...

Страница 104: ...byte enables IPLB_M_busLock IPLB O Instruction Interface PLB bus lock IPLB_M_lockErr IPLB O Instruction Interface PLB lock error indicator IPLB_M_MSize IPLB O Instruction Interface PLB master data bus...

Страница 105: ...B_MSSize IPLB I Instruction Interface PLB slave data bus size IPLB_MTimeout IPLB I Instruction Interface PLB bus timeout Data_Addr 0 31 DLMB O Data interface LMB address bus Byte_Enable 0 3 DLMB O Dat...

Страница 106: ...s write data Sn_AXIS_TVALID S0_AXIS S15_AXIS I Slave interface input AXI4 channels write valid Sn_AXIS_TREADY S0_AXIS S15_AXIS O Slave interface output AXI4 channels write ready FSL0_M FSL15_M MFSL or...

Страница 107: ...I Wake MicroBlaze from sleep mode when either or both bits are set to 1 Ignored if MicroBlaze is not in sleep mode Dbg_Wakeup Core O Debug request that external logic should wake MicroBlaze from slee...

Страница 108: ...ache is enabled C_INTERCONNECT_M_AXI_IC_READ_ISSUING is set to 8 since it must be a power of two How memory locations are accessed depend on the parameter C_ICACHE_ALWAYS_USED If the parameter is 1 th...

Страница 109: ..._DC_DATA_WIDTH 32 Default single word accesses and burst accesses with C_DCACHE_LINE_LEN word busts used Write bursts are only used when C_DCACHE_USE_WRITEBACK is set to 1 128 Used when C_DCACHE_DATA_...

Страница 110: ...ority 8 1000 M_AXI_IC C_M_AXI_IC_ARCACHE Memory Type Write back Read and Write allocate 1111 M_ACE_IC C_M_AXI_IC_ARCACHE Memory Type normal access Write back Read and Write allocate 1111 Memory Type D...

Страница 111: ...MSR Read Operation A read from the stream interface is performed by MicroBlaze using one of the get or getd instructions A read operations transfers the contents of an input AXI4 interface to a gener...

Страница 112: ...puts from the core and indicate which byte lanes of the data bus contain valid data Byte_Enable 0 3 is valid only when AS is high In multicycle accesses accesses requiring more than one clock cycle to...

Страница 113: ...next clock cycle then Read_Strobe remains high Write_Strobe The write strobe is an output from the core and indicates that a write transfer is in progress This signal goes high in the first clock cyc...

Страница 114: ...ta word in local memory has been corrected before writing the new data UE The UE signal is an input to the core and indicates that the current transfer had an uncorrectable error It is valid on the ri...

Страница 115: ...s Figure 3 3 LMB Generic Write Operation N Wait States Clk Addr Byte_Enable Data_Write AS Read_Strobe Write_Strobe Data_Read Ready Wait CE UE A0 BE0 D0 Don t Care Figure 3 4 LMB Generic Read Operation...

Страница 116: ...eric Read Operation N Wait States Clk Addr Byte_Enable Data_Write AS Read_Strobe Write_Strobe Data_Read Ready Wait CE UE A0 D0 Don t Care Figure 3 6 LMB Back to Back Write Operation Clk Addr Byte_Enab...

Страница 117: ...7 LMB Back to Back Read Operation Figure 3 8 Back to Back Mixed Write Read Operation 0 Wait States Clk Addr Byte_Enable Data_Write AS Read_Strobe Write_Strobe Data_Read Ready Wait CE UE A0 Don t Care...

Страница 118: ...pter 3 MicroBlaze Signal Interface Description Figure 3 9 Back to Back Mixed Write Read Operation N Wait States Clk Addr Byte_Enable Data_Write AS Read_Strobe Write_Strobe Data_Read Ready Wait CE UE A...

Страница 119: ...Data steering for read cycles are shown in Table 3 6 and Table 3 7 and data steering for write cycles are shown in Table 3 8 and Table 3 9 Table 3 6 Big Endian Read Data Steering Load to Register rD A...

Страница 120: ...te Data Steering Store from Register rD Address 30 31 Byte_Enable 0 3 Transfer Size Write Data Bus Bytes Byte0 Byte1 Byte2 Byte3 11 0001 byte rD 24 31 10 0010 byte rD 24 31 01 0100 byte rD 24 31 00 10...

Страница 121: ...al Name Description VHDL Type Direction FSLn_M_Clk Clock std_logic input FSLn_M_Write Write enable signal indicating that data is being written to the output FSL std_logic output FSLn_M_Data Data valu...

Страница 122: ...h prefix n the transfer is completed in one or two clock cycles irrespective of whether or not the FSL was empty In the case the FSL was empty the transfer of data does not take place and the carry bi...

Страница 123: ..._ALWAYS_USED for the data cache If the parameter is 1 the cached memory range is always accessed via the CacheLink If the parameter is 0 the cached memory range is accessed over PLB whenever the cache...

Страница 124: ...gic output ICACHE_FSL_OUT_Full FSL access buffer for I side read accesses is full std_logic input DCACHE_FSL_IN_Clk Clock output to D side return read data FSL std_logic output DCACHE_FSL_IN_Read Read...

Страница 125: ...EDK IP Documentation The CacheLink solution uses one incoming slave and one outgoing master FSL per cache controller The outgoing FSL is used to send access requests while the incoming FSL is used fo...

Страница 126: ...ts goes high to indicate that data is available Note There must be at least one clock cycle before ICACHE_FSL_IN_Exists goes high that is at least one wait state must be used With the IXCL protocol cr...

Страница 127: ...30 31 of the address are used to encode burst access 0b10 burst To separate a burst access from a single byte write the control bit for the first data word in step 4 is low for a burst access DCACHE_...

Страница 128: ...put Lockstep_Out Output with all comparison signals from both master and slaves std_logic output Table 3 14 MicroBlaze Lockstep Comparison Signals Signal Name Bus Index Range VHDL Type MB_Halted 0 std...

Страница 129: ...DPLB_M_TAttribute 444 to 459 std_logic_vector DPLB_M_type 460 to 462 std_logic_vector DPLB_M_wrDBus1 463 to 590 std_logic_vector ICACHE_FSL_IN_Clk 591 std_logic ICACHE_FSL_IN_Read 592 std_logic ICACHE...

Страница 130: ...IP_ARPROT 814 to 816 std_logic_vector M_AXI_IP_ARQOS 817 to 820 std_logic_vector M_AXI_IP_ARVALID 821 std_logic M_AXI_IP_RREADY 822 std_logic M_AXI_DP_AWID 823 std_logic M_AXI_DP_AWADDR 824 to 855 std...

Страница 131: ...EADY 1608 n 35 std_logic M_AXI_IC_AWID 2133 std_logic M_AXI_IC_AWADDR 2134 to 2165 std_logic_vector M_AXI_IC_AWLEN 2166 to 2173 std_logic_vector M_AXI_IC_AWSIZE 2174 to 2176 std_logic_vector M_AXI_IC_...

Страница 132: ...2 2858 std_logic M_AXI_IC_ACREADY2 2859 std_logic M_AXI_IC_CRVALID2 2860 std_logic M_AXI_IC_CRRESP2 2861 to 2865 std_logic_vector M_AXI_IC_CDVALID2 2866 std_logic M_AXI_IC_CDLAST2 2867 std_logic M_AXI...

Страница 133: ...d_logic_vector M_AXI_DC_ARSNOOP2 3586 to 3589 std_logic_vector M_AXI_DC_ARBAR2 3590 to 3591 std_logic_vector M_AXI_DC_RREADY 3592 std_logic M_AXI_DC_RACK2 3593 std_logic M_AXI_DC_ACREADY2 3594 std_log...

Страница 134: ...3810 std_logic Trace_DCache_Read 3811 std_logic Trace_ICache_Req 3812 std_logic Trace_ICache_Hit 3813 std_logic Trace_ICache_Rdy 3814 std_logic Trace_OF_PipeRun 3815 std_logic Trace_EX_PipeRun 3816 st...

Страница 135: ...All unused Trace exception types are reserved Table 3 15 MicroBlaze Debug Signals Signal Name Description VHDL Type Direction Dbg_Clk JTAG clock from MDM std_logic input Dbg_TDI JTAG TDI from MDM std...

Страница 136: ...n D Cache range std_logic output Trace_DCache_Hit Data memory address is present in D Cache std_logic output Trace_DCache_Rdy Data memory address is within D Cache range and the access is completed st...

Страница 137: ...01 Unaligned exception 00010 Illegal Opcode exception 00011 Instruction Bus exception 00100 Data Bus exception 00101 Divide exception 00110 FPU exception 00111 Privileged instruction exception1 01010...

Страница 138: ...lly backward compatibility Note Shaded rows indicate that the parameter has a fixed value and cannot be modified Table 3 18 MPD Parameters Parameter Name Feature Description Allowable Values Default V...

Страница 139: ...0xa0 0x00 std_logic_vector C_INSTANCE Instance Name Any instance name micro blaze yes string C_D_PLB Data side PLB interface 0 1 0 yes integer C_D_AXI Data side AXI interface 0 1 0 yes integer C_D_LM...

Страница 140: ...ger C_IPLB_BUS_EXCEPTION Enable exception handling for IPLB bus error 0 1 0 integer C_DPLB_BUS_EXCEPTION Enable exception handling for DPLB bus error 0 1 0 integer C_M_AXI_I_BUS_EXCEPTION Enable excep...

Страница 141: ...integer C_EDGE_IS_POSITIVE Negative Positive Edge Interrupt 0 1 1 yes integer C_FSL_LINKS2 Number of stream interfaces FSL or AXI 0 16 0 yes integer C_FSL_DATA_SIZE FSL data bus size 32 32 NA integer...

Страница 142: ...struction cache data width 0 32 bits 1 Full cache line 2 512 bits 0 1 2 0 integer C_ADDR_TAG_BITS Instruction cache address tags 0 25 17 yes integer C_CACHE_BYTE_SIZE Instruction cache size 64 128 256...

Страница 143: ...he victims 0 2 4 8 0 integer C_DCACHE_DATA_WIDTH Data cache data width 0 32 bits 1 Full cache line 2 512 bits 0 1 2 0 integer C_DCACHE_ADDR_TAG Data cache address tags 0 25 17 yes integer C_DCACHE_BYT...

Страница 144: ...size 1 2 4 8 4 integer C_MMU_ITLB_SIZE5 Instruction shadow Translation Look Aside Buffer size 1 2 4 8 2 integer C_MMU_TLB_ACCESS5 Access to memory management special registers 0 Minimal 1 Read 2 Writ...

Страница 145: ...h 32 32 integer C_M_AXI_DP_ SUPPORTS_THREADS Data side AXI uses threads 0 0 integer C_M_AXI_DP_SUPPORTS_READ Data side AXI support for read accesses 1 1 integer C_M_AXI_DP_SUPPORTS_WRITE Data side AXI...

Страница 146: ...support 0 0 integer C_M_AXI_IP_PROTOCOL Instruction side AXI protocol AXI4LITE AXI4 LITE string C_INTERCONNECT_ M_AXI_IP_READ_ISSUING Instruction side AXI read accesses issued 1 1 integer C_M_AXI_DC_...

Страница 147: ...che AXI read accesses issued 1 2 2 integer C_INTERCONNECT_ M_AXI_DC_WRITE_ISSUING Data cache AXI write accesses issued 1 2 4 8 16 32 32 integer C_M_AXI_IC_ THREAD_ID_WIDTH Instruction cache AXI ID wid...

Страница 148: ...elect AXI4 Stream interconnect 0 1 0 integer C_Mn_AXIS_PROTOCOL AXI4 Stream protocol GENERIC GENERIC string C_Sn_AXIS_PROTOCOL AXI4 Stream protocol GENERIC GENERIC string C_Mn_AXIS_DATA_WIDTH AXI4 Str...

Страница 149: ...x7 artix7 artix7l qartix7 qartix7l Kintex kintex7 kintex7l qkintex7 qkintex7l Spartan aspartan3 aspartan3a aspartan3adsp aspartan3e aspartan6 qspartan6 qspartan6l spartan3 spartan3a spartan3adsp spart...

Страница 150: ...150 www xilinx com MicroBlaze Processor Reference Guide UG081 v14 7 Chapter 3 MicroBlaze Signal Interface Description Send Feedback...

Страница 151: ...tible with the compiler generated code Interrupt and Exception handling is also explained briefly Data Types The data types used by MicroBlaze assembly programs are shown in Table 4 1 Data types such...

Страница 152: ...r Service ID with attribute svc_table_handler R19 Non volatile SW Must be saved across function calls Callee save R20 Dedicated or Non volatile SW Reserved for storing a pointer to the Global Offset T...

Страница 153: ...ng the values in the small data read write section Register R1 stores the value of the stack pointer and is updated on entry and exit from functions Register R18 is used as a temporary register for as...

Страница 154: ...he stack is maintained are shown in Figure 4 1 High Address Function Parameters for called sub routine Arg n Arg1 Optional Maximum number of arguments required for any called procedure from the curren...

Страница 155: ...ed for the small data areas The small data area is accessed using the read write small data area anchor R13 and a 16 bit offset Allocating small variables to this area reduces the requirement of addin...

Страница 156: ...n_handler 0x10 imm high bits of address interrupt handler 0x14 bri _interrupt_handler 0x20 imm high bits of address HW exception handler 0x24 bri _hw_exception_handler With low latency interrupt mode...

Страница 157: ...andler ID The first attribute ensures that the compiler will emit an indirect call to the handler with a brki rD 0x8 instruction and emit an rtbd instruction to return from the handler This means that...

Страница 158: ...158 www xilinx com MicroBlaze Processor Reference Guide UG081 v14 7 Chapter 4 MicroBlaze Application Binary Interface Send Feedback...

Страница 159: ...ined in Table 5 1 Table 5 1 Symbol Notation Symbol Meaning Add Subtract Multiply Divide Bitwise logical AND Bitwise logical OR Bitwise logical XOR x Bitwise logical complement of x Assignment Right sh...

Страница 160: ...loating point true if x is or isPosInfinite x Floating point true if x is isNegInfinite x Floating point true if x isNaN x Floating point true if x is a quiet or signalling NaN isZero x Floating point...

Страница 161: ...ontains the opcode one destination and one source registers and a source 16 bit immediate value Instructions This section provides descriptions of MicroBlaze instructions Instructions are listed in al...

Страница 162: ...the instruction is set to one addc addkc the content of the carry flag MSR C affects the execution of the instruction When bit 4 is cleared add addk the content of the carry flag does not affect the...

Страница 163: ...one addic addikc the content of the carry flag MSR C affects the execution of the instruction When bit 4 is cleared addi addik the content of the carry flag does not affect the execution of the instr...

Страница 164: ...Set Architecture and Logical AND Description The contents of register rA are ANDed with the contents of register rB the result is placed into register rD Pseudocode rD rA rB Registers Altered rD Laten...

Страница 165: ...egister rD Pseudocode rD rA sext IMM Registers Altered rD Latency 1 cycle Note By default Type B Instructions will take the 16 bit IMM field value and sign extend it to 32 bits to use as the immediate...

Страница 166: ...andn Logical AND NOT Description The contents of register rA are ANDed with the logical complement of the contents of register rB the result is placed into register rD Pseudocode rD rA rB Registers A...

Страница 167: ...esult is placed into register rD Pseudocode rD rA sext IMM Registers Altered rD Latency 1 cycle Note By default Type B Instructions will take the 16 bit IMM field value and sign extend it to 32 bits t...

Страница 168: ...ing the target instruction If the D bit is not set it means that there is no delay slot so the instruction to be executed after the branch is the target instruction Pseudocode If rA 0 then PC PC rB el...

Страница 169: ...else PC PC 4 if D 1 then allow following instruction to complete execution Registers Altered PC Latency 1 cycle if branch is not taken or successful branch prediction occurs 2 cycles if branch is take...

Страница 170: ...ing the target instruction If the D bit is not set it means that there is no delay slot so the instruction to be executed after the branch is the target instruction Pseudocode If rA 0 then PC PC rB el...

Страница 171: ...else PC PC 4 if D 1 then allow following instruction to complete execution Registers Altered PC Latency 1 cycle if branch is not taken or successful branch prediction occurs 2 cycles if branch is take...

Страница 172: ...ng the target instruction If the D bit is not set it means that there is no delay slot so the instruction to be executed after the branch is the target instruction Pseudocode If rA 0 then PC PC rB els...

Страница 173: ...lse PC PC 4 if D 1 then allow following instruction to complete execution Registers Altered PC Latency 1 cycle if branch is not taken or successful branch prediction occurs 2 cycles if branch is taken...

Страница 174: ...ing the target instruction If the D bit is not set it means that there is no delay slot so the instruction to be executed after the branch is the target instruction Pseudocode If rA 0 then PC PC rB el...

Страница 175: ...else PC PC 4 if D 1 then allow following instruction to complete execution Registers Altered PC Latency 1 cycle if branch is not taken or successful branch prediction occurs 2 cycles if branch is take...

Страница 176: ...ng the target instruction If the D bit is not set it means that there is no delay slot so the instruction to be executed after the branch is the target instruction Pseudocode If rA 0 then PC PC rB els...

Страница 177: ...lse PC PC 4 if D 1 then allow following instruction to complete execution Registers Altered PC Latency 1 cycle if branch is not taken or successful branch prediction occurs 2 cycles if branch is taken...

Страница 178: ...ng the target instruction If the D bit is not set it means that there is no delay slot so the instruction to be executed after the branch is the target instruction Pseudocode If rA 0 then PC PC rB els...

Страница 179: ...lse PC PC 4 if D 1 then allow following instruction to complete execution Registers Altered PC Latency 1 cycle if branch is not taken or successful branch prediction occurs 2 cycles if branch is taken...

Страница 180: ...there is a branch delay slot or not If the D bit is set it means that there is a delay slot and the instruction following the branch that is in the branch delay slot is allowed to complete execution b...

Страница 181: ...Instructions Note The instructions brl and bral are not available A delay slot must not be used by the following imm branch or break instructions Interrupts and external hardware breaks are deferred...

Страница 182: ...the branch that is in the branch delay slot is allowed to complete execution before executing the target instruction If the D bit is not set it means that there is no delay slot so the instruction to...

Страница 183: ...re not available By default Type B Instructions will take the 16 bit IMM field value and sign extend it to 32 bits to use as the immediate operand This behavior can be overridden by preceding the Type...

Страница 184: ...n bit will be cleared When MicroBlaze is configured to use an MMU C_USE_MMU 1 this instruction is privileged This means that if the instruction is attempted in User Mode MSR UM 1 a Privileged Instruct...

Страница 185: ...ister bits User Mode and Virtual Mode are cleared Pseudocode if MSR UM and IMM C_BASE_VECTORS 0x8 and IMM C_BASE_VECTORS 0x18 then ESR EC 00111 else rD PC PC sext IMM MSR BIP 1 Reservation 0 if IMM C_...

Страница 186: ...he barrel shift performed is Arithmetical The mnemonics bsrl and bsll clear the T bit and the shift performed is Logical Pseudocode if S 1 then rD rA rB 27 31 else if T 1 then if rB 27 31 0 then rD 0...

Страница 187: ...sll clear the T bit and the shift performed is Logical Pseudocode if S 1 then rD rA IMM else if T 1 then if IMM 0 then rD 0 IMM 1 rA 0 rD IMM 31 rA IMM else rD rA else rD rA IMM Registers Altered rD L...

Страница 188: ...e most significant bit The result is a number between 0 and 32 stored in register rD The result in rD is 32 when rA is 0 and it is 0 if rA is 0xFFFFFFFF Pseudocode n 0 while rA n 0 n n 1 rD n Register...

Страница 189: ...r rD The MSB bit of rD is adjusted to shown true relation between rA and rB If the U bit is set rA and rB is considered unsigned values If the U bit is clear rA and rB is considered signed values Pseu...

Страница 190: ...000 FSR IO 1 ESR EC 00110 else if isQuietNaN rA or isQuietNaN rB then rD 0xFFC00000 else if isDnz rA rB then rD signZero rA rB FSR UF 1 ESR EC 00110 else if isNaN rA rB then rD signInfinite rA rB FSR...

Страница 191: ...0xFFC00000 FSR IO 1 ESR EC 00110 else if isQuietNaN rA or isQuietNaN rB then rD 0xFFC00000 else if isDnz rB rA then rD signZero rB rA FSR UF 1 ESR EC 00110 else if isNaN rB rA then rD signInfinite rB...

Страница 192: ...rA then rD 0xFFC00000 FSR IO 1 ESR EC 00110 else if isQuietNaN rA or isQuietNaN rB then rD 0xFFC00000 else if isDnz rB rA then rD signZero rA rB FSR UF 1 ESR EC 00110 else if isNaN rB rA then rD signI...

Страница 193: ...sQuietNaN rB then rD 0xFFC00000 else if isZero rA and not isInfinite rB then rD signInfinite rB rA FSR DZ 1 ESR EC 00110 else if isDnz rB rA then rD signZero rB rA FSR UF 1 ESR EC 00110 else if isNaN...

Страница 194: ...ister is unchanged ESR EC if an FP exception is generated FSR IO DO Latency 1 cycle with C_AREA_OPTIMIZED 0 3 cycles with C_AREA_OPTIMIZED 1 Note These instructions are only available when the MicroBl...

Страница 195: ...1 ESR EC 00110 rD 1 Less than 001 rD 0 rD 1 rD 0 rD 0 FSR IO 1 ESR EC 00110 rD 0 FSR IO 1 ESR EC 00110 Equal 010 rD 0 rD 0 rD 1 rD 0 FSR IO 1 ESR EC 00110 rD 0 Less or equal 011 rD 0 rD 1 rD 1 rD 0 F...

Страница 196: ...nt and puts the result in register rD This is a 32 bit rounding signed conversion that will produce a 32 bit floating point result Pseudocode rD float rA Registers Altered rD Latency 4 cycles with C_A...

Страница 197: ...ESR EC 00110 else if isNaN rA then rD 0xFFC00000 FSR IO 1 ESR EC 00110 else if isInf rA or rA 231 or rA 231 1 then rD 0xFFC00000 FSR IO 1 ESR EC 00110 else rD int rA Registers Altered rD unless an FP...

Страница 198: ...IO 1 ESR EC 00110 else if isQuietNaN rA then rD 0xFFC00000 else if rA 0 then rD 0xFFC00000 FSR IO 1 ESR EC 00110 else if rA 0 then rD 0 else rD sqrt rA Registers Altered rD unless an FP exception is...

Страница 199: ...n e bit is 1 will generate an exception if there is a control bit mismatch In this case ESR is updated with EC set to the exception cause and ESS set to the link index The target register rD is not up...

Страница 200: ...all the pipeline of MicroBlaze until the instruction can be completed Interrupts are served when the parameter C_USE_EXTENDED_FSL_INSTR is set to 1 and the instruction is not atomic Note To refer to a...

Страница 201: ...SR FSL to 1 The exception versions when e bit is 1 will generate an exception if there is a control bit mismatch In this case ESR is updated with EC set to the exception cause and ESS set to the link...

Страница 202: ...with C_AREA_OPTIMIZED 0 2 cycles with C_AREA_OPTIMIZED 1 The blocking versions of this instruction will stall the pipeline of MicroBlaze until the instruction can be completed Interrupts are served un...

Страница 203: ...alue in rD will be 2147483648 unless an exception is generated Pseudocode if rA 0 then rD 0 MSR DZO 1 ESR EC 00101 ESR DEC 0 else if U 0 and rA 1 and rB 2147483648 then rD 2147483648 MSR DZO 1 ESR EC...

Страница 204: ...tion with an imm instruction The imm instruction locks the 16 bit IMM value temporarily for the next instruction A Type B instruction that immediately follows the imm instruction will then form a 32 b...

Страница 205: ...allowed zone protection This only applies to accesses with user mode and virtual protected mode enabled Pseudocode Addr rA rB if TLB_Miss Addr and MSR VM 1 then ESR EC 10010 ESR S 0 MSR UMS MSR UM MS...

Страница 206: ...IMM if TLB_Miss Addr and MSR VM 1 then ESR EC 10010 ESR S 0 MSR UMS MSR UM MSR VMS MSR VM MSR UM 0 MSR VM 0 else if Access_Protected Addr and MSR UM 1 and MSR VM 1 then ESR EC 10000 ESR S 0 ESR DIZ 1...

Страница 207: ...and virtual protected mode enabled An unaligned data access exception occurs if the least significant bit in the address is not zero Pseudocode Addr rA rB if TLB_Miss Addr and MSR VM 1 then ESR EC 100...

Страница 208: ...ss Addr and MSR VM 1 then ESR EC 10010 ESR S 0 MSR UMS MSR UM MSR VMS MSR VM MSR UM 0 MSR VM 0 else if Access_Protected Addr and MSR UM 1 and MSR VM 1 then ESR EC 10000 ESR S 0 ESR DIZ 1 MSR UMS MSR U...

Страница 209: ...ast significant bits in the address are not zero Pseudocode Addr rA rB if TLB_Miss Addr and MSR VM 1 then ESR EC 10010 ESR S 0 MSR UMS MSR UM MSR VMS MSR VM MSR UM 0 MSR VM 0 else if Access_Protected...

Страница 210: ...0 MSR UMS MSR UM MSR VMS MSR VM MSR UM 0 MSR VM 0 else if Access_Protected Addr and MSR UM 1 and MSR VM 1 then ESR EC 10000 ESR S 0 ESR DIZ 1 MSR UMS MSR UM MSR VMS MSR VM MSR UM 0 MSR VM 0 else if Ad...

Страница 211: ...n AXI4 interconnect with exclusive access enabled is used and the interconnect response is not EXOKAY which means that an exclusive access cannot be handled Enabling AXI exclusive access ensures that...

Страница 212: ...S if an exception is generated ESR DIZ if a data storage exception is generated Latency 1 cycle with C_AREA_OPTIMIZED 0 2 cycles with C_AREA_OPTIMIZED 1 Note This instruction is used together with SW...

Страница 213: ...ode MSR UM 1 a Privileged Instruction exception occurs When the most significant bit in IMM is set to 1 and no exception occurs MicroBlaze enters sleep mode after all outstanding accesses have been co...

Страница 214: ...case 0x1001 rD ZPR case 0x1002 rD TLBX case 0x1003 rD TLBLO case 0x1004 rD TLBHI case 0x200x rD PVR x where x 0 to 12 default rD Undefined Registers Altered rD Latency 1 cycle Notes To refer to specia...

Страница 215: ...arameter C_FSL_EXCEPTION is set to 1 and the parameter C_FSL_LINKS is greater than 0 FSR is only valid as an operand when the C_USE_FPU parameter is greater than 0 SLR and SHR are only valid as an ope...

Страница 216: ...e Carry bit immediately while the remaining bits will take effect one cycle after the instruction has been executed When clearing the IE bit it is guaranteed that the processor will not react to any i...

Страница 217: ...MSR ESR EC in case a privileged instruction exception is generated Latency 1 cycle Notes MSRSET will affect the Carry bit immediately while the remaining bits will take effect one cycle after the ins...

Страница 218: ...Blaze Processor Reference Guide UG081 v14 7 Chapter 5 MicroBlaze Instruction Set Architecture When setting MSR VM the instruction must always be followed by a synchronizing branch instruction for exam...

Страница 219: ...case 0x0001 MSR rA case 0x0007 FSR rA case 0x0800 SLR rA case 0x0802 SHR rA case 0x1000 PID rA case 0x1001 ZPR rA case 0x1002 TLBX rA case 0x1003 TLBLO rA case 0x1004 TLBHI rA case 0x1005 TLBSX rA if...

Страница 220: ..._FPU is greater than 0 The SLR and SHR are only valid as a destination if the MicroBlaze parameter C_USE_STACK_PROTECTION is set to 1 PID ZPR and TLBSX are only valid as destinations when the paramete...

Страница 221: ...The least significant word of this value is placed in rD The most significant word is discarded Pseudocode rD LSW rA rB Registers Altered rD Latency 1 cycle with C_AREA_OPTIMIZED 0 3 cycles with C_ARE...

Страница 222: ...scarded Pseudocode rD MSW rA rB signed Registers Altered rD Latency 1 cycle with C_AREA_OPTIMIZED 0 3 cycles with C_AREA_OPTIMIZED 1 Note This instruction is only valid if the target architecture has...

Страница 223: ...eudocode rD MSW rA rB unsigned Registers Altered rD Latency 1 cycle with C_AREA_OPTIMIZED 0 3 cycles with C_AREA_OPTIMIZED 1 Note This instruction is only valid if the target architecture has multipli...

Страница 224: ...d is discarded Pseudocode rD MSW rA signed rB unsigned signed Registers Altered rD Latency 1 cycle with C_AREA_OPTIMIZED 0 3 cycles with C_AREA_OPTIMIZED 1 Note This instruction is only valid if the t...

Страница 225: ...ext IMM Registers Altered rD Latency 1 cycle with C_AREA_OPTIMIZED 0 3 cycles with C_AREA_OPTIMIZED 1 Notes By default Type B Instructions will take the 16 bit IMM field value and sign extend it to 32...

Страница 226: ...cription The contents of register rA are ORed with the contents of register rB the result is placed into register rD Pseudocode rD rA rB Registers Altered rD Latency 1 cycle Note The assembler pseudo...

Страница 227: ...ister rD Pseudocode rD rA sext IMM Registers Altered rD Latency 1 cycle Note By default Type B Instructions will take the 16 bit IMM field value and sign extend it to 32 bits to use as the immediate o...

Страница 228: ...as position 1 and comparing until LSB as position 4 If none of the byte pairs match rD is set to 0 Pseudocode if rB 0 7 rA 0 7 then rD 1 else if rB 8 15 rA 8 15 then rD 2 else if rB 16 23 rA 16 23 th...

Страница 229: ...ents in register rB rD is loaded with 1 if they match and 0 if not Pseudocode if rB rA then rD 1 else rD 0 Registers Altered rD Latency 1 cycle Note This instruction is only available when the paramet...

Страница 230: ...mpared with the contents in register rB rD is loaded with 0 if they match and 1 if not Pseudocode if rB rA then rD 0 else rD 1 Registers Altered rD Latency 1 cycle Note This instruction is only availa...

Страница 231: ...1 will be handled as the normal case except that the write signal to the link is not asserted thus no source register is required Atomic versions when a bit is 1 are not interruptible This means that...

Страница 232: ...upts are served when the parameter C_USE_EXTENDED_FSL_INSTR is set to 1 and the instruction is not atomic Note To refer to an FSLx interface in assembly language use rfsl0 rfsl1 rfsl15 The blocking ve...

Страница 233: ...o 1 The test versions when t bit is 1 will be handled as the normal case except that the write signal to the link is not asserted thus no source register is required Atomic versions when a bit is 1 ar...

Страница 234: ...ions of this instruction will stall the pipeline of MicroBlaze until the instruction can be completed Interrupts are served unless the instruction is atomic which ensures that the instruction cannot b...

Страница 235: ...the carry flag will be affected by the execution of the instruction When bit 4 of the instruction is set to one rsubc rsubkc the content of the carry flag MSR C affects the execution of the instructi...

Страница 236: ...tent of the carry flag MSR C affects the execution of the instruction When bit 4 is cleared rsubi rsubik the content of the carry flag does not affect the execution of the instruction providing a norm...

Страница 237: ...U C_USE_MMU 1 this instruction is privileged This means that if the instruction is attempted in User Mode MSR UM 1 a Privileged Instruction exception occurs Pseudocode if MSR UM 1 then ESR EC 00111 el...

Страница 238: ...User Mode MSR UM 1 a Privileged Instruction exception occurs With low latency interrupt mode C_USE_INTERRUPT 2 the Interrupt_Ack output port is set to 10 when this instruction is executed and subseque...

Страница 239: ...struction to complete execution MSR EE 1 MSR EIP 0 MSR UM MSR UMS MSR VM MSR VMS ESR 0 Registers Altered PC MSR EE MSR EIP MSR UM MSR VM ESR Latency 2 cycles Note Convention is to use general purpose...

Страница 240: ...ore the branch target Pseudocode PC rA sext IMM allow following instruction to complete execution Registers Altered PC Latency 1 cycle if successful branch prediction occurs 2 cycles with Branch Targe...

Страница 241: ...nd access is prevented by no access allowed or read only zone protection No access allowed can only occur in user mode Pseudocode Addr rA rB if TLB_Miss Addr and MSR VM 1 then ESR EC 10010 ESR S 1 MSR...

Страница 242: ...ddr rA sext IMM if TLB_Miss Addr and MSR VM 1 then ESR EC 10010 ESR S 1 MSR UMS MSR UM MSR VMS MSR VM MSR UM 0 MSR VM 0 else if Access_Protected Addr and MSR VM 1 then ESR EC 10000 ESR S 1 ESR DIZ No...

Страница 243: ...tion sign extends a halfword 16 bits into a word 32 bits Bit 16 in rA will be copied into bits 0 15 of rD Bits 16 31 in rA will be copied into bits 16 31 of rD Pseudocode rD 0 15 rA 16 rD 16 31 rA 16...

Страница 244: ...iption This instruction sign extends a byte 8 bits into a word 32 bits Bit 24 in rA will be copied into bits 0 23 of rD Bits 24 31 in rA will be copied into bits 24 31 of rD Pseudocode rD 0 23 rA 24 r...

Страница 245: ...only occur in user mode An unaligned data access exception occurs if the least significant bit in the address is not zero Pseudocode Addr rA rB if TLB_Miss Addr and MSR VM 1 then ESR EC 10010 ESR S 1...

Страница 246: ...TLB_Miss Addr and MSR VM 1 then ESR EC 10010 ESR S 1 MSR UMS MSR UM MSR VMS MSR VM MSR UM 0 MSR VM 0 else if Access_Protected Addr and MSR VM 1 then ESR EC 10000 ESR S 1 ESR DIZ No access allowed MSR...

Страница 247: ...t and places the result in rD The most significant bit of rA that is the sign bit placed in the most significant bit of rD The least significant bit coming out of the shift chain is placed in the Carr...

Страница 248: ...to the right and places the result in rD The Carry flag is shifted in the shift chain and placed in the most significant bit of rD The least significant bit coming out of the shift chain is placed in...

Страница 249: ...ight and places the result in rD A zero is shifted in the shift chain and placed in the most significant bit of rD The least significant bit coming out of the shift chain is placed in the Carry flag P...

Страница 250: ...naligned data access exception occurs if the two least significant bits in the address are not zero Pseudocode Addr rA rB if TLB_Miss Addr and MSR VM 1 then ESR EC 10010 ESR S 1 MSR UMS MSR UM MSR VMS...

Страница 251: ...e sequence in the register between endianness formats either from little endian to big endian or vice versa Pseudocode rD 24 31 rA 0 7 rD 16 23 rA 8 15 rD 8 15 rA 16 23 rD 0 7 rA 24 31 Registers Alter...

Страница 252: ...n rD This effectively converts the two halfwords in the register between endianness formats either from little endian to big endian or vice versa Pseudocode rD 0 15 rA 16 31 rD 16 31 rA 0 15 Registers...

Страница 253: ...C 10010 ESR S 1 MSR UMS MSR UM MSR VMS MSR VM MSR UM 0 MSR VM 0 else if Access_Protected Addr and MSR VM 1 then ESR EC 10000 ESR S 1 ESR DIZ No access allowed MSR UMS MSR UM MSR VMS MSR VM MSR UM 0 MS...

Страница 254: ...read only zone protection No access allowed can only occur in user mode An unaligned data access exception will not occur even if the two least significant bits in the address are not zero Enabling A...

Страница 255: ...Z if a data storage exception is generated Latency 1 cycle with C_AREA_OPTIMIZED 0 2 cycles with C_AREA_OPTIMIZED 1 Note This instruction is used together with LWX to implement exclusive access such a...

Страница 256: ...contains the address of the affected cache line and the register rB value is not used If the E bit is set to 1 MicroBlaze will request that the matching address in an external cache should be invalida...

Страница 257: ...wdc clear instruction is intended to invalidate a specific area in memory for example a buffer to be written by a Direct Memory Access device Using this instruction ensures that other cache lines are...

Страница 258: ...en ESR EC 00111 else if C_ICACHE_LINE_LEN 4 then cacheline_mask 1 log2 C_CACHE_BYTE_SIZE 4 1 ICache Line Ra 4 cacheline_mask Tag 0 if C_ICACHE_LINE_LEN 8 then cacheline_mask 1 log2 C_CACHE_BYTE_SIZE 5...

Страница 259: ...gical Exclusive OR Description The contents of register rA are XORed with the contents of register rB the result is placed into register rD Pseudocode rD rA rB Registers Altered rD Latency 1 cycle xor...

Страница 260: ...e extended IMM field the result is placed into register rD Pseudocode rD rA sext IMM Registers Altered rD Latency 1 cycle Note By default Type B Instructions will take the 16 bit IMM field value and s...

Страница 261: ...XPS Help SDK Help PowerPC 405 Processor Reference Guide UG011 Additional Resources The following lists some of the resources you can access directly using the provided URLs The entire set of GNU manu...

Страница 262: ...262 www xilinx com MicroBlaze Processor Reference Guide UG081 v14 7 Send Feedback...

Отзывы: