Скачиваний:
4
Добавлен:
17.06.2023
Размер:
334.85 Кб
Скачать

САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ

ИМ. ПРОФ. М.А.БОНЧ-БРУЕВИЧА

Факультет инфокоммуникационных сетей и систем

Кафедра программной инженерии и вычислительной техники

Самостоятельная работа

Группа

Номер ЗК

Выполнил студент

Таблица переходов 6

X

S0

S1

S2

S3

S4

S5

S6

S7

X=0

S1

S5

S6

S7

S0

S3

S4

S2

X=1

S7

S0

S1

S2

S3

S4

S5

S6

X=0: S0 => S1 => S5 => S3 => S7 => S2 => S6 => S4 => S0

X=1: S0 => S7 => S6 => S5 => S4 => S3 => S2 => S1 => S0

Таблица состояний 2

X*

S0

S1

S2

S3

S4

S5

S6

S7

X*=0

2

3

4

5

6

7

0

1

X*=1

1

0

7

6

5

4

3

2

X*=0: S0 = 2, S1 = 3, S2 = 4, S3 = 5, S4 = 6, S5 = 7, S6 = 0, S7 = 1

X*=1: S0 = 1, S1 = 0, S2 = 7, S3 = 6, S4 = 5, S5 = 4, S6 = 3, S7 = 2

X=0:

S0 =>

S1 =>

S5 =>

S3 =>

S7 =>

S2 =>

S6 =>

S4 =>

S0

2 =>

3 =>

7 =>

5 =>

1 =>

4 =>

0 =>

6 =>

2

X=1:

S0 =>

S7 =>

S6 =>

S5 =>

S4 =>

S3 =>

S2 =>

S1 =>

S0

1 =>

2 =>

3 =>

4 =>

5 =>

6 =>

7 =>

0 =>

1

X

0

0

0

0

1

1

0

0

0

0

1

1

0

0

0

0

1

0

0

1

1

0

0

1

1

1

1

1

0

1

0

0

0

0

0

0

1

0

1

0

0

1

0

1

1

0

0

1

0

0

1

1

1

1

0

1

1

0

0

0

0

0

1

1

0

0

1

0

1

0

1

0

1

0

0

1

1

1

0

1

1

1

0

0

1

1

0

0

1

0

1

1

1

0

1

1

1

0

1

1

1

0

1

1

1

1

1

1

1

0

0

0

0

0

1

1

ДНФ =

0

1

1

0

X

0

0

1

1

1

0

0

1

0

0

1

0

1

1

1

1

0

1

1

0

0

0

1

0

0

0

1

1

ДНФ =

0

1

1

0

X

0

0

1

0

1

1

0

1

0

0

0

1

1

1

0

1

0

1

1

0

0

1

0

1

0

0

1

1

ДНФ =

0

1

1

0

X

0

0

0

0

1

1

0

1

0

1

1

0

1

1

1

0

0

1

1

0

1

0

0

1

module new

(input x, input [2:0]m,

output [2:0]n);

assign n[0] = ~x&~m[2]&m[1] | ~x&m[2]&m[0] | x&~m[0];

assign n[1] = ~x&~m[2]&~m[0] | ~x&~m[2]&m[1] | m[1]&~m[0] | x&~m[1]&m[0];

assign n[2] = ~x&~m[2]&~m[1] | ~x&m[1]&m[0] | x&m[2]&~m[1] | x&m[2]&~m[0] | ~m[2]&m[1]&m[0];

endmodule

module mealy3

(input clk,a, b, reset,

output reg [2:0] out);

reg [2:0] state;

assign in1=a&(~b) | a;

assign in2=b&(~a) | b;

parameter S0 = 0, S1 = 1, S2 = 2, S3 = 3, S4 = 4, S5 = 5,S6 = 6, S7 = 7;

always @ (posedge clk or posedge reset)

begin

if (reset)

state <= S0;

else

case (state)

S0:

if (in1)

begin

state <= S7;

end

else

begin

state <= S1;

end

S1:

if (in1)

begin

state <= S0;

end

else

begin

state <= S5;

end

S2:

if (in1)

begin

state <= S1;

end

else

begin

state <= S6;

end

S3:

if (in1)

begin

state <= S2;

end

else

begin

state <= S7;

end

S4:

if (in1)

begin

state <= S3;

end

else

begin

state <= S0;

end

S5:

if (in1)

begin

state <= S4;

end

else

begin

state <= S3;

end

S6:

if (in1)

begin

state <= S5;

end

else

begin

state <= S4;

end

S7:

if (in1)

begin

state <= S6;

end

else

begin

state <= S2;

end

endcase

end

always @ (state or in2)

begin

case (state)

S0:

if (in2)

begin

out = 3'b001;

end

else

begin

out = 3'b010;

end

S1:

if (in2)

begin

out = 3'b000;

end

else

begin

out = 3'b011;

end

S2:

if (in2)

begin

out = 3'b111;

end

else

begin

out = 3'b100;

end

S3:

if (in2)

begin

out = 3'b110;

end

else

begin

out = 3'b101;

end

S4:

if (in2)

begin

out = 3'b101;

end

else

begin

out = 3'b110;

end

S5:

if (in2)

begin

out = 3'b100;

end

else

begin

out = 3'b111;

end

S6:

if (in2)

begin

out = 3'b011;

end

else

begin

out = 3'b000;

end

S7:

if (in2)

begin

out = 3'b010;

end

else

begin

out = 3'b001;

end

endcase

end

endmodule

Диаграмма соответсвует таблице переходов и сотояний для x = 0 x* = 0

Диаграмма соответсвует таблице переходов и сотояний для x = 1 x* = 1

Санкт-Петербург

Соседние файлы в папке лабы