Flip-fl0p 4 24 сентября, 2021 Опубликовано 24 сентября, 2021 · Жалоба 12 минут назад, Alex77 сказал: второй вариант создан из первого программой конвертации схематика в verilog. Я считаю правильным вариантом вот такой: process(all) begin q <= (others => '0'); q(to_integer(unsigned(a))) <= '1'; end process; А ещё лучше оформить в виде функции и поместить в пользовательский пакет. Написано один раз. А пользоваться можно всегда. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_su 1 25 сентября, 2021 Опубликовано 25 сентября, 2021 · Жалоба .... именно 2 в 4 не нашёл, есть сдвоенные. .... https://www.ti.com/product/SN74LVC1G139 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Yuri124 4 25 сентября, 2021 Опубликовано 25 сентября, 2021 · Жалоба 14 hours ago, turnip said: как найти микросхему нужной логики? Ну раз не хотите делать нужное внутри одной ПЛИС, а желаете использовать внешнюю микросхему для этой цели (дешифрирования нужного устройства) - заранее предупрежу о грабельках - Вы уже изучили, как предупредить программу, в которой будете описывать взаимодействие (по железу - т.е. по сигналам) всех компонентов системы о задержках, вносимых этими внешними дополнительными элементами, которых так усиленно жаждете применить? Это нужно - чтобы при переходе к практике не было мучительно больно гадать - почему не работает (или - еще хуже - работает со сбоями) - изначально ошибка в концепте/ошибка в описании железа, реализованного в ПЛИС/ошибка в программе внешнего (по отношению к ПЛИС) контроллера/ошибка в монтаже или же просто один сигнал опережает другой на несколько наносекунд... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Freibier 4 25 сентября, 2021 Опубликовано 25 сентября, 2021 · Жалоба 2 часа назад, Yuri124 сказал: один сигнал опережает другой на несколько наносекунд... Какие к чертям наносекунды!? ТС только вчера узнал что такое дешифратор! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_su 1 25 сентября, 2021 Опубликовано 25 сентября, 2021 · Жалоба А еще: TTL, CMOS, LVTTL, LVCMOS, LVDS..... Питание 5В, 3.3В, 1.8В..... Быстродействие, нагрузочная способность..... и т.п. и т.д. "О, сколько нам открытий чудных Готовят просвещенья дух И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель." А.С. Пушкин Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex77 4 25 сентября, 2021 Опубликовано 25 сентября, 2021 · Жалоба 25.09.2021 в 00:35, Flip-fl0p сказал: Я считаю правильным вариантом вот такой: process(all) begin q <= (others => '0'); q(to_integer(unsigned(a))) <= '1'; end process; А ещё лучше оформить в виде функции и поместить в пользовательский пакет. Написано один раз. А пользоваться можно всегда. для разнообразия: module top( input [2:0] num, output [4:0] out ); assign out = 1'b1 << num; endmodule Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SII 0 26 сентября, 2021 Опубликовано 26 сентября, 2021 · Жалоба 16 hours ago, andrew_su said: А еще: TTL, CMOS, LVTTL, LVCMOS, LVDS..... Питание 5В, 3.3В, 1.8В..... Быстродействие, нагрузочная способность..... и т.п. и т.д. А на высоких частотах и/или длинных линиях -- ещё всякие импедансы и прочая чёрная магия :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
turnip 0 26 сентября, 2021 Опубликовано 26 сентября, 2021 (изменено) · Жалоба Я пересмотрел модульную схему: Хочу сделать плату шины к которой можно подключить 4 устройства(это процессор на FPGA, контроллер памяти и контроллер периферии на STM32, видео карта на Sipeed Lichee Tang Nano) Шину обмена данными представляю следующим образом: Генератор импульсов думаю это кварцевый генератор, счётчик это микросхема К176ИЕ4, дешифратор КМ555ИД4 Принцип работы. Генератор импульсов подаёт сигнал на счётчик, тот на двухразрядном выходе генерирует 00,01,10,11 выбирая тем самым текущее устройство которое может передавать данные на шину. Устройство передатчик получив управление подаёт на шину номер устройства приёмника и данные. Затем дешифратор подключённый к шине передаёт сигнал устройству приёмника для приёма данных. Устройство приёмник которому передают данные их читает. Ещё смутно представляю как физически всё сделать, надо купить нужные компоненты протестировать работу на макетке, потом закажу изготовление платы. Такую шину можно использовать в разных проектах когда нужен обмен данными между устройствами. SPI не подходит потому что это обмен данными только двух устройств или одного с несколькими и нужно делать дополнительные сигнальные выводы. В моей шине любое устройство может обмениваться данными с любым другим устройством(например контроллер периферии для звука может получать данные от контроллера памяти или контроллер памяти может передавать данные в видеокарту и тд.) и шина данных состоит из 10 контактов два на выбор устройства получателя и 8 на данные. Для быстродействия сделал шину только для 4х устройств, но можно её расширить снизив немного пропускную способность если не увеличить количество контактов данных или увеличить для большей пропускной способности. Изменено 26 сентября, 2021 пользователем turnip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Freibier 4 26 сентября, 2021 Опубликовано 26 сентября, 2021 · Жалоба Осталось еще загуглить что такое шина адреса и сигналы управления, и снова модульную схему пересмотреть. И так до бесконечности... Вам уже советовали изучить хотя бы старые (Z80 например и его шины) процессоры, а лучше вообще заняться чем-то другим? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
turnip 0 26 сентября, 2021 Опубликовано 26 сентября, 2021 (изменено) · Жалоба 28 минут назад, Freibier сказал: Осталось еще загуглить что такое шина адреса и сигналы управления, и снова модульную схему пересмотреть. И так до бесконечности... Смотрел работу разных интерфейсов в том числе и PCI, который мне не понравился, поэтому стал продумывать свой интерфейс. Я забыл рассказать что ещё разработал и протокол передачи\приёма данных устройствами. Опишу в кратце: Сначала устройство передатчик подаёт сигнал устройству приёмнику, что хочет ему передать некий пакет данных. Устройство приёмник если свободно, то сообщает, что готово получить данные иначе игнорирует сигнал на получение данных, а передающее устройство продолжает подавать сигнал на передачу и ждёт когда получающее устройство освободится передав сигнал готовности. Далее когда устройство передатчик получает сигнал готовности получения данных приёмником, то передаёт заголовок, в котором содержится адрес и количество данных пакета. Затем производится передача данных. 28 минут назад, Freibier сказал: Вам уже советовали изучить хотя бы старые (Z80 например и его шины) процессоры, а лучше вообще заняться чем-то другим? Опять же, я изучал как работает процессор Z80 и мне не понравилось это, для того времени конечно может и нормально, но сегодня логику работы передачи данных на аппаратном уровне можно упростить, а программно это сделать более продвинуто, раньше программно сделать было невозможно наверно, если только делать минипроцессоры микросхемы для такой логики(какую описал выше) Изменено 26 сентября, 2021 пользователем turnip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Freibier 4 26 сентября, 2021 Опубликовано 26 сентября, 2021 · Жалоба Мдаааа, сообразительность у Вас действительно незаурядная! И долго придумывали этот интерфейс? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
stealthisname 7 26 сентября, 2021 Опубликовано 26 сентября, 2021 (изменено) · Жалоба 18 минут назад, turnip сказал: Сначала устройство передатчик подаёт сигнал устройству приёмнику что хочет ему передать некий пакет данных. Устройство приёмник если свободно, то сообщает что готово получить данные. Далее устройство передатчик передаёт заголовок, в котором содержится адрес и количество данных пакета. Затем производится передача данных. если я правильно понимаю, по описанию работы шины генератор импульсов, счетчик и дешифратор (левый верхний в схеме) не могут переключаться во время передачи, так как иначе следующее в цепочке переключений устройство будет считать, что оно может передавать данные по общей шине. Как подобные коллизии решаются, если обратной связи устройств с генератором импульсов по схеме нет? что помешает счетчику переключиться во время передачи данных? Изменено 26 сентября, 2021 пользователем stealthisname Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SII 0 26 сентября, 2021 Опубликовано 26 сентября, 2021 · Жалоба 2 hours ago, turnip said: К176ИЕ4, дешифратор КМ555ИД4 А ещё неплохо было бы посмотреть справочные данные микросхем. Ибо ВНЕЗАПНО обнаружится, что 176-й серии подавай питание 9 В (и логические уровни соответствующие), 555-й -- 5 В, а всякие там STM32 и ПЛИСины в общем случае не выше 3,3 В. А вообще, накал бреда знатный. Давно такого читать не приходилось :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
turnip 0 26 сентября, 2021 Опубликовано 26 сентября, 2021 (изменено) · Жалоба 2 часа назад, stealthisname сказал: Как подобные коллизии решаются, если обратной связи устройств с генератором импульсов по схеме нет? что помешает счетчику переключиться во время передачи данных? Насчёт коллизии хорошо подмечено. Надо наверно сообщать устройству передатчику о завершении его работы. Получив такой сигнал устройство перестанет передавать данные. Может кто посоветует как это сделать. Короче надо покупать компоненты и тестировать, возможно при переключении счётчиком на другое устройство коллизии не будет, а если будет тогда надо это как-то решать. 1 час назад, SII сказал: Ибо ВНЕЗАПНО обнаружится, что 176-й серии подавай питание 9 В (и логические уровни соответствующие), 555-й -- 5 В, а всякие там STM32 и ПЛИСины в общем случае не выше 3,3 В. А я специально указал маркировку, чтобы мне сказали правильно ли подобрал или нет и какие микросхемы лучше использовать. Кроме того питание шины отдельное. Думаю будет блок питания возможно 9v от которого выходы на питание шины и с понижением для устройств. 1 час назад, SII сказал: А вообще, накал бреда знатный. Давно такого читать не приходилось :) Это потому что кто-то изобретает а вы сопли жуёте Изменено 26 сентября, 2021 пользователем turnip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex77 4 26 сентября, 2021 Опубликовано 26 сентября, 2021 · Жалоба ОФФТОП: Я таких "энтузиастов" называю "ардуинщики" - теории не знают, лепят из кубиков "замки", гордятся "работающим проектом" и жутко обижаются, когда указывают на ляпы и косяки... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться