Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Снова мастер для SOPC
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
torik
Всем привет. Как-то я тут говорил, что можно в квартусе 7.2 сделать мастер без HDL, чтобы сигналы типа write_n, read_n транслировались к модулю верхнего уровня. Хм... может я ошибся, они почему-то не лезут наврх.

Вот состряпал я тогда мастер на основе HDL файла, где эти сигналы транслируются на выход:

Цитата
module reader_mm (
avm_m0_address,
avm_m0_read_n,
avm_m0_readdata,
avm_m0_readdatavalid,
avm_m0_waitrequest,

i_addr,
i_r_n,
o_rdata,
o_rdatavalid,
o_wait
);

output [23:0] avm_m0_address; //это мастер
output avm_m0_read_n;
input [15:0] avm_m0_readdata;
input avm_m0_readdatavalid;
input avm_m0_waitrequest;

input [23:0] i_addr; //наружу
input i_r_n;
output [15:0] o_rdata;
output o_rdatavalid;
output o_wait;

assign avm_m0_address = i_addr;
assign avm_m0_read_n = i_r_n;
assign o_rdata = avm_m0_readdata;
assign o_rdatavalid = avm_m0_readdatavalid;
assign o_wait = avm_m0_waitrequest;

endmodule

Подобный же для записи.
И вот, собрал систему из такого модуля и on_chip памяти. Поглядел в симуляторе - читает.

- Но, во-первых, когда стал использовать его для чтения DDR, увидел что чтение не пакетами, а слово, ожидание, слово, ожидание... Как ему указать чтобы читал пакетами (в арбитраже выставляю скажем 50)?
- Во-вторых, я обратил внимание, что нету выбора глобального тактового. Не знаю нужен ли он, ведь тут только assign-ы. Или для генерируемой сопцом логики это необходимо - тогда как его задать? Не вкуриваю, напишите пожалуйста куда его в этом HDL прикрутить... Управление всеми сигналами идет по тактовому для памяти.











Вот добавляю я gls_clk, который как следует из доки будет распознан как глобальный сигнал - редактор компонентов его все-равно как slave найдет...
Он же глобальный, какой тут нахрен слейв?
CaPpuCcino
Цитата(torik @ Apr 25 2008, 15:04) *
Всем привет. Как-то я тут говорил, что можно в квартусе 7.2 сделать мастер без HDL, чтобы сигналы типа write_n, read_n транслировались к модулю верхнего уровня.

об чём речь, товарищ? не у каждого участника форума такая замечательная память. если вы уж ссылаетесь на себя прежднего, пишите в ту же тему или дайте ссылку на этот разговор.
torik
Да я, собственно, уже и не помню где лежит эта тема. Да и не важно, важен сам факт. И далее следующий вопрос...

Ё-моё, да вот же тема, прямо рядом)))
http://electronix.ru/forum/index.php?showtopic=39521
Волощенко
Цитата(torik @ Apr 25 2008, 14:04) *
Как-то я тут говорил, что можно в квартусе 7.2 сделать мастер без HDL, чтобы сигналы типа write_n, read_n транслировались к модулю верхнего уровня. Хм... может я ошибся, они почему-то не лезут наврх.

Тема интересная, но не понятно, зачем это все делается... Почему мастер? Работаем с NiosII или без?
Для slave port у меня, к примеру, такой заголовок (часть после второго комента для выхода в верхний модуль):
module a_input_buf (
//Signals from Avalon-MM slave port
csi_clockreset_clk, csi_clockreset_reset_n,
avs_s1_address, avs_s1_chipselect_n,
avs_s1_read_n, avs_s1_write_n,
avs_s1_writedata, avs_s1_readdata,
//Signals for input buf ADC-port
data_in, stat_in,
clk_in, bank_in,
adr_out, , stat_out
);
Все такты внутри этого модуля по csi_clockreset_clk, думаю, его через assign, можно вывести на верхний модуль.
torik
Ниос тоже имеется в системе...
Мастер потому, что записью рулит внешнее устройство. Можно, наверное, и слейвом сделать, но мне так удобнее. В кратце - одно "внешенее устройство" записывает видео, два других читают (один читает само видео, другой - всякие кнопки и т.п.)...
Вобщем, запустить запустил, тольк частоту на верхний уровень не выводил, она там и так быть.

Теперь к пакетам. Память DDR, все делается на плате Nios II Embedded Evaluation Kit, Cyclone III Edition. Чтение/запись идет, такое впечатление, с латентностью 2. Это же не реально, зачем нужен такой контроллер памяти (в сопсбилдере который родной), тут явно что-то не то. Почему латентность 2, вот картинка с waitrequest приложена.

Что здесь можно предположить - clock_bridge нужен?
torik
Вобщем-то, мосты использовать, похоже, корректнее будет, чем без них. Да и ресурсов меньше уходит... Вобщем, разобрался вроде...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.