Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс. e-mail:jobsmp@pochta.ru |
package my_pac is
type int9bit is range 0 to 511;
type bcd is range 0 to 9;
end my_pac;use work.my_pac.all;
entity coder210 is
port
(
A0 : in int9bit;
Y0 : out bcd;
Y1 : out bcd;
Y2 : out bcd
);
end coder210;architecture coder210_arch of coder210 is
signal t1, t2, t3 : integer;
begin
t1 <= integer(A0) rem 10;
t2 <= integer(A0 / 10) rem 10;
t3 <= integer(A0 / 100) rem 10;
Y0 <= bcd(t1);
Y1 <= bcd(t2);
Y2 <= bcd(t3);
end coder210_arch;
Еще нужно сделать тоже самое в "поведенческом стиле". Я просто обернул все эти вычисления в процесс. Это правильно или есть какой-то другой способ?
package my_pac is
type int9bit is range 0 to 511;
type bcd is range 0 to 9;
end my_pac;use work.my_pac.all;
entity coder210 is
port
(
A0 : in int9bit;
Y0 : out bcd;
Y1 : out bcd;
Y2 : out bcd
);
end coder210;architecture coder210_arch of coder210 is
begin
process (A0)
variable t1, t2, t3 : integer;
begin
t1 := integer(A0) mod 10;
t2 := integer(A0 / 10) mod 10;
t3 := integer(A0 / 100) mod 10;
Y0 <= bcd(t1);
Y1 <= bcd(t2);
Y2 <= bcd(t3);
end process;
end coder210_arch;