Keeper, спасибо. Буду думать о Верилоге теперь :)
Кстати, OPNDRN понимает и пучки проводов в качестве параметров.
Вид для печати
Keeper, спасибо. Буду думать о Верилоге теперь :)
Кстати, OPNDRN понимает и пучки проводов в качестве параметров.
Простите бестолкового, наверное я не совсем понимаю определение OPENDRAIN...
Чем ОНО отличается от (VHDL):
port( out: inout std_logic);
out<='0' when xxxx=xxxx else 'Z';
in<=out;
Отсутствием пуллапа?
навряд ли. Физически на выходах чипа стоят (если склероз мне не изменяет) именно TRI, реализующие функции "универсального пина". А компилятор просто определяет каким образом этот TRI будет задействован. Они даже не входят в сами "ячейки", поскольку являются самостоятельной единицей кристалла.
Начинаю потихоньку осваивать квартус и циклон методом схемного ввода.
Наткнулся на следующее:после симуляции в графике сигналы идут как бы со сдвигом относительно тактового, но это как то я могу понять, но почему тогда выходные Q1 и Q3 меняются параллельно но со сдвигом относительно Q0 и Q2, как бы с задержкой.
проект прилагается (Quartus II WE 9.1SP1).
это правильно или как это понимать :v2_conf2:?
ищем и курим по теме статических и динамических рисков
особенно в тригерных схемах.
Это из области основ цифровой электроники в частности касается гонки сигналов
У меня в бумаге есть вот такая книга http://www.bizbooks.com.ua/catalog/det.php3?id=26917
в принципе там нормально расписано, можно поискать электронный вариант
http://radiokot.ru/start/mcu_fpga/altera/04/
Вроде в этой теме уже упоминали про библиотечные элементы из серии 74 и их глючность, сам не сталкивался т.к. не использовал их ни разу....
Да не глючные они, просто надо уметь пользоваться ими...
А разброс в сигналах есть в любых счетчиках, хоть на схематике, хоть на Verilog или VHDL. Причем в симуляторе реально более старшие разряды могут работать "быстрее" чем младшие, почему - не знаю. Вероятно, зависит от разводки на кристалле.
Для борьбы с этим приходится делать счетчики со схемой "ускоренного переноса", как раз в Радиокоте этот метод и описывается.
Можно. Прошивка компилируется как обычно.
Далее "File"->"Convert programming file".
Выбираешь в списке ".jic". Указываешь файл-источник ".sof".
Указываешь тип ПЗУ и тип ПЛИС. Жмешь "Generate". Усё.
Пока я это писал, мог уже десять раз сделать в реале.
Подробная дока по этому делу есть в этом треде. Я выкладывал.
Проверил, все отлично прошивается!
EPCS4 прошил, теперь при включении видеокарточка дает тестовую картинку :)
Очень удобно.
А кто-нибудь может выложить Квартусный проектик с использованием PLL?
Прям запарился уже, пишет, вход не соединен.
Я сделал графический файл, там вставил altpll.
От выводов отвел "провода", назвал их как сигналы в VHDL.
Из файлов cmp и как-то типа _inst.vhd вставил в свой vhdl объявление и инстанцию.
Однако, что-то не так.
Я PLL вставлял через Megafunction Wizard.
Проект z3sdram
Ты на ВХДЛе ваяешь?
Если да, то лучше делать так - Megafunction Wizard, в нем ставишь все параметры PLL,
на последней кнопке "финиш" визард спросит тебя - "как сохранять?". Выбирай ВХДЛ.
В проекте появится файлик типа altpll.vhd. Прибивай его к проекту и всё будет работать. Не забудь вход PLL (clk0) назначить правильно, они подключаются только к своим специальным пинам.
ewgeny7,
tnt23,
Я и делал через Megafunction Wizard.
Но нужно ли прописывать компонент PLL в моем vhd-файле?
И если у меня в vhdl определен пин i25175 in std_logic (CLK4, это вторая PLL на чипе), то как называть входной пин на схеме PLL?
Квартус пишет, что не подсоединен.
Либо вообще игнорирует подключенный PLL, комплирует без него.
Нужно инстанциировать (объявить) твой собственный PLL компонент типа altpll.
Код:pll pll_instance (.inclk0 (CLK0), .c0 (clk), .c1 (clk133), .c2 (clk133_3));
Цитата:
И если у меня в vhdl определен пин i25175 in std_logic (CLK4, это вторая PLL на чипе), то как называть входной пин на схеме PLL?
Квартус пишет, что не подсоединен.
Либо вообще игнорирует подключенный PLL, комплирует без него.
Назначить пину имя в Pin Assignment (обозвать как i25175?), затем при инстанциировании pll скармливаешь это имя pll в виде параметра .inclk0 (i25175).
Все заработало. Разобрался: я не заменил в инстанции имена сигналов на свои.
Для 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) и имя пина выхода или внутреннего сигнала. Вышеприведенное верно для случая один вход и один выход, если сигналов больше, то перенастроек больше, принцип тот же.
Выложу для желающих ознакомиться с контроллером клавиатуры от ПЦ применительно к Спектрум-машинам на ПЛИС.
Это "полуфабрикат" (рабочий), куда можно добавлять свои конфиги кнопок.
Как это делается - несложно понять посмотрев готовые примеры.
В архиве два файла - от самой Альтеры (низкоуровневая работа с клавой) и сам модуль zxkbd.v, который сидит поверх альтеровского и непосредственно общается со спектрумом.
Также, несложно переделать его применительно к клавиатурным матрицам другого размера, не только спектрумовской 8х5.
Этот контроллер (только набок кнопок "пожирнее") уже работает здесь ;)
Вопрос к знатокам.
Есть пара EPM7032LC44-10 сдернутых с "мертвых" сетевух типа Intel Pro 10/100 TX.
По идее, они "залочены". Пробовал достучаться до них БайтБластером по JTAG - получаю ошибку, типа нет ответа по JTAG. Это что - "мертвый" чип или "залоченным" нужен какой-то специфический проггер с ф-цией "разлочки"?
Понятно - спасибо за разъяснения... Под рукой есть "крутой" промышленный проггер "BeeProg+" от Elnec, он поддерживает кучу выриантов/режимов программирования, в т.ч. для EPM7xxx: ISP(JTAG)/JAM/SVF и варианты в переходнике. Так вот - знать бы схему переходника... Для семейства MCS51 я делал самопал DIP40 <> PLCC44, а как тут быть - Х.З.
Кстати, а куда Микка пропал? Случилось что?
Кстати, а кто-нибудь работал с FPGA фирмы Actel? Существует ли программатор для них, который можно собрать самому, как байтбластер например? Не могу найти ни одной схемы...
Фиттер мне выдал:
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
Кто знает, что сие означает?
Это верилог?
Похоже, это что-то наподобие "Can't route to i/o pin" - не хватает ресурсов для "проводки" сигнала на пин ввода/вывода.
Я в VHDL пишу. В Квартусе, Альтера Циклон 2.
Это насколько плохо и что делать?Цитата:
Похоже, это что-то наподобие "Can't route to i/o pin" - не хватает ресурсов для "проводки" сигнала на пин ввода/вывода.
Может ли это означать, что выводы в разных частях чипа и тупо не хватает соединений? :(
Снятие привязки к пинам не помогло.
Имеется ( VDHL ) следующее объявление:
signal sLogicalWidth : std_logic_vector(10 downto 0) := "00101000000";
Означает ли последнее приравнивание, что в регистре после загрузки конфы будет указанное значение?
Квартус при компиляции пишет, что сигналу never assigned a value.
IanPo, нет, эти цифирки нужны только для симулятора. Если сигнал является триггером (регистром) то после старта он будет нулевым. Предустановка есть для ячеек памяти.
Доброго всем времени суток!
начал тут осваивать Циклон1 - действительно здоровская шкукенция!:)
А осваивать я решил сразу с видеоустройства спека на ВГА (клок на 14МГц). ну с первого раза ничего никогда не получалось, но пока достиг этого......
есть несколько вопросов:
Как можно слить образ памяти спека с адреса 4000(хекс) из любого эмулятора (непринципиально)?
В каком формате(для заливки его в РОМ для теста)нужно это сделать?
пока все...:)