Freescale Semiconductor, Inc.

Freescale Semiconductor, Inc.

ELSE

HRD_SHIFT.aclr = GND;

END IF;

HRD_SHIFT.shiftin= HRD_HRW;--LOAD SHIFT REGISTER HRD_HRWd= HRD_SHIFT.shiftout;--READ SHIFT REGISTER

--HDI_WR = (((!HDDS and !HRD_HRW) or (HDDS and HRD_HRWd)) and HDSP) or

--(!((!HDDS and !HRD_HRW) or (HDDS and HRD_HRWd)) and !HDSP); --ASSIGN HOST-Write NODE

--HDI_WR = ~(HCS1 * HCS2) * (HDDS ? (HDSP ^ HRD_HRW) : ~HRD_HRW)

IF (HDDS) THEN

-- Double Strobe Mode

 

 

IF (!HDSP) THEN

HDI_WR =

!(!HRD_HRW & !(HCS1 & HCS2)); -- Negative Strobe

ELSE

HDI_WR =

!(HRD_HRW & !(HCS1 & HCS2)); -- Positive Strobe

END IF;

 

 

 

 

 

 

ELSE

-- Single Strobe Mode

 

 

 

HDI_WR =

!(HRD_HRW & !(HCS1 & HCS2));

END IF;

 

 

 

 

 

 

-- HDI_WR = !(!HRD_HRW & !(HCS1 & HCS2));

 

 

%**********************************************************************

BCSR’S READS AND WRITES

 

 

 

 

*

 

 

 

 

 

*

**

 

 

 

 

 

**

***

 

 

 

 

 

***

**********************************************************************%

-- WritetoBcsr = LCELL (!CS1~ & !PSDVAL~ & W_R~);

 

WritetoBcsr = LCELL (!CS1~ & W_R~);

 

 

 

!Bcsr0Write~ = (WritetoBcsr

& !A27 & !A28 & !A29 );

 

!Bcsr1Write~ = (WritetoBcsr

& !A27 & !A28 &

A29 );

 

!Bcsr4Write~ = (WritetoBcsr

& A27 & !A28 & !A29 );

 

----------------

Service

Misc. Registers

-----------------------------------

!Bcsr5Write~ = (WritetoBcsr

&

A27 & !A28 &

A29 );

-- Address ending ‘0x14’

!Bcsr6Write~ = (WritetoBcsr

&

A27 &

A28 & !A29 );

-- Address ending ‘0x18’

MPC_WRITE_BCSR_0 = (Bcsr0Write~ == BCSR_WRITE_ACTIVE);

MPC_WRITE_BCSR_1 = (Bcsr1Write~ == BCSR_WRITE_ACTIVE);

MPC_WRITE_BCSR_4 = (Bcsr4Write~ == BCSR_WRITE_ACTIVE);

MPC_WRITE_BCSR_5 = (Bcsr5Write~ == BCSR_WRITE_ACTIVE);

MPC_WRITE_BCSR_6 = (Bcsr6Write~ == BCSR_WRITE_ACTIVE);

MPC_READ_BCSR_0

= (!CS1~ &

!W_R~ & !A27 & !A28 & !A29 ); -- Address ending ‘0x0’

MPC_READ_BCSR_1

= (!CS1~ &

!W_R~ & !A27 & !A28 &

A29 ); -- Address ending ‘0x40’

MPC_READ_BCSR_2

= (!CS1~ &

!W_R~ & !A27 & A28 & !A29 ); -- Address ending ‘0x80’

MPC_READ_BCSR_3

= (!CS1~ &

!W_R~ & !A27 & A28 &

A29 ); -- Address ending ‘0x0c’

MPC_READ_BCSR_4

= (!CS1~ &

!W_R~ & A27 & !A28 & !A29 ); -- Address ending ‘0x10’

----------------

Service

Misc. Registers

-----------------------------------

MPC_READ_BCSR_5

= (!CS1~ &

!W_R~ & A27 & !A28 &

A29 ); -- Address ending ‘0x14’

MPC_READ_BCSR_6

= (!CS1~ &

!W_R~ &

A27 &

A28 & !A29 ); -- Address ending ‘0x18’

%

 

 

 

 

 

 

*************************

 

 

 

 

 

** BCSR0 Write Operation **

 

 

 

 

 

*************************

 

 

 

 

 

%

 

 

 

 

 

 

IF (RESETi) THEN

 

 

 

 

 

 

Bcsr0[].d = BCSR0_PON_DEF[];

--Load default values in Reset

ELSIF (MPC_WRITE_BCSR_0) THEN

 

 

 

 

Bcsr0[0..SIZE0].d = D[0..SIZE0]; --Read the Data Bus

ELSE

 

 

 

 

 

 

Bcsr0[].d = Bcsr0[].q;

 

--Remember last values

MOTOROLA MSC8101ADS RevB User’s ManualC-111

For More Information On This Product,

Go to: www.freescale.com

Page 112
Image 112
Nortel Networks MSC8101 ADS If Hdds then, If !HDSP then Hdiwr =, Else Hdiwr =, END if Else, Elsif MPCWRITEBCSR0 then