Commit Graph

38 Commits

Author SHA1 Message Date
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