Перейти к содержанию
    

M4K15H1MU

Участник
  • Постов

    6
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о M4K15H1MU

  • День рождения 02.02.1991

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array
  1. Ну вроде все получилось, всем спасибо!!! ;) А может кто нибудь подробнее комментарии к кодам написать, а то не нравятся мои маленькие комменты???
  2. Я подал на вход кодера 0001 и на выходе кодера получил число 23. Вот сикрин выполненной верификации. А на вход декодера подал 23 в двоичном виде (00010111) и получил 0001. Вот скрин выполненной верификации. Да,я пытаюсь разобраться в них, слишком сложно пока еще для меня.
  3. А можно поподробней с этим? И как именно реализовать комбинации? не в ручную же каждую?!
  4. Это я и спрашивал, какие 7 входов модуля декодер и надо записать в ТЗ? И как в ТЗ записать 8 бит декодера? :smile3046:
  5. Доброго времени суток! Недавно начал работу над Кодером-декодером Хэмминга, и столкнулся с несколькими проблемами: 1- техническое задание (получается полнейшая бредятина) Техническое задание 1. Наименование изделия: Кодер и декодер Хэмминга. 2. Технические требования: 1. Параметры передачи: d_min⁡(7,4) =3, n = k + r, 3. Входы - выходы модуля кодера: a0,a1,a2,a3- 4- символьное входное информационное слово h0,h1,h2,h3,h4,h5,h6 - 7-символьное выходное кодовое слово h7- формирование исправления одиночной ошибки м обнаружения двойной 4. Входы - выходы модуля декодера: a0,a1,a2,a3- 4- символьное входное информационное слово a0c, a1c,a2c,a3c - 4- символьное декодированное информационное слово 5. Микросхема EPM7032SLC44–10N, MAX7000, Com, 6. Рабочая тактовая чистота на входе CLK 20 MГц 2- в каком направлении мне дальше следовать??? Кодер: library ieee; use IEEE.std_logic_1164.ALL; ENTITY hamenc IS port( datain : IN BIT_VECTOR(0 TO 3); --d0 d1 d2 d3 hamout : OUT BIT_VECTOR(0 TO 7)--d0 d1 d2 d3 p0 p1 p2 p4 ); END hamenc; ARCHITECTURE arch OF hamenc IS signal p0, p1, p2, p4 : BIT; --check bits BEGIN --generate check bits p0 <= (datain(0) XOR datain(1)) XOR datain(2); p1 <= (datain(0) XOR datain(1)) XOR datain(3); p2 <= (datain(0) XOR datain(2)) XOR datain(3); p4 <= (datain(1) XOR datain(2)) XOR datain(3); --connect up outputs hamout(4 TO 7) <= (p0, p1, p2, p4); hamout(0 TO 3) <= datain(0 TO 3); END arch; Декодер: library ieee; use IEEE.std_logic_1164.ALL; ENTITY hamdec IS PORT( hamin : IN BIT_VECTOR(0 TO 7); --d0 d1 d2 d3 p0 p1 p2 p4 dataout : OUT BIT_VECTOR(0 TO 3); --d0 d1 d2 d3 sec, ded, ne : OUT BIT); --diagnostic outputs END hamdec; ARCHITECTURE arch OF hamdec IS BEGIN PROCESS(hamin) VARIABLE syndrome : BIT_VECTOR(3 DOWNTO 0); BEGIN --generate syndrome bits syndrome(0) := (((((((hamin(0) XOR hamin(1)) XOR hamin(2)) XOR hamin(3)) XOR hamin(4)) XOR hamin(5)) XOR hamin(6)) XOR hamin(7)); syndrome(1) := (((hamin(0) XOR hamin(1)) XOR hamin(3)) XOR hamin(5)); syndrome(2) := (((hamin(0) XOR hamin(2)) XOR hamin(3)) XOR hamin(6)); syndrome(3) := (((hamin(1) XOR hamin(2)) XOR hamin(3)) XOR hamin(7)); IF (syndrome = "0000") THEN --no errors ne <= '1'; ded <= '0'; sec <= '0'; dataout(0 TO 3) <= hamin(0 TO 3); ELSIF (syndrome(0) = '1') THEN --single bit error ne <= '0'; ded <= '0'; sec <= '1'; CASE syndrome(3 DOWNTO 1) IS WHEN "000"|"001"|"010"|"100" => dataout(0 TO 3) <= hamin(0 TO 3); -- parity errors WHEN "011" => dataout(0) <= NOT hamin(0); dataout(1 TO 3) <= hamin(1 TO 3); WHEN "101" => dataout(1) <= NOT hamin(1); dataout(0) <= hamin(0); dataout(2 TO 3) <= hamin(2 TO 3); WHEN "110" => dataout(2) <= NOT hamin(2); dataout(3) <= hamin(3); dataout(0 TO 1) <= hamin(0 TO 1); WHEN "111" => dataout(3) <= NOT hamin(3); dataout(0 TO 2) <= hamin(0 TO 2); END CASE; --double error ELSIF (syndrome(0) = '0') AND (syndrome(3 DOWNTO 1) /= "000") THEN ne <= '0'; ded <= '1'; sec <= '0'; dataout(0 TO 3) <= "0000"; END IF; END PROCESS; END arch; Подскажите пожалуйста правильный вариант ТЗ и алгоритм работы блоков кодер - декодер.
×
×
  • Создать...