|
Quartus не понимает power-up state |
|
|
|
 |
Ответов
(1 - 7)
|
Feb 24 2005, 09:19
|
Местный
  
Группа: Свой
Сообщений: 313
Регистрация: 8-09-04
Из: Таганрог
Пользователь №: 617

|
Выдержка из 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;
|
|
|
|
|
Feb 24 2005, 10:14
|
Местный
  
Группа: Свой
Сообщений: 313
Регистрация: 8-09-04
Из: Таганрог
Пользователь №: 617

|
Цитата Warning пропал, однако с триггером все равно что-то непонятное (его aclr привязан к VCC). Скорее всего добавили инверсию на выходе, это у Altera излюбленный прием, я тоже частенько таким пользуюсь. Цитата И еще, что делать, если сигнал - std_logic_vector, причем немаленький? Если разобрать его по битам (допустим, хотя это почти нереально) - то как потом, например, программировать арифметические операции с ним? Используйте прием от Altera, описанный выше. Вообще не являюсь большим спецом в области VHDL, я Verilog люблю  . Поройтесь по докам Quartus
|
|
|
|
|
Feb 24 2005, 10:32
|
Профессионал
    
Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770

|
Цитата(cdg @ Feb 24 2005, 14:14) Скорее всего добавили инверсию на выходе, это у Altera излюбленный прием, я тоже частенько таким пользуюсь. Не понял, ведь aclr - это асинхронных сброс. Если на нем всегда 1 - то на выходе будет всегда 0. Не так? Цитата Используйте прием от Altera, описанный выше. Вообще не являюсь большим спецом в области VHDL, я Verilog люблю  . Поройтесь по докам Quartus  А как прием, описанный выше, применить к вектору, если мне половину бит надо в 1 поставить, а половину - в 0? В доках - голяк, я уже второй день решаю эту весьма тупую проблему.
|
|
|
|
|
Feb 24 2005, 11:17
|
Местный
  
Группа: Свой
Сообщений: 313
Регистрация: 8-09-04
Из: Таганрог
Пользователь №: 617

|
Цитата Не понял, ведь aclr - это асинхронных сброс. Если на нем всегда 1 - то на выходе будет всегда 0. Не так? Altera примитив DFF имеет инверсные входы асинхронной предустановки У Altera действительно кривовато с использованием altera_attribute констрейнсов. Если не могу обойтись без пред установки, и c составным сигналом косяк (в Verilog без проблем k = {a0, a1, d5 ...}), то можно сделать так (у меня это работает безотказно): вожу сигнал асинхронной предустановки, коим устанавливаю вектор в нужное состояние b'11100011, синтезатор Altera дает предупреждение "not gete push back" и у станавливает нужные триггера в 1 состояние по включению питания, не могу сказать что это документированная возможность, но на протяжении нескольких версий Quartus все работает нормально.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|