Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Unsorted (http://zx-pk.ru/forumdisplay.php?f=13)
-   -   ПЛИС и всё что с ними связано (http://zx-pk.ru/showthread.php?t=9342)

tnt23 12th May 2010 00:24

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

Ewgeny7 12th May 2010 00:30

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

port( out: inout std_logic);

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

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

Keeper 12th May 2010 00:33

Quote:

Originally Posted by ewgeny7 (Post 282985)
Чем ОНО отличается от (VHDL):

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

Ewgeny7 12th May 2010 00:37

Quote:

Originally Posted by Keeper (Post 282987)
Квартус 7.2 лепил мне TRI вместо Open Drain когда я так делал...

И что? Давай на вход TRI ноль, и рули им.
А еще лучше садись на кактус 9 :)

IanPo 12th May 2010 00:59

Quote:

Originally Posted by ewgeny7 (Post 282988)
И что? Давай на вход TRI ноль, и рули им.

Возможно, кол-вом ячеек отличается. По поведению такой TRI и ОТКРЫТЫЙ СТОК ничем не отличаются, имхо.

Ewgeny7 12th May 2010 01:16

Quote:

Originally Posted by IanPo (Post 282992)
Возможно, кол-вом ячеек отличается.

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

Keeper 12th May 2010 01:26

Quote:

Originally Posted by IanPo (Post 282992)
Возможно, кол-вом ячеек отличается.

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

aniSKY 13th May 2010 23:55

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

ZEK 14th May 2010 01:05

ищем и курим по теме статических и динамических рисков
особенно в тригерных схемах.

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

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

Keeper 14th May 2010 01:16

Quote:

Originally Posted by aniSKY (Post 283472)
Начинаю потихоньку осваивать квартус и циклон методом схемного ввода.

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

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

Ewgeny7 14th May 2010 09:27

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

IanPo 14th May 2010 13:07

Quote:

Originally Posted by ewgeny7 (Post 283536)
Для борьбы с этим приходится делать счетчики со схемой "ускоренного переноса",

Это и есть т.н. "синхронный счетчик", где обновление значений происходит во всех триггерах одновременно?

Ewgeny7 14th May 2010 15:16

Quote:

Originally Posted by IanPo (Post 283570)
Это и есть т.н. "синхронный счетчик",

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

IanPo 18th May 2010 14:33

Quote:

Originally Posted by ewgeny7 (Post 249867)
Я выбрал активный конфиг с прошиванием конфПЗУ и самого циклона через JTAG. Схема данного подключения валяется в этой теме и файл обзывается КонфПЗУ.rar (в моём сообщении).

А можно объяснить на пальцах, как в Квартусе зашить конфПЗУ через JTAG? Насколько я понял, надо сначала загрузить в Циклон прошивку моста JTAG-AS, а потом прошивать свою прошивку.

Ewgeny7 18th May 2010 18:33

Quote:

Originally Posted by IanPo (Post 284608)
А можно объяснить на пальцах,

Можно. Прошивка компилируется как обычно.
Далее "File"->"Convert programming file".
Выбираешь в списке ".jic". Указываешь файл-источник ".sof".
Указываешь тип ПЗУ и тип ПЛИС. Жмешь "Generate". Усё.
Пока я это писал, мог уже десять раз сделать в реале.
Подробная дока по этому делу есть в этом треде. Я выкладывал.

IanPo 20th May 2010 11:09

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

IanPo 20th May 2010 23:50

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

tnt23 21st May 2010 01:42

Я PLL вставлял через Megafunction Wizard.

Проект z3sdram

Ewgeny7 21st May 2010 09:12

Quote:

Originally Posted by IanPo (Post 285250)
Я сделал графический файл, там вставил altpll.

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

IanPo 21st May 2010 11:18

ewgeny7,
tnt23,
Я и делал через Megafunction Wizard.

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

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

tnt23 21st May 2010 11:30

Quote:

Originally Posted by IanPo (Post 285336)
ewgeny7,
tnt23,
Я и делал через Megafunction Wizard.

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

Нужно инстанциировать (объявить) твой собственный PLL компонент типа altpll.

Code:

pll pll_instance (.inclk0 (CLK0), .c0 (clk), .c1 (clk133), .c2 (clk133_3));

Quote:

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

Назначить пину имя в Pin Assignment (обозвать как i25175?), затем при инстанциировании pll скармливаешь это имя pll в виде параметра .inclk0 (i25175).

IanPo 21st May 2010 12:05

Quote:

Originally Posted by tnt23 (Post 285341)
Нужно инстанциировать (объявить) твой собственный PLL компонент типа altpll.

Я в двух местах прописал. Выложу файл вечером.

Quote:

Originally Posted by tnt23 (Post 285341)
Назначить пину имя в Pin Assignment (обозвать как i25175?), затем при инстанциировании pll скармливаешь это имя pll в виде параметра .inclk0 (i25175).

Пин уже назначен, далее понял.
Про выход .c0 (clk): в vhd я использую далее сигнал clk?

tnt23 21st May 2010 13:12

Quote:

Originally Posted by IanPo (Post 285359)
Про выход .c0 (clk): в vhd я использую далее сигнал clk?

Да.

Ewgeny7 21st May 2010 14:27

Quote:

Originally Posted by IanPo (Post 285336)
Но нужно ли прописывать компонент PLL в моем vhd-файле?

Как обычно с подключаемым модулем - component, port map,...

Quote:

Originally Posted by IanPo (Post 285336)
если у меня в vhdl определен пин i25175 in std_logic (CLK4, это вторая PLL на чипе), то как называть входной пин на схеме PLL?

Вероятно, CLK4.

IanPo 21st May 2010 21:57

Все заработало. Разобрался: я не заменил в инстанции имена сигналов на свои.

Для vhdl-проекта делается так:
создается дополнительный файл-схема, туда ставится компонент altpll,
в появившемся Megafunction Wizard задаются параметры. Нужно также задать
галочкой генерацию файлов cmp и _inst_vhd.
Затем из cmp копируется определение и вставляется в architecture до begin.
Затем из _inst_vhd копируется инстанция и вставляется в architecture после begin.
В инстанции нужно заменить inclk0_sig и c0_sig на входной сигнал (имя пина входа, один из CLK0..3 или CLK4..7 для CycloneII, там 2 PLL) и имя пина выхода или внутреннего сигнала. Вышеприведенное верно для случая один вход и один выход, если сигналов больше, то перенастроек больше, принцип тот же.

Ewgeny7 28th May 2010 22:41

1 Attachment(s)
Выложу для желающих ознакомиться с контроллером клавиатуры от ПЦ применительно к Спектрум-машинам на ПЛИС.
Это "полуфабрикат" (рабочий), куда можно добавлять свои конфиги кнопок.
Как это делается - несложно понять посмотрев готовые примеры.
В архиве два файла - от самой Альтеры (низкоуровневая работа с клавой) и сам модуль zxkbd.v, который сидит поверх альтеровского и непосредственно общается со спектрумом.
Также, несложно переделать его применительно к клавиатурным матрицам другого размера, не только спектрумовской 8х5.
Этот контроллер (только набок кнопок "пожирнее") уже работает здесь ;)

