Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс. e-mail:jobsmp@pochta.ru |
library IEEE, Synplify;
use IEEE.STD_LOGIC_1164.all;
use IEEE.STD_LOGIC_ARITH.all;
use IEEE.NUMERIC_STD.all;
use Synplify.attributes.all;
entity pribor is
port(
ALE : in STD_LOGIC;
RD : in STD_LOGIC;
WR : in STD_LOGIC;
A : in STD_LOGIC_VECTOR(15 downto 8);
RES1 : in std_logic;
CLK : in std_logic;
INT_1 : out STD_LOGIC;
INT_5 : out STD_LOGIC;
AD : inout STD_LOGIC_VECTOR(7 downto 0);
Q : inout STD_LOGIC
);
end pribor;
--}} End of automatically maintained section
if ALE='0' then
case A is
when "00010001" => if WR='0' then
if AD(0) = '1' then Choise <="010";
elsif
AD(1) = '1' then Choise <="101";
elsif
AD(7) = '1' then Choise <="110";
end if;
end if;
when "00010011" => if RD='0' then AD<=FPQ_5; end if;
when others =>
end case;
end if;
end if;
end if;
вся проблема состоит в том, что в тест бенче этот кусок программы работает нормально,
но при синтезе с помощью Synplify Pro 8.5 этот код ваще не пашет.
Я понял что вся проблемма в сигнале AD, так как он двунаправленный (inout), потому что, как только я делаю его out, то после синтеза все нормально.
Подскажите пожалуйста как с этим бороться, может атрибуты есть какие.
Зарание СПАСИБО.