Intel IXP28XX Manual page 144

Network processors hardware design guide
Table of Contents

Advertisement

IXP28XX Network Processor
Slowport
Example 5.
144
Downloaded from
Elcodis.com
electronic components distributor
On the clock cycle after the read signal is de-asserted from the downstream device, the glue logic
will drive the first byte of data onto the SP_AD bus since the IXP28XX network processor does not
pulse the SP_CP signal to promote the first read. The remaining three bytes of data are shifted out
on the rising edge of the SP_CP signal to complete the 32-bit transfer.
32-bit Read Unpacking Logic Implementation
// control logic for shifting the 32-bit read data back to IXP, 8-bits
// per cycle
assign shift_en = (~sp_oe_l && ~sp_a[1]);
The following Verilog* code depicts an example implementation of the data unpacking logic:
// implementation of pack_cnt control logic, the count is incremented on each
// rising edge of sp_a[0] if shift_en is active
always @(posedge sp_a[0]) begin
if (~rst_l) begin
pack_cnt
<= 2'b00;
end
else begin
if (shift_en)begin
pack_cnt
<= pack_cnt + 1;
end
else if (~shift_en) begin
pack_cnt
<= 2'b00;
end
end // else: !if(~rst_l)
end // always @ (posedge sp_clk)
// Implementation of read data mux, pack_cnt is used to determine which byte
// should be driven onto the sp_rd_out bus
always @ (pack_cnt) begin
//data is shifted during four consecutive cycles
case (pack_cnt)
//synopsis full_case parallel_case
2'b00:
sp_rd_out
2'b01:
sp_rd_out
2'b10:
sp_rd_out
2'b11:
sp_rd_out
endcase // case(pack_cnt)
end
<= #1 data[31:24];
<= #1 data[23:16];
<= #1 data[15:8];
<= #1 data[7:0];
Hardware Design Guide

Advertisement

Table of Contents
loading

This manual is also suitable for:

Ixp28 series

Table of Contents