Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

TTL и CMOS логика Цифровая схемотехника на логических микросхемах. Счетчики, сдвиговые регистры, простая логика...

 
Опции темы

Расчет функции косинус

Непрочитано 05.05.2013, 14:46  
Nihoden
Прохожий
 
Регистрация: 05.05.2013
Сообщений: 6
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Nihoden на пути к лучшему
По умолчанию Расчет функции косинус

Ребят, нужна помощь с курсовой работой по схемотехнике. Сам в ступоре, уже давно, не знаю как реализовать даже, сам путь вроде как проглядывается, но не понимаю, как сделать.

Задание вот такое:
Разработать схему вычисления функции косинуса. Операндом является угол выраженный в градусах в формате плавающей точке. Максимальная потребляемая мощность всего изделия 20 Вт. Максимальная потребляемая мощность разработанной части 2 Вт. Максимальное время выполнения 1 мс.
Диапазон представления чисел:
с плавающей точкой – со знаком, нормализованный, точность мантиссы - 4 десятичных знака, порядок -8..+8.
Все модули должны поддерживать следующий протокол взаимодействия:
• Все операнды записываются во внутренние регистры схемы по соответствующему стробу
• Выполнение операции начинается по сигналу «start»
• Завершение операции сигнализируется сигналом «ready». После этого сигнала значения на выходе удерживаются до прихода любого входного управляющего сигнала
• При возникновении ошибки активируется сигнал «error»
• Для выполнения любой повторной операции необходимо выполнить сброс схемы сигналом «reset»

Сам представляю выполнение данного задания, как разложение функции косинуса в ряд Тейлора:
cos(x) = 1-x2/2!+x4/4!-...

Но тут же возникает вопрос, не сложно ли идти по этому пути, особенно беспокоит реализация факториала и деление, если например деление на 2n это регистровый сдвиг, то как реализовать деление на 3.

Так же есть варианты реализовать через CORDIC или через таблицы в ПЗУ.

Есть ли есть желающие на помощь, буду очень признателен, вплоть до материального вознаграждения.
Реклама:
Nihoden вне форума  
Непрочитано 05.05.2013, 16:25  
jump
Почётный гражданин KAZUS.RUN
 
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 8,011
Сказал спасибо: 0
Сказали Спасибо 4,955 раз(а) в 2,379 сообщении(ях)
jump на пути к лучшему
По умолчанию Re: Расчет функции косинус

Nihoden,
1. планшет вам поможет, пишете все для андроида.
2. учите матчасть - ПЛИС с потреблением те же 2вт.
jump вне форума  
Непрочитано 05.05.2013, 16:58  
Nihoden
Прохожий
 
Регистрация: 05.05.2013
Сообщений: 6
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Nihoden на пути к лучшему
По умолчанию Re: Расчет функции косинус

Сообщение от jump Посмотреть сообщение
Nihoden,
1. планшет вам поможет, пишете все для андроида.
2. учите матчасть - ПЛИС с потреблением те же 2вт.
Я, к сожалению, не понял первой фразы.
Nihoden вне форума  
Непрочитано 05.05.2013, 18:10  
jump
Почётный гражданин KAZUS.RUN
 
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 8,011
Сказал спасибо: 0
Сказали Спасибо 4,955 раз(а) в 2,379 сообщении(ях)
jump на пути к лучшему
По умолчанию Re: Расчет функции косинус

Nihoden,
делаете для планшета программные модели ЛЭ, собираете схему, моделируете - сдаете курсовую. все наглядно и визуально, препод может пощупать, потыкать пальцами.
или ищите для макета 155 серию, там было АЛУ - вам же макет нужно предъявить, судя по мощности?
jump вне форума  
Непрочитано 05.05.2013, 19:27  
dgrishin
Почётный гражданин KAZUS.RUN
 
Регистрация: 12.02.2013
Адрес: На болотах
Сообщений: 1,163
Сказал спасибо: 46
Сказали Спасибо 315 раз(а) в 244 сообщении(ях)
dgrishin на пути к лучшему
По умолчанию 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
dgrishin вне форума  
Непрочитано 05.05.2013, 20:57  
omercury
Почётный гражданин KAZUS.RUN
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Расчет функции косинус

http://uchim.org/matematika/tablica-bradisa
omercury вне форума  
Непрочитано 06.05.2013, 18:58  
MisterDi
Почётный гражданин KAZUS.RUN
 
