Вход

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



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

kanzler
10.07.2009, 14:15
Не видя исходника, на первоночально заданный тобой вопрос ответить не возможно.

Вот исходные тексты. Основной файл system.vhd

UncleDim
10.07.2009, 15:14
kanzler,
Адрес по переднему фронту ALE защелкиваете? Так его еще нету в этот момент..

caro
10.07.2009, 15:46
kanzler,
Адрес по переднему фронту ALE защелкиваете? Так его еще нету в этот момент..Да, похоже надо изменить на:


if (ale' event and ale = '0') then

UncleDim
10.07.2009, 15:49
Кроме того, в упор не вижу чем управляется младший байт шины (в смысле на вход/на выход. мож туплю:)

kanzler
14.07.2009, 05:26
Да, похоже надо изменить на:


if (ale' event and ale = '0') then


Спасибо, попробую изменить. Хотя есть другой вариант решения задачи :-)

UncleDim
14.07.2009, 07:21
Хотя есть другой вариант
Угу, по хорошему надо привязываться к уровню ALE, а не к эвенту.

kanzler
16.07.2009, 14:18
Столкнулся с проблемой деления двух чисел на языке vhdl, подскажите как выполнить деление двух чисел типа std_logic_vector?

UncleDim
16.07.2009, 19:54
как выполнить деление двух чисел типа std_logic_vector?

Добавить библиотечную мегафункцию типа lpm_divide не катит?

kanzler
17.07.2009, 07:41
Добавить библиотечную мегафункцию типа lpm_divide не катит?

надо попробовать

zx-kit
26.07.2009, 20:56
1. Что скрывается за словом process и для чего указывать все используемые сигналы? Сколько это отъедает макроячеек?

2. Можно ли написать конструкцию типа if then else без process?



process (SET_FK_OUT, VIDEO_H, VIDEO_V, VGA_V)
begin

if (VIDEO_H(0) = '1') then -- если цикл записи в ОЗУ:
A(7 downto 0) <= VIDEO_H(9 downto 2); -- мл. адреса - счетчик точек VIDEO
if (SET_FK_OUT = '1') then -- если выходная частота кадров 50/48 Гц
A(16 downto 8) <= "00000000" & VIDEO_V(0); -- текущий адрес строки
else -- иначе, 60 Гц:
A(16 downto 8) <= VIDEO_V(8 downto 0);
end if;
else -- иначе, цикл чтения из ОЗУ:
...


3. Причины ошибки типа "требуется 7 выходов, а у устройства только 6"? Подозреваю, что это ограничивает число процессов, на которые можно подать один сигнал. Как из этого выходить?

4. Как уменьшать объем прошивки в макроячейках для серии MAX3000A?

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

Ewgeny7
27.07.2009, 00:00
1. Что скрывается за словом process и для чего указывать все используемые сигналы? Сколько это отъедает макроячеек?
Процесс - функционально самостоятельный кусок схемы. Все реакции внутри процесса происходят только при событиях на описанных в заголовке сигналах. Нет события ни на одном сигнале - процесс "стоит". Если ты опишешь не все сигналы "чувствительности" - анализатор сделает это сам и выдаст об этом предупреждение.


2. Можно ли написать конструкцию типа if then else без process?
Нельзя. Допутимо так - xxx<=yy when (aaa) else zz;


4. Как уменьшать объем прошивки в макроячейках для серии MAX3000A?
Можно немного уменьшить количество ячеек, переключая приоритеты компилятора. Их три варианта - скорость работы, количество ячеек, сбалансированно. По дефолту стоит скорость. Это выбирается где-то в properties проекта.


5. Какая разница: сначала получить сигнал из нескольких с помощью логических конструкций, а потом записать по фронту в процессе или тоже самое, но в процессе ожидается фронт, а потом логические конструкции для получения сигнала?
Ну ты накрутил! :) Разница может быть, оценить это можно только мозгом или симулятором. Это моя излюбленная ошибка (в сложных процессах). Если по логике разницы никакой, то так оно и будет.

3. Причины ошибки типа "требуется 7 выходов, а у устройства только 6"? Подозреваю, что это ограничивает число процессов, на которые можно подать один сигнал. Как из этого выходить?
Х.з. Чтото похожее было разочек, но вроде было связано с рулением ног inout, когда я некорректно указал когда нужно переключаться в Z-состояние.

Spir0
31.07.2009, 09:14
Решил тут "заПЛИСовать" схему расширения Ленинграда 2 - http://zx.pk.ru/showpost.php?p=198332&postcount=58
Все отлично влезло в плиску от Xilinx, только возникли проблемы с последним мультиплексором (IC8) - на реальной схеме выходы объединены и все работает нормально, но в плис при попытке объединить выходы получаем ошибку что несколько соединений от одного источника и прошивка не компилится. Если же развести выходы на отдельные пины, а потом объединить уже вне плис, то получаю подсаженные уровни и ничего не работает.

Может кто знает как разрулить эту ситуацию ? :v2_conf2:

caro
31.07.2009, 09:41
Может кто знает как разрулить эту ситуацию ? :v2_conf2:Обьединять надо не физически, а логически.
Выложи исходник, думаю тебе помогут.

Spir0
31.07.2009, 10:27
Делал в схематике, так как пока еще не совсем вник в суть VHDL :)

12727

Глядя на схему КП12 возникло подозрение что мультиплексор в ISE с входом ENABLE, всего лишь устанавливает 0 на выходе, в то время как в КП12 - этот вход переводит соответствующий выход в TRI-State.

caro
31.07.2009, 11:03
Делал в схематике...Я так и понял.
Тогда сделай так:

IanPo
31.07.2009, 11:59
Читал туториалы, смотрел всякое, попробовал поделать схемки в MAX+ Plus и Quartus. Возникли такие вопросы:

1) Нужно подавать тактовый сигнал на саму ПЛИС (если в схеме нет тактового сигнала)?

2) Компилятор пишет что-то типа сигнал нужно сделать Global. Что это значит?

3) В схеме нарисовал ИР22. Ее выводы выводятся наружу ПЛИСины, и они должны быть 3-стабильными. Как это задается, и как указать, что третье состояние на наружных выводах наступает по такому-то (внутр.) сигналу?

Spir0
31.07.2009, 12:48
1) Нужно подавать тактовый сигнал на саму ПЛИС (если в схеме нет тактового сигнала)?

Не нужно, глобальные сигналы обычно используются, если надо получить гарантированный сброс всех ячеек, которые используются или засинхронизировать все внутренние элементы (счетчики или регистры). Если это несущественно, то например в Xilinx их можно использовать как обычные IN/OUT пины.


2) Компилятор пишет что-то типа сигнал нужно сделать Global. Что это значит?

Тут не помогу, надо код видеть :)


3) В схеме нарисовал ИР22. Ее выводы выводятся наружу ПЛИСины, и они должны быть 3-стабильными. Как это задается, и как указать, что третье состояние на наружных выводах наступает по такому-то (внутр.) сигналу?

Обычно это описывается в VHDL, как <в зависимости от сигнала такого то (event) на выходах установить "ZZZZ">, если в схематике, то там есть либо регистр с Z-состоянием, либо буфер с Z-состоянием, на вход управления которого и подается сигнал управления.

IanPo
31.07.2009, 15:22
1) Что такое глобальный сигнал?



Обычно это описывается в VHDL, как <в зависимости от сигнала такого то (event) на выходах установить "ZZZZ">, если в схематике, то там есть либо регистр с Z-состоянием, либо буфер с Z-состоянием, на вход управления которого и подается сигнал управления.

2) Фишка в том, что Z-выходы регистра внутри ПЛИС я могу задать, а вот будут ли ВНЕШНИЕ выводы ПЛИС при этом с Z-состоянием? Это ведь не одно и то же?

Spir0
31.07.2009, 16:13
1) Что такое глобальный сигнал?

"GSR (Global Set/Reset), который можно использовать для установки или сброса всех триггеров в проекте (для этого достаточно их назначить), GTS (Global Tri-State) - для перевода всех буферов ПЛИС в "третье" состояние и GCK (Global Clock) - для подачи тактового сигнала"


2) Фишка в том, что Z-выходы регистра внутри ПЛИС я могу задать, а вот будут ли ВНЕШНИЕ выводы ПЛИС при этом с Z-состоянием? Это ведь не одно и то же?

Если подключишь эти выходы к внешним выводам (назначишь внешние пины), то будут. Fitter же просто раскидывает функции по внутренним блокам и соединяет с внешними пинами, т.е. ему нет разницы внутренний или внешний, как работа элемента соединенного с внешним пином прописана, то на выходе и получишь.

Spir0
31.07.2009, 21:37
Вообщем все решилось, заменил 4_1E мультиплексоры на один 8_1E с управлением H1,H2,RAS - 128 режим заработал :)

Михайла
06.08.2009, 17:40
Подскажите, для простенького циклона EP1C3T100C8N обязательна нужна внешняя конфпзу, или у него есть встроенная флэш память? Посмотрел в даташите, rom упоминалось, но мне это ничего не дало.

caro
06.08.2009, 20:39
Подскажите, для простенького циклона EP1C3T100C8N обязательна нужна внешняя конфпзу, или у него есть встроенная флэш память? Посмотрел в даташите, rom упоминалось, но мне это ничего не дало.Либо конфигурационная флэшка, либо контроллер, заливающий прошивку с внешнего ПЗУ.

andrews
06.08.2009, 22:05
Либо конфигурационная флэшка, либо контроллер, заливающий прошивку с внешнего ПЗУ. не поделитесь примерчиком? Очень интересно.

skyther
07.08.2009, 02:29
http://www.altera.com/literature/lit-cyc.jsp смотри Section VI. Configuration

Михайла
07.08.2009, 12:22
Спасибо за ссылки на документацию, вроде всё понятно расписано.

fifan
08.08.2009, 19:13
А вот лучше ссылка. И сайт кстати интересный. http://www.altera.ru/cgi-bin/go?549

AlexBel
09.08.2009, 08:28
не поделитесь примерчиком? Очень интересно.

Посмотри проект Aeon на speccyland.net.
У меня в девайсе сделано так же - контроллер заливает конфигурацию в FPGA из файла на SD-карточке. Очень удобно.
Кстати, на opencores.org есть примеры схем для конфигурации FPGA. И хорошее описание.

AlexBel
09.08.2009, 17:21
Вот пара полезных ссылок:
http://opencores.org/?do=project&who=mmcfpgaconfig
http://opencores.org/?do=project&who=fpgaconfig

По проекту Aeon я, кажется, погорячился - сам не могу найти или просто тормознул - сырков не нашел сам. Но по приведенным ссылкам разобраться несложно, протокол примитивнейший - односторонний SPI.

fifan
09.08.2009, 18:30
Вторая ссылка для Alter. Но применяется Cyclone 2, а у меня первый... Схему не нашел.

AlexBel
09.08.2009, 18:41
Вторая ссылка для Alter. Но применяется Cyclone 2, а у меня первый...

Да какая разница, алгоритм заливки конфигурации одинаков. Я так заливаю FLEX-ы.
Стучи в асю 32 0 36 5 8 2 7 , помогу.

IanPo
12.08.2009, 11:04
А можно ли на входе ПЛИС подтягивающие резисторы запрограммировать?

Ewgeny7
12.08.2009, 12:35
Вроде нет...

Black_Cat
12.08.2009, 22:25
А можно ли на входе ПЛИС подтягивающие резисторы запрограммировать?смотря что ты понимаешь под "запрограммировать".. Принципиально возможно входы подвесить пуллапами, хотя будет несколько через задницу.. Для этого надо имитировать двунаправленный вход-выход с ОК, но внутренние выходные буфера сделть чтоб всегда выдавали "1"

Михайла
13.08.2009, 09:54
смотря что ты понимаешь под "запрограммировать".. Принципиально возможно входы подвесить пуллапами, хотя будет несколько через задницу.. Для этого надо имитировать двунаправленный вход-выход с ОК, но внутренние выходные буфера сделть чтоб всегда выдавали "1"
В таком варианте излишней нагрузки на выходы не будет?

