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

ViKo

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

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

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


  1. Расширить таблицу. К таблице, описанной в начале темы, добавить выбираемые сигналы, и передавать их на выход в зависимости от сигналов N.
  2. Вы пишете, что вероятность таких событий малая. Найдите закономерности, когда появляется несколько единиц. Пробуйте их устранить. Вдруг окажется, что этот путь проще. Вот именно! :) Как только обнаружили 1, остальные биты сбросить в 0. P.S. С другой стороны, не исключено, что Quartus сам соптимизирует вашу разработку с шифратором-мультиплексором...
  3. Т.е., сначала сделать шифратор, а потом из него - мультиплексор. Можно сразу каждый сигнал N[31..0] объединить по И со своим входом данных, а дальше объединить полученные сигналы по ИЛИ. Только нужно избавиться от той оставшейся небольшой доли вероятности, когда не один сигнал N может быть ненулевой. Зато быстро!
  4. Так мне уже не понятно, почему des00 так не сделал?
  5. Код assign out = |in естественно, и в SV работает. И почему бы его не использовать внутри модуля для дешифрации адреса? Или, например, так: assign sel = &addr;
  6. Это вы кому говорите? zash? А про мой код что скажете? in, как вы говорите, or-ится.. Или он просто повторяет ваш SUB_SECOND? А как бы вы применяли ваш модуль с внутренним OR для дешифрации устройств.
  7. Слава богу, C и C++ сосуществуют параллельно. Не думаю, например, что кому-то сильно нужен C++ для PIC. А вот Verilog свои годы доживает. Дальше будет только SystemVerilog. Так что аналогия с C не совсем корректна. Работать в SV, компилятор-то понимает его, верно? - самый правильный выход.
  8. Задает 32-разрядную переменную, а использует всего 33 её состояния. Кстати, мне нравится. Куда уж нагляднее.
  9. Первое, что пришло в голову, вроде, работает. И без "хака" :-) Q9.0 module Test_wor (input logic [6:0] in, output logic out); wor subnet; generate genvar i; for (i = 0; i <= 6; i++) begin : wor_gen assign subnet = in[i]; end : wor_gen endgenerate assign out = subnet; endmodule
  10. А еще в Cortex-M0 нет команд деления.
  11. В таком случае - лучше уж транзистор, в том же SOT23 :) Еще и нога PIC'а останется. К транзистору еще пару резисторов в базе неплохо иметь... смотря как включать...
  12. А на приведенные выше картинку и ссылку "Нечто лучше КРЕНки" смотрели? Вроде, то, что вам нужно.
  13. PIC10F сам по себе - уже чудо! SOT23-6. Не сразу и заметишь. Так что в данном случае минималистический подход вполне "катит".
  14. А до него еще фильтр сетевой, как положено. А после него - линейный стабилизатор. И с питанием нет проблем. Правда, там еще молотит RS-232 преобразователь уровней и микроконтроллер. Этими тоже придется заняться позже. Сильно в плату не вглядывался. Нижний слой - земля. Хорошо. А питание разведено худыми проводничками? Плохо.
  15. "Здесь" я говорил про все случаи - для МОП транзисторов - не нужно, и для биполярных - нужно. Извините, если слегка запутал. В случае PIC - ничего не нужно. Соединяете две ноги, и нагрузку подключаете между этими ногами и питанием. Когда обе ноги будут в 0, с питания через вашу нагрузку, через ноги PIC на землю потечет ток. Только включайте обе ноги одновременно, чтобы не было, что одна нога в 1, а другая в 0. Можно еще включать их, как входы, когда нагрузка должна быть выключена. Про UART я что-то не понял...
  16. Не поняли. МОП транзисторам этого не нужно. А в PIC, как и в подавляющем большинстве современных микросхем, используется именно МОП технология.
  17. МОП транзисторы (как и полевые) можно соединять параллельно. У них при нагревании сопротивление увеличивается. И тот, через который течет больший ток, начинает больше нагреваться, сопротивление его увеличивается, и ток уменьшается. Так происходит выравнивание токов. В отличие от биполярных транзисторов (типа МП41 :)), которые при нагревании проводят еще больше, и в результате ток начинает течь преимущественно через один из транзисторов, который вскоре и выгорает.
  18. Внутренняя структура ПЛИС питается одним напряжением, обычно низким. С целью обеспечения высокого быстродействия. Определяется технологией изготовления кристалла. Периферийные порты питаются другим напряжением, чтобы быть совместимыми по уровням со стандартной логикой. Так сейчас и в процессорах делается. Для триггера тактовая частота нужна? Нужна! Вот ее и надо подать. Другой частоты не нужно. И, поскольку триггер там в каждом логическом элементе, каждому и нужно подать тактовую частоту.
  19. В посте №6 то, что говорили вы и Hertz - одно и то же. Две ноги должны были заработать. Если их запрограммировать правильно. Если нагрузка садится на землю, тогда двух ног может не хватить. Хотя в даташите и написано по 25 mA в любом состоянии. А почему пришлось добавить транзистор? Поясните.
  20. Это не проще, а выгоднее, если за каждую программу брать с клиента деньги. А если - сдал, получил свое, и забыл, то интерпретатор предпочтительнее. А потом, и сам интерпретатор можно модернизировать, добавлять и совершенствовать функции. И за новую версию уже брать мзду на законных основаниях.
  21. Мне больше нравится идея MrYuran - скрипты. Есть набор функций на все случаи жизни. Ну, как API в Windows. Они описаны, но как они реализованы - тайна. Из них составляется то, что нужно для конкретной задачи. Этот список и загружается в контроллер.
  22. Я читал похожие ваши сообщения, пока искал по форуму ответ на свой вопрос... :) Этот путь мне понятен. Сам обычно так делаю - включаю, смотрю сигналы, смотрю в код, думаю, меняю код, прошиваю... :) Хотелось бы выяснить, насколько плох или хорош расхваливаемый многими симулятор. Не может же быть, чтобы все оказалось мыльным пузырем? Надеюсь на лучшее.
  23. Keil 4.12. STM32. Симуляция USART.

    В файле ***.ini сделал функцию и кнопку для ее выполнения (имитация панели управления): signal void SendFPC(void) { char Code; Code = 0; S3TIME = 1; while (1) { S3IN = Code++; twatch(1000000); } } define button "FrontPanel", "SendFPC()" В коде main программы сделал цикл: while (1) temporal = USART3->DR; Когда запускаю симулятор и нажимаю кнопку FrontPanel, в окне Watch 1 наблюдаю, что temporal изменяется. Однако не вижу никаких изменений USART3_DR в окне USART3, ни при работе, ни после остановки процессора. И не вызывается прерывание по приему. Что я еще не сделал? Или плюнуть и смотреть в железе?
  24. Перед REF195 дроссель поставьте. Остальная аналоговая схема "хорошо ли питается"? Наверное, дело не в питании самого АЦП.
  25. От REF195 можно запитать сам АЦП (про данный не скажу, не помню, что это такое).
×
×
  • Создать...