[an error occurred while processing this directive]
|
Я пишу программу для XC9500XL на языке VHDL. Но компилятор синтезирует явно лишнее.
Вот исходник:
if (DVB_CLOCK_PIN'event and DVB_CLOCK_PIN='1' and DVBDataMask='1') then
if Mode(2 downto 0)="111" then
DVBDATAS(6 downto 0)<="0000000";
else
DVBDATAS(6 downto 0)<=DVBDATAS(7 downto 1);
end if;
end if;
Вот результат WEBPACK для одного бита:
/"sram_data_pin<0>" := /"sram_data_pin<1>"
+ testdvbdatamask * "testmode<0>" * "testmode<1>" *
"testmode<2>"
"sram_data_pin<0>".CLKF = dvb_clock_pin ;FCLK/GCK
"sram_data_pin<0>".CE = testdvbdatamask
"sram_data_pin<0>".PRLD = GND
один терм можно сэкономить, если переписать "sram_data_pin<0>".CE как:
= testdvbdatamask * "testmode<0>" * "testmode<1>" * эtestmode<2>"
Но компилятор упорно не хочет этого видеть. А задать CE явно он не дает.
Вопросы такие. Можно ли задать DVBDATAS как D-тригеры с CE входами и явно писать уравнения, или как-то управлять синтезом. Спасибо.
E-mail: info@telesys.ru