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

sazh

Свой
  • Постов

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

  • Посещение

  • Победитель дней

    2

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


  1. 560х560х360 пиксельная частота 112.896 МНz, x10 = 1.12896Gbps, 564 на линию, данные сопровождаются клоком по обоим фронтам, 282.24 MHz. На выходе корки clkbyteout 282.24делить на 4, 70.56 MHz x16 = 1.12896 А дальше корка должна быть, которая из этого снова 10 битовый пиксель сделает. И работать она будет на частоте 140МНz. Ваш говин поддержиаает 1:16 mode?
  2. я на констрейны грешил. входной клок 282.24 MHz. После десериализации получаем 70 560 000 байт в секунду на каждую линию.
  3. И где Вы такие частоты взяли. Что такое 600. pixel clock? Total data rate? mipi bit clock? Должно быть четкое понятие что и на какой частоте гонит камера. И потянет ли это китайская плис. Например full hd: 1920x1080p@60Hz, 2-line total horizontal sample = 2200, total vertical line = 1125; pixel clock frequency = 2200x1125x60 = 148.5 MHz total data rate = 148.5MHz * 8bit = 1.188 Gbps line rate (data rate per line) 1.188 Gbps/2-line = 594 Mbps MIPI bit clock frequency = 594/2 = 297 MHz (ddr clk) Это китаец вряд ли потянет. Надо смотреть что его pll может. И можно ли камеру на него сажать. Получается , системная частота в районе 100МГц, не более. Вроде как.
  4. И я про это. Фишка протокола в том, что по одной линиипередается как высокочастотная так и низкочастотная составляющие. Причем передача пакетная. Значит в корке должны быть по идее для rx 1 вхoд h clk, когда ему зададут в проекте порт lvds, автоматом должен появиться порт h clk n, и двунаправленные 2 входа выхода l clk. Это тоже по двум проводам. Как это между собой взаимодействует я не знаю. Как они в непрерывном потоке битов идентифицируют начало и конец пакета. Там ведь нет 8б10б кодирования. Снимаю шляпу перед этими творцами.
  5. Если камера гонит 800 с 8b/10b кодированием, то что понимать под физикой. Надо корку изучить, она ведь с тестбенчем должна идти. Почитать описание такого же IP Альтеры или xilinx. Все что надо для приемника, передатчика обычно есть в виде ip core и собирается из них. Например: передатчик. Пакет 8р данных - encoder_8b10b - lvds_tx (deserialization factor = 10) приемник. lvds_rx (deserialization factor = 10) - rx_aligner (выравнивание данных) - decoder_8b10b - пакет 8р данных. Все зависит от того, на что корка опирается (железо или текстовое описание). Изучите Вашу корку. На какой частоте работает, если в параметрах понятие deserialization factor. Если у нее есть вход rx, на него можно подать последовательность битов с кратностью 10 в формате 10р 8b10b кода с шагом 1.25нс. (если там действительно 8b10b кодирование) P.S. нет там 8b10b кодирования. Все что наговорил - отказать.
  6. У Вас наверно в корке стоят сериализаторы и десериализаторы. 1200 Mb/s - это видимо максимум на этом кристалле. Посчитать просто. 1200/10 = системный клок 120 MHz на одну веревку. (8 бит + 2 бита 8b/10b кодирование, должно быть, если клоком данные не сопровождаются). На системной частоте 50 MHz при кодировании 8b/10b вы можете получить 500 Mb/s. Меня смущает line rate in Mb/s/8. Но я этого протокола не знаю и это сути не меняет. И конечно изменение на таких частотах можно задать в тестбенче и увидеть реакцию.
  7. Нет смысла i2c искать. Ничего приличного я не увидел. По мне или IP или свое. И корка тут скорее всего рабочая. Проверить ведь просто. В тестбенче создать две сущности корки мастер и слеф и замкнуть друг на друга. Наверняка будут работать. Особенность этого интерфейса в том, что сигналы на линии sda должны изменяться в момент времени когда на линии scl стоит ноль (в том числе с учетом арбитража), иначе корка уйдет в состояние старт или стоп. На Вашей осциллограме вроде бы ack выдается некорректно (фронтами scl с sda бъются).
  8. Ничего подобного. Как пример - Ваша схемотехника. Лично мне ничего непонятно. Нагляднее представить в виде функции, а это уже текстовое описание и как результат - схему на откуп синтезатору. В Вашем случае использование RS защелки некорректно по определению. Потому что исходя из таблицы истинности на входах R и S она накладывает запрещенное состояние, которое у Вас возможно, ибо у Вас выходы асинхронной схемы напрямую связаны с ее входами. Если по-русски - это гонки. Любое изменение схемы по быстродействию, изменение температуры влияет на временные задержки, а значит на работоспособность Вашей схемы (Солнышко пригреет плату и она может не проснуться по включению питания). Как только речь заходит о схемотехнике, она подразумевает базис - какой то технологический процесс на базе примитивов, которые всегда ограничены функционально. Если Вы хотите для обучения использовать плату на базе ПЛИС бывшей фирмы XILINX, то надо скачать среду разработки типа вивадо, среду моделирования типа модельсим, и пользоваться примитивами, которые Вам будут доступны. Не знаю как сейчас, а лет 20 назад на семействе 3000 FPGA у Xilinx принципиально не было примитивов с одновременно и R и S входами. Чтоб пользователь не имел соблазна воспользоваться и R и S входами в своей схеме. И Вам все равно придется разорвать Ваши циклические пути и добавить в разрыв регистры. Добавив понятие - работа по фронту клока. И тут действительно дилемма. Или все будет жить только на уровне патента. Или превратиться в профессионального ремесленника.
  9. Видимо это следствие прочтения книг, которые Вы получили. При всем моем уважении к старшему поколению, изучать схемотехнику на базе микросхем например серии 133 - никуда не годиться. Предлагаю скачать ниже перечисленное. Оно в свободном доступе. Уверен, с Вашим пытливым умом многие вопросы отпадут сами собой. 1.Цифровая схемотехника и архитектура компьтера: RISC-V Сара Л. Харрис, Девид Харрис 2. Цифровой синтез. Практический курс. А.Ю. Романова, Ю.В. Панчула 3.Логическое проектирование встраиваемых систем на FPGA Валерий Соловьев.
  10. Это приводит к сквозному проектированиюи электронному документообороту. Серийному производству нет дела до удобств разработчика. Да и в чем неудобство. К схеме электрической принципиальной добавляется схема электрическая соединений с вашей платои и трансформатором. Все остальное делают за вас констрктора.
  11. Странно все это. Возьмем плату с элементами, нарисованную в Сапре и автоматом полученном ПЭ3. На Э3 Вы можете указать только то, что устанавливается на эту плату (Можете сделать пометку типа резисторы для поверхностного монтажа такие то не устанавливать). Причем многое от конструкции узла зависит. Например на плату устанавливается основной разъем, в Э3 его обозначают как например X1. И он входит в ПЕ3 на плату с элементами. А если этот разъем конструктивно является принадлежностью железа, к которому он прикручивается, на которое потом осаживают плату с элементами и потом впаивают разъем, он не может быть X1, на плате это уже контактные площадки и в ПЭ3 на плату нет этого разъема. Тоже и с трансформатором. Он же как то проводами наверно к плате подключается. Все это наверно в СБ должно описываться (Или в таблице соединений, но не на плату). Так что как по мне - конструктора должны рулить в этом вопросе.
  12. Не может быть проблем с ISA шиной. До сих пор используют PC104/ISA. Вам программер нужен, который бы в драйвере на эту плату вскрыл бы адреса устройств ввода вывода, задействованные в адресном пространстве ISA. Или займитесь реинженерингом. Раньше использовали 10 разрядный адрес шины устройства ввода вывода, сейчас 16 разрядов. Обычно берут базовый адрес платы прототипа 16'h0300, любой который в материнке не используется. Определиться легко по печати (если перемычками адреса выставляются). Не видит маркера - это цикл чтения по конкретному адресу (по которому isa маркер считывает). Вот и разберитесь почему не видит. Материнки тут не причем. Происходит конфликт на шине. Вот и разберитесь, почему. Конечно все у Вас на плате исправно.
  13. Первое - не должно быть конфликтов Вашей платы с новой материнкой по адресам использования например устройств ввода вывода. Обычно адреса выбираются перемычкой. Второе - если на Вашей плате используется сигнал прерывания, например IRQ5, он не должен задействоваться в новой материнке другими устройствами. Тоже можно выбрать перемычками. Третье - может не хватить длительности сигнала чтения по выбранному адресу (может в новой материнке цикл чтения короче). Растягивается цикл перемычками. Ну и всему этому (кроме затягивания цикла чтения ) должен соответствовать Ваш драйвер.
  14. Да. По неофициальному стандарту Там частота 8 с хвостиком. Она может быть не кварцованная, она не синхронна сигналам на ISA шине и обычно вообще не используется в схемотехнике, если Не надо затянуть цикл чтения записи сигналом I/O CH RDY. Смотрите требуемые циклы записи чтения по времени для Вашей платы. Сигналом I/O CH RDY можно затянуть цикл на сколько надо (в разумных пределах). Обычно там перемычки ставят.
  15. Клону Вашему ничего не будет, если в схематике ошибетесь. Он любое питание поддержит(если б не работал, то и не покупали бы). А вот JTAG плис не безразлично. Если по схеме подключения JTAG просит 2.5В, а У Вас 3.3В, вполне можно порты JTAG плис пожечь. (Хотя рекомендацию подключать JTAG к VCCA (PLL) впервые вижу). Наверно не от хорошей жизни, от невнимательности пользователей. У Вас nce ПЛИС подключен к gnd через резистор. Раз Вы режим PS реализовали, попробуйте подпаяться к флеши в режиме актив сериал *.pof. Хотя выбор типа флеш вызывает сомнение (он не поддерживается при выборе в квартусе). Ну и проверьте подключение msel. Если висят, JTAG работать не будет.
  16. Надо полагать msel0, msel1 подключены. Посмотрите рапорт *pin проекта. Какое питание на банки рекомендовано подавать (по умолчанию I/O standard обычно 2.5В). Посмотрите какое питание на плате подано на банк, к которому относятся пины JTAG. По идее, если Вы бластер запитали от 3.3В, то и банк с пинами JTAG должен быть запитан от 3.3В. Если этот банк запитан от 2.5В, 1.8В, то и питание на разъеме для бластера должно быть таким же. Смотрите даташит. Соответственно и резистивные подтяжки JTAG к питанию.
  17. Это ацп в интегральном исполнении. Там все работает синхронно за счет выверенных временных интервалов между сигналом CS_n и CLK. Его spi slave интерфейс грубо можно считать реализацией на микросхемах средней степени интеграции. Счетчик работает по фронту клока в интервале CS_n. Задним фроном CS_n значение счетчика, сдвигового регистра переписывается в регистры. Вы не можете себе позволить такое проектирование, реализуя SPI slave интерфейс на Плис. Потому что Плис если грубо, это море вентилей и триггерных ячеек. И чтобы заработал правильно простейший сдвиговый регистр на структуре Плис, требуется чтобы сигналы на С входы этих триггеров подавались одновременно, а на D входы с какой то задержкой. Поэтому есть глобальные клоковые цепи, есть региональные клоковые цепи. Обычно все сигналы низкоскоростных интерфейсов подают на пины I/O (Еще надо постараться посадить клок с пина I/O на глобальный или региональный). А clk с внешнего генератора подают на пин глобального клока. Поэтому никакой асинхронщины Плис не терпит (это надо смотреть на базовый примитив триггера семейства Плис, который Вы используете. Конечно у него может быть асинхронная установка в то или иное состояние, но как обрабатывать такой сигнал в Плис, написана куча литературы). Более того, чтобы воспользоваться всей мощъю языка описания аппаратуры, придется менять мышление проектирования (использовать навыки в поведенческом описании счетчиков, регистров и т.д.). Самое простое, это одноклоковая синхронизация, данные по клоку SPI интерфейса переходят в клоковый домен ПЛИС. Это позволяет параметризировать модули (написать один раз и использовать на любой глобальной частоте Плис в рамках разумности, меняя значение параметров только на уровне головного модуля).
  18. В Вашей реализации не видно периодичности ( в периодичности нет понятия раньше, позже). И нет второго условия (ct == 10). В любом случае Вам придется внешний сигнал ST ( ограниченный по длительности от одного периода CLK до 4) привести к длительности в 1 период CLK. И тогда только сравнивать со счетчиком. Как то так. st_ct.zip
  19. Разве это решение. Поставить костыль. Иметь пропуски. Наверно правильное решение - отказаться от корки (при этом промоделировать ее и предупредить всех о ее несоответствии стандарту). Непонятно, почему в тестбенче невозможно проверить действительное состояние линий SDA SCL. Нет ведь проблем в моделировании двунаправленной линии с буфером с открытым стоком (два состояния на выходе : 0, z: два состояния на входе : 0, 1). z состояние синим цветом нарисуют. Посмотрите, какие частотные ограничения в корке накладываются на I_clk : in std_logic;SCL_io : inout std_logic; С трудом вериться, что корка не работает.
×
×
  • Создать...