IanPo
13.08.2009, 10:18
смотря что ты понимаешь под "запрограммировать"
Я имел в виду, как у AVR на входах. Внешние R-матрицы ставить не хочу.

Black_Cat
13.08.2009, 13:28
излишней нагрузки на выходы не будет?не будет

zx-kit
14.08.2009, 17:38
Какая самая короткая программа для прошивки EPM3128ATC100. Файл скомпилирован в QUARTUS II 9.0 Web Edition. Киньте, пожалуйста, ссылку на программу и инструкцию по прошивке.

MegaMyth
15.08.2009, 17:08
Самая коротка что я знаю на AHDL:


Subdesign short
(
inp:input;
out:output;
)
begin
out=in;
end;

zx-kit
15.08.2009, 17:30
Самая коротка что я знаю на AHDL:


Subdesign short
(
inp:input;
out:output;
)
begin
out=in;
end;

Надо все-таки еще контролировать правильность записи...
Извините, что неправильно спросил. Имелась ввиду альтернатива QUARTUSу, который весит больше гигабайта, чтобы не разрабатывать программы, а чтобы каждый желающий мог собрать плату с ПЛИС и мог прошить прошивку, которую напишет и скомпилирует другой человек.

ZEK
15.08.2009, 20:05
Quartus Programmer
искать тут (ftp://ftp.altera.com/outgoing/release/)

можно какой нить 6 версии 50мб

andrews
26.08.2009, 22:59
Скиньте пожалуйста у кого пароль есть на OpenCore свежую версию ядрышка
http://www.opencores.org/project,tv80,overview
а то у меня, что-то зарегиться не удается.
Поставил на работе Quartus, все-равно на чем-то тренироваться надо и еще если можно USB
http://www.opencores.org/project,usbhostslave,overview
на мой мейл avisv, на Яndex-е.

caro
28.08.2009, 09:41
Скиньте пожалуйста у кого пароль есть на OpenCore свежую версию ядрышка
http://www.opencores.org/project,tv80,overviewСкачал и выслал, проверяй почту.

и еще если можно USB
http://www.opencores.org/project,usbhostslave,overviewЭтот архив весит 18.5 Мбайт :)
Я его скачал, надо будет, куда-нибудь выложу.

andrews
28.08.2009, 23:54
Всё получил, спасибо огромное! И написал письмо в ответ на Ваше. Выложить можно на Яndex-е, например так
tv80_latest.tar.gz.html (http://narod.ru/disk/12547760000/tv80_latest.tar.gz.html)
Для этого можно загрузить один или несколько файлов со своего компьтера с этой страницы
http://narod.yandex.ru/

ALEXEY.GORDEEV
01.09.2009, 17:49
Привет всем!
Есть у меня вопрос про ПЛИС, в частности про CPLD Altera EPM3064ALC44 :)
Как я понимаю - у всем подобных альтеровских ПЛИС-ок есть несколько напряжений питания - питание ядра, и несколько питаний для портов. Дык собственно вопрос:
В даташите на серию EPM3064 указано, что она 5v TTL tolerant. Тоесть чтобы её входы и выходы стали 5v TTL уровня, на VCC необходимого порта засадить 5v? Я правильно понимаю?

Black_Cat
01.09.2009, 17:51
на VCC необходимого порта засадить 5v? Я правильно понимаю?нет, если не задаёшься целью спалить :) . У 3х вольтовой логики уровни и так совместимые с 5ти вольтовой

ALEXEY.GORDEEV
01.09.2009, 17:56
Тогда получается, что на все VCCINT и VCCIO ПЛИСины надо подавать 3.3v? А на входы и выходы ПЛИСины можно прямо без всяких преобразователей садить входы и выходы обычных 5v TTL микросхем?

Black_Cat
01.09.2009, 18:04
да

AlexBel
05.09.2009, 13:54
Развеселился я что-то на этой неделе и решил подключить к спектруму FPGA с засунутой моделью AY. Взял "ленинград-2", сделал переходник к плате... В общем, заработало. Звук вывожу через PWM, тактируемый от 3,5МГц - больше никакой частоты на разъеме не было.

Собственно, к чему я все это... Не очень хороший звук и думаю, что модель AY пошаливает. Модель я использовал ту же самую, что и AlexFreed в своем спектруме на DE1. Просьба - киньте в меня, пожалуйста, модели AY, у кого какие есть. Желательно, чтобы они могли работать от родной AY-частоты для спектрума - 1,7МГц. Емейл alex (sobak) speccyland.net
И еще просьба - скажите, как правильнее всего замешать три канала в один?
Какие игры под 48к работают с AY? Чтобы было, на чем полчше проверить. Exolon уже попробовал :)

psb
05.09.2009, 18:23
скажите, как правильнее всего замешать три канала в один?
правильнее всего - просто сложить их

AlexBel
05.09.2009, 19:40
правильнее всего - просто сложить их

А так пойдет
wire [8:0] audio = ((ay_A/2) + (ay_B/2) + (ay_C/2)); ?
Или лучше
wire [9:0] audio = (ay_A + ay_B + ay_C); ?
Собственно, я разницы в звуке замечал...

psb
05.09.2009, 22:59
эээ... если 3 канала мешать - делить надо на 3, чтобы быть в том же диапазоне отсчетов, что и 1 канал. т.е. все зависит от запаса по разрядности звука.
последний вариант лучше, т.к. ничего не теряется, но надо учитывать диапазон.

AlexBel
06.09.2009, 13:41
эээ... если 3 канала мешать - делить надо на 3, чтобы быть в том же диапазоне отсчетов, что и 1 канал. т.е. все зависит от запаса по разрядности звука.
последний вариант лучше, т.к. ничего не теряется, но надо учитывать диапазон.

Пока что оставил формулу
wire [8:0] audio = ((ay_A/2) + (ay_B/2) + (ay_C/2));

Лидирует модель AY8910 от ILoveSpeccy - опробовано на Exolon, Lyra II и Cybernoid 2. На игрухах звук почти нормальный, а вот в "Лире" весьма плохо. Правда, у меня AY работает только на запись, может, как-то это сказывается...

PS: В общем, теперь работает нормально или почти нормально: сделал чтение из AY выяснил, что после запуска модели необходим сброс :)
Если кому интересно, фото, примерно 600кб. За качество не пинайте :)
http://crazyroom.ru/files/AYFPGA1.jpg
http://crazyroom.ru/files/AYFPGA2.jpg

Займусь BDI...

AlexBel
12.09.2009, 21:21
http://zx.pk.ru/showthread.php?p=218628
Веселье продолжается... :)

