[an error occurred while processing this directive]
|
Auto packed register подразумевает реализацию независимой комбинаторной функции и регистра, на который поступает сигнал с входа логического элемента мимо таблицы перекодировки. Таблица перекодировки и регистр используют разные выходы логического элемента, так что они вообше не связаны - в том-то и фишка упаковки.
Второе. Семейство? Версия Quartus? У меня дома до сих пор старый QII4.2 и вот для Cyclone
module vt
(
so,si,a,clk
);input [15:0] a,si;
output [15:0] so;
input clk;reg [15:0] so;
always @(posedge clk)
begin
so <= si + a;
endendmodule
дает честные 16LCELL.
Как-то раз у меня было, что тестовый проект в виде одного счетчика на AHDL никак не хотел ложиться в одну ячейку. Добавил логики на вход, выход - и в глубине проекта стало все нормально.
Или, может, Вы чего-то не договариваете и a или si у вас формируются так, что Quartus считает, что лучше слить сумматор и логику их формирования, чем задействовать арифметический режим логических элементов? Тогда вопрос - у Вас цепи переноса задействуются? То есть, собственно, арифметический режим используется?
Еще - я в одной из старых версий Quartus столкнулся с тем, что проект из одного счетчика не ложился как надо - проблема была аналогичная. Когда логики вокруг накидал из интереса - стало все нормально.
E-mail: info@telesys.ru