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

Vadim

Свой
  • Постов

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

  • Посещение

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


  1. Кто знает хоть какую-нибудь русскоязычную литературу по языку System C ?

    Подкиньте, пожалуйста, основы или азы, или вообще хоть что !!! Описание синтаксиса надо срочно :help: =)

    Рускоязычной нет, почитайте англоязычную, например тыц. Там всё понятно, в крайнем случае со словарём разберётесь. А лучше всего, читайте стандарт. Понимаю, поначалу будет трудно, но деваться некуда, всё равно к этому придёте, если серьёзно настроены.

    Ну а если

    вообще хоть что !!!
    , ловите уже потерявшую для меня актуальность попытку перевода книги From The Ground Up. Кое-что там есть, местами ахинея, перевод полуавтоматический, тсз, может поможет.

     

    SystemC_From_The_Ground_Up_ru.pdf

  2. Я тут в свой eskdi интегрирую рамки и штампы, основанные на Вашем коде.

    И это правильно :) Если откровенно, Ваш изначальный подход к формированию рамок и штампов как фонового рисунка вполне себе нормален, но изумляет привязка к проприетарному PCAD и наличие в исходниках пикадовских файлов.

    У Вашего кода GPL2 - лицензия и у моего GPL2 - лицензия... так что всё честно...

    Ну это вопрос юридический, в нём не силён. А если по-простому, то никаких проблем, используйте на здоровье, буду только рад.

    Заметил, что конструкции вида

    ...

    имеют недостаток - если поменять шрифт на более широкий, то текст выползает из рамок.

    Глубоко копаете :) Да, этот недостаток мне известен ещё с момента создания pcbdoc, но тогда я решил не заморачиваться.

    Я у себя решил этот вопрос с помощью такой конструкции (стянул прототип у eskdpz а затем запилил под миллиметры):

    ...

    Получается вот так:

    ...

    Может информация будет полезна. От гостовских шрифтов уже все отвыкли, а тут можно всё подряд юзать...

    Большое спасибо. Приятно, что одной проблемой будет меньше. К сожалению, попробую и внедрю не очень скоро, опять запарка на работе.

  3. Подскажите пожалуйста как сгенерировать лист регистрации изменений в перечнене элементов?

    На момент написания pcbdoc я пребывал в полной уверенности, что лист регистрации изменений нужен только в спецификации. Поэтому пока никак. Обязательно исправлю.

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

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

  4. Завёл репозиторий на github. Скачать версию 0.4 можно здесь: https://github.com/RudnevVadim/pcbdoc/releases

    В README написано, как извлечь установочный архив с деревом исходников. Для ленивых и пользователей windows выкладываю уже извлечённый архив прямо здесь. Добавлена опция compactmode для подавления пустой строки после каждой записи в перечне элементов.

    pcbdoc_v0.4.zip

  5. Очень жду, поскольку мне нужно группировать по 3-5 строк.

    Работы, наверное, минут на 15 :) Но, чтобы разобраться, что и где исправлять, нужно, наверное, несколько часов (давно не занимался pcbdoc). Сейчас прогнозирую окончание "запарки" на работе, которая длится ещё с конца прошлого года. Через пару недель, скорее всего, сделаю.

    Может быть Вам уже создать какой-нибудь открытый репозиторий? Глядишь, народ подтянется.

    Давно хочу, тем более, что есть мысль (и наработки) упростить использование функции \Element. И это будет явно новая версия. Стыжусь, но, кроме как делать комиты (есть репозиторий с частичным переводом стандарта языка scheme r6rs), работать с git(hub) не умею. Как вести разработку сразу двух и более версий, не знаю. А старые версии нужны, пользователей кидать нехорошо. Разберусь - сделаю.

  6. Примечание нужно указывать в необязательном параметре функции \Element. Необязательный параметр в LaTeX указывается самым первым аргументом функции в квадратных скобках. Например:

    \Element[это примечание]{Розетка SMA-BJ}{\refbox{XS1,XS2}}{2}

    Ну а по поводу перескакивания на другую строчку - Вы ошиблись с примером

    Вместо

    \Element{Розетка SMA-BJ}{\refbox{XS1,XS2}}{ttt}

    Вы, скорее всего, хотели сказать

    \Element{Розетка SMA-BJ}{\refbox{XS1,XS2}}{2}{ttt}

    {ttt} в данном случае не является аргументом функции, и, естественно, LaTeX верстает это, начиная с новой строки.

     

    В этом что-то есть.

    Я тоже это люблю

    А мне по-барабану. Как скажет руководство, так и будет. Любой каприз за ваши деньги, тсз. Могу даже зелёную полоску поперёк... И красный бантик в правом нижнем углу.

  7. \smallit похоже уже отсутствует. Его даже grep не находит в исходниках.

    Да, действительно, виноват, ошибся, извините. Вчера, когда давал совет, глянул в свои(более свежие) исходники. Там \smallit и \small присутствуют.

    Если прописать 2 и больше строк \Element подряд, то в выходном файле будут пустые строки.

    Не знаю, зачем вы это сделали?

    На самом деле всё просто. Об этом даже написано в туториале:

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

    Т.е, как нетрудно догадаться, виной всему является мой начальник отдела, который на момент написания pcbdoc требовал наличия пустой строки после записи элемента в перечне или спецификации :)

    Ну, раз такая функциональность устраивает не всех, имеет смысл ввести настроечный параметр(опцию) в класс, который будет задавать наличие или отсутствие пустой строки после записи элемента. Принял к исполнению :)

     

    ЗЫ К сожалению, сейчас у меня катастрофически не хватает времени, поэтому, скорее всего, реализую задуманное не скоро. Заодно приношу извинения ув. tomikaji, реализация хотелки которого по вышеуказанной причине откладывается на неопределённое время.

  8. Vadim, а подскажите, что можно сделать, если фамилия не влезает в отведённое поле? Не то чтобы она длинная, но сокращать не хочется.

    Помнится, КОМПАС в таком случае шрифт как-то сжимал по горизонтали, но за пределы поля не позволял выходить.

    Насколько мне известно, LaTeX, в отличие от других систем вёрстки, не сжимает/разжимает по горизонтали конкретные слова, а только промежутки между ними. Следовательно, нужно уменьшить размер шрифта в конкретном поле. При разработке pcbdoc не предпринимались меры по автоматизации этого процесса, поэтому нужно делать это вручную. Например, уменьшить размер шрифта можно так:

    \AuthorSet{\smallit{}Пупкин}

    Вообще, в pcbdoc есть несколько команд изменения размера шрифта. Наклонный шрифт, от меньшего к большему:

    \smallit
    \normalfontit
    \llargeit
    \largeit
    \LLargeit
    \Largeit

    Прямой шрифт, от меньшего к большему:

    \small
    \normalfont
    \llarge
    \large
    \LLarge
    \Large

    Кроме того, Вы можете указать тип шрифта и его размер "в лоб" средствами XeLaTeX. Например:

    \AuthorSet{\fontspec[Scale=0.68]{GOST type A}\itshape{}Пупкин}

    И, само собой разумеется, если Вы планируете часто использовать конкретный размер шрифта, имеет смысл создать для этого новую команду.

    И в \NameSet мне хочется текста побольше задать, но не получается по той же причине.

    В дополнение к сказанному выше, поле \NameSet может состоять из двух строк. Например:

    \NameSet{Модуль\\расширителя сознания}

  9. Список позиционных обозначений нужно разбивать вручную или это какая-то ошибка?

    Понятное дело, что хочется не задумываться о разбиении позиционных обозначений, поручив это тулзе, но, к сожалению, pcbdoc не умеет этого. Поэтому приходится действовать примерно таким образом:

    \Element{Y5V\_1206\_4,7\_MKF\_20\%\_25V}{%
      \refbox{C6,C15,C16}
      \refbox{C18,C21}
      \refbox{C174,C175}
      \refbox{C180,C181}
      \refbox{C184-C187}
      \refbox{C190,C191}
      \refbox{C195-C199}
      \refbox{C201,C204}
      \refbox{C205}
      \refbox{\llargeit{}C207-C210}
      \refbox{C212}
      \refbox{\llargeit{}C232-C234}
      \refbox{\llargeit{}C238-C240}
      \refbox{\llargeit{}C265-C266}%
      }{36}

    Обратите внимание, что

    1) Каждую строку в колонке "Обозначение" нужно отделять от предыдущей одним или несколькими пробельными символами(переход на другую строку также является пробельным символом)

    2) Между символом "{" и первой строкой обозначений, а также между последней строкой обозначений и символом "}" пробельных символов быть не должно, поэтому в примере выше используется символ подавления последующих пробельных символов "%"

    3) Каждую запись в строке обозначений рекомендуется размещать внутри команды \refbox. Она центрирует запись внутри колонки.

    4) Шрифт любой записи строки обозначений можно немного уменьшить с помощью команды \llargeit. Это позволяет разместить в колонке чуть выступающий за её пределы текст.

  10. Дык код и симулятор я в первом посте указал. Если подробнее, то Моделсим SE 10.2c

    Так ведь я не у Вас его просил. Кроме того, Ваш код не запустится, он не полный, а телепатировать я не умею :)

     

    ЗЫ:Всё, я устал. Берём VCS. Вот код(cool.sv):

    interface MyCoolInterface;
      parameter MyCoolParameter = 16;
    endinterface: MyCoolInterface
    
    module MyCoolModule();
      MyCoolInterface MCI();
      localparam MyCoolParameter = MCI.MyCoolParameter;
      typedef bit[MyCoolParameter-1:0] MyCoolType;
      initial $finish;
    endmodule: MyCoolModule

    Компилируем:

    vlogan -full64 -nc -q -sverilog ./rtl/cool.sv

    Получаем:

    Error-[NCE] Non-constant expression
      The following expression should be a constant.
      Expression: MCI.MyCoolParameter
      "./rtl/cool.sv", 8
      Source info:   localparam MyCoolParameter = MCI.MyCoolParameter;
    
    1 error

  11. Остается главный вопрос, это синтезируется на данный момент? Не получится как с классами, которые Квартус [пока?] не умеет синтезировать?

    Как водится, нужно читать доки на синтезатор. Использую Precision, выводы примерно такие:

    - parameters - нет проблем, если их типы - синтезируемые

    - data - не синтезируются и правильно делают

    - type - нет проблем, если они синтезируемые

    - task - не знаю, не пробовал

    - function - использовал только константные функции

    - sequence - слаб в данном вопросе, но эта штука не для синтеза

    - property - аналогично

     

  12. Хорошо бы освежить стандарт в памяти, прежде чем на него ссылаться. Да и в целом посмотреть, что происходит при elab, а что раньше.

    Спасибо, кэп.

    В симуляторе все отлично работает сквозь слои иерархии (см.).

    То, что Вы не привели исходный код "всего отлично работающего сквозь слои иерархии" и не указали симулятор, это ведь недоразумение, правда? И, поскольку предмет для разговора отсутствует, могу лишь посоветовать отнести на помойку симулятор, пропускающий такие косяки, как иерархические обращения в константных выражениях.

    И defparam (квартус, кстати, когда-то поддерживал), и force, и получение значений объектов модуля минуя порты, иначе тестирование было бы крайне утомительным процессом с внесением изменений в rtl.

    Смешались вместе кони, люди©. И да, "хорошо бы"© внимательно читать исходное сообщение, "прежде чем"© отвечать на него. Не благодарите.

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

    Не сочтите за придирку, но стандарта на синтез SV пока не существует. Внезапно, да?

     

  13. Квартус абсолютно прав.

    Тот факт, что обращение тоже к константе, Квартус мало волнует. :(

    Его это и не должно волновать. Согласно стандарту, параметры вычисляются при связывании(elaboration) проекта, когда иерархии ещё не существует. Наверное, параметр можно вытащить из интерфейса с помощью иерархического обращения (с моей точки зрения, сомнительное занятие), но использовать полученное значение в константных выражениях запрещено стандартом.

    Может будут еще идеи?

    Когда мне лень протаскивать параметры(и не только) сквозь иерархию модулей, я использую пакет, специально предназначенную для этого сущность. Или заголовочные файлы.

  14. Ну так не томите, назовите волшебный бесплатный тул, который

    генерирует саму плату с транзисторами и разводкой и визуализирует её

    :)

  15. Questa не поддерживает полностью SV, несмотря на враньё бодрые заявления в Reference Manual.

    Неприметный текстовый файл, стыдливо запрятанный менторами в ../docs/technotes/sysvlog.note, несколько проясняет ситуацию по п.1:

    Questa is not compliant or has incomplete support for the following

    IEEE 1800-2009 SystemVerilog LRM sections:

    ...

    20.10 Elaboration system tasks ($fatal, $error, $warning, $info)

    По п.2 никаких сведений менторы не приводят. Или я плохо искал, или они стесняются сообщить об этом пользователям :)

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