Cariad

Помогите С Bidir В Quartus

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

Cariad    0

Доброго всем дня. Есть вопрос по поводу третьего состояния буфера. как бы я не крутил и не переписывал код, при просмотре работы модуля в ModelSim третьего состояния нет, и появляется неопределенное состояние при работе модуля на выход. Книжки, форумы читаю, но это первое знакомство с ПЛИС, до этого только с МК работал, поэтому прошу не бить сильно)). Но очень буду рад тыканью на ошибки.

Ps:то что регистр сам на себя идет....это пока временно, по факту будет регистр на чтение и на запись.

Код модуля:

module data_in_out(
input wire IOR,
input wire IOW,
input wire regIN,
inout DATA,
output reg q);

always @ (negedge IOR)
begin if (regIN==1'b1)
q<=DATA;
end

reg EN_W;
always @*
EN_W=(!IOW&&regIN);

assign DATA= EN_W ?q :1'bZ;

endmodule


Код testbench:

`timescale 1 ns/ 1 ns
module data_in_out_vlg_tst();
// constants										  
// general purpose registers
// test vector input registers
reg treg_DATA;
reg IOR;
reg IOW;
reg regIN;
// wires											  
wire DATA;
wire q;

// assign statements (if any)						  
assign DATA = treg_DATA;
data_in_out i1 (
// port map - connection between master ports and signals/registers  
.DATA(DATA),
.IOR(IOR),
.IOW(IOW),
.q(q),
.regIN(regIN)
);
initial												
begin												  
treg_DATA=1'b0;
IOR=1'b1;												  
IOW=1'b1;
regIN=1'b0;
#50
treg_DATA=1'b0;
IOR=1'b1;												  
IOW=1'b1;
regIN=1'b1;
#10
treg_DATA=1'b1;
IOR=1'b1;												  
IOW=1'b1;
regIN=1'b1;
#10
treg_DATA=1'b1;
IOR=1'b0;												  
IOW=1'b1;
regIN=1'b1;
#50
treg_DATA=1'b0;
IOR=1'b1;												  
IOW=1'b1;
regIN=1'b0;
#50		  
IOR=1'b1;												  
IOW=1'b1;
regIN=1'b1;
#10
IOR=1'b1;												  
IOW=1'b0;
regIN=1'b1;
#50
IOR=1'b1;												  
IOW=1'b1;
regIN=1'b0;
#50
IOR=1'b1;												  
IOW=1'b1;
regIN=1'b1;
#50
IOR=1'b0;												  
IOW=1'b1;
regIN=1'b1;
#200 $finish;		
end													
endmodule

График ModelSim и схема блока прилагается

post-90694-0-68880200-1437422734_thumb.jpg

post-90694-0-14877100-1437422780_thumb.gif

Изменено пользователем admin
Тэг CODE для кого?

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


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

Неопределённое состояние тут возникает из-за того, что на двунаправленный порт DATA ты одновременно подаёшь сигнал снаружи и изнутри. То есть изнутри у тебя идёт z-состояние, а снаружи 1. Сделай в этот момент снаружи тоже z и получишь третье состояние.

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

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


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

Получается в железе все будет нормально? При приёме получим на выходе DATA состояние z?

Просто как я себе все это представляю при приеме данных tri-state должен находится в состоянии z а на шине будут получаемые данные. А при записи шина находится в состоянии z.

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


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

Да, в железе должно быть нормально.

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


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

Найдите миллионы труднодоступных

электронных компонентов

Cariad    0

Тогда спасибо. Дома попробую переписать testbench. Как то я не подумал что нужно работу самой шины тоже симулировать. Вечером напишу про результат.

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


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

Проверил после переписки testbench все нормально работает. Благодарю за помощь

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


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

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

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

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

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

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

Войти

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

Войти сейчас


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

    • Автор: 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 и процесс выполняется еще раз, или изменение сигналов чувствительности во время выполнения процесса не активируют выполнение процесса еще один раз?
  • Сообщения

    • Да даже если на обычном светодиоде, всё делается намного проще: Схема из Интернета. Но лично мне больше по душе такая: Из-за ее повторяемости.
    • Да, я уже неоднократно встречал такую максиму - "Дорогущие усилители - развод для "богатеньких буратин", человек-же думающий получает истинное удовольствие от прослушивания винила на "Молодёжном". Что касается критерия качества звучания, то он  субъективен, с этим вряд-ли кто поспорит.  Можно, конечно, измерить АЧХ, звуковое давление в точке прослушивания, КНИ.  А как измерить ту самую пресловутую "широту сцены", коя, как ни странно, наличествует в аппаратах "для развода буратин"?
    • Любая, долгопроработавшая П2К как раз так себя и будет вести. 
    • Следующий вопрос о дефинициях: Каким образом качество можно оценить количественно?
    • Извините, исправлюсь: при R6=390кОм C6=0,1мкФ частота примерно 19Гц (не сотни герц, то еще другие номиналы пробовал) при R6=680кОм C6=0,47мкФ частота примерно 1Гц (до 2 точно) Осциллограф С1-65А сейчас проверил, подавая сигнал с цифрового генератора - не врет... Плюс ко всему на Б1-С6 стоит светотодиод, то есть по нему еще и визуально наблюдаю. Частоту я тоже рассчитывал по формуле, приведенной в посте @_abk_ . До включения высоковольтной части (отпаиваю выводы левой части Т2) частота генератора примерно соответствует расчетным значениям, а после подключения - 20-23Гц (причем независимо от комбинации R6 и C6)... То есть под фразой "частота сбивается", подразумевается значительное несоответствие расчетному значению. Я уже писал, что все собрано на текстолите навесным монтажом, генератор на колодках (поскольку размеры почти всех деталей большие).
    • Достаточно одного резистора. Т.к. питание 2153 происходит через левый нижний диод моста.
    • один черт без измериловки не обойдешься...