Перейти к содержанию
    

OPB <-> User Core

Уважаемые спецы!

Приходилось ли вам цеплять к шине OPB свое ядро (user core - в моем случае это - контроллер 64-битной локальной шины) при помощи OPB IPIF (v3.01a)???

Если да, то еще несколько вопросов:

1) Каким образом осуществляли моделирование?

2) У меня контроллер 64-битный, а "переходник" OPB IPIF - 32 битный! Нельзя OPB IPIF расширить до 64-бит, ведь сама шина OPB поддерживает 64???

Буду благодарен за помощь...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1) руки не доходили

2) глянул доку на OPBv2, есть параметр C_OPB_DWIDTH, его можно в ручную назначить в MHS файле, например

BEGIN opb_v20
PARAMETER INSTANCE = mb_opb
PARAMETER HW_VER = 1.10.c
PARAMETER C_EXT_RESET_HIGH = 1
PARAMETER C_OPB_DWIDTH = 64
PORT SYS_Rst = sys_rst_s
PORT OPB_Clk = sys_clk_s
END

Но вот каков будет результат :cranky:

Еще в памяти мелькают обрывки "OPB64 только для PPC".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так это сама ширина самой шины OPB..

Вот вырезка из так называемого "переходника", который я сгенерил с помощью XPS (Xilinx Platform Studio):

 

-- DO NOT EDIT BELOW THIS LINE ---------------------

-- Bus protocol parameters, do not add to or delete

C_BASEADDR : std_logic_vector := X"00000000";

C_HIGHADDR : std_logic_vector := X"0000FFFF";

C_OPB_AWIDTH : integer := 32;

C_OPB_DWIDTH : integer := 32;

C_USER_ID_CODE : integer := 3;

C_FAMILY : string := "virtex2p";

C_AR0_BASEADDR : std_logic_vector := X"FFFFFFFF";

C_AR0_HIGHADDR : std_logic_vector := X"00000000";

C_AR1_BASEADDR : std_logic_vector := X"FFFFFFFF";

C_AR1_HIGHADDR : std_logic_vector := X"00000000"

-- DO NOT EDIT ABOVE THIS LINE ---------------------

 

Получается я не могу его изменить??!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А пробовали сгенерить этот переходник при указании шины в 64 бита. Поидее и IPIF то же должен родиться 64 битным.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дело в том, что уже в процессе генерации "переходника" максимальная ширина данных = 32 и баста! А вот еще надо попробовать сгенерить "переходник" на шину PLB, может там доступны все 64 разряда!?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дело в том, что уже в процессе генерации "переходника" максимальная ширина данных = 32 и баста! А вот еще надо попробовать сгенерить "переходник" на шину PLB, может там доступны все 64 разряда!?

Не знаю, поможет или нет, но на opencores.org лежат переходники wishbone->OPB, OPB->wishbone. Можно попробовать...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробовал на PLB - 64 бита доступно!!! Ура!

Но вопрос о моделировании все-равно не снят!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В последнее время довольно часто моделлирую системы MicroBlaze\PPC + стандартная перифирия из EDK (шины, котроллеры памяти, порты ввода-вывода). Думаю что моделирования такой системы с user core должно нормально работать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для моделирования пользуюсь обычным ModelSim. В EDK собираю необходимую конфигурацию, генерирую "Sim Model Generation", а дальше как обычно - создается проект для ModelSim, пишется тестбенч и вперед...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...