Вход

Просмотр полной версии : ПЛИС и всё что с ними связано



Страницы : 1 2 3 4 5 [6] 7 8

s_kosorev
18.03.2016, 21:16
очень не хочется использовать, LVC ALVC
max3000a возможно если вложить логику, чуть поболее чем level shift то может у основного чипа можно взять менее "ногастый" корпус

Totem
27.03.2016, 21:27
максимально , что есть под рукой 3256 144, из старых, ног не хватает, flex 8000 есть о 160 ногах, на простенький адаптер хватит ле.

Mister
27.03.2016, 23:31
Добавил буфер 74HC573 на чтение по схеме Ленинграда и немного переделал исходники альтеры. Все работает. Если кому-то интересно, могу выложить исходники в соответствующей теме.

Выкладывай

.jackson
01.04.2016, 17:55
Выкладывайhttp://zx-pk.ru/showthread.php?t=10316&page=33&p=865934&viewfull=1#post865934

Sayman
23.04.2016, 17:20
на ahdl для обозначения инверсного сигнала, типа /M1 или /MR Допускается именно такая же запись. Т.е. символ "/" разрешён. А как вместо наклонной на vhdl обозначить инверсный сигнал?

Ewgeny7
23.04.2016, 17:47
как хочешь.
Частенько так - хххх_n (MREQ_N, clk_n)

Sayman
23.04.2016, 18:35
понятно. тогда ещё вопрос. на ahdl можно сделать запись типа
CLK42 = TG42;
т.е. если я верно понимаю (я в ahdl ни в зуб ногой, сижу параллельно с кучей мануалов), на vhdl аналогичная формулировка выглядит как
CLK42 <= TG42;
??

Ewgeny7
23.04.2016, 19:11
Если требуется сигналу слева назначить соответствие сигналу справа формулы - то да, верно.

Sayman
23.04.2016, 19:46
запись вида:


process (clock, clk_cnt)
begin
if (clock'event and clock = '0') then
clk_cnt <= clk_cnt + 1;
end if;
end process;

для чего применяется символ " ' " (там где clock'event)?

s_kosorev
23.04.2016, 20:42
для чего применяется символ " ' " (там где clock'event)?
если истина то присходит смена уровня сигнала, например с 0 на 1

Ewgeny7
24.04.2016, 11:30
для чего применяется символ " ' " (там где clock'event)?
конструкция 'event означает наступление какого-либо события с написанным слева сигналом.
Событием может быть сменя логического уровня, например.
В данном случае вся строка clock'event and clock = '0' может быть переведена на человечий язык как "если произошло событие с сигналом clock, выраженное в том, что сигнал изменился в 0, то...".

Sayman
27.04.2016, 20:03
А в этой теме есть спецы/разбирающиеся по/в AHDL?

Totem
27.04.2016, 21:39
А в этой теме есть спецы/разбирающиеся по/в AHDL?

Mick, где найти сам знаешь

Sayman
28.04.2016, 06:37
Mick, где найти сам знаешь
т.е. кроме него больше нет никого?

Totem
28.04.2016, 08:21
т.е. кроме него больше нет никого?
Не могу знать, он единственный на форуме, кто возился со старыми плисинами и AHDL, может еще есть люди.

Zhizh
04.05.2016, 19:15
Уважаемые сэры, а какую девборду посоветуете выписать у китайцев, чтобы чисто поиграться и пощупать ПЛИС вживую? Лампочками там помигать или типа того для начала?

zebest
04.05.2016, 19:27
http://ru.aliexpress.com/item/1PCS-ALTERA-FPGA-Cyslonell-EP2C5T144-Minimum-System-Learning-Development-Board/32653119162.html
штука делов то. Ну плюс кабЕль, ну еще рублей 300. Лампочки - свои

kox
04.05.2016, 19:28
Вот неплохая плата, и не только лампочками поморгать, но и vga пощупать, с ps/2 Клавой поиграться.
http://www.ebay.com/itm/Altera-Cyclone-NIOS-II-SOPC-FPGA-Development-Learning-Board-EP2C8Q208C8N-LCD1602-/272141583510?hash=item3f5ce70496:g:lPwAAOSwo6lWJFR p

Ну а самой большой популярностью на этом форуме пользуется DE1 от Terasic- на нее множество ретро компов портировано.
Ну а если не уверен, что желание заниматься ПЛИС у тебя всерьез и надолго, то в принципе и первого марсохода хватит, но тут стоит учитывать, что аппетит может прийти во время еды.

Mick
23.08.2016, 09:41
Народ, у кого нибудь завалялся Xilinx Foundation 3.1i или 4.1i?
Буду премного благодарен, если поделитесь.
На торренты не посылать, там меня нет.

solegstar
23.08.2016, 10:36
На торренты не посылать, там меня нет.
проблемы с регистрацией? а магнет-ссылки тоже не нравятся? если что, то 4.1i в Utorrent magnet:?xt=urn:btih:3F09B3252A596C78C7E10D98BC9D1F 9669CEDAB6&tr=http%3A%2F%2Fbt.t-ru.org%2Fann%3Fmagnet

- - - Добавлено - - -

3.1i magnet:?xt=urn:btih:36497DB2CA599D1FC9EF9D654E53D2 D112C84A4C&tr=http%3A%2F%2Fbt4.t-ru.org%2Fann%3Fmagnet сейчас качается.

OrionExt
15.10.2016, 19:18
Подскажите, пожалуйста, как Quartus II 9.1 при компиляции процессора T80s отучить использовать встроенную память для T80_Reg. Использует два блока M4Ks.

При компиляции в Quartus II 12.1sp1 память для T80s не использовалась.

OrionExt
16.10.2016, 23:34
Подскажите, пожалуйста, как Quartus II 9.1 при компиляции процессора T80s отучить использовать встроенную память для T80_Reg. Использует два блока M4Ks.

При компиляции в Quartus II 12.1sp1 память для T80s не использовалась.
Отличный форум) Сам вопрос задал – сам ответил.

Analysis & Elaboration > Edit Setting > More Setting… > Auto RAM to Logic Cell Conversion
Ставим в On.

Помогло. Проект собрался. Спасибо)

b2m
17.10.2016, 09:54
Правильно заданный вопрос содержит половину ответа :)

s_kosorev
17.10.2016, 19:27
Отличный форум) Сам вопрос задал – сам ответил.
пропустил конкурс, кто быстрее задаст вопрос гуглю и запостит ответ :(

alm604
20.10.2016, 08:40
Народ, подскажите чем можно прошить XC9536XL? Добрался, наконец, до ПЛИСок. Купил у китайцев Altera USB Blaster с целью прошивки EPM3032, которые стояли в игровом автомате. Не получилось. Только потом нашел на форуме инфу, что у них JTAG отключен. Как включить - не нашел. Не выкинул, лежат. Вдруг найду что-то позже. EPM3256 прошилась нормально, но она большевата для моих, пока, скромных целей. Есть еще 7032, но она тоже не видится кактусом. Видимо, такая же фигня. Больше альтер нет. Заказал макс 2 из китая целых 5 штук, но они тоже большеваты. Есть проектик, куда хватило бы 3032 или 3064, но цены на них аналогичны максам. Короче, отложил альтеры. Есть несколько ксилинксов 95 серии, но программатор на них уже не по такой "вкусной" цене, как на альтеры. Есть спартан XCS20XL, 3 штуки XCV100, одна XCV300 (в BGA, что для меня пока недоступно), но это FPGA. К ним пока лезть желания нету. ПЗУ тоже нет. LPT порта для простого программатора на горизонте не наблюдается. Видел где-то прошивку 95XX при помощи FT232, но сам автор жалуется, что очень долго шьет. Неужели больше вариантов нет? Вроде камень-то еще используется, а инструмента так мало.

Viktor2312
20.10.2016, 09:26
Народ, подскажите чем можно прошить XC9536XL?


Есть несколько ксилинксов 95 серии, но программатор на них уже не по такой "вкусной" цене, как на альтеры.


https://ldm-systems.ru/product/16034 - как вариант. Но видел и копии оригинального, но китайского производства, по цене, что-то в районе 3000 руб. шьёт почти все микросхемы ПЛИС фирмы Xilinx.
А вообще лучше что-то поновее пробовать использовать, хотя бы Spartan-3A, хотя это уже древность, а всё что ниже так вообще...

alm604
20.10.2016, 10:12
У китайцев программатор есть по цене 1600 примерно. Спартан, конечно, хорошее семейство, но вот в чем проблема: "выкидывать" 1600 за программатор микросхем, которых у меня на пальцах пересчитать, желания никакого нет. А вдруг не получится? Альтеры (и квартус в частности) мне больше нравятся - понятнее они что ли... Кроме того, есть отличный сайт по этим максам, марсианский такой. Ну Вы поняли. Если что не получится - туда обращусь. Ксилинксы, вроде, не так распространены. Ну то есть сейчас я не смогу найти программатор и не сильно расстроюсь - придут максы, придется делать на них (жалко юзать 100-ногую микруху ради 12 GPIO проекта, а спартан совсем там не нужен). Это мне сейчас очень напомнило выбор между PIC и AVR лет 10 назад))
Тогда мне подарили AVR910 и выбор был сделан. PIC'и до сих пор лежат в отдельной коробке, ни разу не пользованные. Я их не покупал, навыпаивал и так дарили, кому не нужны или не знали что это.
Не так давно купил TL866CS, так вот ради него 3000 мне не жалко выложить было - тут я точно знал, что он мне нужен.

alm604
20.10.2016, 10:32
RPi нет. Тоже всё хочу заказать, но пока просто ради интереса - не резон. Если наметится область, где малинка прям в свое место встанет - закажу. Просто это ж хобби. Есть семья, есть куда деньги тратить)
Про Altera USBBlaster не нашел( Буду еще искать. А вот у китайцев высмотрел внутренности Xilinx программатора - CY7C68013A + XC2C256 + буфер. Потому и дороже альтеровского, в котором PIC и буфер. Еще вспомнил, что у меня где-то лежит Altera Flex 8000 многоножка. Но это тоже FPGA, до которого, я считаю, я пока не дорос. По сути, я только поморгал светодиодами на EPM3256. Даже в реальный проект ничего еще не встроил. В планах ее подключить к TTL LCD 8".

zebest
20.10.2016, 12:15
Про Altera USBBlaster не нашел
Это универсальный проект
http://urjtag.org/
https://sourceforge.net/p/urjtag/git/ci/master/tree/urjtag/
который поддерживает некоторое количество прогрмматоров,
http://urjtag.org/book/_system_requirements.html#_supported_jtag_adapters _cables
в т.ч. Altera USBBlaster
прошивает много чего
https://sourceforge.net/p/urjtag/git/ci/master/tree/urjtag/data/
в т.ч. ксайлинки
https://sourceforge.net/p/urjtag/git/ci/master/tree/urjtag/data/xilinx/
по крайней мере у испанцев получается прошивать 6SLX9

alm604
20.10.2016, 13:16
Вот спасибо! Это уже интереснее. У меня тут еще вариант наклюнулся. У товарища есть PCIE карта 1LPT 2COM. Попробую поставить на комп (Win8) и прошить проводками. Я просто не уверен, что там нормальный LPT. Хорошо, что не ноут - прикурил бы...

alvis
22.10.2016, 00:19
У товарища есть PCIE карта 1LPT 2COM. Попробую поставить на комп (Win8) и прошить проводками. Я просто не уверен, что там нормальный LPT.

Под win7/8/10 и со встроенным LPT весьма проблемно работать, не то что с дополнительным контроллером...

SergeyLLL
26.10.2016, 00:19
Работаю с ПЛИСами Xilinx XC2C64A, постоянно. В месяц приходится прошивать по 30 штук. Покупал для этих целей китайские программаторы, от USB. Первый купил, года 3 назад, за 5 тыс. с копейками - он сгорел. Купил второй, тоже китайский, но уже подешевле и тоже сгорел. Может мне просто так везло, что они горели. До этого использовал самодельный, по схеме от Xilinx, от LPT порта. И сейчас им пользуюсь и никаких проблем нет. Поставил себе второй комп с Вин_ХР и установил ISE WebPACK 14.7, но не полностью, а только iMPACT для прошивки ПЛИС. Так как комп для прошивки слабый, то весь проект делаю на другом, более мощном компе, а файлы для прошивки переношу через флешку. Может не очень удобно, но зато никаких проблем с прошивкой нет. Да и второй комп с Вин_ХР удобно использовать для прошивки ПЗУ УФ, да и для других целей, где нужен LPT или для старого софта.
Опять же, если сравнивать по производительности, на старом компе с ХР, сборка проекта может идти 2-3 часа и больше (дальше не проверял, останавливал, терпения не хватало), а на мощном компе сборка идет от 2 мин и до 40 мин, в зависимости от схемы и сможет ли ПЛИС "проглотить" эту схему.
Для прошивки использую вот такой разъем https://youtu.be/mGUD3MEP1JM иголки с пружинами, скорее всего их используют для электротеста печатных плат, тоже покупал на Али.

omercury
05.01.2017, 13:52
Оживлю немного темку))).

Всем известно, что для CPLD нужен генератор и хорошо, если Вы страдаете плюшкинизмом и у Вас их как у дедушки с гуталиновой фабрики.
А если нет?
Да ещё и на какую-нибудь "экзотическую" частоту?
А кварцы - вот они...
Предлагаю ещё один вариант генератора без генератора. Схема проста - 1 инвертор и несколько пассивных резисторов/конденсаторов и собственно сам кварц.
В случае кварца с параллельным резонансом (в основном импортные кварцы) частота подбирается конденсаторами С1 и С2, а в случае отечественного кварца с ним последовательно включается дополнительный конденсатор(на схеме не показан).
Возможно в сложных схемах заработает не сразу и придётся править констрейты чтоб разместить элемент поближе к IO, но в тесте Квартус написал 300+ МГц...
Реально больше 25МГц не проверял.
Верилог код:


module osc
(
// Секция генератора
input wire in_clk,
output wire out_clk,
);
/* Собственно генератор */
assign out_clk = ~in_clk;
endmodule

Осталось выход подключить на тактовый вход ПЛИС.

HardWareMan
05.01.2017, 14:17
omercury, часто пользовался замкнутым инвертором. На Arria2GX он дает почти 1ГГц, но эта частота не юзабельна. Ее надо поделить на 2 ближним триггером, и уже можно подавать на счетчик-делить дальше. Иначе схема не успевает. На CycloneV частота получалась порядка 400-450МГц. Но, эта частота не стабильна. Она плывет в зависимости от изменений в проекте. Она сильно плывет во время работы (от нагрева, помех и фазы луны). Так что все равно я не рекомендую так делать. Лучше попытаться вывести инвертор наружу и подвесить кварц, как это сделано у тех же АТМег.

omercury
05.01.2017, 14:38
Дело было вечером, делать было нечего... (с)

Проглядывал тематические форумы и в очередной раз наткнулся на тему 28МГц для спекки.
Многие рекомендуют использовать PLL от старой материнки, но вот беда - не у всех они есть.
Можно конечно купить, но это явно не наш метод.
Итак:

28МГЦ?
Легко!

За основу взят классический ГУН.
Можно конечно собрать и на рассыпухе, но на дворе 21 век всё-таки. Заюзаем мелкую CPLD, а также генератор из предыдущего поста.
Кварц попался на 7,2МГц (лучше использовать "круглые" частоты, делители получатся проще), значит для "неизменно превосходного результата" нам нужно поделить опорную частоту на 9 и умножить на 35 - 7,2/9*35=28.
Собственно схема во вложении, пояснения в Верилог-коде, результат на фотке.

По факту получилось 7200122ГЦ, что в результате должно дать 7200122/9*35=28000474,44Гц.

Следует уточнить, что ГУН требует подбора конденсаторов/резисторов. Методика проста: с подключенным к питанию левым выводом R1 частота ГУН должна быть выше требуемой на 20-30%, с неподключенным R1 частота должна быть немного ниже требуемой, с заземлённым левым выводом - у меня вообще генерация срывается. Кстати у на моей макетке хватило ёмкости входов и монтажа, вместо конденсаторов напаян кусочек фольгированного текстолита ~2х3мм с надрезанной с одной стороны фольгой.
Таким образом делал генератор чуть выше 60МГЦ, для дальнейшего увеличения частоты на контакт, подписанный на схеме "3v3" надо подать ещё более высокое напряжение, ускорив тем самым заряд конденсаторов C1 и С2.



module PLL_28
(
// Секция генератора
input wire in_clk,
output wire out_clk,
// Секция PLL
inout wire in1, //RC-цепь 1
inout wire in2, //RC-цепь 2
output wire out, //Выход PLL (28.00MHz)
output wire error //Выход ошибки
);
// Секция генератора
//*********************************************
wire clk = out_clk;
/* Собственно генератор */
assign out_clk = ~in_clk;
//*********************************************
// Секция PLL
// ================================================== ==========
parameter mul = 35; // Для 12MHz - 7
parameter div = 9; // Для 12MHz - 3
parameter wmul = $clog2(mul); //Ширина счётчика умножителя, вычисляемое
parameter wdiv = $clog2(div); //Ширина счётчика делителя, вычисляемое
// ================================================== ==========
wire di1; //Внутренняя шина генератора прям
wire di2; //Внутренняя шина генератора инв
// ================================================== ==========
assign out = di1; //Подключаем выход
//Организуем диоды, закрытые на заряд, и открытые на разряд
assign in1 = (di1) ? 1'bZ : di1;
assign in2 = (di2) ? 1'bZ : di2;
//Собственно генератор
assign di1 = ~((in1) | (di2));
assign di2 = ~((in2) | (di1));
// ================================================== ==========
//Делитель тактовой (делитель)
// ================================================== ==========
reg[wdiv - 1:0] kDiv_ref = 0; //Делитель тактовой
always @(posedge clk) begin
kDiv_ref <= kDiv_ref + 1; //increment cnt
if (kDiv_ref == (div - 1)) begin //2//12МГц/3/2=2,0MHz
kDiv_ref <=0;
end
end //always
// ================================================== ==========
//Делитель частоты генератора PLL (умножитель)
// ================================================== ==========
reg[wmul - 1:0] kDiv_osc = 0;
always @(posedge di1) begin
kDiv_osc <= kDiv_osc + 1; //increment cnt
if (kDiv_osc == (mul - 1)) begin //6//28.00МГц/7/2=2,0MHz
kDiv_osc <=0;
end
end //always
// ================================================== ==========
// Делители на 2 (получаем меандр)
// ================================================== ==========
reg rf = 0;
always @(posedge kDiv_ref[wdiv - 1]) begin // Делим пополам
rf <= ~rf;
end
// ================================================== ==========
reg of = 0;
always @(posedge kDiv_osc[wmul - 1]) begin // Делим пополам
of <= ~of;
end
// ================================================== ==========
assign error = ~(rf ^ of);
//assign error = 1'b1; // max 36MHz / 43
//assign error = 1'bz; // mid 24MHz / 34
//assign error = 1'b0; // min 0MHz / 0
// ================================================== ==========

endmodule
//*********************************************


- - - Добавлено - - -


Лучше попытаться вывести инвертор наружу и подвесить кварц, как это сделано у тех же АТМег.
Дык так оно и сделано... на следующей фотке.
Нестабилизированные кварцем генераторы конечно же непредсказуемы))).

- - - Добавлено - - -


На Arria2GX он дает почти 1ГГц, но эта частота не юзабельна.
Кстати, PLL EP2C5 со спидгрейдом 8 даёт вполне юзабельные полгигагерца.

P.S.
Немного параметризовал счётчики и убрал пару лишних регистров.

alm604
06.03.2017, 21:48
Есть спартан XCS20XL, 3 штуки XCV100
Теперь есть и программатор для Xilinx!)))
Получилось у меня прошить XC9536, XC9536XL. Не получилось несколько XC9536 - пишет, что они "unsupported". Порылся в гугле и понял, что они либо очень старые, либо заказные. Жаль. Теперь вопрос про спартана и виртекса. Есть ли здесь люди, которые работали с этими сериями? Вопрос вот в чем: эти FPGA не на флеше, значит их можно прошивать бесконечное число раз. Это очень хорошо для опытов. С другой стороны, они заливают конфигурацию из внешней флешки, которая имеет ограниченные ресурсы. Уже хуже. Далее я не нашел про второй спартан информации о типе внешней флешки, кроме стандартных Xilinx, которые опять ждать из Китая, т.к. поблизости нет. Возможно ли кабелем непосредственно из IMPACT сконфигурить FPGA? На третий спартан, как я видел, Атмеловскую SPI Flash цепляют. Про Virtex вообще мало информации( Я понимаю, что это старье, но у меня еще и 16V8 во всю трудятся.
В общем, подскажите, если не трудно, как мне этих монстров попробовать запустить. Может быть внешний МК с памятью, SD картой или еще как. Всё, что находил было про третий спартан и шестой.

AlexG
06.03.2017, 23:04
Теперь есть и программатор для Xilinx!)))

1) Практически все фпга имеют внешнюю ппзу для загрузки (справедливо как минимум со 2 по 7 семейство). исключение спартан-3А (те что с буквой А имеют внутри ппзу)
2) саму фпга можно загружать бесконечное число раз по jtag-интерфейсу (фпга - по сути озу в данном вопросе)
3) начиная с какого-то семейства тип внешней ппзу может быть spi/bpi/(и др. виды). для "старых" в основном только фирменные ппзу (достаточно дорогие по сравнению с spi)
4) насколь я помню спартан-3 (примерно) это последнее семейство которое не "взрывалось" от подачи 5в на выводы.
импактом можно прошить любую фпга и (или) ппзу из числа поддерживаемых.
5) есть семейства по названию - спартан, кинтекс, вёртекс. внутри семейств есть нумерация. к примеру спартан-3 и спартан-6 и спартан-7. вёртекс-2 -5 -7.
вёртексы "круче" чем спартаны. а -7 круче -3.
6) поскольку различные фпга сняты с производства то и поддержка в ise-vivade тоже сворачивается. к примеру в исе14.7 нет точно спартана-2. все современные фпга только в виваде.
7) любую фпга можно "загрузить" внешним МК при наличии у фпга режима загрузки через spi или параллельный интерфейс (как пример). SD насколь я помню "популярна" у современных фпга (ни разу не практиковал - без нужды).
по хорошему что 3 что 6 что 7 итд все фпга практически одинаковы с точки зрения загрузки.

- - - Добавлено - - -

все можно найти на офф. сайте.

LeoN65816
01.04.2017, 22:47
Комрады! Поясните, пожалуйста, бестолковому...
Есть код модуля, нормально компиллируется в составе проекта.



module HVSync (
input wire PixClock,
output reg HSync,
output reg VSync,
output reg [2:0] R,
output reg [2:0] G,
output reg [2:0] B);

parameter HVA = 1024; // Visible Area
parameter HFP = 24; // Front Porch
parameter HST = 136; // Sync Time
parameter HBP = 160; // Back Porch

parameter VVA = 768; // Visible Area
parameter VFP = 3; // Front Porch
parameter VST = 6; // Sync Time
parameter VBP = 29; // Back Porch

//variables
reg [10:0] PC = 0; // Pixel Counter (Column, X)
reg [9:0] LC = 0; // Line Counter (Row, Y)

reg VA; // Visible Area on screen

always @(posedge PixClock)
begin
VA <= ((PC < HVA) | (PC == HVA+HFP+HST+HBP-1)) & ((LC < VVA) | (LC == VVA+VFP+VST+VBP-1));

HSync <= (PC >= HVA+HFP-1) & (PC < HVA+HFP+HST-1);

if (PC < (HVA+HFP+HST+HBP-1))
PC <= PC + 1'b1;
else begin
PC <= 0;
VSync <= (LC >= VVA+VFP-1) & (LC < VVA+VFP+VST-1);
if (LC < (VVA+VFP+VST+VBP-1))
LC <= LC + 1'b1;
else
LC <= 0;
end
end


// Color Image

always @(posedge PixClock)
begin
if (VA)
begin
if ((PC[7:0]==0) | (PC[7:0]==255) | (LC[7:0]==0) | (LC[7:0]==255))
begin
R <= 7;
G <= 7;
B <= 7;
end
else begin
if (LC[7:6]==0)
begin
R <= ~PC[9:7];
G <= 0;
B <= 0;
end
if (LC[7:6]==1)
begin
R <= 0;
G <= PC[8:6];
B <= 0;
end
if (LC[7:6]==2)
begin
R <= 0;
G <= 0;
B <= ~PC[7:5];
end
if (LC[7:6]==3)
begin
R <= PC[6:4];
G <= PC[6:4];
B <= PC[6:4];
end
end
end
else begin
R <= 0;
G <= 0;
B <= 0;
end
end

endmodule
Выношу отдельно проверку ~VA.



module HVSync (
input wire PixClock,
output reg HSync,
output reg VSync,
output reg [2:0] R,
output reg [2:0] G,
output reg [2:0] B);

parameter HVA = 1024; // Visible Area
parameter HFP = 24; // Front Porch
parameter HST = 136; // Sync Time
parameter HBP = 160; // Back Porch

parameter VVA = 768; // Visible Area
parameter VFP = 3; // Front Porch
parameter VST = 6; // Sync Time
parameter VBP = 29; // Back Porch

//variables
reg [10:0] PC = 0; // Pixel Counter (Column, X)
reg [9:0] LC = 0; // Line Counter (Row, Y)

reg VA; // Visible Area on screen

always @(posedge PixClock)
begin
VA <= ((PC < HVA) | (PC == HVA+HFP+HST+HBP-1)) & ((LC < VVA) | (LC == VVA+VFP+VST+VBP-1));

HSync <= (PC >= HVA+HFP-1) & (PC < HVA+HFP+HST-1);

if (PC < (HVA+HFP+HST+HBP-1))
PC <= PC + 1'b1;
else begin
PC <= 0;
VSync <= (LC >= VVA+VFP-1) & (LC < VVA+VFP+VST-1);
if (LC < (VVA+VFP+VST+VBP-1))
LC <= LC + 1'b1;
else
LC <= 0;
end
end


// Blanking
always @(posedge PixClock)
begin
if (~VA)
begin
R <= 0;
G <= 0;
B <= 0;
end
end


// Color Image

always @(posedge PixClock)
begin
if (VA)
begin
if ((PC[7:0]==0) | (PC[7:0]==255) | (LC[7:0]==0) | (LC[7:0]==255))
begin
R <= 7;
G <= 7;
B <= 7;
end
else begin
if (LC[7:6]==0)
begin
R <= ~PC[9:7];
G <= 0;
B <= 0;
end
if (LC[7:6]==1)
begin
R <= 0;
G <= PC[8:6];
B <= 0;
end
if (LC[7:6]==2)
begin
R <= 0;
G <= 0;
B <= ~PC[7:5];
end
if (LC[7:6]==3)
begin
R <= PC[6:4];
G <= PC[6:4];
B <= PC[6:4];
end
end
end
end

endmodule
Посыпались ошибки - https://yadi.sk/i/83kyjVf_3GZ5f5
Ругается на заголовки описания событий (60 и 47 строки). Не вкуриваю...

HardWareMan
02.04.2017, 07:05
Как ты умудрился работать с одним регистром в разных always блоках?

LeoN65816
02.04.2017, 11:55
Я новичок в Verilog, еще учусь. ;)
HardWareMan, дай более развертнутый ответ/подсказку, пожалуйста.

vlad
02.04.2017, 12:09
LeoN65816, интересно, а чем ты руководствовался, когда вынес сигналы R,G,B из блока?

LeoN65816
02.04.2017, 13:20
Первый вариант - это первый, тестовый код.
Наконец-то приступил к реализации мечты (http://zx-pk.ru/threads/26944-mechta-agat-na-plis.html). АГАТ-9 умеет в родном/нативном режиме дисплейного контроллера 2 текстовых и 4 графических режима отображения с одним пиксельклоком, и в режиме APPLE один текстовый плюс два графических (и один смешанный) с другим пиксельклоком.
Именно поэтому выношу бланк отдельно, и именно поэтому планирую каждый режим описывать также в каждом отдельном always.

vlad
02.04.2017, 13:26
Именно поэтому выношу бланк отдельно, и именно поэтому планирую каждый режим описывать также в каждом отдельном always.
Попробуйте использовать мультиплексор для RGB. Т.е. коммутируя сигналы r1,g1,b1 с r2,g2,b2 от разных блоков например.

bigral
02.04.2017, 13:36
Как ты умудрился работать с одним регистром в разных always блоках?

у этих always блоков ОДИНАКОВОЕ УСЛОВИЕ, я всегда думал что компилер сольет их содержимое в один, (если это не так то можно тогда предположить что они начинают срабатывать в разные моменты а это по-моему уже нонсенс)

короче как по мне дак не должно гавкать, тем более такими абсолютно мутными сообщениями

LeoN65816
02.04.2017, 16:58
Просьба №2: дайте, пожалуйста, ссылочку на пример в Verilogе эмуляции ПЗУ/ОЗУ в FPGA и как "прикошачить" образ ПЗУ к нему в квартусе?
Заранее спасибо.

HardWareMan
02.04.2017, 18:00
у этих always блоков ОДИНАКОВОЕ УСЛОВИЕ, я всегда думал что компилер сольет их содержимое в один, (если это не так то можно тогда предположить что они начинают срабатывать в разные моменты а это по-моему уже нонсенс)
А по барабану. Это разные always блоки, даже если у них одинаковые сигналы чувствительности. И вот эта ошибка про это и говорит:
http://savepic.ru/13464877.png

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

vlad
02.04.2017, 18:29
пример в Verilogе эмуляции ПЗУ/ОЗУ в FPGA
http://www.hirokinakaharaoboe.net/pdf/DE0_tutorial_14.pdf

LeoN65816
02.04.2017, 20:40
vlad, огромнейшее спасибо!
Может еще кто подскажет... Нужно асинхронное однопортовое ROM.

PS. Йоу! Теперь я знаю японский! ;)

OrionExt
02.04.2017, 22:12
Просьба №2: дайте, пожалуйста, ссылочку на пример в Verilogе эмуляции ПЗУ/ОЗУ в FPGA и как "прикошачить" образ ПЗУ к нему в квартусе?.
Да тут все просто. Даже я …. Не надо паровоз изобретать. Юзаем макросы в Quartus II.


Может еще кто подскажет... Нужно асинхронное однопортовое ROM.
А тут проблемы. Вся эта технология FPGA и т.д. Заточена на синхронную работу. Мои мозги до сих пор не могут к этому адаптироваться. Надо работать над собой(о себе))

- - - Добавлено - - -

А чем не устраивает ПЗУ от Quartus II. Смотрим визарт) Там много чего полезного есть (Quartus II). Особенно на старте. vlad, указал направление. Хоть и на японском (короче иероглифы);)

LeoN65816
02.04.2017, 22:24
Дык, я всеми конечностями за максимальную синхронность проектов!
Только в данном учебном демонстрационном проекте каскадирование двух синхронных ромов (один ром на образ текстовой страницы и второй на знакогенератор) дают задержку на два такта и портят всю малину. Получится картинка с обрезанными двумя столбцами точек справа и с "левыми" двумя столбцами точек слева... :(

OrionExt
02.04.2017, 22:49
Искал модель в сети по не незнанию даже простейшей СРАМ. А не фига. Модели от производителей есть. Но там ….. )

- - - Добавлено - - -

Уж извините. Не вникал в ваш частный случай. Могу оперировать ток шаблонами от Quartus II. Себе обычно говорю. Давай разбирайся до просветления)

- - - Добавлено - - -

Хотя конечно можно любую схему построить в ФПЖА при наличии времени и упорства. А что с ней потом делать. Пример реплика Z80. Добавил частоту (турбировал) и все развалилось.

LeoN65816
04.04.2017, 04:02
:v2_dizzy_wall:
Это какой-то вынос мозга...
Инициализирую ROM .hex файлом, размер слова 8 бит. https://yadi.sk/i/T461wN8I3GcsQd. Все хорошо.

Делаю ROM на 16 (или 32) бита, инициализирую ROM .hex файлом, размер слова 16 (32) бит. https://yadi.sk/i/kUfjlF693GcsYs https://yadi.sk/i/ZER7m-Jy3GcsZd.
Мало того что Big Endian, так еще и левые данные появляются!!!:mad:
Столько кровушки отпило это глюкало...

У кого-нибудь получалось ROM 16/32 бит?

vlad
04.04.2017, 08:55
Попробуйте создать hex в intelhex формате.

HardWareMan
04.04.2017, 11:07
LeoN65816, разрядность HEX файла должна совпадать с разрядностью эмулируемого ПЗУ.

LeoN65816
04.04.2017, 14:46
vlad, HardWareMan, разумеется, само собой! ;)

Это проделывал ДОСовым bin2hex - https://yadi.sk/i/jLZhHCt-3GdauD, который делает интел формат и о разрядности он понятия не имеет...

Вот этим bin2hex (https://filedir.com/windows/utilitiesandtools/bin2hex-5755161.html?hl=ru) создается просто hex-представление данных, ни заголовков, ни какой-либо служебки. Соответственно, кактус не открывает хексы после него...

srec_cat отсюда (https://sourceforge.net/projects/srecord/files/srecord-win32/1.64/) "проглатывает" входной бинарник и создает интелхекс - https://yadi.sk/i/qZurtDXe3Gdexk, хотя по умолчанию создает несъедобный для квартуса мотороловский кекс с S-записями. Кактус открывает его как 8-разрядный. Как 16(32)-разрядное слово открывает с теми же глюками - https://yadi.sk/i/phIwEK9X3GdgGj.

Тем же srec-cat создаю 16-разрядный интелхекс - https://yadi.sk/i/M6xK5P1P3Gdw4d. Однако, квартус его не "сглатывает" никак (8-, 16-, 32-)... - https://yadi.sk/i/nb3vNMri3Gdwcr :mad:

Им же создаю .mif, квартус "хавает".

Им же создаю 16-разрядный .mif - https://yadi.sk/i/iq-ccsTp3Ge3gk. Сам srec-cat, скотина, делает его big-endian... - https://yadi.sk/i/PLYN3WsP3GdyyY. Соответственно, квартус его тоже "хавает" - https://yadi.sk/i/7bgoFojg3GdzMd. Но! Big-endian, Карл! А нужно Little-endian.

Вот такой вот квест... :) Может быть кому-нибудь это поможет не наступать на такие же грабли...

И еще раз спрошу: кому-нибудь удавалось сделать инициализацию 16-разрядного ROM с Little-endian? Поделитесь опытом, пожалуйста.

shurik-ua
04.04.2017, 14:59
мне кажется легче самому написать такую программку чем найти в интернетах )

HardWareMan
04.04.2017, 15:13
Это не процессор, чтобы иметь endianess. Это ПЛИС. Если ты указал шину [15:0] то она и будет цельной и неделимой 16 бит. А уж порядок побайтного доступа ты можешь описать сам [15:8]/[7:0]. Что касается инициализации ПЗУ файлом я еще раз говорю: разрядность должна совпадать. Иначе будут непонятки.

OrionExt
04.04.2017, 17:15
LeoN65816, сам заметил эту странность с предзагрузкой hex файла. Работал с 8 битным ПЗУ. Quartus отчаянно ругается, но по факту втягивает или не втягивает нормально. Дальше разбираться не стал, есть дела поинтересней:) Для себя сделал заметку, делать hex файл в формате как у Grant Searle (самый простой без излишеств). Файл 16 бит (в строке 32 байта), если я правильно понял о разрядности 8/16 бит.

Ох уж эта эволюция hex формата начиная с 8 битных компов. Ведь в формате нет явного указания на разрядность данных. Просто последователь байт с указанием адреса посадки (в каждой строке).

HardWareMan
04.04.2017, 17:57
OrionExt, именно. Вот, например, пошли PICи первые. А у них 12бит. Но HEX то для них есть, верно? А потом AVRки. И программатор корректно распознает. Ну а Кактус надо просто принять как данное. Ведь выбора то и нет.

UA3MQJ
05.04.2017, 02:39
Я может и не в тему. Но в своих проектах rom или автоматом делается из логики. Или из mif файла. Формат я подсмотрел, вроде все просто. И разрядности все указываются:

file: sine8x8.mif
-- Quartus II generated Memory Initialization File (.mif)
-- discretization : any Hz 8 bit not signed

WIDTH=8;
DEPTH=256;
ADDRESS_RADIX=UNS;
DATA_RADIX=UNS;
CONTENT BEGIN
0 : 127;
1 : 130;
2 : 133;
3 : 136;
4 : 139;
5 : 143;
6 : 146;
...вырезано
250 : 111;
251 : 115;
252 : 118;
253 : 121;
254 : 124;
255 : 127;
END;

Таким образом делал mif с синусом и подгружал. Все работало.

LeoN65816
06.04.2017, 21:53
Заборол я квартуса с этим синхронным ROM - http://zx-pk.ru/threads/26944-mechta-agat-na-plis.html?p=906882&viewfull=1#post906882

LeoN65816
08.04.2017, 21:18
А как в схемном вводе назначить аттрибуты примитивам и сигналам?
Квартус требует D-триггеру и сигналам, идущим на его асинхронные установку и сброс назначить аттрибут KEEP... (банальная защита от дребезга - и вдруг споткнулся на ровном месте...)

UA3MQJ
09.04.2017, 22:22
Да, тоже не смог разобраться, как это сделать через диаграммы. В verilog я бы просто поставил /* synthesis keep */ или /* synthesis preserve */ или /* synthesis noprune */ по необходимости.

HardWareMan
10.04.2017, 08:21
LeoN65816, мне что-то такое ругательство не встречалось. Чаще всего всплывает "...in clock paths which may be acting as ripple and/or gated clocks..." что из другой оперы. Вы не могли бы показать скриншот или скопировать текст?

LeoN65816
10.04.2017, 11:24
Столкнулся с этим в своих тестах/демах, повторил в отдельном проекте - https://yadi.sk/i/OEIF1g833Gp2Ny.
Классическая схема устранения дребезга контактов. На входах кнопок nPB1 и nPB2 и сброса nRST (все с замыканием на землю, у nRST внешние кондер с пуллапом) включены внутренние пуллапы, триггер формирует положительный фронт для мегафункции 4-разрядный синхронный счетчик.
Репорт говорит, что занято 4, а не 5 регистров - https://yadi.sk/i/xTwpoz1W3Gp2zc. Там же ворнинг, что этот триггер преобразован в эквивалентную схему-защелку.
Хэлп по этому ворнингу - https://yadi.sk/i/UykelaMT3Gp3QY. Вот здесь об этом и говорит.
И что интересно - кнопки работают, фантомный триггер создает положительный фронт (и глитчи иногда проскакивают). И тикает только младший разряд счетчика! Остальные молчат... (на выходе 4 светика для индикации)

HardWareMan
10.04.2017, 11:57
Собрал твою схему:
http://savepic.ru/13506752.png
Тоже преобразовано:
http://savepic.ru/13525187.png
Что сказал RTL:
http://savepic.ru/13524163.png
Счетчик:
http://savepic.ru/13501635.png
Ячейка триггера:
http://savepic.ru/13545666.png
Ячейка счетчика (один из 4х битов):
http://savepic.ru/13538498.png
Все верно, в RS цепочке регистр не используется, только LUT (или LAB). поэтому 4 регистра. Что касается антидребезга, то наверное действительно лучше собирать RS триггер на элементах и стробировать его вторым по тактовой частоте. Тогда ячейка будет использовать не только LUT, но и сам триггер.

UA3MQJ
10.04.2017, 13:43
Как у вас все сложно. Я делаю вот так:

https://sites.google.com/site/analogsynthdiy/_/rsrc/1410552253065/sobstvennye-razrabotki/sintezator-na-baze-plis/11---vvod-vyvod/1-4-knopka/key.png

//трех битный буфер
reg [2:0] gate_buff;

always @ (posedge clk50M)
gate_buff <= {gate_buff[1:0],~key0};

//буфферизированное значение
assign GATE_D = (gate_buff == 3'b111);

//положительный фронт
assign GATE_POSEDGE = (gate_buff == 3'b011);

//отрицательный фронт
assign GATE_NEGEDGE = (gate_buff == 3'b110);

Потратится 3 ячейки на кнопку.
зы. ПЛИС вообще лучше программировать в синхронные схемы. В принципе, то же самое можно сделать и схемой. Вход кнопки подаете на вход, какого-нибудь D триггера. На клок - системный клок. С его выхода на еще один такой же триггер. Этого достаточно. Далее логика: если получилось 10 (в первом 1, во втором 0), значит нажали. Получится строб. А подавать кнопки в асинхронные схемы, как и вообще всё асинхронное - не рекомендуется, как бы. Плохо влияет на качество синтеза, плохо анализируется синтезатором, работает в железе не стабильно.

HardWareMan
10.04.2017, 14:18
зы. ПЛИС вообще лучше программировать в синхронные схемы. В принципе, то же самое можно сделать и схемой. Вход кнопки подаете на вход, какого-нибудь D триггера. На клок - системный клок. С его выхода на еще один такой же триггер. Этого достаточно. Далее логика: если получилось 10 (в первом 1, во втором 0), значит нажали. Получится строб. А подавать кнопки в асинхронные схемы, как и вообще всё асинхронное - не рекомендуется, как бы. Плохо влияет на качество синтеза, плохо анализируется синтезатором, работает в железе не стабильно.
ИЧСХ, сам же предлагаешь комбинаторику мешать с выходом. Да и не даст надежности именно твой пример. Правильное решение для перекидной кнопки (а так же для 2х кнопок ВКЛ-ВЫКЛ) будет немного другим. Сначала перевод в тактовый домен (можно сказать семплирование) посредством все того же, например, трехбитного регистра сдвига. А затем переключение выходного триггера по состоянию (внутри синхронного always блока):
if (gate_buff[2:0] == 3'h0) ClkReg <= 1'b1; else if (gate_buff[2:0] == 3'h7) ClkReg <= 1'b0;
Схема будет похожа на те, что я приводил в разделе про Денди на FPGA.

LeoN65816
10.04.2017, 14:36
UA3MQJ, твой код прекрасно ловит и пропускает в систему дребезг контактов, но не устраняет!
"Игра" с длиной сдвигового регистра и частотой сэмплирования не поможет, а наоборот, может привести к тому, что будет пропускаться событие нажатия/отпускания...


зы. ПЛИС вообще лучше программировать в синхронные схемы.
Дык, я уже который раз подчеркиваю, что я всеми конечностями за это. И стараюсь делать именно синхронные схемы. Но в данном случае нужно перекидной кнопкой (переключателем) инкрементировать счетчик (или, допустим, делать шаг чего-то), и, IMHO, только асинхронный RS-триггер в таком включении позволяет гарантированно задавить дребезг...
Я не всезнайка, может я ошибаюсь, может кто-то и подскажет другое решение, гарантирующее подавление дребезга.
А может все же кто-нибудь подскажет, как в схематике назначать аттрибуты...

HardWareMan
10.04.2017, 17:04
LeoN65816, встроенным примитивам, вроде, нельзя. Но ты всегда можешь создать свой примитив на верилоге или VHDL и кактус тебе услужливо создаст к нему схемный символ. С нужными атрибутами и прочим блекджеком.

UA3MQJ
10.04.2017, 17:25
Ах, у вас перекидная кнопка, вот этот момент я упустил.


ИЧСХ, сам же предлагаешь комбинаторику мешать с выходом. Да и не даст надежности именно твой пример.
А вот не согласен. Выход комбинаторики не обязан быть везде снабжен буфером на выходе. Если только он у вас не является окончательным выходом, не идет наружу.
Входы этой комбинаторики получат информацию синхронно на оба входа, выход этой комбинаторики будет задержан во времени на какой-то t, который однозначно меньше периода клока. Если вдруг не так, то timequest это покажет.
Так что, к следующему такту, в момент считывания результата, данные там уже будут стабильными.
О дальнейшем использовании этого сигнала, я подразумеваю, что он будет использоваться внутри блока always по тому же системному клоку, а не как участник списка чувствительности, проблем не будет. Потому что дальнейшая логика, которую я обычно строю, возьмет этот сигнал, и сигналы от других источников, и по клоку, зайнесет в регистр. Может получиться некий конвеер.
Данное решение я не сам придумал, а нашел, думаю на fpga4fun.com


if (gate_buff[2:0] == 3'h0) ClkReg <= 1'b1; else if (gate_buff[2:0] == 3'h7) ClkReg <= 1'b0;
Я об этом и говорю. Но неизвестно, что дальше будет с этим выходом. Если выход будет использоваться дальше, для входа на последующие стадии логики, которая свой результат так же задвинет в регистр, то регистр ClrReg сможет оказаться выпиленным синтезатором.

Со счетчиками вот есть варианты.
http://www.fpga4fun.com/Debouncer.html
Тут, похоже, как раз мое предложение с двумя d-триггерами, плюс счетчик.
https://eewiki.net/pages/viewpage.action?pageId=4980758

Суть вопроса на самом деле в этом:

А может все же кто-нибудь подскажет, как в схематике назначать аттрибуты...
Потому что синтезатор одинаково выкидывает ненужное из синтеза, как из написанного на Verilog, так и нарисованного схематически. Так что я, пожалуй, пректащу тут умничать.
ps. Но я к чему встрял. Если проектировать в соответствии с требованиями синтеза, то не будет варнингов и практически не будет потребности в том, чтобы задавать параметры синтеза.

LeoN65816
10.04.2017, 17:56
IMHO, искусственно созданные (Альтерой) "грабли" и "костыли"...


Ах, у вас перекидная кнопка, вот этот момент я упустил.
Дык, какая разница, перекидная кнопка или две разных?... Важно, что RS-триггер. В MAX7000S есть RS-, а в циклоне только R-... Банальнейшая вещь... Примитив! Ан нет, все через пи-пи-пи....


Со счетчиками вот есть варианты.
http://www.fpga4fun.com/Debouncer.html
Тут, похоже, как раз мое предложение с двумя d-триггерами, плюс счетчик.
https://eewiki.net/pages/viewpage.action?pageId=4980758
Прежде чем сюда постить, первым делом у дядюшки Яндекса спросил, и эти ссылки были у него первыми в "ответах"... И они все же не решают проблему, кнопки то разные (по "качеству" дребезга) бывают...

HardWareMan
10.04.2017, 20:31
Важно, что RS-триггер. В MAX7000S есть RS-, а в циклоне только R-... Банальнейшая вещь... Примитив! Ан нет, все через пи-пи-пи....
Это банальная дань моде. MAX7000 и MAX3000 где использовали? Правильно, вперемежку с обычной логикой. Их степень интеграции относительно низка вот и можно запихать обычный RS. А Cyclone, тем более еще и новомодный IV, это уже синхронный дизайн, тут только обычные D триггеры и куча синхронных контролов в LABе. Так что да, дебонс (т.е. подавитель дребезга) делать либо внешним, либо синхронным, как это уже тут приводилось (в том числе и по ссылкам).

omercury
10.04.2017, 21:44
Потратится 3 ячейки на кнопку.
"Переплатили"... ;)
Стандартный способ - 2 триггера.


я всеми конечностями за это.
Неужели?
А где синхронизация всех входов с глобал клоком? :)

Любимая метастабильность.
На хоботе есть подробно.
Если в двух словах, то хотя бы здесь (https://habrahabr.ru/post/254869/).

HardWareMan
11.04.2017, 04:38
omercury, это называется "перевод в рабочий тактовый домен". Для исключения метастабильности все входящие сигналы модуля должны быть синхронизированы с тактовой частотой этого модуля. Впрочем, на хабре ответ более развернутый.

piroxilin
27.04.2017, 09:00
Есть такой вопрос по конф-пзу :
Имеется flex8000 (epf8452) и epc1064pc8 к нему. ПЗУ мелкая (64кбит) и 5-вольтовая, уже редкая (300-500руб).
Про пзу закрались сомнения.
Собственно вопрос - его возможно клонировать (пзу), т.е. считать проггером и записать в новую?
Сложность такая - у меня их обещает читать только стерх007, но эту конкретную он отказывается - срабатывает "защита по току".

Totem
27.04.2017, 15:15
Есть такой вопрос по конф-пзу :
Имеется flex8000 (epf8452) и epc1064pc8 к нему. ПЗУ мелкая (64кбит) и 5-вольтовая, уже редкая (300-500руб).
Про пзу закрались сомнения.
Собственно вопрос - его возможно клонировать (пзу), т.е. считать проггером и записать в новую?
Сложность такая - у меня их обещает читать только стерх007, но эту конкретную он отказывается - срабатывает "защита по току".
Пойдет любая параллельная ПЗУ.

Mick
27.04.2017, 16:38
epc1064pc8

Если в DIP, то их вроде читает фитоновский Chipprog+ По крайней мере в списки они есть (EPC1064 и EPC1064V)

VladimirS
28.05.2017, 15:06
Добрый день!
Прошу совета, есть EPM7128SLC84 и ей подобные, какую серию следует с ними использовать 74AC или 74ACT?

OrionExt
28.05.2017, 15:09
LS тоже можно. Если у вас нет планов оседлать SRAM 10ns)

VladimirS
28.05.2017, 15:13
LS тоже можно. Если у вас нет планов оседлать SRAM 10ns)
Как раз это и интересует, но все-таки 74AC или 74ACT?

OrionExt
28.05.2017, 15:20
Читаем (https://ru.wikipedia.org/wiki/%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D1%85%D0%B5%D 0%BC%D1%8B_%D1%81%D0%B5%D1%80%D0%B8%D0%B8_7400). Я бы рекомендовал питание 3,3В и CII.

VladimirS
28.05.2017, 15:27
Добрый день!
Прошу совета, есть EPM7128SLC84 и ей подобные, какую серию следует с ними использовать 74AC или 74ACT?
У меня все-таки конкретный вопрос.

OrionExt
28.05.2017, 15:32
Да куда уж конкретней. Считаем задержки АС и АСТ. И делаем выводы. Думаем головой=)

LeoN65816
03.12.2017, 09:14
Комрады! А можно ли менять частоту выхода PLL не перекомпилируя проект?
На плате гена 50МГц. Надо, чтобы при включении девайса (не "на лету") на выходе PLL в четвертом циклоне было N * 2.042МГц, где N - это состояние пяти DIP-свитчей. Возможно ли такое?

Totem
03.12.2017, 13:06
можно, но в этом случае тебе нужна мелкая cpld.

Vslav
03.12.2017, 14:24
Комрады! А можно ли менять частоту выхода PLL не перекомпилируя проект?
Смотря какая ПЛИС. У Альтеры на Циклонах - можно. Гуглить по словам Altera PLL Reconfig.
,

Totem
03.12.2017, 14:38
Смотря какая ПЛИС. У Альтеры на Циклонах - можно. Гуглить по словам Altera PLL Reconfig.
,
а как он это сделает без сборки проекта?

Vslav
03.12.2017, 14:55
а как он это сделает без сборки проекта?
Например, третий Циклон поддерживает реконфигурацию PLL "на лету", без перезагрузки FPGA:
https://www.altera.com/content/dam/altera-www/global/en_US/pdfs/literature/an/an507.pdf

Проект, разумеется, придется доработать и пересобрать, но выходную частоту PLL можно будет выбирать именно как заказано - по DIP-свичам.

Totem
03.12.2017, 15:02
Например, третий Циклон поддерживает реконфигурацию PLL "на лету", без перезагрузки FPGA:
https://www.altera.com/content/dam/altera-www/global/en_US/pdfs/literature/an/an507.pdf

Проект, разумеется, придется доработать и пересобрать, но выходную частоту PLL можно будет выбирать именно как заказано - по DIP-свичам.

я так понимаю ему нужно в отладочных целях , посмотреть на реакцию внешней железки, но зачем тогда такие трудности с pll ? счетчик и мультиплексор гораздо проще.

Vslav
03.12.2017, 15:13
счетчик и мультиплексор гораздо проще.
Человеку надо N * 2.042МГц, где N от 0 до 31. Простым делителем такое не получишь. Можно попробовать фазовый аккумулятор, но это если требований к фазе выходного клока нет.

Totem
03.12.2017, 15:26
Человеку надо N * 2.042МГц, где N от 0 до 31. Простым делителем такое не получишь. Можно попробовать фазовый аккумулятор, но это если требований к фазе выходного клока нет.

мдя, а частота взята с потолка, интересно? девайс заметит эти .042?
уж больно оно похоже стандартный 32,768

blackmirror
03.12.2017, 15:41
Существует АЦП LTC2387-16 который выглядят примерно так:
http://zx-pk.ru/attachment.php?attachmentid=63175&d=1512303630
По сигналу CNV данный АЦП может выполнять оцифровку с частотой до 15Ms/s, и затем последовательно отдавать данные по линиям DA и DB по каждому фронту(+ и -) на линии CLK(до 400МГц, DCO это CLK вернувшийся от АЦП). Диаграмма обмена данными выглядит так(линия DВ не показана):
http://zx-pk.ru/attachment.php?attachmentid=63176&d=1512303641
Хочется подключить такой АЦП к STM746, но единственный интерфейс который может принимать данные на таких скоростях это QuadSPI. Правда с ним есть некоторые неудобства в плане того, что приём данных он может вести только непрерывно, а АЦП требует чтобы передача данных занимала не более 50 нс из 67(отводимых на оцифровку при 15Ms/s). Поэтому придётся вместо 16 бит принимать несколько больше, а затем вытаскивать нужные. Но это дополнительные вычисления, кроме того невозможно одновременно получить максимальную скорость оцифровки и ядра STM.

Производитель предлагает демонстрационную плату, где кроме АЦП установлен еще EP3C5E144, который последовательно принимает данные, а отдаёт их параллельно, и для него существует такая прошивка: http://www.linear.com/docs/52927 Прошивка страдает универсальностью в плане того, что позволяет работать еще с 18 разрядным АЦП, и может принимать данные как по 2м линиям, так и по 1й.
В плис я ничего не понимаю, но циклон здесь явно избыточен, поэтому прошу посоветовать микросхему, не сильно замороченную в изучении и программировании, которую с одной стороны можно подключить через LVDS к АЦП (питается от 2.5В), а с другой стороны через 16 параллельных линий+синхронизация к микроконтроллеру (питается от 3.3В).

6317563176

Totem
03.12.2017, 16:08
мдяя, простое решение, че тут спорить.

LeoN65816
03.12.2017, 17:38
Гуглить по словам Altera PLL Reconfig.
Спасибо! Буду "курить" эту тему.


мдя, а частота взята с потолка, интересно? девайс заметит эти .042?
2.042МГц - это удвоенная частота стандартной тактовой проца АГАТа (обрабатывать нужно оба фронта тактовой 1.021МГц). Увеличенная в N раз частота нужна для того, чтобы максимально разогнать АГАТ+ (http://forum.agatcomp.ru//viewtopic.php?id=103) в зависимости от экземпляров проца (2мкм, 800нм, 600нм) и двухпортовки (15нс, 20нс, 25нс).

Totem
03.12.2017, 18:32
Спасибо! Буду "курить" эту тему.


2.042МГц - это удвоенная частота стандартной тактовой проца АГАТа (обрабатывать нужно оба фронта тактовой 1.021МГц). Увеличенная в N раз частота нужна для того, чтобы максимально разогнать АГАТ+ (http://forum.agatcomp.ru//viewtopic.php?id=103) в зависимости от экземпляров проца (2мкм, 800нм, 600нм) и двухпортовки (15нс, 20нс, 25нс).

а можно увидеть на "осоциле" искомую частоту? например летом, когда "внутрях" корпуса разогреется до + 35?

LeoN65816
03.12.2017, 19:06
а можно увидеть на "осоциле" искомую частоту?
1.021МГц? Здесь (http://zx-pk.ru/threads/26827-strannaya-chastota-tajmernykh-irq.html).

Totem
03.12.2017, 19:22
1.021МГц? Здесь (http://zx-pk.ru/threads/26827-strannaya-chastota-tajmernykh-irq.html).

а что изменится, если частота будет 2,048?

LeoN65816
03.12.2017, 19:39
Почти что и ничего... А что это даст?

shurik-ua
03.12.2017, 19:45
В плис я ничего не понимаю, но циклон здесь явно избыточен, поэтому прошу посоветовать микросхему, не сильно замороченную в изучении и программировании, которую с одной стороны можно подключить через LVDS к АЦП (питается от 2.5В), а с другой стороны через 16 параллельных линий+синхронизация к микроконтроллеру (питается от 3.3В).
Может дешевле будет взять АЦП сразу с параллельным выходом ?

Totem
03.12.2017, 20:32
Почти что и ничего... А что это даст?
простое решение.

blackmirror
03.12.2017, 21:34
Может дешевле будет взять АЦП сразу с параллельным выходом ?
У данного АЦП заявленное соотношение сигнал/шум - 94дБ, то есть амплитуда его шумов в 50000 раз меньше амплитуды сигнала, среди АЦП с параллельным интерфейсом ничего похожего по характеристикам мне не попадалось. С подключением одного АЦП особых проблем нет, если поставить скорость QuadSPI в 72 МГц, то после 16 бит от АЦП он будет хватать 4 бита мусора и можно добавить несколько команд, чтобы переставить как нужно, но в таком варианте на второй АЦП уже не хватит производительности STM-ки. Еще есть вариант вместо DDR и двух проводов использовать режим SDR на 90 МГц, 4 провода и пару буферных тригеров работающих на противоположном фронте. Тогда после 16 бит от АЦП мы получим 8 бит мусора, что переставлять будет явно удобнее, но со вторым АЦП и производительностью вопрос всё еще остаётся, поскольку частоту STMки придётся снизить с 216 до 180МГц. А можно вообще не париться и поставить вторую STM'ку, одна будет принимать данные от двух АЦП, переставлять их в нормальный вид и выдавать для обработки.

AlexG
03.12.2017, 22:07
А сам сигнал Вы сможете обеспечить с шумом меньше чем 94дБ ???
LTC2387 уже куплена ? или это только задумка ? у аналогдевайс смотрели ацп?
ширина спектра входного сигнала?

LeoN65816
03.12.2017, 22:51
простое решение.
Totem, расскажите, пожалуйста, по-подробнее, в чем оно заключается.

blackmirror
03.12.2017, 23:17
AlexG, пока это только задумка, в существующей схеме синусоидальный сигнал уходит в оптоволокно, что с ним там происходит сказать не могу (поскольку не оптик), но потом это всё приходит на фотодиод и оцифровывается, после чего нужно вычислить амплитуду некоторых гармоник, а уже из них подсчитать некоторую цифру. Сейчас для генерации синусоиды используется 16 разрядный ЦАП на 30МГц, а для оцифровки 14 разрядный АЦП на 10 МГц (хотя интуиция мне подсказывает, что разрядность местами лучше бы поменять, да и вообще получать синусоиду другими методами, поскольку при 400-500 точках на период, ступени у ЦАП получаются сильно большие, резонансных фильтров там нет, так что кроме основной гармоники наверняка остаётся много мусора), еще управляет этим делом достаточно жирная ПЛИС, которая шумов на аналоговую часть наводит неплохо. По моим подсчётам с вычислением гармоник STM'ка должна справиться, и с конечной цифрой тоже, поскольку считать это нужно порядка 50000 раз за секунду. В идеальном случае в оптоволокно должна уйти чистая синусоида, а вернуться она же и кратные ей гармоники, там конечно есть и свои шумы, но без хорошего АЦП нельзя узнать в какой части оптической схемы они появились. А аналогдевайс зачем-то linear купил, так что ltc2387 это теперь можно сказать их АЦП.

AlexG
03.12.2017, 23:56
А почему не поставить на вход оптики ГУН с синусом на выходе ? это если надо изменять частоту синуса. Дальше по оптике идёт сигнал с частотой 50-60кГц для оцифровки 10Msps вполне достаточно (увы давно занимался). аналоговую часть в идеале принято питать от отдельного источника питания. я не знаю что и сколько должен считать стм - но 10 000 000 отсчётов по 14 бит в секунду обработать процессором можно "нормально" при тактовой раз в 100 больше (те на один отсчёт приходилось около 100 операций процессора). те 1ГГц. или у меня старческий моразм ?:v2_dizzy_ok:
да прикупил. а если вспомнить историю мотороллы - там ещё веселей.

bigral
04.12.2017, 19:14
те 1ГГц. или у меня старческий моразм ?:v2_dizzy_ok:

Вот мой камент с позиции чистого теоретика-ламера:
Помоему у этого АЦП не от "хорошей жизни" такой интерфейс (LVDS!) и циклон в схеме-примере стоит тоже НЕ ЗРЯ, это все косвенно указывает на то что 1ГГц может и не хватить (особенно при текущем уровне кривоголовости программистов и компилерописателей). Так что кажется тут правильно будет загнать прямо в циклон это самое: "вычислить амплитуду некоторых гармоник, а уже из них подсчитать некоторую цифру"...

shurik-ua
04.12.2017, 19:27
и циклон в схеме-примере стоит тоже НЕ ЗРЯ,
Да - только хотел об этом упомянуть - ну и раз тема живёт под девизом "Долой HDL безграмотность" - то в данном конкретном случае я бы посоветовал ему последовать.

AlexG
04.12.2017, 19:39
БПФ на ПЛИС самое то... дёшево и сердито.

HardWareMan
04.12.2017, 19:42
Ну дык в этом вашем DSO302 так и сделано же. STM32 там не самый быстрый, к тому же еще и экраном занят постоянно.

blackmirror
05.12.2017, 21:33
Подскажите какая последняя версия Quartus'а работает на 32х разрядной винде?

HardWareMan
05.12.2017, 22:34
Смотря какой девайс тебе надо шить.

IanPo
05.12.2017, 22:45
blackmirror, 13.0sp1, вроде бы.
https://dl.altera.com/13.0sp1/?edition=web&platform=windows&download_manager=dlm3
Циклоны 1 не поддерживаются

fifan
07.12.2017, 14:52
blackmirror, 13.0sp1, вроде бы.
https://dl.altera.com/13.0sp1/?edition=web&platform=windows&download_manager=dlm3
Циклоны 1 не поддерживаются

Можно не самим Квартусом шить, а именно программатором от Квартуса. Вот отдельная программа (http://www.spetsialist-mx.ru/for_out/QuartusProgrammerSetup-13.0.0.156.exe) у меня на сайте, попробуйте. А вообще чем новее версия тем больше устройств Квартус не поддерживает и при трансляции проекта и при прошивке.

Тут приведена ссылка Квартус версии 13, но ведь она Web. Мне этого последнего слова достаточно чтобы поморщится. Объясню почему. У Web версии ограничения на объём компилируемого проекта, появляются припоны при симуляции т.д. У меня хоть и Квартус версии 9.1, но полный. Не помню поддерживает ли он Циклон 4, но все раньше выпущенные плисины поддерживает.

HardWareMan
07.12.2017, 15:20
У меня 9.1.SP2 для всего старья + 15.1.0.185 для нового. Хватает.

AlexG
07.12.2017, 15:52
"мои пять копеек"
Квартус 13.0.1 есть крайний с точки поддержки Циклонов 2. В более новых Квартусах Циклонов 2 нет. За остальное не скажу.

IanPo
07.12.2017, 16:10
У Web версии ограничения на объём компилируемого проекта, появляются припоны при симуляции т.д.
А это где-то официально указывается? Я просто никогда не сталкивался и даже не слышал про такое.

HardWareMan
07.12.2017, 16:23
IanPo, на их сайте. Вот табличка для 17, например. (https://www.altera.com/products/design-software/fpga-design/quartus-prime/download.html) Современный Lite это ранешный Web.

IanPo
07.12.2017, 17:35
IanPo, на их сайте. Вот табличка для 17, например. (https://www.altera.com/products/design-software/fpga-design/quartus-prime/download.html) Современный Lite это ранешный Web.
Я ограничений именно на "объем компилируемого проекта" не вижу.

HardWareMan
07.12.2017, 18:20
IanPo, я понял, откуда взялся этот миф. Смотри: https://www.alteraforum.com/forum/showthread.php?t=45292
Здесь говорится о том, что лимит на объем кода есть только у ModelSim Altera Starter Edition (бесплатный ModelSim). Т.е., если требуется симулировать большой проект придется либо покупать ModelSim, либо обходиться прогоном на реале. Остальные ограничения такие же как у Lite версии Prime'а.

EvgenRU
17.01.2018, 00:46
Оказывается китайский USB Blaster на FTDI который дешевый прекрасно работает на 10 винде, проверено! Нужно просто взять драйвер от 16-17 квартуса :)
Если кому лень его качать временно кину линк на ПОДПИСАННЫЙ драйвер

>> драйвер (http://avray.ru/files/USB_BLASTER_DRIVER.zip) <<

s_kosorev
17.01.2018, 10:29
USB Blater как бы и есть на FTDI и дрова в квартусе от FTDI

EvgenRU
17.01.2018, 17:55
USB Blater как бы и есть на FTDI и дрова в квартусе от FTDI

Имелось в виду, что это подписанный драйвер, который идет только с 16 веосии квартуса, все предыдущие не ставятся на вин10 без извращений

Mick
17.01.2018, 18:18
Имелось в виду, что это подписанный драйвер, который идет только с 16 веосии квартуса, все предыдущие не ставятся на вин10 без извращений

А которые не на FTDI, а на микроконтроллерах под Win10 идут?

EvgenRU
17.01.2018, 18:41
А которые не на FTDI, а на микроконтроллерах под Win10 идут?

Уж чего не знаю, того не знаю, там идет драйвер под USB-Blaster и под USB-Blaster II


UPD: мой бластер на SILABS F321, еще парочку заказал на али, посмотрю на чем те будут, в комментах пишут что на STM32F101CBT6

Vslav
17.01.2018, 20:16
А которые не на FTDI, а на микроконтроллерах под Win10 идут?
А у них VID/PID одинаковые, только что подключил три бластера - один на плате DE0 (FT245 стоит), один самодельный на FTDI 245 и один на CY68013. Все три прикидываются одним и тем же устройством.

Mick
17.01.2018, 21:50
в комментах пишут что на STM32F101CBT6

Вот у меня на нем.
Винда 10 его видит когда скопируешь твои дрова и устанавливает. Но 9 Кактус напрочь вешается с ним когда открываешь окно программатора , аж винда в перезагрузку уходит.

s_kosorev
17.01.2018, 21:56
Кривая эмуляция ftdi, обнови фирмварь, если есть такой в природе и оно обновляемо

- - - Добавлено - - -

возьми по древнее драйвера с сайта ftdi, добавь в inf vid/pid бластера

Mick
17.01.2018, 22:10
мой бластер на SILABS F321


Нашел у себя с таким чипом, он в Кактусе 9 под виндой 10 работает с твоими дровами.

Значит, у того с STM32F101CBT6 действительно возможна старая прошивка. Хотя на корпусе написано Rev. C

Ладно теперь хоть с одного компа можно программить :)

omercury
22.01.2018, 23:51
Хотя на корпусе написано Rev. C
Они все ревизии С.
У меня ещё есть на PIC18F14K50.

fifan
28.01.2018, 16:32
Почитал я ваши последние посты и то же решил проверить, как у меня под Windows10 64 будет работать китайский USB Blaster. Quartus версии 9.1. Зашёл в программатор и не увидел USB Blaster'а.
Далее действовал так:
1. скачал (http://zx-pk.ru/threads/9342-plis-i-vsjo-chto-s-nimi-svyazano.html?p=945851&viewfull=1#post945851) и установил драйвера из выше приведённого поста. Винда драйвер видит, но Квартус не находит.
2. Порыл интернет и в одной ссылке нашёл, что драйвера нужно ставить из папки Квартуса: C:\altera\91\quartus\drivers\usb-blaster\x64. Не знаю они туда записались из предыдущего моего пункта или уже были до этого.
3. Зашёл в Квартус, теперь он увидел USB Blaster и стал с ним работать.

omercury
28.01.2018, 20:20
Это родные дрова от девятого квартуса.
Каждый раз в комплекте.

s_kosorev
28.01.2018, 22:49
От девятого как раз может работать, там меньше проверок на подделку FTDI чипа

EvgenRU
29.01.2018, 10:07
Странно что от 9 квартуса на вин 10 поставились :) может как-то одно на другое наложилось...

s_kosorev
29.01.2018, 10:36
Насколько я помню были проблемы в 9 квартусе, с подписью, но потом обновили.
В любом случае, всегда можно было скачать драйвера FTDI и добавить vid/pid байтбластера

Rio444
18.10.2018, 13:11
Ух! Наконец одолел эту тему.

Пришла и моя очередь осваивать ПЛИС. Прошу сильно не пинать и помочь разобраться в очередной порции ламерских вопросов.

Имеется: небольшой проект на Max3000A EPM3064, Quartus 9.1 web, Verilog.

Вопросы:
1. Какие должны быть подтягивающие резисторы для пинов JTAG (на самом проектируемом устройстве)? Использование внешнего КонфПЗУ не подразумевается. Программируется непосредственно ПЛИС и только она.
В готовых схемах нашел варианты:
первый - все пины вешаются через резисторы 1кОм на Vcc (+3,3В),
второй - все на Vcc, кроме TCK, который на GND.
Как правильно? Где об этом почитать? Гугл ничего не выдал (или не так искал).
2. Как правильно использовать Global Reset? Нужно ли что-то дополнительно указывать Квартусу или просто вручную сделать цепь инициализации каждого триггера и назначить её пину "Global Clear"?
3. Аналогичный вопрос по использованию Global Clock.

andreil
18.10.2018, 13:23
Ух! Наконец одолел эту тему.

Пришла и моя очередь осваивать ПЛИС. Прошу сильно не пинать и помочь разобраться в очередной порции ламерских вопросов.

Имеется: небольшой проект на Max3000A EPM3064, Quartus 9.1 web, Verilog.

Вопросы:
1. Какие должны быть подтягивающие резисторы для пинов JTAG (на самом проектируемом устройстве)? Использование внешнего КонфПЗУ не подразумевается. Программируется непосредственно ПЛИС и только она.
В готовых схемах нашел варианты:
первый - все пины вешаются через резисторы 1кОм на Vcc (+3,3В),
второй - все на Vcc, кроме TCK, который на GND.
Как правильно? Где об этом почитать? Гугл ничего не выдал (или не так искал).
2. Как правильно использовать Global Reset? Нужно ли что-то дополнительно указывать Квартусу или просто вручную сделать цепь инициализации каждого триггера и назначить её пину "Global Clear"?
3. Аналогичный вопрос по использованию Global Clock.
1. гуглинг по запросу "Altera jtag" сразу выдаёт схему с номиналами ;)
2. Эти сигналы нужна, только если они используются по назначению. А так - можно использовать как простые входы (не выходы).
3. Использовать надо хотя бы 1, если делать по правилам. Назначается в Assigments, сопоставляя ему реальный сигнал (обычно пин GCLKX).

Rio444
18.10.2018, 13:37
andreil,
1. У меня почему-то выдаёт только ссылки на программаторы альтер по JTAG. Киньте хоть пару ссылок, где именно резисторы и их подключение.
2. Reset нужен именно по назначению - установить начальные значение триггеров.
3. "Assigments" - это где? Это Verilog? В Квартусе назначение пинов видел через меню.

P.S. Удалось найти несколько схем. Видимо раньше искал "Max3000a JTAG".
На всех схемах TCK через 1кОм к земле, TDO вообще никуда не подтягивается. TDI и TMS подтягиваются к Vcc, но номиналы резисторов в 2-х вариантах: 1кОм и 10кОм. Какой подойдёт к Altera Max3000?

P.P.S. После небольших мытарств от сайта к сайту, от документа к документу, удалось найти официальный документ от альтеры, регламентирующий подключение всей серии Max - Application Note 95 "In-System Programmability in MAX Devices" https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/an/an095.pdf
Схема оттуда:
https://image.ibb.co/dpopaf/JTAG-MAX3000-A.png

fifan
18.10.2018, 18:53
1. Можно и без резисторов. USB Blaster у меня и так прошивает.
2. Сброс назначается на вывод 1 для 3000
3. Assigments - это отдельно открываемое меню в квартусе. Там высвечивается плисина в большом увеличением со списком сигналов проекта. Просто тупо переносите сигналы на определённый пин. Потом нужно заново проект перекомпиоировать.

Вот на скриншоте показал. У меня квартус 13. Кстати эта версия квартуса идеальна по поддержке старых и новых плисин, рекомендую: версия 13.0.1.

Rio444
19.10.2018, 07:04
fifan, большое спасибо!
Плисину с большим увеличением видел, не знал, что называется "Assigments".
Резисторы, как я понял, нужны не столько для прошивки, сколько для работы. Негоже, когда входы в неопределенном состоянии. Правда, по-прежнему непонятно, почему TDO тоже подтягивается. Это выход.

У Вас версия 13.0.1 полная или web?
Скачивал с торрентс.ру полную, но кряк там был только для 32-битной версии.

fifan
19.10.2018, 14:47
Резисторы, как я понял, нужны не столько для прошивки, сколько для работы. Негоже, когда входы в неопределенном состоянии.
Не совсем так. В настройка есть функция как использовать не подключённые выводы как tri-state.

У Вас версия 13.0.1 полная или web? Скачивал с торрентс.ру полную, но кряк там был только для 32-битной версии.
Полную 64-битную я не нашёл, у меня Web.

Rio444
20.10.2018, 16:24
Да, N-е количество страниц назад тут искали способ, как сделать выход с ОК (он же "открытый коллектор", "открытый сток", Open Drain)
Решение здесь https://www.intel.com/content/www/us/en/programmable/support/support-resources/knowledge-base/solutions/rd06252007_878.html
В квартусе 9.1 через Assignments/Settings/Libraries добавляете библиотеку "....\altera\91sp2\quartus\libraries\primitives\buf fer"
Потом в Verilog создаёте компонент "opndrn имя_компонента(вход, выход);
Например:
opndrn OpenDr(Input_Pin, Output_Pin);
получаем следующее:
https://image.ibb.co/fefRAf/Open-Drn.png

HardWareMan
20.10.2018, 17:33
https://pp.userapi.com/c831209/v831209427/aec/7yqn2tzHy94.jpg
http://jpegshare.net/images/01/08/0108036774437dd7d9fc834e3725de22.png
TRI открывается при лог.1, а тянуть надо к лог.0, поэтому получается инверсия, которая компенсируется инвертором NOT.
input In;
inout Out;
assign Out = (In) ? 1'bZ : 1'b0;
Причем, если заменить массу на VCC (0 на 1), то можно получить OS (Open Source или Открытый Исток).

Rio444
20.10.2018, 18:26
HardWareMan, так это баянище.
Первое, что пришло мне в голову даже без поиска решений в сети.
И в этой теме уже упоминалось.

JV-Soft
24.01.2019, 19:19
Вопрос по xilinx , каким софтом редактируется и компилируется .abl исходники ?
Тут - ТЫЦ (http://www.pldworld.com/_hdl/2/-seas.upenn.edu/_ese201/foundation/foundation_abel3.html) упоминается - ABEL-HDL Editor ,в составе Xilinx ISE Design Suite я его не нашел или не там искал.

zebest
24.01.2019, 23:42
хы. какой антиквариат.
"эти интернеты" говорят про етот анахрониzм что:

Последняя версия ISE, которая поддерживает ABEL, кажется, 10.1
ну или тут
https://www.xilinx.com/support/answers/32354.html

JV-Soft
25.01.2019, 00:10
хы. какой антиквариат.
Ну наверно да, из этого проекта , там все .abl
http://www.mkl211015.altervista.org/ide/ide68k.html
Надо скомпилить под чип с другой задержкой , пытаюсь разобраться.

- - - Добавлено - - -

Качаю 10.1 , еще бы ортодокса найти со знаниями об .abl

Gutten
25.01.2019, 00:15
http://mazsola.iit.uni-miskolc.hu/cae/docs/xabel.html

zebest
25.01.2019, 01:33
Качаю 10.1
там вроде как можно сконвертить в более привычный verilog\vhdl

JV-Soft
25.01.2019, 15:42
там вроде как можно сконвертить в более привычный verilog\vhdl
Задача стоит такая , что найти чипы 7ns не очень просто ,продавцы пишут что прдают 7ns ,а по факту присылают 10-15ns , и надо было перекомпилить прошивку abel под эти задержки.

В общем покурил немного инфу , и вам спасибо ISE 10.1 именно то,только пришлось на бук с XP ставить , все получилось, сделал проект и перекомпилил.

https://b.radikal.ru/b31/1901/a7/541f32b31326t.jpg (https://b.radikal.ru/b31/1901/a7/541f32b31326.jpg)


Еще вопрос ,а из исходника abel можно как то визуальную схему получить ?

zebest
25.01.2019, 15:51
я 10й версией никогда не пользовался, не видел, только 14-й ISE
но если можно сконвертить в что то удобоваримое , то в старшей версии можно и визуально посмотреть.
Логично?

alm604
09.03.2019, 20:15
Доброго времени суток, товарищи. Требуется помощь по epm3256. Использую ее, как чипсет для 80188. Проц и память на 5 вольт, но решил еще зацепить NAND на 3,3 вольта. Для нее шина данных уже получается своя, но абсолютно идентичная шине данных памяти. Как я ни старался - кактус не хочет создавать вторую 3-state шину, вываливает сотню ошибок типа "Error (163105): Cannot route source node "inst37~0" of type max_mcell to destination node "inst43~11" of type max_mcell". Не хочется ставить внешний преобразователь уровней. Никто не сталкивался с такой бедой? Verilog так и не раскурил, бОльшую часть рисую схемой.

AlexG
09.03.2019, 21:50
1 - без исходных данных - будет гадание на гуще кофейной.
2 - nand это знатные проблемы с программированием.

shurik-ua
10.03.2019, 03:05
скорее всего исчерпано количество внутренних линий для этого чипа - лечится только заменой на более ёмкую CPLD

lMX2315
12.04.2019, 22:50
Добрый вечер уважаемые, подскажите может кто видел контроллер на верилоге для SDRAM ?

shurik-ua
13.04.2019, 01:30
opencore.org

lMX2315
13.04.2019, 12:15
..у меня не открывается сайт opencore.org, может это роскомнадзор шалит. Если вас не затруднит скачать какую-нить корку если там есть, то было бы здорово.
з.ы.
Если бы кто посоветовал свою , которую реально применяли - на форуме есть эмуляторы старых компов на отладках с плис и сдрам, наверняка корки кто-то тут использовал.
Может есть ссылки на открытые исходники таких проектов на верилоге?

IanPo
13.04.2019, 12:59
https://opencores.org/

zebest
13.04.2019, 13:12
эмуляторы старых компов на отладках с плис и сдрам
http://bashkiria-2m.narod.ru/index/fpga/0-12
см. SDRAM версийю. Вполне рабочая.
и тут
https://zx-pk.ru/threads/12425-speccy2010-sborka-naladka-testing.html
сайт вообще-то https://opencores.org/
и да, последний пример скорее всего на VHDL, но по большомуу счету - какая разниЦЦа?

lMX2315
13.04.2019, 17:07
Спасибо всем!

JV-Soft
24.04.2019, 00:32
Вопрос ,умеет ли LPT прогеер Xilinx шить плисины когда они имеют такое включение ? И для них сдвоенная прошивка сразу.
И если да то каким софтом ? Ибо имеющаяся софтина видит каскад из двух плисин ,но не определяет их модель.

https://b.radikal.ru/b39/1904/31/b308fd72990ct.jpg (https://b.radikal.ru/b39/1904/31/b308fd72990c.jpg)

HardWareMan
24.04.2019, 06:17
JV-Soft, Если думать логически, то сам интерфейс JTAG как раз таки изначально рассчитан на JTAG Chain. Другое дело поддерживается ли это софтом? Я считаю с большей вероятностью что да. Как и у Альтер. Что касается известных ID, то я скажу так: Quartus 9.2SP1 ничего не знает про Cyclone V, который вышел во времена Quartus 13. Он его так же пишет UNKNOWN, т.к. ошибки интерфейса нет, как и информации об считанном ID. И это всё по USB.

- - - Добавлено - - -

Кстати. Если ты знаешь какие именно ПЛИС и в каком порядке подключены, то можешь указать родные файлы и теоретически должно прошиться. Ведь UNKNOWN это просто нет ID в БД, но программатор просто сравнивает ID фактического чипа и ID из файла (для исключения ошибки) и они совпадут. Но это не точно.

AlexG
24.04.2019, 10:20
Вопрос ,умеет ли LPT прогеер Xilinx шить плисины когда они имеют такое включение ? И для них сдвоенная прошивка сразу.
И если да то каким софтом ? Ибо имеющаяся софтина видит каскад из двух плисин ,но не определяет их модель.

1 на всякий случай - весия ise ?
2 что запаяно ?(пзу и плис) маркировка ?
3 возможно не правильно питание заведено на "lpt jtag"
4 возможны проблемы с фронтами тактовой и данными - в бытности была "методичка" про "целостность сигналов" в самом "lpt jtag"
5 иль разводка на плате не по феншую (см п.4)
6 в теории и на практике "lpt jtag" может шить каждую микросхему по отдельности и не зависимо от других своим собственным файлом.
пзу *.mcs и fpga *.bin (типовой расклад по именам фаайлов)

zebest
24.04.2019, 10:42
возможно не правильно питание заведено на "lpt jtag"
вотда. Есть у меня собранный сабж, но чет н не сильно заработал. курил маны и сравнивал с другими схемаме. вроде как все похоже, но вот один сигнал непонятный. вроде бы его на "землю" надо бы. Так сильно и не разобрался, плюнул, приобрел байт бластер. но желание добиЦЦа от lpt-жЫтага правды еще осталось. Может что-то подскажете по моим догадкам? если я все это найду конечно)
уточняю - ксайлинковский жЫтаг, есичо

AlexG
24.04.2019, 11:11
https://www.xilinx.com/support/documentation/user_guides/xtp029.pdf
Внимательно читаем стр 4 про питание микросхем.
Схема от PC3 !!!
"The PC3 product was first introduced in 1998 and then discontinued in 2002. Software support
for PC3 was removed starting in March 2008 with the 10.1 release of Xilinx iMPACT software.
Versions of iMPACT software after 10.1 release do not support the PC3 cable. See “Notice of
Disclaimer” regarding warranty and support of the PC3 schematic information."

и

"Power. Supplies VCC (5V, or 3.3V; 10 mA, typically) to
the cable. The VCC supply level must match the I/O
voltage level for all devices in the JTAG chain for best
signal integrity."

а вот такой "кабель" я ни разу не видел и не использовал
https://www.xilinx.com/support/documentation/data_sheets/ds097.pdf
и схем от оного я не видел.

Более точнее затруднительно сказать, разве что где-нибудь найти завалившийся оный кабель и посмотреть на его схему.
Нынче используется онли USB-jtag.

Можно "заглянуть" в
http://pldkit.com/xpl1
http://pldkit.com/download/XPL1_D.pdf
Обращаем на двойное питание микросхем.

опять же можно "поиграть" настройками в биосе типом лпт-порта : обычный или ECP (как то так)

zebest
24.04.2019, 11:52
в биосе пробовал менять.. Не помогло. Принтер на lpt работает.
Схем штуки три-четыре нашел. Похожих неуловимо)).
Но китайцы бы не были такими кЕтайцами, есмли бы не сделали по своемуу..
Подвиг совершал. Схему пытался восстановить

http://s2.micp.ru/yWFCa.jpg

Вот в середине вроде как перемычка J10?, неизвестная. Что и для чего задумано - тока они знают, но не признаюЦЦа. В итоге - не заработало. Но на стандартную схему - сильна похоже.

balu_dark
24.04.2019, 12:42
На самом деле существовало 2 схемы байт бластера, отличающихся пинами. и было немыслимое количество похожих схем для прошивки различных других устройств начиная от CPLD JTAG, MIPS JTAG и заканчивая AVR ISP.

JV-Soft
24.04.2019, 13:10
AlexG, софт отдельно Impact , плис xc9572xl , с питанием все ок , этим прогером спокойно шью по одиночке xc9572xl ,ни каких проблем.
А тут попросили прошить TF530 для амиги (карта отлаженная проблем тут точно не может с разводкой быть) , плис там стоят как и на фото софтины , tdi одной подключен на tdo другой , софт каскад понимает но плис не определяет.
А может быть такое ,что плисины очень китайские ?

AlexG
24.04.2019, 13:23
я прекрасно знаю что impact "отдельно". Версия оного ? (impact входит в состав ISE комплектом). xc9572xl это не плиса (это всем очевидно). На фото вообще нихрена не видно из сообщения 1411. Или мы про какое фото думаем ? Плисы бываю "левыми", но блин для этого их как минимум надо глазами увидеть.

JV-Soft
24.04.2019, 14:06
AlexG, версии impact есть 4.2 и 10.1 ,поведение одинаково.

Сравнил свою xc9572 c той что стоит в карте ,немного отличаются по гравировке

У меня такие -

https://a.radikal.ru/a27/1904/e5/87500dc9a557t.jpg (https://a.radikal.ru/a27/1904/e5/87500dc9a557.png)

В карте ,которые не определились прогером ,такие

https://c.radikal.ru/c24/1904/4e/9056401f4345t.jpg (https://c.radikal.ru/c24/1904/4e/9056401f4345.png)

- - - Добавлено - - -

PS смотрю в карте стоит серия I , индустриальная , она явно должна быть дороже чем C , уточню по чем их брали ,интереса ради.

AlexG
24.04.2019, 14:14
питание? коротыши? осцилом смотрели сигналы? убрать из цепочки одну из плис? шить по одной ? с виду нормальные микросхемы. токмо одна комерческая, а другая индустриал (отличаются температурным диапазоном работы)

JV-Soft
24.04.2019, 14:21
питание? коротыши?
В норме , но потребление большое ,и "I" чуть теплее ,сразу не рассмотрел, выяснилось что в карте одна стоит "I" ,а другая "C" , короткого нет ,просмотрел под лупой ноги.

убрать из цепочки одну из плис? шить по одной ?
Жду ,что хозяин карты скажет.


с виду нормальные микросхемы. токмо одна комерческая, а другая индустриал
Вот сейчас насторожило ,если человек брал их как - из одной партии ,то почему оказалась одна "I" ,а другая "C"
И правильно понимаю , "I" явно дороже должны быть ?

AlexG
24.04.2019, 14:39
ценник зависит от расположения звёзд и настроения продавца. осцилом смотрели сигналы на "рабочей" и "не исправной" микросхемы ?

JV-Soft
24.04.2019, 14:44
AlexG, нет пока не смотрел , по одной сдую ,гляну потребление ,дальше буду думать.
Короткое расследование ,хозяин карты говорил ,что все плисины из одной ленты , с али , вот и думаем ,явно ж не бывает в одной ленте в перемешку "I" и "C"

AlexG
24.04.2019, 14:52
если "насыпаны" из одного мешка - возможно что оные микр. были выпаяны и проданы "новыми", или статикой побиты, или просто дохлые. но я б сперва посмотрел бы осцилом.

zebest
24.04.2019, 18:52
То вырисовываеЦЦа следующая схема, поЧти 1-в-1 с какой-то стандартной, за исключением одного НО!:
http://s1.micp.ru/jMoZ3.png
В центре , кружочком красненьким обвел. В оригинальной схеме 2 вывод плотно на GND, у мну же он как раз на J1 контактную площадку идет, и в разрыве. ЧТО!?? Что этим хотели сказать кЕтаЙцы!? с какого-то перепою так развели?? :v2_dizzy_facepalm:

AlexG
24.04.2019, 22:20
а запаять на массу ???

JV-Soft
24.04.2019, 22:43
если "насыпаны" из одного мешка - возможно что оные микр. были выпаяны и проданы "новыми", или статикой побиты, или просто дохлые. но я б сперва посмотрел бы осцилом.
Ну и о али немного -
В том то и дело ,что в каком то китайском гараже не поленились в ленту запечатать не только разные ревизии , но и даже с разным цветом маркировки.
Соответственно не думаю ,что они отбирали "ЛУЧШИЕ" для продажи из коммерческой и индустриальной серии в ручную пакуя в ленту :biggrin: ,а здается мне это брак который высыпают из линии в мусор , вот так выглядит - "лучшее детям" , как детская картинка ,найди десять отличий )

https://d.radikal.ru/d28/1904/43/af7ae25b8f29.png (https://radikal.ru)

Xrust
30.04.2019, 13:42
Есть у меня небольшая кучка epm7128 в корпусах plcc 84 неизвестного происхождения. Есть так же USB blaster проверенный, рабочий. С целью проверки работоспособности EPM-ок собрал на макетке тестовую плату - питание, JTAG разъем 10 pin с подтяжкой 10к к питанию и дополнительный разъем питания 5v. Квартус ни одну EPM-ку не видит. Может я что-то не так делаю или просто микрухи дохлые/залоченые?

omercury
30.04.2019, 18:32
TCK подтягиваются к земле.
И питание, разумеется. Бластер сам питается от таргета
Пины питания подключать все, что есть.

balu_dark
30.04.2019, 20:31
У меня тоже таких чипов штук 20 - мои залоченные, но существует еще разновидность этих чипов, которая просто не имеет джитага - типа самая первая версия, шились только специальным альтеровским программатором параллельным.
Внимательно прочитайте даташит на эту тему и сверьте маркировку со своей!

Xrust
30.04.2019, 22:38
balu_dark, по даташиту мои с jtag, epm7128slc84. У меня всё-таки теплится надежда, что я что-то не так делаю.

- - - Добавлено - - -


TCK подтягиваются к земле.
А по схеме я смотрю, TCK тоже к +5в.
Руководство по эксплуатации LDM-PP 2.7128 (EPM7128STC100) (https://ldm-systems.ru/f/doc/catalog/LDM-PP2.xxxx/LDM-PP2.xxxx.pdf)

- - - Добавлено - - -

У кого-нибудь есть лишняя рабочая epm7128 plcc-84? Я бы купил и успокоился.

omercury
01.05.2019, 15:49
А по схеме я смотрю, TCK тоже к +5в.
Позвольте не согласиться.

fifan
03.05.2019, 15:50
Для этой серии ПЛИС все четыре резистора можно и не ставить - и так прошьётся.

perestoronin
04.05.2019, 09:25
Не знаю, пробегала ли здесь ссылка вот на этот сайтик. Продублирую. (http://www.fpga-cpld.ru/index.html)

А особенно страничку про настройки LTP порта (http://www.fpga-cpld.ru/lpt.html), годится и для настроек GALBlasterов, так как просят помочь с запуском программаторов, а настройки нужные для работы LPT-программаторов забывают сделать.

Xrust
04.05.2019, 19:34
Разобрался со своей проблемой. Ошибка была в схеме. Теперь все ПЛИСины читаются и шьются. Подтяжка осталась на всех 4 линиях 10к к +5в.

fifan
05.05.2019, 10:02
вот на этот сайтик
Все проекты на коммерческой основе. Лучше использовать этот сайт (https://www.fpga4fun.com/) - готовых примеров много и сразу с открытыми исходниками, правда на английском языке.

Rio444
15.05.2019, 13:34
Всем привет!
Делаю проект на CPLD EPM3064.
Периодически вылезают ошибки, что какие-то сигналы невозможно куда-то протянуть.
Приходится что-то резать, убирать часть функций.
Для полной функциональности ячеек хватает. Но не хватает внутренних линий связи.
Что можно сделать? Поможет ли автоматическое назначение пинов (чтобы компилятор сам назначил наиболее удобные для внутренней разводки)?
Или перейти на EPM3128? Поможет ли это? Ячеек у неё больше, а внутренних линий ведь столько же?

vlad
15.05.2019, 13:53
Периодически вылезают ошибки, что какие-то сигналы невозможно куда-то протянуть.
Что за проект?

Rio444
15.05.2019, 14:10
Что за проект?
Эмулятор Com-порта для шины ISA. Чем это поможет?

vlad
15.05.2019, 14:14
Эмулятор Com-порта для шины ISA.
Интерфейс RS232 или UART прием и передача на VHDL (http://acvarif.info/prvhdl/prvhdl30.html)
UART, Serial Port, RS-232 Interface (https://www.nandland.com/vhdl/modules/module-uart-serial-port-rs232.html)

Rio444
15.05.2019, 14:22
vlad, наоборот.
ISA карта вставляется в материнскую плату и компьютер думает, что это COM-порт. А на самом деле это нечто другое)))
Ничего принимать и передавать по RS-232 не нужно. Нужно только "притворятся". Данные поступают гораздо проще. С этим проблем нет.

P.S.
Убрал назначение пинов, и проект скомпилировался без ошибок. Назначил пины - снова ошибки.
Пользуюсь Quartus 9.1Web Edition

vlad
15.05.2019, 15:04
ISA карта вставляется в материнскую плату и компьютер думает, что это COM-порт.
Работает как 16450 (https://github.com/freecores/z80soc/blob/master/V0.6/DE1/rtl/VHDL/t80/T16450.vhd), типа такого (ссылка (https://www.latticesemi.com/-/media/LatticeSemi/Documents/ReferenceDesigns/SZ/UART16450Transceiver-Documentation.ashx?document_id=49553))?

Назначил пины - снова ошибки.
Пины то разные по направлению и функциональности, какие ошибки пишет?

Rio444
15.05.2019, 15:13
Работает как 16450, типа такого (ссылка)?
Да, только даже ещё проще. Как 8250. Это "прародитель" без буфера FIFO. Подробно, например здесь http://www.softelectro.ru/rs232prog.html
И работает мой девайс только на прием.

Ошибки все типа:
Error: Can't place node "xxxx" of type max_mcell
Где хххх - выход триггера или модуля, или выход наружу.
И этих ошибок десятки. Хотя стоит чуть урезать схему, как пропадают. Но урезать уже нельзя, осталось всё нужное.

vlad
15.05.2019, 15:35
Убрал назначение пинов, и проект скомпилировался без ошибок. Назначил пины - снова ошибки.
Если не критично при проектировании платы, то пусть Quartus сам назначит пины. Попробуйте тоже, но более ёмком из вашей 3000 серии (https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/ds/m3000a.pdf), скорее всего точно, не хватает ячеек...

Мало информации, чтобы дать сразу нужный совет.

Rio444
15.05.2019, 15:58
Вот результат компиляции:
https://i.ibb.co/MGHt7qq/Project.png (https://imgbb.com/)
Ячейки есть. И даже пины свободные.

HardWareMan
15.05.2019, 18:59
В том то и дело, что не хватает ресурсов. Когда проект приближается к 90% заполнению, то помимо ячеек начинает играть роль и количество PIA. Они указаны в букваре, но не учитываются в этом отчете. PIA это шина связей между ячейками. И иногда перенос сигнала на другой пин всё решает. Попробуй собрать без указания ног (авторасположение) и увидишь что изменится.

Rio444
15.05.2019, 19:57
HardWareMan, без указания ног собирается. Но не могу понять, где посмотреть расположение ног.
Может нужна другая версия Квартуса?

HardWareMan
15.05.2019, 20:13
"Pins" для старых версий, "Pin Planner" для новых. Ну или в глобальном редакторе Assignments. Можно еще пойти в Chip Planner и раскидать узлы руками, что иногда позволяет "впихнуться" в нужные условия, но это уже сильное колдунство и тут нужен 80лвл по плисам (в том числе и все буквари на семейство вычитать).

Rio444
15.05.2019, 21:07
"Pins" для старых версий, "Pin Planner" для новых.Так нету там ничего, если вручную не назначить.

HardWareMan
16.05.2019, 06:34
А, так ты посмотреть хочешь, куда назначил автомат? Вот в старом:
https://jpegshare.net/images/92/e7/92e737c492cfc833aebdfe64bc25a041.png
Вот в новом:
https://jpegshare.net/images/fc/c2/fcc2209af853e0f46dfb225b8ad34266.png
Всё в том же "Pins". Потом просто мышкой води по корпусу и смотри что куда попало.

Rio444
16.05.2019, 09:19
HardWareMan, действительно, спасибо! Сам бы не догадался, что надо на картинке смотреть.
Хотя уже поставил версию 13.0.1, там прямо в таблице выводится.

LeoN65816
25.05.2019, 10:48
Для проекта (https://zx-pk.ru/threads/26944-mechta-agat-na-plis.html) приглянулся мне DVI Transmitter Chrontel CH7301C (http://www-inst.eecs.berkeley.edu/~cs150/Documents/CH7301C.pdf). В нем сразу встроенный ЦАП для VGA. Как я понял, он умеет или через DVI гнать, или через VGA.

Посему вопрос: кто-нибудь может посоветовать подобный аппарат, но умеющий дефолтно гнать видеопоток одновременно и через DVI и через VGA без инициализации и программирования чипа?

fifan
27.05.2019, 11:23
А как связан этот трансмиттер со Спектрумом? Если написать заголовок оффтоп, то можно всё что попало написать? Не люблю когда в тему врезаются левые вопросы.

CodeMaster
27.05.2019, 12:04
А как связан этот трансмиттер со Спектрумом?
А предыдущие несколько страниц темы как-то связаны со Спеком? Никто не виноват, что тут такая структура, что ПЛИС либо обсуждают в Спектруме либо надо плодить несколько параллельных тем. Но этот трансмиттер теоретически наверное и со Спектрумом можно связать, но мне вот непонятно причём тут ПЛИС.

AlexBel
27.05.2019, 13:33
А предыдущие несколько страниц темы как-то связаны со Спеком? Никто не виноват, что тут такая структура, что ПЛИС либо обсуждают в Спектруме либо надо плодить несколько параллельных тем. Но этот трансмиттер теоретически наверное и со Спектрумом можно связать, но мне вот непонятно причём тут ПЛИС.

При том, что это один из вариантов видеовывода из компьютера на ПЛИС, в том числе и из "Спектрума". Для тех, кто хочет использовать для видеовывода что-то посерьёзнее нескольких резисторов.
Я, например, использую для вывода картинки на TFT-матрицу сериализатор LVDS подключённый к FPGA, и покажите более подходящую тему для обсуждения этого.

JV-Soft
19.07.2019, 15:59
Кто нибудь знает ,а реально отконвертировать abel в verilog ?

IgorR76
19.07.2019, 16:17
JV-Soft, что то объемное написано на ABEL ? Руками переписать можно?

JV-Soft
19.07.2019, 16:46
JV-Soft, что то объемное написано на ABEL ? Руками переписать можно?
Можно ,но для этого у меня пока не хватает знаний )
Хочу сделать проект для амиги на одной плисине , а коды с которых буду переписывать на разных языках

IgorR76
19.07.2019, 17:11
Тем более тогда лучше конвертировать и собирать вручную. Какие нибудь заумные конверторы такого накрутят, что потом сложнее разобраться будет, чем когда сам всё писал и знаешь, что от чего и для чего. А знания всегда расширить можно. Верилог язык простой, ABEL не пробовал, но посмотрел образцы кода-вроде тоже никаких сложных конструкций нет. Получится, пробуйте!

omercury
20.07.2019, 14:52
Хочу сделать проект для амиги на одной плисине
Если это каким-то чудом окажется ксай, то в ISE WEBPACK есть утилита Xport.exe для этой цели.

Xport.exe is available on Windows 32-bit platforms only and can be found in the $Xilinx\bin\nt directory.
https://www.xilinx.com/support/answers/17000.html

dosikus
24.08.2019, 10:17
Хочу взять китайские посткарты на поиграться . Карточки на EPM7064 . Есть шансы что они не залочены намертво и их можно пользовать?
Или EPM7064 можно всегда стереть ?

Mick
24.08.2019, 14:45
Или EPM7064 можно всегда стереть ?

Все зависит от того залочены (JTAG отключен) они или нет. Если нет, то JTAG тебе в помощь, а если залочены, то только через спецпрограмматор.

dosikus
24.08.2019, 19:56
Спасибо, сократил мне поиск, спецпроггер мне не светит. Куплю одну, испытаю.

JV-Soft
26.08.2019, 12:36
ПЛИСоводы со стажем ,подскажите , есть те кто пишут и пользуют и altera и xilinx , что все же лучше глобально осваивать ? Я вот коснулся Амиги ,там буржуи в основном на xilinx сидят , а у нас больше на altera.
У xilinx что среда ,что дружелюбность к пользователю мне уже не очень нравится , квартус говорят по приятнее.
Стоит ли осваивать обе среды ?

Bolt
26.08.2019, 12:47
буржуи в основном на xilinx сидят , а у нас больше на altera.
"Так исторически сложилось". Аналогично Atmel vs Microchip.


У xilinx что среда ,что дружелюбность к пользователю мне уже не очень нравится , квартус говорят по приятнее.
Мне тоже так показалось, поэтому выбрал Altera. Хотя у Xilinx, по-моему, ячейки "мощнее".

HardWareMan
26.08.2019, 14:31
"Так исторически сложилось". Аналогично Atmel vs Microchip.
А теперь это одна контора, лол.

Кактус гораздо дружелюбнее, чем ISE. И это не кажется, это факт. А ещё, есть Lattice да всякие мелкие PAL/GAL. :)

fifan
26.08.2019, 14:50
JV-Soft, зря ты затронул эту тему - сейчас такой срач начнётся. Каждый будет уверен, что он прав. Уже проходили это не раз, может даже в этой теме.

Bolt
26.08.2019, 15:27
Вот у меня тоже вопрос как у JV-Soft: стоит ли осваивать вторую среду, Lattice? Но мне проще решить, потому что и так идей много чем заняться :)

JV-Soft
26.08.2019, 16:37
fifan, предметно пусть изливают , мне интересны все мнения.

Кактус гораздо дружелюбнее, чем ISE
Щупал только ISE , сразу не понравилась , просто в сравнении с другими средами разработки которые пользовал до этого.

Вот у меня тоже вопрос как у JV-Soft: стоит ли осваивать вторую среду
Или может кто то ,равно пишет в обоих и может объективно из опыта обсказать ,что и почему.

HardWareMan
26.08.2019, 17:27
ИМХО, если всерьёз решил заняться ПЛИСинами, то надо изучить обе среды. И с контроллерами та же песня - лучше знать максимум номенклатуры, тогда потом проще выбирать под конкретную задачу.

JV-Soft
26.08.2019, 21:58
ИМХО, если всерьёз решил заняться ПЛИСинами, то надо изучить обе среды. И с контроллерами та же песня - лучше знать максимум номенклатуры, тогда потом проще выбирать под конкретную задачу.
Скорее вынужден изучать , так как сначала купил амигу ,а уж потом стало дело в доработках ,а там на ЛА3 сильно не наделаешь.
Еще обратил внимание что альтер предыдущих поколений уже проблематично находить ,и вот xilinx-ов навалом.

omercury
27.08.2019, 19:23
обратил внимание что альтер предыдущих поколений уже проблематично находить ,и вот xilinx-ов навалом.
...что лишний раз говорит об их "повышенной" востребованности... ;)


"Так исторически сложилось". Аналогично Atmel vs Microchip
Плохое сравнение, PIC появились раньше.
Исторически сложилось потому, что у нас Альтеры доступны с незапамятных времён (и даже отечественные ПЛИС совместимы с Альтерами как по распиновке, так и по ПО, точнее Квартус используется для Воронежских ПЛИС), в отличие от Ксая, которые стали доступными с переводом производства всей электроники ближе к ресурсам, т.е. в Китай.



Хотя у Xilinx, по-моему, ячейки "мощнее".
Да примерно ноздря в ноздрю идут, единственное с появлением пятого циклона теперь ликвидировано отсутствие распределённой памяти.
Ну и ещё следует добавить, что из жирных FPGA у китайцев доступны за вменяемые деньги именно Ксаи...
https://ru.aliexpress.com/item/33005484698.html?spm=a2g0o.detail.1000060.2.29604b cbZEowxU&gps-id=pcDetailBottomMoreThisSeller&scm=1007.13339.139618.0&scm_id=1007.13339.139618.0&scm-url=1007.13339.139618.0&pvid=d44ddec8-6d60-42d6-996d-4d19fb5f5d79
В 60 раз ниже стоимости самого чипа...


altera и xilinx , что все же лучше глобально осваивать ?
Лучше то, что знаешь.
Если не знаешь ни то, ни другое, тогда лучше то, на что проще получить помощь и что доступнее в регионе(хотя с вездессущим Китаем последнее неактуально).
Также следует отметить, что пока не используешь аппаратные возможности чипов конкретного производителя, то разницы вообще никакой нет. Ну и с учётом, что первое впечатление от среды одного из двух ведущих производителей оказалось "не очень", то выбор, ИМХО, очевиден.
А с набором опыта с одним из, победить недружественность интерфейса второго будет намного проще.


ИМХО, если всерьёз решил заняться ПЛИСинами, то надо изучить обе среды.
Два лучше, чем ни одного!
"Однозначно!" (с)

dosikus
06.09.2019, 11:23
omercury, твой продаван пишет что у него есть лицензионный квартус . К чему бы?

https://ru.aliexpress.com/item/32834586200.html?spm=a2g0v.12010612.8148356.11.7a8 27baeOxUJzr

AlexG
06.09.2019, 13:07
За алтеру не скажу, а у ксайлинкса есть "полный" комплект средств разработки: само создание прошивок, отладка внутри плисовая, симулятор, и разработка на С-подобном языке, ну это если не считать что уже есть программы для работы с ИИ. Единственное но: бесплатно только для малых плис, частично для средних, и платно для ну очень крупных (где стоимость одной плисы в разы дороже среды разработки и соответственно можно и софт прикупить "на сдачу")

omercury
06.09.2019, 14:23
omercury, твой продаван пишет что у него есть лицензионный квартус . К чему бы?


Лицензия на Квартус.

На ICE или Vivado тоже есть.
Надо?
https://ae01.alicdn.com/kf/HTB19_0OOhTpK1RjSZFKq6y2wXXaN.jpg



https://ru.aliexpress.com/item/32834586200.html?spm=a2g0v.12010612.8148356.11.7a8 27baeOxUJzr
Лучше вот это:
https://ru.aliexpress.com/item/32949281189.html?spm=a2g0o.productlist.0.0.5ab82b7 8T1xLCz&algo_pvid=7ba776f4-f882-4413-8e63-b538a6c44230&algo_expid=7ba776f4-f882-4413-8e63-b538a6c44230-0&btsid=b0fbcab7-667e-44a5-8280-df319e146970&ws_ab_test=searchweb0_0,searchweb201602_7,searchwe b201603_53
а ещё лучше это
https://ru.aliexpress.com/item/1000006622149.html?spm=a2g0o.detail.1000060.3.3af0 15a857hPjm&gps-id=pcDetailBottomMoreThisSeller&scm=1007.13339.99734.0&scm_id=1007.13339.99734.0&scm-url=1007.13339.99734.0&pvid=c9a8a869-0c12-4261-9ccf-9f2fb7bbae22

хотя вот такая удобнее
https://ru.aliexpress.com/item/32735161322.html?spm=a2g0o.productlist.0.0.448e438 4zUCIcK&s=p&algo_pvid=6be90b98-848d-4d04-a781-775545ac5128&algo_expid=6be90b98-848d-4d04-a781-775545ac5128-2&btsid=6220398b-a5aa-44d7-ac9d-084e79fe6b02&ws_ab_test=searchweb0_0,searchweb201602_7,searchwe b201603_53
единственный минус - клаву воткнуть некуда

вот к третьей подключена первая )))
https://cloud.mail.ru/public/2yTs/2zExDz5AK

AlexG
06.09.2019, 14:47
сокращённый список "бесплатных" плис:
Zynq-7000 SoC Device•XC7Z010, XC7Z015, XC7Z020,XC7Z030, XC7Z007S, XC7Z012S, and XC7Z014S
Spartan-7•XC7S6, XC7S15•XC7S25, XC7S50•XC7S75, XC7S100
Artix-7 FPGA•XC7A12T, XC7A15T, XC7A25T,XC7A35T, XC7A50T, XC7A75T,XC7A100T, XC7A200T
Kintex®-7 FPGA•XC7K70T, XC7K160T
Kintex UltraScale FPGA•XCKU025, XCKU035
Kintex UltraScale+ FPGA•XCKU3P, XCKU5P

На столе в наличии "XC7A50T" и "XC7Z020"

dosikus
06.09.2019, 15:29
omercury, я только что 18й квартус выкачал вместе с modelsim 2019 .
Попробую, если что обращусь.
С xilinx пока не, не буду.
А платы - счас обмозгую ...

- - - Добавлено - - -

omercury, а к третьей usb blaster брал? Снова таки на пык18 ?

omercury
07.09.2019, 01:35
А платы - счас обмозгую ...

dosikus, не спеши, у тебя одна уже есть, ReVerSE.
Вполне неплохая по параметрам, ёмкость почти вчетверо больше, чем та, третья.
Ну да, контактов внешних маловато, но всё необходимое на ней есть.
А уж когда ей наиграешься, тогда можно и подумать.

- - - Добавлено - - -


omercury, а к третьей usb blaster брал? Снова таки на пык18 ?
Эта первая попавшаяся картинка, брал где-то в другом месте. Был с ней какой-то в комплекте, на чём уже не помню - у меня их уже скопилось 5 штук :)

- - - Добавлено - - -


только что 18й квартус выкачал вместе с modelsim 2019

Для Циклона-4 достаточно 13-го Квартуса, да и шевелится он повеселей.
На одной и той-же машине разница между 13 и 16 в полтора раза примерно.

dosikus
07.09.2019, 11:58
Для Циклона-4 достаточно 13-го Квартуса, да и шевелится он повеселей.
На одной и той-же машине разница между 13 и 16 в полтора раза примерно.

Угу, все так. Но вот только одно но - реверс под 15 квартус и я даже тестовый проект с hdmi открыть не могу.
А уж переделать его под 13 ....

15ый с 13ым вместе уживутся?

- - - Добавлено - - -

omercury, есть 15ый с лицензией? кинь ссылкой...

omercury
07.09.2019, 12:28
15ый с 13ым вместе уживутся?
Должны, там каждый в свою папочку ставится, но есть одно "но" -в системных переменных указываются конкретные пути для path и файлов лицензии.
Я на отдельных дисках держу.



omercury, есть 15ый с лицензией? кинь ссылкой...
Дык эта...
Сам знаешь, где.
https://rutracker.org/forum/viewtopic.php?t=5143632

Правда 15ым я не пользовался.

dosikus
07.09.2019, 12:49
Должны, там каждый в свою папочку ставится, но есть одно "но" -в системных переменных указываются конкретные пути для path и файлов лицензии.
Я на отдельных дисках держу.
А если у меня 13ый веб а 15ый крякнутый , то наверное можно и на одном диске?



Дык эта...
Сам знаешь, где.
https://rutracker.org/forum/viewtopic.php?t=5143632



Вот жешь блин , я искал Quartus II а надо было Prime ...


Правда 15ым я не пользовался.

Когда научусь проекты создавать , оставлю 13ый...

omercury
07.09.2019, 13:09
Когда научусь проекты создавать , оставлю 13ый...
У Николая достаточно подробно это описано.
Там несложно.

https://marsohod.org/11-blog/78-newproject

dosikus
07.09.2019, 14:57
omercury, Не верно сказал. Создавать свои , компилировать и прошивать - уже научился.
Здесь речь о создании своего из чужих модулей . Счас конкретно проекты Влада - hdmi_test. Далее исходники с опенкорес.

- - - Добавлено - - -

Весьма интересно...
У Влада здесь https://github.com/mvvproject/ReVerSE-U16/tree/master/u16_hdmi_test
специально ошибки или это я туплю?

Отсутствовала скобка
Не определена CLK

dosikus
07.09.2019, 22:31
Мля, я мало здесь нахожусь в последнее время .
Но такого идиотизма даже представить не мог.
Если я что -то когда то выкладывал , то для всех открыто и без г. .

omercury
07.09.2019, 23:26
Ну ты и г. Влад ...
Эй-эй, что случилось-то?
Влад и так, то удалит всё, то опять восстановит.
Народ без техподдержки останется.
Мож очепятка всё-таки? Никто не застрахован.

dosikus
08.09.2019, 07:53
Да что -то накатило . Старею видно...

dosikus
11.09.2019, 11:04
omercury, не поможешь? Вроде все скомпилилось и даже зашилось.
Но,
1) - надо вменяемый пинок как делать *.jic
2) - судя по таймингам должно выйти 1280x 800@60Hz у меня монитор говорит 640х350 53Гц
https://dropmefiles.com/ImjwI


-- ModeLine " 640x 480@60Hz" 25.20 640 656 752 800 480 490 492 525 -HSync -VSync
-- ModeLine " 720x 480@60Hz" 27.00 720 736 798 858 480 489 495 525 -HSync -VSync
-- Modeline " 800x 600@60Hz" 40.00 800 840 968 1056 600 601 605 628 +HSync +VSync
-- ModeLine "1024x 768@60Hz" 65.00 1024 1048 1184 1344 768 771 777 806 -HSync -VSync
-- ModeLine "1280x 720@60Hz" 74.25 1280 1390 1430 1650 720 725 730 750 +HSync +VSync
-- ModeLine "1280x 768@60Hz" 80.14 1280 1344 1480 1680 768 769 772 795 +HSync +VSync
-- ModeLine "1280x 800@60Hz" 83.46 1280 1344 1480 1680 800 801 804 828 +HSync +VSync
-- ModeLine "1280x 960@60Hz" 108.00 1280 1376 1488 1800 960 961 964 1000 +HSync +VSync
-- ModeLine "1280x1024@60Hz" 108.00 1280 1328 1440 1688 1024 1025 1028 1066 +HSync +VSync
-- ModeLine "1360x 768@60Hz" 85.50 1360 1424 1536 1792 768 771 778 795 -HSync -VSync
-- ModeLine "1920x1080@25Hz" 74.25 1920 2448 2492 2640 1080 1084 1089 1125 +HSync +VSync
-- ModeLine "1920x1080@30Hz" 89.01 1920 2448 2492 2640 1080 1084 1089 1125 +HSync +VSync

-- Horizontal Timing constants
constant h_pixels_across : integer := 1280 - 1;
constant h_sync_on : integer := 1344 - 1;
constant h_sync_off : integer := 1480 - 1;
constant h_end_count : integer := 1680 - 1;
-- Vertical Timing constants
constant v_pixels_down : integer := 800 - 1;
constant v_sync_on : integer := 801 - 1;
constant v_sync_off : integer := 804 - 1;
constant v_end_count : integer := 828 - 1;

omercury
11.09.2019, 18:30
omercury, не поможешь? Вроде все скомпилилось и даже зашилось.
Но,
1) - надо вменяемый пинок как делать *.jic
2) - судя по таймингам должно выйти 1280x 800@60Hz у меня монитор говорит 640х350 53Гц
https://dropmefiles.com/ImjwI

