[an error occurred while processing this directive]
Ответ:
(«Телесистемы»: Конференция «Программируемые логические схемы и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено SAZH 06 октября 2005 г. 11:54
В ответ на: Простите дурака еще раз. А почему ругается квартус: отправлено slava2005 05 октября 2005 г. 19:08

Разберем на примере семейства Асех 1 вариант а:

module ct_a
(
input clock,
output reg out
);

reg [7:0] out1;

always @(posedge clock)
begin
out1 = out1 + 1'b1;
out = out1[7];
end

endmodule

Посмотрите в верхнем углу проекта навигатора плюсик. Задействована мегафункция счетчика и сумматора, используется 16 логических элементов. На то, что Вы хотели сделать, вообще не похоже.
Вариант b
module ct_a
(
input clock,
output reg out
);

reg [7:0] out1;

always @(posedge clock)
begin
out = out1[7];
out1 = out1 + 1'b1;
end

endmodule

Уже лучше. Задействована мегафункция счетчика и используется 9 логических элементов. Остается спросить, зачем триггер.
Перестановка дает разную реализацию. Это свойство блокирующего процедурного присваивания переменной. (В варианте а out1 присваивается out1 +1, после этого в out присваивается out1[7].
В варианте б наоборот.
Чтобы об этом не думать вариант 3.
module ct_a
(
input clock,
output out
);

reg [7:0] out_a;

always @(posedge clock)
begin
out_a <= out_a + 1'b1;
end

assign out = out_a[7];

endmodule
Нормальный счетчик. Out_a будет присвоено новое значение через дельта Т. Оператор неблокирующего процедурного присваивания не блокирует выполнение следующих за ним операторов. Синтезатор игнорирует дельта T, но правильно интерпретирует Вашу мысль ( в одном процессе в том числе)
Никогда не используйте имена типа out1[7:0]. Это эквивалентно out[17:10]. И если у Вас где-то в проекте есть out[31:0], долго будете ошибку искать.
Скачайте с сайта XILINX xst.pdf (синтезабельное HDL описание библиотечных элементов)
Лучше этого документа для обучения я еще не видел.


Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru