6 / 5 / 2
Регистрация: 04.11.2012
Сообщений: 224
1

Базовые вещи при освоении ПЛИС в части ввода-вывода информации

03.05.2024, 12:11. Показов 2182. Ответов 55
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!
Подскажите пожалуйста по такому вопросу.
Каковы базовые вещи при освоении ПЛИС в части ввода-вывода информации?
С такими задачами сталкиваюсь впервые, киньте какую-нибудь идею, может есть какая-нибудь литература, которая может помочь в решении данной задачи?
Конкретный пример задачи: реализовать на ПЛИС ввод информации со спутника в память, затем вывод информации на один из выходов ПЛИС.
Можно также другие простые задачи, чтобы я мог поработать над ними и потестировать в отладочной среде.
Буду очень признателен за помощь!

Добавлено через 3 часа 7 минут
Есть множество понятий в голове, которые ещё сложно ещё выстроить в единую картинку.
Кажется, что ввод-вывод - это какая-то простая концепция. Наподобие, "с помощью клавиатуры введите число от 0 до 1000, выводите его на семисегментный четырёхразрядный индикатор и храните в энергонезависимой памяти, чтобы после отключения и включения ПЛИС это значение сохранялось".
В то же время, какие-то серилайзеры и десерилайзеры, блоки контроля импеданса, SDR и DDR триггеры, различные типы задержек для компенсации неодинаковости линий, собственные PLL для более точной подстройки блоков данных, высокосортная память и т.д.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.05.2024, 12:11
Ответы с готовыми решениями:

Нужны базовые рекомендации, и поддержка в освоении
Доброго времени суток! Пару часов назад захотел освоить базовые функции этой прекрасной проги(как...

Замена метода ввода вывода информации на возврат строки информации об объекте, который дальше можно выводить на экран
1)Заменить метод вывода информации об объекте на метод который возвращает строку информации об...

Базовые вещи о справочниках и не только
Моя обработка: &НаКлиенте Процедура Команда1(Команда) Команда2(); КонецПроцедуры ...

Разъясните базовые вещи по maven
Добрый день, осваиваю maven + idea. Допустим я создал учебный проект на java 8. Сохранил. Прописал...

Организация ввода / вывода информации
вариант №9

55
6 / 5 / 2
Регистрация: 04.11.2012
Сообщений: 224
06.05.2024, 09:18  [ТС] 2
Предложите мне какие-нибудь простые задачи на вводы-выводы ПЛИС. Я попробую их решить самостоятельно и здесь напишу свои решения.
0
318 / 187 / 44
Регистрация: 25.08.2011
Сообщений: 1,242
07.05.2024, 15:16 3
Цитата Сообщение от Istorik Посмотреть сообщение
Каковы базовые вещи при освоении ПЛИС в части ввода-вывода информации?
Все работает условно одновременно при изменении фронта. Если в коде несколько строк то все они сработают сразу как только фронт изменится.

Цитата Сообщение от Istorik Посмотреть сообщение
В то же время, какие-то серилайзеры и десерилайзеры, блоки контроля импеданса, SDR и DDR триггеры, различные типы задержек для компенсации неодинаковости линий, собственные PLL для более точной подстройки блоков данных, высокосортная память и т.д.
Надеюсь вы тысячу раз все обдумали и взвесили преждем чем решили брать плис для своих задач )))


Цитата Сообщение от Istorik Посмотреть сообщение
Предложите мне какие-нибудь простые задачи на вводы-выводы ПЛИС.

Сделайте ячейку Debounce которая будет убирать дребезг контактов при нажатии кнопки.
Попробуйте использовать экземпляры ячейки для разных кнопок.
Лампочкой помигать.
В моделсиме построить диаграмму работы.
1
6 / 5 / 2
Регистрация: 04.11.2012
Сообщений: 224
08.05.2024, 07:30  [ТС] 4
Цитата Сообщение от Worldmaster Посмотреть сообщение
В моделсиме построить диаграмму работы.
Эту программу я уже попробовал вчера. Сделал трёхвходовой элемент исключающее-или и смоделировал его работу.

Базовые вещи при освоении ПЛИС в части ввода-вывода информации


Цитата Сообщение от Worldmaster Посмотреть сообщение
Лампочкой помигать.
Хорошо.

Цитата Сообщение от Worldmaster Посмотреть сообщение
Сделайте ячейку Debounce которая будет убирать дребезг контактов при нажатии кнопки.
Отлично.
0
6 / 5 / 2
Регистрация: 04.11.2012
Сообщений: 224
08.05.2024, 13:48  [ТС] 5
Подскажите. В Simulink собрал модель, которая просто инвертирует входной сигнал (элемент НЕ), конвертировал её в Verilog и файл тестбенча (с помощью HDL Coder). Загружаю в ModelSim оба файла, но ни один их них не эмулируется. Как я понял, тестбенч включает в себя всевозможные режимы логической схемы, и по идее, симулятор должен их сам переключать. Но ничего не происходит. То ли я неверно понимаю принцип работы, то ли файлы составлены неверно.
0
318 / 187 / 44
Регистрация: 25.08.2011
Сообщений: 1,242
08.05.2024, 13:53 6
Цитата Сообщение от Istorik Посмотреть сообщение
тестбенч включает в себя всевозможные режимы логической схемы
Не всевомзожные а ее стандартную работу.
Там вариантов нет.. подается тактирование на вход и наблюдаете что творится на сигналах.
В идеале на сигналах должно быть то что задумано или описано в даташитах.
Еще мне кажется важно понять что ПЛИС работает не так как программа на компе. ПЛИС ждать ничего и никого не будет. Это скорее как процессор. пока идет тактирование идет вся работа. Просто автомат.
0
144 / 107 / 37
Регистрация: 28.11.2013
Сообщений: 367
11.05.2024, 18:32 7
Конкретный пример задачи: реализовать на ПЛИС ввод информации со спутника в память, затем вывод информации на один из выходов ПЛИС.
Можно также другие простые задачи, чтобы я мог поработать над ними и потестировать в отладочной среде.
Буду очень признателен за помощь!
Непонятно какая информация со спутника к вам прилетает- какой протокол обмена, какой интерфейс передачи, какая скорость передачи, какой объем данных?
0
6 / 5 / 2
Регистрация: 04.11.2012
Сообщений: 224
12.05.2024, 08:03  [ТС] 8
Цитата Сообщение от Skryp Посмотреть сообщение
Непонятно какая информация со спутника к вам прилетает- какой протокол обмена, какой интерфейс передачи, какая скорость передачи, какой объем данных?
Я в самом начале изучения этих вопросов. Давайте представим экспериментальную систему для стендовой отработки со следующими особенностями - протокол CubeSat Space Protocol (CSP), интерфейс SPI и I2C и др., скорость передачи не менее 1,5 Гбит/с, объём данных 8 Гб.

Можно заменять протоколы или интерфейсы на более простые, добавить условий их функционирования и особенностей данных (есть ошибки или нет). Другими словами, от простой конфигурации переходить к всё более сложной.

Добавлено через 11 минут
Примеры интерфейсов: UART, RS-232/-485, SPI, I2C, CAN, SpaceWire, MIL-STD-1553 и др.
0
144 / 107 / 37
Регистрация: 28.11.2013
Сообщений: 367
13.05.2024, 19:27 9
скорость передачи не менее 1,5 Гбит/с, объём данных 8 Гб.
RS-232 даст максимум 200 кБ в секунду, какие гигабиты вы хотите гонять по ним? Вам понадобятся или куча параллельных линий или какой-то скоростной интерфейс передачи данных. Чтобы гонять гигабиты Вам нужно что-то типа PCI-Express, Aurora и т.д.
0
6 / 5 / 2
Регистрация: 04.11.2012
Сообщений: 224
14.05.2024, 06:09  [ТС] 10
Цитата Сообщение от Skryp Посмотреть сообщение
RS-232 даст максимум 200 кБ в секунду, какие гигабиты вы хотите гонять по ним? Вам понадобятся или куча параллельных линий или какой-то скоростной интерфейс передачи данных. Чтобы гонять гигабиты Вам нужно что-то типа PCI-Express, Aurora и т.д.
Отлично, давайте оставим более простые интерфейсы для приборов (они как раз используют SPI либо I2C). Для какой-нибудь задачи возьмём высокоскоростной интерфейс. Стенд у нас экспериментальный, поэтому мы можем делать что угодно.
0
6 / 5 / 2
Регистрация: 04.11.2012
Сообщений: 224
15.05.2024, 07:53  [ТС] 11
Ещё накидайте пожалуйста задачек по вводу-выводу информации в компьютер с помощью ПЛИС.
0
144 / 107 / 37
Регистрация: 28.11.2013
Сообщений: 367
15.05.2024, 19:16 12
Вам надо соединить ПК с ПЛИС, обычно это делается по USB, используют микросхему FTDI, не знаю как сделано у Вас. Качаете драйвера с сайта производителя для конткретной микросхемы (FTDI на С++) для общения с микросхемой на С++ и ПЛИС. Внутри ПЛИС пишете контроллер который будет рассшифровывать данные посланные с ПК. Можно соединить через Ethernet разъём, но там вам нужно будет в ПЛИС использовать встроенное IP-ядро для работы. Я с Ethernet нет работал, надо искать в интернете. Так что ваша основная задача - послать в компьютера единичку и принять внутри ПЛИС это число, засветив, например, светодиод на плате. Обычно используют либо встроенный UART (в ПЛИС xilinx Zynq) или IP ядро - ILA внутри ПЛИС. Если у Вас будет использован интерфейс I2C, например, то хорошо бы поиграться с какой-нибудь микросхемой с таким интерфейсом- соединить микросхему и ПЛИС и настроить обмен данными, чтобы отладить работу контроллеров I2C.
1
6 / 5 / 2
Регистрация: 04.11.2012
Сообщений: 224
16.05.2024, 06:07  [ТС] 13
Цитата Сообщение от Skryp Посмотреть сообщение
Вам надо соединить ПК с ПЛИС, обычно это делается по USB, используют микросхему FTDI, не знаю как сделано у Вас. Качаете драйвера с сайта производителя для конткретной микросхемы (FTDI на С++) для общения с микросхемой на С++ и ПЛИС. Внутри ПЛИС пишете контроллер который будет рассшифровывать данные посланные с ПК. Можно соединить через Ethernet разъём, но там вам нужно будет в ПЛИС использовать встроенное IP-ядро для работы. Я с Ethernet нет работал, надо искать в интернете. Так что ваша основная задача - послать в компьютера единичку и принять внутри ПЛИС это число, засветив, например, светодиод на плате. Обычно используют либо встроенный UART (в ПЛИС xilinx Zynq) или IP ядро - ILA внутри ПЛИС. Если у Вас будет использован интерфейс I2C, например, то хорошо бы поиграться с какой-нибудь микросхемой с таким интерфейсом- соединить микросхему и ПЛИС и настроить обмен данными, чтобы отладить работу контроллеров I2C.
Большое спасибо, очень хорошее предложение! А-то пока непонятно, как все эти UART, Ethernet и т.д. друг с другом связаны.
0
6 / 5 / 2
Регистрация: 04.11.2012
Сообщений: 224
26.06.2024, 13:00  [ТС] 14
Вопрос о математике (арифметике) на ПЛИС. Допустим, нужно перемножить 2 десятичных числа. Их сначала нужно преобразовывать в двоичный формат? Или всё происходит автоматически, по следующему алгоритму?

Код
Модуль Перемножение_чисел(входы a,b; выход c)
c = a*b;
0
318 / 187 / 44
Регистрация: 25.08.2011
Сообщений: 1,242
26.06.2024, 13:43 15
Цитата Сообщение от Istorik Посмотреть сообщение
Или всё происходит автоматически, по следующему алгоритму?
плис не умеет перемножать. Вам надо все реализовать сигналами.

https://fpga-e.ru/design/proek... ya-chisel/
0
6 / 5 / 2
Регистрация: 04.11.2012
Сообщений: 224
26.06.2024, 14:10  [ТС] 16
Цитата Сообщение от Worldmaster Посмотреть сообщение
плис не умеет перемножать. Вам надо все реализовать сигналами.
Код
module multipliers (
input	signed	[3:0]	A,
input	signed	[3:0]	B,
output	signed [7:0]	Mult
);
	assign Mult = A * B;
endmodule
Вы наверное имели ввиду, что входной сигнал предварительно нужно преобразовать в двоичный, а затем использовать правила для арифметических операций из двоичной арифметики?

Добавлено через 3 минуты
Тогда ещё интереснее, как реализовать умножение любых чисел, например 0.789 и 145.0345
0
318 / 187 / 44
Регистрация: 25.08.2011
Сообщений: 1,242
26.06.2024, 15:53 17
Цитата Сообщение от Istorik Посмотреть сообщение
module multipliers (
input signed [3:0] A,
input signed [3:0] B,
output signed [7:0] Mult
);
assign Mult = A * B;
endmodule
И как же схема выглядит этого добра?? Покажите пожалуйста.
0
6 / 5 / 2
Регистрация: 04.11.2012
Сообщений: 224
26.06.2024, 16:56  [ТС] 18
Цитата Сообщение от Worldmaster Посмотреть сообщение
И как же схема выглядит этого добра?? Покажите пожалуйста.
Взял отсюда: http://www.labfor.ru/articles/arithmetic_verilog

Базовые вещи при освоении ПЛИС в части ввода-вывода информации
0
144 / 107 / 37
Регистрация: 28.11.2013
Сообщений: 367
26.06.2024, 21:31 19
Плис хорошо перемножает сигналы. Ваш пример должен работать. Также можете использовать встроенные умножители dsp48, но для скоростей i2c интерфейса и на распределенных ресурсах всё будет успевать умножаться. В Плис xilinx есть готовый блок ip core cordic, для вычисления различных математических операций. У intel есть аналогичные модули.
0
6 / 5 / 2
Регистрация: 04.11.2012
Сообщений: 224
27.06.2024, 07:41  [ТС] 20
Всем доброе утро. В Матлабе собрал простую схему, хочу поработать с HDL Coder. Схема выглядит так. Постепенно я буду добавлять новые элементы.

Базовые вещи при освоении ПЛИС в части ввода-вывода информации


HDL Coder преобразовал эту схему в такой Verilog (немного причесал исходник):

Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// Generated by MATLAB 24.1, HDL Coder 24.1, and Simulink 24.1
// -- -------------------------------------------------------------
// -- Rate and Clocking Details
// -- -------------------------------------------------------------
// Model base rate: 0.2
// Target subsystem base rate: 0.2
// -------------------------------------------------------------
// -------------------------------------------------------------
// Module: untitled
// Source Path: untitled
// Hierarchy Level: 0
// Model version: 1.0
// -------------------------------------------------------------
 
`timescale 1 ns / 1 ns
 
module untitled
          (in,
           out);
 
  input   [31:0] in;  // single
  output  [31:0] out;  // single
 
  assign out = in;
 
endmodule  // untitled
Вопросы:
1. Что значит
Код
`timescale 1 ns / 1 ns
? Нужно ли настраивать этот параметр под каждую ПЛИС?
2. Формат данных сингл, т.е. 32 бита. Знак, порядок и мантисса. Правильно ли я понимаю, что сначала десятичное число нужно будет преобразовать в такой формат, а потом уже подавать на вход ПЛИС?
3. А что это значит?
Код
// Model base rate: 0.2
// Target subsystem base rate: 0.2
0
27.06.2024, 07:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.06.2024, 07:41
Помогаю со студенческими работами здесь

Организация ввода/вывода информации
Всем здравствуйте! Уже пол дня бъюсь над заданием:umnik: сил больше нет, жду помощи профессионала:)...

Контроль ввода вывода информации
Помоги пожалуйста как написать так что если пользователь вводит информацию не правильно то...

организация ввода-вывода информации в мк-51
Вид числа – распакованное; мк осуществляет Вывод; Начальный адрес – 20Н; Длина массива в...

Неполадки ввода-вывода информации с диска
Купил жесткий диск. Будучи первостатейным джентльменом удачи, уронил его в тот же день примерно с...

Средства ввода/вывода информации в PHP
Добрый день. Готовлюсь к экзамену, в вопроснике есть такой пункт : "Средства ввода/вывода...

Компоненты ввода-вывода текстовой информации
Выполнить преобразование текста. В каждом рядке первую букву переместить в конец рядка. Можете...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru