IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

> Active HDL 7.2
Fanat
сообщение 8.12.2007 12:52
Сообщение #1


Fanat
***

Группа: Пользователи
Сообщений: 261
Пол: Мужской
Реальное имя: Сергей

Репутация: -  5  +


Задача такая: необходимо написать декодер который взависимости от того что получает на свои 4 входа (нули или единички) выдаёт на 7 выходов тоже нули или единички. Как нибудь это можно сделать не через if'ы а то уж слишком длинный код получиться. Может как то через swith? Если он вообще есть в vhdl. Я тут совсем новичок.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Michael_Rybak
сообщение 9.12.2007 0:00
Сообщение #2


Michael_Rybak
*****

Группа: Модераторы
Сообщений: 1 046
Пол: Мужской
Реальное имя: Michael_Rybak

Репутация: -  32  +


Я не знаю языка, поэтому пример схематический, почти на паскале (не компилил):

const inout: array[1 .. 16, 1 .. 4 + 7] of byte = 
(
(0, 1, 1, 0, {это был вход} 1, 1, 1, 0, 0, 0, 1 {а это - выход}),
(1, 0, 1, 0, {это был вход} 0, 1, 0, 1, 1, 0, 1 {а это - выход}),
(0, 0, 0, 1, {это был вход} 1, 1, 1, 1, 1, 1, 1 {а это - выход}),
...
);

function Match(v_in: array[1 .. 4] of byte): array[1 .. 7] of byte;
var i, j: byte;
res: array[1 .. 7] of byte;
begin
for i := 1 to 16 do
if (v_in[1] = inout[i, 1]) and
(v_in[2] = inout[i, 2]) and
(v_in[3] = inout[i, 3]) and
(v_in[4] = inout[i, 4]) then begin
for j := 1 to 7 do
res[j] := inout[i, j + 4];
break;
end;

Match := res;
end;


 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 21.06.2025 4:22
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"