AlexBel
22.09.2009, 21:46
Ничего не понимаю, подскажите, где лопухнулся. Прикручиваю ПЗУ TRDOS к спектруму. Схема на VHDL, все работает:
process(nRESET,CLOCK)
begin
if( nRESET = '0' ) then DOS <= '0';
elsif (CLOCK'event and CLOCK = '1') and nM1 = '0' and nRD = '0' and nMREQ = '0' and (ADRESS(15 downto 8) = "00111101") and ROMSEL = '1' then DOS <= '1';
elsif (CLOCK'event and CLOCK = '1') and nM1 = '0' and nRD = '0' and nMREQ = '0' and (ADRESS(14) = '1' or ADRESS(15) = '1') then DOS <= '0';
end if;
end process;

Схема на верилоге, нифига не работает, при выходе в тырдос происходит сброс:
always @(nRESET or CLOCK)
begin
if(~nRESET) TRDOS <= 1'b0;
else if(CLOCK)
begin
if(~nM1 && ~nRD && ~nMREQ)
begin
if(ADRESS[15:8] == 8'b00111101) TRDOS <= 1'b1;
else if(ADRESS[14] || ADRESS[15]) TRDOS <= 1'b0;
end
end
end

Подскажите, где в тексте верилога ошибка?

tnt23
22.09.2009, 21:59
Тебе надо, чтобы always срабатывал по уровню CLOCK или по фронту? Если по фронту, то используй always @(posedge CLOCK) или @(negedge CLOCK), в зависимости от фронта.

AlexBel
22.09.2009, 22:44
Тебе надо, чтобы always срабатывал по уровню CLOCK или по фронту? Если по фронту, то используй always @(posedge CLOCK) или @(negedge CLOCK), в зависимости от фронта.

Пробовал до этого - тоже не работает. Самое интересное, что когда подключал AY на FPGA, то его регистры совершенно защелкивались по negedge и все работало...

ZEK
22.09.2009, 22:55
Подскажите, где в тексте верилога ошибка?
Если дословно перевести VHDL то будет так


always @ (RESET or posedege CLK)
if (!RESET) TRDOS = 0;
else
if (ADDR[15:8]==8'h3D & ~(nM1 | nRD | nMREQ) & ROMSEL) TRDOS = 1;
else if (ADDR[15:14]!=0 & ~(nM1 | nRD | nMREQ)) TRDOS = 0;

tnt23
22.09.2009, 23:00
Пробовал до этого - тоже не работает. Самое интересное, что когда подключал AY на FPGA, то его регистры совершенно защелкивались по negedge и все работало...

А симулятором квартусовским ты не пользуешься? Клевая штука.

ZEK
22.09.2009, 23:03
else if(CLOCK)
на не синхронной логике это в этом контексте коряво, а при синхронной (в always posedge CLOCK) не корректно, так как CLOCK может быть как 0 так и 1

tnt23
22.09.2009, 23:15
А кстати да, куда делся ROMSEL? в VHDL он есть, в Verilog'овском коде его уже нет.

AlexBel
23.09.2009, 06:14
Если дословно перевести VHDL то будет так


always @ (RESET or posedege CLK)..............


Да, согласен, спасибо. Попробую этот вариант вечерком :)

---------- Post added at 06:10 ---------- Previous post was at 06:07 ----------


А симулятором квартусовским ты не пользуешься? Клевая штука.

Да вот, все руки не доходят разобраться... :(

---------- Post added at 06:13 ---------- Previous post was at 06:10 ----------


на не синхронной логике это в этом контексте коряво, а при синхронной (в always posedge CLOCK) не корректно, так как CLOCK может быть как 0 так и 1

Так у меня сперва стоит always @(nRESET or CLOCK) - т.е. чувствительность к любым перепадам клока, а потом в условии else if(CLOCK), т.е. когда клок находится в единице. Что же не так?

---------- Post added at 06:14 ---------- Previous post was at 06:13 ----------


А кстати да, куда делся ROMSEL? в VHDL он есть, в Verilog'овском коде его уже нет.

Да он когда и есть, то намертво в единице - это 4 бит порта 7FFD. Но так как у меня используется сейчас только ПЗУ 48к, то этот бит несущественен.

ZEK
23.09.2009, 08:49
if(CLOCK), т.е. когда клок находится в единице. Что же не так?
если ты в always пишеш posedge CLOCK, блок always в момент изменения сигнала CLOCK из 0 в 1, так что я бы не завязывался что CLOCK будет именно 1

AlexBel
23.09.2009, 15:48
если ты в always пишеш posedge CLOCK, блок always в момент изменения сигнала CLOCK из 0 в 1, так что я бы не завязывался что CLOCK будет именно 1

Это не то, о чем я здесь писал?
http://zx.pk.ru/showpost.php?p=220962&postcount=306

ZEK
23.09.2009, 19:51
Это не то, о чем я здесь писал?
Возможно что при событии сигнал всегда в 0, но опять же не завязывался бы, вроде как это нигде не описано а значит в любой момент может измениться

AlexBel
26.09.2009, 11:00
В Верилоге можно пометить как комментарий кусок текста:
/*
................
*/

Есть ли аналогичное в VHDL или только построчно через "--"?

---------- Post added at 11:00 ---------- Previous post was at 10:36 ----------

Как сделать RAM_ADRESS <= ADDR_COUNTER, если
signal ADDR_COUNTER : unsigned (18 downto 0);
RAM_ADRESS : out std_logic_vector (18 downto 0);
ADDR_COUNTER - счетчик (ADDR_COUNTER <= ADDR_COUNTER + 1)

Tim0xA
27.09.2009, 01:24
Есть ли аналогичное в VHDL или только построчно через "--"?
Насколько я знаю, в VHDL этого нет, но зато в квартусе есть возможность выделить блок и в контекстном меню выбрать "Comment Selection" или "Uncomment Selection".

svofski
27.09.2009, 02:25
Только сейчас заметил разговор. Список чувствительности always без posedge/negedge по большому счету пишется для самоуспокоения, на синтез он не влияет и можно просто писать always @*.


Так у меня сперва стоит always @(nRESET or CLOCK) - т.е. чувствительность к любым перепадам клока, а потом в условии else if(CLOCK), т.е. когда клок находится в единице. Что же не так?
В продолжение мысли — такой always не имеет никаких чувствительностей. Все чуствительности в выражениях, а то, что в скобочках always — это то, что может повлиять на состояние схемы внутри и по крайней мере квартусу это не более чем повод выдать предупреждение (странно, что он на переводы строк их не выдает). Но непосредственного влияния список чувствительности always не определяет.


process(nRESET,CLOCK)
begin
if( nRESET = '0' ) then DOS <= '0';
elsif (CLOCK'event and CLOCK = '1') and nM1 = '0' and nRD = '0' and nMREQ = '0' and (ADRESS(15 downto 8) = "00111101") and ROMSEL = '1' then DOS <= '1';
elsif (CLOCK'event and CLOCK = '1') and nM1 = '0' and nRD = '0' and nMREQ = '0' and (ADRESS(14) = '1' or ADRESS(15) = '1') then DOS <= '0';
end if;
end process;
в верилоге должен превратиться в такое:


always @(negedge nRESET or posedge CLOCK) begin: lolprocess
if (~nRESET)
DOS <= 1'b0;
else begin
if (~nM1 && ~nRD && ~nMREQ && ROMSEL && ADRESS[15:8] == 8'b00111101) DOS <= 1'b1;
if (~nM1 && ~nRD && ~nMREQ && |ADRESS[15:14]) DOS <= 1'b0;
end
end

В доказательство привожу две очень по-моему похожие друг на друга картинки. Мейкает сенс? Код на VHDL по большому счету изначально некорректно написан и, кстати, Квартус не очень-то рад такой записи.

AlexBel
27.09.2009, 18:50
Век живи - век учись... :)

Black_Cat
04.10.2009, 05:54
Господа, существует стандартная (т.е. проверенная и рекомендованная) схема генерации сигнала сброса внутри самой ПЛИС после подачи на неё питания, чтоб не заводить внешний RESET?

svofski
04.10.2009, 07:21
Если есть возможность задавать начальное состояние регистров, можно сделать счетчик, что-нибудь типа:


module resetgen(input clk, input resetkey, output nRESET);

reg [7:0] resetctr = 0;
assign nRESET = &resetctr;
always @(posedge clk) begin
if (resetkey)
resetctr <= 0;
else if (~nRESET)
resetctr <= resetctr + 1'b1;
end
endmodule

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

Black_Cat
04.10.2009, 14:53
Во всех Циклонах уже можно.интересует для CPLD. Нужно чтоб после включения питания внутри CPLD генерился сигнал RESET. Снаружи завести нельзя - ног не хватает.

svofski
04.10.2009, 15:35
Нет способа проще, чем сделать пример и попытаться скомпилировать его для целевого устройства. Есть еще хороший способ — почитать family handbook от соответствующей микросхемы. Начальное состояние обязательно подробно описывается.

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

Black_Cat
04.10.2009, 16:04
Мне кажется, я где-то видел что-то сделанное на гонках между примитивами.вот что-то типа такого и имелось ввиду.. типа сумирования исключающим или логической "1" и задержанной логической "1".. вот токо будет ли это работать?

svofski
04.10.2009, 16:21
В квартусе есть очень подробный симулятор, который учитывает все тонкости выбранной архитектуры. Нету более надежного способа узнать будет ли это работать, чем прогнать в симуляторе.

Black_Cat
04.10.2009, 16:30
полагаешь что эффекты связанные с включением питания учитываются?

svofski
04.10.2009, 16:38
Полагаю.

Вот еще:
http://www.alteraforum.com/forum/showthread.php?t=6716

Отвечающий советует сделать как я предложил сначала. Чем это затруднительно, не хватает ячеек?

Black_Cat
04.10.2009, 16:50
Отвечающий советует сделать как я предложил сначала. Чем это затруднительно, не хватает ячеек?
:) в данном случае ресет нужен как раз для устранения возможной неопределённости установки начального состояния регистров

Mick
13.10.2009, 19:45
Тут вопрос возник. А чем программируют CPLD от Atmel. Меня интересуют в частности ATF1502.
Какой программатор для этого нужен?

skyther
13.10.2009, 21:35
http://www.atmel.com/dyn/products/tools.asp?family_id=653
называется ATMELISP, подключается ч/з обычный ббмв

Mick
01.11.2009, 09:43
Знатоки ПЛИС ответьте на вопрос. Вот есть циклон 1 у которого написано 2910 LES. Сколько это в вентилях. Тут в него запихали ядро(ewgeny7) Т80. По форумам пишут что ядро Т80 занимает около 10тысяч вентилей.
Вопрос интресует потому как нужно перелопатить код с Xilinx'a под Альтеру.
И еще вопрос. Насколько нжны спец микрухи управления питанием ПЛИСы, они обычно в даташитах на ПЛИС указываются? Чем чревато их замена обычными стабилизаторами.

balu_dark
01.11.2009, 12:20
ну кол-во вентилей можно узнать посмотрев в даташите конфигурацию ячейки циклона. обычно в одном логическом элементе могут быть один или 2 триггера и некоторое колво этих самых вентилей( читай-мелкой логики) просто толком никто не может сказать как правильно мерять это соотношение. у каждой серии чипов - свое устройство ячейки и еще многое зависит от самого проекта и его реализации. тоесть по идее и из логики можно собрать триггер а можно и регистр на логике сделать - все зависит как делаем и как настроен компилятор если используем не схемный ввод а язык описаний.

Black_Cat
01.11.2009, 12:55
Насколько нжны спец микрухи управления питанием ПЛИСы, они обычно в даташитах на ПЛИС указываются? Чем чревато их замена обычными стабилизаторами.здесь надо учитывать точность соответствия стабилизированного напряжения и возможно ещё быстродействие самого стабилизатора.. А так, по идее - те же яйца, только требующие точной ручной настройки.

Ewgeny7
01.11.2009, 12:57
Насколько нжны спец микрухи управления питанием ПЛИСы, они обычно в даташитах на ПЛИС указываются? Чем чревато их замена обычными стабилизаторами.
В даташите приведены рекомендованные схемы питания. Они легко заменяются обычными стабилизаторами, типа LM317.
Единственная засада состоит в использовании PLL для синтеза частоты клока. В мануале нарисованы схемы для правильной подачи питания на этот блок. Гемор ещё тот... Проще не использовать PLL, а поставить сразу нужный кварц, ведь это не проблема.
Генератор может быть и пятивольтовый по классической спектрумовской схеме, может быть и трехвольтовый на 74HC04, например. В этом случае схема генератора изменяется. Он делается на одном инверторе. Схему можно взять из проекта VGA-конвертера. Эта схема реально работает.

svofski
02.11.2009, 00:08
Если нужно оценить размер дизайна для заданной архитектуры, то нужно просто сделать тестовый пример в Квартусе, в котором топлевел, например, T80, будет топлевелом проекта и скомпилировать его для требуемой модели Циклона. Результат будет точной оценкой сверху.

AlexBel
02.11.2009, 08:17
В даташите приведены рекомендованные схемы питания. Они легко заменяются обычными стабилизаторами, типа LM317.
Единственная засада состоит в использовании PLL для синтеза частоты клока. В мануале нарисованы схемы для правильной подачи питания на этот блок. Гемор ещё тот... Проще не использовать PLL, а поставить сразу нужный кварц, ведь это не проблема.
Генератор может быть и пятивольтовый по классической спектрумовской схеме, может быть и трехвольтовый на 74HC04, например. В этом случае схема генератора изменяется. Он делается на одном инверторе. Схему можно взять из проекта VGA-конвертера. Эта схема реально работает.

А чем не устраивает PLL? Какие были проблемы с его использованием? У меня, например, никаких.
А что касается питания PLL, то лучше всего подавать его через дроссель (в крайнем случае - малоомный резистор) и ставить дополнительный фильтрующий конденсатор, или два. Кстати, посмотри, как сделано питание PLL в борде DE1 - там это вообще упрощено до предела и ничего, работает...
А если говорить о внешнем генераторе, то, думаю, лучше использовать именно готовый генератор, а не собирать его на рассыпухе. HC04 - это, конечно, хорошо, но, думаю, только для относительно низких частот. А будет ли хорошо, если делать генератор, скажем, на 40МГц? Например, для создания VGA-видеоконтроллера с разрешением 800х600.
А как стабилизаторы для питания FPGA действительно себя хорошо показали LM317T. Работают хорошо и купить их легко. В отличие, например, серии 1117, которую, во всяком случае, у нас, в Волгограде, оказалось купить непросто даже под заказ. Правда, думаю перейти на импульсные преобразователи на базе 34063 - очень хорошо работают и надежные. К тому же почти не требуют обвязки.

Ewgeny7
02.11.2009, 16:00
А чем не устраивает PLL? Какие были проблемы с его использованием? У меня, например, никаких.
А что касается питания PLL, то лучше всего подавать его через дроссель (в крайнем случае - малоомный резистор) и ставить дополнительный фильтрующий конденсатор, или два
Вот в том-то и дело, что с пол-пинка завести не удалось. Прочитав даташит и впечатлившись "островами из фольги" я понял, что пока не уперлось, проще делать на обычном генераторе без PLL. 40Мгц я не пробовал, но 20 у меня нормально пашет.

---------- Post added at 16:00 ---------- Previous post was at 15:59 ----------


лучше использовать именно готовый генератор,
Это без вопросов. Конечно лучше.

aniSKY
08.12.2009, 00:43
Решил я тут на досуге сваять себе этакую девбордачку на FPGA, для изученя спектрума, так сказать, изнутри :v2_rolley.
основана она на ALTERA CYCLONE EP1C6T144 (из того что было), EPCS1SI8, Z80, FLASHROM-128k, SIMM 1MB - эт тот минимум который я хотел бы иметь на плате:rolleyes_std:.
получилось пока вот что: http://docs.google.com/fileview?id=0BwZR8GuoAMsFMmE0MzVhNmUtZTgwOS00MGI3L TlmODEtMjZiOGEzMzljNGFh&hl=ru
возник вопрос о правильном подключении VCCA_PLL, GNDG_PLL и GNDA_PLL - куда их сажать (или никуда)?
как правильно заюзать CLK0-CLK3? вычитал на ALTERA.COM что в нем есть делитель/умножитель частоты, но вот как используется - не понял, там все на английском и так умно:confused_std:
разводка будет расчитана на односторонний ЛУТ с короткими перемычками - от того и назначение пинов такое. уже впринципе есть черновик разводки, но хотелось бы уточнить неясности прежде чем идти дальше. буду очень благодарен за помощь:)

Ewgeny7
08.12.2009, 08:21
aniSKY, Cyclone Device Handbook
http://www.altera.com/search?output=xml_no_dtd&sort=date%3AD%3AL%3Ad1&client=www_frontend&proxystylesheet=www_frontend&ie=UTF-8&oe=UTF-8&site=www&q=cyclone%20device%20handbook
Девятая позиция в этом списке вроде.
Z80 ставить не обязательно, он ненапрягственно размещается внутри самого Циклона :) Ищи VHDL Т80 или Verilog TV80, в зависимости от того, какой язык тебе удобней. Вместо проца лучше СРАМ память поставить ИМХО.

Sayman
08.12.2009, 08:53
а вот у мну тоже есть вопросец. допустим взял я за основу VHDL Т80. как бэ так плису с этим т80 поставить взамен релаьного проца? или не реально? никто не подумывал об этом?

Ewgeny7
08.12.2009, 09:04
В теории - реально. На практике никто не проверял вроде.

---------- Post added at 09:04 ---------- Previous post was at 09:02 ----------

Там обвязки многовато получается, смысла не вижу. Нагрузочная способность выходов ПЛИСы меньше чем реального проца. На реальных клонах задымится :)

aniSKY
08.12.2009, 11:53
aniSKY, Cyclone Device Handbook
http://www.altera.com/search?output=xml_no_dtd&sort=date%3AD%3AL%3Ad1&client=www_frontend&proxystylesheet=www_frontend&ie=UTF-8&oe=UTF-8&site=www&q=cyclone%20device%20handbook
Девятая позиция в этом списке вроде.
Z80 ставить не обязательно, он ненапрягственно размещается внутри самого Циклона :) Ищи VHDL Т80 или Verilog TV80, в зависимости от того, какой язык тебе удобней. Вместо проца лучше СРАМ память поставить ИМХО.

нашел я свженький Т80 на Opencores, так там написано следующее:
" -10k gates and up to 100MHz in 0.18 CMOS "
а у моего Циклона около 6к LE:v2_conf2:(или я чего напутал?)

Ewgeny7
08.12.2009, 11:54
Напутал. посмотри что за ПЛИС использовалась в тестовом проекте.
На Циклонах Т80 занимает около 2000LE, это я уже проверял.

aniSKY
08.12.2009, 12:24
эт хорошо! свободные ноги останутся для чего либо еще :)
еще вопросик: а можно совмещать VHDL код и схемный ввод в одном проекте?
может подскажете где почитать про встроенный умножитель/делитель частоты?

Ewgeny7
08.12.2009, 12:45
может подскажете где почитать про встроенный умножитель/делитель частоты?
Я искал, ничего толкового не нашел.
А потом... просто в проекте сделал "Новый" - "Схемный ввод" - altpll (элемент такой).
Далее просто читаешь выскакивающие экраны в визарде. Там всё просто и понятно, разберешся с первого раза что такое ПЛЛ и как его конфигурят :)


а можно совмещать VHDL код и схемный ввод в одном проекте?
Можно, но как - не знаю, не пробовал :(

---------- Post added at 12:45 ---------- Previous post was at 12:43 ----------

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

aniSKY
08.12.2009, 14:13
большушчее спасибо за подсказки, буду терь перерисовывать свою схемку и делать впринципе уже окончательный рисунок платы. если кому интересно могу потом выложить :)

caro
08.12.2009, 14:25
Рекомендую заглянуть сюда:
http://www.ldm-systems.ru/price_plis.htm

Одна из плат:

LDM-EP1C6-T144
Представляет собою печатную плату размером 114х79х12мм и макетным полем 79х52мм
с установленной на ней микросхемой ПЛИС EP1C6T144 фирмы Altera семейства Cyclone
в корпусе TQFP-144.
Программирование осуществляется через загрузочный кабель ByteBlasterMV LDM-PB 2.01,
подключаемый к LPT-порту компьютера.
Есть описание и схема:
http://www.ldm-systems.ru/doc/plis/ds-ep1cxt144-1.1_r.pdf

fifan
12.12.2009, 10:23
Вопросик один возник. Имею ПЛИСину от Alter'ы EP1C3T144C8 (Cyclone 1). Сколько нужно вешать блокировочных конденсаторов на 3,3 В и 1,5 В на неё?

skyther
12.12.2009, 10:42
пипл, у кого есть DE1? выложите дефолтный проект, плз?

caro
12.12.2009, 11:03
пипл, у кого есть DE1? выложите дефолтный проект, плз?Всё есть здесь:
http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=39&No=83&PartNo=4
DE1 CD-ROM Download Link:
http://www.terasic.com/downloads/cd-rom/de1/
DE1 SD Card Music Player (fixed):
http://www.terasic.com.tw/attachment/archive/83/DE1_SD_Card_Audio.rar
DE1 Music Synthesizer Source Code:
http://www.terasic.com.tw/attachment/archive/83/DE1_synthesizer.rar

PS. дефолтный проект кинул на твой e-mail

skyther
12.12.2009, 11:52
Всё есть здесь
просто 90 метров из-за 300кб качать не хотелось...

Ewgeny7
12.12.2009, 16:45
Вопросик один возник. Имею ПЛИСину от Alter'ы EP1C3T144C8 (Cyclone 1). Сколько нужно вешать блокировочных конденсаторов на 3,3 В и 1,5 В на неё
По одному на каждый пин питания. 10 штук вроде...

Михайла
18.12.2009, 21:15
Кто-нибудь заморачивался с прошивкой atf20v8? Возможно его прошить galbast схемой "на проволочках"?
Сорри что немного не в тему FPGA, но тоже логика программируемая.
Не шьётся(win98).

Ewgeny7
18.12.2009, 22:08
atf20v8? Возможно его прошить galbast
У Атмелевских галок свои тайминги прошивания.
ATFBlast'ом попробуй ;)

Михайла
19.12.2009, 12:09
ATFBlast, который собственно является чуть подправленным GALBlast тоже не шьёт.

Ewgeny7
19.12.2009, 16:43
А читает нормально? Это я ктому, что галки прошивать - целый ритуал с плясками питающих напряжений.

Михайла
20.12.2009, 09:41
Читает, незнаю если честно, ткк пытаюсь прошить чистые микросхемы.. После очистки всё в FF.

Mikka_A
21.12.2009, 13:09
Читает, незнаю если честно, ткк пытаюсь прошить чистые микросхемы.. После очистки всё в FF.

атф это атф
гал это гал

был целый монускрипт от ОРИОНСОФТ о том что жыгули не мерседес....

есть галбласт заточеный под атф
но он шьет их через пято на десято...

посему надо собирать девацы соответственно чипам.

и про гал Женя верно заметил.
это ритуал
если его не соблюдать - варианта два...

1.не прошьеццо
2.умрет

причем второй вариант более распространен.

я в свое время купил галок и 20тых и 16тых достаточное количество, так что полигнон был для експериментов.
и оный доказал что надо делать все так, как было описано по ссылке на гугль...

1.сначала гал
2. потом лпт
3. потом 5
4. потом 12
5. потом шить.

и, соответственно в обратном порядке.

при таком алгоритме я еще не попалил не одной галки и не поимел ни одно отбракованой микрухи.

схема галбласта и сама прога взыты отттудаже..

Михайла
21.12.2009, 15:29
Есть ли нормальный программатор в природе под atf, на шару?

aniSKY
22.12.2009, 20:59
Вот мое маленькое творение для желающих разобраться в основах (и не только) спектрумстроения и попутно научиться работать с ПЛИС :)
сильно не пинайте - это первый вариант (да вообще все впервой) мини платки на ФПГА под спек:)
схемка (не дорисовано питание) : http://docs.google.com/fileview?id=0BwZR8GuoAMsFOGVkMGQyMjUtMDk4Yi00ZTRlL TkzODAtOTNmZmU1MzBiY2Vl&hl=ru
пячатка : http://docs.google.com/fileview?id=0BwZR8GuoAMsFN2RjODBmZTMtNjk5MS00Y2NkL Tg5MzctYTAzOGMzNTFiOTEy&hl=ru
монтажка : http://docs.google.com/fileview?id=0BwZR8GuoAMsFZjA3ZTJiM2MtMDkwYi00YTQyL ThmMjktMjE0ZmMxYzY4YjJi&hl=ru
пока что вот так :rolleyes:

Ewgeny7
22.12.2009, 23:28
Судя по всему, еще не подключал HDD? :)
И лучше не подключай, альтера сгорит нафик. А не сгорит - глюкодром будет страшный на всю альтеру от шлейфа. Буфера надо ставить. А без них и сигналы 3,3 с альтеры винт может "не понять".
А вот видеовыход хорошо сделать по "скорпионовской" схеме. Альтерка хорошо с ней дружит, проверял на EP1C3T144. Качество картинки отменное.
И... возможно я тормозю, а где тактовый генератор?

aniSKY
23.12.2009, 01:16
правильно судишь :) не подключал ни к чему, пока еще все это проект, тока нарисовано и не опробовано. хдд - да, засада, подозревал что без доп логики не потянет альтера, а жаль.
Видеовыхлоп по скорпионовской схеме - пока ее точно не смотрел, не утверждаю, но у меня возникал вопрос в этом направлении, все схемы, виданные мною ранее, все расчитаны на 5В, а как быть в данной ситуации, садить все на 3.3В или можно на 5в ?
TO ALL!!!!!! данная схема является пока только проектом и в реале ни разу еще не выполнена.
Я ее выложил здесь на комментарии и замечании более грамотными и подкованными в этом вопросе людьми чем я. Я с новинками и ФПГА не знаком еще вообще :v2_blush: читал и копался в основном с классической, 155-ой логикой.
Тактовик - непришедши к едому мнению с собой :), я решил не разводить ее на плате, а предусмотреть как бы монтажное поле под эти нужды. Есть в запасе старые и не очень материнки от ПыСы, подберу его по нуждам, благо есть такая цацка как PLL (спасиб ewgeny7 за наводку куда копать :) ).

З.Ы. Спасиб за коменты и жду в дальнейшем нормальной критики, набираюсь уму разуму потихоньку:v2_thumb:
З.З.Ы.переразведу плату без ХДД, а под 2х5pin штырьки и все начну, собирать плату сам, там у же начну душить "тараканов" ,так сказать, по месту :D

Ewgeny7
23.12.2009, 08:52
Ты на плату полюбому ведь будешь заводить и 5в?
Удобней было бы даже завести 6..9 вольт, и поставить стабилизаторы на 5, 3.3 и 1.5 вольта. Первый пойдет на периферийную логику, два других на альтеру и ОЗУ-ПЗУ.
В качестве стабилизаторов удобно LM317. Пятивольтовый проще будет наверное 7805.
Генератор с питанием 3.3 вольт делается на одном элементе КМОП, например, 74НС04.
К элементу прикручивается кварц, два конденсатора 10пф, резистор 10кОм. И буферируем сигнал через второй элемент.
Оставшиеся элементы могут пригодиться для разных целей. Например, сделать нормальный помехоустойчивый RESET для альтерки.

skyther
26.12.2009, 16:20
пипл, реально прикрутить поддержку циклона3 к квакусу 6.1 web edition? установка CIII его не видит...

aniSKY
03.01.2010, 19:51
Вот конечный результат моей платки :rolleyes: кому интересно - пользуйтесь :) http://docs.google.com/fileview?id=0BwZR8GuoAMsFNjY1MGFkM2QtNGMyZC00Y2E5L WE1NDgtYjE5Nzk1Mzg3NDU5&hl=ru
Несколько коментов добавлю: рисунок печатки при печати зеркалить не нужно (адаптер и основная плата)-вывел как есть и утюжить.
Стабилизаторы питания нужно изготовить отдельно и припаять к соотв. контактам. Думаю это не сложно будет и на макетке собрать.

Mick
07.01.2010, 13:52
Извиняюсь, но у меня опять ламерский вопрос.
Тут собрал ByteBlaster MV - вобщем через ATMEL ISP прошиваются ATF1502 сконверченные из альтеровского pof. Вот решил попробовать EPM3032 прошить из MAX+plus II. Выбираю пункт programmer, а он в упор не хочет видить программатор. Вообщем что тут я не так делал.

fifan
08.01.2010, 04:28
Извиняюсь, но у меня опять ламерский вопрос.
Тут собрал ByteBlaster MV - вобщем через ATMEL ISP прошиваются ATF1502 сконверченные из альтеровского pof. Вот решил попробовать EPM3032 прошить из MAX+plus II. Выбираю пункт programmer, а он в упор не хочет видить программатор. Вообщем что тут я не так делал.
У меня на ноутбуке тоже не видел. На обычном компе заработал...

Mick
08.01.2010, 18:55
У меня на ноутбуке тоже не видел. На обычном компе заработал...

Я тоже на буке работаю. Сегодня на работе попробовал к системнику подцепить - увидел. Спасибо за совет.
Вот после этого похоже надо задуматься о стационарном системнике.

ZEK
10.01.2010, 14:03
Потому что конструкция не синхронная

IanPo
10.01.2010, 15:57
Сообщение свое снимаю, т.к. в сигнале Феникса нашел 20-нс глитч.
Телеку он побоку, а Альтера и осцилл видят.
Буду разбираться.

aniSKY
10.01.2010, 21:26
У меня на ноутбуке тоже не видел. На обычном компе заработал...