Аватар для MisterDi
 
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,284
Сказал спасибо: 441
Сказали Спасибо 1,040 раз(а) в 701 сообщении(ях)
MisterDi на пути к лучшему
По умолчанию Re: Расчет функции косинус

Интересно, какой умник придумал хранить аргумент в формате с плавающей точкой? И есть-ли еще какие-то требования к аппаратной части? Тот же STM32 без проблем решит эту задачу за отведенное время. Но мне кажется, что тут хотят получить чисто аппаратное решение - тогда Verilog/VHDL в помощь.
__________________
misterdi<@>i.ua
MisterDi вне форума  
Непрочитано 06.05.2013, 20:33  
Alecsej
Вид на жительство
 
Регистрация: 10.08.2005
Сообщений: 385
Сказал спасибо: 0
Сказали Спасибо 161 раз(а) в 140 сообщении(ях)
Alecsej на пути к лучшему
По умолчанию Re: Расчет функции косинус

Непонятен смысл сего действа.
Как правило аппаратно реализуют на уровне FPU простые действия, а сложные алгоритмы уже на уровне библиотек.
Иначе очень затратно по времени и по ресурсам.
Да и блоки с поддержкой плавающей точки только в старших семействах можно найти.
С чего-нибудь попроще надо начинать.
http://opencores.org/project,fpu
Alecsej вне форума  
Непрочитано 06.05.2013, 22:56  
jump
Почётный гражданин KAZUS.RUN
 
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 8,011
Сказал спасибо: 0
Сказали Спасибо 4,955 раз(а) в 2,379 сообщении(ях)
jump на пути к лучшему
По умолчанию Re: Расчет функции косинус

Сообщение от Nihoden Посмотреть сообщение
нужна помощь с курсовой работой по схемотехнике
иоп мат-перемат аффтары, за исключением прикола от omercury и совета от MisterDi - вы тему читаете или перднуть и в кусты?
ТС нужна схема аппаратного, судя по цитате, ТТЛ/КМОП вычислителя на сериях 74/74НС. или он нефига не понял из задания, или его препод развел конкретно, но это тема для диплома во времена ссср, ибо займет несколько листов А1/А0
jump вне форума  
Непрочитано 06.05.2013, 23:43  
Nihoden
Прохожий
 
Регистрация: 05.05.2013
Сообщений: 6
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Nihoden на пути к лучшему
По умолчанию Re: Расчет функции косинус

Сообщение от jump Посмотреть сообщение
иоп мат-перемат аффтары, за исключением прикола от omercury и совета от MisterDi - вы тему читаете или перднуть и в кусты?
ТС нужна схема аппаратного, судя по цитате, ТТЛ/КМОП вычислителя на сериях 74/74НС. или он нефига не понял из задания, или его препод развел конкретно, но это тема для диплома во времена ссср, ибо займет несколько листов А1/А0
Тему читаю. Интернета не было, не мог зайти.

Комментарий от преподавателя:
Цитата:
Основное направление данной курсовой работы - синтез схемы по известному алгоритму. Нужно учесть, что основной функцией алгоритма является вычисление функции cos через разложение Тейлора. Зная свойства функции cos, Вы можете привести вычисление любого угла к интервалу 0..90 градусов (или любой другой интервал). Нужно обратить внимание на то, что количество элементов в разложении для меньшего интервала будет меньше (при одинаковой точности). Хорошо, что Вы произвели патентный поиск, но данная реализация может оказаться сложнее для синтеза. Вам нужно сначала разработать схему электрическую функциональную в которой синтезировать все логические функции и преобразования. Потом Вы сможете в рамках выбранной КМОП-логики выбрать микросхемы и на их основе реализовать логику, разработанную в функциональной схеме. Ну, остальное, Вы знаете: пояснительная записка, временные диаграммы и перечень элементов. Не забудьте посмотреть условия применения выбранной серии (с точки зрения фильтрации помех).

Последний раз редактировалось Nihoden; 06.05.2013 в 23:51.
Nihoden вне форума  
 
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как детектировать косинус фи Levap Электроника - это просто 13 16.08.2010 20:20
Функции в MicroC! kviper Микроконтроллеры, АЦП, память и т.д 10 19.10.2009 16:35
Синус и косинус! MicroPIC Цифровые сигнальные процессоры 6 11.01.2009 03:03
Битовые функции в CodeVision Andrewg Микроконтроллеры, АЦП, память и т.д 3 03.08.2007 12:19
строковые функции в cvavr arc Микроконтроллеры, АЦП, память и т.д 15 10.03.2007 01:14


Часовой пояс GMT +4, время: 19:06.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.