4 курс: вопросы по содержанию

Модераторы: kustarev, Интегральный вычислитель

Re: 4 курс Схемотехника

Сообщение Интегральный вычислитель » 11 окт 2009, 19:11

Хочу еще добавить, что при выполнении л/р № 6 вам может сильно пригодиться модель конечных автоматов. В Quartus'е есть специальный тип файла (State Machine File) для описания автоматов в виде графа переходов.
I Have Seen The Truth And It Doesn't Make Any Sense
Аватара пользователя
Интегральный вычислитель
 
Сообщения: 561
Зарегистрирован: 02 апр 2008, 16:04
Откуда: из Леса

Re: 4 курс Схемотехника

Сообщение Alexander » 11 окт 2009, 19:16

Вопрос как заставить счетчик отсчитать 8 бит и остановиться? Если для этого нет внешнего сигнала, а нужно реализовать это внутри...

Т.е. мы всегда пускаем сигнал SCLK, даже тогда когда не передаем данные? Получается что на линии стоит неопределенный сигнал и slave устройство должно всегда принимать данные? Нужен SS.

А по какому тогда сигналу Master устройство будет само принимать данные по MISO? Допустим по своей синхронизации, тогда если на линии пусто - фигня получается... Насколько я нашел описание Master устройство должно принимать данные по тому же SCLK при активном SS.

И судя по описанию SS = BS

Хочу еще добавить, что при выполнении л/р № 6 вам может сильно пригодиться модель конечных автоматов. В Quartus'е есть специальный тип файла (State Machine File) для описания автоматов в виде графа переходов.


Ещё бы знать как её составлять, а то таких предметов у нас как бы не было. Тов. Скорубский не в счет...
Alexander
 
Сообщения: 19
Зарегистрирован: 26 сен 2009, 23:01

Re: 4 курс Схемотехника

Сообщение Интегральный вычислитель » 11 окт 2009, 19:35

Alexander писал(а):Вопрос как заставить счетчик отсчитать 8 бит и остановиться? Если для этого нет внешнего сигнала, а нужно реализовать это внутри...

Вар 1. Реализовать управляющую логику для приемопередатчика в виде цифрового автомата
Вар 2. Сделать простейшую логику, которая управляет сигналом EN (разрешение счета) на счетчике; if (Count == 8 ) EN=0; else EN=1; Или можно сделать счетчик по модулю 8 с сигналом переполнения, чтобы он сам себя останавливал когда переполниться (в таком случае даже сбрасывать не надо)
Т.е. мы всегда пускаем сигнал SCLK, даже тогда когда не передаем данные? Получается что на линии стоит неопределенный сигнал и slave устройство должно всегда принимать данные? Нужен SS.

Я такого не говорил. Вы правы, по сути SS=BS; только SS идет к slave устройству, а BS идет к процессорному ядру или другому управляющему устройству.

Хочу еще добавить, что при выполнении л/р № 6 вам может сильно пригодиться модель конечных автоматов. В Quartus'е есть специальный тип файла (State Machine File) для описания автоматов в виде графа переходов.

Ещё бы знать как её составлять, а то таких предметов у нас как бы не было. Тов. Скорубский не в счет...

Я думаю одного дня СРС (самостоятельной работы студента) будет достаточно, чтобы приобрести недостающие знания о практическом применении цифровых автоматов.
I Have Seen The Truth And It Doesn't Make Any Sense
Аватара пользователя
Интегральный вычислитель
 
Сообщения: 561
Зарегистрирован: 02 апр 2008, 16:04
Откуда: из Леса

Re: 4 курс Схемотехника

Сообщение Alexander » 11 окт 2009, 19:52

Просто интересно сколько студентов кроме меня захотят потратить один день СРС на изучение квартуса. А про день изучения автоматов можете даже не упоминать :lol:

Какие пособия или книжки посоветуете для изучения этого материала?

3 - битовым счетчиком похоже тут не обойтись. Замкнуть 4-й бит счетчика ему же на CS? а по WR сделать асинхронный сброс?

и BS = CS счетчика
Alexander
 
Сообщения: 19
Зарегистрирован: 26 сен 2009, 23:01

Re: 4 курс Схемотехника

Сообщение Alexander » 11 окт 2009, 20:00

Как шину на после выхода устройства отделить на 4 отдельных бита?
Alexander
 
Сообщения: 19
Зарегистрирован: 26 сен 2009, 23:01

Re: 4 курс Схемотехника

Сообщение Интегральный вычислитель » 11 окт 2009, 20:35

