Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: новичок, string
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Языки проектирования на ПЛИС (FPGA)
nomerlin
Приветствую форумчане, кратко обо мне, я начинающий любитель программист, немного знаю 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
AVR
$display("Vivod %0d", p);
nomerlin
Цитата(AVR @ Sep 4 2018, 19:21) *
$display("Vivod %0d", p);

ошибка так и осталась, так как она не связана с integer, она связана с string , так как после удаления строчки string программа компилится и запускается
RobFPGA
Приветствую!
Цитата(nomerlin @ Sep 4 2018, 21:38) *
ошибка так и осталась, так как она не связана с integer, она связана с string , так как после удаления строчки string программа компилится и запускается
Чистый verilog не поддерживает тип данных string. Это доступно только для SystemVerilog.
Вам надо посмотреть поддерживает ли iverilog стандарт SystemVerilog ну и компилировать файл с соответствующей опцией.

Удачи! Rob.
nomerlin
Цитата(RobFPGA @ Sep 4 2018, 20:12) *
Приветствую!
Чистый verilog не поддерживает тип данных string. Это доступно только для SystemVerilog.
Вам надо посмотреть поддерживает ли iverilog стандарт SystemVerilog ну и компилировать файл с соответствующей опцией.

Удачи! Rob.


я так понял, что я выбрал не правильный компилятор для новичков? или не расширенный.
Подскажите пожалуйста какими лучше пользоваться.(у меня Win 8)
andrew_b
Цитата(nomerlin @ Sep 4 2018, 20:53) *
решил попробовать verilog, первое с чем я столкнулся, это работа со строками, и как создавать массивы больших размеров, например на C++ int arr[999999]
Я вас уверяю, в Верилоге вам строки такой длины не понадобятся. Это не язык программирования. Начните с чего-нибудь другого -- логические элементы, мультиплексор, D-триггер.
AVR
Цитата(nomerlin @ Sep 4 2018, 22:17) *
я так понял, что я выбрал не правильный компилятор для новичков? или не расширенный.
Подскажите пожалуйста какими лучше пользоваться.(у меня Win 8)

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

В SystemVerilog лучше со строками, гораздо лучше. Не нужны лошадиные резервы по длинам, в SystemVerilog строки динамические. Но в синтезируемых модулях строки не нужны.
nomerlin
Цитата(AVR @ Sep 5 2018, 06:29) *
По дефолту он в Verilog компилит, а string есть в SystemVerilog, и для этого нужно задать соответствующую опцию, а может даже расширение файла не .v а может .sv, ибо опции у Icarus я чего не вижу.
Можно взять Modelsim Altera Starter Edition бесплатный и пробовать на нем.

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

понял, а насчёт огромных массивов типа int?
andrew_b
Цитата(nomerlin @ Sep 5 2018, 09:25) *
понял, а насчёт огромных массивов типа int?
Самому попробовать не?
Но огромные массивы при описании железа вам тоже вряд ли встретятся. Микросхемы не безразмерные.
nomerlin
и можно ли в int переменной искать нужные цифры?
например int i = 11313234412314;
если в числе есть значение 344 то true и записать позицию где находится данное число в переменной
iosifk
Цитата(nomerlin @ Sep 5 2018, 10:54) *
и можно ли в int переменной искать нужные цифры?
например int i = 11313234412314;
если в числе есть значение 344 то true и записать позицию где находится данное число в переменной

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

Как только научитесь думать не в "байтах", а в "триггерах", так и дело с верилогом пойдет...
nomerlin
Цитата(iosifk @ Sep 5 2018, 09:10) *
Представьте себе следующие схемные узлы:
регистр, в котором хранится 11313234412314
мультиплексор, который из регистра выбирает по 3 байта
счетчик, который умпавляет мультиплексором
схема сравнения, на один порт которой подключен выход мультиплексора, а еа второй вход - константа 344
ну и наверное еще понадобится триггер, который при сбросе счетчика в исходное тоже будет сбрасываться, а при получении 1 от схемы сравнения - будет устанавливаться в 1, и Вы получите "true", а счетчик как раз и покажет позицию искомой последовательности...

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

Спасибо большое за такой расширенный ответ, сейчас буду манну читать в этом направлении.
iosifk
Цитата(nomerlin @ Sep 5 2018, 11:16) *
Спасибо большое за такой расширенный ответ, сейчас буду манну читать в этом направлении.

Если хотите, то могу по скайпу голосом ...
nomerlin
Цитата(iosifk @ Sep 5 2018, 09:19) *
Если хотите, то могу по скайпу голосом ...

Хоспади, вы прям как ангел для меня, с меня на пиво, без прикола, скиньте скайп лс плиз
iosifk
Цитата(nomerlin @ Sep 5 2018, 11:27) *
Хоспади, вы прям как ангел для меня, с меня на пиво, без прикола, скиньте скайп лс плиз

В личной карточке форума... sm.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.