Signal | Data Interface | Instruction Interface | Type | Description |
---|---|---|---|---|
Addr[0:N-1] 1 | Data_Addr[0:N-1] 1 | Instr_Addr[0:N-1] 2 | O | Address bus |
Byte_Enable[0:N-1] 3 | Byte_Enable[0:N-1] 3 | not used | O | Byte enables |
Data_Write[0:N-1] 4 | Data_Write[0:N-1] 4 | not used | O | Write data bus |
AS | D_AS | I_AS | O | Address strobe |
Read_Strobe | Read_Strobe | IFetch | O | Read in progress |
Write_Strobe | Write_Strobe | not used | O | Write in progress |
Data_Read[0:N-1] 4 | Data_Read[0:N-1] 4 | Instr[0:N-1] | I | Read data bus |
Ready | DReady | IReady | I | Ready for next transfer |
Wait 5 | DWait | IWait | I | Wait until accepted transfer is ready |
CE 5 | DCE | ICE | I | Correctable error |
UE 5 | DUE | IUE | I | Uncorrectable error |
Clk | Clk | Clk | I | Bus clock |
|
Addr[0:N-1]
The address bus is an output from the core and indicates the memory
address that is being accessed by the current transfer. It is valid only when AS is
High. In multicycle accesses requiring more than one clock cycle to complete),
Addr[0:N-1]
is valid only in the first clock
cycle of the transfer.
Byte_Enable[0:N-1]
The byte enable signals are outputs from the core and
indicate which byte lanes of the data bus contain valid data. Byte_Enable
is valid only when AS is High. In
multicycle accesses requiring more than one clock cycle to complete), Byte_Enable
is valid only in the first clock cycle of
the transfer. Valid values for Byte_Enable
are
shown in the following tables.
Byte_Enable[0:3] C_LMB_DATA_WIDTH = 32 |
Data Byte Lanes Used | |||
---|---|---|---|---|
0:7 | 8:15 | 16:23 | 24:31 | |
0001 | ● | |||
0010 | ● | |||
0100 | ● | |||
1000 | ● | |||
0011 | ● | ● | ||
1100 | ● | ● | ||
1111 | ● | ● | ● | ● |
Byte_Enable[0:7] C_LMB_DATA_WIDTH = 64 |
Data Byte Lanes Used | |||||||
---|---|---|---|---|---|---|---|---|
0:7 | 8:15 | 16:23 | 24:31 | 32:39 | 40:47 | 48:55 | 56:63 | |
00000001 | ● | |||||||
00000010 | ● | |||||||
00000100 | ● | |||||||
00001000 | ● | |||||||
00010000 | ● | |||||||
00100000 | ● | |||||||
01000000 | ● | |||||||
10000000 | ● | |||||||
00000011 | ● | ● | ||||||
00001100 | ● | ● | ||||||
00110000 | ● | ● | ||||||
11000000 | ● | ● | ||||||
00001111 | ● | ● | ● | ● | ||||
11110000 | ● | ● | ● | ● | ||||
11111111 | ● | ● | ● | ● | ● | ● | ● | ● |
Data_Write[0:N-1]
The write data bus is an output from the core and contains the data
that is written to memory. It is valid only when AS is high. Only the byte lanes
specified by Byte_Enable[0:3]
contain valid
data.
AS
The address strobe is an output from the core and indicates the start of a transfer and qualifies the address bus and the byte enables. It is high only in the first clock cycle of the transfer, after which it goes low and remains low until the start of the next transfer.
Read_Strobe
The read strobe is an output from the core and indicates that a read
transfer is in progress. This signal goes high in the first clock cycle of the
transfer, and can remain high until the clock cycle after Ready is sampled high. If
a new read transfer is directly started in the 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 cycle of the
transfer, and can remain high until the clock cycle after Ready is sampled high. If
a new write transfer is directly started in the next clock cycle, then Write_Strobe
remains high.
Data_Read[0:N-1]
The read data bus is an input to the core and contains data read
from memory. Data_Read
is valid on the rising edge
of the clock when Ready is high.
Ready
The Ready signal is an input to the core and indicates completion of
the current transfer and that the next transfer can begin in the following clock
cycle. It is sampled on the rising edge of the clock. For reads, this signal
indicates the Data_Read[0:31]
bus is valid, and
for writes it indicates that the Data_Write[0:31] bus has been written to local
memory.
Wait
The Wait signal is an input to the core and indicates that the current transfer has been accepted, but not yet completed. It is sampled on the rising edge of the clock.
CE
The CE signal is an input to the core and indicates that the current
transfer had a correctable error. It is valid on the rising edge of the clock when
Ready is high. For reads, this signal indicates that an error has been corrected on
the Data_Read[0:31]
bus, and for byte and halfword
writes it indicates that the corresponding data 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 rising edge of the clock
when Ready is high. For reads, this signal indicates that the value of the Data_Read[0:31]
bus is erroneous, and for byte and
halfword writes it indicates that the corresponding data word in local memory was
erroneous before writing the new data.
Clk
All operations on the LMB are synchronous to the MicroBlaze core clock.