Главная    Почта    Новости    Каталог    Одноклассники    Погода    Работа    Игры     Рефераты     Карты
  
по Казнету new!
по каталогу
в рефератах

ПОСТРОЕНИЕ VERILOG-МОДЕЛИ BER-ТЕСТЕРА ДЛЯ ПРОВЕРКИ КАНАЛОВ СВЯЗИ ТЕЛЕКОММУНИКАЦИОННЫХ СИСТЕМ

    |
|      |    |    |             |43,44       |
|65    |22  |21  |757 – 763    |860 –867    |
|66    |23  |18  |85, 88, 93   |34, 44, 54  |
|67    |36  |25  |51 – 56, 129 |759, 989    |
|68    |35  |33  |84, 99 – 105 |34, 44, 54  |
|69    |33  |20  |80, 90       |68, 895     |
|70    |31  |28  |55, 57, 59,  |757 – 763   |
|      |    |    |67           |            |
|71    |21  |19  |85, 847      |85, 88, 93  |
|72    |22  |21  |49 – 54      |51 – 56, 129|
|73    |23  |18  |85, 88, 93   |41, 42,     |
|      |    |    |             |43,44       |
|74    |36  |25  |51 – 56, 129 |860 –867    |
|75    |35  |33  |41, 42, 43,44|34, 44, 54  |
|76    |31  |28  |860 –867     |68, 895     |
|77    |29  |27  |34, 44, 54   |34, 44, 54  |
|78    |28  |25  |759, 989     |759, 989    |
|79    |25  |22  |34, 44, 54   |41, 42,     |
|      |    |    |             |43,44       |
|80    |7   |6   |68, 895      |860 –867    |



   4. Рекомендации по построению модели

   4.1. Подготовка схемы к моделированию
   Прежде чем начать моделирование схемы, следует представить ее в терминах
системы Verilog  HDL.  Для  этого  нужно  выделить  в  схеме  функционально-
законченные модули

(module), обозначить регистры (reg), провода (wire), входы,  выходы  (input,
output) и т. п.
   На рис. 4.1 представлен результат подготовки рассмотренной  ранее  схемы
(см.

рис. 2.3) к моделированию. Отметим, что для упрощения примера в  явном  виде
моделируются не все элементы схемы, а только ее регистры. Это означает,  что
вместо требуемого в техническом задании gate-уровня проектирования  применен
более  высокий  RTL-уровень  (Register  Transfer   Level).   В   результате,
например, вместо обозначения в явном  виде  элементов   Исключающее  ИЛИ   в
модели использованы их “формульные” эквиваленты. Это  несколько  увеличивает
дистанцию между  моделью  и  ее  реальным  прототипом,  так  как  формульный
эквивалент не учитывает задержку срабатывания  соответствующего  логического
элемента  или  группы  элементов.  В  примере  нет   также   явных   моделей
усилителей, инвертора, триггера. Поэтому в Вашем  курсовом  проекте  следует
разработать более подробную модель, в  полной  мере  соответствующую   gate-
уровню.
   Схема (рис. 4.1) представлена четырьмя модулями. Первый  модуль  (module
ber_tester)  описывает  структуру  устройства  в  целом.  Остальные   модули
(module DCE, module Line, module DTE)  описывают  структуру  соответствующих
составных частей устройства. Для удобства  составления  модели  введены  два
“фиктивных” D-триггера   (показаны  на  рисунке  штриховыми  линиями),  хотя
возможны и иные решения.
   Далее приведены примеры реализации четырех упомянутых модулей. Каждый из
них традиционно оформлен в виде отдельного  файла.  При  компоновке  проекта
эти файлы собираются в одну группу и  “исполняются”  после  выполнения  Вами
цепи команд экранного меню:  Project ( New (  <имя  нового  проекта>  (  Add
(добавить в проект четыре файла –  описания  четырех  модулей)  (  OK  (  GO
(провести моделирование)). При успешном   выполнении  моделирования  следует
вывести   на   экран   временные   диаграммы,   желательно   в   такой    же
последовательности, как на  рис. 4.2, а именно:



   timing  – пронумерованная в десятичном виде  последовательность  тактов,
           т. е. перио дов сигнала от генератора  G1 (рис. 4.1);
   RxCgood – синхросигнал без ошибок;
   RxDgood, – данные без ошибок;
   A[1:M] – шестнадцатиричный код в М-разрядном регистре А;
   errRxC – импульс (импульсы) ошибок сигнала RxC;
   errRxD – импульс (импульсы) ошибок сигнала RxD;
   RxCbad – синхросигнал с ошибкой (ошибками);
   RxDbad – данные с ошибкой (ошибками);
   B[1:M] – шестнадцатиричный код в М-разрядном регистре В;
   D_input_TT – сигнал на входе D-триггера модуля DTE;
   ERROR – выходной сигнал (Ошибка)  BER-тестера.
                                    [pic]

   Рис. 4.1. Схема BER-тестера с обозначениями в терминах системы Verilog
                    HDL для моделирования на уровне  RTL
  4.2. Пример построения  RTL-модели  BER-тестера на языке системы Verilog
                                     HDL

   4.2.1. Файл  BER-main_module.v

               //Главный модуль (верхний уровень иерархии модулей)
module ber_tester (ERROR);                                 // ber_tester -
наименование модуля,

  // в скобках заключен перечень выходов

// и входов (входов нет, имеется один выход)
output ERROR;                                      // дается определение
ERROR как выхода (а не входа)
wire RxDgood, RxCgood, RxDbad, RxCbad;                     // список
проводов главного модуля
DTE DTE1(ERROR, RxCbad, RxDbad);                          // Структурная
модель BER-тестера
Line Line1 (RxCbad, RxDbad, RxCgood, RxDgood);     // на основе трех
модулей:
DCE DCE1(RxCgood, RxDgood);                                 // DTE, Line и
                                         DCE (DTE1, Line1 и   //DCE1)
endmodule
// стандартное оформление конца модуля

   4.2.2. Файл  BER-DTE_module.v

module DTE(out1, in1, in2);         // Наименование модуля, список выходов
и входов
input in1, in2;                               // Входы
output out1;                                 // Выход
parameter M=5, N=3;                                 // М - длина регистра,
N - точка подключения
                                                           // обратной
связи. Возможные сочетания М и N:
                                       // 3 2, 4 3, 5 3, 6 5, 7 6, 9 5, 10
7, 11 9, 15 14, 17 14,
                                                                // 18 11,
20 17, 21 19, 22 21, 23 18, 25 22, 28 25, 29 27,
                                                              // 31 28, 33
20, 35 33, 36 25, 39 35
reg [1:M] B;                // Описание М-разрядного регистра В
reg TT;                       // Описание D-триггера как одноразрядного
регистра
wire D_input_TT;     // Описание провода

assign out1 = TT,                      // Утверждается, что состояние
выхода out1
                                                 // отображает состояние D-
триггера

            D_input_TT = B[N] ^ B[M] ^ in2;              // Утверждается,
что состояние провода

    // D_input_TT определяется суммированием

                                        // по модулю два трех переменных:
                                     B[N],            // B[M] и in2

always begin: analyzer                   // BER-анализатор работает
"всегда" следующим образом:
@(negedge in1)  begin: prediction_and_check           // по отрицательному
фронту сигнала in1
 TT = B[N] ^ B[M] ^ in2;                                          //
обновляется состояние триггера ТТ,
 B = B >> 1;                                                             //
код в регистре В сдвигается вправо на

    // один разряд,
B[1] = in2;                                                             //
после этого в освободившийся разряд В[1]

 // помещается бит с входа in2
               end                // Окончание действий, вызванных
отрицательным фронтом
                                  // сигнала in1
       end           // Окончание конструкции "always"
endmodule

   4.2.3. Файл  BER-Line_module.v

module Line (out20, out10, in20, in10);   // Наименование модуля, список
выходов и входов
input in20, in10;                                      // Входы
output out20, out10;                              // Выходы
reg errRxD, g3, errRxC;                      // Описание одноразрядных
регистров
integer count, timing;                         // Описание абстрактных
целочисленных переменных
initial count = 0;                               // Установка начального
значения переменной
initial errRxD=0;                             // Установка начального
состояния регистра
initial g3=0;                                   // Установка начального
состояния регистра

assign out10 = in10 ^errRxD;     // Сигнал на выходе out10 формируется
суммированием
                                                   // по модулю два
сигналов in10 и errRxD

assign out20 = in20 ^errRxC;             // Сигнал на выходе out20
формируется суммированием
                                                           // по модулю два
сигналов in20 и errRxC

    // "Всегда" по положительному фронту сигнала на входе in20:
always @(posedge in20)  begin: ticking    // Прибавляется единица к
счетчикам тактов (такт -
                  count = count + 1;                   // период сигнала в
проводе RxCgood);
                 timing = count - 1;                  // timing отстает от
count на единицу
                  errRxC = g3;                        // перепись бита из
регистра g3 в регистр errRxC
                        end

    //  "Всегда" с задержкой на 20 элементарных единиц времени, т. е. на
один такт,
    // проверяется, нужно ли формировать ошибку в линии RxD
always #20  if
((count == 39)                    // Положения ошибок в линии RxD (задаются
согласно
|(count == 60)                    // выбранному варианту задания на
курсовой проект)
|(count == 70)
|(count == 40)
|(count == 40)
|(count == 40)
|(count == 310)
|(count == 120)
|(count == 160)
|(count == 130))
             begin
                       errRxD = 1;   // ошибку формировать нужно
               end
        else
               begin
                       errRxD = 0;   // ошибку формировать не нужно
               end

      //  "Всегда" с задержкой на 20 элементарных единиц времени, т. е. на
один такт,
      // проверяется, нужно ли формировать ошибку в линии RxC
 always #20 if
((c
1234
скачать работу

ПОСТРОЕНИЕ VERILOG-МОДЕЛИ BER-ТЕСТЕРА ДЛЯ ПРОВЕРКИ КАНАЛОВ СВЯЗИ ТЕЛЕКОММУНИКАЦИОННЫХ СИСТЕМ

 

Отправка СМС бесплатно

На правах рекламы


ZERO.kz
 
Модератор сайта RESURS.KZ