5de2386bb5
Тактовый сигнал, который распространяется по всему проекту, берется с блока PLL. Он умножен на 4 от значения частоты на соответствующей ножке ПЛИС и теперь все модули внутри ПЛИС работают на частоте 100МГц . Так гарантировано получаем один и тот же синхросигнал во всей схеме. Из книжки ПЛИС Xilinx Тарасова И. Е.;
2024-10-21 18:27:29 +03:00
dfe22a8ab2
Разные способы зачитать из ячейки памяти адреса устройства и ригистра.
2024-06-13 16:27:00 +03:00
072de08545
Исправил ошибку в подключении PBack.
2024-06-11 17:16:18 +03:00
0b80c8a3d2
Начали тестирование параллельной шины. Для контроля счетчика полного круга работы с адресным пространством шины добавили новый регистр. Проект при этом изменился - теперь в каждом блоке есть базовый регистр, от которого начинаем считать остальные.
2024-06-11 16:21:14 +03:00
cd65199ea6
Здесь выделено семь бит в регистре SB_CMD для определения полупериода синхросигнала
2024-06-10 18:25:59 +03:00
2b055193af
Этот вариант работает стабильно. Таймаут перенесли в конец любой передачи, чтобы вывести периферийное устройство в начальное состояние. Линия занята SB_CONTROL_LOWER(1) = '1' - появится в начале передачи и закончится после таймаута.
2024-06-10 17:52:14 +03:00
92fd7969bc
Добавили аппаратный контроль таймаута в шине для готовности периферийный плат. Добавили в регистр контроля шины состояние передачи (бит 1). Уменьшили период такта по сихросигналу на четверть.
2024-06-07 12:21:36 +03:00
6b28fad4b1
Начали тестирование последовательной шины. S_RES (ножка 30С управляется из сервисного регистра SRV_LEDS(14)). Синхросигнал инвертирован в SB. Данные от периферийных устройств неверно заходили в фильтр (исправлено). ПО проходит тесты, пока не работает.
2024-06-07 10:50:55 +03:00
f72d466925
Исправил работу светодиодов в регистре LEDS блока TEST. Поменял местами Er0_in и Er0_out - не схеме названы некорректно.
2024-04-11 18:49:35 +03:00
5adc23b007
Три блока на шине: PWM, LedController и TEST. В TEST можно прочитать линию Er0_in, а так же управлять светодиодами FPGA_LEDS с пятого по второй. Первый сетодиод остался как индикатор работы ПЛИС.
2024-04-09 17:11:52 +03:00
a9a45aaad4
Изменили все LOWER и UPPER адреса в словах так как контроллер передает сначала младший байт потом старший.
2024-04-08 12:29:11 +03:00
d5abda1db4
400МГц
2024-04-04 18:01:15 +03:00
4cb6771ea5
Добавил регистр номера сборки в LedController.
2024-04-04 16:27:31 +03:00
e0197a05ac
Добавил в проект оптическую шину.
2024-04-04 14:15:38 +03:00
9394bee3c3
Добавил блок работы с МАЗ, но надо детально проверять состояния автомата. Код переписал, но много путаницы было в проекте для SP2, из-за этого уверености в работе модуля нет.
2024-04-03 18:51:31 +03:00
6840fdc8d8
Добавил в проект RAM9X8_Loader.
2024-04-03 15:17:28 +03:00
51ae2e64a4
Добавил в проект LedController. Начал реализацию загрузчика.
2024-04-02 18:08:20 +03:00
da0eef977c
Добавил в проект модуль ШИМ (регистры согласно описанию в адресном пространстве). Подключил модуль к портам вводы/вывода, кроме внешнего error. Его пока завел на константу. В каждый цифровой фильтр добавил библиотечный элемент D-тригера (dff), тем самым сместив вправо еще на один такт все сигналы. Такую прошивку надо еще раз тестировать.
2024-04-01 18:52:02 +03:00
512359714c
Начал разработку нового блока PWM.
2024-03-28 18:35:51 +03:00
845f3fd223
Исправили в соответствии с описанием адресного пространства блок ParallelBusMaster в части счетчика ошибок. Убрали из проекта библиотечные элементы фильтров, оставили один. Добавили синхронный блок инверсии сигналов для работы SerialBus. Настроили буферы на 96 ногой шине в соотвтествии с режимом работы NOT LOAD. Чтобы исправить назначение ног, предназначенных по умолчанию только для конфигурации, необходимо было в Assigments > Device > Device & Pin options > Dual Purpose Pins > двойным кликом на интересующих пинах выбрать regular I/O.
...
Info (169125): Pin ~ALTERA_ASDO_DATA1~ is reserved at location 12 (Здесь у нас nSBclk);
Info (169125): Pin ~ALTERA_FLASH_nCE_nCSO~ is reserved at location 14 (LoadMode);
Info (169125): Pin ~ALTERA_DCLK~ is reserved at location 23 (остается только для конфигурации);
Info (169125): Pin ~ALTERA_DATA0~ is reserved at location 24 (остается только для конфигурации);
Info (169125): Pin ~ALTERA_nCEO~ is reserved at location 162 (ТК4);
2024-03-28 15:54:34 +03:00
5370ab4575
Для конвертирования используем библиотеки use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all. Добавили ParallelBusMaster на схему. Изменили условия чтения и записи в блоках с адресным пространством. При 200МГц синхросигнале скорость передачи двух байт (за два такта) уменьшилась до 110 нс.
2024-03-28 13:47:49 +03:00
2ece286472
Необходимо конвертировать разные типы данных.
2024-03-27 16:40:59 +03:00
f04720071b
Начал разработку нового блока ParallelBus.
2024-03-26 18:54:15 +03:00
fdccda960f
Добавил блок SerialBusMaster. Описание адресного пространства https://docs.google.com/spreadsheets/d/1YiDgJD9m-7imFdXdC5MSfWhiwEYSqdSyA5iGffnVPWk/edit#gid=159505595 .
2024-03-26 14:29:23 +03:00
2a0c20ebc0
Перешли на 200МГц
2024-03-26 11:59:54 +03:00
4b3a28ebbc
Заменили все DigitalFilterXXX на один расширяемый с помощью параметров модуль
2024-03-26 11:50:50 +03:00
5fba6ce8b4
Заменил RAM9X8 на расширяемый с помощью параметров RAM.
2024-03-26 10:23:20 +03:00
f3a7b565e4
Ввели фазовый сдвиг на 4 такта для сигнала WE, так как в режиме записи не успевали выставляться данные на шину данных и ПЛИС зачитывала нули по всем битам. Это помогло стабилизировать запись. Чтение работает хорошо. Полный цикл записи или чтения бвух байт равен примерно 200нс.
2024-03-19 18:39:41 +03:00
b1038bfc75
Убрали конечный автомат из работы RAM9X8, шина заработала с синхроклоком 100МГц.
2024-03-19 11:40:31 +03:00
99cb989e51
Изменили работу конечного автомата в памяти RAM9X8.
2024-03-19 10:39:11 +03:00
a398de1515
Зафильтровали, используя фазовый сдвиг на один такт, сигналы OE, CE, WE. Перед этим еще дальше сдвинули чтение адреса и проверку OE после спада CE (до 120 нс). Сейчас шина работает стабильно. Так же в этой редакции заработали выходы блока PLL (100МГц и 200МГц).
2024-03-15 16:35:16 +03:00
f6de1e103d
В работе модуля RAM9X8 сдвинули на один такт после спада CE проверку адреса.
2024-03-15 13:18:52 +03:00
afea08ff2d
Протестировали память. Работает. Сделали новую RAM9X8, где 512 ечеек по 8 бит данных. Избавились от ножек BL.
2024-03-14 18:30:15 +03:00
beef10a15b
В описании предыдущего коммита ошибка: память определялась как синхронная.
...
Увеличили размерность памяти 8х32. Со стороны контроллера ввели ножки nBL. Это выбор байта (от 0 до 3) в ячейки памяти. Добавили описание блока памяти. После синтеза, который стал занимать намного больше времени, блок памяти перестал определятся как синхронная память. Данные по загрузке ПЛИС:
Total logic elements 10,706 / 24,624 ( 43 % )
Total combinational functions 6,603 / 24,624 ( 27 % )
Dedicated logic registers 8,249 / 24,624 ( 33 % )
Total registers 8249
Total pins 25 / 149 ( 17 % )
Total PLLs 1 / 4 ( 25 % )
2024-03-14 11:27:47 +03:00
8c0178953a
Изменили блок памяти RAM в соответствие с диаграммой на странице 571 технического описания GD32F403_User_Manual. После синтеза quartus распознал блок как асинхронную память. Вывели на светодиоды синхросигналы из блока PLL для проверки на осциллографе.
2024-03-12 17:54:31 +03:00
71cbaf57d8
Для согласования работы с процессором было принято решение перейти на питание ПЛИС 3.3В. Внесли изменения в проект.
2024-03-12 16:30:45 +03:00
6bb13aec36
Откорректировал блок памяти RAM для возможной работы с двумя устройствами одновременно. Одно из них - внешний контроллер. Вторым будет блок сбора информации для обновления данных. Сейчас в блоке памяти нет взаимной блокировки для двух независимых процессов и, существует возможность записать в одну и ту же ячейку памяти в один и тот же момент времени разные значения. В нашем проекте поскольку дальше будет введено ограничение, которое обяжет писать служебные и критические (напрямую участвующие в алгоритмах работы преобразователем частоты) данные только в определенные заранее известные регистры, такое невозможно. Память на уровне использования программистом будет поделена две области. Ту, в которую можно писать и считать записанное значение и ту, из которой можно будет только считать значения. Со стороны устройства будут использованы для записи только те ячейки, которые процессор будет только читать. Со стороны процессора будут использованы для записи только те ячейки, которые блоки внутри устройства будут только читать.
2024-03-04 18:16:35 +03:00
7ee9a34a42
Начали проект переноса ПО под Альтеру. В проект MainController добавлен блок умножителя частоты и блок памяти на 255 ячеек по 16 бит данных. В память можно записать значение в ячейки и прочитать их оттуда. Преднастроек или каких либо зарезервированных ячеек пока нет. В отличие от проекта для Spartan2 здесь не будет ServiceDataDispatch. Вместо него данные из MCU будут сразу же грузиться в логические блоки (PWM, HWP и другие).
2024-03-04 17:16:43 +03:00