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

SergeyF

Свой
  • Постов

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

  • Посещение

Сообщения, опубликованные SergeyF


  1. Не надо убивать Timing Closure, точнее, лучше довести Chip Editor.

    Chip Editor неудобен:

    1. ненаглядностью, в первую очередь, из-за масштаба - пока с их подробной прорисовкой доприближаешься до уровня ячеек... Нужен отдельный режим без подробного отображения межсоединений.

    2. тем, что отсутствует удобная в некоторых случаях возможность просматривать задержки по входам/выходам для выбранного элемента. Генерация соединений по нажатию кнопки порождает огромное количество связей, которые потом, кроме как Clear Unselected, не уберешь.

  2. 2DXP:

    Не надо ставить бусину в цепь цифровой земли от АЦП к цифровой части, если они порезаны. Моделирование верно отражает проблему.

     

    Как-то на плате с похожим вариантом разводки заложили несколько точек соединения земли для экспериментов, а при монтаже чего-то напутали и поставили бусину. Долго мучились, играли с времянками в ПЛИС, пока ее не заметили. Эффект был такой - при переходе от одного кода к другому с изменением большого количества разрядов ПЛИС защелкивала неправильное значение по некоторым битам.

  3. Еще присоветую. Так как ошибка в коде может потереть кусок памяти одинаковым значением, или же микросхема может быть повреждена, троирование здесь может не помочь.

     

    Запишите коэффициент через некоторые интервалы, которые будут заполнены сторожевым значением 0xDADA...DA<val>DA...DA<val>DA..DA<val>DA..DA и после этого наложите и запишите после этого CRC.

  4. Еще такой совет - так как большая часть действий в интерфейсе с несколькими клавишами для большинства пунктов меню в значительной степени совпадает (обновление индикации, переход по меню и т.д.), то для избежания длинных switch можно завести массивы указателей на функции и выбирать по текущему индексу меню

     

    //вывод на индикатор в большинстве случае одинаковый - строка из массива
    void fsmDefault();
    void fsmeSetStart();
    menu_handler code ShowMenu[cMenuItems] = {
        fsmDefault,      fsmeSetStart,
        ...
    }
    
    //на Enter переход вниз в большинстве случаев
    void fceDefault();
    void fceeSetStart();
    menu_handler code CheckEnter[cMenuItems] = {
        fceDefault,      fceeSetStart,
        ...
    }
    
    То есть если нужно просто перейти вниз по нажатию Enter, это делает Default(), а если нужно что-то еще сделать, то
    void fcceSetStart()
    {
        ... //Do something
        fceDefault();
    }
    
    А дальше в программе просто
    //check keys
    switch (key)
    {
    case kbEnter: (CheckEnter[hMenu])(); break;
    case kbUp: ...
    ...}
    //update ind
    (ShowMenu[hMenu])();

  5. У Вас сетевая карта и нет физически сети?, т.е. нет кабеля, подключенного к карте и подключенной хотя бы к другой карте? Тогда мне было бы интересно узнать, что у Вас за материнская плата. Но, почему-то, мне кажется Вы ошиблись.

    Не совсем, при отключенной сети во всех позициях МАС появляются нули, но и это вполне проходит в лицензии. Хотя никто не мешает иметь два файла лицензии - для отсутствия сети и для её наличия :blink: .

    Ужас какой. Специально выдернул кабель и перезапустил комп.

    ipconfig /all выдал:

    состояние устройства: отсоединен кабель

    Физический адрес:00-C0-26-A8-...

    Это cетевуха Compex на Realtek на маме KT266

    Дома ноут PIII на Sis и Athlon на nForce2 со встроенными адаптерами

    Работал и никогда не задумывался

×
×
  • Создать...