Изучение методов синтеза и проектирования в пакете Design Lab 8 автоматов с памятью (вычитающего счетчика-регистра), страница 4

NODE NM, ND, J0, K0, K1, J2, K2, J1, NQ0, NQ1, NQ2;

HS1:INV_DSL(M,NM);

HS2:INV_DSL(D,ND);

HS3:OR2_DSL(NM,Q1,J0);

HS4:OR2_DSL(NM,NQ1,K0);

HS5:JK_DSL(J0,C,K0,R,Q0,NQ0);

HS6:AND2_2_OR2_DSL(NM,NQ0,M,Q2,J1);

HS7:AND2_2_OR2_DSL(NM,NQ0,M,NQ2,K1);

HS8:JK_DSL(J1,C,K1,R,Q1,NQ1);

HS9:AND2_3_2_OR3_DSL(M,Q2,NM,NQ1,NQ0,M,D,J2);

HS10:AND3_3_OR2_DSL(NM,NQ1,NQ0,ND,M,Q2,K2);

HS11:JK_DSL(J2,C,K2,R,Q2,NQ2);

END MYCOUNTER;

Схема верификации иерархического блока со структурной DSL-моделью представлена на рис. 3, а результат работы на  рис. 4.

Рис. 3

Рис. 4

5. Проектирование иерархических символов для своей схемы.

Ниже на рис. 5 представлены иерархические символы используемые для проектируемой схемы. А их DSL-модели были приведены при проектировании структурной DSL-модели.

Рис. 5

6. Проектирование иерархического блока со схемой замещения на ранее созданных иерархических символах.

На рис. 6 представлена схема замещения на иерархических  символах, на рисунке 7 – схема верификации, а на рисунке 8 – результаты работы.

Рис.6

Рис.7

Рис.8

7. Поведенческая DSL-модель цифрового автомата с любой комбинацией операторов.

Ниже приведен текст поведенческих DSL-моделей (все комбинации операторов).

PROCEDURE IF_DSL (

      INPUT M, D, C, R ;

      OUTPUT Q0, Q1, Q2 CLOCKED_BY /C RESET_BY R;

);

IF M = 0 THEN [Q2..Q0] = [Q2..Q0].-.1;

ELSE [Q2..Q0] = [D,Q2,Q1];

END IF;

END IF_DSL;

PROCEDURE C_DSL (

      INPUT M, D, C, R ;

      OUTPUT Q0, Q1, Q2 CLOCKED_BY /C RESET_BY R ;

);

      CASE M

  WHEN 0 => [Q2..Q0] = [Q2..Q0].-.1;

  WHEN 1 => [Q2..Q0] = [D,Q2,Q1];

END CASE;

END C_DSL;

PROCEDURE TR_DSL (

      INPUT M, D, C, R ;

      OUTPUT Q0, Q1, Q2 CLOCKED_BY /C RESET_BY R;

);

      TRUTH_TABLE

M :: [Q2..Q0];

0 :: [Q2..Q0].-.1;

1 :: [D,Q2,Q1];

END TRUTH_TABLE;

END TR_DSL;

На рис.9 приведена схема верификации, а на рис. 10 результаты работы.

Рис. 9

Рис. 10

8. Потоковая DSL-модель автомата

Ниже приведен текст потоковой DSL-модели. На рис. 11 приведена схема верификации. Иерархический блок преобразован в иерархический символ.

PROCEDURE POTOK (

      INPUT M, D, C, R ;

      OUTPUT Q0, Q1, Q2 ;

);

JK_FLOP TT0, TT1, TT2 CLOCKED_BY /C RESET_BY R;

TT0.J= (/M)+(Q1);

TT0.K= (/M)+(/Q1);

Q0 = TT0;

TT1.J= ((/M)*(/Q0))+(M*Q2);

TT1.K= ((/M)*(/Q0))+(M*(/Q2));

Q1 = TT1;

TT2.J= (M*Q2)+((/M)*(/Q1)*(/Q0))+(M*D);

TT2.K=((/M)*(/Q1)*(/Q0))+(M*Q2*(/D));

Q2 = TT2;

END POTOK;

Рис. 11

Результаты такие же как и на рис. 4.

9. Синтез комбинационной части автомата на мультиплексорах

В этой части работы использованы три типа мультиплексоров: 2 в 1, 4 в 1, 8 в 1. Их УГО можно увидеть на рис. 12, DSL-модели приведены ниже.

PROCEDURE MUX_2 (

      INPUT IN0, IN1, A ;

      OUTPUT OUT ;

);

TRUTH_TABLE

      A     ::    OUT;

      0     ::    IN0;

      1     ::    IN1;

END TRUTH_TABLE;

END MUX_2;

PROCEDURE MUX_4 (

      INPUT IN0, IN1, IN2, IN3, A0, A1 ;

      OUTPUT OUT ;

);

TRUTH_TABLE

            [A1..A0]    ::    OUT;

                  0     ::    IN0;

                  1     ::    IN1;

                  2     ::    IN2;

                  3     ::    IN3;

      END TRUTH_TABLE;

      " TODO: add your DSL code below.

END MUX_4;

PROCEDURE MUX_8 (

      INPUT IN0, IN1, IN2, IN3, IN4, IN5, IN6, IN7, A0, A1, A2 ;

      OUTPUT OUT ;

);

      " TODO: add your DSL code below.

      TRUTH_TABLE

            [A2..A0]    ::    OUT;

                  0     ::    IN0;

                  1     ::    IN1;

                  2     ::    IN2;

                  3     ::    IN3;

                  4     ::    IN4;

                  5     ::    IN5;

                  6     ::    IN6;

                  7     ::    IN7;

      END TRUTH_TABLE;

END MUX_8;