а есть ли какое решение для работы с ноута? СОМ и ЛПТ на нем ессесно нету.

IanPo
10.01.2010, 22:40
а есть ли какое решение для работы с ноута?
Наверно, USB- и Ethernet Blaster.
http://www.altera.com/products/devkits/kit-cables.htm

balu_dark
10.01.2010, 23:01
http://www.microchip.su/showthread.php?t=4254
один из путей.
либо сделать самому http://www.ixo.de/info/usb_jtag/
http://sourceforge.net/apps/mediawiki/urjtag/index.php?title=Cable_Altera_USB-Blaster
http://www.fpga4fun.com/forum/viewtopic.php?p=4779
http://blog.leshak.ru/2008/12/06/altera-usb-blaster-clone/
http://njnmnp.narod.ru/usbblaster/usbblaster.html
http://electronix.ru/forum/lofiversion/index.php/t22611.html
предпоследний линк помоему именно то о чем я думал в контексте программатора.

IanPo
12.01.2010, 23:18
Сколько раз можно перепрограммировать EPM7xxxS?

fan
13.01.2010, 01:03
100 раз .

fifan
13.01.2010, 10:19
предпоследний линк помоему именно то о чем я думал в контексте программатора.
А ЭППЗУ (DD1 - 93C46) нужно заранее программировать? Зачем нужен преобразователь в 12В?

balu_dark
13.01.2010, 18:15
для фтди можно насколько помню еепром шить прямо в схеме( есть у них своя программа для етого - типа епром чтото). тоесть паяеш чистую епромку в схему и после уже в самом устройстве пропишеш. по преобразователю сорри - счас не могу глянут зачем он там. по идее там только фтди епром и альтера.(кстати FT245 содержит внутри уже все и кварц и епром)

Mick
13.01.2010, 19:18
Вот еще вопрос по EPMкам. Можно ли использовать под свои нужды ноги JTAG. У меня программатор ByteBlaster, у которому я приделал панельку PLCC44. И если я их задействую, то будет она потом прошиваться или нет?

IanPo
13.01.2010, 19:42
Вот еще вопрос по EPMкам. Можно ли использовать под свои нужды ноги JTAG. У меня программатор ByteBlaster, у которому я приделал панельку PLCC44. И если я их задействую, то будет она потом прошиваться или нет?

Тут было:
http://zx.pk.ru/showthread.php?t=9342&page=6

balu_dark
13.01.2010, 21:32
а сорри - в прошлом посте недописал буковку! FT245R с епромом и кварцем. остальные требуют навеску - но это уже курите внимательно мануалы. и еще у R чипа корпус с мелким шагом ног - имейте это ввиду. зато всего 2 ряда ног вместо 4х.

aniSKY
17.01.2010, 17:30
Помогите разобраться где у EPCS4N (конфПЗУ) первоя нога, никаких точек и углублении нет, только одна стороне с ногами более скошена чем противоположная.

svofski
17.01.2010, 17:33
Скошенная сторона -- то же самое, что и точка. При монтаже надо паять скосом в ту сторону, где была обозначена точка.

aniSKY
18.01.2010, 09:26
подскажите, в какой режим должен быть настроен ЛПТ в биосе? можно ли как то проверить работоспособность BBlasterMV ?

zx-kit
18.01.2010, 10:22
подскажите, в какой режим должен быть настроен ЛПТ в биосе?

Parallel Port Address [378]
Parallel Port Mode [Normal]
Parallel Port IRQ [IRQ7]

aniSKY
18.01.2010, 10:38
и еще маленький вопросик: ББластер подключается в следующем порядке?
1. вырубаю ПЦ
2. втыкаю в ЛПТ
3. втыкаю в подопытного
4. включаю питание у подопытного
5. включаю ПЦ
и обратный процесс:
1. вырубаю ПЦ
2. вырубаю подопытного
3. все отсоединяю
4. включаю ПЦ

.... давно не пользовался я ББ, вот подзабылось как его правильно включать то. )

zx-kit
18.01.2010, 10:45
и еще маленький вопросик: ББластер подключается в следующем порядке?
1. вырубаю ПЦ
2. втыкаю в ЛПТ
3. втыкаю в подопытного
4. включаю питание у подопытного
5. включаю ПЦ
и обратный процесс:
1. вырубаю ПЦ
2. вырубаю подопытного
3. все отсоединяю
4. включаю ПЦ

.... давно не пользовался я ББ, вот подзабылось как его правильно включать то. )

Я делаю так (прошиваемая плата имеет трансформаторный источник питания):
1. включаю ПЦ
2. втыкаю Byte Blaster MV в ЛПТ
3. втыкаю Byte Blaster MV в прошиваемую плату
4. включаю питание у прошиваемой платы

и обратный процесс:
1. вырубаю питание у прошиваемой платы
2. отсоединяю Byte Blaster MV от прошиваемой платы

aniSKY
19.01.2010, 00:37
помогите кто уже собирал чтонить на циклоне первом:v2_conf2:
в схеме на девборду от LDM-system сигналы JTAGа подтянуты к +3.3 через 1к резисторы - Квартус кричит что "немогу" по причине что TDO сидит на +3.3. в схеме все конфиг-сигналы подтянуты через 1к. Посмотрел что рекомендует Альтера - оказалось что не все резюки 1к, точнее все кроме того что на TCK, а TDO вообще без подтяжки к чему либо. все по 10к к +3.3 , а TCK через 1к на землю, еще оказалось что nCE через 10к на землю. все перепаял как рекомендует Альтера (Combining AS and JTAG Configuration). подключаю - теже лыжи только теперь ругается, что TDO сидит на земле.....
а как оно то должно быть?:confused:

fifan
19.01.2010, 09:20
К сожалению не нашел ссылку на этом форуме, но когда-то Ewgeny7 давал такие рекомендации по подключению. Подробности можно узнать у него.
http://www.newretropc.ru/for_out/altera.rar

aniSKY
19.01.2010, 12:09
Спасибо за инфу, но в архиве оказался уже третий вариант наминалов резюков:v2_conf2: попробую и этот вечером, может заведется всетаки.

Ewgeny7
19.01.2010, 12:57
но в архиве оказался уже третий вариант наминалов резюков
Номинал не важен. Они просто притягивают к уровням. Тут и 10кОм и 1кОм практически равнозначны.
Разница в подключении резисторов к конкретным выходам ПЛИС объясняется разными способами программирования ПЛИС (JTAG, AS, PS). Сначала разберись какой способ тебе "ближе" :) В соответствии с этим также выберешь как подключать пины MSEL. Я выбрал активный конфиг с прошиванием конфПЗУ и самого циклона через JTAG. Схема данного подключения валяется в этой теме и файл обзывается КонфПЗУ.rar (в моём сообщении).

aniSKY
19.01.2010, 13:33
Спасиб.
Хочу уточнить, если я все сделаю как указано в схеме из твоего архива, то нажав автодетект в программере циклон должен определяться или нет? EPM7128 допустим определяется нормально, а как должна себя вести FPGA в данной схеме?

Ewgeny7
19.01.2010, 15:20
циклон должен определяться или нет?
Да, разумеется. Без опознания кристалла программер не будет ничего писать в ПЛИС/конфПЗУ.

---------- Post added at 15:20 ---------- Previous post was at 15:18 ----------


если я все сделаю как указано в схеме из твоего архива
Делай, я именно по этой схеме свои поделки собирал. И всё нормально работает.

IanPo
20.01.2010, 18:56
Как можно в Квартусе посмотреть внутренние сигналы? Обычно при анализе выводятся сигналы только на выводах.

svofski
20.01.2010, 19:04
Самый надежный способ -- сделать тестовый вывод и присоединить к нему те сигналы, на которые хочется посмотреть. Правда, в редких случаях это может привести к тому, что, например, если выводить переменные состояния, то конечный автомат не будет синтезирован как таковой и результат конечной оптимизации будет отличаться.

IanPo
20.01.2010, 19:19
Осциллографом только так и можно, наверно.
Но нужно в Квартусе.
Я где-то слышал, что есть какой-то virtual pin.

svofski
20.01.2010, 19:22
Еще можно в браузере пинов раскрывать модули и смотреть на сигналы, которые остались внутри после оптимизации и образовались в ее процессе. Там далеко не всегда можно найти то, что интересует. Virtual Pin-ы, увы, не знаю..

fifan
20.01.2010, 19:38
Самый надежный способ -- сделать тестовый вывод и присоединить к нему те сигналы, на которые хочется посмотреть...
И я так делаю.

Ewgeny7
20.01.2010, 20:05
И я так делаю.
И все так делают :)

aniSKY
26.01.2010, 00:55
:v2_yahoo: Наконец то я победил собственное же творение -"aSPECT". спасибо всем за советы - реально помогло. А оказалось все бонально:redface: - помимо недоразведенных дорожек к конф ПЗУ я ошипся с номерами ног питания, и в рузультате было КЗ по питанию. пришлось резать, паять, напаивать и допаивать. терь Квартус пишет все ок и опознает мой циклон. правда я запустил все свое добро на EP1C3 так как подумал что моей EP1C6 уже хана. так что всем кто надумал повторить сие чудо - неспешить, я перерисую схему и плату со всеми исправленными недочетами и ошибками и пояснялкой что не надо паять для EP1C3 если нету ЕР1С6.

и еще вопросик: как можно протестить конфПЗУ?

skyther
26.01.2010, 09:06
пришлось резать, паять, напаивать и допаивать
фотки в студию!

Ewgeny7
26.01.2010, 09:47
и еще вопросик: как можно протестить конфПЗУ?
Теста нет. Просто залей туда что-нибудь, потом верифицируй. Если подключение делал по указанной мною доке, то файлик на пробу "заливки" могу прислать.

aniSKY
26.01.2010, 11:04
Теста нет. Просто залей туда что-нибудь, потом верифицируй. Если подключение делал по указанной мною доке, то файлик на пробу "заливки" могу прислать.
да, делал ровно по твоей доке. это было бы круто, мне осталось только его и проверить, что бы быть уверенным что основные части работают как положено:v2_thumb: (anisky(a)tut.by)

Ewgeny7
26.01.2010, 12:40
Вот файлик для примера (рабочая прошивка Орион-2009). Чип - EP1C3T100
Открывать в программаторе Квартуса.

sergey2b
02.02.2010, 20:30
подскажите пожалуйста а бы ла ли пятая часть http://www.zx.pk.ru/showpost.php?p=179392&postcount=39 - формирование и вывод изображения .

Ewgeny7
02.02.2010, 22:27
подскажите пожалуйста
небыло. но освоив предыдущее, несложно сделать пятую часть самому (проверено лично :) )

bigral
06.02.2010, 13:47
Скажите как можно оценить размер PLD разного типа если в характеристиках указан обьем в разных единицах. Вот например в CPLD обьем указан в macrocell-ах, в FPGA Altera в LE, а в FPGA Xillinx в gate-ах. Можно ли хотябы примерно эти величины пересчитать в количество элементов 2И-НЕ (как базового 7400 элемента)?

ZEK
06.02.2010, 14:48
MCELL и LE+Тригер можно очень приблежонно считать как 20шт 2И-НЕ

Гораздо надежней подбирать нужный размер под синтезируемый исходник

fifan
06.02.2010, 15:09
...Можно ли хотябы примерно эти величины пересчитать в количество элементов 2И-НЕ?
В Altere все в macrocells: 32/64/128 или в logic elements : 2910 (Cyclone1). В Xilinxе не знаю. Как-то никогда несоотносил количество логических элементов (таких как И/НЕ) и макроячеек. Может они и взимосвязаны. Смотрел конечный результат компиляции и все.

fan
06.02.2010, 15:12
У CPLD просто перевожу количество попугаев в тригеры (из которых собсно и состоят всякие регистры и т.п.), довольно точно получается прикинуть чего влезет . По FPGA нужно монускрипты смотреть чегу у каких разновидностей в мелкоячейки напихано . Проще просто проэкт откомпилить под конкретную матрицу и посмотреть сколько попугаев захавано .

