реклама на сайте
подробности

 
 
> Источник импульсов
Vehfl
сообщение Dec 27 2012, 11:37
Сообщение #1





Группа: Участник
Сообщений: 14
Регистрация: 9-11-12
Пользователь №: 74 305



Не опытен в разработки на ПЛИС и поэтому прошу совета.

Мне нужно разработать источник импульсов такого вида:

Прямоугольный импульс длится время t, следующий такой импульс появляется через 19*t. t=6 нс.



Пытался сделать такой генератор с помощью блоков System Generator в Simulink.



Блок counter считывает содержимое памяти (вектор 100000000000000000000) с заданной частотой. Импульсы выводил на пин.
После загрузки получившейся прошивки на плату измерительный прибор показывает не то что надо.

Возможно я не правильно реализую то, что мне нужно? Или может выводить на пин не целесообразно? Как лучше сделать такой генератор?

Сообщение отредактировал Vehfl - Dec 27 2012, 11:40
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
doublekey
сообщение Dec 27 2012, 15:18
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 71
Регистрация: 28-01-08
Из: Zelenograd
Пользователь №: 34 503



Код
module top (
  input clk,    // 50 MHz clock input.
  input rst,

  output reg imp // Signal pulse.
  );
  
  parameter SYS_CLK_MHZ     = 50;  // System clock frequency, MHz.
  parameter PULSE_WIDTH_NS  = 200; // Pulse width, ns.
  parameter PULSE_PERIOD_US = 100; // Pulse period, us.
  
  localparam PULSE_WIDTH = (SYS_CLK_MHZ * PULSE_WIDTH_NS) / 1000; // Pulse width, clock cycles.
  localparam PULSE_PERIOD = (SYS_CLK_MHZ * PULSE_PERIOD_US); // Pulse period, clock cycles.
  
  localparam PULSE_PERIOD_W = $clog2(PULSE_PERIOD); // Pulse period counter width.
  
  reg [PULSE_PERIOD_W - 1 :0] period_cntr; // Pulse period counter.
  
  always_ff @(posedge clk, posedge rst)
  if (rst)
    begin
      period_cntr <= '0;
      imp <= '1;
    end
  else
    begin
      period_cntr <= period_cntr + 1;
      if (PULSE_PERIOD == period_cntr) period_cntr <= '0;
      if (PULSE_WIDTH == period_cntr)  imp <= '0;
      if (PULSE_PERIOD == period_cntr) imp <= '1;
    end

endmodule
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 4th July 2025 - 22:48
Рейтинг@Mail.ru


Страница сгенерированна за 0.01359 секунд с 7
ELECTRONIX ©2004-2016