Перейти к содержанию
    

Проект верхнего уровня. Делитель и счетчик

Здравствуйте, форумчане!

Вынужденно обращаюсь, так как уже не знаю в каком направлении думать.

Задание: последовательно подключить делитель и счетчик.

Сделал: делитель, счетчик, подключил их к проекту верхнего уровня.

Требуется, чтобы сигнал с выхода делителя поступал на вход счетчика, и вот тут загвоздка. Аналогичная прога работает, а моя нет.

Вот текст:

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;

entity Dev_Count is
port
(
clkDevDC: in std_logic;
--clkCntDC: in std_logic;
dvdrDC: out std_logic;
rstDC: in std_logic;
setDC: in std_logic;
outcountDC: out natural
);
end Dev_Count;

architecture Behavior of Dev_Count is

component Devider is
port
(
clk: in std_logic;
dvdr: out std_logic
);
end component;

component Counter is
port
(
clk2: in std_logic;
rst: in std_logic;
set: in std_logic;
outcount: out natural
);
end component;

signal Out_Devider: std_logic;

begin
Component_Devider: Devider port map(clk => clkDevDC, dvdr => Out_Devider);
Component_Counter: Counter port map(clk2 => Out_Devider,
                                    outcount => outcountDC,
    
                                    rst => rstDC,
                                    set => setDC
                                    );
end Behavior;

Проблемное место: clk2 => Out_Devider. Если вместо Out_Devider ставить clkDevDC, то нормально. Но меня это не устраивает,

тама нужно чтобы "поделенный" сигнал с делителя, входил в счетчик.

Среда Квартус.

Заранее спасибо.

Изменено пользователем des00

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а что значит не работает? дает варнинг , не сентизиться или работает не так?

вообще с клоками аккуратно надо, иногда надо явно написать что вы хотите именно это

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Когда Component_Counter: Counter port map(clk2 => clkDevDC,

все нормально, а когда

Component_Counter: Counter port map(clk2 => Out_Devider,

говорит

Error: Can't pack LABs

Error: Can't place node "dvdrDC" of type max_io

Error: Can't place node "devider:Component_Devider|cnt[0]" of type max_mcell

Error: Can't place node "devider:Component_Devider|cnt[1]" of type max_mcell

и т.д., всего 161 еррор.

Вот в том то и дело, что клоки.

Девайдер должен подлеить частоту, и эта поделенная частота должна быть входной для счетчика.

Out_Devider и есть та самая поделенная частота, она из девайдера как сигнал должна входить в счетчик.

Если как в первой строке, счетчик работает как положено, даже резет и сет работает. Но, повторюсь, именно

проблема с этим сигналом Out_Devider.

Изменено пользователем kir_vik

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На всякий случай прикрепляю проект.

Назначил CPLD большего объема(max7256) - компиляция прошла на ура. Видимо на может уместить в 128 макроячейках всю трассировку.

Архив прикладываю

Dev_Count.zip

PS старайтесь не назначать пути русскими буквами

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Архив прикладываю

Dev_Count.zip

PS старайтесь не назначать пути русскими буквами

Проблема с архивом. Там всего один файл Dev_Count.qar, Квартус предлагает восстановить, но не получается.

Вы видимо не все в архив кинули.

Про пути понял.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

gar- архив квартуса, позволяет хорошо сэкономить в объеме.

Перекомпилил в веб эдишн 9.0 - может поможет (раньше был 9.1 полным квартусом)

Dev.zip

Dev_Count_1.zip

PS. Попробовал скачал свой архив (постом ранее), открыл в вебэдишн 9.0 - компилируется. Что у Вас не получилось не знаю

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Второй вариант сработал, который Dev.zip. Спасибо, Александр. Как разберусь, напишу.

 

Поставил Стратикс2. Компиляция прошла без проблем. Симуляция тоже без проблем, но там какая-то фигня, надо разбираться. Еще Вы подкорректировали программку, вникну. Но там кириллица не отображается, если можно в тхт скиньте, есле что-то важное в коментах. В общем завтра. Еще раз спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проблемное место: clk2 => Out_Devider. Если вместо Out_Devider ставить clkDevDC, то нормально. Но меня это не устраивает,

тама нужно чтобы "поделенный" сигнал с делителя, входил в счетчик.

Среда Квартус.

Заранее спасибо.

В детали кода не вникал, но не вижу проблем подключить выход делителя (выход триггера FF1.Q) на вход счётчика (вход FF2.С).

При этом правда возникают нюансы которые надо объяснить тулзе (я не вижу что как-то описан generated clock)... и не факт что конкретная серия ПЛИС так сможет...

 

Вопрос тут только в одном - зачем это лепить, а не воспользоваться входом FF2.СE?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Еще Вы подкорректировали программку, вникну. Но там кириллица не отображается, если можно в тхт скиньте, есле что-то важное в коментах. В общем завтра. Еще раз спасибо!

Коментарии только ваши. Из добавленного - у вас в devider'е есть generic, а в головном проекте не был прописан generic map. Его и добавил. Для работы хватило и max7256 вместо max7128. Пожалуйста.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос тут только в одном - зачем это лепить, а не воспользоваться входом FF2.СE?

На самом деле это контрольная работа. Первая прога на vhdl. Поэтому делаю ее в рамках лекционного и лабораторного материала.

В целом на форум обращаюсь в крайнем случае, когда ну никак. Так что не ругайтесь.))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На самом деле это контрольная работа. Первая прога на vhdl. Поэтому делаю ее в рамках лекционного и лабораторного материала.

В целом на форум обращаюсь в крайнем случае, когда ну никак. Так что не ругайтесь.))

не посмотрел что сообщений только 6...

...правильнее завести выход делителя на СE счётчика, а СК входы делителя и счётчика соединить вместе...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так се сигнал надо в этом случае делать однотактовым, иначе за пол периода он насчитает... А главное что если описать что счетчик меняеться по деленному сигналу, то во всяком случае ксалинкс так и разводит не на клок, а на се

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В общем проблема разрешилась. Дело в том, что Квартус по умолчанию ставил самый простой вариант камня семейства 7000АЕ. Таким образом не хватало ячеек (элементов). После установки наиболее продвинутой версии семейства 7000 все откомпилировалось. А в конечном итоге и все заработало как положено.

Всем большое спасибо за помощь!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...