IanPo
07.02.2010, 21:58
Прикупил USB-BLASTER-RUS и юзаю, однако, ByteBlasterMV раза в 3 быстрее будет.
Так и должно быть?
А с оригинальным Альтеровским USB-Blaster скорость какая?

fifan
08.02.2010, 05:19
А тебе не пофиг? Все равно за 10 секунд шьёт...

IanPo
08.02.2010, 10:38
А тебе не пофиг?
Это вопрос флеймовый.
А меня интересует техническая сторона.

Ewgeny7
08.02.2010, 10:45
А меня интересует техническая сторона.
Технически - медленней по определению. Это касается и проггеров под USB для Атмелей.

aniSKY
10.02.2010, 09:51
aSPECT
поправил все косяки что обнаружил во время зборки, добавил немного описания что где и куда сувать :).Позже выложу и фотки как оно выглядит.
адрес в подписе.

IanPo
20.02.2010, 18:42
Вопрос про программирование FPGA( в частности, Циклон1):

1) где хранить прошивку(чтоб не пропадала после отключения питания)?
2) есть ли спец ПЗУ, чтобы можно было заливать прошивку через JTAG в FPGA и в ПЗУ?
3) где можно посмотреть реальные схемы (есть только схема Pentagon 2.666, но там непонятно)?

Ewgeny7
20.02.2010, 18:48
Прошивки можно хранить в специальном КонфПЗУ (типа EPCS), можно в подключенном микроконтроллере, можно во внешнем обычном ПЗУ (если слепить к нему загрузчик из микроконтроллера или CPLD).
проще всего использовать конфПЗУ. К нему ничего дополнительно не надо.
Цепляется оно не через JTAG, а через спецвыводы конфигурирования ПЛИС, ЖТАГ остается свободным. Прошивается конфПЗУ через ЖТАГ самой альтеры "паровозиком" :)
Схема подключения болтается в этой теме.

Ewgeny7
20.02.2010, 22:07
А оно одноразовое или Flash?
Название м/с конфПЗУ для Циклона не подскажешь
100000 перезаписей.
Для небольшого циклона, например EPCS1 или EPCS4. Я пользуюсь как раз единичкой в комплекте с циклоном EP1C3T.

IanPo
21.02.2010, 00:15
Я параллельно искал и в описании на Циклон нашел подключение конфПЗУ.
Там оно на что-то вешается, называется все это Active Serial Configuration Mode - это оно?
На картинке 10-контактный разъем, это, видимо, не JTAG?

fifan
21.02.2010, 10:13
Схема подключения болтается в этой теме.

Я уже приводил здесь ссылку на пояснения подключения Циклонов и конфигПЗУ от ewgeny7, но видно народу лень читать тему от начала до конца или пользоваться поиском. :dizzy_mad_old: Привожу ссылку на файл, который лежит на моём сайте. Берите пока ссылка не пустая...:v2_unsur:

http://www.newretropc.ru/for_out/altera.rar

Ewgeny7
21.02.2010, 11:58
Вот сцылко: http://www.zx.pk.ru/showpost.php?p=179221&postcount=38
Там всё расписано русским по белому, со скриншотами из Квартуса.
Я делал свои девайсы по этой схеме.

IanPo
21.02.2010, 20:51
Всем спасибо, с Циклонами разобрался.
Надо такую прикупить и сбацать что-нить для Феникса :)

aniSKY
22.02.2010, 23:54
скачал последний t80 softcore Z80, а что нужно грузить из всего этого не догоняю.
подскажите как и что нужно правильно грузить, чтоб потом это скомпилить.

Ewgeny7
23.02.2010, 12:51
скачал последний t80 softcore Z80, а что нужно грузить из всего этого не догоняю.
подскажите как и что нужно правильно грузить, чтоб потом это скомпилить.
Лучше всего учиться смотря на примеры :)
Полистай мой проект: http://www.zx.pk.ru/showpost.php?p=259313&postcount=594

---------- Post added at 12:48 ---------- Previous post was at 12:45 ----------

В VHDL требуется для подключения Т80 добавить два блока -
component и port map. Один найдешь вверху головного модуля, второй - внизу.

---------- Post added at 12:51 ---------- Previous post was at 12:48 ----------

Component описывает сам подключаемый модуль, его входы/выходы (как будто описываешь словами микросхему Z80).
Port map описывает КУДА ты подключаешь его выводы. Для того указываешь физические связи его "ног" с сигналами в головном проекте.

bigral
27.02.2010, 18:27
MCELL и LE+Тригер можно очень приблежонно считать как 20шт 2И-НЕ

Ну а для сравнения возможностей devboard-ов можно пользоваться соотношением типа:

10 MCELL ~ 17 LE ~ 180 eq. gates ?

balu_dark
28.02.2010, 23:31
Только укажи - для каких конфигураций ячеек ты давал эти данные. чтобы можно было пересчитать в случае если ячейка имеет немного другое содержимое ( ну типа там - другое количество тригкров или другая конфигурация логической ячейки) тогда можно будет составить табличку весьма и весьма полезную.

bigral
01.03.2010, 04:09
Только укажи - для каких конфигураций ячеек ты давал эти данные...

Это был вопрос к знающим людям. А возник вопрос потому что например часто в прайсах можно найти чип с указанным "обьемом логики" для xillinx в одних а для altera в других (причем разных) единицах. А то что с чем люди сталкиваются в жизни совсем заводит в тупик - один пишет что 500 000 gates на spartan 3e занимает minimig а у других легко влезает в 18000LE

balu_dark
01.03.2010, 17:56
аха - тогда сорри . я принял твои слова за утверждение. нет времени - так можно бы было изучить у каких серий какое устройство ячейки. и потом взять условно проект триггера и какого нибудь дешифратора(или мультиплексора) и откомпилить записав данные о количестве использованных ресурсов. а потом составить табличку.

andrews
01.03.2010, 18:20
один пишет что 500 000 gates на spartan 3e занимает minimig а у других легко влезает в 18000LEодин и тот же проект с одинаковой оптимизацией?

balu_dark
01.03.2010, 19:53
скорее всего про LE речь шла про платы DE1 DE2 на альтере но в той реализации ко всему еще встроены софткоре z80 и m68000. поэтому не реально сравнить. а гейты это скорее всего либо И либо ИЛИ элементы.

bigral
02.03.2010, 00:44
один и тот же проект с одинаковой оптимизацией?

Нет конечно, если бы речь шла об одном и том же софте (от Алтеры например) то и единицы были бы явно те же самые. В этом конкретном случает речь шла об AlteraDE1 (обьем в LE) и каким-то там бордом на Xilinx Spartan-3E 1200K gates (обьем в gates).

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

К нашему счастью для спектрума подходят даже самые слабые ПЛИС-ы так что можно брать ту что "новее+дешевле" и все тут, особо не вдаваясь в подробности.

А вот чтоб заменить в своей разработке микроконтроллеры как class... тут уже надо знать какие реально доступны функции и за какие $$$.

aniSKY
03.03.2010, 17:23
вот случайно наткнулся на такую табличку:
http://biakom.com/altera/comparing/xilinx -вы это имеете ввиду?
тут еще есть сравнение с другими фирмами:
http://biakom.com/altera/comparing/
авось это то что ищеццо.... :)

balu_dark
03.03.2010, 20:35
чегото я про Виаком - забыл :) с другой стороны сравнение не на все серии чипов и так как Виаком диллер Altera возможны кое где преуменьшения конкурентов. А вообще очень много зависит от среды ибо новые версии того же Quartus компилят несколько больший код чем старые версии его же ( вспомните Speccy2007 прошивка которого не влезала в 7128 если компилировали 9й версией среды.).

bigral
03.03.2010, 22:19
авось это то что ищеццо.... :)

Судя по этим таблицам 1LE (Altera) ~ 50...60 eq. gates (Xillinx)! Кто-то может подтвердить?

aniSKY
09.03.2010, 23:51
можно ли использовать такую вот схемку (взята с zxevo) как видеовыход для Циклона 1-го и подрубать его как к ТВ так и к монику?

balu_dark
10.03.2010, 02:20
ну только строки с кадрами надо через элемент ЛП5 соеденить - и вполне можно.

IanPo
11.03.2010, 23:00
Ситуация такая:
выход EPM7064S (5 Вольт) как-то странно выдает 0 и Z:
Делаю конвертер VGA типа как у zst, выход такой же с подтягиваением
яркости. Вот кусок прошивки:

if (sI3 = '0') then
oI_VGA <= "000";
else
oI_VGA <= "ZZZ";
end if;

Короче ZZZ не действует (яркость всегда темная). Если сделать 111 вместо ZZZ, то яркость работает.

bigral
12.03.2010, 02:13
подтягиваением яркости...

Какие резисторы поставил? Может надо попробовать установить потенциометер и эксперементально выставить нужную яркость (с последующей заменой на постоянный резистор)?

IanPo
12.03.2010, 10:15
На RGB по 150 Ом. На I 270 Ом.

IanPo
12.03.2010, 10:21
Может надо попробовать установить потенциометер и эксперементально выставить нужную яркость (с последующей заменой на постоянный резистор)?
Я вывожу на Фениксе тест Menu+F10. Если 0 и Z, то вижу по одной широкой полосе каждого из восьми цветов. Если 0 и 1, то вижу по две узких, т.е. яркость работает. Попробую заменить на переменник.

zx-kit
12.03.2010, 15:59
На RGB по 150 Ом. На I 270 Ом.

Почему бы не поставить такие же номиналы, как в SPECCY2007?
По 330 на RGB и по 470 на яркость.

IanPo
12.03.2010, 16:18
Почему бы не поставить такие же номиналы, как в SPECCY2007?
Я номиналы рассчитывал, чтобы 0.7 в было на 75 Ом.
Попробую поменять, но фишка, имхо, не в этом.
Я делал яркость oI_VGA <= "000" постоянно и менял на "ZZZ" тоже постоянно - яркость картинки такая же. Вот что меня смущает сильно. А ставлю "111" - опа, яркость пошла. Исходники скопировал твои, из первой версии. Пробовал OPNDRN и map задавать, все компилируется, а результата нет.

zx-kit
12.03.2010, 16:35
Я номиналы рассчитывал, чтобы 0.7 в было на 75 Ом.

75 Ом * (5 В/(150+75) Ом) = 1,67 В


Попробую поменять, но фишка, имхо, не в этом.
Я делал яркость oI_VGA <= "000" постоянно и менял на "ZZZ" тоже постоянно - яркость картинки такая же. Вот что меня смущает сильно. А ставлю "111" - опа, яркость пошла. Исходники скопировал твои, из первой версии. Пробовал OPNDRN и map задавать, все компилируется, а результата нет.

Чтобы сделать Z не надо делать OPNDRN и map. Cм. проект SPECCY2007 - там работает и ПЛИС пятивольтовая.

IanPo
12.03.2010, 16:52
Два состояния 0 и Z задаются, чтобы компилятор собрал схему с открытым стоком.
Для этого же делался OPNDRN и т.д.
Фишка в том, что он, похоже, не работает.

zx-kit
12.03.2010, 17:09
Два состояния 0 и Z задаются, чтобы компилятор собрал схему с открытым стоком.
Для этого же делался OPNDRN и т.д.
Фишка в том, что он, похоже, не работает.

Можно проверить:
После компиляции в окне Compilation Report -> Fitter -> Resource Section -> Output Pins запрятана таблица.
Там в столбце Open Drain для выходов с открытым стоком должно появиться yes.

IanPo
12.03.2010, 17:20
75 Ом * (5 В/(150+75) Ом) = 1,67 В
Там 270 на RGB, а 150 вниз тянет, если яркость 0. Но все равно, надо перепаять на бОльшие.

IanPo
12.03.2010, 20:35
zst, заработало, спасибо :) Open-drain есть в отчете.
330 и 470 поставил. Хотя не очень сильно яркость отличается, но это мелочи.
Осталось разобраться с двоением некоторых вертикальных линий.

zx-kit
12.03.2010, 21:28
zst, заработало, спасибо :) Open-drain есть в отчете.
330 и 470 поставил. Хотя не очень сильно яркость отличается, но это мелочи.
Осталось разобраться с двоением некоторых вертикальных линий.

