Полная версия этой страницы:
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
Но вот каков будет результат

Еще в памяти мелькают обрывки "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 разряда!?
Цитата(RKOB @ Sep 3 2005, 14:06)
Дело в том, что уже в процессе генерации "переходника" максимальная ширина данных = 32 и баста! А вот еще надо попробовать сгенерить "переходник" на шину PLB, может там доступны все 64 разряда!?
Не знаю, поможет или нет, но на opencores.org лежат переходники wishbone->OPB, OPB->wishbone. Можно попробовать...
Попробовал на PLB - 64 бита доступно!!! Ура!
Но вопрос о моделировании все-равно не снят!!!
В последнее время довольно часто моделлирую системы MicroBlaze\PPC + стандартная перифирия из EDK (шины, котроллеры памяти, порты ввода-вывода). Думаю что моделирования такой системы с user core должно нормально работать.
Если не секрет, то чем пользуетесь, случайно не BFM Simulation??
Для моделирования пользуюсь обычным ModelSim. В EDK собираю необходимую конфигурацию, генерирую "Sim Model Generation", а дальше как обычно - создается проект для ModelSim, пишется тестбенч и вперед...
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.