Например TDA7294

Форум РадиоКот • Просмотр темы - Препод по ПЛИС хочет завалить группу. Помогите вырулить.
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Чт янв 01, 2026 10:43:23

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Препод по ПЛИС хочет завалить группу. Помогите вырулить.
СообщениеДобавлено: Вс ноя 18, 2012 03:41:37 
Родился

Зарегистрирован: Вс ноя 07, 2010 15:38:18
Сообщений: 9
Рейтинг сообщения: 0
Здравствуйте. Так случилось что в универе у нас есть предмет где нас ДОЛЖНЫ обучать работе с ПЛИС. Но почему-то препод предпочитает рисовать всякие таблицы о том что есть внутри у ПЛИС, как взаимодействует ПЛИС и комп через PC 104. Лабораторные ведет другой препод - сам только закончил этот же универ и ничего нам объяснить не может, приходиться все самому узнавать.

Суть вопроса:
Используем ISE Web Pack.
На контрольной будут 2 вопроса:

1) Построить множитель на константу (лектор сказал будет схематично, просто изобразить что и как, без кода и прочего).
У нас на лабораторных никто ничего не знает как делать, я смог написать на VHDL следующее:
По моему варианту константа tg(PI/30). Я перевел в двоичную систему, оптимизировал константу в итоге вот что получилось.

Кстати, если кто захочет помочь - константу любую (желательно дробную) можно покзать, что бы я хоть мож по примеру разобраться (нудля схематического изображения)

Спойлерlibrary IEEE;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
use IEEE.STD_LOGIC_1164.ALL;

entity sep_scheme is
Port ( I : in std_logic_vector(31 downto 0);
O : out std_logic_vector(63 downto 0));
end sep_scheme;

architecture Behavioral of sep_scheme is
signal tmp: std_logic_vector(63 downto 0);
begin
tmp <= ("000" & I(31 downto 0) & "00000000000000000000000000000") + ("0000000000000" & I(31 downto 0) & "0000000000000000000")+("0000000000000000000" & I(31 downto 0) & "0000000000000")+("0000000000000000000000000" & I(31 downto 0) & "0000000")+("000000000000000000000000000000" & I(31 downto 0) & "00")+("00000000000000000000000000000000" & I(31 downto 0));
O <= tmp - (("00000" & I(31 downto 0) & "000000000000000000000000000")+("0000000" & I(31 downto 0) & "0000000000000000000000000")+("0000000000" & I(31 downto 0) & "0000000000000000000000")+("000000000000000000000" & I(31 downto 0) & "00000000000")+("0000000000000000000000000000" & I(31 downto 0) & "0000"));
end Behavioral;


Так много нулей - не синтезируется sll команда, пришлось брать нужные разряды и склеивать с "0".

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

2) Память с сортировкой
До этого даже не дошли, а на зачете нужно будет тоже схематично нарисовать как оно работает. Лектор вообще ничего не объяснял по этому, лабораторные дальше множителя не сдвинулись.

В общем ждет нашу группу завал полный. Если кто знает как оно должно выглядеть, чисто схематически. нарисуйте пожалуйста. Больше действительно некуда обратиться.

P.S. С такими преподами сталкиваюсь впервые. Если не трудно спасите от завала.

P.P.S. Поясню что я делал. А именно получил такую последовательность:
Спойлер0 0001 1010 1110 1000 0001 1100 0111 0101

Оптимизировал:

Код:
0 0001 1010 1110 1000 0001 1100 0111 0101 = 15
                               | | ||
0 0001 1010 1110 1000 0001 1100 1000 0101
                       | | | |
0 0001 1010 1110 1000 0010 0000 1000 0101
           | | | |
0 0001 1011 0000 1000 0010 0000 1000 0101 = 8
        | || 
0 0001 1100 0000 1000 0010 0000 1000 0101
      | | | |
0 0010 0000 0000 1000 0010 0000 1000 0101 = 6 одиниц = 30, 20, 14, 8, 3, 1(без сдвига) ===== 5 + 4 = 9

0 0001 1010 1110 1000 0001 1100 0111 0101 - 0 0010 0000 0000 1000 0010 0000 1000 0101

 537403525 - 451419253 = 85984272


Минимизировал в связи с особенностью умножения в двоичной системе. То есть нужны только сдвиги и суммирование. Чем меньше "1" тем меньше суммирования и сдвигов. Отсюда необходимость минимизации константы. Так как оптимизированное число оказалось больше - от результата нужно отнять лишнее. В итоге все равно меньше операций сдвига и суммирования чем если бы без таких манипуляций. И да, символы " | " почему то поехали(


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Препод по ПЛИС хочет завалить группу. Помогите вырулить.
СообщениеДобавлено: Вс ноя 18, 2012 07:36:44 
Друг Кота
Аватар пользователя

Карма: 9
Рейтинг сообщений: 96
Зарегистрирован: Пн июл 13, 2009 14:37:39
Сообщений: 3961
Откуда: Московская область, наукоград.....
Рейтинг сообщения: 0
Во первых прекратите "скулить". Из постаноки задачи я наппример не понял ничего.
Какое умножение интересует: целочисленное или с плавающей запятой (точкой)?
Если первое, то константу можно представить так: C=2&32* tg(Pi/30)~449767923 (разрядность 32 бита)
Если второе, то нужно делать 3 операции:
1) целочисленное умножение чисел со знаком (23х23)
2) сложение порядков (8+8) с учетом знаков и переполнения
3) нормализация.
Но тогда (случай 2) разрядность будет не 64, а всего лишь 32 бита.
Подробности можно почерпнуть в первую очередь у преподавателя

_________________
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Препод по ПЛИС хочет завалить группу. Помогите вырулить.
СообщениеДобавлено: Вс ноя 18, 2012 19:41:59 
Родился

Зарегистрирован: Вс ноя 07, 2010 15:38:18
Сообщений: 9
Рейтинг сообщения: 0
У препода только ухмылка на все вопросы.

Интересует умножение например на
0.432543546 или 0.245465345 - с головы числа.

Нужно схематически изобразить соединения сумматоров и регистров сдвига которые будут реализовывать данное умножение.

как к примеру реализовывали на елементах базиса Буля какую нибудь функцию. Так и тут. Только здесь функция - умножить 32 разрядное число на 0.хххххххх число (тоже 32 разряда) и вместо элементов базиса Буля - сумматоры и регистры сдвига. В интернете есть куча схем как реализовать множитель когда на вход подаются 2 числа. Мне же нужно на входе 1 число, а второе как бы "вшито в схему".


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Препод по ПЛИС хочет завалить группу. Помогите вырулить.
СообщениеДобавлено: Вс ноя 18, 2012 21:02:35 
Родился

Зарегистрирован: Вс ноя 07, 2010 15:38:18
Сообщений: 9
Рейтинг сообщения: 0
Получается большая схема. Если регистр сдвига делать http://gpsguru.ru/content/view/492/32/ то 32 разряда займут много места. С сумматорами я разберусь.

Может есть другое представление для регистров сдвига? (как 1 элемент?)


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: Препод по ПЛИС хочет завалить группу. Помогите вырулить.
СообщениеДобавлено: Вс ноя 18, 2012 22:55:50 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Вт сен 11, 2007 10:27:08
Сообщений: 335
Откуда: Киев
Рейтинг сообщения: 0
1. Самое главное - препод не имеет права спрашивать теорию/практику которые выходят за рамками учебного процесса.
2. Намекните ему, что использование данных функций в FPGA займет пару тысяч ячеек, при этом плисина (которая может это вместить) начинает стоить от 50 баксов..... и тут же давите на первый пункт .....


ps. Я сказал вполне серъезно, ничего смешного.... меньше чем на максе втором такого не получится, ну вот EPM1270GT например.
Да, есть и Xilinx и еще че-то, но думаю эффект один. )


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Препод по ПЛИС хочет завалить группу. Помогите вырулить.
СообщениеДобавлено: Вс ноя 18, 2012 23:09:02 
Родился

Зарегистрирован: Вс ноя 07, 2010 15:38:18
Сообщений: 9
Рейтинг сообщения: 0
Тут суть вопроса не в возможности реализовать, а схематически изобразить. То что я реализовал на VHDL я скомпилировал. Потом посмотрел RTL схему, и Технологическую схему. На технологической оно показало что реализовало и на ЛУТах и на простых элементах... Действительно ОЧЕНЬ много было изображено всего. ПЛИС XC4VLX15 использована на 26%. Было бы неплохо хотя бы 4 разрядный вариант реализовать. Именно Сумматоры + регистры сдвига, больше ничего.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Препод по ПЛИС хочет завалить группу. Помогите вырулить.
СообщениеДобавлено: Вс ноя 18, 2012 23:16:32 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Вт сен 11, 2007 10:27:08
Сообщений: 335
Откуда: Киев
Рейтинг сообщения: 0
taimag писал(а):
Тут суть вопроса не в возможности реализовать, а схематически изобразить. То что я реализовал на VHDL я скомпилировал. Потом посмотрел RTL схему, и Технологическую схему. На технологической оно показало что реализовало и на ЛУТах и на простых элементах... Действительно ОЧЕНЬ много было изображено всего. ПЛИС XC4VLX15 использована на 26%. Было бы неплохо хотя бы 4 разрядный вариант реализовать. Именно Сумматоры + регистры сдвига, больше ничего.


Ну дык, переведите ваш VHDL в схему....


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Препод по ПЛИС хочет завалить группу. Помогите вырулить.
СообщениеДобавлено: Вс ноя 18, 2012 23:47:58 
Родился

Зарегистрирован: Вс ноя 07, 2010 15:38:18
Сообщений: 9
Рейтинг сообщения: 0
__Alexander писал(а):

Ну дык, переведите ваш VHDL в схему....


Там схема получается формата А1 если писать очень очень мелко. А на RTL схеме изображены просто сумматоры, но не изображены связи. Вот в
этом и проблема.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Препод по ПЛИС хочет завалить группу. Помогите вырулить.
СообщениеДобавлено: Вт ноя 20, 2012 15:44:15 
Родился

Зарегистрирован: Вс ноя 07, 2010 15:38:18
Сообщений: 9
Рейтинг сообщения: 0
тему можно закрывать. Весь поток, примерно 90 человек, было успешно завалено )))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Препод по ПЛИС хочет завалить группу. Помогите вырулить.
СообщениеДобавлено: Вт ноя 20, 2012 18:09:51 
Друг Кота
Аватар пользователя

Карма: 9
Рейтинг сообщений: 96
Зарегистрирован: Пн июл 13, 2009 14:37:39
Сообщений: 3961
Откуда: Московская область, наукоград.....
Рейтинг сообщения: 0
taimag писал(а):
Весь поток, примерно 90 человек, было успешно завалено

Это типа бяки тут не нарисовали перед умножителем квадратик с константой внутри, или не соединили входы умножителя с землей и питанием...

_________________
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y