ПЛИС тактируется от отдельного генератора ?

IanPo
12.03.2010, 22:59
ПЛИС тактируется от отдельного генератора ?
Нет, от 14 Мгц на Фениксе. Сигнал F на ZX-BUS. Инверсия его не влияет. Надо бы выложить схему, сигналы и vhdl, потому что у меня ОЗУ 70нс (хотя я пробовал делать как у тебя, с 15 нс ОЗУ и таким же сигналами, но двоение было все равно). Нужно ли сигналы RGBI с Феникса подтягивать ( у меня 4-проводный шлейф 20 см) к +5в?

Пока что выкладываю сигналы и проект Квартуса.
Схемы как таковой нет, есть плата SprintLayout.
Еще фотки девайса завтра выложу и экрана.

IanPo
13.03.2010, 11:53
Вид меню
Вид экрана после выполнения программы
Плата Sprint Layout

10 for i=0 to 2047
20 poke i+16384,85
30 next i
40 for i=2048 to 4095
50 poke i+16384,170
60 next i

zx-kit
13.03.2010, 12:55
Вид меню
Вид экрана после выполнения программы
Плата Sprint Layout

10 for i=0 to 2047
20 poke i+16384,85
30 next i
40 for i=2048 to 4095
50 poke i+16384,170
60 next i

А на CRT мониторе как выглядит ?

IanPo
13.03.2010, 14:25
А на CRT мониторе как выглядит ?
У меня нет CRT-монитора. Однако, если менять в настройках монитора Pixelclock и PixelPhase, то раздваиваются уже другие строки. Подтягивание 1кОм RGBI к 0 или 5в ничего не меняет. Я склоняюсь к мысли, что дело в выходе, но не исключаю и глюков на входе, при защелкивании в регистр.

IanPo
14.03.2010, 14:28
Провел небольшое исследование с помощью осциллографа:
на экран с черным бордюром вывел в видеопамять 170 по всем адресам, в атрибуты - 7. Получились вертикальные линии через одну.
Осциллограммы снял сначала с цифрового R выхода Феникса, потом на R выходе VGA-разъема.
Вроде нормально выводит.
Получается, у меня не монитор, а отстой нелепый BENQ FP231W :v2_conf2:

IanPo
25.03.2010, 21:36
Возник такой вопрос:
предположим, карточка на Cyclone II VCCIO=3.3 втыкается в шину Nemo-BUS.
Какие нужны резисторы для сопряжения сигналов и не накроется ли карта,
пока в нее еще не загрузилась конфигурация (не включены защитные диоды)?

IanPo
27.03.2010, 21:12
Нашел некоторое решение:
SN74LVC4245 - 8 бит передатчик между 3.3 и 5 в
SN74ALVC164245 - 16 бит

fan
27.03.2010, 22:31
http://zx.pk.ru/showthread.php?p=73074#post73074
(clamp diode должен быть врублен на входных пинах)

DE1 с атарёй - http://www.brianpostma.com/others.html
DE2 с амигой - http://www.a1k.org/forum/showthread.php?t=20223

tnt23
28.03.2010, 21:45
Еще вариант - IDTQS3245. Двусторонние ключи с задержкой 0.25нс.

ALEXEY.GORDEEV
21.04.2010, 06:20
У мну вопрос.
Есть 3.3v CPLD EPM3064ALC44-10N. 5v-толерантная.

Написал простейший код, который берет частоту с одной ноги, делит её, и результаты деления выводит на несколько других ног (тоесть какбы обычный счетчик). Скомпилил, прошил, потыкался осциллографом - получил то, что надо, но разумеется в напряжении 3.3v.

5v мелкая логика работает с такими сигналами (серия 1533 в частности), а Z80 от 3.3v сигнала затактовать не получается. Я понял что нужен подтягивающий к 5v резистор. Собственно каков должен быть его номинал?

(опытным путем от 3.3v клока удалось запустить Z80, сделав подтяжку 300Ом к 5v, но не случится ли чего с CPLD-шкой? А то мне кажется что сопротивление 300Ом совсем мелкое, хотя с более большими номиналами сигнал Z80-ым не воспринимается... Или придется таки ставить какой-либо буфер?)

Ewgeny7
21.04.2010, 09:09
Или придется таки ставить какой-либо буфер?
Угу.
Зетник от пятивольтовой логики не всегда запускается без резистора.
А трехвольтовку как бы в самом деле не спалить такой нагрузкой...

Alex_NEMO
21.04.2010, 09:17
У мну вопрос.
Есть 3.3v CPLD EPM3064ALC44-10N. 5v-толерантная.

Написал простейший код, который берет частоту с одной ноги, делит её, и результаты деления выводит на несколько других ног (тоесть какбы обычный счетчик). Скомпилил, прошил, потыкался осциллографом - получил то, что надо, но разумеется в напряжении 3.3v.

5v мелкая логика работает с такими сигналами (серия 1533 в частности), а Z80 от 3.3v сигнала затактовать не получается. Я понял что нужен подтягивающий к 5v резистор. Собственно каков должен быть его номинал?

(опытным путем от 3.3v клока удалось запустить Z80, сделав подтяжку 300Ом к 5v, но не случится ли чего с CPLD-шкой? А то мне кажется что сопротивление 300Ом совсем мелкое, хотя с более большими номиналами сигнал Z80-ым не воспринимается... Или придется таки ставить какой-либо буфер?)

ALEXEY.GORDEEV, ewgeny7, да и Дмитрий. вроде, неоднократно писали, что EPM3ххх не смотря на заявленные производителем 3,3 вольта напр. питания прекрасно живут на 5в. В таком случае, буфера не нужны ни по входам, ни по выходам! Да и в целом, все на много упрощается.
По крайней мере, ewgeny7 мне говорил, что и в СМУКи и в ПрофПЗУ он неоднократно ставил EPM3032 вместо EPM7032 без каких-либо изменений в схеми и даже без понижения напр. питания на EPM3032!

UncleDim
21.04.2010, 09:28
Или придется таки ставить какой-либо буфер?)
А open drain заюзать? наверняка можно будет резистор увеличить ом до 500 при этом (10mA - нагрузка вполне допустимая).
позволю себе процитировать даташит.

Open-drain output pins on MAX 3000A devices (with a pull-up resistor to
the 5.0-V supply) can drive 5.0-V CMOS input pins that require a high VIH.
When the open-drain pin is active, it will drive low. When the pin is
inactive, the resistor will pull up the trace to 5.0 V, thereby meeting CMOS
requirements. The open-drain pin will only drive low or tri-state; it will
never drive high. The rise time is dependent on the value of the pull-up
resistor and load impedance. The IOL current specification should be
considered when selecting a pull-up resistor

Ewgeny7
21.04.2010, 10:22
А open drain заюзать? наверняка можно будет резистор увеличить ом до 500 при этом (10mA - нагрузка вполне допустимая).
Логично.
Можно также настойчиво порекомендовать использовать именно КМОС-процессоры, у них вход тактовый не настолько жёсткий, как у обычных.
На выход клока из ПЛИС забабахать примерно такой код:

clk_out <= '0' when clk_in='0' else 'Z';

и соответственно на выходе поставить резистор-подтяжку на 510 ом.
Про серию МАХ3000 еще раз напомню, согласно информации из даташитов (подтвержденной дилером альтеры) рабочее напряжение этой серии до 4.8 вольт гарантированное. Поэтому 5.0 применить вполне логично и допустимо.

Alex_NEMO
21.04.2010, 10:26
Про серию МАХ3000 еще раз напомню, согласно информации из даташитов (подтвержденной дилером альтеры) рабочее напряжение этой серии до 4.8 вольт гарантированное. Поэтому 5.0 применить вполне логично и допустимо.
А для "перестраховки", для особо дотошных и опасающихся, включить последовательно диод по питанию EPM3xxx. Как раз 4,4-4,6 вольт питания получим!
:)

bigral
23.04.2010, 14:21
А для "перестраховки", для особо дотошных и опасающихся, включить последовательно диод по питанию EPM3xxx. Как раз 4,4-4,6 вольт питания получим!
:)

Так что на каждом p-n переходе мы теряем 0.5...0.6V? Так же можно напряжение и до штатных 3.3V уменьшить? (помнится была фотка тут с самопальной платой и cyclone1 с таким преобразователем http://zx.pk.ru/showpost.php?p=187594&postcount=142).
Когда-то в ПЦ-шной плате вылетела микруха-генератор для питания slot1 процессора так один умелец пофиксил диодами эту проблему без этой микрухи.

НО ГЛАВНЫЙ ВОПРОС = чем это чревато? Чем схема на диодах плоха?

---------- Post added at 13:21 ---------- Previous post was at 13:01 ----------


Угу.
Зетник от пятивольтовой логики не всегда запускается без резистора.
А трехвольтовку как бы в самом деле не спалить такой нагрузкой...

Смотрел даташиты в инете много всяких 3.3v -> 5v буферов бывает но какой из них самый такой "ходовой" на наших просторах? Надо чтоб легко был доступен и желательно в DIP. Кто какие микрухи ставил?

psb
23.04.2010, 15:17
чем это чревато? Чем схема на диодах плоха?
1. в зависимости от тока диоды будут греться, иногда оочень сильно.
2. напряжение будет плавать в зависимости от тока через диод.

где-то это допустимо, где-то нет.

IanPo
23.04.2010, 16:15
bigral, в России есть такие вот переходники 3.3<=>5: http://zx.pk.ru/showpost.php?p=269933&postcount=453
Я без особых проблем купил и первые, и вторые.
В DIP я их не видел, может быть, такие есть.
Эти микрухи KOE использовал в последнем Пентагоне.

IanPo
24.04.2010, 13:27
Возвращаясь к вопросу о программировании КонфПЗУ через JTAG:
1. Резистор 1 кОм на TCK (контакт 1) действительно идет на землю, а не на VCC?
2. Контакт 6 на JTAG - нужно ли его подсоединять для USB-Blastera (в даташите туманно написано)?

Нашел ответы:
1. Да, идет на землю.
2. Для JTAG контакт 6 свободный.

ALEXEY.GORDEEV
24.04.2010, 14:38
Что я делаю неправильно?
У меня в исходнике CPLD-шки (VHDL) есть строчки, с помощью которых она выделяет сигналы выборки для AY-3-8912:

AYBC1 <= (nM1 nand A14) nor (A15 nand (A1 nor nIORQ));
AYBDIR <= nWR nor (A15 nand (A1 nor nIORQ));

AYBC1, AYBDIR - непосредственно выходные ноги (назначенные юзером), все использованные сигналы - непосредственно входные ноги (тоже назначенные юзером). Квартус ни на что не ругается при компиляции этого исходника, но при этом этот код и не работает - на соотв. выводах CPLD постоянно висит лог. 0. В чем проблема?

Входные сигналы 100% присутствуют. Наблюдал на осциллографе пачки импульсов /IORQ, при попытках проиграть что-то через этот самый AY. Остальные сигналы тоже просматриваются, в том числе /M1, A15, A14, A1. A15 и A14 на CPLD точно приходят, иначе вся система не работала бы, так как эта же самая CPLD выделяет сигналы для выборки памяти, тактовые и прочее прочее =)

P.S. CPLD - 100% живая, нормально шьется, проходит проверку...
P.P.S. Пытался пробовать разные комбинации (всмысле схемы подключения AY), не прокатывает.

---------- Post added at 18:38 ---------- Previous post was at 17:57 ----------

Сигналы появились, но на выходах каналов AY-ка по прежнему тишина...
Если на эти выходы никаких аналоговых схем (смеситель, усилитель) не навешано, то реально ли что-нибудь на них увидеть осциллографом?

Black_Cat
24.04.2010, 22:08
Если на эти выходы никаких аналоговых схем (смеситель, усилитель) не навешано, то реально ли что-нибудь на них увидеть осциллографом?там выходы с ОК

balu_dark
25.04.2010, 00:23
BC2 подвесил в высокий(вроде) уровень?

ALEXEY.GORDEEV
27.04.2010, 19:31
Да, подвесил BC2 на +5v. Исходная схема была взята из OBERON #3, до этого успешно повторялась мною при подключении этого же самого AY к ленину, в мелкой логике.

