Braimik

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

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

Braimik    6

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

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


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

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

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

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

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


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

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

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


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

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

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


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

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

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


Ссылка на сообщение
Поделиться на других сайтах
Vascom    644
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

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


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

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

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


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

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

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

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


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

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

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


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

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

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

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

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

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


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

Например можно сделать вот так (число импульсов на выходе задаётся параметром 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

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


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

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

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

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

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

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

Войти

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

Войти сейчас


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

    • Автор: zontoo
      Нужен программист ПЛИС для создания прошивки шагового двигателя
      чип xilinx (драйвер и программатор предоставлю).
      Начать нужно немедленно.
      Укажите примерную стоимость, скайп, опыт по ПЛИС. 
      Пишите на почту yanbotalov (собака) gmail.com с резюме и портфолио по ПЛИС
    • Автор: Brender3000
      Санкт-Петербург.  По цене договоримся легко, но желательно (если с пересылом) такое кол-во сразу прикидывать, чтобы хотя бы примерно, ну от 500 р , Просто из-за 200 р. на почту лень бегать и там еще очередь стоять. Фотки нужных МС пришлю заранее естественно, большая часть в кучу в аттаче.
      Связь или здесь в лс или:
      Ватсап +79117214333
      Вконтакт  https://vk.com/the_working_dead
      Список:
      ====================================
      SSM2166S - усилитель микрофона с настройкой компрессии и подавлением шумов, корпус SOIC-14
      http://www.analog.com/media/en/technical-documentation/data-sheets/SSM2166.pdf
      INA128UA - высокоточный инструментальный ОУ с низким потреблением 700мкА,питание ±2.25 V to ±18 V, корпус SO-8
      http://www.ti.com/lit/ds/symlink/ina129.pdf
      A3964SB - драйвер шагового движка
      https://media.digikey.com/pdf/Data Sheets/Allegro PDFs/3964.pdf
      740L600 - оптопара, TTL-буфер
      http://213.114.131.21/_pdf/74_TTL/74OL6000.pdf
      AQW213EH - сдвоенная оптопара
      https://ru.mouser.com/ds/2/315/panasonic electric works_aqw-dip-current-limiting--1196835.pdf
      HT9200A - генератор тонального сигнала/2.5V~5.5V/3.58MHz/Serial/8 DIP/
      http://www.farnell.com/datasheets/79214.pdf
      RPM6938 - ИК приемник
      https://www.mouser.com/ds/2/348/rpm6900-313874.pdf
      IDT7202LA - асинхронный FIFO на полевиках 1024x9
      https://www.mouser.com/ds/2/464/IDT_7200-7202_DST_20171127-880469.pdf
      PCF7942AT - транспондер и контроллер бесконтактного досутпа
      http://www.ic72.com/pdf_file/p/70131.pdf
      VB027 - высоковольтный драйвер катушек зажигания
      http://pdf.datasheetcatalog.com/datasheet/stmicroelectronics/5589.pdf
       
      SP706-EP - низкопотребляющий контроллер напряжения 4.40V DIP-8
      http://pdf.datasheetcatalog.com/datasheet/sipex/SP708CN.pdf
      DS1013S - 3 линии задержки
      http://www.phenix.bnl.gov/phenix/WWW/muon/muid_fee/whitus/data_sheets/DS1013.pdf
      TCM38C17IDL- 4 канальный ИКМ
      https://media.digikey.com/pdf/Data Sheets/Texas Instruments PDFs/TCM38C17IDL.pdf
      LF398AN - усилитель выборки и хранения
      http://www.ti.com/lit/ds/symlink/lf398-n.pdf
      MAX7408 - эллиптический фильтр низких частот 5 порядка
      https://datasheets.maximintegrated.com/en/ds/MAX7408-MAX7415.pdf
      LXT6234QE - мультиплексор, корпус PQFP-100
      http://www.ic72.com/pdf_file/l/151749.pdf
      2N4012 - n-p-n биполярный транзистор
      http://kazus.ru/datasheets/pdf-data/1946963/NJSEMI/2N4012.html
      M27V160-100FX1 - 16 Mbit (2Mb x8 or 1Mb x16) EEPROM корпус FDIP42WB (с окошком)
      https://ru.mouser.com/ds/2/389/stmicroelectronics_cd00001045-1204542.pdf
      MAX9388EUP - мультиплексор, корпус TSSOP-20
      https://datasheets.maximintegrated.com/en/ds/MAX9386-MAX9388.pdf
      PGA204BU - инструментальный ОУ с настройкой КУ, SOIC-16
      http://www.ti.com/lit/ds/symlink/pga204.pdf
      MAX211EWI -  Трансивер RS-232, SO-28
      https://datasheets.maximintegrated.com/en/ds/MAX200-MAX213.pdf
      ALTERA MAX EPM9320ALC84-10 - ПЛИС
      https://www.altera.com/en_US/pdfs/literature/ds/archives/m9000.pdf



    • Гость Антон
      Автор: Гость Антон
      Доброго времени суток. Нужна помощь с программированием простеньких схем цифровой схемотехники. Нужно на 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 или может что-то другое?

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


  • Сообщения

    • Ребята! Может вернуться немного назад от конкретики и выяснить, 1. имеет ли смысл подавать на кулер напряжение 0-5 вольт, от которых он гарантировано не запустится, будет дергаться и рассеивать тепло. Или (как мне кажется) напряжение 0-5 вольт на кулер идти не должно и старт должен быть напряжением, которое гарантировано запустит кулер. Думаю при постепенном повышении напряжении на кулере от нуля, он и запускаться каждый раз будет при разной температуре. Момент страгивания даже от температуры будет зависеть. 2. Имеет ли смысл управление одним-двумя-тремя 80-120 мм кулерами с помощью ШИМ или от него минусов больше чем плюсов. А вот решив эти два вопроса сразу станет понятно какая схема лучше. Я (почему-то) решил, что не нужно подавать на кулер напряжения при которых он не может вращаться. Ну и поначитался какое плохое и неэкономичное аналоговое регулирование и какой супервеликолепный режим шим. В результате из нескольких десятков разных схем под данные условия подошли только несколько .
    • Новый вариант движка глючный и не позволяет этого делать (переносить посты в другие темы). Поэтому пускай они откроют новую тему и там разбираются с проблемой, а здесь я этот оффтоп поудаляю.
    • например, Электрон-701. И там же находим 6п41с, установленную горизонтально.
    • Вот моя схема, сделал несколько лет назад для ЛБП на TL431 на этом форуме и с тех пор успешно трудится. При включении моторчик ненадолго разгоняется до максимума, чтобы " выдуть пыль " и затем, если превышен установленный температурный порог,  набирает обороты пропорционально температуре. Если транзистор поставить на радиатор, то кулер можно ставить и мощнее. Имеется также индикатор температуры на двухцветном светодиоде, который плавно меняет цвет от зелёного до красного по мере нагрева.  
    • "Начальный бросок" нужен, чтобы стронуть кулер с места именно при подаче питания. После чего, пока охлаждаемый им узел остается холодным, он крутится на самых минимальных оборотах, которые увеличиваются при нагреве. По крайней мере это касается этой ПРОСТОЙ схемы, о которой я выше вел речь. Но зачем делать просто, если можно сделать сложно?
    • И не одной из промышленного. Если разработчик\производитель лампы указал : рабочее положение вертикальное\баллоном вверх-как думаете,кто-то из разработчиков промышленной\военной техники решит внести отсебятину ?
    • Пару тех колонок возьмите и будет вам стерео или даже двойное моно. че проблему на ровном месте раздувать?