DmitryR 0 24 февраля, 2005 Опубликовано 24 февраля, 2005 · Жалоба Перешел тут с Xilinx на Altera и столкнулся с неприятностью: Quatrus не транслирует значение сигнала по умолчанию (VHDL) в register power-up state. Пишет ignored и все. Не подскажте, как бороться? В fpga-faq написано, что VHDL default с register power-up ничего общего не имеет, тем не менее софт Xilinx это компилирует правильно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
cdg 1 24 февраля, 2005 Опубликовано 24 февраля, 2005 · Жалоба Выдержка из Altera Help: The following example shows how to use the altera_attribute synthesis attribute to set the power-up level of an inferred register. Because you cannot directly associate the synthesis attribute with the inferred register, you must associate the synthesis attribute to the inferred register's output signal; the Quartus II software automatically transfers the synthesis attribute to the inferred register. signal my_reg : std_logic attribute altera_attribute : string; attribute altera_attribute of my_reg : signal is "POWER_UP_LEVEL=HIGH"; process(clk) begin if(rising_edge(clk)) then my_reg <= d; end if; end process; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DmitryR 0 24 февраля, 2005 Опубликовано 24 февраля, 2005 · Жалоба Warning пропал, однако с триггером все равно что-то непонятное (его aclr привязан к VCC). И еще, что делать, если сигнал - std_logic_vector, причем немаленький? Если разобрать его по битам (допустим, хотя это почти нереально) - то как потом, например, программировать арифметические операции с ним? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
cdg 1 24 февраля, 2005 Опубликовано 24 февраля, 2005 · Жалоба Warning пропал, однако с триггером все равно что-то непонятное (его aclr привязан к VCC). Скорее всего добавили инверсию на выходе, это у Altera излюбленный прием, я тоже частенько таким пользуюсь. И еще, что делать, если сигнал - std_logic_vector, причем немаленький? Если разобрать его по битам (допустим, хотя это почти нереально) - то как потом, например, программировать арифметические операции с ним? Используйте прием от Altera, описанный выше. Вообще не являюсь большим спецом в области VHDL, я Verilog люблю :) . Поройтесь по докам Quartus :huh: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DmitryR 0 24 февраля, 2005 Опубликовано 24 февраля, 2005 · Жалоба Скорее всего добавили инверсию на выходе, это у Altera излюбленный прием, я тоже частенько таким пользуюсь. Не понял, ведь aclr - это асинхронных сброс. Если на нем всегда 1 - то на выходе будет всегда 0. Не так? Используйте прием от Altera, описанный выше. Вообще не являюсь большим спецом в области VHDL, я Verilog люблю :) . Поройтесь по докам Quartus :huh: А как прием, описанный выше, применить к вектору, если мне половину бит надо в 1 поставить, а половину - в 0? В доках - голяк, я уже второй день решаю эту весьма тупую проблему. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
cdg 1 24 февраля, 2005 Опубликовано 24 февраля, 2005 · Жалоба Не понял, ведь aclr - это асинхронных сброс. Если на нем всегда 1 - то на выходе будет всегда 0. Не так? Altera примитив DFF имеет инверсные входы асинхронной предустановки :excl: У Altera действительно кривовато с использованием altera_attribute констрейнсов. Если не могу обойтись без пред установки, и c составным сигналом косяк (в Verilog без проблем k = {a0, a1, d5 ...}), то можно сделать так (у меня это работает безотказно): вожу сигнал асинхронной предустановки, коим устанавливаю вектор в нужное состояние b'11100011, синтезатор Altera дает предупреждение "not gete push back" и у станавливает нужные триггера в 1 состояние по включению питания, не могу сказать что это документированная возможность, но на протяжении нескольких версий Quartus все работает нормально. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DmitryR 0 24 февраля, 2005 Опубликовано 24 февраля, 2005 · Жалоба А можно как-нибудь в ChipViewer увидеть power-up state? Для проверки, так сказать ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
cdg 1 24 февраля, 2005 Опубликовано 24 февраля, 2005 · Жалоба Конкретно по ChipViewer, незнаю эти вещи у Altera появились недавно, но для проверки можно посмотреть выходной нетлист, промоделировать наконец. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться