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

новичок, string

Приветствую форумчане, кратко обо мне, я начинающий любитель программист, немного знаю c++

и решил попробовать verilog, первое с чем я столкнулся, это работа со строками, и как создавать массивы больших размеров, например на C++ int arr[999999]

сейчас конкретно string выдаёт ошибку

matemat.vl:7: syntax error

matemat.vl:7: error: Invalid module instantiation

работаю с программой iverilog

module main();

  integer p=0;
  string lastname  = "Tribbiani";

initial
  begin


     for (p=0; p<5; p++)
begin
                   $display("Vivod ", p);
end

                  
    

    $finish;
  end

endmodule

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

$display("Vivod %0d", p);

ошибка так и осталась, так как она не связана с integer, она связана с string , так как после удаления строчки string программа компилится и запускается

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приветствую!

ошибка так и осталась, так как она не связана с integer, она связана с string , так как после удаления строчки string программа компилится и запускается
Чистый verilog не поддерживает тип данных string. Это доступно только для SystemVerilog.

Вам надо посмотреть поддерживает ли iverilog стандарт SystemVerilog ну и компилировать файл с соответствующей опцией.

 

Удачи! Rob.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приветствую!

Чистый verilog не поддерживает тип данных string. Это доступно только для SystemVerilog.

Вам надо посмотреть поддерживает ли iverilog стандарт SystemVerilog ну и компилировать файл с соответствующей опцией.

 

Удачи! Rob.

 

я так понял, что я выбрал не правильный компилятор для новичков? или не расширенный.

Подскажите пожалуйста какими лучше пользоваться.(у меня Win 8)

Изменено пользователем nomerlin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

решил попробовать verilog, первое с чем я столкнулся, это работа со строками, и как создавать массивы больших размеров, например на C++ int arr[999999]
Я вас уверяю, в Верилоге вам строки такой длины не понадобятся. Это не язык программирования. Начните с чего-нибудь другого -- логические элементы, мультиплексор, D-триггер.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я так понял, что я выбрал не правильный компилятор для новичков? или не расширенный.

Подскажите пожалуйста какими лучше пользоваться.(у меня Win 8)

По дефолту он в Verilog компилит, а string есть в SystemVerilog, и для этого нужно задать соответствующую опцию, а может даже расширение файла не .v а может .sv, ибо опции у Icarus я чего не вижу.

Можно взять Modelsim Altera Starter Edition бесплатный и пробовать на нем.

 

В SystemVerilog лучше со строками, гораздо лучше. Не нужны лошадиные резервы по длинам, в SystemVerilog строки динамические. Но в синтезируемых модулях строки не нужны.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По дефолту он в Verilog компилит, а string есть в SystemVerilog, и для этого нужно задать соответствующую опцию, а может даже расширение файла не .v а может .sv, ибо опции у Icarus я чего не вижу.

Можно взять Modelsim Altera Starter Edition бесплатный и пробовать на нем.

 

В SystemVerilog лучше со строками, гораздо лучше. Не нужны лошадиные резервы по длинам, в SystemVerilog строки динамические. Но в синтезируемых модулях строки не нужны.

понял, а насчёт огромных массивов типа int?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

понял, а насчёт огромных массивов типа int?
Самому попробовать не?

Но огромные массивы при описании железа вам тоже вряд ли встретятся. Микросхемы не безразмерные.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

и можно ли в int переменной искать нужные цифры?

например int i = 11313234412314;

если в числе есть значение 344 то true и записать позицию где находится данное число в переменной

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

и можно ли в int переменной искать нужные цифры?

например int i = 11313234412314;

если в числе есть значение 344 то true и записать позицию где находится данное число в переменной

Представьте себе следующие схемные узлы:

регистр, в котором хранится 11313234412314

мультиплексор, который из регистра выбирает по 3 байта

счетчик, который умпавляет мультиплексором

схема сравнения, на один порт которой подключен выход мультиплексора, а еа второй вход - константа 344

ну и наверное еще понадобится триггер, который при сбросе счетчика в исходное тоже будет сбрасываться, а при получении 1 от схемы сравнения - будет устанавливаться в 1, и Вы получите "true", а счетчик как раз и покажет позицию искомой последовательности...

 

Как только научитесь думать не в "байтах", а в "триггерах", так и дело с верилогом пойдет...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Представьте себе следующие схемные узлы:

регистр, в котором хранится 11313234412314

мультиплексор, который из регистра выбирает по 3 байта

счетчик, который умпавляет мультиплексором

схема сравнения, на один порт которой подключен выход мультиплексора, а еа второй вход - константа 344

ну и наверное еще понадобится триггер, который при сбросе счетчика в исходное тоже будет сбрасываться, а при получении 1 от схемы сравнения - будет устанавливаться в 1, и Вы получите "true", а счетчик как раз и покажет позицию искомой последовательности...

 

Как только научитесь думать не в "байтах", а в "триггерах", так и дело с верилогом пойдет...

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Если хотите, то могу по скайпу голосом ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если хотите, то могу по скайпу голосом ...

Хоспади, вы прям как ангел для меня, с меня на пиво, без прикола, скиньте скайп лс плиз

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хоспади, вы прям как ангел для меня, с меня на пиво, без прикола, скиньте скайп лс плиз

В личной карточке форума... :)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

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