05.09.2015, 23:55
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.09.2009
Сообщений: 1,899
Сказал спасибо: 470
Сказали Спасибо 408 раз(а) в 255 сообщении(ях)
|
Re: FIFO (CPLD+SRAM)
Сообщение от omercury
|
Кстати, в MAXII 8 килобит встроенной SRAM.
В квартусе:
Меню Tool \ Mega Function Plugin Manager выбираешь Create a new custom megafunction variation, далее Memory Compiler -› FIFO в левой части, в правой формат вывода и имя файла \ next -› отвечаешь на вопросы и получаешь то, что хочешь.
|
8 килобайт мало! Данные которые принемает плис пишутся с частотой 12мбайт/с, а мк stm32f100 по spi 2 мбит/с максимум может принемать, да плюс мк должен и другими делами заниматся кроме обработки spi.
__________________
Я бы изменил весь мир, но бог не дал исходников
|
|
|
|
05.09.2015, 23:59
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: FIFO (CPLD+SRAM)
Юра, stm32f100 по SPI может принимать данные со скоростью Fcpu/2 то есть со скоростью 12Мбит/с.
Сообщение от Uragan90
|
да плюс мк должен и другими делами заниматся
|
А для этого придуман DMA.
|
|
|
Сказали "Спасибо" omercury
|
|
|
06.09.2015, 00:02
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.09.2009
Сообщений: 1,899
Сказал спасибо: 470
Сказали Спасибо 408 раз(а) в 255 сообщении(ях)
|
Re: FIFO (CPLD+SRAM)
Хотя мне бы хватило внутреннего фифо с организацией 8000 8ми битных слова.
__________________
Я бы изменил весь мир, но бог не дал исходников
|
|
|
|
06.09.2015, 00:12
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.09.2009
Сообщений: 1,899
Сказал спасибо: 470
Сказали Спасибо 408 раз(а) в 255 сообщении(ях)
|
Re: FIFO (CPLD+SRAM)
Мне интересна сама идея такого рода фифо на срам. Интерес чисто спортивный ну и конечно чтоб заработала, а не просто на словах
__________________
Я бы изменил весь мир, но бог не дал исходников
|
|
|
|
06.09.2015, 00:28
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,072
Сказал спасибо: 3,054
Сказали Спасибо 3,223 раз(а) в 2,188 сообщении(ях)
|
Re: FIFO (CPLD+SRAM)
Сообщение от Uragan90
|
Мне интересна сама идея такого рода фифо на срам. Интерес чисто спортивный ну и конечно чтоб заработала, а не просто на словах
|
Так займись... Вот, 1-я, 2-я и 7-я ссылки Яндекса, на opencores.org тож можно покопаться.
|
|
|
Сказали "Спасибо" ForcePoint
|
|
|
06.09.2015, 04:47
|
|
Вид на жительство
Регистрация: 24.08.2015
Сообщений: 252
Сказал спасибо: 7
Сказали Спасибо 50 раз(а) в 36 сообщении(ях)
|
Re: FIFO (CPLD+SRAM)
Сделай на внутренней памяти епм570 небольшое служебное фифо на внутренней двухпортовой памяти, запись все время идет через него и при свободной внешней памяти переливается в неё. А когда внешняя память занимается процессором, заполняется это внутреннее фифо и как только внешняя освобождается, накопленное сразу переливается во внешнюю.
|
|
|
|
06.09.2015, 06:28
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.09.2009
Сообщений: 1,899
Сказал спасибо: 470
Сказали Спасибо 408 раз(а) в 255 сообщении(ях)
|
Re: FIFO (CPLD+SRAM)
Сообщение от costco
|
Сделай на внутренней памяти епм570 небольшое служебное фифо на внутренней двухпортовой памяти, запись все время идет через него и при свободной внешней памяти переливается в неё. А когда внешняя память занимается процессором, заполняется это внутреннее фифо и как только внешняя освобождается, накопленное сразу переливается во внешнюю.
|
Спасибо! Об этом нужно подумать, но идея классная, интересная!!!
__________________
Я бы изменил весь мир, но бог не дал исходников
|
|
|
|
07.09.2015, 15:38
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,294
Сказал спасибо: 442
Сказали Спасибо 1,048 раз(а) в 706 сообщении(ях)
|
Re: FIFO (CPLD+SRAM)
Цитата:
|
Тут нужно два счётчика адреса для записи и чтения и схемы сровнения адресов для определения пустого и полного срам
|
Вообще-то для логики FIFO нужен один реверсивный счетчик. Запись выполняет инкремент, чтение - декремент адреса. Два счетчика - это кольцевой буфер.
__________________
misterdi<@>i.ua
|
|
|
|
07.09.2015, 15:46
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.09.2009
Сообщений: 1,899
Сказал спасибо: 470
Сказали Спасибо 408 раз(а) в 255 сообщении(ях)
|
Re: FIFO (CPLD+SRAM)
Сообщение от MisterDi
|
Вообще-то для логики FIFO нужен один реверсивный счетчик. Запись выполняет инкремент, чтение - декремент адреса. Два счетчика - это кольцевой буфер.
|
Как раз видимо и нужен кольцевой буфер. Я прикладываю картинку поясняющую работу, но первый байт нужно писать сразу в выходной регистр и по логике full empty заполнять sram.
вот начал писать но многое ещё не понятно.
Цитата:
|
module sram_control(
input clk, //основной такт плис
input wd, //запись в sram, (высокий приоритет)
input request, //запрос данных
output reg ack, //подтверждение готовности данных
output empty, //sram пустая (читать нельзя)
output full, //sram полная (писать нельзя)
output [17:0] addr, //адрес sram
input [15:0] din, //вход данных для записи во внешнюю sram
output reg [15:0] dout, //выход данных для чтения из sram
inout [15:0] dinout //двунаправленный порт данных для подключения непосредственно к sram
);
reg rdy = 0;
reg [15:0] buff = 0; //буфер 3х состояний
reg [18:0] count_w = 0; //регистр счётчика записи
reg [18:0] count_r = 0; //регистр счётчика чтения
//счётчик адреса записи
always @(posedge clk)
begin
if(wd) count_w = count_w + 1;
end
//счётчик адреса чтения
always @(posedge clk)
begin
if(rdy)
count_r = count_r + 1'b1;
end
always @(posedge clk)
begin
if(wd) buff = din;
else
begin
buff = 16'bz;
if(rdy)
dout = dinout;
end
end
assign dinout = buff;
assign addr = (!wd && rdy)? count_r : count_w ;
assign full = ((count_w[17:0] == count_r[17:0]) && (count_w[18] ^ count_r[18]))? 1'b1 : 1'b0;
assign empty = ((count_w[17:0] == count_r[17:0]) && (!(count_w[18] ^ count_r[18])))? 1'b1 : 1'b0;
endmodule
|
__________________
Я бы изменил весь мир, но бог не дал исходников
|
|
|
|
07.09.2015, 17:20
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: FIFO (CPLD+SRAM)
Сообщение от MisterDi
|
Вообще-то для логики FIFO нужен один реверсивный счетчик.
|
Дмитрий, Вы меня пугаете....
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 05:44.
|
|