реклама на сайте
подробности

 
 
> Снова мастер для SOPC, с HDL
torik
сообщение Apr 25 2008, 11:04
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 113
Регистрация: 1-11-05
Пользователь №: 10 359



Всем привет. Как-то я тут говорил, что можно в квартусе 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 найдет...
Он же глобальный, какой тут нахрен слейв?


--------------------
Быть. torizin-liteha@yandex.ru
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 5)
CaPpuCcino
сообщение Apr 25 2008, 21:36
Сообщение #2


тоже уже Гуру
******

Группа: Свой
Сообщений: 2 047
Регистрация: 13-06-05
Из: Кёлн - Санкт-Петербург
Пользователь №: 5 973



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

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


--------------------
И снова на арене цирка - дрессированные клоуны!! Оказываем консультации по электронике за симпу круглосуточно.
Go to the top of the page
 
+Quote Post
torik
сообщение Apr 28 2008, 04:41
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 113
Регистрация: 1-11-05
Пользователь №: 10 359



Да я, собственно, уже и не помню где лежит эта тема. Да и не важно, важен сам факт. И далее следующий вопрос...

Ё-моё, да вот же тема, прямо рядом)))
http://electronix.ru/forum/index.php?showtopic=39521


--------------------
Быть. torizin-liteha@yandex.ru
Go to the top of the page
 
+Quote Post
Волощенко
сообщение Apr 28 2008, 18:50
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 347
Регистрация: 16-02-06
Из: г.Николаев, Украина
Пользователь №: 14 377



Цитата(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, можно вывести на верхний модуль.
Go to the top of the page
 
+Quote Post
torik
сообщение Apr 29 2008, 04:49
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 113
Регистрация: 1-11-05
Пользователь №: 10 359



Ниос тоже имеется в системе...
Мастер потому, что записью рулит внешнее устройство. Можно, наверное, и слейвом сделать, но мне так удобнее. В кратце - одно "внешенее устройство" записывает видео, два других читают (один читает само видео, другой - всякие кнопки и т.п.)...
Вобщем, запустить запустил, тольк частоту на верхний уровень не выводил, она там и так быть.

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

Что здесь можно предположить - clock_bridge нужен?
Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
Быть. torizin-liteha@yandex.ru
Go to the top of the page
 
+Quote Post
torik
сообщение May 5 2008, 04:44
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 113
Регистрация: 1-11-05
Пользователь №: 10 359



Вобщем-то, мосты использовать, похоже, корректнее будет, чем без них. Да и ресурсов меньше уходит... Вобщем, разобрался вроде...


--------------------
Быть. torizin-liteha@yandex.ru
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 20:02
Рейтинг@Mail.ru


Страница сгенерированна за 0.0141 секунд с 7
ELECTRONIX ©2004-2016