Jump to content

    

vetal

Модераторы
  • Posts

    2,067
  • Joined

Everything posted by vetal


  1. По моему - это лень :) Ничего сложного там нет. Контроллер флэш памяти - обычное периферийное устройство, причем простейшее. По мере наличия времени изучайте основы построения SOC - все уляжется и систематизируется в голове. На той же ХС1 вполне реально поднять небольшой Application Specific процессор и избавиться от лишней головной боли. В общем случае это означает, что на вход вы можете подавать 5в ttl уровни, а 5в кмоп уровни требуют либо делителя либо ограничителя напряжения. По выходу это означает, что вы модете сигнал заводить напрямую на 5В TTL логику, а на 5В КМОП либо через внешний подтягивающий резистор(выход open-drain), если это позволяет выбранная микросхема, либо через преобразователь уровня. Все эти вопросы д.б. описаны в документации на ИМС. Можете использовать документацию с сайта Altera. Для Flex10KA при питании 3,3В, входном напряжении 5,3В входной док д.б в пределах 10мкА.
  2. самое маленькое, что есть. Поставляют любую частоту. http://www.phonon.msk.ru/Index.files/Page822.htm
  3. С 5В надо поосторожнее обращаться (5-3,3В)/150Ом=11,5мА + фронты.
  4. Возможно, что при запуске Active-HDL меняются настройки окружения. Проверьте лицензию Quartus после запуска из Active-HDL.
  5. Для периодических сигналов читайте по принципам работы стробоскопических осциллографов
  6. Можно поставить на верхнем уровне доп синхронизатор + фильтр помех. Сгенерированные файлы лучше не редактировать.
  7. Visual C++, gcc и т.д. - в полном объеме. Queatasim, Active-HDL, Riviera, Vista,SystemVision,Saber Designer и многие другие - в объеме описанном в их документации. А в общем systemc - это всего навсего библиотека(набор классов, шаблонов, типов, элементов синхронизации...) для компилятора, возможности которой определяются её пользователем.
  8. Нет: X1, X2, X3. Разъемы буквой X у нас на схеме не обозначаются(XS,XP...).
  9. Обозначать и маркировать либо цифрой, либо как розъемы X1,X2 ... у нас и так и так проходит
  10. Надо просто было позвать администратора. У нас на работе уже лет 5 как флоппики даже не ставят в системный блок :)
  11. NTFS. Хотя-бы потому что нет ограничений на размер файлов и путей к ним(уровень вложенных папок).
  12. Он для того и создавался - чтобы удовлетворить по максимуму потребности. Переваривать ТЗ в таком виде сложновато будет для сложной системы. Использовать получится когда в голове будет полная картина - для перепроверки. Для программиста кубическая интерполяция - просто одна строчка в коде, а на уровне RTL - уже 4х ступенчатый конвейер будет выходить. И хорошо если обратных связей мало, да шаг фиксированный.
  13. SC_MODULE(DFF) { sc_in<sc_logic> CLK,CLR,CE,D; sc_inout<sc_logic> Q; void Register(); SC_CTOR(DFF) { SC_METHOD(Register) sensitive << CLK << CLR; } }; void DFF::Register() { if(sc_logic(CLR) == '0') { #ifdef DEBUG printf("CLK rising edge for DFF\n"); #endif if(sc_logic(CE) == '1') { #ifdef DEBUG printf("CE active\n"); #endif Q = D; } else { #ifdef DEBUG printf("CE inactive\n"); #endif } } else { #ifdef DEBUG printf("CLR active - reseting\n"); #endif Q = sc_logic('0'); } } Писать на таком уровне смысла нет - проще сразу на hdl будет. Можно попробовать чуть выше - на уровне транзакций, но без понимания общей концепции хорошего мало получится. На уровне разработчика RTL лучше всего воспринимается DataPath с описанием характеристик функциональных узлов, подробнейшее описание интерфейсов и пр.
  14. Как вариант - в начале теста заполнить весь блок 0, а потом перейти к основному тесту. 'X' для OTP плисок можно рассматривать как любую случайную величину, либо как неопределенное состояние(для ram необходимо отдельно узнавать, для триггеров - однозначное значение только после инициализации). В этом случае лучше заложить в ваш проект автоматическую инициализацию блока памяти по сбросу в значение 0. PS: поведение правильного исходного кода не должно отличаться от поведения синтезированной/разведенной схемы. отличие д.б. только в задержках.
  15. Параллельного интерфейса у нее нет. Только оследовательный(PS)!
  16. Базовые элементы FPGA - это LUT(который конфигурируется в xor/nor/nand/and/or...) и DFF . Их параметры приводятся в Datasheet. Классы быстроты согласно системе СИ выражаются в герцах. Это опорный параметр для оценки и выбора реализации. В лоб на FPGA не напрыгнешь. Надо принимать правила игры или есть кактусы.
  17. 1. Реализуйте нужную задачу для одной кнопки. 2. Размножте реализацию на нужное количество книпок. 3. Вынесите общие элементы за скобку.
  18. Это вылезает в project navigator после компиляции :) burst adapter если мне память не изменяет.
  19. Он ее и решает в соответствии с заданными условиями. Следует иметь ввиду, что если к периферии обращается несколько мастеров, то все burst транзакции будут разбиты по минимальному burst count (32+32+1=1,128+256+128=128).
  20. 1. см п1. и п2. http://quartushelp.altera.com/9.1/mergedPr..._conn_comps.htm (вместо точек соединений появится количество непрерываемых транзакций от мастера к периферии) 2. Использовать сигнал arbiter lock (дает шину периферийному устройству в исключительное пользование). Я на эту тему где-то тут уже писал. В большинстве случаев стандартный альтеровский контроллер обеспечивает скорость записи по схеме : несколько тактов на доступ к памяти + 1 такт на 1 транзакцию к памяти.
  21. Попробуйде установить в настройках арбитража нужный burst count. В противном случае транзакция может быть прервана. Я для "критичной" периферии вместо burst использую захват(вывод на тфт, ввод данных с ацп).
  22. Проверяйте также приемную часть задачи. Когда я наткнулся на "артефакты" проблема была именно в программе на ПК : ПО на C# не успевало переварить трафик(сделан прокси на c + winsock2), операционная система может "приостановить" обмен на неопределенный срок (решается буферизацией на передающей стороне). Передавать информацию необходимо блоками данных оптимального размера(как в udp). Тут МК не поможет, т.к. в ПЛИС эту задачу торе решает МК(как правило)
  23. В наше время - это не показатель. Подобный проект поднимается из готовых примеров за неделю при отсутствии опыта(с учетом специфики работы в нашей стране :) ). Больше всего времени уйдет на компиляцию проекта ПЛИС. Если требуется гарантия доставки данных необходимо предусмотреть буфер на >0.5 секунды (экспериментально подобрано для windows)
  24. В конвейере это делается за 1 такт. Для разрешения 800*600 потребуется ~480000 тыс. точек * 2(двойная буферизация для устранения мерцания) ~=1-3 Мегабайта ОЗУ(в зависимости от требуемой разрядности цвета) Решение : любая FPGA(с небольшим кол-вом встроенного озу) подходящая по цене + загрузочное ПЗУ(если требуется) + внешнее озу подходящее по цене и быстродействию(fast sram, sdram)
  25. Извините за задержку. 70-80 МГц. Реально на сколько я помню ~60-80 МГц было, но уже не помню по какой причине. Делал для EPM7256SRI, APA300 и EPF8282. Частота задается количеством последовательно включенных LCELL или разделительных буферов(задает кол-во макроячеек или LUT), определяется экспериментально по осциллографу/частотомеру и контролируется при производстве. 383.pdf MergePDFs.pdf