Digi 0 20 августа, 2004 Опубликовано 20 августа, 2004 · Жалоба Требуется на ПЛИС сделать проект, который в себе содержит 26-ти разрядный счетчик с выдачей значения по 3х проводной шине (такты, данные, окно) плюс еще немного логики и счетчиков. Требуемый счетчик я сделал так: взял lpm_counter и его выходы завел на мультиплексор, линии мультиплексора перебираются другим счетчиком. Все работает, но потребовалось мне поставить еще один мультиплексор и возникла проблема со свободными ячейками, а без него никак. ПЛИС EPM3064ATC100, пробовал запихнуть в EPM3128, все равно не лезет. Как можно по другому сделать этот счетчик, чтобы сэкономить ячейки ? Пробовал сделать на VHDL (я в нем слабоват) счетчик сделал, а как можно сдвигать полученное значение счетчика ? Как вообще делается сдвиговый регистр на VHDL ? Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Styv 0 23 августа, 2004 Опубликовано 23 августа, 2004 · Жалоба Очень просто: Tx <= TReg(0); TReg<= '1' & TReg(25 downto 1); или TReg<= TReg(0) & TReg(4 downto 1); - это сдвиг вправо, а Tx <= TReg(25); TReg<= TReg(24 downto 0) & '1'; сдвиг влево, где TReg временный регистр, а Тх выход. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
maegg 0 24 августа, 2004 Опубликовано 24 августа, 2004 · Жалоба --например на AHDL --Стартстопный 24 разрядный счетчик --с последовательной выдачей данных SUBDESIGN shft_count ( clk : INPUT; --вход клока для счета и для сдвига enashft, enacount : INPUT; --разрешения сдвига и счета ds : OUTPUT; ) VARIABLE count[23..0] : DFF; BEGIN count[].clk = clk; IF enashft THEN count[23..1].d = count[22..0].q; count0.d = GND; ELSIF (enacount ) THEN count[].d = count[].q + 1; ELSE count[].d = count[].q; END IF; ds = count7.q; END; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
maegg 0 24 августа, 2004 Опубликовано 24 августа, 2004 · Жалоба Извиняюсь конечно ds = count23.q; а если нужны раздельные клоки для счета и сдвига лучше выработать строб на 1 такт глобальной частоты. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Digi 0 24 августа, 2004 Опубликовано 24 августа, 2004 · Жалоба Спасибо за ответы. Пока сижу и обдумываю. Свой проект пока сделал на LPM... я просто разбил свой 26 разрядный счетчик на два 13 ти разрядных и все влезло. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться