12.12.2015, 18:13
|
#201
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: ПЛИС С чего начать?
Оно понятно. Но ведь мне их солить не надо. Когда все будет готово, посмотрим, куда оно поместится.
|
|
|
|
12.12.2015, 18:58
|
#202
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: ПЛИС С чего начать?
Ну, в общем-то да, влёт в 100-ногий корпус уже произошёл.
Следующий минимум 144 пина. ![Рот до ушей](images/smilies/icon_doushei.gif)
Пока, правда, с одним источником питания...
|
|
|
|
12.12.2015, 20:37
|
#203
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: ПЛИС С чего начать?
Мне бы хватило и 40 ног. Боюсь, придется искать что-то в QFN. На плате места катастрофически мало.
Помогите разобраться. Задача - при опускании nSSIN задвигать в MISOOUT сначала значение VALUE, а затем передавать MOSSIN, как в обычном регистре сдвига.
Код:
|
module spi_slave16b
(
input wire nSSIN,
input wire SCKIN,
input wire MOSIIN,
output wire MISOOUT,
input [15:0] VALUE
);
reg [15:0] spi_reg;
reg [5:0] bit_cnt = 5'h0;
assign MISOOUT = ~nSSIN ? spi_reg[15] : 1'bz;
always @ (negedge SCKIN)
if (~nSSIN)
begin
if (bit_cnt ‹ 5'hA)
begin
spi_reg ‹= { VALUE[14:0], MOSIIN };
bit_cnt ‹= bit_cnt + 1'b1;
end
else
spi_reg ‹= { spi_reg[14:0], MOSIIN };
end
else
bit_cnt = 5'h0;
endmodule |
Последний раз редактировалось Easyrider83; 12.12.2015 в 21:25.
|
|
|
|
12.12.2015, 22:04
|
#204
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: ПЛИС С чего начать?
Сообщение от Easyrider83
|
Мне бы хватило и 40 ног.
|
Придётся избавляться от всего "лишнего", в том числе и от контроля принятых битов, от синхронизации с глобал клоком и т.д... По перепаду nSS можно передавать принятые модулем данные дальше.
Нужен ли двусторонний обмен данными? ...хотя он ни на что не влияет.
Давайте определяться с тем, что реально нужно в ПЛИСке.
|
|
|
|
12.12.2015, 22:07
|
#205
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: ПЛИС С чего начать?
В общем, да, надо делать все на 16-битных регистрах сдвига. Вот на этом я и застрял пока.
Вроде получилось.
Код:
|
module spi_slave16b
(
input wire nSSIN,
input wire SCKIN,
input wire MOSIIN,
output wire MISOOUT,
input [15:0] READ_DATA,
output reg [15:0] WRITE_DATA
);
reg [15:0] spi_reg;
reg [5:0] bit_cnt;
assign MISOOUT = ~nSSIN ? spi_reg[15] : 1'bz;
always @ (negedge SCKIN)
if (~nSSIN)
begin
if (bit_cnt ‹ 5'd15)
begin
if (bit_cnt == 5'b0)
spi_reg = READ_DATA;
bit_cnt ‹= bit_cnt + 5'b1;
end
spi_reg ‹= { spi_reg[14:0], MOSIIN };
end
else
bit_cnt = 5'h0;
always @ (posedge nSSIN)
WRITE_DATA ‹= spi_reg;
endmodule |
На входе 16 бит, на выходе столько же.
Последний раз редактировалось Easyrider83; 12.12.2015 в 22:54.
|
|
|
|
12.12.2015, 23:01
|
#206
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: ПЛИС С чего начать?
Суперсложный параметрический SPI_slave модуль, без контроля чего-либо вообще...
Ширина (W) по умолчанию 16 бит.
При подключении с параметром принимает значение параметра. При вызове без параметра, ширина, соответственно, умолчальная.
На верилоге подключается так, в скобках после решетки параметр.
SPIslave #(32) имя_экземпляра(.SCKIN(SCK), .MOSIIN,(MOSI), .MISOOUT(MISO), .dataOUT(SPIdata));
PHP код:
|
// SPI Slave module
// CPOL=0, CPHA=0, MSB first
module SPIslave #(parameter W = 16)
(
input wire SCKIN,
input wire MOSIIN,
output wire MISOOUT,
output reg [W-1:0] dataOUT = 0
);
assign MISOOUT = dataOUT[W-1];
always @ (negedge SCKIN) begin
dataOUT ‹= { dataOUT[W-2:0], MOSIIN };
end
endmodule
|
Последний раз редактировалось omercury; 12.12.2015 в 23:13.
|
|
|
Сказали "Спасибо" omercury
|
|
|
12.12.2015, 23:14
|
#207
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: ПЛИС С чего начать?
Да, с параметром красивее. Спасибо.
|
|
|
|
13.12.2015, 03:46
|
#208
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: ПЛИС С чего начать?
Сообщение от Easyrider83
|
1. Делитель частоты 1/1250
2. 10 SPI 8 бит
3. 10 ШИМ 8 бит
Итого 207 элементов израсходовал.
|
1) делитель частоты 1/1250
2) 1 SPI 16 бит
3) 10 ШИМ 8 бит
Индивидуальная загрузка каждого канала, всё параметризовано,
циклон-2 - 155
Мах-II - 157 ячеек.
UPD
256 ШИМ 8 бит - 2710 макро.
Последний раз редактировалось omercury; 13.12.2015 в 12:14.
|
|
|
Сказали "Спасибо" omercury
|
|
|
16.12.2015, 11:54
|
#209
|
Временная регистрация
Регистрация: 14.11.2011
Адрес: г. Хабаровск
Сообщений: 71
Сказал спасибо: 18
Сказали Спасибо 59 раз(а) в 17 сообщении(ях)
|
Re: ПЛИС С чего начать?
Сообщение от pambaru
|
EP2C20Q240C8 9 шт.
Я уже давно такие не использую, поэтому:
подарю, кому нужно, бесплатно, т.е. даром.
|
Оплачу почтовые расходы.
Разрабатываю ускоритель квадрологики, нужно ячеек побольше, если удастся под эти чипы плату развести, или подскажете где можно макетку на 240 ног приобрести.
Кстати, может подскажете "с чего начать". Я пока только пытаюсь вникнуть в тему...
Надо на Верилоге сделать микроядро, вроде процессора, работающее только с двумя битами, для операций с квадрологикой, вот для этого http://geektimes.ru/post/267314/
По сути операции надо задать простой таблицей https://bitbucket.org/PavelZX/uef/do...0%BA%D0%B0.xls
Самое трудное как организовать связь нескольких ячеек одновременно, пока у меня в голове кроме паутины ничего не возникает определённого.
Последний раз редактировалось PavelZX; 16.12.2015 в 12:08.
|
|
|
|
16.12.2015, 13:36
|
#210
|
Прописка
Регистрация: 09.02.2011
Сообщений: 164
Сказал спасибо: 1
Сказали Спасибо 27 раз(а) в 22 сообщении(ях)
|
Re: ПЛИС С чего начать?
Сообщение от PavelZX
|
Самое трудное как организовать связь нескольких ячеек одновременно, пока у меня в голове кроме паутины ничего не возникает определённого.
|
Этой проблемой Вам сюда http://arxiv.org/pdf/1512.03547v1.pdf
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 05:40.
|
|