Программируемая логика - это не так уж и сложно. Разберемся вместе.
Ответить

Реализация логики "деление по модулю 3"

Пт дек 18, 2015 17:53:58

Добрый вечер всем обитателям форума! :)

Меня уже неоднократно выручала информация, найденная на просторах РадиоКота.
Но в сложившейся на данный момент ситуации ее оказалось недостаточно, поэтому решила обратиться сюда с вопросом)\

Учусь на 5 курсе. Есть предмет под названием Основы проектирования управляющих вычислительных систем. В рамках данного курса было поставлено задание, в котором имеются кое-какие данные для проектирования системы, но отсутствует какая либо конкретика. Оговорюсь сразу - предмет не совсем по специальности, отсюда и соответствующие проблемы :)

В общем, исходные данные следующие. Необходимо спроектировать необслуживаемую систему с разовым режимом работы, которая обеспечит передачу 204 бит информации каждому из 7 абонентов этой системы. Логика, реализуемая посредством разработанной системы - деление по модулю 3. Далее, необходимо посчитать, сколько будет стоить реализация такой системы.

Конечно, первым делом было совершено (и не единожды) поломничество к преподавателям-специалистам кафедры. Они подсказали несколько замечательных решений, которые, за отсутствием конкретики, вполне удовлетворяют поставленным условиям. Но для написания отчета по заданию данных мне до сих пор не хватает :D

С преподавателем по предмету сошлись на варианте, который предполагает использование МК, на котором, собственно, будет реализовываться заданная логика (например, STM32F103C8), CPLD (Altera MAXII) и интерфейса(ов) SPI.

Так вот, вопрос к знатокам - как описать принцип работы такой системы?

Буду благодарна любым предложениям!

Re: Реализация логики "деление по модулю 3"

Вс дек 20, 2015 20:59:50

Мало что понял, но допустим имея задачу передать 204 бита данных для одного из семи адресатов, да еще по SPI, могу предположить "дубовое" решение:
1) Пусть имеем формат данных кратный 8 битам. Тогда для передачи 204 бит нужно 204/8=25,5 байт;
2) Округляя до большего целого (не можем передать пол байта и заткнуть МК) получаем 26 байт или 208 бит;
3) Имея "лишние" 4 бита, через них можно назначить адрес уникальный для каждого абонента.
В CPLD делаем выделение фронтов сигнала выбора (CS).
Если переход 1->0, то заталкиваем данные в сдвиговый регистр длиной 208 бит (из МК в CPLD MAXII) и настраиваем внутренний счетчик на 204.
К старшим регистрам в CPLD подключаем дешифратор адреса.
Если переход 0->1, то начинаем передавать из регистровой цепочки адресату выталкивая по одному биту со стробом.
PS. Правда причем тут "деление по модулю три" - не знаю :dont_know:
Ответить