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

boldive

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

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

  • Посещение

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


  1. еще вопрос. Есть такая строка:

    assign G31 = ~QA[2] & ~QA[1] & QA[0] & QB[4] & QB[3] & QB[2] & QB[0];

    где

    wire [3:0] QA;

    wire [7:0] QB;

     

    Т.е. в зависимости от "цифер" на двух шинах выдается 1 на выход.

     

    Ну а если разрядность шин будет например 16бит. Замучаешься в таком виде код писать.

     

    Можно это как-то покрасивее и покороче записать?

     

    например:

    assign G34 = QA['b0001] & QB['b111111];

     

    Правда такая строчка не проходит по синтаксису. Ругается компилятор. Но суть примерно такая.

  2. Библиотека одна, папка одна, ничего никуда не перемещал.

    Как будто изменения пишет в другой файл.

     

    Скорее всего что так и есть. Папка одна. Загляните еще раз в эту папку и изучите содержимое. Возможно что там есть еще одна папка с таким же именем. А в ней еще одна, и еще.. Это спасибо разработчикам AD. У меня уже такое было. Выгружаю из проекта свою библиотеку и потом подсоединяю ее обратно. Тут-же AD создает в родной папке еще одну папку с таким-же именем и теперь все изменения пишутся туда. Я после этого от интегрированных библиотек отказался. Вот моя библиотека .schlib а вот футпринты .pcblib. Понимаю что это не совсем правильно, зато путаницы нет.

  3. initial begin : wait_a1_logic
      forever begin
        wait (A0 == 1);
        #1.39ms AIN = 0;
        #0.6us  AIN =1;
      end
    end

     

    Этот код не мониторит сигнал. Если в течении первых 1.39ms A0 изменится то вся последующая цепочка все равно сработает. Т.е. wait (A0 == 1); срабатывает как тригер запускающий последующие команды. А тут надо именно мониторить A0 когда он в "1" и если он продолжает там быть то тогда его и менять в пульс.

  4. Что-то не получается написать условие в testbench.

     

    Нужно мониторить сигнал A0. Как только A0 переходит в 1 ждать 1.39ms, если за это время A0 продолжает быть в единице то перевести сигнал AIN в 0 на 0.6us (сформировать такой пульс). Затем вернуть AIN обратно в 1.

    Вот такой код просто подвешивает Modelsim.

     

    always begin

    if (A0 == 1) begin

    #1390000 AIN = 0;

    #600 AIN =1;

    end

     

    end

  5. Постоянно присутствуют при компиляции ошибки и предупреждения.

     

    Ну так картинки сообщений в студию на обозрение.

    Самих интегрированных библиотек к компекте с АД идет достаточно много. Откройте любую из них и посмотрите.

     

    киньте мне на мыло одну интегрированную библиотеку с одним сопротивлением, диодом, транзистором, любой микросхемой.

     

    C:\Program Files\Altium Designer Summer 09\Library\Miscellaneous Devices.IntLib

  6. За что вы его так? Человек еще толком и спрашивать не научился а его уже пешком на Марс отсылают.

     

    Смотрите тут: http://www.rose-hulman.edu/~doering/PLD_Oa...lSim_How-To.pdfПочти пошагово что и куда жать.

    Еще тут: http://www.asic-world.com/vhdl/index.html

     

    Саму программу за вас действительно никто не напишет, а вот разобраться с интерфейсом можно пройдясь вот по этому tutorial

    5_microstep_tutorial.zip

     

    Ответ для менее ленивых: найти в сети или в магазине книгу В.Зотова и прочесть.

     

    Вы это имели ввиду? Владимир Зотов - В гостях у сказки

  7. Что бы правильно дать указания по разработке такой "железяки" пишутся целые книги!

    Например, лишь по одному пунктику из вашего перечисленного: http://www.kniga.ru/books/252580

    616 страниц.

     

    Спасибо за ссылку. Уже листаю эту книжку. Больше похоже на академический курс в университете.

    Согласно ей (стр.14) 41% проектируемых плат работает на частотах до 50Mhz. Наверняка для таких случаев дело можно упростить.

     

    Можно рассмотреть работу драйвера шагового двигателя или сервомотора. Порядка 100 эелементов на плате, аналоговая, цифровая и силовая части. Все есть.

    Можно импульсного блока питания. Тот-же уровень элементов. Наверняка еще что-то есть не столь навороченное но сочетающее в себе все эти части.

     

    насчет родов--- троих уже выплюнул, на подходе четвертая, в проекте 5.

     

    А можно взглянуть на новорожденных?

  8. Принимаю предложения на темы, которые хотели бы увидеть в журнале. Действует в течении недели двух.

    Может разрожусь :santa2: к новому году

     

    Возможно что пропустил. Так кто родился? Если еще никто, то есть-ли еще шанс получить

    Очень хочется почитать про разработку какой-нить железяки имеющей аналоговую, цифровую и силовую части. Так сказать на примере такого комбинированного устройста подробно расписать процесс проектирования схемы и разводки платы и по ходу дела рассказывать о типичных ошибках и правилах хорошего тона при создании подобных устройств.
  9. После перерыва вернулся к связке ISE 11.4 и Modelsim XE III/Starter 6.4b.

     

    Right-click on My_project.v in the Sources in Project window and choose New Source. Select Verilog Test Fixture and give your file a name such as "test_My_project". Click Next, and you'll be prompted to associate the file with a module; choose My_project, click Next, then click Finish. The file will be added to your project.

     

    Что я и сделал. В итоге получил готовую шапку файла для testbench в формате файла verilog. Все остальные вспомогательные файлы создались автоматически. Добавил в этот файл генератор сигнала CLK и STP

     

    always begin

    #100 CLK = ~CLK;

    end

     

    always begin

    STP = ~STP;

    // 10us pulse

    #10000 STP = ~STP;

    // Delay between STEP Pulses. Speed.

    #590000;

    end

     

    В ISE выбрал Simulation -> Simulate Behavioral Model -> Rerun (по правому клику)

     

    Загрузился у меня Modelsim со всеми wave описанными по умолчанию как inputa and outputs. Все внутренние переменные файла проекта пока остались за бортом.

    По умолчанию run time идет 1000ns. Если в файле .fdo я поменяю время на скажем 1ms то оно при нажатии Rerun все равно переписывается в 1000ns

     

    Как с этим бороться?

     

    Как только я в testbench прописываю что-то вроде такого:

     

    always begin

    if (A0 != A1) begin

    #1390000 AIN = 0;

    #400 AIN =1;

    end

    end

     

    то Modelsim ни на что не ругается, но в процессе начальной загрузки просто подвисает со 100% загрузкой CPU.

     

    Это как понимать?

     

    В Modelsim открываю файл testbench и начинаю менять временные задержки. При вводе команды run 12ms мои изменения не проходят. Надо закрывать Modelsim и опять закружать его через Rerun в ISE.

     

    Это как-то исправляется?

     

    Извиняюсь за возможно глупые вопросы, но ответа пока не нашел. Подскажите кто знает.

    Спасибо.

  10. В домашних условиях использовали PLASTIK 70

     

    "Наносится на очищенные и обезжиренные поверхности (например, при помощи препарата DEGREASER 65). Температура применения препарата от -70 до +100 °С."

     

    По нему нельзя потом паять. Это для финального покрытия лаком если требуется.

     

     

    Пообщался с техподдержкой Taiyo America. Для североамериканского рынка у них для "гаражных" технологий есть PSR-4000 BN Series Solder Mask. Минимальная партия - 1 банка на 1кг. Цена в районе 50$. Перед применением надо разбавить растворителем PMA или PM. Что это за химия еще не знаю но узнаем. Наносится пульверизатором. Сушится в обычной конвенкционной печи 45-60мин при 175°F. Потом Пленку с отпечатком на верх и под ультрафиолет для получения дозы 250-500 mj. Дальше проявление (состав уточню) и опять в печку на 45-60мин на 150°C. Продукт готов. Пока ничего сложного не видно. На коленке в гараже должно сработать.

     

    1 mill толщины этой маски держит 1200V. Хранится в холоде около года.

     

    В России их никто не представляет, но в Европе представителей хватает. Наверняка у них можно будет купить.

  11. Для начала смените флюс. Их не бывает несмываемых :-) Такого быть не должно, если хорошо моете плату.

    У меня зазоры 0.254, полигоны залитые, проводники между СМДшками, и все нормально.

     

    Даже с моим флюсом нет проблемм с низковольтными цепями. Проблемма с силовыми частями. Например управление MOSFET. Токи там импульсные, скачки напряжения с высокой амплитудой. Вот эта зараза мне картину портит. На зазорах 0.25-0.38мм под SMD как ни мой после пайки что-то остается. И если там дорожка то начинается "импульсный"шум в цепи управления. Уже сколько раз плата дымила от этого. С заводскими платами нет проблемм, там лак от этого предохраняет. Вот и хочу это дело подправить. А то не сколько отладкой занимаюсь сколько отмыванием и оттиранием платы. Простой пример. 2 площадки под 1206 конденсатор и дорожка между площадками. Меряю сопротивление между площадкой и дорожкой (зазор между ними 0.38мм). Получаю что-то около 10M. Насухую быстренько подпаиваю сверху керамический конденсатор размера 1206 и меряю опять. Сопротивление уже 3M. Флюса нет вообще, все сухо (но наверняка с жала паяльника что-то да и оседает). А потом начинаю разбираться, какого хрена при всплесках напряжения до 100В у меня полная хрень творится с управлением.

     

    Откопал по гуглу компанию: Taiyo America. Они что-то похожее выпускают. PSR-4000 QD наверно то что надо. Из-за разницы во времени еще рановато им звонить, позже позвоню и узнаю что с их продуктом можно делать и как.

  12. Вот потому что завод не устраивает по экономическим соображениям и спрашиваю о возможности покрытия лаком в домашних условиях.

     

    Так как покрыть лаком плату оставив место под контактные площадки для пайки?

    Какой лак лучше использовать чтобы он выдерживал паяльник и фен (300°С)?

     

    Вас интересует, наверное, Liquid Photoimageable Solder Mask (LPISM). В Штатах купить - не проблемма. Стартовый набор - как для шелкографии. На ebay есть уже готовые рамки для silkscreen с металлической сеткой. Пленочная маска в домашних условиях более экологична, но наносить сложнее - нужен хороший ламинатор с горячими валами, и то, вероятность появления мельчайших воздушных пузырьков достаточно велика.

    В любом случае, получится не просто а нормальное, именно "заводское" покрытие.

     

    Удачи!

     

    Спасибо!

    Эта штука покрывает плату целиком оставляя контактные площадки и защищая плату от влаги и в дальнейшем применяемого флюса?

    Если это так то тогда это наверно то что надо. На Ebay ничего связанного с LPISM не нашел.

  13. Я после пайки все мою спиртом. Боюсь такой номер не пройдет. Да и хочется получить эстетически "красивое" изделие.

     

    Можно с баллончика нанести фоторезист, проявить все оставив фоторезист на контактных площадках. А вот что и как дальше?

     

    Тут ниже есть темя про "зеленку", но там больше советов про отправку платы на производство. Мне изготовление одного прототипа в таком случае выльется не в одну парочку уже готовых устройств. Экономически нецелесообразно. Да и по времени неэффективно.

     

    А вот покрыть каким-нибудь полиуретановым лаком то что надо. Вопрос как?

  14. У меня текстолит уже идет с нанесенным фоторезистом. Я в хозтоварах купил обычную "энергосберегающую" лампочку дневного света (Daylight). Именно дневного, она больше всего УФ выдает. 8-12мин с расстояния 15-20см выдают прекрасный результат. Как-то перепутал лампочки и воткнул обычную люминисцентную вроде coolwhite. Тоже сработало.

  15. Уже не раз сталкивался с паразитными сопротивлениями и емкостями при прохождении дорожки под SMD элементами. Плата делается в домашних условиях. Иногда даже приходится компонент слегка проподнимать над проходящей под ним дорожкой.

     

    Возможно ли дома покрыть плату лаком (если можно то каким?) и оставить при этом место под контактные площадки для последующей пайки феном (паяльником)?

     

    Если кто-то уже пробовал и получилось, поделитесь пожалуйста технологией.

  16. надо смотреть приоритеты правил и настройки в окне DXP>Pref>PCB Editor>Interactive Routing

    InteractiveRouting.jpg

     

    В приоритетах мое правило стоит под номером 1, основное правило для остальных под приоритетом 2. Других правил на толщину дорожки пока нет.

     

    WidthRule.jpg

     

    В правиле width я уже поменял значения. Там стояло везде по 15mil. Т.е. значения никак не пересекались.

     

    Чтобы посмотреть какое правило действует,

    указатель на дорожку, правый клик Apliabled Unary (Binary) rule.

     

    Показывает правильное правило, но берет min значение из мной написанного правила и max значение из правила для остальных.

     

    Может после написания/изменения правила помимо нажатия кнопок Apply, OK надо еще куда-то сунутся и например откомпилировать либо еще что-то сделать?

  17. Что-то не пойму. Делаю правило на толщину дорожки: min - 20mil, preferred -150mil, max -200mil. Начинаю вести дорожку, тут-же вылазит толщина 20mil. Жму на TAB и вижу что в строке Width with user preferred value стоит 20mil. Для остальных дорожек в правилах на все проставлено 15mil. Т.е. пишет preferred а значение берет/рисует из min. Это глюк такой или где-то еще надо что-то прописать?

    AD Summer 09.

  18. Журнал Домашний ПК 11 2009, там сравнительная характеристика 44 процессоров Intel и AMD.

     

    ISE там в тестах конечно-же нет, но производительность в целом посмотреть можно.

  19. Как создавать классы в PCB редакторе понятно. Как создать net-class или component-class в SCH редакторе тоже вроде понятно. А где нужно/правильно создавать class pads? В PCB или SCH редакторе? Кстати, как это сделать в SCH редакторе я так и не нашел.

  20. mytestbench.do - это скрипт собсно для запуска симуляции.

     

    Если б mytestbench.v - вот это больше похоже на тест бенч :laughing:

     

    А разве код внутри сильно отличается?

     

    Вот схемы и платы для программатора Parallel Cable 3. Там три файла оригинала и два файла со схемой и платой которые я переделал под себя. Программатор без всякий кабелей втыкается в LPT порт. Только в настройках iMPACT надо будет указать что работаете с кабелем Parallel Cable 3.

     

    Ставить 9.х или 11.3? или на 11.1 стоит остаться?

     

    Ставить 11.1 а потом проапдейтить до 11.4

    PRG_Adapter_Xilinx.rar

  21. На сайте Xilinx возьмите Modelsim XE 6.4 (mxe_3_6.4b). В нем уже откомпилированные библиотеки для Xilinx. После установки она ломанется в интернет за лицензией. Заполните форму и получите лицензию. Все бесплатно. После этого у вас в проекте появится возможность Behavioral Simulation. Возможно сам проект придется создать по новому и при создании выбрать симуляцию Modelsim XE. У меня смена симулятора в проекте приводила к полному отсутствию симулятора. Доже родной потом обратно на место не вставал, приходилось по новому проект создавать.

     

    Testbench потом прямо в Modelsim и создадите. File -> New -> Source -> Do

    Запускается он из командной строки внизу командой "do mytestbench.do"

     

    О том что и как писать в файле testbench хорошо расписано тут.

     

    Я кристаллы прошиваю самодельным программатором с LPT порта (2шт 74HC125 и с десяток резисторов и конденсаторов). Если нужно, могу сбросить схему и рисунок печатной платы сразу под ЛУТ.

     

    Для того чтобы прошить нужно вначале откомпилировать проект без ошибок в Implement Design (правый клик и выбрать Run). Потом уже в Manage Configuration Project (iMPACT) у вас запустится iMPACT. Создадите в нем новый проект и дальше по шагам, как программа просит, доберетесь до истины. Там же и подсунете свой USB шнурок.

  22. Я бы настоятельно рекомендовал Solidworks. Для среднего уровня задач это практически стандарт дефакто. Выше по уровню стоят только Pro/ENGINEER и Catya. Практически вся автомобильная прмышленность северной америки сидит на Кате (это наверно топ-уровень), производители оборудования для производства автомобилей сидят на Solidworks. Pro/ENGINEER очень популярен у производителей потребительских товаров. AutoCAD сегодня больше для архитектуры и строительства.

     

    У меня есть DVD с большой толпой видео-уроков по Solidworks (включая версию 2008, правда на английском, но убъете двух зайцев: и язык подтянете и с ангийский интерфейском будете на ТЫ). Могу на Rapidshare выложить для желающих.

  23. Позволю себе добавить, что лучше всЁ таки по центру. При разводке платы и необходимости поменять выводы местами переворот компонента более безболезненный, когда точка привязки в центре (особенно с двуногими).

     

    Спасибо!

     

    На любителя

     

    Владимир, а Вы куда предпочитаете reference ставить?

     

    У меня микросхема вставляется в панельку. Нарисовать footprint для панельки не проблемма, а как сказать редактору что там еще и микросхема торчать будет, соответственно при проверке высоты будет учитываться и высота микросхемы. В самой схеме я для микросхемы задаю footprint панельки.

     

    Это можно как-то развести, микросхему отдельно а панельку отдельно? Можно конечно указать для панельки высоту вместе с микросхемой, но тогда сама панелька как элемент перестает быть уникальной.

     

    И еще, а примерно с какой точностью автоматы расставляют компоненты на плате для последующей пайки? нужно-ли для этого на footprint предусматривать какие-то допуски? Например есть SOIC8. У него расстояние меджу рядами контактов 115mil. У самой микросхемы по минимальному допуску 196mil. То есть контактные площадки уходят вглубь на 27mil. При этом ничего кроме припоя на этом участке нет. Вот и хочется его удалить/сократить. Но тогда нужно-ли предусматримать еще и допуск на автомат установки?

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