Главная страница
Навигация по странице:

  • «Санкт-Петербургский государственный университет телекоммуникаций им. проф. М. А. Бонч-Бруевича»

  • Синтез конечного автомата, работающего по принципу автомата Мили.

  • Структура автомата: Синтез конечного автомата

  • S0-> S1-> S5-> S3-> S7-> S2->S6->S4->S0... или 1->2-> 6-> 4-> 0-> 3->7->5->1… При х=1:S0-> S7-> S6-> S5->S4->S3->S2->S1->S0… или

  • Структурная схема КЦУ

  • Синтез конечного автомата, работающего по принципу автомата Мили. КУРСАЧ ВиМТ. Синтез конечного автомата


    Скачать 196.39 Kb.
    НазваниеСинтез конечного автомата
    АнкорСинтез конечного автомата, работающего по принципу автомата Мили
    Дата25.05.2020
    Размер196.39 Kb.
    Формат файлаdocx
    Имя файлаКУРСАЧ ВиМТ.docx
    ТипКурсовой проект
    #125148


    ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ

    Федеральное государственное бюджетное образовательное

    учреждение высшего образования

    «Санкт-Петербургский государственный университет телекоммуникаций

    им. проф. М. А. Бонч-Бруевича»

    _____________________________________________________________________________

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

    Дисциплина «Вычислительная и микропроцессорная техника»


    Курсовой проект на тему:


    Синтез конечного автомата,

    работающего по принципу автомата Мили.

    Выполнил: Крылов С.Е

    Группа: ИКТ-803

    Факультет: ИКСС

    Номер зачетной книжки: 16

    Проверила: Желтова Е.А

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

    2020

    Задание:

    Синтезировать конечный автомат, работающий по принципу автомата Мили. В синтез входит построение схемы КЦУ автомата, временные диаграммы его работы, программа на VHDL для реализации автомата на макете в FPGA CycloneV и диаграмма переходов автомата. Вариант выбирается в соответствии с последней и предпоследней цифрами номера зачетной книжки (студенческого билета). Соответственно: последняя цифра – номер таблицы переходов, предпоследняя – номер таблицы состояний. Условие для “x=1” – равнозначность входных сигналов “a” и “b”.

    Таблица переходов 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



    таблица состояний 1

    X*

    S0

    S1

    S2

    S3

    S4

    S5

    S6

    S7

    X=0

    1

    2

    3

    4

    5

    6

    7

    0

    X=1

    0

    7

    6

    5

    4

    3

    2

    1

    Структура автомата:



    Синтез конечного автомата:

    Построим схему автомата Мили, имеющего 3 разряда.

    Согласно данным из условия, автомат будет совершать следующие переходы:

    При х=0

    S0-> S1-> S5-> S3-> S7-> S2->S6->S4->S0... или

    1->2-> 6-> 4-> 0-> 3->7->5->1…

    При х=1:

    S0-> S7-> S6-> S5->S4->S3->S2->S1->S0… или

    0-> 1-> 2-> 3-> 4-> 5-> 6-> 7-> 0->….

    По этим данным запишем таблицу истинности для КЦУ автомата, именуя входы Si-1 - M[2..0], а выходы Si - N[2..0].

    X*

    M2

    M1

    M0

    N2

    N1

    N0

    0

    0

    0

    0

    0

    1

    1

    0

    0

    0

    1

    0

    1

    0

    0

    0

    1

    0

    1

    1

    0

    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

    1

    0

    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


    Запишем выражения для выходов используя карты Карно:

    M1M0
    X* M2

    00

    01

    11

    10

    00

    1

    0

    1

    0

    01

    0

    1

    1

    0

    11

    1

    0

    0

    1

    10

    1

    0

    0

    1

    Для N0:

    N0 = M1M0(-X) or M0M2(-X) or (-M0)X or (-M1)(-M0)(-M2)

    M1M0
    X* M2

    00

    01

    11

    10

    00

    1

    1

    1

    1

    01

    0

    0

    0

    0

    11

    0

    1

    0

    1

    10

    0

    1

    0

    1

    Для N1:

    N1 = (-M2)(-X) or (-M1)M0X or M1(-M0)X

    M1M0
    X* M2

    00

    01

    11

    10

    00

    0

    0

    1

    1

    01

    0

    0

    1

    1

    11

    1

    1

    0

    1

    10

    0

    0

    1

    0

    Для N2:

    N2 = M1(-X) or M1(-M0)M2 or M2X(-M1) or M2X(-M0) or M1M0(-M2)

    Структурная схема КЦУ



    Программа работы устройства будет состоять из двух частей:

    • программирования переходов в следующее состояние на момент подачи импульса синхронизации,

    • программирование соответствия состояния определенному числу (второе КЦУ).



    Block2

    module block2

    (input x, input [2:0]m, output n0,n1,n2);

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

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

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

    endmodule

    Waveform(block2)



    Mealy3

    module mealy_3

    (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=1,S1=2,S2=3,S3=4,S4=5,S5=6,S6=7,S7=0;

    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'b000;

    end

    else

    begin

    out=3'b001;

    end

    S1:

    if(in2)

    begin

    out=3'b111;

    end

    else

    begin

    out=3'b010;

    end

    S2:

    if(in2)

    begin

    out=3'b110;

    end

    else

    begin

    out=3'b011;

    end

    S3:

    if(in2)

    begin

    out=3'b101;

    end

    else

    begin

    out=3'b100;

    end

    S4:

    if(in2)

    begin

    out=3'b100;

    end

    else

    begin

    out=3'b101;

    end

    S5:

    if(in2)

    begin

    out=3'b011;

    end

    else

    begin

    out=3'b110;

    end

    S6:

    if(in2)

    begin

    out=3'b010;

    end

    else

    begin

    out=3'b111;

    end

    S7:

    if(in2)

    begin

    out=3'b001;

    end

    else

    begin

    out=3'b000;

    end

    endcase

    end

    endmodule

    Waveform(mealy3)



    Электрическая схема(RTL Viewer)(mealy_3)



    Электрическая схема(RTL Viewer)(block2)



    написать администратору сайта