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

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

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

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

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

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

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

Закрытая тема
Опции темы
Непрочитано 05.05.2013, 14:46   #1
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   #2
jump
Почётный гражданин KAZUS.RU
 
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 7,981
Сказал спасибо: 0
Сказали Спасибо 4,941 раз(а) в 2,370 сообщении(ях)
jump на пути к лучшему
По умолчанию Re: Расчет функции косинус

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

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

Nihoden,
делаете для планшета программные модели ЛЭ, собираете схему, моделируете - сдаете курсовую. все наглядно и визуально, препод может пощупать, потыкать пальцами.
или ищите для макета 155 серию, там было АЛУ - вам же макет нужно предъявить, судя по мощности?
jump вне форума  
Непрочитано 05.05.2013, 19:27   #5
dgrishin
Почётный гражданин KAZUS.RU
 
Регистрация: 12.02.2013
Сообщений: 1,022
Сказал спасибо: 43
Сказали Спасибо 273 раз(а) в 214 сообщении(ях)
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   #6
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Расчет функции косинус

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

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

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

Сообщение от Nihoden Посмотреть сообщение
нужна помощь с курсовой работой по схемотехнике
иоп мат-перемат аффтары, за исключением прикола от omercury и совета от MisterDi - вы тему читаете или перднуть и в кусты?
ТС нужна схема аппаратного, судя по цитате, ТТЛ/КМОП вычислителя на сериях 74/74НС. или он нефига не понял из задания, или его препод развел конкретно, но это тема для диплома во времена ссср, ибо займет несколько листов А1/А0
jump вне форума  
Непрочитано 06.05.2013, 23:43   #10
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, время: 22:42.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot