ПЛИС - epm240 распаяная в микромодуле. Перед первым пуском плисины плату тщательно проверял на правильность. Дело в том, что это второй раз в жизни прошивал плис, и эта тема (как и сама технология) пока для меня является тёмным лесом полным загадок.
Книжки читал, первый раз прошивал по инструкции, как и сам код писал. Так же как и по инструкции назначал всякие пины (в квартусе). Но в инструкции ни слова как повторно перепрошивать. Стирать его или нет??? и как стирать память. или он автоматом память очищает перед новой прошивкой.
Ну что ж, теперь хоть производителя узнали - Altera. Теперь надо выяснить, что ты под фразой "прошить ПЛИС" подразумеваешь? Ты флеш память программируешь или просто конфигурируешь саму ПЛИС?
А.. прошу прощения... всё ясно. Надо покумекать... Вообще, здесь несколько может быть вариантов. Но перво наперво в Pin Planner посмотри, точно ли ноги назначены. Эт раз. Во вторых было и у меня нечто похожее... Приведи кусок кода тех сигналов, которые не на своих ногах. И ещё какая частота рабочая? Мне честно говоря с алтеровскими CPLD особо не приходилось ковыряться, но уверен, что принцип тот же что и при прошивки флешки. Её можно как стереть, так и запрограммировать. Естественно, перед тем как туда новую прошивку положить, её желательно отчистить.
Стер память, потом снова залил прошивку. Все равно както не адыкватно работает. 1-Сигнал bclk не проходит через плис. В нутри плис этот сигнал присутствует, так как без него сплитер не работал, и данные дата не инвертировал бы. Его просто нет на выходе. пин41 и пин55. 2- reset_out неправильно работает. На левом канале (пин38) ресет правильно отображается (+3.3 вольта), а на правом канале (пин50) его нет.
Частоты: mclk: 23 - 25 мгц; bclk: 3 - 12 мгц; data - и есть data.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Я к сожалению не спец по разработке проектов для ПЛИС в схемотехническом редакторе, но по поводу bclk_in, первое что бросается в глаза два не один за другим. Это будит оптимизировано. В остальном, честно говоря не понятно. \оптимизатор может выбрасывать лишнюю логику, но если сигнал выведен на внешнюю ногу то он теряться не должен. А MCLK на выходе присутствует? И ещё, всё ли в порядке с микросхемой? Возможно стоит создать совсем простенький проектик (рабочий на 100% например мигалку) и подключить сигналы с него к данным ножкам. И ещё с BCLK_Q - это ведь фактически not(RESET). Если он в 0, то на выходе все нули (в т. ч. и BCLK_Q) т.е. выходной триггер сброшен (наверно). Если он 1 то выходной триггер работает, но BCLK_Q всёравно 0.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
В корне все не верно. MCLK - тактовая частота ЦАП (25мгц). BCLK - опорная частота потока данных DATA. Все клоки присутствуют в ПЛИС, так как отсутствие клока BCLK в схеме приведет к не работоспособности всей программы. Последние два Д-тригера 74574 - это реклок. Когда восходящие фронты сигналов выравниваются по времени. Вот почему то сигнал DATA проходит через него, а BCLK нет (хотя частота у них идентична). Может сигнал утерян чуть раньше??? Квартус при компиляции на энергоэффективность вроде бы не ругался.
Что мешает отладить? Выводите всё наружу и двигайтесь от входа до выхода и смотрите где косяк. А вообще лучше писать всё на языке #HDL, чем ковыряться в этих дебрях. Тут желание мало у кого есть в этом разбираться, если вообще у кого то есть. В симуляторе дебажили?
_________________ "Ленивый человек в бесчестном покое сходен с неподвижною болотною водою, которая, кроме смраду и презренных гадин, ничего не производит". М.В. Ломоносов
Я говорю про splitter. BCLK_Q на его выходе есть инвертированный RESET поступающий на его вход (по схеме). Не знаю что такое реклок, но у выходных триггеров reset это асинхронный сброс. Ну во всяком случае если это не какой нить хитрый триггер. Одновременно этот же ресет (не инвертированный) сбрасывает и выходные триггеры. А в целом, в соответствии с советом dimitriy91 старые версии кваруса (до 10) имеют встроенный симмулятор. Он и на #HDL и схемотическое описание проекта поддерживает. Не скажу про ModelSim, как он к схемотехнике относится.... P.S. Verilog к сожалению не разумею(
И как раньше не замечал эту ошибку с неправильно подключенной bclk_q. Осталось разобраться, почему квартус не любит на одну линию вешать несколько выводов. Ведь взять проект "Марсоход", там люди по нескольку штук объединяют в один мегопин. Значит можно.
Не только можно, но иногда даже нужно! Эти все ресеты - фактически перемычка от входного пина к 2-м выходным. Если бы сигналы использовались внутри ПЛИС то можно было бы списать всё на оптимизатора-озарника... но они выведены на физическую ножку и почему такая штука не фурычет, тем более что один из них работает Ещё раз внимательно посмотрите Assignment Editor или Pin Planner (что больше нравится). Возможно просто забыли ножку назначить и она в воздухе повисла... Если всё норм, на эту ногу другой какой нибуть сигнал выведите, не исключено что в микросхеме косяк...
И снова здрасте Перечитывал тут книжечку одного паренька с незатейливой русской фамилией Понг Чу (Pong Chu) про плис, и остановил внимание на строчке про умножение. Он пишет, что это операция определена для типа integer. Далее в книге он пишет, что дескать умножение это сложная операция и зависит она от того какой у меня софт и аппаратная часть. Затем говорит о встроенных умножителях (я так понял аппаратных), и о том что дескать Xilinx (а в другой книге и Altera не отстаёт) это дело поддерживают. Я написал проектик, скомпилировал его и посмотрел. Всё работает, посмотрел в квартусе на скомпилированную схему, но вот в том что там развилось так и не въехал. Более того, скомпилилось даже деление! При этом в сводной таблице написано, что умножители задействованы не были (чего и стоило ожидать). Может это всё кто нить прокомментировать. И стоит ли пользоваться таким умножением в своих проектах или нет?
P.S. Приведу кодик.
library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; --use IEEE.NUMERIC_STD.ALL;
entity multipl is port ( d_in : in std_logic_vector(3 downto 0); d_out : out std_logic_vector(3 downto 0) ); end multipl;
architecture behavioral of multipl is
signal d_in1 : integer range 0 to 15 := 0; signal d_out1 : integer range 0 to 15 := 0;
Параллельное умножение на 3 это сумма X + (X << 1). Возможно компилятор счёл неразумным тратить ячейку умножителя на такую ерунду. Попробуйте умножить две шины (два целых числа заранее неизвестных).
_________________ Когда уже ничего не помогает - прочтите, наконец, инструкцию. Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII) Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Кто нибудь собирал платформу с microblaze хоть раз ?
_________________ "Ленивый человек в бесчестном покое сходен с неподвижною болотною водою, которая, кроме смраду и презренных гадин, ничего не производит". М.В. Ломоносов
//Инициализация GPIO драйвера XGpio_Initialize(&Gpio, XPAR_LEDS_POSITIONS_DEVICE_ID); //Установим порты на выход XGpio_SetDataDirection(&Gpio, LED_CHANNEL,0x0); // Установим выходной порт в 1 XGpio_DiscreteWrite(&Gpio,LED_CHANNEL,0x00);
Даже при отключенной оптимизации. volatile - не помогает.
_________________ "Ленивый человек в бесчестном покое сходен с неподвижною болотною водою, которая, кроме смраду и презренных гадин, ничего не производит". М.В. Ломоносов
_________________ "Ленивый человек в бесчестном покое сходен с неподвижною болотною водою, которая, кроме смраду и презренных гадин, ничего не производит". М.В. Ломоносов
О Господи. Вам время своё не жалко тратить на подобное? Ясен пень под ПЛИС я подразумевал FPGA. Вы лучше по микроблайзу подскажите.
_________________ "Ленивый человек в бесчестном покое сходен с неподвижною болотною водою, которая, кроме смраду и презренных гадин, ничего не производит". М.В. Ломоносов
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения