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

    

DSIoffe

Свой
  • Публикаций

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

  • Посещение

Репутация

0 Обычный

Информация о DSIoffe

  • Звание
    Дима
  • День рождения 18.03.1960

Контакты

  • Сайт
    http://www.dsioffe.narod.ru
  • ICQ
    313263348

Информация

  • Город
    Санкт-Петербург

Старые поля

  • Vkontakte
    http://vk.com/dsioffe

Посетители профиля

6 877 просмотров профиля
  1. Версия Altium Designer

    Можно нажать кнопочку с кнопочкой, тогда эта панель зафиксируется, а содержимое будет меняться по одиночному клику. А ширину панели можно менять мышью. Там ещё и закладочка с параметрами. Кстати, все параметры начали передаваться в плату не так давно, с 17й, что ли, версии. Всё сразу легко обозреваемо и доступно для редактирования.
  2. Версия Altium Designer

    Ну как же! Тыкаешь мышью во что попало, и сразу видно подробное досье на это.
  3. Версия Altium Designer

    Версии 18+ у меня намного меньше глючат. Например, в них нормально перетаскиваются окна с монитора на монитор. Очень быстрый переход в 3D и обратно. Панель Properties - отличная вещь, давно так надо было. И ещё много разных приятностей в разных местах, сразу и не вспомнить, но впечатление явственное.
  4. Я бы тоже в схеме и плате поставил разъёмы, а для всего остального завожу отдельный лист схемы, который никогда не распечатываю, и там все подобные вещи, без выводов, вплоть до гаек. Устанавливаю им тип Mechanical и рисую в виде прямоугольников, рядом подписываю, что это такое. Но хотелось бы найти более красивый метод.
  5. Не расширением, а разрешением :) Ну, совпало :)
  6. А в чём проблема? Вы вопрос-то задайте :) Подадите правильную тактовую частоту - получите правильную скорость потока данных, запакуете его в ПЛИС и отправите куда следует.
  7. У этого датчика два выхода, вряд ли их сигналы соответствуют хоть какому-то вещательному или компьютерному стандарту. То есть подключить этот датчик напрямую к какому-то стандартному устройству нельзя. Или Вы не об этом?
  8. Если есть вопросы по той замечательной инструкции, то проще всего позвонить в Резонит, расскажут в лучшем виде. Я пробовал, потом забывал и опять пробовал - помогает.
  9. Я бы посоветовал расставить компоненты, конечно же, руками, и руками же развести критичные цепи, а потом передать проект в Specctra и там закончить трассировку. С первого раза не получится, придётся несколько раз править свою ручную работу. Чтобы не углубляться в изучение Specctra, можно использовать готовые файлы стратегии трассировки, например, вот такой, как я прикладываю. Или поискать другой по вкусу. myideal.zip
  10. Я победил иначе: запускал AD через командный файл, в котором сначала было прописано открытие xls, а потом запуск AD. Зато обновления не вредят.
  11. 2018 Вопросы начинающих

    У меня были разные проблемы с окнами, все они ушли, когда перешёл на AD18. Там окна - как часы.
  12. Большое спасибо. Я сделал MyByte переменной, теперь не надо wait for 0, чувствую себя культурным человеком :)
  13. Спасибо, кажется, дошло. Сигнал может принять новое значение или после завершения всех происшествий, вызванных последним событием, или после оператора wait. У меня в месте вызова процедуры было присвоение значения байту, потом запуск процедуры, потом присвоение значения биту, и всё это время у сигнала нет повода завершить присвоения. То есть, реальное присвоение значения отправляемому байту произойдёт только после первого wait. Так? wait for 0 s помогло. А почему нельзя использовать сигналы в тестбенче? Как бы я мог иначе передавать в I2C разные байты через такую процедуру? to Flip-fl0p Спасибо, я тоже с удовольствием использую 'H'. Только ничего не преобразую, а в тексте описания модуля проекта пишу что-то вроде if ipSCL = '0' then SCL <= '0'; else SCL <= '1'; end if; --Если ipSCL = 'H', то SCL <= 1 , где ipSCL - сигнал на выводе ПЛИС, а SCL - сигнал внутри неё, с которым работает начинка проекта.
  14. Здравствуйте все! Я пишу тестбенч для модуля I2C на VHDL. Делаю процедуру для передачи байта, сам байт передаю как параметр в эту процедуру. Старший бит каждого байта формируется неправильно, остальные - правильно. Картинку прикладываю. Вот код. В нём одна строка wait for 1 ns; закомментирована. Если её раскомментировать, то получается то, что мне надо. Можно бы и так оставить, но некрасиво. Подскажите, пожалуйста, какую тонкость VHDL я не понимаю? Заранее признателен. library ieee; use ieee.std_logic_1164.all; entity myI2C_proc_tb is end myI2C_proc_tb; architecture behavioral of myI2C_proc_tb is constant clk_period : time := 44 ns; signal clk: std_logic := '0'; --тактовая частота модуля I2C_proc signal Reset: std_logic := '0'; signal SCL: std_logic := '1'; signal SDA: std_logic := '1'; constant SCL_period: time := 4.35 us; --период SCLK constant tri: time := SCL_period / 3.0; --треть периода SCK, время, за которое ничего не происходит signal MyByte: std_logic_vector(7 downto 0); --Объявления процедур procedure i2c_start (signal mySCL: out std_logic; signal mySDA: out std_logic) is begin mySDA <= '1'; mySCL <= '1'; wait for tri; mySDA <= '0'; wait for tri; mySCL <= '0'; wait for tri; end procedure i2c_start; procedure i2c_stop (signal mySCL: out std_logic; signal mySDA: out std_logic) is begin mySDA <= '0'; mySCL <= '0'; wait for tri; mySCL <= '1'; wait for tri; mySDA <= '1'; wait for tri; end procedure i2c_stop; procedure i2c_writebyte (signal ySCL: out std_logic; signal ySDA: out std_logic; signal ByteValue: in std_logic_vector(7 downto 0)) is variable i: natural; begin --Передача байта: i := 8; -- wait for 1 ns; while i > 0 loop ySDA <= ByteValue(i - 1); wait for tri; ySCL <= '1'; wait for tri; ySCL <= '0'; wait for tri; i := i - 1; end loop; --Ожидание подтверждения: ySDA <= 'Z'; wait for tri; ySCL <= '1'; wait for tri; ySCL <= '0'; wait for tri; end procedure i2c_writebyte; begin --Тактовая частота: clk <= not clk after (clk_period / 2.0 ); --Собственно моделирование model_l: process begin --Сброс схемы: wait for clk_period * 2; Reset <= '0'; --Посылка: i2c_start(SCL, SDA); MyByte(7 downto 1) <= B"0100001"; MyByte(0) <= '0'; i2c_writebyte(ySCL => SCL, ySDA => SDA, ByteValue => MyByte); --адресный байт MyByte <= X"AA"; i2c_writebyte(SCL, SDA, MyByte); MyByte <= X"AA"; i2c_writebyte(SCL, SDA, MyByte); MyByte <= X"55"; i2c_writebyte(SCL, SDA, MyByte); i2c_stop(SCL, SDA); wait; end process model_l; end behavioral;
  15. AD18

    Да ладно, всё равно проще и быстрее экспортировать наборы слоёв в файл *.layerset и поправить его руками, он текстовый :)