Alexander писал(а):Просто интересно сколько студентов кроме меня захотят потратить один день СРС на изучение квартуса. А про день изучения автоматов можете даже не упоминать :lol:

Если не хотите делать все 9 вариантов, то тогда еще как минимум 8ми студентам придется осваивать теорию и САПР'ы. В остальном зависит от лояльности преподавателей.
Какие пособия или книжки посоветуете для изучения этого материала?

Учитывая то, что в 7ой и 8ой лабораторных вас ждет Verilog HDL, я бы постоветовал начать чтение книжки посвященной HDL проектированию. Тем более, на Verilog вам тоже придется рисовать автоматы. К сожалению на русском хорошей литературы нет.
На английском могу посоветовать следующие книжки:
1) Pong P. Chu - FPGA Prototyping by Verilog Examples (Первых 200 страниц будет достаточно для выполнения всех заданий в этом семестре) 5ая глава посвящена автоматам.
2) Advanced Digital Design with the Verilog HDL - эту книжку стоит читать, если собираетесь идти в магистратуру на наше направление.

3 - битовым счетчиком похоже тут не обойтись. Замкнуть 4-й бит счетчика ему же на CS? а по WR сделать асинхронный сброс?

Лучше использовать дополнительный регистр( или несколько) для хранения текущего состояния системы. Факт переполнения счетчика лучше зафиксировать в регистре, т.к. помимо запрещения счета он также влияет и на другие сигналы в системе.
Для создания счетчика можете использовать мастер мегафункций Quartus'a, который позволяет создавать модули с произвольными параметрами и доп. функциональностью, вроде встроенного блэкджека и кофеварки (сигнала запрещения счета и флага переполнения)
I Have Seen The Truth And It Doesn't Make Any Sense
Аватара пользователя
Интегральный вычислитель
 
Сообщения: 561
Зарегистрирован: 02 апр 2008, 16:04
Откуда: из Леса

Re: 4 курс Схемотехника

Сообщение Интегральный вычислитель » 11 окт 2009, 20:39

Alexander писал(а):Как шину после выхода устройства отделить на 4 отдельных бита?

С помощью названий сигналов. К примеру, если шина называется DIN[7..0], тогда можно вытащить из неё нужный провод указав его индекс: DIN[0] , DIN[1] ..
I Have Seen The Truth And It Doesn't Make Any Sense
Аватара пользователя
Интегральный вычислитель
 
Сообщения: 561
Зарегистрирован: 02 апр 2008, 16:04
Откуда: из Леса

Re: 4 курс Схемотехника

Сообщение Alexander » 11 окт 2009, 20:46

ну старший бит счетчика и будет так называемым регистром. Если в нем 0 то идет сигнал BS, схема занята, счет разрешен, если в нем 1 то схема свободна - счет запрещен. и по фронту WR счетчик обнуляется, таким образом начинается новый цикл отправки.

Как можно реализовать схему, которая на передний фронт будет выдавать единицу в течение ровно 1 такта?

А если я один из битов шины хочу замкнуть не на output, а на вход другой микросхемы?
Alexander
 
Сообщения: 19
Зарегистрирован: 26 сен 2009, 23:01

Re: 4 курс Схемотехника

Сообщение Интегральный вычислитель » 11 окт 2009, 20:56

Обновленный вариант лабораторных работ по схемотехнике:
1) Добавлены варианты заданий для л/р 7
2) Исправлена ошибка в л/р 6 вар 3
Вложения
Schemo058.pdf
(682.62 Кб) Скачиваний: 407
I Have Seen The Truth And It Doesn't Make Any Sense
Аватара пользователя
Интегральный вычислитель
 
Сообщения: 561
Зарегистрирован: 02 апр 2008, 16:04
Откуда: из Леса

Re: 4 курс Схемотехника

Сообщение Интегральный вычислитель » 11 окт 2009, 21:06

Alexander писал(а):Как можно реализовать схему, которая на передний фронт будет выдавать единицу в течение ровно 1 такта?

Схема, которая в ответ на фронт сигнала на входе, будет выдавать импульс длительностью 1 такт на входе? Думайте сами, вариантов много. Потом можно будет сравнить у кого более эффективное решение :roll:
А если я один из битов шины хочу замкнуть не на output, а на вход другой микросхемы?

Любой провод на схеме можно обозвать.
I Have Seen The Truth And It Doesn't Make Any Sense
Аватара пользователя
Интегральный вычислитель
 
Сообщения: 561
Зарегистрирован: 02 апр 2008, 16:04
Откуда: из Леса

Re: 4 курс Схемотехника

Сообщение Alexander » 11 окт 2009, 21:35

