Перейти к содержанию
    

Vlad362

Участник
  • Постов

    16
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о Vlad362

  • Звание
    Участник
    Участник
  1. возможно, рабочий фронт PPI_CLK совпадает с моментом смены входных данных. Инвертируй рабочий фронт PPI_CLK (бит POLC в PPI_CONFIG)
  2. так уже сделал, так работает. Я надеялся, что можно сделать красиво, через WHEN Этой идеи я не понял, ведь adr[1..7] это разряды шины adr, а h1..h7 - это вектора с разрядностью шины adr. Фактически я делаю адресный дешифратор с возможностью перенастройки селектируемых адресов извне.
  3. Уважаемые коллеги, подскажите, плз. Привожу кусок кода: process(adr) begin case(adr) is when h1=>hout<=B"001"; when h2=>hout<=B"010"; when h3=>hout<=B"011"; when h4=>hout<=B"100"; when h5=>hout<=B"101"; when h6=>hout<=B"110"; when h7=>hout<=B"111"; when others =>hout<=B"000"; end case; end process; h1..h7 - задаваемые извне (а не константами) условия. При компиляции Quartus сказал, что условия WHEN должны быть заданы только константами. А что мне делать, если мне нужно работать с переменными значениями условий?
  4. Планирую грузить FPGA с процессора, так что это вроде бы не проблема Насчет уменьшения частоты генератора - мысль понял, спасибо
  5. Коллеги, выскажите ваше мнение. Я хочу использовать blackfin-овский (BF532) регулятор на 1.2В для питания ядра Cyclone II (ep2c5), чтобы не городить для Cyclone отдельного источника. Но в доке написано, что этот регулятор рассчитан на максимальный ток 200мА. Если я внешние компоненты(ключ, диод Шоттки, катушка) подберу исходя из большего потребления тока, будет ли нормально работать такая схема?
  6. я в общем тоже склоняюсь к тому, что после того, как конфигурирование завершится, LVDS-ам будет пофиг что делается на пинах конфигурации, т. к. на них уже ничего меняться не будет. Спасибо.
  7. Уважаемые, подскажите пожалуйста. Собираюсь юзать EP2C5T144 для работы с четырехканальным LVDS АЦП. Планирую для работы с ним использовать третий IO банк. Проблема в том, что по референсу существуют ограничения на расположение LVDS-пинов относительно обычных : не ближе чем за 5 пинов от обычного выхода, или не ближе чем за 4 пина от обычного входа Привожу цитату из референса: "single-ended inputs can be no closer than four pads away from an LVDS I\O pad. single-ended outputs can be no closer than five pads away from an LVDS I\O pad." В третьем банке рядом с LVDS-пинами рядом располагаются пины, участвующие в конфигурации, а именно MSEL0, CONF_DONE и NSTATUS. У меня вопрос: относится ли вышеприведенное ограничение только к юзерским обычным входам-выходам, или к служебным тоже? P.S. Могу добавить, что Quartus не ругается, если я располагаю LVDS-пины рядом с конфигурационными.
  8. Для прикола сделал удвоитель частоты на триггере, а потом для контроля его же прогнал через счетчик - счетчик срабатывает не на каждый импульс ,так что такой удвоитель - полная шняга. По поводу схемы на attach'е: мне объединять регистры на tristate буферах нельзя, потому что после десериализатора у меня сведение 4 каналов АЦП и тьма всяких других преобразований. Уже сделал по 10-й главе доки на Cyclone. АЦП AD9287 4-канальный. так оно и есть.
  9. andrew_b: У Cyclone (я с ними работаю) минимальная тактовая 20МГц для PLL, у меня 10, так что PLL отпадает. to Gate: Так и сделал, замоделил в Quartus - заработало. А задача - десериализатор для AD-шного LVDS АЦП. Всем спасибо.
  10. please, help. Мне нужно на VHDL сделать сдвиговый регистр, который бы двигал данные по ОБОИМ фронтам CLK. Попробовал два способа: первый begin process(clk) begin if (clk'event and clk='1') then tmp <= si & tmp(7 downto 1); end if; end process; process(clk) begin if (clk'event and clk='0') then tmp <= si & tmp(7 downto 1); end if; end process; so<=tmp; и второй begin process(clk) begin if (clk'event) then tmp <= si & tmp(7 downto 1); end if; end process; so<=tmp; На оба способа Quartus заругался. Как я понял, (clk'event) не сработает в принципе. Что делать?
  11. Подскажите, плз. Я хочу юзать LVDS АЦП AD9287, приемник - на Cyclone или Cyclone II. Находятся они рядом на одной плате (до 5 см). Вопрос: должен ли я городить какую-то схему согласования, или можно обойтись 100 Ом на входе приемника.
  12. Коллеги, подскажите, плз. Есть LVDS АЦП (AD9287), он имеет тактирование выходного потока обоими фронтами выходного CLOCK. Собираюсь использовать Cyclone (работаю в Квартусе). У меня несколько вопросов: 1. Должен ли я в качестве приемника LVDS использовать только мегафункцию ALTLVDS (она какая-то страшная, использует блок PLL, при этом в ней нет ни намека на тактирование по обоим фронтам), или не париться и только указать в Assignment editor входным пинам, что они LVDS, и работать дальше как с обычной логикой (сделать свой сдвиговый регистр и т.д.)? 2. Как правильно указывать пины : физически их два, а логически один?
  13. Выходы должны быть подключены куда-то. Если выходы RAM или FIFO никуда не подключены, (или по логики они никогда не могут быть подключены) то он их может убрать. В map viewer, в Chip Editor и прочих эдиторах эти блоки также отсутствуют. Я использую общую шину данных как на ввод, так и на вывод (т. е. BIDIR), и мультиплексорами тут работать нельзя (компилятор выдаст конфликт между входом пина и выходом логики (мультиплексора) - давно проверено), только через BUSTRI и никак иначе . Мультиплексоры прокатят если работать только на выход. У меня так во всех проектах работало. Просто в данном проекте у меня на общей шине висит больше блоков (8 по выходу, 6 по входу). Создается такое впечатление, что к двунаправленному порту можно прицепить ОГРАНИЧЕННОЕ количество BUSTRI элементов и логических входов. Или компилятор запихивает два моих блока (256х8) в один стандартный MEMORY BLOCK M4K. Черт, так оно и есть. Подлый квартус просто не пишет корректно, чем забит тот или иной MEMORY BLOCK M4K. А по связям, подходящим к нему видно что внутри него все-таки сидят два моих блока 256х8. Всем спасибо.
  14. В том то и беда, что все блоки используются, все WR/RD, клоки подаются, BUSTRI все управляются, а часть из них Квартус убирает
  15. Спецы, помогите. Сделал проект в Квартус 6.0 на EP1C3. Использую несколько блоков памяти по 256 байт. Выходные шины данных через элементы BUSTRI уходят наружу на общую шину. После полной компиляции проекта оказывается, что некоторые из блоков памяти квартус куда-то подевал (При попытке обнаружить через locate in Timing Closure Floorplan пишет Can`t find requested location) . Меняю технику оптимизации AREA,SPEED,BALANCED - каждый раз из проекта изчезают РАЗНЫЕ блоки!!! Вся логика управления BUSTRI есть, свободных модулей памяти - навалом. Проект занимает 40 % ячеек и 60% - памяти. Что делать?
×
×
  • Создать...