реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> новичок, string, ошибка в коде
nomerlin
сообщение Sep 4 2018, 17:53
Сообщение #1





Группа: Участник
Сообщений: 7
Регистрация: 4-09-18
Пользователь №: 107 221



Приветствую форумчане, кратко обо мне, я начинающий любитель программист, немного знаю 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
Go to the top of the page
 
+Quote Post
AVR
сообщение Sep 4 2018, 18:21
Сообщение #2


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 340
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



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


--------------------
Go to the top of the page
 
+Quote Post
nomerlin
сообщение Sep 4 2018, 18:38
Сообщение #3





Группа: Участник
Сообщений: 7
Регистрация: 4-09-18
Пользователь №: 107 221



Цитата(AVR @ Sep 4 2018, 19:21) *
$display("Vivod %0d", p);

ошибка так и осталась, так как она не связана с integer, она связана с string , так как после удаления строчки string программа компилится и запускается
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Sep 4 2018, 19:12
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 200
Регистрация: 23-12-04
Пользователь №: 1 643



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

Удачи! Rob.
Go to the top of the page
 
+Quote Post
nomerlin
сообщение Sep 4 2018, 19:17
Сообщение #5





Группа: Участник
Сообщений: 7
Регистрация: 4-09-18
Пользователь №: 107 221



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

Удачи! Rob.


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

Сообщение отредактировал nomerlin - Sep 4 2018, 19:18
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Sep 5 2018, 04:59
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 972
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(nomerlin @ Sep 4 2018, 20:53) *
решил попробовать verilog, первое с чем я столкнулся, это работа со строками, и как создавать массивы больших размеров, например на C++ int arr[999999]
Я вас уверяю, в Верилоге вам строки такой длины не понадобятся. Это не язык программирования. Начните с чего-нибудь другого -- логические элементы, мультиплексор, D-триггер.
Go to the top of the page
 
+Quote Post
AVR
сообщение Sep 5 2018, 05:29
Сообщение #7


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 340
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(nomerlin @ Sep 4 2018, 22:17) *
я так понял, что я выбрал не правильный компилятор для новичков? или не расширенный.
Подскажите пожалуйста какими лучше пользоваться.(у меня Win 8)

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

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


--------------------
Go to the top of the page
 
+Quote Post
nomerlin
сообщение Sep 5 2018, 06:25
Сообщение #8





Группа: Участник
Сообщений: 7
Регистрация: 4-09-18
Пользователь №: 107 221



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

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

понял, а насчёт огромных массивов типа int?
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Sep 5 2018, 07:53
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 972
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(nomerlin @ Sep 5 2018, 09:25) *
понял, а насчёт огромных массивов типа int?
Самому попробовать не?
Но огромные массивы при описании железа вам тоже вряд ли встретятся. Микросхемы не безразмерные.
Go to the top of the page
 
+Quote Post
nomerlin
сообщение Sep 5 2018, 07:54
Сообщение #10





Группа: Участник
Сообщений: 7
Регистрация: 4-09-18
Пользователь №: 107 221



и можно ли в int переменной искать нужные цифры?
например int i = 11313234412314;
если в числе есть значение 344 то true и записать позицию где находится данное число в переменной
Go to the top of the page
 
+Quote Post
iosifk
сообщение Sep 5 2018, 08:10
Сообщение #11


Гуру
******

Группа: Модераторы
Сообщений: 4 006
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



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

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

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


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
nomerlin
сообщение Sep 5 2018, 08:16
Сообщение #12





Группа: Участник
Сообщений: 7
Регистрация: 4-09-18
Пользователь №: 107 221



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

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

Спасибо большое за такой расширенный ответ, сейчас буду манну читать в этом направлении.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Sep 5 2018, 08:19
Сообщение #13


Гуру
******

Группа: Модераторы
Сообщений: 4 006
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



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

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


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
nomerlin
сообщение Sep 5 2018, 08:27
Сообщение #14





Группа: Участник
Сообщений: 7
Регистрация: 4-09-18
Пользователь №: 107 221



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

Хоспади, вы прям как ангел для меня, с меня на пиво, без прикола, скиньте скайп лс плиз
Go to the top of the page
 
+Quote Post
iosifk
сообщение Sep 5 2018, 08:29
Сообщение #15


Гуру
******

Группа: Модераторы
Сообщений: 4 006
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



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

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


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th September 2018 - 00:43
Рейтинг@Mail.ru


Страница сгенерированна за 0.00975 секунд с 7
ELECTRONIX ©2004-2016