Кстати, а стандартный плеер из Vortex Tracker-а должен ли работать при 8к RAM (#4000-#5FF7) при условии что он вместе с мелодией в них влазит? Или ему нужен некий более большой диапазон памяти, для чего-нибудь ещё?

Спрашиваю потому, что есть подозрение что из-за мизерной оперативки как раз играть отказывается :)

P.S. В качестве RAM заюзан Timekeeper, тоесть какбы обычный SRAM 8k, но в последних 8 адресах идут календарь с часиками, так что памяти на самом деле 8184 байт :)

balu_dark
27.04.2010, 22:04
А обычных срамин нет? 32К 8 бит?

ALEXEY.GORDEEV
28.04.2010, 15:07
Обычные есть - но я тут разрывался перед выбором - поставить 32...64k SRAM, либо 8k, но при этом с часами, и добавить остальную память потом... :)
Просто сейчас переделывать макет поздно - чтобы вынуть оттуда SRAM придется разбирать полмакетки :)

Keeper
11.05.2010, 21:59
Как в VHDL описать Open Drain выход? Ниже два варианта кода который я пробовал, оба раза Квартус 7.2 ставит TRIstate :confused: Auto Open-Drain Pins = On


...
port(
MOSI : out std_logic;
...
signal MOSI_INT : std_logic; --Для варианта 2
...
--Вариант 1
MOSI <= '0' when SHIFT_REG(7) = '0' and SPI_OUT_EN_SYNC = '1' else 'Z';
--Вариант 2
MOSI_INT <= '0' when SHIFT_REG(7) = '0' and SPI_OUT_EN_SYNC = '1' else '1';
MOSI <= '0' when MOSI_INT = '0' else 'Z';
...

tnt23
11.05.2010, 22:10
Как в VHDL описать Open Drain выход? Ниже два варианта кода который я пробовал, оба раза Квартус 7.2 ставит TRIstate :confused: Auto Open-Drain Pins = On


...
port(
MOSI : out std_logic;
...
signal MOSI_INT : std_logic; --Для варианта 2
...
--Вариант 1
MOSI <= '0' when SHIFT_REG(7) = '0' and SPI_OUT_EN_SYNC = '1' else 'Z';
--Вариант 2
MOSI_INT <= '0' when SHIFT_REG(7) = '0' and SPI_OUT_EN_SYNC = '1' else '1';
MOSI <= '0' when MOSI_INT = '0' else 'Z';
...

Попробуй примитив OPNDRN (.in (MOSI_INT), .out (MOSI)).

Keeper
11.05.2010, 22:21
Попробуй примитив OPNDRN (.in (MOSI_INT), .out (MOSI)).

OPNDRN (.in (MOSI_INT), .out (MOSI)); ругается на синтаксис.
OPENDRN((MOSI_INT), (MOSI)); В таком виде пишет used but not declared. В какой библиотеке его искать?

tnt23
11.05.2010, 22:35
LIBRARY altera;

USE altera.altera_primitives_components.all;

http://quartushelp.altera.com/9.1/mergedProjects/hdl/prim/prim_file_opndrn.htm

ZEK
11.05.2010, 22:39
Я как бы не в этой теме ссылку давал уже

http://www.altera.com/support/kdb/solutions/rd06252007_878.html?GSA_pos=5&WT.oss_r=1&WT.oss=Open%20Drain

Есть еще 3 метод, через спецательные комментарии, но где и как оно работает в VHDL это надо искать

Keeper
11.05.2010, 22:49
Cчастие :)

LIBRARY altera;
USE altera.altera_primitives_components.all;
...
ul: OPNDRN PORT MAP ( a_in => MOSI_INT, a_out => MOSI);
...

tnt23
11.05.2010, 23:00
Может, и мне кто подскажет :) как правильней на Verilog HDL описать двунаправленную шину так, чтобы на выход она работала тоже как open drain?

Keeper
11.05.2010, 23:14
Может, и мне кто подскажет

Это VHDL, но смысл думаю будет понятен...


library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_unsigned.all;
LIBRARY altera;
USE altera.altera_primitives_components.all;

entity top is
port(
--BIDIR
D : inout std_logic_vector(7 downto 0) := "ZZZZZZZZ"; --Data Bus
--INPUTS
nRD : in std_logic; --CPU signals
nWR : in std_logic
);
end;

architecture rtl of top is

signal DATA_REG: std_logic_vector(7 downto 0) := "00000000";
signal DB: std_logic_vector(7 downto 0);

begin

process(nWR)
begin
if nWR'event and nWR = '0' then
DATA_REG <= D;
end if;
end process;

DB <= DATA_REG when nRD = '0' else "11111111";
ul1: OPNDRN PORT MAP ( a_in => DB(0), a_out => D(0));
ul2: OPNDRN PORT MAP ( a_in => DB(1), a_out => D(1));
ul3: OPNDRN PORT MAP ( a_in => DB(2), a_out => D(2));
ul4: OPNDRN PORT MAP ( a_in => DB(3), a_out => D(3));
ul5: OPNDRN PORT MAP ( a_in => DB(4), a_out => D(4));
ul6: OPNDRN PORT MAP ( a_in => DB(5), a_out => D(5));
ul7: OPNDRN PORT MAP ( a_in => DB(6), a_out => D(6));
ul8: OPNDRN PORT MAP ( a_in => DB(7), a_out => D(7));

end rtl;

ZEK
11.05.2010, 23:23
Тож в циклоне проверил, банальное



module TEST(
input wire DI,
output wire DQ,
inout wire DB,
input wire DIR
);

OPNDRN u1(DIR ? DI : 1'b1, DB);
assign DQ = DB;

endmodule


делает все правильно

tnt23
11.05.2010, 23:24
Keeper, спасибо. Буду думать о Верилоге теперь :)
Кстати, OPNDRN понимает и пучки проводов в качестве параметров.

Ewgeny7
11.05.2010, 23:30
Простите бестолкового, наверное я не совсем понимаю определение OPENDRAIN...
Чем ОНО отличается от (VHDL):

port( out: inout std_logic);

out<='0' when xxxx=xxxx else 'Z';
in<=out;

Отсутствием пуллапа?

Keeper
11.05.2010, 23:33
Чем ОНО отличается от (VHDL):

Квартус 7.2 лепил мне TRI вместо Open Drain когда я так делал...

Ewgeny7
11.05.2010, 23:37
Квартус 7.2 лепил мне TRI вместо Open Drain когда я так делал...
И что? Давай на вход TRI ноль, и рули им.
А еще лучше садись на кактус 9 :)

IanPo
11.05.2010, 23:59
И что? Давай на вход TRI ноль, и рули им.
Возможно, кол-вом ячеек отличается. По поведению такой TRI и ОТКРЫТЫЙ СТОК ничем не отличаются, имхо.

Ewgeny7
12.05.2010, 00:16
Возможно, кол-вом ячеек отличается.
навряд ли. Физически на выходах чипа стоят (если склероз мне не изменяет) именно TRI, реализующие функции "универсального пина". А компилятор просто определяет каким образом этот TRI будет задействован. Они даже не входят в сами "ячейки", поскольку являются самостоятельной единицей кристалла.

Keeper
12.05.2010, 00:26
Возможно, кол-вом ячеек отличается.

Кол-вом ячеек не отличается, отличается кол-вом связей, которое не резиновое...

aniSKY
13.05.2010, 22:55
Начинаю потихоньку осваивать квартус и циклон методом схемного ввода.
Наткнулся на следующее:после симуляции в графике сигналы идут как бы со сдвигом относительно тактового, но это как то я могу понять, но почему тогда выходные Q1 и Q3 меняются параллельно но со сдвигом относительно Q0 и Q2, как бы с задержкой.
проект прилагается (Quartus II WE 9.1SP1).
это правильно или как это понимать :v2_conf2:?

ZEK
14.05.2010, 00:05
ищем и курим по теме статических и динамических рисков
особенно в тригерных схемах.

Это из области основ цифровой электроники в частности касается гонки сигналов

У меня в бумаге есть вот такая книга http://www.bizbooks.com.ua/catalog/det.php3?id=26917
в принципе там нормально расписано, можно поискать электронный вариант

Keeper
14.05.2010, 00:16
Начинаю потихоньку осваивать квартус и циклон методом схемного ввода.

http://radiokot.ru/start/mcu_fpga/altera/04/

Вроде в этой теме уже упоминали про библиотечные элементы из серии 74 и их глючность, сам не сталкивался т.к. не использовал их ни разу....

Ewgeny7
14.05.2010, 08:27
Да не глючные они, просто надо уметь пользоваться ими...
А разброс в сигналах есть в любых счетчиках, хоть на схематике, хоть на Verilog или VHDL. Причем в симуляторе реально более старшие разряды могут работать "быстрее" чем младшие, почему - не знаю. Вероятно, зависит от разводки на кристалле.
Для борьбы с этим приходится делать счетчики со схемой "ускоренного переноса", как раз в Радиокоте этот метод и описывается.

IanPo
14.05.2010, 12:07
Для борьбы с этим приходится делать счетчики со схемой "ускоренного переноса",
Это и есть т.н. "синхронный счетчик", где обновление значений происходит во всех триггерах одновременно?

Ewgeny7
14.05.2010, 14:16
Это и есть т.н. "синхронный счетчик",
Ага. Наши 555ИЕ7 вроде как являются попыткой сделать синхронный счетчик (против несинхронного ИЕ5).

IanPo
18.05.2010, 13:33
Я выбрал активный конфиг с прошиванием конфПЗУ и самого циклона через JTAG. Схема данного подключения валяется в этой теме и файл обзывается КонфПЗУ.rar (в моём сообщении).
А можно объяснить на пальцах, как в Квартусе зашить конфПЗУ через JTAG? Насколько я понял, надо сначала загрузить в Циклон прошивку моста JTAG-AS, а потом прошивать свою прошивку.

Ewgeny7
18.05.2010, 17:33
А можно объяснить на пальцах,
Можно. Прошивка компилируется как обычно.
Далее "File"->"Convert programming file".
Выбираешь в списке ".jic". Указываешь файл-источник ".sof".
Указываешь тип ПЗУ и тип ПЛИС. Жмешь "Generate". Усё.
Пока я это писал, мог уже десять раз сделать в реале.
Подробная дока по этому делу есть (http://www.zx.pk.ru/showpost.php?p=179221&postcount=38) в этом треде. Я выкладывал.

IanPo
20.05.2010, 10:09
Проверил, все отлично прошивается!
EPCS4 прошил, теперь при включении видеокарточка дает тестовую картинку :)
Очень удобно.

IanPo
20.05.2010, 22:50
А кто-нибудь может выложить Квартусный проектик с использованием PLL?
Прям запарился уже, пишет, вход не соединен.
Я сделал графический файл, там вставил altpll.
От выводов отвел "провода", назвал их как сигналы в VHDL.
Из файлов cmp и как-то типа _inst.vhd вставил в свой vhdl объявление и инстанцию.
Однако, что-то не так.

tnt23
21.05.2010, 00:42
Я PLL вставлял через Megafunction Wizard.

Проект z3sdram (http://code.google.com/p/z3sdram/source/browse/)

Ewgeny7
21.05.2010, 08:12
Я сделал графический файл, там вставил altpll.
Ты на ВХДЛе ваяешь?
Если да, то лучше делать так - Megafunction Wizard, в нем ставишь все параметры PLL,
на последней кнопке "финиш" визард спросит тебя - "как сохранять?". Выбирай ВХДЛ.
В проекте появится файлик типа altpll.vhd. Прибивай его к проекту и всё будет работать. Не забудь вход PLL (clk0) назначить правильно, они подключаются только к своим специальным пинам.

IanPo
21.05.2010, 10:18
ewgeny7,
tnt23,
Я и делал через Megafunction Wizard.

Но нужно ли прописывать компонент PLL в моем vhd-файле?

И если у меня в vhdl определен пин i25175 in std_logic (CLK4, это вторая PLL на чипе), то как называть входной пин на схеме PLL?
Квартус пишет, что не подсоединен.
Либо вообще игнорирует подключенный PLL, комплирует без него.