А тактовая синхрогенератора сколько?
По расчетам получается 73,7МГц

.jic делается в меню файл, там выбираешь convert чего-то там file, далее надо выбрать формат файла, тип флешки для сохранения, в нижнем окошке подключить .sof и кристалл, для которого конвертируются файл.
В общем, проще нагуглить.
Или подождать, пока до дому доберусь.

- - - Добавлено - - -

https://hubstub.ru/fpga/175-kak-proshit-plis.html

dosikus
12.09.2019, 09:12
.jic делается в меню файл, там выбираешь convert чего-то там file, далее надо выбрать формат файла, тип флешки для сохранения, в нижнем окошке подключить .sof и кристалл, для которого конвертируются файл.


Угу это заработало, но когда запускаю программатор у меня выводит автоматом только один циклон, в то время когда открываю чужие проекты и запускаю проггер - сразу вижу цепочку с памятью...

Ага, это вроде нашел в свойствах проекта.


Насчет тактовой - стоит мегафункция PLL0
в визарде посмотрел clk c0 371 MHz clk c1 74MHz
сопряжены так :


pll0_inst: entity work.pll0
port map (
areset => not USB_NRESET,
inclk0 => CLK, -- 50.0 MHz
-- out
locked => open,
c0 => clk_hdmi, -- clk_vga * 5
c1 => clk_vga);

