Процессор «Большая жёлтая утка» использует гарвардскую архитектуру, в которой инструкции и данные передаются по разным шинам.
Ядро процессора «Большая жёлтая утка» имеет 16-битную ширину для операций, адресов, инструкций и данных, а также 16 регистров. Инструкции и данные должны быть выровнены по двум байтам. Гарвардская архитектура разделяет адреса инструкций и данных. Реализовано отображение регистров ввода-вывода. Встроен контроллер прерываний, который может обрабатывать немаскируемые прерывания. Процессор поддерживает двойное выполнение, при котором две 8-битные инструкции могут выполняться параллельно. Существует двухуровневый конвейер, и если происходит переход, то необходимо заполнить два пустых такта.
Система прерываний включает в себя контроллер прерываний YD_int.v и менеджер прерываний intc.v. Прерывания в процессоре «Большая жёлтая утка» являются немаскируемыми, и при возникновении прерывания программа переходит на адрес 0x0004, а следующий адрес инструкции исходной программы сохраняется в регистре RC. У процессора есть 8 каналов прерываний, каждый из которых можно настроить на срабатывание по высокому или низкому уровню, нарастающему или спадающему фронту сигнала. Можно настроить два уровня приоритета для каждого канала прерывания, и прерывания с одинаковым приоритетом будут обрабатываться в порядке поступления от младших каналов к старшим. После обработки прерывания номер канала записывается в регистр для идентификации источника прерывания программой.
Шина инструкций имеет ширину 16 бит для адреса и данных. Есть только одно ведущее устройство (ядро процессора) и одно ведомое устройство (память инструкций), поэтому можно считать, что шины нет, и ядро процессора напрямую обращается к памяти инструкций.
Ширина шины данных также составляет 16 бит. Используется структура ведущий-множество ведомых устройств, где ведущим устройством является ядро процессора, а ведомыми устройствами — различные внешние устройства, такие как SRAM, регистры ввода-вывода и другие. Шина данных делит пространство данных на 16 блоков, и выбор блока осуществляется с помощью битов [15:12] адреса. Каждый блок имеет 12 линий адреса [11:0], 16-бит данных и может адресовать 4 килоединицы или 8 килобайт пространства. На шине данных может быть только один ведущий, и все коммуникации инициируются ведущим. Ведущий может одновременно обращаться только к одному блоку, и порядок чтения и записи всех блоков должен быть согласован.
Память RAM расположена на шине данных в блоке s0, с базовым адресом 0x0000 и диапазоном адресов 0x0000–0x0FFF. Моделирование поведения выполняется с использованием Verilog, и память может быть синтезирована в BRAM в среде FPGA IDE. Параметр RAM_AW определяет ёмкость и ширину адреса памяти, которая по умолчанию равна 7, если не задана.
Устройства ввода-вывода расположены на шине данных в блоке s1, с базовым адресом 0x1000 и диапазоном адресов 0x1000–0x1FFF.
Регистр | Смещение адреса | Функция |
---|---|---|
gpio_in_reg | 0x00 | Только чтение, данные входного порта |
gpio_out_reg | 0x01 | Чтение и запись, выходные данные |
Таймер расположен на шине данных в блоке s2, с базовым адресом 0x2000 и диапазоном адресов 0x2000–0x2FFF. Он выполняет функции таймера и генератора сигналов широтно-импульсной модуляции (PWM) и генерирует запрос на прерывание при переполнении таймера. Включает в себя делитель частоты DIV и две группы таймеров T0/T1, которые получают счётные сигналы от главного тактового сигнала через делитель.
intc — это контроллер прерываний, расположенный на шине данных в блоке s3, с базовым адресом 0x3000 и диапазоном адресов 0x3000–0x3FFF. Контроллер прерываний отвечает за управление всеми внешними устройствами и запросами внешних прерываний и взаимодействует с контроллером прерываний внутри ядра процессора «Большая Жёлтая Утка». Может управлять максимум 8 каналами прерываний с двумя уровнями приоритета.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарий ( 0 )