• Объявления

    • admin

      Просьба всем принять участие!   24.11.2017

      На форуме разыгрывается спектроанализатор Arinst SSA-TG LC (цена 18500 руб). Просьба всем перейти по ссылке ниже и принять участие!
Braimik

За одно нажатие кнопки на выход поступает 15 тактовых импульсов

12 сообщений в этой теме

Braimik    6

Необходима помощь в реализации . НА входе разрешающий сигнал то бишь нажатие однократное кнопки. и тактовый сигнал, на выходе логическая единица пока на выходе идут тактовые импульсы в количестве 15 шт. то есть я нажал, и происходит цикл повторений тактовых импульсов на выходе равных тактовой сигналу. и одновременно логическая единица которая по времени столько же сколько и тактовые импульсы пока они не закончатся. не представляю как это реализовать

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


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

Быстрый заказ печатных плат

Полный цикл производства PCB по низким ценам!

  • x
    мм
Заказать Получить купон на $5.00
v1ct0r    212

вы все таки сначала определитесь

у вас на выходе "1" или 15 тактовых импульсов

или у вас два выхода

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


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

Да элементарно же делается. Ты напиши модуль, а что не получится - подскажем.

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


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

На какой элементной базе собираетесь реализовать сиё устройство?

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


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

триггер  срабатывает от кнопки и выдает "1"   и разрешает работу счетчика до 15 . На 15 импульсе триггер  от счетчика сбрасывается в "0" и запрещает и обнуляет счетчик .  

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


Ссылка на сообщение
Поделиться на других сайтах
Vascom    605
49 минут назад, солар сказал:

На какой элементной базе собираетесь реализовать сиё устройство?

Мы в разделе ПЛИС, так что тут без вариантов.

Реализовывается на Verilog в пару десятков строк.

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


Ссылка на сообщение
Поделиться на других сайтах
Braimik    6
Ты напиши модуль, а что не получится - подскажем.

Я только щас дошел до этого модуля, по факту надо около 100 импульсов, вот дальше писать незнаю,
" module step ( clk, instep, outstep)
Input clk, instep;
Output outstep;
Always @( posedge clk)
Begin if " а вот дальше незнаю как писать,
Получается один раз нажал кнопку , и на выходе должно 100 импульсов выйти с такой же частотой как и клок


Отправлено с моего HTC Desire 630 dual sim через Tapatalk

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


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

Ещё через квартал нужно будет по факту N импульсов. Стало быть необходимо на вход установить задатчик количества импульсов.

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


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

В коде просто менять это значение и все, Это программа по количеству импульсов все расчитается, и все, далее изменения не будет в ней

Отправлено с моего HTC Desire 630 dual sim через Tapatalk

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


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

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

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


Ссылка на сообщение
Поделиться на других сайтах
Meteor77    10
11 час назад, Braimik сказал:

Я только щас дошел до этого модуля, по факту надо около 100 импульсов, вот дальше писать не знаю,

1) нужен генератор тактов, которые будет считать счетчик (вряд ли там мегагерцы, если для шд (о котором я подумал) - не более 500 Гц.

2) делается детектор фронта для определения нажатия кнопки. Это буквально два последовательных триггера, по их состоянию 01 или 10 в счетчик записывается значение из переключателей (или константа) По другому состоянию 10 или 01 разрешается работа счетчика на вычитание.

3) собственно сам счетчик, который ждет когда в него запишут ненулевое значение и считает до нуля. После очистки - ждет запись.

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


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

Например можно сделать вот так (число импульсов на выходе задаётся параметром CNT_VAL не более 127, но можно завести и порт для задания на лету):

module pulse_sequence (
    clk,
    rstn,
    start,

    p_seq
);

//Set number of impulses
parameter CNT_VAL = 7'd11;

//Ports
input   clk;
input   rstn;
input   start;
output  p_seq;

//Regs and wires
reg [7:0]   cnt;
wire        cnt_stop;
reg [1:0]   start_d;
wire        start_en;

//Detecting rise front of START signal
always @(posedge clk)
if (!rstn)
    start_d <= 2'b0;
else
    start_d <= {start_d[0],start};

assign start_en = start_d[0] & (~start_d[1]);

//Down counter
assign cnt_en = |cnt;

always @(posedge clk)
if (!rstn)
    cnt <= 8'b0;
else if(start_en)
    cnt <= CNT_VAL*2;
else if(cnt_en)
    cnt <= cnt - 7'b1;

//Output impulses
assign p_seq = cnt[0];

endmodule

И тестбенч к нему:

`timescale 1ns/1ps

module test();

reg clk;
reg rstn;
reg start;
wire p_seq;

initial
begin
    clk     = 0;
    rstn    = 0;
    start   = 0;
end

always
#10 clk= ~clk;


pulse_sequence pulse_sequence_uut(
    .clk    (clk),
    .rstn   (rstn),
    .start  (start),

    .p_seq  (p_seq)
    );

integer i;

initial
begin
$dumpfile("out.vcd");
$dumpvars(-1, test);

rstn <= 0;

@(negedge clk);
rstn <= 1;
for(i = 0; i<3; i = i+1) @(posedge clk);
#15;
start <= 1;
for(i = 0; i<3; i = i+1) @(posedge clk);
start <= 0;
for(i = 0; i<300; i = i+1) @(posedge clk);

$finish();
end
endmodule

 

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

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


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

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Похожие публикации

    • Гость Антон
      Автор: Гость Антон
      Доброго времени суток. Нужна помощь с программированием простеньких схем цифровой схемотехники. Нужно на 2 языках написать код+tb. Всего схем около сотни. В них входят мультиплексоры, демультиплексоры, декодеры, счетчики. Естественно не за бесплатно. Это пример самой сложной ( по моему субъективному мнению) схемы.
      По всем вопросам и предложениям можете написать мне на почту tarasov123789@mail.ru
       


    • Автор: Rine
      process (int,b) begin if (int'event and int='1') then if (b="01") then x<='1'; b1 <= "00"; else b<=b+1; x<='0'; end if; end if; end process; ;
       
      Здравствуйте! Не подскажите как правильно понять этот кусок кода...
      В списке чувствительности сигнал int он периодически меняется, по его изменению выполняется код ниже... Но непонятно зачем в список занесли b, этот сигнал меняется только в этом коде и нигде больше...  К примеру изменился в коде b и процесс выполняется еще раз, или изменение сигналов чувствительности во время выполнения процесса не активируют выполнение процесса еще один раз?
    • Автор: rekrut1993
      Добрый день всем!
       
      Говорю сразу, что я начинающий разработчик FPGA и опыта огромного нет, а эту задачу мне дали в качестве курсовой работы. Поэтому, заранее говорю спасибо всем откликнувшимся!
      Задача состоит вот в чем:
      Есть FPGA Altera Cyclone IV на которой нет сетевого модуля под Ethernet, но есть сетевой модуль Arduino ENC28J60.
      Стоит задача написания драйвера для взаимодействия сетевого модуля Adruino и ПЛИС через протокол SPI, причем с возможностью отсылать данные(по Ethernet) на плис с компьютера(как я понимаю на стороне компьютера должен быть написан клиент для соединения с модулем Adruino), к примеру, буфер размером 64Кб(Но в идеале размер буфера может регулироваться на стороне клиента) и получения уведомления от ПЛИС о принятии этого буфера. Почитал про протокол SPI, теория понятна. Понятно как это должно работать(на основе двух 8-битовых сдвиговых регистров), понятно , что ПЛИС будет выступать в качестве Master-устройства. а Arduino в качесвте Slave-устройства. Понятно как их подсоединить (4 провода: MISO, MOSI, SCLK и SS(slave select)). Есть так же идея реализовать на стороне ПЛИС(Master-устройство) 3 функции на языке Verilog: 1 - функция инициализации, которая будет говорить модулю Adruino о том, что сейчас будут посылаться данные с компьютера, 2 - функция чтения одного байта с сдвигового регистра ардуино, 3 - функция записи одного байта в сдвиговый регистр ардуино.  Но а что тогда должно быть на стороне Arduino(Slave-устройство)? На каком языке и что нужно там описать? С пониманием небольшие трудности. Так же не понятно как это все должно взаимодействовать с компьютером? Какую библиотеку использовать для отсылки данных на модуль Arduino? Использовать сокеты? Подойдёт ли Boost asio или может что-то другое?

      Подскажите пожалуйста куда мне двигаться дальше и с чего начать вообще.
      Фотографии ПЛИС и сетевого модуля прилагаю.


    • Автор: grigorie
      Нужен срочно спец по плисам, желательно понимающий в СВЧ. Имеются образцы радиодальномеров, которые выдают дальности друг для друга. Мы готовимся сделать новую партию, но некоторые компоненты устарели и уже не выпускаются. Есть описание дальномеров, ТЗ и дополнительные документы. Нужно немного подправить ТЗ, по которому будут выпущены новые радиодальномеры и их надо запрограммировать. Григорий 8-911-196-88-29, принимаю звонки в выходные тоже, gvandri21@gmail.com  СПБ
      TZ_REM.doc
      БРНЗ_РЭМ_РД_1.doc
      Краткое описание дальномеров.doc
    • Автор: MaDiEQ
      При проектировании устройств какие конструкции языка VHDL лучше использовать ?
      1 State machine организовывать как переменную со своим типом state1, state2 ... или можно создать variable state: natural range 0 to (конечное состояние):=0; Какая конструкция будет занимать меньше ресурсов?
      2 Операторы ветвления if else или case?
      3 Если нужен переход по изменению сигнала wait или опять же if?
      4 Как использовать Component / port map? использую только в тестбенче но возможно так вот кодом соединять провода нескольких файлов vhd? хотелось узнать
  • Сообщения

    • цепью OC_I, она же красным цветом на схеме Что касается дополнительного, то тут надо сказать, что можно добавить керамические конденсаторы для сглаживания пульсаций и иголок, СХ конденсатора на входе, о котором писал уважаемый Falanger, в топовых блоках он бывает, его цель вместе с входным дросселем направлена на подавление электромагнитных импульсов. Диодный мост входной, который состоит из слабых диодов, желательно заменить на сборку, об этом тоже писал Falanger. Далее всё это можно упаковать в корпус, он это уже тема другого раздела.
    • Всегда  прежде чем писать,надо  проводить лабораторную,практическую. Ведь это займёт 20 минут. Ни когда не превысит ток через кеноторон при зарядке  конденсатора,хоть какой ёмкости,потому что сам кенотрон,это высокоомный выпрямитель саморегулируемый. Вот замер тока. Конденсатор 220 мкф,дроссель и опять 150 мкф. Усилитель однотакт на 6П6С. Кто то запустил сказку о  том что 4 мкф в паспорте кенотрона написано и больше ёмкость применять нельзя. Этот паспорт на кенотрон писался в лохматые 30 или 40е года,когда 4 мкф конденсатор являлся самым ходовым,а 10-20 мкф  считался уже большой ёмкости, в те года когда дроссель стоил дешевле конденсатора 20 мкф.А вот  тумблер  включения Анода  ставить нельзя никогда  в кенотронном выпрямителе. Потому что прогретый кенотрон уже низкоомным  выпрямителем становится и импульс тока  первй после включения  превышает 1,5-2 ампера. Хотя он тоже длится всего один-два полупериода, но может вывести из строя кенотрон.      
    • - мне гугл показал сразу кучу схем подключения этого прибора. Это он не всем их показывает, что ли?   - можно сделать как угодно, но, если у вас возникает такой вопрос - то не мешайте в одну кучу все. Сделайте все отдельно.
    • Пожалуйста , проверьте мое художество (от слова "худо") .Я не уверен что обошлось без косяков.Наверное было бы проще применить стрелочные приборы . И вопрос еще по КРЕН 5 - радиатор нужен ? А для КТ 837? ЗУ автомат ПРОЭКТ 2.lay6
    • Правильный вопрос - насколько эффективен будет мост в стоуне и кводе. Ответ - ровно на величину глубины этой ШП ОООС.   Что это такое? В сравнении с чем например?  С примерно 1, 2 кГц до почти 50 кГц, - это сильно узко, или не? Или сравнение с  ОООС? Я уже упоминал что это ПРИНЦИПИАЛЬНО разные способы линеаризации и сравнивать их в лоб - некрасиво, как впрочем и смешивать.   То же самое что вы именуете "площадь усиления". Строго говоря, речь идёт об одном и том же, Произведении усиления на полосу, которую можно выражать характеристикой "скорость", или как вы - "площадь..."   Это ООСный подход снова)) Она и так МАКСИМАЛЬНО эффективна в полосе баланса моста. Особенно вверху, практически 50 кГц если конечно позволяет скорость девайсо) В отличии от ОООС, эффективность которой с ростом частоты, машет всем кепочкой. ЗЫ. А сопротивление нагрузки у Квода - ПРИНЦИПИАЛЬНО изолированно от входа, и совершенно правильно - не причём. Т.е его опосредованное влияние не выходит за пределы узла коррекции, а значит не породит ни интермод ни фазовой грязи... Эт, точно! )))
    • Модераторы, будьте добры, перенесите информацию касательно усилителя Зуева в соответсвующую тему, а то она здесь затеряется.
    • это все понятно. а чем ты достигаешь стабилизацию выходного тока при изменении напряжения