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

ViKo

Модератор
  • Постов

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

Весь контент ViKo


  1. А я - наоборот. И когда в реестр лезут править то, что можно в меню найти - за это тоже дал бы мышом по башке.
  2. corner case - неловкое положение, затруднение. Надо по контексту смотреть. Верификация - когда я что-то записал в память, потом прочитал, сравнил и убедился, что записанное верно. "Хитрый" тест - когда я в память записал нечто специальное, "бегающую единицу", например, потом прочитал, сравнил, и убедился, что память работает. Примерно так понимаю я, на истину не претендую. для des00 Кто-то обещал описать свою "битву" с Aprox в своем блоге, во всех подробностях, по-шагам...
  3. Очень даже правильно. Можно, конечно, и через ... файл, но лучше так: (* chip_pin = "55" *) input CLKIN, (* chip_pin = "70,69,68,67,65,64,63,62,60,59,42,43,44,46,47,48,49,51" *) output [0:17] MA, (* chip_pin = "72" *) output MS_n, (* chip_pin = "89" *) output MWR_n, (* chip_pin = "90" *) output MOE_n, (* chip_pin = "91" *) output MUB_n, (* chip_pin = "92" *) output MLB_n, (* chip_pin = "102,101,100,99,98,97,96,95,87,86,83,82,81,80,79,78" *) inout [0:15] MD, Скобки круглые надо ставить, а не слэши.
  4. На сайте Microchip, например, AN958. Знаю, что были и другие, но по-быстрому не нашел.
  5. Я так и делаю :) И пока на SmartFusion переходить не собираюсь. Но внимание обратил.
  6. Возможно, помогло бы приведение типов (casting), но в Quartus это не поддерживается.
  7. По совету des00 "поразвлекался" с файлом и настройками для SM. module TestEnum (input CLK, input IN, output bit[2:0] OUT, output bit TEST); parameter IDLE_b = 0, RECEIVE_b = 1, PARITY_b = 2; enum bit[2:0] { IDLE = 3'h1 << IDLE_b, RECEIVE = 3'h1 << RECEIVE_b, PARITY = 3'h1 << PARITY_b } state; always @(posedge CLK) begin case (state) IDLE: if (IN) state <= IDLE; else state <= RECEIVE; RECEIVE: state <= PARITY; PARITY: state <= IDLE; default: state <= IDLE; endcase end assign OUT = state; // assign TEST = state[IDLE_b]; assign TEST = state; endmodule Получил сообщение, что в последней строке урезается state, выход TEST берется с state[0]. SM имеется. Quartus 9.0. Если предпоследнюю строку раскомментировать, и закомментировать последнюю, то варнинг не пишется, SM не создается, а схема, вроде, одинаковая. Похоже, Quartus не хочет манипулировать отдельными битами SM. Что 9.0, что 9.1.
  8. Пока обнаружил существенную нехватку запятых :) Если бы файл можно было редактировать, было бы проще указать на недостатки. Наверное, testbench - это не совсем верификация. Верификация - удостовериться в том, что там что-то правильно. А тест может быть более "хитрым". И это - имплемент... так сразу и не поймешь... 1. implement ['ImplImqnt] (Mueller En-Ru) 1. n. 1. n. орудие; инструмент, прибор; обыкн. pl. принадлежности, утварь; инвентарь syn.: instrument, tool, utensil 2. v. 1) выполнять, осуществлять; обеспечивать выполнение; to implement a decision - проводить постановление в жизнь 2) снабжать инструментами syn.: further Еще добавлю: exhaust - истощать (так точнее, чем "упрощать")
  9. Так может, именно в этом и заключается "баг" у barabek, когда в Q9.0 заданы установки кодировать One-Hot, а в Q9.1 нет? Нет бита, вот и обрабатывать нечего (и выдавать в подобных упоминаемых выше случаях)? А описывать состояния - parameter... (еще есть `define, но не рекомендуется)
  10. Я имел в виду не потребление "аналогичное", а принципы уменьшения потребления - поработал, и спать. На маленьком PIC-е исследовал возможность продлить время работы от батарейки: компаратор включен - жрет ток, сторожевой таймер включен - тоже ..., подтягивающие резисторы - ... тоже лучше внешние поставить, да побольше сопротивлением, утечки входов - ... В-общем, зависит от многих факторов.
  11. Так я что, я не против :) Я и сам присматриваюсь к ним. У STM32 тоже есть, только перемычки BOOT переставить... И не стираемый, наверное. 128-битовый? И за счет этого могут работать на частоте до 120 MHz? Это хорошо. Но, наверное, если не скакать по коду.
  12. для des00 Ваш код Quartus скушал (и без assign TEST, и с ним), однако State Machine Viewer говорит, что нет SM.
  13. Когда MSP430 продвигался в массы, малое потребление указывалось как главное его достоинство. Типа "спит, проснулся, быстро отработал свое, и снова спать". На PIC тоже можно организовать подобное. На любом современном микроконтроллере - аналогично. Потребление зависит от напряжения питания, рабочей частоты, используемой периферии, алгоритма работы...
  14. Продолжим? Создал код: module TestEnum (input wire CLK, output bit[2:0] OUT, output bit TEST); parameter IDLE_b = 0, RECEIVE_b = 1, PARITY_b = 2; enum bit[2:0] { IDLE = 3'h1<<IDLE_b, RECEIVE = 3'h1<<RECEIVE_b, PARITY = 3'h1<<PARITY_b } state, next; always @(posedge CLK) begin case(state) 01: state = RECEIVE; 02: state = PARITY; 03: state = IDLE; default: state = IDLE; endcase end assign OUT = state; // assign TEST = state[1]; endmodule В таком виде компилируется без видимых осложнений. Как только убираю комментарий в предпоследней строке, Quartus 9.0 (no SP) изобретает "страшную" RTL-схему, выходы садит на 0, ЛЭ не использует совсем, и говорит, что State Machine нет.
  15. Меня привлекает наличие процессора Cortex-M3 и flash-памяти для кода. До этого встроенные процессоры типа NIOS требовали или внешней памяти (а значит, ноги ПЛИС отнимали, не говоря про остальное) или внутренней (которую жалко тратить на ПЗУ). А АЦП можно (и нужно) внешние присобачить. В-общем, интерес испытываю.
  16. Кажется, я был не прав с самого начала :) Вернее, с поста #5 Ухожу листать стандарт и насиловать Quartus.
  17. IEEE Std 1800-2009 SystemVerilog (на ftp имеется, циферками обозван, точнее не помню), раздел 6.19. Обращение к переменным перечисляемого типа в разделе 6.19.4, как раз перед методами. Не к элементу перечисления, я неправильно выразился, извиняюсь :) Это не массив, а список значений переменных state и nextstate. А к конкретному биту - как-то так: status[2][0], наверное... Исправляюсь - это вектор, Вы правы. Принимающий значения IDLE, RECEIVE, PARITY, каждое из которых 3-битовое.
  18. Творческие люди работают в NXP - и GPIO на отдельную шину посадили, и с загрузчиком "извратились" :) Наверное, и еще найдется особенностей. Я работаю с STM32, так как-то более "классически" все сделано. Но в будущем подумываю переметнуться на NXP.
  19. Не к биту, а к элементу перечисления номер [2], каждый из которых - 3-битовый bit[2:0].
  20. Т.е., загрузчик по данной ножке определяет, что ему делать - работать самому или перейти на пользовательскую программу?
  21. Цитирую мануал: Т.е. загрузчик - это если указанную ножку держать в нуле при сбросе. Без этого - обычный старт - startup, main...
  22. Да каком-таком "софте"? :) Несколько десятков строк C. Я программировал такие, я знаю :) Тоже выбирал, то ли компаратор тупой поставить, то ли более интеллектуальное устройство применить. Остановился на втором. Там и сторожевой таймер имеется. P.S. А в компараторах ничего отвалиться не может?
  23. По симптомам - две ноги (соседних обычно) сцепились друг с другом при пайке.
  24. Т.е. никогда! Никогда не будет в одной ПЛИС быстрой логики и быстрых АЦП. Несовместимые вещи, я думаю. Так же, впрочем, как и точных АЦП или ЦАП не будет ни в ПЛИС, ни в микроконтроллере.
  25. Проще уж на PIC-е 6-ногом замутить. Рекомендую. Там и компараторы бывают, и АЦП. Полный контроль за источниками питания.
×
×
  • Создать...