Easyelectronics.ru

Электроника для всех
Текущее время: 25 май 2017, 13:44

Часовой пояс: UTC + 5 часов



    • Изготовление печатных плат. Примерные цены: 10 штук 2-слоя 100*100mm 8.21$ или около ~470 рублей
    • Создание принципиальных схем и проектирование печатных плат
    • Симуляция работы на spice моделях
    • Просмотр GERBER файлов

Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: Задержка сигнала Verilog
СообщениеДобавлено: 17 фев 2017, 14:14 
Только пришел

Зарегистрирован: 06 апр 2014, 08:04
Сообщения: 13
Здравствуйте, подскажите как реализовать задержку?
Код:
module Delay123 (
   input logic clk,
   input logic in,
   input logic set,
   output logic out
   
   
   
   );

logic [9:0] cnt;


always @(posedge clk) begin
   if (set) begin
      if (cnt == 640) out <= in;
      else begin
         out <= 0;
         cnt <= cnt + 1;
      end
   end
   else cnt <= 0;
end
endmodule

До прихода входного сигнала выход находится в "0", как пришел сигнал "set" отсчитывается 20 мкс и входной сигнал идет на выход. Как сделать так, чтобы счетчик считал 20 мкс по переднему фронту импульса "set" в независимости от его длительности? То есть сброс и начало отсчета только по переднему фронту. Писал "set" в чувствительность блока, но на выходе нули.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Задержка сигнала Verilog
СообщениеДобавлено: 17 фев 2017, 15:47 
Старожил

Зарегистрирован: 19 июн 2012, 14:17
Сообщения: 3436
Set надо сначала синхронизировать в клок домене, потом можно сделать edge detect. Вот кусок кода, учитывай задержку в 3 такта.
Код:
...
reg [3:0] sync;
always @(posedge clk) begin
sync<={sync[2:0], set}; // synchronization
if (sync[3:2]==2'b01) cnt <= 0; // edge detect
else
...



ЗЫ твой код не только задержит сигнал на 640 тактов, но и укоротит его на эти 640 тактов. Классическая задержка без изменения самого сигнала это просто регистр сдвига, на 640ка тактах будет правда довольно ресурсоёмко, по возможности надо делить предварительно клок.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB