- •Панов, В.А.
- •2.1.2. Лексические элементы языка
- •2.1.2.1. Используемые символы
- •2.1.2.2. Идентификаторы
- •2.1.2.З. Комментарий
- •2.1.2.4. Литералы
- •2.1.3. Модели данных
- •2.1.З.1. Скалярные типы
- •2.1.З.2. Целый тип
- •2.1.З.З. Тип с плавающей точкой
- •2.1.З.4. Перечислительные типы
- •2.1.З.5. Физические типы
- •2.1.4. Операции
- •2.1.5. Операторы управления
- •2.1.6. Пакеты
- •3.2.2. Верификация
- •3.3.2. Стратегии проектирования
- •4.2.1.5. Декодер Меггита для укороченного кода
- •4.2.2. Групповые систематические коды (ГСК)
- •4.2.2.1. Построение кодеров ГСК
- •6.2.1. Декодер помехоустойчивого кода (канальный декодер)
- •6.2.2. Оборудование группообразования приемника
- •6.2.3. Тестирование приемника
- •6.3. Модель цифрового канала связи с помехой
- •7.1.7. Тестирование КПД
- •7.2.1. Расчет основных параметров
- •7.2.2. Проектирование передатчика
- •7.2.4. Формирователь КИ
- •7.2.5. Шифратор единичного кода в двоичный
- •7.2.6. Мультиплексор
- •7.2.9. Проектирование приемника
- •7.2.10. Тестирование приемника
- •7.2.12. Тестирование КПД
- •8. ВАРИАНТЫ ЗАДАНИЙ ДЛЯ КУРСОВОГО ПРОЕКТИРОВАНИЯ
- •9. СОДЕРЖАНИЕ ОТЧЕТА
- •СПИСОК ЛИТЕРАТУРЫ
- •2. Проектирование графического проекта на основе созданных на VHDL устройств
- •2. Описание на языке VHDL счетчика импульсов (до 19) передатчика
- •1. Описание на языке VHDL шифратора единичного кода в двоичный (длина единичного кода = 7)
- •2. Описание на языке VHDL шифратора единичного кода в двоичный (длина единичного кода = 10)
- •Описание на языке VHDL дешифратора двоичного кода в единичный
- •2. Описание на языке VHDL мультиплексора 10x1
- •2. Описание на языке VHDL последовательной реализации кодера ГСК (11,7,3)
- •Описание на языке VHDL устройства управления кодером ЦСК по g(x)
- •Описание на языке VHDL кодера ЦСК по h{x)
- •2. Описание на языке VHDL последовательной реализации декодера ГСК (11,7,3)
- •Описание на языке VHDL устройств управления декодером неукороченного кода ЦСК
- •Описание на языке VHDL устройств управления декодером укороченного кода ЦСК
- •2. Описание на языке VHDL демультиплексора 1x10
- •Описание на языке VHDL устройства, моделирующего ЦКС с помехой
- •1. Временная диаграмма моделирования работы КПД (код ЦСК)
- •2. Временная диаграмма моделирования работы КПД (код ГСК)
- •Оглавление
d (1) |
<= |
d (0); |
xor |
s; |
d(2) |
<= |
d (1) |
||
d (3) |
<= |
d (2); |
xor |
s; |
d(4) |
<= |
d(3) |
vo <= kl xor r (14) ; end if;
end if; end process;
end behaviour;
2. Описание на языке VHDL последовательной реализации декодера ГСК (11,7,3)
LIBRARY ieee;
USE ieee.std__logic__1164 .all;
ENTITY decoder_ll_7_3 IS
PORT (
v:IN STD_LOGIC;
u:OUT STD__LOGIC;
— er :OUT STD_LOGIC; clr: IN STD_LOGIC; elk: IN STD_LOGIC
);
END decoder_ll_7__3 ;
ARCHITECTURE beh OF decoder_ll_7_3 IS |
|
|
|
|
|
||||||
BEGIN |
|
|
|
|
|
|
|
|
|
|
|
PROCESS(elk) |
|
|
|
|
|
|
|
|
|
|
|
VARIABLE ent: INTEGER RANGE 0 TO 20; |
|
|
|
|
|
||||||
VARIABLE d: STD_LOGIC_VECTOR(0 TO 20); |
|
|
|
|
|
||||||
VARIABLE s: STD_LOGIC_VECTOR(0 TO 3); |
|
|
|
|
|
||||||
BEGIN |
|
|
|
|
|
|
|
|
|
|
|
IF (clr=10 1) THEN |
|
|
|
|
|
|
|
|
|
||
ent:=0; |
|
|
|
|
|
|
|
|
|
|
|
— er<='O'; |
|
|
|
|
|
|
|
|
|
|
|
ELSIF rising_edge(elk) THEN |
|
|
|
|
|
|
|
||||
ent:=cnt+l; |
|
|
|
|
|
|
|
|
|
|
|
IF (cnt>=2 AND cnt<=12) THEN |
|
|
|
|
|
|
|||||
d(cnt):=v; |
|
|
|
|
|
|
|
|
|
|
|
ELSIF |
(cnt=13) THEN |
|
|
|
|
|
|
|
|
||
— синдром: |
xor |
d(2) |
xor |
d (4) |
xor |
d (5) |
xor |
d (6) ; |
|
|
|
s(0):= d (9) |
xor |
d (8) |
|||||||||
s (1):= d (10) |
xor |
d(2) |
xor |
d (3) |
xor |
d (5) |
xor |
d (6) |
|||
s (2):= d (11) |
xor |
d (2) |
xor |
d (3) |
xor |
d (4) |
xor |
d (6) |
xor |
d (7) |
|
s (3 ) := d (12) |
xor |
d (2) |
xor |
d (3) |
xor |
d (4) |
xor |
d (5) |
xor |
d (7) |
|
xor |
d (8) ; |
|
|
8); |
|
|
|
|
|
|
|
d (13 |
TO 19):= d (2 TO |
|
|
|
|
|
|
|
— синдромное декодирование:
|
CASE |
s |
IS |
|
|
|
|
|
|
|
— |
нет |
ошибок: |
=> |
d (13 TO |
19):«d(2 TO |
8) |
||
|
— |
WHEN |
"0000" |
||||||
|
в 1 разряде: |
=> |
d (13):=not |
d (2); |
|
||||
|
— |
WHEN |
"1111" |
|
|||||
|
в 2 разряде: |
=> |
d (14):*not |
d (3); |
|
||||
|
|
WHEN |
"0111" |
|
|||||
|
— в 3 разряде: |
=> |
d (15):=not |
d (4); |
|
||||
|
|
WHEN |
"1011" |
|
|||||
|
— в 4 разряде: |
=> |
d (16):=not |
d (5); |
|
||||
|
|
WHEN |
"1101" |
|
|||||
|
— в 5 разряде: |
=> |
d (17):=not |
d (6); |
|
||||
|
|
WHEN |
"1110" |
|
|||||
|
— в 6 разряде: |
=> |
d (18):=not d(7); |
|
|||||
|
|
WHEN |
"ООН" |
|
|||||
|
— в 7 разряде: |
=> |
d (19):=not |
d (8); |
|
||||
|
|
WHEN |
"0101" |
|
|||||
|
— в 8 разряде: |
=> |
d (13 TO |
19):=d(2 TO |
8) |
||||
|
|
WHEN |
"1000" |
||||||
|
— в 9 разряде: |
=> |
d (13 TO |
19):=d(2 TO |
8) |
||||
|
— |
WHEN |
"0100" |
||||||
|
в 10 |
разряде: |
d (13 TO |
19):=d(2 TO |
8) |
||||
|
— |
WHEN |
"0010" |
=> |
|||||
|
в 11 |
разряде: |
d (13 TO |
19):=d(2 TO |
8) |
||||
|
|
WHEN |
"0001" |
=> |
|||||
|
— в ост. случаях |
d (13 TO |
19):=d(2 TO |
8) |
|||||
|
|
WHEN |
OTHERS |
=> |
|||||
|
END CASE; |
|
|
|
|
|
|||
u<=d(13); |
|
|
|
|
|
||||
ELSIF (cnt>=14 AND cnt<=19) THEN |
|
||||||||
|
u<=d(cnt); |
|
|
|
|
|
|||
END |
IF; |
|
THEN |
|
|
|
|
|
|
IF |
cnt=20 |
|
|
|
|
|
|||
|
u<='01; |
|
|
|
|
|
|||
|
cnt:=1; |
|
|
|
|
|
|
||
END |
IF; |
|
|
|
|
|
|
|
|
END |
IF; |
|
|
|
|
|
|
|
END PROCESS;
END
Описание на языке VHDL устройств управления декодером неукороченного кода ЦСК
— controll library ieee;
use ieee.std_logic_1164.all;
entity decoder_controll is port (
d:in integer range 0 to 2*15-1;
q:out std_logic
) ;
end decoder_controll;
architecture behaviour of decoder_controll is begin
q <= '0' when d<15 else '1' end behaviour;
— control2 library ieee;
use ieee.std_logic_1164.all;
entity decoder_control2 is port (
d:in integer range 0 to 2*15-1;
q: out std_logic
) ;
end decoder_control2;
architecture behaviour of decoder_control2 is begin
q <= '1' when d=0 else '0' end behaviour;
LIBRARY |
ieee; |
|
|
USE ieee.std_logic_1164.all; |
|||
ENTITY decoder_red IS |
|
||
PORT ( |
|
|
IN STD_LOGIC; |
elk, vi: |
|||
controll,control2,reset: IN STD_LOGIC; |
|||
vo, |
delete: |
OUT STD_LOGIC) ; |
|
END decoder_red; |
|
||
ARCHITECTURE behaviour OF decoder_red IS |
|||
signal kl,s,del,ok:std_logic; |
|||
signal |
d: |
std_logic_vector(0 to 4); |
|
signal |
r: |
std__logic_vector (0 to 12); |
|
begin |
<= |
*1 1 when (controll='1') and (d="11010") else 'O'; |
|
kl |
|||
ok |
<= |
'1' when |
селектора: |
|
— |
настройка |
(d="10101")or
(d="00001,,)or
(d=M00010")or (d=,,00100") or (de"01000")or (d=*n10000n)or
(d=,,01011")or
(d="10110f,)or
(d=,,00111")or
(d=,,01110,,)or
(d=,,11100,,)or
(d-n10011n)or
(d=,,01101,,) else 'O';
del <= '1' when (control2='1') and not(d="00000") else
'O';
s <= (vi xor d (4)) and not(kl); process (elk,reset)
begin
if reset='0' then d <= "00000";
vo <= 'O';
r <= "0000000000000"; elsif rising_edge(elk) then
delete <= del and not ok; if del='l’ then
d <= "00000"; vo <= 'O';
r <= "0000000000000";
else
— reg--------------
r (0) <- vi;
for j in 1 to 12 loop r(j) <= r(j-l);
end loop;
d (0) |
<= |
s ; |
|
|
d(l) <= d(0) xor vi; |
||||
d(2) |
<= |
d (1) |
xor |
s; |
d (3) |
<= |
d (2); |
xor |
d (4) |
d (4) |
<= |
d (3) |
vo <= kl xor r (12); end if;
end if; end process;
end behaviour;