Мелкие вопросы по МК и ПЛИС.
-
Ruslan-maniak
- Открыл глаза
- Сообщения: 40
- Зарегистрирован: Вт янв 18, 2011 08:15:32
Re: Мелкие вопросы по МК и ПЛИС.
Приветсвую. Ещё вопрос по ПЛИСам, а именно VHDL. До этого верхний уровень проекта разрабатывал в виде Схематика, а модули как VHDL-module. Теперь хочу попробовать полностью весь проект описать как VHDL-код. Но не знаю от чего оттолкнуться. Может есть где обучающая статья на счёт этого? Или на каком форуме это обсуждалось? А может у кого есть простейший проект подходящий под мой вопрос? Интересует именно организация структуры проекта. Конкретно: как соединять пины разных модулей(VHDL-module)? Как в проекте создавать несколько экземпляров одного модуля? Спасибо.
Re: Мелкие вопросы по МК и ПЛИС.
Мы сейчас тусуемся в теме viewtopic.php?f=20&t=64552. А до этого были еще - поиск найдёт. Я раньше тоже так делал. А вот на днях, свою одну из схем просто взял и написал одним куском. Это не сложно. Достаточно просто поименовать соединительные цепи. А вот тот кусок, что повторяется два раза, я сделал отдельным модулем и присоединил как компонент.
компонент описывается:
А его подключение:И так столько раз, сколько компонентов. Это одно из самых простых решений. Наверняка есть и более изящные, но это уже к гуру.
компонент описывается:
Код: Выделить всё
COMPONENT Migalka
PORT(
Knopka : IN std_logic;
CLK : IN std_logic;
Led : INOUT std_logic
);
END COMPONENT;
Код: Выделить всё
uut: Migalka PORT MAP (
Knopka =>net1,
CLK => net2,
Led => net3
);
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
-
Ruslan-maniak
- Открыл глаза
- Сообщения: 40
- Зарегистрирован: Вт янв 18, 2011 08:15:32
Re: Мелкие вопросы по МК и ПЛИС.
Одним куском - т.е. все функциональные блоки описаны в одном файле? Я считаю что это не очень верный подход. Я бы хотел более-менее объектно-ориентированным методом работать.
- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
Ruslan-maniak, воспользуйтесь поиском по этому разделу с моим ником - выкладывал уже нечто подобное.
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
- IfoR
- Поставщик валерьянки для Кота
- Сообщения: 2029
- Зарегистрирован: Сб ноя 15, 2008 10:09:56
- Откуда: г. Тула
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
Дык структура примерно такова: создаётся корневой модуль в отдельном файле (root, например) и в нём подключаем другие модули, которые могут быть описаны в других файлах, ну и описываем логику между ними. Входы и выходы описываем те, которые должны быть выведены на полюса микросхемы. После этого командуем "ФАС!!!" синтезатору, указывая пальцем на корневой (root) модуль. Он там подхватит все подключаемые модули и что нибудь да засинтезирует, а компоновщик всё разместит на микросхеме.
avr флаги для чего они
avr флаги для чего они? я что то не могу понять как и для чего оно, понял что это сдвоенные регистры их еще называют указателями я правильно понимаю? в чем их фишка?
- КРАМ
- Друг Кота
- Сообщения: 25132
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Мелкие вопросы по МК и ПЛИС.
Флагом называют выход триггера, состояние которого можно проверить в некоем условии.
Флаг прерывания - частный случай такого триггера, выход которого используют для АППАРАТНОГО требования перехода программы по ВЕКТОРУ (начальному адресу обработчика) прерывания.
Флаг всегда одноразряден. Это БИТ.
Многоразрядный регистр условий называется СЕМАФОРОМ.
Сдвоенные регистры используют как УКАЗАТЕЛЬ на память. Т.е. в этой паре записан 16-разрядный АДРЕС по которому в памяти находятся данные. Такие указатели используют для КОСВЕННОЙ адресации данных. Косвенная адресация позволяет ВЫЧИСЛЯТЬ адрес. В таком случае в команде указан не сам адрес покоторому находится операнд, а РЕГИСТР (пара регистров) в котором находится АДРЕС операнда. При прямой адресации, когда адрес указан в самой команде, а также непосредственной, когда сами данные располагаются внутри команды для машин гарвардской архитектуры вычислять его невозможно.
Флаг прерывания - частный случай такого триггера, выход которого используют для АППАРАТНОГО требования перехода программы по ВЕКТОРУ (начальному адресу обработчика) прерывания.
Флаг всегда одноразряден. Это БИТ.
Многоразрядный регистр условий называется СЕМАФОРОМ.
Сдвоенные регистры используют как УКАЗАТЕЛЬ на память. Т.е. в этой паре записан 16-разрядный АДРЕС по которому в памяти находятся данные. Такие указатели используют для КОСВЕННОЙ адресации данных. Косвенная адресация позволяет ВЫЧИСЛЯТЬ адрес. В таком случае в команде указан не сам адрес покоторому находится операнд, а РЕГИСТР (пара регистров) в котором находится АДРЕС операнда. При прямой адресации, когда адрес указан в самой команде, а также непосредственной, когда сами данные располагаются внутри команды для машин гарвардской архитектуры вычислять его невозможно.
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
Короче - если загорелась лампа "Бак пустой", т.е. выставился флаг, то бросай все и езжай на АЗС.
Это флаг прерывания. На АЗС можешь запрвиться, а можешь и не заправиться. Есть также флаги по результату действий. Кинул окурок на заднее сидение и проверяй, надо доставать огнетушитель или нет. 
Docendo discimus
Re: Мелкие вопросы по МК и ПЛИС.
а как их применить на деле в АВР как я понял их три? и почему они xyz?
Re: Мелкие вопросы по МК и ПЛИС.
Это не флаги, а 16-битные регистры. Применяются там, где нельзя обойтись обычным, 8-битным. Например для задания адресов ОЗУ или Flash.
Re: Мелкие вопросы по МК и ПЛИС.
ну я ваще тупень) значит флаом может быть прерывание из вне нажатие кнопки или напряжение поднялось до заданного уровня и как говорят поднят флаг?
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
Флаг это флаг, прерывание это прерывание. Две совершенно разные вещи. Флаг это указатель на то, что произошло нечто. Прерывание это процесс окончания(вр'еменного) выполнения программы и переход в другое место. После обработки другого места возвращаемся туда, откуда ушли. Или не возвращаемся.
Docendo discimus
Re: Мелкие вопросы по МК и ПЛИС.
Возьми любой регистр, придумай любой бит в нём. По какому-то событию ты его будешь ставить, по другому - сбрасывать. И самое главное - анализировать. Этот бит станет называться флагом в терминах программирования.
Вот и всё. Грубо говоря флаг - это однобитовая переменная.
Вот и всё. Грубо говоря флаг - это однобитовая переменная.
Re: Мелкие вопросы по МК и ПЛИС.
mastech
16-битные регистры X, Y и Z (состоящие из двух 8-битных) используются для чтения/записи по указанному в них адресу (st, ld, std, ldd). Типа косвенная адресация.
Еще регистр Z используется для перехода по указанному в них адресу (ijmp), вызову подпрограмм по указанному в них адресу (icall), чтения констант из памяти программ (lpm), записи в память программ (stm).
Еще с ними можно делать некоторые действия, например, прибавить или вычесть небольшую константу (adiw, sbiw).
Регистр флагов есть, и необходимо про него знать, но это совсем другое.
16-битные регистры X, Y и Z (состоящие из двух 8-битных) используются для чтения/записи по указанному в них адресу (st, ld, std, ldd). Типа косвенная адресация.
Еще регистр Z используется для перехода по указанному в них адресу (ijmp), вызову подпрограмм по указанному в них адресу (icall), чтения констант из памяти программ (lpm), записи в память программ (stm).
Еще с ними можно делать некоторые действия, например, прибавить или вычесть небольшую константу (adiw, sbiw).
Регистр флагов есть, и необходимо про него знать, но это совсем другое.
- КРАМ
- Друг Кота
- Сообщения: 25132
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Мелкие вопросы по МК и ПЛИС.
SmarTrunk писал(а):mastech
Еще с ними можно делать некоторые действия, например, прибавить или вычесть небольшую константу (adiw, sbiw).
Это называется ОТНОСИТЕЛЬНАЯ (базовая) адресация.
Необходима для табличных обработок.
Re: Мелкие вопросы по МК и ПЛИС.
Работа с константами к адресации никак не относится, хоть и очень часто используется.
- КРАМ
- Друг Кота
- Сообщения: 25132
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Мелкие вопросы по МК и ПЛИС.
Работа с короткими константами в применении к базовым регистрам косвенной адресации для того и создана, чтобы компилятор Си генерировал компактный и изящный код при относительной адресации внутри таблиц. Это и есть Си-ориентированная архитектура машины.
Набор команд не высасывают из пальца. Его ЗАТАЧИВАЮТ под определенное использование.
Набор команд не высасывают из пальца. Его ЗАТАЧИВАЮТ под определенное использование.
Re: Мелкие вопросы по МК и ПЛИС.
Это и есть Си-ориентированная архитектура машины.
А, ну если так...
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
Мысли вслух по прочтении последних постов: Мда... Это вам не в автобусе ездить. 
Docendo discimus
- Chip115
- Сверлит текстолит когтями
- Сообщения: 1132
- Зарегистрирован: Пт фев 16, 2007 14:18:20
- Откуда: Новосибирск
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
Всем привет ! Помогите, пожалуйста, разобраться с настройкой генератора и PLL. МК Stellaris LM3S9B96. Нашел функцию по настройке частоты. Сама функция в приложении.
Нашел пример, где юзают этот мк на частоте в 50 МГц. Мне надо 80 Мгц при кварце 16 МГц.
Код:
Как тут вообще настройка идет? Почему юзают делитель, при том, что надо умножать? И откуда тут 50 МГц?
Нашел пример, где юзают этот мк на частоте в 50 МГц. Мне надо 80 Мгц при кварце 16 МГц.
Код:
Код: Выделить всё
// Set the clocking to run from the PLL at 50MHz
//
SysCtlClockSet(SYSCTL_SYSDIV_4|SYSCTL_USE_PLL|SYSCTL_OSC_MAIN|SYSCTL_XTAL_16MHZ);Как тут вообще настройка идет? Почему юзают делитель, при том, что надо умножать? И откуда тут 50 МГц?
- Вложения
-
- OSC.C
- Функция
- (9.48 КБ) 127 скачиваний
Теория — это когда все известно, но ничего не работает. Практика — это когда все работает, но никто не знает почему. Мы же объединяем теорию и практику: ничего не работает… и никто не знает почему!
© Альберт Эйнштейн
© Альберт Эйнштейн
