Jump to content

    

one_eight_seven

Участник*
  • Content Count

    1240
  • Joined

  • Last visited

Community Reputation

0 Обычный

2 Followers

About one_eight_seven

  • Rank
    Профессионал
  • Birthday 11/11/1983

Контакты

  • Сайт
    Array

Информация

  • Город
    Array

Recent Profile Visitors

7306 profile views
  1. Startup File startup_<device>.s (deprecated) (arm-software.github.io) Собственно, asm уже устарел, а для cortex-A отсутствует и в 'deprecated' статусе. Для соответствия CMSIS, о чём и говорил товарищ, которому вы отвечали,- всё-таки кое-что мешает.
  2. А можно источник этих влажных фантазий? В общем-то VCS заметно быстрее даже на маленьких системах и большим количеством печати (где больше работает не симулятор, а печать). А на больших проектах и c малой подробностью печати он вдвое быстрее. Интерфейс - дело любительское, мне больше нравится именно VCS, не смотря на то, что больше работал (и сейчас работаю) c Xcelium. Поддержка SystemVerilog в VCS опять же заметно лучше: в Xcelium с 19 версии поддержка ограничений рандомизации стала вообще детской - только самые примитивные конструкции поддерживаются, да и до этого использование функций было недетерминированным (VCS и Questa при этом показывают одинаковые результаты как от версии-к-версии, так и результаты ограничений Questa совпадают с резултатами ограничений VCS).
  3. Как уже сказали, это опция configure. Куда её написать, можно прочитать здесь: https://gcc.gnu.org/install/configure.html
  4. Ну с чего вы взяли, что за один такт? За время их выполнения, вообще не должно пройти нисколько времени. Ни такт, ни 1/10 такта. Для функций это и невозможно, поэтому, они лучше. И не понимаю, а почему вам это не подходит? Вы хотите always блок поставить внутрь таска? Так - да, не будет работать. Но такая ли проблема - вызывать функцию в always блоке? Ну, или если у вас размножается не функционал, который стоит выносить в таск, а вся конструкция с always блоками, и т.п. - то зачем вам таски/функции? оформляйте в модуль. Таски и функции хороши тем, что их можно засунуть в package, и импортировать, где нужны уже из package. так, чтобы изменения в функции распространялись всюду, где она используется. Если у вас другая задача, то и инструменты нужны другие.
  5. Да, правильнее. В общем-то так и рекомендуется. Использовал, когда нужно было, чтобы синтезировался Verilog, а там у функций нет формальных аргументов output и inout. На SystemVerilog не вижу в этом смысла. чтобы инстанциировать разные вызовы, как разные куски железа. Для синтеза, вообще, требуется, чтобы функции/таски объявлялись автоматиками.
  6. Возможно, OPA2314, у них на SO-8 как раз O2314
  7. Хочу уточнить. Ошибочный, но абсолютно предсказуемый результат. (Это я не спорю, а дополняю, если что, так сказать,- выкрик с места) Есть известные и широко пропагандируемые методы написания кода, когда симуляция и синтез дадут одинаковый результат. В противном случае, результат получается разный, поскольку языки предназначались именно для симуляций, и не рассматривались для синтеза. И большое спасибо Synopsys, что они смогли выделить синтезируемое подмножество и облегчить всем нам жизнь. Более того, ограничения, требуемые для синтезируемости конструкций достаточно просты и, в основном, требуют понимания и соблюдения законов физики, а не каких-то сакральных знаний.
  8. Придерживаешься правил и всё нормально.
  9. Вложенность блоков обуславливается одинаковым количеством ведущих пробелов, а не фигурным скобками и не begin/end'ами
  10. Да, инструмент хороший. Не нравится только, что он позволяет код писать через жёппу. То, что у Synopsys/Cadence выявляется на этапе сборки, в Questa вылезает только в рантайме. С другой стороны, у Cadence просто отрватительное решение по рандомизации. Притом, сломали они его в 2019. До этого Xcelium был неплох. А вот VCS прекрасен до сих пор.
  11. И что делать среди запойных специалисту, который выбил себе приемлемые условия? И вообще зачем их выбивать, если в других местах их предлагают сразу - непонятно. За что ещё надо будет постоянно бороться?
  12. Можно и вообще без файлов. Просто в командной строке. Но с файлами быстрее и удобнее
  13. Для вашего удобства это. Компилятору вообще дела нет до расширения файлов. Это, чтобы вы могли для себя быстро определить, где у вас объявления сущностей, а где их реализация. Ну и заодно, как бонус - редакторы, IDEшки могут по расширениям определить тип файла, и синтаксис подсветить, или проиндексировать их поудобнее. Но это не обязательно.
  14. Нет. const-метод вполне может изменять следующие типы данных: mutable поля класса любые данные, к которым класс имеет неконстнантный доступ. т.е. которые для класса не являются константой: те, к которым он имеет доступ по указателям и ссылкам (технически, метод не меняет поле класса, оно остаётся неизменным, но данные, доступные по этим полям - изменяемы) данные, передаваемые в const-метод по указателю или ссылке в качестве аргументов через указатели или ссылки, возвращаемые функциями напрямую доступные через namespace или класс - такие, как статические члены.