Alex_NEMO 30th May 2010 17:30

Вопрос к знатокам.

Есть пара EPM7032LC44-10 сдернутых с "мертвых" сетевух типа Intel Pro 10/100 TX.
По идее, они "залочены". Пробовал достучаться до них БайтБластером по JTAG - получаю ошибку, типа нет ответа по JTAG. Это что - "мертвый" чип или "залоченным" нужен какой-то специфический проггер с ф-цией "разлочки"?

Ewgeny7 30th May 2010 17:52

Quote:

Originally Posted by Alex_NEMO (Post 287669)
нужен какой-то специфический проггер с ф-цией "разлочки"?

Ага, фирменный. Только навряд ли дело в разлочке, скорее выводы JTAG используются как I/O.
Обрати внимание, у тебя серия LC а не SLC. Сие есть важно. Точнее про это знает Микка, но его нет. Он занимался копированием прошивок с LC на SLC в офисе у дистрибутора Альтеры.

Alex_NEMO 30th May 2010 18:19

Quote:

Originally Posted by ewgeny7 (Post 287676)
Ага, фирменный. Только навряд ли дело в разлочке, скорее выводы JTAG используются как I/O.
Обрати внимание, у тебя серия LC а не SLC. Сие есть важно. Точнее про это знает Микка, но его нет. Он занимался копированием прошивок с LC на SLC в офисе у дистрибутора Альтеры.

