Міністерство освіти Російської Федерації p>
Московський державний інститут електронної техніки p>
(Технічний університет) p>
Кафедра телекомунікаційних систем (ТКС) p>
Дисципліна: Мережі зв'язку та системи комутації p>
Технічне завдання (c варіантом рішення) на курсовий проект p>
ПОБУДОВА VERILOG-МОДЕЛІ BER-тестер для ПЕРЕВІРКИ КАНАЛІВ ЗВ'ЯЗКУ p>
ТЕЛЕКОМУНІКАЦІЙНИХ СИСТЕМ p>
Москва 2002 p>
1. Мета роботи p>
1.1. Ознайомлення з методикою тестування каналів зв'язкутелекомунікаційних систем за допомогою BER-тестера (Bit-Error-Rate --інтенсивність надходження помилкових бітів від об'єкта перевірки; визначеннядано в міжнародному стандарті ITU-T O.153). p>
1.2. Розробка логічної моделі BER-тестера і аналіз її поведінки ввідсутність і при наявності модельованих помилок в каналі зв'язку. p>
2. Основні відомості про BER-тестерах p>
2.1. Генератори псевдовипадкових бітових послідовностей p>
Під час тестування каналів зв'язку звичайно застосовують генераторипсевдовипадкових бітових послідовностей. Приклад схеми такого генераторанаведено на рис. 2.1 [1]. Генератор виконаний на основі кільцевогозсувне регістра RG з логічним елементом Що виключає АБО (XOR) в ланцюзізворотного зв'язку. Якщо в початковому стані в регістрі присутній будь-якийненульовий код, то під дією синхросигналу CLK цей код будебезупинно циркулювати в регістрі і одночасно видозмінюватися. УЯк вихід генератора можна також використовувати вихід будь-якого розряду p>
регістра. p>
Рис. 2.1. Узагальнена схема генератора псевдовипадковою бітової p>
послідовності максимальної довжини і таблиця для вибору p>
проміжної точки підключення зворотного зв'язку p>
У загальному випадку в М-розрядному регістрі зворотній зв'язок підключається дорозрядів з номерами М і N p>
(М> N). Наведена на рис. 2.1 таблиця описує структуру генераторіврізної розрядності. Кожен генератор формує послідовність бітівз максимальним періодом повторення, рівним 2М - 1. У такійпослідовності зустрічаються всі М-розрядні коди, за виняткомнульового. Цей код являє собою своєрідну "пастку" для даноїсхеми: якщо б нульовий код з'явився в регістрі, подальшапослідовність бітів була б також нульовий. Але при нормальній роботігенератора попадання в пастку не відбувається. Послідовністьмаксимальної довжини має такі властивості. p>
1. У повному циклі (2М - 1 тактів) число лог. 1 на одиницю більше, ніжчисло лог. 0. Додаткова лог. 1 з'являється за рахунок виключення стану,при якому в регістрі був би присутній нульовий код. Це можнаінтерпретувати так, що ймовірність появи на виході регістра лог. 0і лог. 1 практично однакові. P>
2. У повному циклі (2М - 1 тактів) половина серій з послідовнихлог. 1 має довжину 1, одна четверта серій - довжину 2, одна восьма - довжину
3 і т. д. p>
Такими ж властивостями володіють і серії з лог. 0 з урахуванням пропущеноголог. 0. Це говорить про те, що ймовірність появи "орлів" і "решек" незалежать від результатів попередніх "підкидань". Тому ймовірність того,що серія з послідовних лог. 1 або лог. 0 закінчиться при наступномупідкиданні, дорівнює 1/2 всупереч обивательському розуміння "закону просередньому ". p>
3. Якщо послідовність повного циклу (2М - 1 тактів) порівнювати зцієї ж послідовністю, але циклічно зсунуто на будь-яке число тактів
W (W не є нулем або числом, кратним 2М - 1), то число розбіжностейбуде на одиницю більше, ніж число збігів. p>
Ідею тестування каналу зв'язку за допомогою прогону через ньогопсевдовипадкових бітових послідовностей зручно розглянути на прикладівикористання пари пристроїв - скремблер і дескремблера. p>
2.2. Скремблер - дескремблер з неізольованими генераторами p>
псевдовипадкових бітових послідовностей p>
скремблер (шифратори) і дескремблер (дешифратор) підключаються допротилежним сторонам каналу зв'язку, як показано на рис. 2.2. Скремблері дескремблер виконані на основі розглянутих генераторів псевдовипадковихбітових послідовностей. Обидва генератора мають однакову розрядність іоднотипну структуру зворотних зв'язків. Усі процеси, що протікають в системіпередачі даних, синхронізовані від тактового генератора (на малюнку непоказаний). Цей генератор розміщено на передавальної стороні системи і моженалежати джерела даних або скремблер. У кожному такті на вхідскремблер подається черговий біт даних, що передаються SD, а в зсувнерегістрі RG1 накопичений код просувається вправо на один розряд. p>
p>
Рис. 2.2. Система передачі даних, у якій скремблер і дескремблер містять неізольовані p>
генератори псевдовипадкових бітових послідовностей p>
Якщо припустити, що джерело даних посилає в скремблер довгупослідовність лог. 0, то елемент XOR1 можна розглядати якповторювач Y1 сигналу з виходу елемента XOR2. У цій ситуації регістр
RG1 замкнутий у кільце і генерує точно таку ж псевдовипадковупослідовність бітів, як і в розглянутої раніше схемою (див. рис. 2.1).
Якщо від джерела даних надходить довільна бітова послідовність,то вона взаємодіє з послідовністю бітів з виходу елемента XOR2.
В результаті формується нова (ськремблірованний) послідовність бітів
SCRD, за структурою близька випадковою. Ця послідовність, у своючергу, просувається за регістром RG1, формує потік бітів на виходіелемента XOR2 і т. д. p>
ськремблірованний послідовність бітів SCRD передається по лінії
(каналу зв'язку) і вступає в дескремблер. За допомогою генератора з фазовоїавтопідстроювання частоти (цей генератор на малюнку не показаний) з вхідногосигналу виділяється тактовий сигнал. Під управлінням тактового сигналу біти
SCRD просуваються в регістрі RG2, а в приймач даних надходятьдескремблірованние дані RD. p>
Потоки даних RD і SD збігаються з точністю до затримки передачі полінії. Дійсно, в усталеному режимі в зсувних регістрах RG1 і
RG2 присутні однакові коди, тому що на входи цих регістрів поданіодні й ті ж дані SCRD, а тактова частота, по суті, спільна. Тому Y2
= Y1, і, з урахуванням цього, p>
RD = SCRD? Y2 = SD? Y1? Y2 = SD? Y1? Y1 = SD? 0 = SD. P>
Розглянута система передачі даних не вимагає застосування будь-якоїспеціальної процедури початкової синхронізації. Після заповнення зсувнерегістра RG2, як було показано, генератори псевдовипадкових бітовихпослідовностей працюють синхронно (їх стану завжди однакові). Припояві одиночної помилки в лінії синхронізація тимчасово порушується, алепотім автоматично відновлюється, як тільки правильні дані зновузаповнять регістр RG2. Однак у процесі просування помилкового біта позсувне регістру RG2, а саме, у періоди його попадання спочатку наперше, а потім на другий вхід елемента XOR3 сигнал Y2 двічі приймаєнеправильне значення. Це призводить до розмноження одиночної помилки - вонавперше з'являється в сигналі RD в момент надходження з лінії і потімвиникає ще два рази при подальшому двократному спотворення сигналу Y. p>
Під час тестування лінії джерело даних видає постійна нульовий сигнал p>
SD = 0. Скремблер генерує псевдовипадкову послідовність бітів.
Дескремблер відновлює прообраз прийнятого псевдовипадкового сигналу.
При відсутності помилок передачі в приймач даних надходить постійнанульовий сигнал RD = 0. Виявлення пачки з трьох імпульсів (черезрозмноження помилки в регістрі RG2) розцінюється приймачем даних якодиночна помилка передачі даних по лінії зв'язку. p>
2.3. Варіант практичної реалізації тестера - об'єкт моделювання p>
Як показано на рис. 2.3, для тестування ланцюгів передачі синхросигналов
RxC і даних RхD каналу зв'язку між пристроями DTE та DCEвикористані генератор і аналізатор псевдовипадкових послідовностейбітів. По суті, генератор і аналізатор представляють собою розглянутіраніше скремблер і дескремблер, причому скрембліруется сигнал "Постійнануль ", тобто послідовність нульових бітів p>
(SD = 0, див. рис. 2.2). За відсутності помилок передачі сигналів RxC і RxDсигнал на виході тригера TT також повинен бути нульовим. p>
Для імітації перешкод у каналі зв'язку використані генератори G2 та G3.
Генератор G2 в певному такті (тактах) формує сигнал лог. 1. Цейсигнал впливає на логічний елемент виключає Або, в результатіелемент тимчасово переводиться в режим інвертування що передається черезнього бита (бітів) даних. Таким чином, замість справжнього нульового бітапередається помилковий одиничний або навпаки. Для імітації каналу зв'язку безперешкод в лінії передачі даних на виході генератора G2 повинен постійнобути присутнім сигнал лог. 0. P>
Аналогічно імітується сигнал перешкоди, що діє на лінію передачісинхросигналу. У відсутність перешкод на виході генератора G3 постійноприсутній сигнал лог. 0. Поява в деякому такті на виходігенератора G3 сигналу лог. 1 призводить до тимчасового спотворення сінхросеткіпереданих даних, тому що при цьому втрачається один синхроімпульсів. p>
p>
Рис. 2.3. Система контролю передачі даних і синхросигналу між пристроями типу DCE і DTE p>
За відсутності помилок під управлінням сигналу RxC з генератора G1 влінію даних RxD з регістра А надходить псевдовипадковихпослідовність бітів (см. p>
рис. 2.4). Позитивні фронти сигналу RxC задають кордону бітовихінтервалів сигналу RxD. Позитивні фронти інвертованого сигналу RxC задають зміщені на половину такту сінхросетку прийому даних в регістр Ві в D-тригер ТТ. Такти роботи генератора псевдовипадковоюпослідовності бітів позначені символами Т1 з відповіднимиіндексами в дужках (наприклад Т1 (L + 4)). Аналогічно такти роботианалізатора позначені символами Т2. p>
У тактах T1 (J) ... T1 (J + 3) стан регістра А змінюється в такийпослідовності: S (J), S (J + 1), S (J + 2), S (J + 3).
Відповідні біти вихідних даних: D (J), D (J + 1), D (J + 2), D (J +
3). Як зазначалося при описі системи "скремблер - дескремблер", вусталеному режимі за відсутності помилок вміст передавального іприймального регістрів (в даному випадку, регістрів А і В) однаково.
Тому, як показано на тимчасових діаграмах, коди в регістрі У збігаютьсяз кодами в регістрі А з урахуванням взаємного зсуву сінхросеток на половинутакту. p>
| Рис. |
| 2.4. |
| Час |
| нние |
| діагр |
| амми |
| перед |
| ачи і |
| прийом |
| а |
| тісто |
| вих |
| бітів |
| х |
| після |
| доват |
| Єльне |
| стей | p>
Цікаво відзначити, що код в приймальному регістрі (В) формується наполовину такту раніше, ніж той самий код в передавальному регістрі (А)! Такеповедінка аналізатора можна розглядати як прогноз черговогоправильного біта (0 або 1) в очікуванні його надходження по лінії RxD. Яквипливає з тимчасових діаграм, у відсутність помилок передбачення повністювиправдовуються. Це виявляється в тому, що сигнал Z на вході даних D -тригера приймає стійке нульове значення в моменти запису, томутригер залишається в стані лог. 0. P>
Припустимо, що в такті Т1 (J + 4) в результаті впливу на лінію
RxD імпульсу перешкоди передається біт спотвориться: замість справжнього лог. 0передається помилкова лог. 1 або навпаки. У цій ситуації в другій половинітакту Т2 (J + 4) виявляється невідповідність передбаченого і фактичноприйнятого бітів (сигнал Z приймає стабільне значення, рівне лог. 1).
Тому в наступному такті Т2 (J + 5) тригер переходить в стан лог. 1.
Таким чином, перший прояв помилки зафіксовано з затримкою вполовину такту після її виникнення в лінії. p>
Починаючи з такту Т1 (J + 5) по лінії RxD знову передаються правильнібіти. Порівняння передбачених і фактично прийнятих бітів знову даютьпозитивні результати, але раніше прийнятий в регістр В помилковий бітпочинає просування до розряду N. Код в регістрі У перекручений (що відображенона діаграмі символами "ERR"), але спотворення поки зовні не виявляються. p>
У такті Т2 (К + 2) помилковий біт потрапляє в розряд N. Внаслідокцього відбувається неправильне прогноз очікуваного біта, тобто в другійполовині такту передвіщений біт Y протилежний правильному биту D (K +
2), отриманого по лінії RxD. Тому тригер повторно реєструєпомилку. Після цього помилковий біт продовжує просування по регістру В внапрямку розряду М. В такті T2 (L + 1) помилковий біт досягає розряду
М. Неправильне пророкування повторюється, тригер в третій разреєструє помилку. Після цього помилковий біт виштовхується з зсувнерегістра В і, отже, не впливає на роботу системи контролю.
Таким чином, одиночна помилка в лінії призводить до формування пачки зтрьох імпульсів на виході тригера. p>
3. Формулювання завдання p>
3.1. Вивчіть роботу схеми, наведеної на рис. 2.3. P>
3.2. Вивчіть запропоновану Вам версію системи моделювання. P>
3.3. Розробіть модель схеми, наведеної на рис. 2.3. Параметри схемивизначаються варіантом завдання відповідно до табл. 3.1. Моделюваннявиконується на рівні gate level. p>
3.4. Протестуйте модель в умовах виключених і включенихгенераторів перешкод. Число і положення імпульсів перешкод визначаються варіантомзавдання відповідно до табл. 3.1. Глибина тестування - 1000 тактів.
Початковий стан регістра А - довільне, але не нульове. P>
3.5. Роздрукуйте часові діаграми сигналів на початковому етапі роботисистеми передачі даних (протягом перших 20 - 40 тактів). Переконайтесяправильності цих діаграм. p>
3.6. Роздрукуйте часові діаграми сигналів на етапі обробкиімпульсів перешкод (аж до виходу помилкового бита за межі регістра В ззапасом у кілька тактів). Переконайтеся в правильності цих діаграм. P>
3.7. Підготуйте пояснювальну записку та файли моделей у двох варіантах:електронному (поміщається в архів локальної мережі кафедри ТКС) і звичайному - ввигляді роздруківки. p>
У табл. 3.1. прийняті наступні позначення: p>
№ п/п - порядковий номер варіанту курсового проекту; p>
М - розрядність регістра А (В), див. рис. 2.1; p>
N - номер розряду, до якого підключається ланцюг зворотного зв'язку, див. рис.
2.1; p>
T (DATA) - номери тактів, рахуючи від нульового, в яких генеруєтьсяперешкода в лінії передачі даних, див. 2.3; p>
T (SYNC) - номери тактів, рахуючи від нульового, в яких генеруєтьсяперешкода в лінії передачі синхросигналу, див. рис. 2.3. P>
Таблиця 3.1. P>
Параметри моделювання системи передачі даних p>
| № п/п | М | N | T (DATA) | T (SYNC) |
| 1 | 39 | 35 | 756, 759 | 759, 989 |
| 2 | 36 | 25 | 41, 126 | 41, 42, |
| | | | | 43,44 |
| 3 | 35 | 33 | 88, 89, 90 | 860 -867 |
| 4 | 33 | 20 | 903-915 | 34, 44, 54 |
| 5 | 31 | 28 | 56, 65 - 69 | 68, 895 |
| 6 | 29 | 27 | 55, 57, 59, | 757 - 763 |
| | | | 67 | |
| 7 | 28 | 25 | 85, 847 | 85, 88, 93 |
| 8 | 25 | 22 | 49 - 54 | 51 - 56, 129 |
| 9 | 7 | 6 | 47, 61 | 84, 99 - 105 |
| 10 | 9 | 5 | 55, 78, 88 | 80, 90 |
| 11 | 10 | 7 | 759, 989 | 55, 57, 59, |
| | | | | 67 |
| 12 | 11 | 9 | 41, 42, 43,44 | 85, 847 |
| 13 | 15 | 14 | 860 -867 | 49 - 54 |
| 14 | 17 | 14 | 34, 44, 54 | 47, 61 |
| 15 | 18 | 11 | 68, 895 | 55, 78, 88 |
| 16 | 20 | 17 | 757 - 763 | 85, 847 |
| 17 | 21 | 19 | 759, 989 | 49 - 54 |
| 18 | 22 | 21 | 41, 42, 43,44 | 47, 61 |
| 19 | 23 | 18 | 860 -867 | 55, 78, 88 |
| 20 | 36 | 25 | 34, 44, 54 | 759, 989 |
| 21 | 35 | 33 | 68, 895 | 41, 42, |
| | | | | 43,44 |
| 22 | 33 | 20 | 757 - 763 | 860 -867 |
| 23 | 31 | 28 | 85, 88, 93 | 34, 44, 54 |
| 24 | 21 | 19 | 51 - 56, 129 | 68, 895 |
| 25 | 22 | 21 | 41, 42, 43,44 | 757 - 763 |
| 26 | 23 | 18 | 860 -867 | 85, 88, 93 |
| 27 | 36 | 25 | 34, 44, 54 | 51 - 56, 129 |
| 28 | 35 | 33 | 759, 989 | 756, 759 |
| 29 | 31 | 28 | 41, 42, 43,44 | 41, 126 |
| 30 | 29 | 27 | 860 -867 | 88, 89, 90 |
| 31 | 28 | 25 | 34, 44, 54 | 903-915 |
| 32 | 25 | 22 | 68, 895 | 56, 65 - 69 |
| 33 | 7 | 6 | 757 - 763 | 55, 57, 59, |
| | | | | 67 |
| 34 | 9 | 5 | 85, 88, 93 | 85, 847 |
| 35 | 10 | 7 | 51 - 56, 129 | 49 - 54 |
| 36 | 11 | 9 | 84, 99 - 105 | 47, 61 |
| 37 | 15 | 14 | 80, 90 | 55, 78, 88 |
| 38 | 25 | 22 | 55, 57, 59, | 759, 989 |
| | | | 67 | |
| 39 | 7 | 6 | 85, 847 | 41, 42, |
| | | | | 43,44 |
| 40 | 9 | 5 | 49 - 54 | 860 -867 |
| 41 | 10 | 7 | 47, 61 | 34, 44, 54 |
| 42 | 11 | 9 | 55, 78, 88 | 68, 895 |
| 43 | 15 | 14 | 85, 847 | 757 - 763 |
| 44 | 17 | 14 | 49 - 54 | 759, 989 |
| 45 | 18 | 11 | 47, 61 | 41, 42, |
| | | | | 43,44 |
| 46 | 25 | 22 | 55, 78, 88 | 860 -867 |
| 47 | 7 | 6 | 759, 989 | 34, 44, 54 |
| 48 | 9 | 5 | 41, 42, 43,44 | 68, 895 |
| 49 | 10 | 7 | 860 -867 | 757 - 763 |
| 50 | 11 | 9 | 34, 44, 54 | 85, 88, 93 |
| 51 | 15 | 14 | 68, 895 | 51 - 56, 129 |
| 52 | 17 | 14 | 757 - 763 | 41, 42, |
| | | | | 43,44 |
| 53 | 18 | 11 | 85, 88, 93 | 860 -867 |
| 54 | 28 | 25 | 51 - 56, 129 | 34, 44, 54 |
| 55 | 25 | 22 | 41, 42, 43,44 | 759, 989 |
| 56 | 7 | 6 | 860 -867 | 41, 42, |
| | | | | 43,44 |
| 57 | 9 | 5 | 34, 44, 54 | 860 -867 |
| 58 | 10 | 7 | 68, 895 | 34, 44, 54 |
| 59 | 11 | 9 | 34, 44, 54 | 35, 46, 56 |
| 60 | 15 | 14 | 759, 989 | 68, 895 |
| 61 | 17 | 14 | 41, 42, 43,44 | 757 - 763 |
| 62 | 18 | 11 | 860 -867 | 85, 88, 93 |
| 63 | 20 | 17 | 34, 44, 54 | 51 - 56, 129 |
| 64 | 21 | 19 | 68, 895 | 41, 42, |
| | | | | 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 | p>
4. Рекомендації з побудови моделі p>
4.1. Підготовка схеми до моделювання p>
Перш ніж почати моделювання схеми, слід представити її в термінахсистеми Verilog HDL. Для цього потрібно виділити в схемі функціонально -закінчені модулі p>
(module), позначити регістри (reg), дроти (wire), входи, виходи (input,output)і т. п. p>
На рис. 4.1 представлений результат підготовки розглянутої раніше схеми
(див. p>
рис. 2.3) до моделювання. Відзначимо, що для спрощення прикладу в явному виглядімоделюються не всі елементи схеми, а тільки її регістри. Це означає, щозамість потрібного у технічному завданні gate-рівня проектування застосованийбільш високий RTL-рівень (Register Transfer Level). В результаті,наприклад, замість позначення в явному вигляді елементів виключає Або вмоделі використані їх "формульні" еквіваленти. Це трохи збільшуєдистанцію між моделлю та її реальним прототипом, так як формульнийеквівалент не враховує затримку спрацьовування відповідного логічногоелемента або групи елементів. У прикладі немає також явних моделейпідсилювачів, инвертор, тригера. Тому у Вашому курсовому проекті слідрозробити більш детальну модель, повною мірою відповідну gate -рівня. p>
Схема (рис. 4.1) представлена чотирма модулями. Перший модуль (moduleber_tester) описує структуру пристрою в цілому. Інші модулі
(module DCE, module Line, module DTE) описують структуру відповіднихскладових частин пристрою. Для зручності складання моделі введені дві
"Фіктивних" D-тригера (показані на малюнку штриховими лініями), хочаможливі й інші рішення. p>
Далі наведено приклади реалізації чотирьох згаданих модулів. Кожен зних традиційно оформлений у вигляді окремого файлу. При компонуванні проектуці файли збираються в одну групу і "виконуються" після виконання Вамиланцюга команд екранного меню: Project (New ((Add
(додати в проект чотири файлу - опису чотирьох модулів) (OK (GO
(провести моделювання)). При успішному виконанні моделювання слідвивести на екран тимчасові діаграми, бажано в такій жепослідовності, як на рис. 4.2, а саме: p>
timing - пронумерована в десятковому вигляді послідовність тактів, тобто періоди дов сигналу від генератора G1 (рис. 4.1); p>
RxCgood - Синхросигнал без помилок; p>
RxDgood, - дані без помилок; p>
A [1: M] - шістнадцяткові код в М-розрядному регістрі А; errRxC - імпульс (імпульси) помилок сигналу RxC; errRxD - імпульс (імпульси) помилок сигналу RxD; p>
RxCbad - Синхросигнал з помилкою (помилками); p>
RxDbad - дані з помилкою (помилками); p>
B [1: M] - шістнадцяткові код в М-розрядному регістрі В; p>
D_input_TT - сигнал на вході D-тригера модуля DTE; p>
ERROR - вихідний сигнал (помилка) BER-тестера. p>
p>
Рис. 4.1. Схема BER-тестера з позначеннями в термінах системи Verilog p>
HDL для моделювання на рівні RTL
4.2. Приклад побудови RTL-моделі BER-тестера на мові системи Verilog p>
HDL p>
4.2.1. Файл BER-main_module.v p>
// Головний модуль (верхній рівень ієрархії модулів)module ber_tester (ERROR);// ber_tester --найменування модуля, p>
// в дужках укладено перелік виходів p>
// і входів (входів немає, є один вихід)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 і p>
DCE (DTE1, Line1 і// DCE1)endmodule
//Стандартне оформлення кінця модуля p>
4.2.2. Файл BER-DTE_module.v p>
module DTE (out1, in1, in2);// Назва модуля, список виходіві входівinput in1, in2;// Входиoutput out1;// Вихідparameter M = 5, N = 3;// М - довжина регістру,
N - точка підключення p>
// зворотногозв'язку. Можливі поєднання М і N: p>
// 3 2, 4 3, 5 3, 6 5, 7 6, 9 5, 10
7, 11 9, 15 14, 17 14, p>
// 18 11,
20 17, 21 19, 22 21, 23 18, 25 22, 28 25, 29 27, p>
// 31 28, 33
20, 35 33, 36 25, 39 35reg [1: M] B;// Опис М-розрядного регістра Вreg TT;// Опис D-тригера як однорозряднихрегістраwire D_input_TT;// Опис проводи p>
assign out1 = TT,// Стверджується, що станвиходу out1 p>
// відображає стан D -тригера p>
D_input_TT = B [N] ^ B [M] ^ in2;// Стверджується,що стан проводу p>
// D_input_TT визначається підсумовуванням p>
// по модулі два трьох змінних: p>
B [N],// B [M] і in2 p>
always begin: analyzer// BER-аналізатор працює
"завжди" наступним чином:
@ (negedge in1) begin: prediction_and_check// по негативномуфронту сигналу in1
TT = B [N] ^ B [M] ^ in2;//оновлюється стан тригера ТТ,
B = B>> 1;//код в реєстрі У зсувається вправо на p>
// один розряд,
B [1] = in2;//після цього в звільнився розряд В [1] p>
// поміщається біт з входу in2 end// Закінчення дій, викликанихнегативним фронтом p>
// сигналу in1 end// Закінчення конструкції "always"endmodule p>
4.2.3. Файл BER-Line_module.v p>
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;// Установка початковогостану регістра p>
assign out10 = in10 ^ errRxD;// Сигнал на виході out10 формуєтьсяпідсумовуванням p>
// по модулі двасигналів in10 і errRxD p>
assign out20 = in20 ^ errRxC;// Сигнал на виході out20формується підсумовуванням p>
// по модулі двасигналів in20 і errRxC p>
// "Завжди" за позитивного фронту сигналу на вході in20:always @ (posedge in20) begin: ticking// Додається одиниця долічильників тактів (такт - count = count + 1;// період сигналу вдроті RxCgood); timing = count - 1;// timing відстає відcount на одиницю errRxC = g3;// перепис біта зрегістра g3 в регістр errRxC end p>
// "Завжди" з затримкою на 20 елементарних одиниць часу, тобто наодин такт, p>
// перевіряється, чи потрібно формувати помилку в лінії RxDalways # 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 p>
// "Завжди" з затримкою на 20 елементарних одиниць часу, тобто наодин такт, p>
// перевіряється, чи потрібно формувати помилку в лінії RxC always # 20 if
((count == 9)// Положення помилок в лінії RxC (задаютьсязгідно
| (count == 40)// вибраному варіанту завдання на курсовійпроект)
| (count == 700)
| (count == 940)
| (count == 400)
| (count == 126)
| (count == 127)
| (count == 128)
| (count == 129)
| (count == 130)) begin g3 = 1;// помилку формувати потрібно end else begin g3 = 0;// помилку формувати не потрібно endendmodule p>
4.2.4. Файл BER-DCE_module.v p>
module DCE (out40, out30);// Назва модуля, список входів і виходів (входів// ні)output out40, out30;// Виходиreg g1;// Опис однорозряднихрегістра g1 p>
parameter M = 5, N = 3;// М - довжина регістра, N
- Точка підключення p>
// зворотного зв'язку.
Можливі поєднання М і N: p>
// 3 2, 4 3, 5 3, 6 5, 7 6, 9
5, 10 7, 11 9, 15 14, 17 14, p>
// 18 11, 20
17, 21 19, 22 21, 23 18, 25 22, 28 25, 29 27, p>
// 31 28, 33
20, 35 33, 36 25, 39 35 p>
reg [1: M] A;// Опис М-розрядногорегістра Areg temp;// Опис однорозряднихрегістра tempinitial A = 1;// Початкова установкарегістру Аassign out30 = A [N] ^ A [M], out40 = g1;// Опис поведінки виходівмодуля p>
initial begin: stopper// Зупинити процесмоделювання
# 20040; $ stop;// після закінчення 2040елементарних одиниць end// часу (один такт =
20 одиницям часу) p>
always begin: RxC_generator// тактовий генератор:
# 10 g1 = 0;// тривалість паузи = 10 одиницямчасу
# 10 g1 = 1;// тривалість імпульсу = 10одиницям часу end p>
always begin: pseudorandom_RxD// Генератор псевдовипадковоюпослідовності бітів
@ (posedge g1)// За позитивного фронтусигналу з регістра g1:temp = A [N] ^ A [M];// збереження старого значення суми по модулю два
A [N] і A [M],
A = A>> 1;// зсув коду в регістрі А на один розрядвправо,
A [1] = temp;// запис в перший розряд регістра Авмісту регістра temp endendmodule p>
p>
Рис. 4.2. Приклад тимчасових діаграм сигналів BER-тестера, отриманих у результаті моделювання. З них випливає, що помилка при передачі синхросигналу по лінії виявляється p>
Література p>
1. Сухман С.М., Берн А.В., Шевкопляс Б.В. Компонентителекомунікаційних систем. Аналіз інженерних рішень. - М.: MIET, 2002 .-
220 с. P>
2. Hyde Daniel C. CSCI 320 Computer Architecture. Handbook on Verilog
HDL. P>
Bucknell University, 1997. P>
Укладач - Б. В. Шевкопляс p>
31. 03. 2002 p>
----------------------- p>
p>
p> < p>
p>