-- HDMI
hdmi_inst: entity work.hdmi
port map (
I_CLK_PIXEL => clk_vga,
I_CLK_TMDS => clk_hdmi, -- 472.6 MHz max

dosikus
12.09.2019, 16:50
omercury, вообщем скрестил ужа с ежом.
Взял этот тест и https://github.com/andykarpov/spivga-u16 , выпилив мне не нужное.
Запустилось все на 640х480@60 .
Завтра буду пробовать собрать проект с нуля , а не выгребая чужое...

omercury
12.09.2019, 17:44
Взял этот тест и https://github.com/andykarpov/spivga-u16 , выпилив мне не нужное.
Запустилось все на 640х480@60 .
Для видео совершенно не важно, HDMI у тебя или DSUB, синхрогенератор совершенно одинаковый. В первом случае сериализатор просто добавляется. Тайминги тоже идентичны. Можешь в принципе любой видеоконтроллер взять и с ним экспериментировать.
(*

dosikus
13.09.2019, 12:18
omercury, разобрался я с этими играми с hdmi , для каждого разрешения нужны свои тайминги видеогенератора и свои тактовые...

Я так понял, что HDMI в этих проектах это по сути адаптер с VGA наружу.
То есть в любом случае городить видеогенератор с VGA таймингами.
Счас буду рыть - как прикрутить RAM ( а может пока ROM) для выхлопа чегонибудь на монитор...

- - - Добавлено - - -

omercury, да и подскажи - структура папок проектов https://github.com/mvvproject/ReVerSE-U16 , это чистая отсебятина или несет какой-то сакральный смысл( ну естесно окромя порядка)

omercury
13.09.2019, 19:42
Чисто для порядка. А так, хоть где положи, кактусу пофиг.
Загляни в файл ИмяПроекта.qsf, увидишь, где они лежат.

dosikus
14.09.2019, 11:46
Мда, чем дальше влеЗ, тем все еще хуже...

Регистрацию на opencores посеял , смена пароля там не прокатывает- молчат, новая регистрация не проходит.

Пытаюсь найти наиболее простую корку 8051 с UART, с вменяемым тулчейном. Есть или на ксайлинк, либо заброщено, либо с красноглазымиизвращениями ...

- - - Добавлено - - -

Так'с нашел вроде https://github.com/jaruiz/light52 и даже с продолжением http://www.thalin.se/2014/05/8051-on-altera-cyclone-iv.html

omercury
14.09.2019, 12:41
Пытаюсь найти наиболее простую корку 8051 с UART, с вменяемым тулчейном. Есть или на ксайлинк, либо заброщено, либо с красноглазымиизвращениями ...

- - - Добавлено - - -

Так'с нашел вроде https://github.com/jaruiz/light52 и даже с продолжением http://www.thalin.se/2014/05/8051-on-altera-cyclone-iv.html

Пусть будет под ксай, без разницы.
Китай ссылку, скачаю.

AlexG
14.09.2019, 12:50
Этому ядру лет 15 уже
https://www.oreganosystems.at/products/ip-cores/8051-ip-core
Тулзы любые - их дофига, начиная от dos-варианта до Keil

fomonster
14.09.2019, 14:04
Подскажите пожалуйста не ведающему. В первый раз с таким столкнулся. Реализовывал на EPM7128 обмен данными по SPI протоколу между SD картой и EPM. Для тестов взял 3 SD карты и на одной из них ничего не работало, пока не коснулся случайно щупом CLK вывода SD карты. Повесил проводок 10 см примерно для теста с ним работает. Похоже не стабильная работа EPM какая-то. Какой эффект проявляется при касании CLK выводов щупами и как он может влиять на работу устройства?

andykarpov
14.09.2019, 14:48
Подскажите пожалуйста не ведающему. В первый раз с таким столкнулся. Реализовывал на EPM7128 обмен данными по SPI протоколу между SD картой и EPM. Для тестов взял 3 SD карты и на одной из них ничего не работало, пока не коснулся случайно щупом CLK вывода SD карты. Повесил проводок 10 см примерно для теста с ним работает. Похоже не стабильная работа EPM какая-то. Какой эффект проявляется при касании CLK выводов щупами и как он может влиять на работу устройства?

EPM7128 5-вольтовая ж, уровни-то согласованы с SD-шкой?

fomonster
14.09.2019, 16:38
Да. Конечно. Это схема Z-Controller-а. В нём прошивку ковыряю. С оригинальной прошивкой контроллера эта SD карта работает без проблем.