Ну я обозвал, а толку?
Вложения
.JPG
.JPG (12.58 Кб) Просмотров: 16375
Alexander
 
Сообщения: 19
Зарегистрирован: 26 сен 2009, 23:01

Re: 4 курс Схемотехника

Сообщение Интегральный вычислитель » 11 окт 2009, 22:07

Alexander писал(а):Ну я обозвал, а толку?

Надо все 4 провода вытянуть, либо 1 провод и шину [2..0]
I Have Seen The Truth And It Doesn't Make Any Sense
Аватара пользователя
Интегральный вычислитель
 
Сообщения: 561
Зарегистрирован: 02 апр 2008, 16:04
Откуда: из Леса

Re: 4 курс Схемотехника

Сообщение Alexander » 11 окт 2009, 22:16

Все, разобрался, спасибо. Надо было вытянуть из точки соединения другую шину. После чего выделить все провода после этой точки и их вместе назвать, а не только первый из тех, что идут после точки.
Alexander
 
Сообщения: 19
Зарегистрирован: 26 сен 2009, 23:01

Re: 4 курс Схемотехника

Сообщение Alexander » 25 окт 2009, 11:45

А нормально что в описании модуля эквивалентности на Verilog результаты промежуточных функций будут идентичны?
assign p0 = i0 & i1;
assign p1 = i0 & i1;
Alexander
 
Сообщения: 19
Зарегистрирован: 26 сен 2009, 23:01

Re: 4 курс Схемотехника

Сообщение Интегральный вычислитель » 25 окт 2009, 16:12

Alexander писал(а):А нормально что в описании модуля эквивалентности на Verilog результаты промежуточных функций будут идентичны?
assign p0 = i0 & i1;
assign p1 = i0 & i1;

Не понял сути вопроса, можете пояснить?
I Have Seen The Truth And It Doesn't Make Any Sense
Аватара пользователя
Интегральный вычислитель
 
Сообщения: 561
Зарегистрирован: 02 апр 2008, 16:04
Откуда: из Леса

Re: 4 курс Схемотехника

Сообщение Alexander » 25 окт 2009, 17:13

просто по моим представлениям функции эквивалентности это должно выглядеть так:
assign p0 = i0 & i1;
assign p1 = ~i0 & ~i1;
assign eq = p0 | p1
Alexander
 
Сообщения: 19
Зарегистрирован: 26 сен 2009, 23:01

Re: 4 курс Схемотехника

Сообщение Интегральный вычислитель » 25 окт 2009, 19:19

Alexander писал(а):просто по моим представлениям функции эквивалентности это должно выглядеть так:
assign p0 = i0 & i1;
assign p1 = ~i0 & ~i1;
assign eq = p0 | p1

А-а, понял, вы нашли опечатку в лабах. Так бы и сказали.
I Have Seen The Truth And It Doesn't Make Any Sense
Аватара пользователя
Интегральный вычислитель
 
Сообщения: 561
Зарегистрирован: 02 апр 2008, 16:04
Откуда: из Леса

Re: 4 курс Схемотехника

Сообщение Alexander » 25 окт 2009, 19:49

кстати а почему нельзя было написать так:
assign eq = i0 & i1 | ~i0 & ~i1 ?
Alexander
 
Сообщения: 19
Зарегистрирован: 26 сен 2009, 23:01

Re: 4 курс Схемотехника

Сообщение Соратник слонопотама » 25 окт 2009, 23:49

Alexander писал(а):кстати а почему нельзя было написать так:
assign eq = i0 & i1 | ~i0 & ~i1 ?


Можно было. А еще можно было так:
reg eq;
always @* eq <= (i0 & i1) | (~i0 & ~i1);
Или так:
assign eq = (i0 == i1); :D :D :D
Аватара пользователя
Соратник слонопотама
 
Сообщения: 250
Зарегистрирован: 16 апр 2008, 13:18

Re: 4 курс Схемотехника

Сообщение Мяут » 03 дек 2009, 04:05

Доброй ночи.

Возникла пара вопросов по 8й работе (микропроцессор).
1. В задании указано, что работа со светодиодами/переключателями ведется по опросу. Насколько я понимаю обмен простой - синхронный с банальным
assign led = dmem[0];
assign swi = dmem[1];
Так ли это?
2. Как организовать задержку при чтении команды/операнда/адреса из FLASH? Хочу попробовать сделать always на posedge (выставление адреса) и negedge (чтение данных), но правильно ли это?

Спасибо.
Мяут
 
Сообщения: 6
Зарегистрирован: 03 дек 2009, 03:57

Пред.След.

Вернуться в Архив "Схемотехника" (осень 2009)

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1