-
Постов
707 -
Зарегистрирован
-
Посещение
-
Победитель дней
4
Весь контент Gorby
-
У меня приблизительно такая же задача. Контроллер DDR модуля. Есть модель миксросхемы памяти. Базируясь на ней я сделал модель модуля (DIMM). Моделирую в Моделсиме в timing режиме. Да, долго. Но зато все видно. Перед моделированием из прототипа платы беру примерные длины проводников, приблизительный импеданс (Протел позволяет). И смотрю на форму сигналов и на задержки по проводам в Hyperlynx. Так вот вычисленные там задержки я вбиваю руками в соответствующие сигналы в Тестбенче. Что приятно - результаты симуляции очень хорошо совпадают с поведением реального железа. Единственная проблема - с двунаправленными шинами. Пришлось разделять их на две встречно-параллельные (туда-сюда) и коммутировать руками (стимулами). Очень сомневаюсь, что это можно сделать с функциональной симуляцией.
-
Подзарядка lipol аккумуляоров
Gorby ответил white.wind тема в В помощь начинающему
Вы сначала определитесь с аккумулятором. 20 ампер - это не шутки. По поводу зарядки можете не беспокоиться - зарядная микросхема уже содержит в себе все необходимое, в том числе и ограничитель зарядного тока. Так что даже при ударном токе потребления от АКК , ток от зарядного источника никак не превысит Вами же заданный (как правило 0.5С) -
Украинские форумы по электронике?
Gorby ответил ASV тема в Форумы и конференции
Друзья, хорош стебаться. Электроника, она языконезависимая. Гы. Тем более что вопрос об украинских ресурсах уважаемый коллега задал по-русски. Ширше надо мыслить. И глубже. -
Необходимо с чего-то начать
Gorby ответил GRS тема в В помощь начинающему
В любой работе танцуют от печки, даже если вы - программист. Итак, что имеем? Если автор был точен в описании, то его целевой спидометр представляет собой электромотор. Про сигнал: устройство штатного спидометра такое - элеткромотор, а на нем стрелка. Как реализовано "зависание" (возрастание или понижение понятно, а как он стоит в одном положении, например 100 км/ч?) - не знаю. Сейчас узнаете. Там действительно есть моторчик постоянного тока. И скорость его вращения действительно пропорциональна скорости автомобиля (там есть обратная связь на датчике Холла). Поэтому можно принять, что СРЕДНЕЕ значение напряжения на двигателе прямо пропорционально скорости. Нюанс: стрелка расположена не на валу моторчика (иначе бы она вращалась как бешеная). На валу закреплен маховичок с встроенным магнитом. А стрелка закреплена на отдельном легком цилиндре, который как бы облегает маховик, не имея с ним механического контакта. В общем, как асинхронный двигатель работает эта конструкция. Теперь вам нужен осциллограф и помощь знакомого железячника. Цель: выяснить, какого ВИДА сигнал присутствует на электродвигателе. Вариантов всего два - ШИМ с постоянной амплитудой или Аналоговое напряжение. Только ответив на этот вопрос, вы сможете двигаться дальше. Удачи! -
Я против обязательных взносов. Но с удовольствием проинвестирую по своей инициативе. Причем мне удобнее единоразово 50-100 евро. Но! Я могу только сделать Вестерн Юнион или Маниграмм, для чего мне нужны все подробности. Будет ли это удобно адресату?
-
Поищите по конференции, такая тема уже доволно подробно обсуждалась несколько месяцев назад. У Ксилинкса есть аппнота на тему симуляции такой шины. В общем случае, надо делать две встречно-параллельные шины и рулить их переключением внешним (по отношению к моделируемому модулю) сигналом. Удачи.
-
Как бы и правильно. Это уже дальше, в Моделсиме, указав соответствующим образом (add wave -r /* ) загружаем для моделирования ВСЕ сигналы дизайна. Вы будете неприятно удивлены количеством сигналов и низкой скоростью моделирования. - Речь идет о пост-лейаут симуляции, ее иногда называют временнОй. Зато все как на ладони - до последнего логического элемента. Можно и не пост-лейаут. Главное - загрузить ВСЕ wave, а не только выводы топ-модуля. Обратите внимание на *.do файлы Моделсима. Их можно править руками и руками же запускать (Tools->Run Script или как там его). Правда, ничего не скажу про WebPACK, я пользую ISE 7.1 полный с МоделсимSE 6.0a. Хотя должно работать.
-
Бывают такие проги. Только это не проги, а набор разных (весьма сложных) средств моделирования, еще и общающихся друг с другом. Вот еще один пример. Атмел. Среда проектирования для FPSLIC (FPGA + AVR в одном флаконе). Симулятором служит Вендор-версия Моделсима, а также некая приблуда тоже от Ментор Графикс. Ее вообще не видно, но она выполняет важную функцию, связывая Моделсим и АВРСтудию, в которой запускается программа для АВР. Работать - просто сказка! Все как на ладони - и программа, и процессор, и ФПГА. Только часто слетает, сбоит, ненадежно вобщем. Ну и софт от Атмела - это отдельная песня. Крив и глюкав неимоверно. Но это к теме не относится :) Для других ФПГА /процессоров таких средств не встречал. Ну, видел для АРМов ЖТАГ отладчик. Так там в документации английским по-белому написано: не гарантируется правильная работа с прерываниями. И точно - первое прерывание - и система висит. И нафиг оно такое спрашивается, нужно... Разве что светодиодом помигать. Так это и так получается. А отлаживать хочется сложную программу. И... приехали. Вывод: программы и железяки отлаживаются, главным образом у разработчика в голове. Все остальное - только пища для размышлений.
-
Если исключить ошибки записи во флеш, то остается проверить поведение питания (их часто несколько и существуют требования по скорости нарастания и очередности появления). Также посмотреть схематику - наличие подтяжек и правильность их номиналов - я о сигналах загрузки из флешки. Лучше всего схему и номиналы брать из к-либо кита - там заведомо все рабочее. А вот даташиты и прочие аппноты могут и соврать, а вам - мучиться. Вообще говоря, ФПГА в конце загрузки проверяет контрольную сумму и не запустится, если прошивка побилась при загрузке. Она сообщает об этом одной из ножек (Done?).
-
Начало изучения плис
Gorby ответил Roman тема в Языки проектирования на ПЛИС (FPGA)
Честно говоря не понял - причем тут Си и что имеется в виду под ПРОТОТИПАМИ? А вот при чем. component IBUFG port ( I : in std_logic; O : out std_logic); end component; component BUFG port ( I : in std_logic; O : out std_logic); end component; Если человек знаком с концепцией прототипа (функции) в Си, то разберется и здесь. fpga_dcm.txt -
Именно так. Имел проблему при вычитывании. Как только закоротил тот злополучный диод, сразу стало все отлично. Работаю с ноутбука. Еще нюанс. Как-то заметил, что опять появились сбои при прошивке флэши, так после часа работы только увидел, что ноутбук работает от аккумулятора - забыл включить кнопку на сетевом фильтре. Как только подал нормальное питание на ноут, все опять заработало.
-
Спасибо огромное! Именно то, что искал.
-
Начало изучения плис
Gorby ответил Roman тема в Языки проектирования на ПЛИС (FPGA)
Лучший учебник - установить себе АктивХДЛ. Как отдельные блоки (счетчик, дешифратор и тд) создавать, понятно? Так вот, устройство из этих блоков описать очень просто. Шаг 1. Создаем новую Entity. Это и будет верх иерархии. Описываем входы и выходы. Так ваше изделие будет общаться с внешним миром. Шаг 2 Тут описываем сигналы - это будут проводки, которыми все ваши прежде созданные блоки будут соединены между собой. Шаг 3 С программированием на Си знакомы? Здесь нужно описать ПРОТОТИПЫ ваших блоков. Шаг 4 А вот здесь ВСТАВЛЯЕТЕ ваши блоки причем прямо на них описываете какой вывод блока на какой сигнал (из Шага 2) подключить. Вот и все! Имеете верхний уровень, содержащий ваши блоки внутри и они уже между собой соединены. Это и есть конец работы. Я готов безвозмездно поотвечать на ваши вопросы. VHDL only (not Verilog) -
Спасибо, что влезли :) Ведь очевидно, что без мультиплексора на шине адреса там никак не обошлось? А мой оппонент так и не увидел. А вообще вот история в тему. Больница. Обход. Пациент с болью в животе. Профессор и группа студентов-третьекурсников. Старый профессор уже минут двадцать сидит возле пациента, то пощупает ему живот, то еще что-то сделает. Наконец поднимается и говорит: аппендицит. На заднем плане один студент другому : - Ну и баран этот профессор! - А шо такое? - Так я за десять секунд тот же диагноз поставил : симптом Щеткина-Блюмберга - положительный, значит и коню понятно, что аппендицит. Молодому человеку невдомек было, сколько ДЕСЯТКОВ других возможных диагнозов перебрал и отбросил за те двадцать минут профессор. to mag: ребята, честное слово, я помочь хочу таким как вы. Но блин, вы столько еще не знаете и главное, не хотите знать, что просто волосы дыбом. "Вот видишь там мультиплексор? -Неееа... -И я не вижу. Но он там есть!" Удачи.
-
MSP430 не умеет работать с внешний памятью. Ни программ, ни данных - вся память у него внутри шины адресов и данных наружу не выходят. Но ничего не мешает, имхо, загружить куски кода во внутреннее ОЗУ и пускать оттуда. Весь вопрос только в том, сколько ОЗУ в применяемом МК, влезет ли в нее нужное количество кода. Еще вариант - программировать свою флешь "на лету". Т.е. не в ОЗУ грузить программу, а прямо во флешь. Флешь у MSP430 побита на блоки по 512 байт, каждый блок может быть индивидуально стерт. Таким образом, можно спокойно перекачать данные (программу) из внешнего хранилища во внутреннюю флешь. И не трогать уже запрограммированые блоки. Спасибо, пища для размышлений уже появилась. А насчет "Но ничего не мешает, имхо, загружить куски кода во внутреннее ОЗУ и пускать оттуда. " это точно? Ибо далеко не каждый проц умеет выполнять команды из ОЗУ данных.
-
Даже затрудняюсь в двух словах задачу описать. Начну сначала. Для некоторой управляющей микропроцессорной системы требуется следующая функциональность: наличие Serial Port (лучше два). И самое главное, возможность апдейтить софт удаленно (система имеет в составе GSM модуль WISMO). Я вижу это дело так: имеется бут-лоадер, который умеет грузить из внешней последовательной флешки бинарный образ в некое ОЗУ (внешнее или внутреннее), находящееся также (или после переключаемое) в области памяти программ. Ну и после успешной загрузки передает туда управление. Быстродействия особого не требуется. Для апдейта мы просто записываем новый образ в последовательную флешку (рядом с исходным, Оригинальным образом). А бут-лоадер умееть распознать его наличие и грузит его в ОЗУ, из которого оно и выполняется. Запутанно... Например, достаточно подходящим выглядит обычный AT89S53 от Атмел. То есть умеет исполнять код из внешней памяти. И писать туда может как в данные. А вот в АВР-ах такой возможности не нашел. Или не заметил? Я смотрел AT90S8515. Он умеет работать с внешней памятью данных, но не программ. Кто что может посоветовать?
-
Ну-ну... PROCESS (clock) BEGIN IF (clock'event AND clock = '1') THEN IF (we = '1') THEN ram_block(to_integer(unsigned(write_address))) <= data; END IF; q <= ram_block(to_integer(unsigned(read_address))); END IF; END PROCESS; Это не скрытый ли мультиплексор там внутри засел?! А вообще это только обертка для синтезатора. Вы посмотрите в RTL что там на самом деле стоит на шинах адреса. Если что-то сделано неявно, это не значит что оно не сделано. "Все не так, как кажется..." :-)
-
Попробую оправдаться :glare: Во первых, помощи попросили Вы, а не я. Во вторых, вместо невнятных строчек кода, выдранных неизвестно откуда (никого не хочу обидеть!) , я Вам даю намного более ценное: стратегию. Слишком часто вижу, как люди уходят с головой в мелочи и не видят глобальных вещей. Вы же видите, как дискуссия плавно перешла совсем в другую плоскость. Не пытайтесь написать микропроцессор в одном процессе. (по кр. мере сейчас) Один процесс - одна простая сущность. Тогда и не придется разруливать один сигнал от двух процессов. Потому как есть третий процесс - а уж он может быть мультиплексором или чем угодно. А насчет категоричности... Вам мама каким тоном говорила не совать пальцы в розетку? Вежливо рекомендовала или... :-) Помните у Жванецкого? - "Я остановлю мотор, но пусть он мне сначала докажет..." Это реакция моториста на команду с мостика "Стоп машина". А катер неумолимо несется к берегу... Если бы Вы знали ответ на свой вопрос, Вы бы его не задавали. Если же Вы задали его, то это дает мне право на некоторую категоричность: "Делай вот так!". Потому что несколько лет назад я сам прошел все стадии того, как делать НЕ надо. Удачи.
-
помогите новичку с ВХДЛ
Gorby ответил gladov тема в Языки проектирования на ПЛИС (FPGA)
По существу так никто и не ответит? Шаг номер Один: для начала напишите процесс, в котором будут защелкиваться ваши входные данные. Далее. Для описанной вами задачи (сериализатор) применяют обычно один из двух методов. Метод Номер Один: Сдвиговый регистр. Ищите, читайте, вникайте. Проще пареной репы. Метод Номер Два: Мультиплексор. Специальный счетчик (еще один процесс) перебирает адреса для мультиплексора (тоже процесс) таким образом, что к выходу поочередно подключается каждый бит защелкнутых вами в Шаге Один данных. Вся сопутствующая логика (старт, стоп, управление счетчиком и тд) делается после, с учетом необходимых лично вам условий. Удачи. To All: вот, растет Инженер... -
Ну почему сразу неверно? Можно собрать все модули в один и уж тогда легко менять требуемый сигнал. Но читабельность проекта снизится. Самый правильный вариант как уже предложили - это создать еще один модуль и подцепить к нему остальные. А мультиплексоры уже отменили? А вообще автору топика следует основательно подучить VHDL либо заплатить тому, кто сделает этот девайс за пару дней. Я бы посоветовал начать с рисования схемы на бумаге используя базовые примитивы Счетчик, Дешифратор, Логический_элемент_Х и тд. Каждый из них без труда создается на VHDL (настоятельно советую пользоваться Active HDL). Верхний уровень пишите на VHDL сами или (предпочтительнее) создавайте в виде схематики в том же ActiveHDL. Избежите множества ошибок. Плюс отличная тренировка - разглядывать, как ActiveHDL создает базовые элементы.
-
Разовая высокооплачиваемая разработка
Gorby ответил gulf тема в Предлагаю работу
Гы. Так вот зачем товарищь обсуждение завел.... Он задарма получил консультации, на которые ему выше предлагали потратить 1K$. Подметки на ходу рвет. :cranky: -
Люди добрые, чего вы паритесь?! Ставим ActiveHDL и имеем щастье. Там есть превосходный графический редактор стейт-машин (ага, с зелеными кружочками и стрелочками). А потом он генерирует VHDL - исходник для нарисованной машины. Причем способ кодирования можно задать от ван-хот до Грэя. Внимательно изучаем полученный код - он 100% рабочий. А вот уже через пол-года начнем и свои машины руками писать. Самое смешное, что они тоже начнут работать... А при отладке-то!!!! Оно показывает на диаграмме с зелеными кружочками-состояниями текущее активное состояние!!! Всем рекомендую. А то устроили, понимаешь, балаган... А потом ракеты до Марса не...
-
Абсолютно согласен , что измерения в данном случае - самая проблемная часть. Реально ширина фронта сигнала не зависит от частоты импульсов и может составлят единицы наносекунд. Вот только увидеть ее Вам будет очень непросто. Но я о другом: мне подозрителен способ формирования выходного сигнала. Я бы пропустил его через Д-триггер. А так, похоже, это выход цифрового компаратора (неплохо бы RTL посмотреть и на кристалле). Так что как раз может оно и быть - при повышении частоты разъезжается фронт на короткие глитчи, а у автора осциллограф честно интегрирует и показывает 30 нс фронт (!!!)
-
HDD Interface
Gorby ответил Hilter тема в Работаем с ПЛИС, области применения, выбор
Если у вас самоцель - разработка собственного САТА - хоста, то вперед и с песней. Он очень сложен как логически так и аппаратно. Быстрее чем за год - два с кучей потраченных денег на анализаторы протокола и пробные платы не выйдет. Если же ваша задача - использовать накопитель большой емкости (HDD) - тогда другое дело. Я бы посоветовал ОБЫЧНЫЙ АТА интерфейс. Со стороны хоста (что вам и надо) до безобразия прост. Если хочется ультра-АТА, то посложнее но тоже можно сделать. В Инете есть примеры. Если уж очень хочется иметь именно САТА HDD, то можно взять один из чипов-трансляторов SATA->ATA (Silicon Image Sil3611, Sil3811 например). Вы избежите большого геморроя с САТА. -
Немножко не в тему, но тоже актуально. Точно с такой же проблемой столкнулся при попытках быстрых пересылок данных на порт ввода-вывода на Xilinx Virtex 2 pro c PowerPC процессором. Никакими ухищрениями (использование разных корок ввода-вывода и тд) мне не удалось поднять частоту генерации меандра выше 2 МГц. Одно только радует, что шина-то 32 битная, то есть 4 байта за раз можно послать. Пришлось отказаться от идеи напрямую процессором слать данные. - нужно было 100 мегабайт в сек. Стыдно, 32-битный проц на частоте 100 МГц способен через ввод-вывод прокачать только 8 мег в сек, а их же еще где-то брать надо, обрабатывать как-то. Вот и плюнул на эти внутренние процессоры, поставил внешний ARM и не парюсь. А данными Спартан-3 занимается, решение куда дешевле Виртекса -Про.