.


:




:

































 

 

 

 





 

, S-51 ( ). , . 10- - , 256 , 8 28 . . , , "Altera", + PLUSII.

 

. , - S-51.

:

1) S genei "Altera" ( , CAST) -;

2) S "Triscend" 5, - 8052 FPGA;

3) , S-51 - (, Du812 "Analog Devices" "Altera".

4) S-51 - "Altera".

.

1- , . 8.12. S generic, - ( ) - : (Reg_A, Reg_B, Reg_BD), (Reg_), (RAM) , (vtR). : (OSC), (EEPROM Config), (EEPROM Instuction), (MUX) (ADC). ( ) 2400 2860 , 1050. 80 . , .

2- (. 8.13), "Triscend", 5 ( 5 EEPROM). 5 - . . , (31.) 5, , . , , -, ( 18 100 . ), , 650 . ( 170 . ).

3- (. 8.14) . ( duC812 "Analog Devices" 10K10 "Altera". duC812 "Anolog Devices" , , , . (EPROM) (S). , , . , . AduC812 "Anolog Devices" 12 .

, 10K10 "Altera" 20 . . , , , 100 . . .

4- (. 8.15) - CS-51 ( 8951 "Atmel" 10K10 . - . . 2- 3- , . S "Triscend".

.

. 8.12. S generic

.8.13. S 5

.8.14. DuC812 10K10

.8.15. . 8951 X10K10

1.

:

256 ;

( ) RequstADC, ;

, ReadyData;

ReadyData ;

, ;

(Reg_C);

8- (Reg_A Reg_B) 8- (Reg_C);

. . 8.16. . :

(Data[7..0] ALE ;

WR ( "1" 6- 7- 2 ) 0 1 ;

RD ( "1" 6- 7- 2 ) 0 1 ;

- ; ;

ReadyData.

2.

, (L):

(L_RAM_DQ) 25 8 256 2;

8- (L_COUNTER);

D (L_DFF), 8- .

, , . . 8- , .

, , , , . 8.17. . , + LUS II. (, D- ) . , .

 

. 8.16. - ,

 

3.

, L , , .

- LPM_RAM_DQ (. . ) . -, , . -, .

, , - , . 8.18. - StateCAD Version 3.2 Workview Office "Viewlogic" , , , , .

CntRAM .

.

ReqADC . (StartWr) (StartADC), (ReadyADC), 10 ( WrData) ( WE). , ( IncWr IncAdr). , .

Pause1 ReadyData ( ResAdr),

. . CsADCH CsADCL , , , Rd, IncAdr, . , , . WaitRd, RdByte1, Pause2, RdByte2 .

ReqADC, ReadyADC Rd D-. D- nClock . . ( , Clock), . ReadyData ( ) D-, nClock.

VHDL- .

StateCAD Version 3.2 Workview Office ( ). , VHDL ( 1).

 

 

 

. 8.18. -

 

 

StateCAD , ( ). . - , . Synopsys ( ).

1

VHDL code created by Visual Solution's StateCAD Version 3.2

This VHDL code (for use with Synopsys) was generated using:-enumerated state assignment with structured code format.

Minimization is enabled,implied else is enabled,

and outputs are manually optimized.

LIBRARY ieee;

USE ieee.std_logic_1164.all;

LIBRARY synopsys;

USE synopsys.attributes.all;

ENTITY CntRAM IS

R (CLK,Max,Rd,ReadyADC,Reset:IN std_logic;

IncAdr,ReadyData.ResAdr,StartADC,We:OUT std_logic);

END;

ARCHITECTURE BEHAVIOR OF CntRAM IS

Y type_sreg IS(AdrNew,EndLoop,Idle,IncWr,Pause1, Pause2, Pause3,RdByte1,

RdByte2,StartWr,WaitWr,WrData);

SIGNAL sreg,next_sreg:type_sreg;

BEGIN

PROCESS (CLK)

BEGIN

IF CLK='1' AND CLK'event THEN

IF (Reset='1') THEN

sreg<=idle;

ELSE

sreg<=next_sreg;

END IF;

END IF;

END PROCESS;

PROCESS(sreg,Max,Rd,ReadyADC,ReqADC,Reset)

BEGIN

IncAdr<="0";ReadyData<="0";ResAdr<="0";

StartAdc<="0";We<="0";

next_sreg<=AdrNew;

IF(Reset='1') THEN

next_sreg<=Idle;

IncAdr<='0';ReadyData<='0';StartADC<='0';

We<='0';ResAdr<='1';

ELSE

CASE sreg IS

WHEN AdrNew=>

ResAdr<='0';StartADC<='0';

We<='0';

IncAdr<='1';ReadyData<='1';

next_sreg<=Pause3;

WHEN Idle=>

IncAdr<='0';ReadyData<='0';

StartADC<='0';

We<='0';ResAdr<='1';

IF (ReqADC='1') THEN

next_sreg<=StartWr;

END IF;

WHEN IncWr=>

ReadyData<='0';ResAdr<='0';

StartADC<='0';

We<='0';IncAdr<='0';

IF (Max='0') THEN

next_sreg<=StartWr;

END IF;

IF (Max='1') THEN

next_sreg<=Pause1;

END IF;

WHEN Pause1=>

IncAdr<='0';StartADC<='0';

We<='0';

ResAdr<='1';ReadyData<='1';

next_sreg<=WaitRd;

WHEN Pause2=>

IncAdr<='0';ResAdr<='0';

StartADC<='0';

We<='0';ReadyData<='1';

IF (Rd='0') THEN

next_sreg<=Pause2;

END IF;

F(RD='1') THEN

next_sreg<=RdByte2;

END IF;

WHEN Pause3=>

IncAdr<='0';ResAdr<='0';

StartADC<='0';

We<='0';ReadyData<='1';

IF (Max='1') THEN

next_sreg<=Idle;

END IF;

IF (Max='0') THEN

next_sreg<=WaitRd;

END IF;

WHEN RdByte1=>

IncAdr<='0';ResAdr<='0';

StartADC<='0';

We<='0';ReadyData<='1';

IF (Rd='0') THEN

next_sreg<=Pause2;

END IF;

IF (Rd='1') THEN

next_sreg<=RdByte1;

END IF;

WHEN RdByte2=>

IncAdr<='0';ResAdr<='0';

StartADC<='0';

We<='0';ReadyData<='1';

IF (Rd='0') THEN

next_sreg<=AdrNew;

END IF;

IF (Rd='1') THEN

next_sreg<=RdByte2;

END IF;

WHEN StartWr=>

IncAdr<='0';ResAdr<='0';

StartADC<='1';

We<='0';ReadyData<='0';

IF (ReadyADC='1') THEN

next_sreg<=WrData;

END IF;

IF (ReadyADC='0') THEN

next_sreg<=StartWr;

END IF;

WHEN WaitRd=>

IncAdr<='0';ResAdr<='0';

StartADC<='0';

We<='0';ReadyData<='1';

IF (Rd='1') THEN

next_sreg<=RdByte1;

END IF;

IF (Rd='0') THEN

next_sreg<=WaitRd;

END IF;

WHEN WrData=>

IncAdr<='0';ResAdr<='0';

StartADC<='0';

We<='1';ReadyData<='0';

next_sreg<=IncWr;

WHEN OTHERS=>

END CASE;

END IF;

END PROCESS;

END BEHAVIOR;

VHDL. (IEEE Synopsys). ENIY : (CLK), (), (Rd ReqADC) , (ReadyADC) , , (Reset) (StartADC), (IncAdr,ResAdr), (We) (ReadyData).

ARCHITECTURA ( ) , ENTITY.

, , , ARCHITECTURA.

type_sreg (, , , ). sreg next_sreg t_sreg. .

(). , CLK. CLK. ( IF CLK='1' AND CLK'event THEN sreg<=next_sreg;END IF;) . ( IF(Reset='1') THEN sreg<=Idle;).

.

, (sreg) - . . VHDL "CASE", . , . next_sreg . , , , , . , .

4.

. ( D- ) FLEX 10K ( SRAM). 8 , . (*.t), , , 10 EPF10K10TC44. ( ) 17%. , 66% . / 62, .

5.

+ PLUS||. . . 8.19. .

0 0,075 . . .

0,075 0,2 . (ReqADC) . ( ).

0,15 0,45 - (StartADC) (ReadyADC), 00 , 2 (, , ).

0,45 1,75 : (CD 3), (F5 1) (7 2) 1, 2 3.

:

0,45 L 8- 55, ;

1,3 4 ( nWR 2_ = 1, 2_7 0, 0 =0 1 = 0);

1,625 9 ( nWR 2_6 = 1, 2_7 = 0, 0 = 1 1 = 0).

1,75 , (ReadyData) . nRD 2_6 2_7 (2,0 2,325), (2,675 3,05), (3,575 3,9), (4,325 4,75), (5,15 5,575), (5,85 6,25), (6,65 6,950) (7,275 7,675) , , .

 


 

 


 

 


 

 


 

 

ReadyData Idle ( 7,95 ).

, .

6.

. .

7.

, . , , , 1010. , , , . , . ( ) , . 1010 , (, 1 8 "Altera").

 





:


: 2016-10-06; !; : 486 |


:

:

, , .
==> ...

1948 - | 1609 -


© 2015-2024 lektsii.org - -

: 0.147 .