Заголовок сообщения: Re: Quartus, MAX+Plus, AHDL, VHDL,Verilog и прочий софт под
Добавлено: Сб сен 18, 2010 16:56:31
Кто подскажет? Нужно реализовать на Verilog T-триггер. Отправлять в гугл не нужно - я там был - ничего не нашёл. Примитив использовать не хочу (мне нужно код Т-триггера вставить в основную программу).
Асинхронные. По событию от внешних датчиков (аналоговых компараторов). ЗЫ: Вы что! Я еще не дошёл до того уровня чтобы проектировать с UFM. Я всего второй день пытаюсь изучить Verilog. Пытался создать в виде схемы - итог был печальным - реверс работал некорректно.
На мегафункции не смотрели когда в виде схемы рисовали. Счётчик прямой/обратный с конфигурируемым на момент создания модулем - lpm_counter. Всё настраивается красиво через MegaWizard.
_________________ Когда уже ничего не помогает - прочтите, наконец, инструкцию. Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII) Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Последний раз редактировалось Kavka Вс сен 19, 2010 19:59:42, всего редактировалось 1 раз.
reg data; @always(posedge clk) /Тут можно написать и negedge и edge. begin if(data == 1) begin data=0; Тут еще какие-нить действия, если нужно. end else begin data=1; Тут еще какие-нить действия. end end
Наверное, можно в первые begin end поставить просто инверсию data, но я не пробовал, т.к кроме изменения data нужно еще и другие действия делать, в зависимости от ее значения.
Заголовок сообщения: Re: Quartus, MAX+Plus, AHDL, VHDL,Verilog и прочий софт под
Добавлено: Вс сен 19, 2010 16:34:27
Во! Спасибо.
И ещё вопросик: Как избавиться в счётчике от импульсов отмеченных красным на картинках (см. вложение)? Нужно чтобы не было этих "фальш-импульсов". Спасибо.
ЗЫ: Третий файл не лезет, придётся так выставить. Создан через "Wisard...".
То что у вас обведено красным - это один раз отсчёт назад (в минус). Т.е. чтобы счёт работал в правильном направлении надо, чтобы сигнал направления был установлен заранее, а у вас control_clock и control_ud изменяются одновременно. вот он и считает, что сигнал (новое значение, 1) о направлении счёта ещё не успел куда надо дойти и использует старое (0). При следующей смене направления счёта у вас происходит один "лишний" отсчёт вперёд, который вы не заметили
_________________ Когда уже ничего не помогает - прочтите, наконец, инструкцию. Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII) Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
А как в этой штуке можно задержать сигнал? LUT кажется не позволит...
Обычно, для ПЛИС схемы делают синхронные, т.е. основывающиеся на тактовом сигнале. Может оказаться, что твой вариант и будет работать на реальном устройстве так как ты хочешь в конкретном варианте разводки сигналов в ПЛИС (сигналы будут успевать доходить куда надо, так как ты это представляешь). Однако при добавлении нового элемента, или при сборке проекта в другой версии софта разводка в ПЛИС может быть построена другая и сигналы будут идти по-другому и не будут успевать доходить. Поэтому все действия производятся по фронту тактового импульса, а время до следующего фронта...эээ.. отдаётся на распространение сигнала.
А задержка на один период тактового сигнала делается просто - D-триггер.
_________________ Когда уже ничего не помогает - прочтите, наконец, инструкцию. Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII) Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения