реклама на сайте
подробности

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
> Отдельное АЛУ, Простенькое АЛУ, отдельное от ядра для своих нужд
iosifk
сообщение May 21 2014, 10:38
Сообщение #31


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Golikov A. @ May 21 2014, 11:08) *
Теперь есть одна большая система которая мешает все эти жидкости, и в ней 3 таких модуля. Первое решение было сделать такой модуль на конечном автомате, и скопировать его аж 3 раза внутри ПЛИС.

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

а в перспективе с 5, а может 6. Или вернемся обратно к 2. А то и сделаем отдельно на 1.

И что получается?


Делаете только один автомат и в нем переключаете потоки данных... Секорость у Вас низкая, хоть сотню потоков обработать можно... В чем проблема???
"Краткий Курс", глава "дополнение про автоматы" и "многопоточность"... И никакого процессора...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение May 21 2014, 13:18
Сообщение #32


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



если нету ПИДа, он сам не появиться. А если есть процессор с возможность сложить - вычесть - умножить - сравнить, можно уже и ПИД сделать и другие регуляторы. Все на той же системе...
Go to the top of the page
 
+Quote Post
Timmy
сообщение May 22 2014, 10:12
Сообщение #33


Знающий
****

Группа: Участник
Сообщений: 835
Регистрация: 9-08-08
Из: Санкт-Петербург
Пользователь №: 39 515



Цитата(Serhiy_UA @ May 21 2014, 10:00) *
В части temp - действительно что-то новое. Это взамен дополнительного аккумулятора, стека (LIFO) или очереди (FIFO)? Как узнать в temp, что регистр свободный?
Как загружаете программу в ПЛИС?
Какие алгоритмы деления и извлечения корня?

temp используется для организации локального стека, но этим не ограничивается. Ассемблер хранит битовую маску свободных регистров. Ассемблер создаёт код модуля на VHDL, который уже включает в себя экземпляр процессора, код и константы к нему. Деление и корень обыкновенные многоцикловые в столбикsm.gif. Модуль для корня я уже тут выкладывал в соответствующей теме. В делении(как и в корне, впрочем) используется non-restoring алгоритм, остаток может быть отрицательным, и в следующем такте делитель к нему прибавляется, а не вычитается.

Если регистров для temp не хватает, выдаётся ошибка.
Go to the top of the page
 
+Quote Post
Serhiy_UA
сообщение May 23 2014, 01:17
Сообщение #34


Знающий
****

Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112



к Timmy
Спасибо за информацию.
Не совсем понял, ассемблер генерирует код на HDL, который затем можно включать в прошивку ПЛИС? Тоже, что-то новое!

А temp как локальный стек - это удобно.

По делению и корню столбиком без восстановления остатка все понятно, хотя здесь можно использовать и матричный (аппаратный) метод для ускорения, я предпочитаю его. Просто мне показалось, что для этих операций Вы использовали умножители.

Уточните, если не сложно, как и из чего выполняете загрузку конфигурации ПЛИС и программы для процессора? Используется ли для этого отдельное ядро, и как оно запускается?

И еще, почему выбрали Lattice, при более популярных Altera и Xilinx, в чем преимущество?

Go to the top of the page
 
+Quote Post
Timmy
сообщение May 28 2014, 04:23
Сообщение #35


Знающий
****

Группа: Участник
Сообщений: 835
Регистрация: 9-08-08
Из: Санкт-Петербург
Пользователь №: 39 515



Цитата(Serhiy_UA @ May 23 2014, 09:27) *
Не совсем понял, ассемблер генерирует код на HDL, который затем можно включать в прошивку ПЛИС? Тоже, что-то новое!

По делению и корню столбиком без восстановления остатка все понятно, хотя здесь можно использовать и матричный (аппаратный) метод для ускорения, я предпочитаю его. Просто мне показалось, что для этих операций Вы использовали умножители.

Уточните, если не сложно, как и из чего выполняете загрузку конфигурации ПЛИС и программы для процессора? Используется ли для этого отдельное ядро, и как оно запускается?

И еще, почему выбрали Lattice, при более популярных Altera и Xilinx, в чем преимущество?

Да, ассемблер генерирует wrapper к процессору в виде исходника VHDL модуля, который содержит в себе код программы, константы, отладочную информацию для симуляции, всякие параметры, и инстанциацию процессора. Загрузка конфигурации производится из SPI flash, как обычно, а программа для процессора хранится в ROM на LUT-ах(она короткая, 200 инструкций в текущем проекте).
Lattice выбрали, потому что в low-end чипах есть поддержка DDR2 SDRAM с широкой шиной данных, приличная защита прошивки, чтение синхронных данных со скоростью до 800Mb/s.
С использованием аппаратного 36-битного умножителя у меня есть другой процессор попроще, который умеет только умножать и складывать, зато параллельно и за один такт с использованием конвейера, рабочая частота где-то тоже 250МГц, ограничена умножителем. Этот процессор для обсчёта нестандартных рекурсивных фильтров.
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th August 2025 - 02:15
Рейтинг@Mail.ru


Страница сгенерированна за 0.01401 секунд с 7
ELECTRONIX ©2004-2016