TTL и CMOS логика Цифровая схемотехника на логических микросхемах. Счетчики, сдвиговые регистры, простая логика... |
05.05.2013, 14:46
|
|
Прохожий
Регистрация: 05.05.2013
Сообщений: 6
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Расчет функции косинус
Ребят, нужна помощь с курсовой работой по схемотехнике. Сам в ступоре, уже давно, не знаю как реализовать даже, сам путь вроде как проглядывается, но не понимаю, как сделать.
Задание вот такое:
Разработать схему вычисления функции косинуса. Операндом является угол выраженный в градусах в формате плавающей точке. Максимальная потребляемая мощность всего изделия 20 Вт. Максимальная потребляемая мощность разработанной части 2 Вт. Максимальное время выполнения 1 мс.
Диапазон представления чисел:
с плавающей точкой – со знаком, нормализованный, точность мантиссы - 4 десятичных знака, порядок -8..+8.
Все модули должны поддерживать следующий протокол взаимодействия:
• Все операнды записываются во внутренние регистры схемы по соответствующему стробу
• Выполнение операции начинается по сигналу «start»
• Завершение операции сигнализируется сигналом «ready». После этого сигнала значения на выходе удерживаются до прихода любого входного управляющего сигнала
• При возникновении ошибки активируется сигнал «error»
• Для выполнения любой повторной операции необходимо выполнить сброс схемы сигналом «reset»
Сам представляю выполнение данного задания, как разложение функции косинуса в ряд Тейлора:
cos(x) = 1-x2/2!+x4/4!-...
Но тут же возникает вопрос, не сложно ли идти по этому пути, особенно беспокоит реализация факториала и деление, если например деление на 2n это регистровый сдвиг, то как реализовать деление на 3.
Так же есть варианты реализовать через CORDIC или через таблицы в ПЗУ.
Есть ли есть желающие на помощь, буду очень признателен, вплоть до материального вознаграждения.
|
|
|
|
05.05.2013, 16:25
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 8,016
Сказал спасибо: 0
Сказали Спасибо 4,954 раз(а) в 2,378 сообщении(ях)
|
Re: Расчет функции косинус
Nihoden,
1. планшет вам поможет, пишете все для андроида.
2. учите матчасть - ПЛИС с потреблением те же 2вт.
|
|
|
|
05.05.2013, 16:58
|
|
Прохожий
Регистрация: 05.05.2013
Сообщений: 6
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Расчет функции косинус
Сообщение от jump
|
Nihoden,
1. планшет вам поможет, пишете все для андроида.
2. учите матчасть - ПЛИС с потреблением те же 2вт.
|
Я, к сожалению, не понял первой фразы.
|
|
|
|
05.05.2013, 18:10
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 8,016
Сказал спасибо: 0
Сказали Спасибо 4,954 раз(а) в 2,378 сообщении(ях)
|
Re: Расчет функции косинус
Nihoden,
делаете для планшета программные модели ЛЭ, собираете схему, моделируете - сдаете курсовую. все наглядно и визуально, препод может пощупать, потыкать пальцами.
или ищите для макета 155 серию, там было АЛУ - вам же макет нужно предъявить, судя по мощности?
|
|
|
|
05.05.2013, 19:27
|
|
Почётный гражданин KAZUS.RU
Регистрация: 12.02.2013
Сообщений: 1,047
Сказал спасибо: 43
Сказали Спасибо 273 раз(а) в 214 сообщении(ях)
|
Re: Расчет функции косинус
На первый взгляд ничего экстраординарного (с точки зрения алгоритма) ...
Функция cos имеет период 2*pi
То есть первая операция temp = Xin % 2*pi - остаток от деления на 2*Pi
Далее ряд Тейлора. Но по нему можно получить значение в окрестностях известного значения функции (формула, которую вы написали - для окрестности 0). Какое решение напрашивается ??
Заранее рассчитать 2*pi/n значений функций cos(x) и sin(x) (синус нужен для ряда тейлора т. к. sin(x) = -cos(x)' и для ненулевого x, sin(x) тоже будет ненулевым) и сохранить их в табличном виде.
И от сохранённых значений cos(x) считать ряд Тейлора для temp.
Непонятно с какой точностью нужно вычислить значение (точность вычисления функции и точность мантиссы ИМХО это не одно и то же).
Кстати коэффициенты ряда тейлора можно тоже заранее посчитать и хранить их в табличном виде.
Либо решение в лоб - рассчитать 100000 значений функции cos (точность мантиссы значения функции будет не хуже 10-4) сохранить их в табличном виде и потом просто делать lookup
|
|
|
|
05.05.2013, 20:57
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Расчет функции косинус
|
|
|
|
06.05.2013, 18:58
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,294
Сказал спасибо: 442
Сказали Спасибо 1,048 раз(а) в 706 сообщении(ях)
|
Re: Расчет функции косинус
Интересно, какой умник придумал хранить аргумент в формате с плавающей точкой? И есть-ли еще какие-то требования к аппаратной части? Тот же STM32 без проблем решит эту задачу за отведенное время. Но мне кажется, что тут хотят получить чисто аппаратное решение - тогда Verilog/VHDL в помощь.
__________________
misterdi<@>i.ua
|
|
|
|
06.05.2013, 20:33
|
|
Вид на жительство
Регистрация: 10.08.2005
Сообщений: 385
Сказал спасибо: 0
Сказали Спасибо 161 раз(а) в 140 сообщении(ях)
|
Re: Расчет функции косинус
Непонятен смысл сего действа.
Как правило аппаратно реализуют на уровне FPU простые действия, а сложные алгоритмы уже на уровне библиотек.
Иначе очень затратно по времени и по ресурсам.
Да и блоки с поддержкой плавающей точки только в старших семействах можно найти.
С чего-нибудь попроще надо начинать.
http://opencores.org/project,fpu
|
|
|
|
06.05.2013, 22:56
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 8,016
Сказал спасибо: 0
Сказали Спасибо 4,954 раз(а) в 2,378 сообщении(ях)
|
Re: Расчет функции косинус
Сообщение от Nihoden
|
нужна помощь с курсовой работой по схемотехнике
|
иоп мат-перемат аффтары, за исключением прикола от omercury и совета от MisterDi - вы тему читаете или перднуть и в кусты?
ТС нужна схема аппаратного, судя по цитате, ТТЛ/КМОП вычислителя на сериях 74/74НС. или он нефига не понял из задания, или его препод развел конкретно, но это тема для диплома во времена ссср, ибо займет несколько листов А1/А0
|
|
|
|
06.05.2013, 23:43
|
|
Прохожий
Регистрация: 05.05.2013
Сообщений: 6
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Расчет функции косинус
Сообщение от jump
|
иоп мат-перемат аффтары, за исключением прикола от omercury и совета от MisterDi - вы тему читаете или перднуть и в кусты?
ТС нужна схема аппаратного, судя по цитате, ТТЛ/КМОП вычислителя на сериях 74/74НС. или он нефига не понял из задания, или его препод развел конкретно, но это тема для диплома во времена ссср, ибо займет несколько листов А1/А0
|
Тему читаю. Интернета не было, не мог зайти.
Комментарий от преподавателя:
Цитата:
|
Основное направление данной курсовой работы - синтез схемы по известному алгоритму. Нужно учесть, что основной функцией алгоритма является вычисление функции cos через разложение Тейлора. Зная свойства функции cos, Вы можете привести вычисление любого угла к интервалу 0..90 градусов (или любой другой интервал). Нужно обратить внимание на то, что количество элементов в разложении для меньшего интервала будет меньше (при одинаковой точности). Хорошо, что Вы произвели патентный поиск, но данная реализация может оказаться сложнее для синтеза. Вам нужно сначала разработать схему электрическую функциональную в которой синтезировать все логические функции и преобразования. Потом Вы сможете в рамках выбранной КМОП-логики выбрать микросхемы и на их основе реализовать логику, разработанную в функциональной схеме. Ну, остальное, Вы знаете: пояснительная записка, временные диаграммы и перечень элементов. Не забудьте посмотреть условия применения выбранной серии (с точки зрения фильтрации помех).
|
Последний раз редактировалось Nihoden; 06.05.2013 в 23:51.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 08:53.
|
|