PM8621 PMC-Sierra, Inc., PM8621 Datasheet - Page 153

no-image

PM8621

Manufacturer Part Number
PM8621
Description
NSE-8G Standard Product Data Sheet Preliminary
Manufacturer
PMC-Sierra, Inc.
Datasheet
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers’ Internal Use
Document ID: PMC-2010850, Issue 1
--
--
--
--
--
--
--
--
--
--
---
---
--
-- Fixed delay to allow to ensure 4 SYSCLKs plus o/p delay between RDB edges
--
--
--
--
--
--
--
--
-- We're on a short message. Need to do RX_XFER_SYNC
--
Poll the bit here before startiong next message.
Optional S/W algorithm to determine if the MSG is DONE before 8 Dwords
have been read. In this case for SIMULATION the test the msg_done is set
when we've read the number of dwords as indicated in the 1st message
payload byte.
Check the CRC_ERR bit for the next message
Now we should have a good message or an errored message we want to read
Note: we might have skipped the last message in
Read the message IF we have any.
Simulation Stuff. Should replace with S/W stuff
End Simulation Stuff.
END LOOP;
IF msgs_rd < msg_lvl_loop THEN
rd(RX_STTS);
WHILE rx_fi_busy = '1' LOOP
END LOOP;
rd(RX_STTS);
rxmsg.crc_err := crc_err_reg;
msg_done
dword_rd_cnt
rxmsg.payload := (OTHERS => 0);
WHILE dword_rd_cnt < 8 AND NOT msg_done LOOP
rd(RX_STTS);
rd(RX_DAT);
FOR j IN 3 DOWNTO 0 LOOP
END LOOP;
IF dword_rd_cnt = 0 THEN
END IF;
dword_rd_cnt := dword_rd_cnt + 1;
IF polled_rx_mode THEN
ELSE
END IF;
IF dword_rd_cnt = rndm_rx_payload_len THEN
END IF;
IF msg_done AND dword_rd_cnt < 8 THEN
rxmsg.payload((dword_rd_cnt*4)+(3-j)) :=
rndm_rx_payload_len <= conv_integer(reg_rd_data(31 DOWNTO 24));
rd(RX_STTS);
WHILE rx_fi_busy = '1' LOOP
END LOOP;
WAIT FOR 36 ns;
msg_done := true;
rd(RX_STTS);
:= false;
:= 0;
conv_integer(reg_rd_data(8*j+7 DOWNTO 8*j));
-- The returned data is part of the payload
NSE-8G™ Standard Product Data Sheet
the code above.
Preliminary
152

Related parts for PM8621