Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс. e-mail:jobsmp@pochta.ru |
ARCHITECTURE bin2bcd OF bin_bcd IS
signal ct_bit_bin : std_logic_vector(3 downto 0);
signal bin_rg : std_logic_vector(8 downto 0);
signal bcd_rg : std_logic_vector(11 downto 0);
signal sum: std_logic_vector(11 downto 0);
BEGIN
sum(3 downto 0) <= bcd_rg(3 downto 0) + "0011" when bcd_rg(3 downto 0) > 4 else bcd_rg(3 downto 0);
sum(7 downto 4) <= bcd_rg(7 downto 4) + "0011" when bcd_rg(7 downto 4) > 4 else bcd_rg(7 downto 4);
sum(11 downto 8) <= bcd_rg(11 downto 8) + "0011" when bcd_rg(11 downto 8) > 4 else bcd_rg(11 downto 8);
PROCESS (clk)
BEGIN
IF (clk'EVENT AND clk = '1') THEN
IF ct_bit_bin = "0000" THEN
enable_rd_bcd <= '1';
bcd <= bcd_rg;
bcd_rg <= "000000000000";
bin_rg <= bin;
ct_bit_bin <= "1001";
ELSE
enable_rd_bcd <= '0';
bcd_rg <= sum(10 downto 0) & bin_rg(8);
bin_rg <= bin_rg(7 downto 0) & '0';
ct_bit_bin <= ct_bit_bin - 1;
END IF;
END IF;
END PROCESS;
END bin2bcd;