Понятно - спасибо за разъяснения... Под рукой есть "крутой" промышленный проггер "BeeProg+" от Elnec, он поддерживает кучу выриантов/режимов программирования, в т.ч. для EPM7xxx: ISP(JTAG)/JAM/SVF и варианты в переходнике. Так вот - знать бы схему переходника... Для семейства MCS51 я делал самопал DIP40 <> PLCC44, а как тут быть - Х.З.

Кстати, а куда Микка пропал? Случилось что?

Ewgeny7 30th May 2010 18:30

Quote:

Originally Posted by Alex_NEMO (Post 287682)
Кстати, а куда Микка пропал? Случилось что?

Говорил работы много. Наверное, с женой поцапался :)

ALEXEY.GORDEEV 31st May 2010 21:22

Кстати, а кто-нибудь работал с FPGA фирмы Actel? Существует ли программатор для них, который можно собрать самому, как байтбластер например? Не могу найти ни одной схемы...

IanPo 31st May 2010 23:10

Фиттер мне выдал:
Warning: Can't pack node sLogicalWidth[0] to I/O pin
Warning: Can't pack node sLogicalWidth[0] and I/O node iCD[0] -- no registers available for I/O cell

Кто знает, что сие означает?

Ewgeny7 31st May 2010 23:24

Это верилог?
Похоже, это что-то наподобие "Can't route to i/o pin" - не хватает ресурсов для "проводки" сигнала на пин ввода/вывода.

IanPo 1st June 2010 00:14

Quote:

Originally Posted by ewgeny7 (Post 287989)
Это верилог?

Я в VHDL пишу. В Квартусе, Альтера Циклон 2.

Quote:

Похоже, это что-то наподобие "Can't route to i/o pin" - не хватает ресурсов для "проводки" сигнала на пин ввода/вывода.
Это насколько плохо и что делать?
Может ли это означать, что выводы в разных частях чипа и тупо не хватает соединений? :(

Ewgeny7 1st June 2010 09:03

Quote:

Originally Posted by IanPo (Post 288002)
Это насколько плохо и что делать?
Может ли это означать, что выводы в разных частях чипа и тупо не хватает соединений?

Самое лучшее - снять привязку сигналов к пинам (в Pin Assignments) и перекомпилировать, чтобы Кактус сам расчитал удобное для него расположение пинов. Но если плата уже разведена и запаяна, то ой :(

IanPo 1st June 2010 11:19

Quote:

Originally Posted by ewgeny7 (Post 288026)
Самое лучшее - снять привязку сигналов к пинам (в Pin Assignments) и перекомпилировать, чтобы Кактус сам расчитал удобное для него расположение пинов.

Спасибо, попробую.

Quote:

Но если плата уже разведена и запаяна, то ой
Именно так. Хотя, если это Warning, то, может, все не так плохо?

IanPo 1st June 2010 23:33

Снятие привязки к пинам не помогло.

IanPo 3rd June 2010 13:04

Имеется ( VDHL ) следующее объявление:
signal sLogicalWidth : std_logic_vector(10 downto 0) := "00101000000";

Означает ли последнее приравнивание, что в регистре после загрузки конфы будет указанное значение?
Квартус при компиляции пишет, что сигналу never assigned a value.

Ewgeny7 3rd June 2010 16:57

IanPo, нет, эти цифирки нужны только для симулятора. Если сигнал является триггером (регистром) то после старта он будет нулевым. Предустановка есть для ячеек памяти.

aniSKY 5th June 2010 00:10

4 Attachment(s)
Доброго всем времени суток!
начал тут осваивать Циклон1 - действительно здоровская шкукенция!:)
А осваивать я решил сразу с видеоустройства спека на ВГА (клок на 14МГц). ну с первого раза ничего никогда не получалось, но пока достиг этого......
есть несколько вопросов:
Как можно слить образ памяти спека с адреса 4000(хекс) из любого эмулятора (непринципиально)?
В каком формате(для заливки его в РОМ для теста)нужно это сделать?
пока все...:)


All times are GMT +4. The time now is 06:42.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.