реклама на сайте
подробности

 
 
> Quartus не понимает power-up state
DmitryR
сообщение Feb 24 2005, 08:54
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Перешел тут с Xilinx на Altera и столкнулся с неприятностью: Quatrus не транслирует значение сигнала по умолчанию (VHDL) в register power-up state. Пишет ignored и все. Не подскажте, как бороться? В fpga-faq написано, что VHDL default с register power-up ничего общего не имеет, тем не менее софт Xilinx это компилирует правильно.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 7)
cdg
сообщение Feb 24 2005, 09:19
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 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;
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Feb 24 2005, 09:45
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Warning пропал, однако с триггером все равно что-то непонятное (его aclr привязан к VCC).

И еще, что делать, если сигнал - std_logic_vector, причем немаленький? Если разобрать его по битам (допустим, хотя это почти нереально) - то как потом, например, программировать арифметические операции с ним?
Go to the top of the page
 
+Quote Post
cdg
сообщение Feb 24 2005, 10:14
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 313
Регистрация: 8-09-04
Из: Таганрог
Пользователь №: 617



Цитата
Warning пропал, однако с триггером все равно что-то непонятное (его aclr привязан к VCC).

Скорее всего добавили инверсию на выходе, это у Altera излюбленный прием, я тоже частенько таким пользуюсь.
Цитата
И еще, что делать, если сигнал - std_logic_vector, причем немаленький? Если разобрать его по битам (допустим, хотя это почти нереально) - то как потом, например, программировать арифметические операции с ним?

Используйте прием от Altera, описанный выше. Вообще не являюсь большим спецом в области VHDL, я Verilog люблю smile.gif . Поройтесь по докам Quartus huh.gif
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Feb 24 2005, 10:32
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Цитата(cdg @ Feb 24 2005, 14:14)
Скорее всего добавили инверсию на выходе, это у Altera излюбленный прием, я тоже частенько таким пользуюсь.


Не понял, ведь aclr - это асинхронных сброс. Если на нем всегда 1 - то на выходе будет всегда 0. Не так?

Цитата
Используйте прием от Altera, описанный выше. Вообще не являюсь большим спецом в области VHDL, я Verilog люблю  smile.gif . Поройтесь по докам Quartus  huh.gif


А как прием, описанный выше, применить к вектору, если мне половину бит надо в 1 поставить, а половину - в 0? В доках - голяк, я уже второй день решаю эту весьма тупую проблему.
Go to the top of the page
 
+Quote Post
cdg
сообщение Feb 24 2005, 11:17
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 313
Регистрация: 8-09-04
Из: Таганрог
Пользователь №: 617



Цитата
Не понял, ведь aclr - это асинхронных сброс. Если на нем всегда 1 - то на выходе будет всегда 0. Не так?

Altera примитив DFF имеет инверсные входы асинхронной предустановки excl.gif

У Altera действительно кривовато с использованием altera_attribute констрейнсов. Если не могу обойтись без пред установки, и c составным сигналом косяк (в Verilog без проблем k = {a0, a1, d5 ...}), то можно сделать так (у меня это работает безотказно): вожу сигнал асинхронной предустановки, коим устанавливаю вектор в нужное состояние b'11100011, синтезатор Altera дает предупреждение "not gete push back" и у станавливает нужные триггера в 1 состояние по включению питания, не могу сказать что это документированная возможность, но на протяжении нескольких версий Quartus все работает нормально.
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Feb 24 2005, 11:22
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



А можно как-нибудь в ChipViewer увидеть power-up state? Для проверки, так сказать ...
Go to the top of the page
 
+Quote Post
cdg
сообщение Feb 24 2005, 12:44
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 313
Регистрация: 8-09-04
Из: Таганрог
Пользователь №: 617



Конкретно по ChipViewer, незнаю эти вещи у Altera появились недавно, но для проверки можно посмотреть выходной нетлист, промоделировать наконец.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 20:09
Рейтинг@Mail.ru


Страница сгенерированна за 0.01403 секунд с 7
ELECTRONIX ©2004-2016